<?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>109349</bug_id>
          
          <creation_ts>2013-02-08 22:14:14 -0800</creation_ts>
          <short_desc>Kill TestRunner::setMinimumTimerInterval; implement the feature with InternalSettings</short_desc>
          <delta_ts>2013-02-11 14:52:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>jochen</cc>
    
    <cc>mifenton</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>roger_fong</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>828959</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-08 22:14:14 -0800</bug_when>
    <thetext>Kill TestRunner::setMinimumTimerInterval; implement the feature with InternalSettings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828961</commentid>
    <comment_count>1</comment_count>
      <attachid>187415</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-08 22:23:09 -0800</bug_when>
    <thetext>Created attachment 187415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828962</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-08 22:25:57 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828966</commentid>
    <comment_count>3</comment_count>
      <attachid>187417</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-08 22:37:50 -0800</bug_when>
    <thetext>Created attachment 187417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828971</commentid>
    <comment_count>4</comment_count>
      <attachid>187417</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2013-02-08 22:57:13 -0800</bug_when>
    <thetext>Comment on attachment 187417
Patch

Would r+ but I&apos;m not allowed since this touches WebKit2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828973</commentid>
    <comment_count>5</comment_count>
      <attachid>187417</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-02-08 23:08:11 -0800</bug_when>
    <thetext>Comment on attachment 187417
Patch

Attachment 187417 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/16478072</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828975</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-08 23:22:54 -0800</bug_when>
    <thetext>&gt; (From update of attachment 187417 [details])
&gt; Would r+ but I&apos;m not allowed since this touches WebKit2

No problem. Thank for checking the Chromium changes are okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829345</commentid>
    <comment_count>7</comment_count>
      <attachid>187493</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-10 13:27:52 -0800</bug_when>
    <thetext>Created attachment 187493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830072</commentid>
    <comment_count>8</comment_count>
      <attachid>187493</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-11 13:42:33 -0800</bug_when>
    <thetext>Comment on attachment 187493
Patch

Clearing flags on attachment: 187493

Committed r142509: &lt;http://trac.webkit.org/changeset/142509&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830073</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-11 13:42:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830142</commentid>
    <comment_count>10</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2013-02-11 14:36:48 -0800</bug_when>
    <thetext>I believe this broke the Windows build here: 
http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/62268/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830150</commentid>
    <comment_count>11</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-11 14:40:23 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; I believe this broke the Windows build here: 
&gt; http://build.webkit.org/builders/Apple%20Win%20Debug%20%28Build%29/builds/62268/steps/compile-webkit/logs/stdio

I&apos;ll update the symbols. The bot was not working previously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>830163</commentid>
    <comment_count>12</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-11 14:52:48 -0800</bug_when>
    <thetext>Windows symbols in http://trac.webkit.org/changeset/142519</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187415</attachid>
            <date>2013-02-08 22:23:09 -0800</date>
            <delta_ts>2013-02-08 22:37:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109349-20130208221943.patch</filename>
            <type>text/plain</type>
            <size>46639</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ4MWYyM2I0ODNlZWZk
ODM0MDFmNTdlMGYwODFjYzdkMzI4Y2ZiMi4uNjAyNmE2M2YxNmU5ZGQ2ZjkyZDYxODE4OTE5Nzc3
NTY0NTc4MzI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAyLTA4ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBLaWxsIFRlc3RS
dW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsOyBpbXBsZW1lbnQgdGhlIGZlYXR1cmUgd2l0
aCBJbnRlcm5hbFNldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDkzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeHBvc2Ugc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoKSBhbmQgaW1wbGVtZW50
IHRoZSBiYWNrdXAvcmVzdG9yZSB0byBrZWVwCisgICAgICAgIGEgY29uc2lzdGVudCBzdGF0ZSBi
ZXR3ZWVuIHRlc3RzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldE1pbmltdW1UaW1lckludGVydmFs
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oOgorICAgICAgICAoQmFja3VwKToKKyAgICAgICAgKEludGVybmFsU2V0dGluZ3MpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKIDIwMTMtMDItMDggIEJlbmph
bWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSB3b3JrZXJU
aHJlYWRDb3VudCBmcm9tIFRlc3RSdW5uZXIgdG8gV2ViQ29yZSBJbnRlcm5hbHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwppbmRleCA3ZTc4ZmNkY2YyY2U1YzYxMTJiZmU3MTcxN2Q5MTA1NzM3ZTkyMmZiLi5iNGZm
ZGMzNzVkNWVhNjZmYjRkODRmZDQ4ZDA0YmU4ZjhkOTVmNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTMtMDItMDggIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3
ZWJraXQub3JnPgorCisgICAgICAgIEtpbGwgVGVzdFJ1bm5lcjo6c2V0TWluaW11bVRpbWVySW50
ZXJ2YWw7IGltcGxlbWVudCB0aGUgZmVhdHVyZSB3aXRoIEludGVybmFsU2V0dGluZ3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTM0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ayk6CisKIDIwMTMtMDItMDggIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW92ZSB3b3JrZXJUaHJlYWRDb3VudCBmcm9tIFRlc3RSdW5uZXIg
dG8gV2ViQ29yZSBJbnRlcm5hbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA3NTJiYTRmOGEwY2EyZTY3
YWI4YzQ3N2E0OTgxMmY4M2Y5OTllMjA2Li43YWYwZDNlNzUyMjFmNDg3NWNlM2E5MGZmNzA2ZDU0
ODZlMTcxY2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMDgg
IEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIEtpbGwg
VGVzdFJ1bm5lcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWw7IGltcGxlbWVudCB0aGUgZmVhdHVy
ZSB3aXRoIEludGVybmFsU2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwOTM0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAqIFdlYlZpZXcv
V2ViVmlld1ByaXZhdGUuaDoKKwogMjAxMy0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3Vs
YWluQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHdvcmtlclRocmVhZENvdW50IGZyb20gVGVz
dFJ1bm5lciB0byBXZWJDb3JlIEludGVybmFscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA1OTUxOWQ0MDE1
MjhkNmI1ZDNmZmQ0Mjk5NWZiNzUyODI3ZmE4MDVkLi5hMTUwZjc4NmVlNzY0MjgxZWJhMmJiMzYw
YTE4OTUxZjMzOWRkYTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAy
LTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBL
aWxsIFRlc3RSdW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsOyBpbXBsZW1lbnQgdGhlIGZl
YXR1cmUgd2l0aCBJbnRlcm5hbFNldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5oOgorCiAyMDEzLTAyLTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIE1vdmUgd29ya2VyVGhyZWFkQ291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdl
YkNvcmUgSW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmJkMjY5YTFmOGRiYzM2Y2I5YWFkOGY4YjI2
YmYwYjAzMjgyN2FhZS4uMDAyZTRmNTJiN2RiNDNkYmRmZjNiNzg3OTQ4MDZiMDg2MzkyNGYzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTA4ICBCZW5qYW1pbiBQb3VsYWlu
ICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBLaWxsIFRlc3RSdW5uZXI6OnNldE1p
bmltdW1UaW1lckludGVydmFsOyBpbXBsZW1lbnQgdGhlIGZlYXR1cmUgd2l0aCBJbnRlcm5hbFNl
dHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDkzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOgorICAgICAg
ICAoSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDEzLTAyLTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YnBv
dWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgd29ya2VyVGhyZWFkQ291bnQgZnJvbSBU
ZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCAwNjBjNjIyOTBmNWM0OGQ4MzNiMzk1NzhhNWJkNzY5
OTBjYWEzOGFiLi5lMDgzMzcwZTYzMzllMTcyOTlmZDI4MzQwZjEwMzA3MjQwOWMwOTRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04Nyw2ICs4OCw3IEBAIElu
dGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKFNldHRpbmdzKiBzZXR0aW5ncykKICAgICAs
IG1fb3JpZ2luYWxNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoc2V0dGluZ3MtPm1vY2tTY3JvbGxiYXJz
RW5hYmxlZCgpKQogICAgICwgbV9sYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxl
ZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpsYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJ
RW5hYmxlZCgpKQogICAgICwgbV9pbWFnZXNFbmFibGVkKHNldHRpbmdzLT5hcmVJbWFnZXNFbmFi
bGVkKCkpCisgICAgLCBtX21pbmltdW1UaW1lckludGVydmFsKHNldHRpbmdzLT5taW5ET01UaW1l
ckludGVydmFsKCkpCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICwgbV9zaG91bGREaXNw
bGF5U3VidGl0bGVzKHNldHRpbmdzLT5zaG91bGREaXNwbGF5U3VidGl0bGVzKCkpCiAgICAgLCBt
X3Nob3VsZERpc3BsYXlDYXB0aW9ucyhzZXR0aW5ncy0+c2hvdWxkRGlzcGxheUNhcHRpb25zKCkp
CkBAIC0xMjEsNiArMTIzLDcgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3Rv
cmVUbyhTZXR0aW5ncyogc2V0dGluZ3MpCiAgICAgc2V0dGluZ3MtPnNldE1vY2tTY3JvbGxiYXJz
RW5hYmxlZChtX29yaWdpbmFsTW9ja1Njcm9sbGJhcnNFbmFibGVkKTsKICAgICBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzZXRMYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZCht
X2xhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+
c2V0SW1hZ2VzRW5hYmxlZChtX2ltYWdlc0VuYWJsZWQpOworICAgIHNldHRpbmdzLT5zZXRNaW5E
T01UaW1lckludGVydmFsKG1fbWluaW11bVRpbWVySW50ZXJ2YWwpOwogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKICAgICBzZXR0aW5ncy0+c2V0U2hvdWxkRGlzcGxheVN1YnRpdGxlcyhtX3Nob3Vs
ZERpc3BsYXlTdWJ0aXRsZXMpOwogICAgIHNldHRpbmdzLT5zZXRTaG91bGREaXNwbGF5Q2FwdGlv
bnMobV9zaG91bGREaXNwbGF5Q2FwdGlvbnMpOwpAQCAtNDY2LDQgKzQ2OSwxMCBAQCB2b2lkIElu
dGVybmFsU2V0dGluZ3M6OnNldEltYWdlc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICBzZXR0aW5ncygpLT5zZXRJbWFnZXNFbmFibGVkKGVuYWJsZWQpOwogfQog
Cit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldE1pbmltdW1UaW1lckludGVydmFsKGRvdWJsZSBp
bnRlcnZhbEluU2Vjb25kcywgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0
aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKKyAgICBzZXR0aW5ncygpLT5zZXRNaW5ET01UaW1lcklu
dGVydmFsKGludGVydmFsSW5TZWNvbmRzKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaAppbmRleCA1MGQ3YTc3N2YwNGEzMzFkZGY4ODcxMmI1ZDhjODlh
M2I5ZjQ5MTE1Li5kNjcyNGRhNjliZmM4ZDAxZWFkZDBjNTk5MWFmOTc3ZGMxMTE4ODI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc1LDYgKzc2LDcgQEAgcHVibGlj
OgogICAgICAgICBib29sIG1fb3JpZ2luYWxVc2VzT3ZlcmxheVNjcm9sbGJhcnM7CiAgICAgICAg
IGJvb2wgbV9sYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZDsKICAgICAgICAg
Ym9vbCBtX2ltYWdlc0VuYWJsZWQ7CisgICAgICAgIGRvdWJsZSBtX21pbmltdW1UaW1lckludGVy
dmFsOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICAgICAgYm9vbCBtX3Nob3VsZERpc3Bs
YXlTdWJ0aXRsZXM7CiAgICAgICAgIGJvb2wgbV9zaG91bGREaXNwbGF5Q2FwdGlvbnM7CkBAIC0x
MjMsNiArMTI1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5
KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldExhbmdBdHRyaWJ1
dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0SW1hZ2VzRW5h
YmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldE1pbmltdW1U
aW1lckludGVydmFsKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcywgRXhjZXB0aW9uQ29kZSYpOwog
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFsU2V0dGluZ3MoUGFnZSopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggY2Q4YjY4MzgxMmVl
Nzc3MWI0MmY0YzY3ZGNkYWFmNGQ4Mjk1M2RmNC4uNWRkYjBhZTczYWUzNDE4MDQ2MWZkMDE2YWI3
NWZhZWVjMzMxM2MxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaWRsCkBAIC01OCw0ICs1OCw1IEBACiAgICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLXSBi
b29sZWFuIHNob3VsZERpc3BsYXlUcmFja0tpbmQoaW4gRE9NU3RyaW5nIHRyYWNrS2luZCkgcmFp
c2VzIChET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KGlu
IERPTVN0cmluZyBwb2xpY3kpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0SW1h
Z2VzRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAg
IHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoaW4gZG91YmxlIGludGVydmFsSW5TZWNvbmRz
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRl
eCBiYzEzYWZhYjRmYTE4YWI4YmU2MTk1YmVjMjEwYzYyMGQxZjg4ZTRiLi43MzVhMGU3NGZhMWJk
Mjk3Y2ZiM2I4Njg4MjJkYzU1MGI5MTg0ZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAK
QEAgLTUzNiwxNiArNTM2LDYgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZpbmRT
dHJpbmcoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgZ2NoYXIqIHQKICAgICByZXR1cm4g
Y29yZSh3ZWJWaWV3KS0+ZmluZFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KHRhcmdldFN0cmluZyks
IGZpbmRPcHRpb25zKTsKIH0KIAotZG91YmxlIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZGVm
YXVsdE1pbmltdW1UaW1lckludGVydmFsKCkKLXsKLSAgICByZXR1cm4gU2V0dGluZ3M6OmRlZmF1
bHRNaW5ET01UaW1lckludGVydmFsKCk7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBkb3Vi
bGUgaW50ZXJ2YWwpCi17Ci0gICAgY29yZSh3ZWJWaWV3KS0+c2V0dGluZ3MoKS0+c2V0TWluRE9N
VGltZXJJbnRlcnZhbChpbnRlcnZhbCk7Ci19Ci0KIENTdHJpbmcgRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjphY2Nlc3NpYmlsaXR5SGVscFRleHQoQXRrT2JqZWN0KiBheE9iamVjdCkKIHsKICAg
ICBpZiAoIWF4T2JqZWN0IHx8ICFXRUJLSVRfSVNfQUNDRVNTSUJMRShheE9iamVjdCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5oCmluZGV4IDQ3ZWNhN2EzZDZiYWI3OTIwNjAzZjMwN2E3ZDgxN2FiODgx
MTFhZTcuLmEzNDlmYThjY2VlZGE3NTJkODYyMGU3ZTZmYjBhZWYxZTNkYzE3YWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5oCkBAIC03OCw4ICs3OCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCBleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUoV2ViS2l0V2ViVmlldyosIGNvbnN0IGdjaGFyKiBu
YW1lLCBjb25zdCBnY2hhciogdmFsdWUpOwogICAgIHN0YXRpYyBib29sIGlzQ29tbWFuZEVuYWJs
ZWQoV2ViS2l0V2ViVmlldyosIGNvbnN0IGdjaGFyKiBuYW1lKTsKICAgICBzdGF0aWMgYm9vbCBm
aW5kU3RyaW5nKFdlYktpdFdlYlZpZXcqLCBjb25zdCBnY2hhciosIFdlYktpdEZpbmRPcHRpb25z
KTsKLSAgICBzdGF0aWMgZG91YmxlIGRlZmF1bHRNaW5pbXVtVGltZXJJbnRlcnZhbCgpOyAvLyBO
b3QgcmVhbGx5IHRpZWQgdG8gV2ViVmlldwotICAgIHN0YXRpYyB2b2lkIHNldE1pbmltdW1UaW1l
ckludGVydmFsKFdlYktpdFdlYlZpZXcqLCBkb3VibGUpOwogICAgIHN0YXRpYyB2b2lkIHJlY3Rh
bmdsZUZvclNlbGVjdGlvbihXZWJLaXRXZWJGcmFtZSosIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCop
OwogICAgIHN0YXRpYyB2b2lkIHNjYWxlUGFnZUJ5KFdlYktpdFdlYlZpZXcqLCBmbG9hdCwgZmxv
YXQsIGZsb2F0KTsKICAgICBzdGF0aWMgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYktpdFdlYlZp
ZXcqLCBib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBmYzJjYjNh
OTA5ZWFmNDU5MDY2NDMwNjQ4NTA1NDk2YTk4MDMyMmY4Li40N2UwOTY3NDE5ZDE1ZmY4Yjk2ODU4
MGQ1ZDI1OTliODAxOTJiODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBA
IC0zMDczLDE3ICszMDczLDYgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHRvU3RyaW5nVmVjdG9y
KE5TQXJyYXkqIHBhdHRlcm5zKQogICAgIHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5zZXRTZXJp
YWxMb2FkaW5nRW5hYmxlZChzZXJpYWxpemUpOwogfQogCi0rIChkb3VibGUpX2RlZmF1bHRNaW5p
bXVtVGltZXJJbnRlcnZhbAotewotICAgIHJldHVybiBTZXR0aW5nczo6ZGVmYXVsdE1pbkRPTVRp
bWVySW50ZXJ2YWwoKTsKLX0KLQotLSAodm9pZClfc2V0TWluaW11bVRpbWVySW50ZXJ2YWw6KGRv
dWJsZSlpbnRlcnZhbEluU2Vjb25kcwotewotICAgIGlmIChfcHJpdmF0ZS0+cGFnZSkKLSAgICAg
ICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNldE1pbkRPTVRpbWVySW50ZXJ2YWwoaW50
ZXJ2YWxJblNlY29uZHMpOwotfQotCiArIChCT09MKV9IVFRQUGlwZWxpbmluZ0VuYWJsZWQKIHsK
ICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpodHRwUGlwZWxpbmluZ0VuYWJsZWQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAppbmRleCBhNGM4NWY5NDNm
ZTJhNmQzNTE0YTE2MzU3NGYwYTk0ZjY1ZTNmZmI4Li42ODUzYjM0ODg1MzFmZGVjZTMxYWMzY2U3
ZjE4ZWI5M2E3ZDBhMDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJp
dmF0ZS5oCkBAIC02MjAsMjMgKzYyMCw2IEBAIENvdWxkIGJlIHdvcnRoIGFkZGluZyB0byB0aGUg
QVBJLgogLSAoQk9PTClzZWFyY2hGb3I6KE5TU3RyaW5nICopc3RyaW5nIGRpcmVjdGlvbjooQk9P
TClmb3J3YXJkIGNhc2VTZW5zaXRpdmU6KEJPT0wpY2FzZUZsYWcgd3JhcDooQk9PTCl3cmFwRmxh
ZyBzdGFydEluU2VsZWN0aW9uOihCT09MKXN0YXJ0SW5TZWxlY3Rpb247CiAKIC8qIQotICAgIEBt
ZXRob2QgZGVmYXVsdE1pbmltdW1UaW1lckludGVydmFsCi0gICAgQGRpc2N1c3Npb24gU2hvdWxk
IGNvbnNpZGVyIG1vdmluZyB0aGlzIHRvIHRoZSBwdWJsaWMgQVBJLgotICAgIEByZXN1bHQgUmV0
dXJucyB0aGUgZGVmYXVsdCBtaW5pbXVtIHRpbWVyIGludGVydmFsLgotKi8KLSsgKGRvdWJsZSlf
ZGVmYXVsdE1pbmltdW1UaW1lckludGVydmFsOwotCi0vKiEKLSAgICBAbWV0aG9kIHNldE1pbmlt
dW1UaW1lckludGVydmFsOgotICAgIEBkaXNjdXNzaW9uIFNldHMgdGhlIG1pbmltdW0gaW50ZXJ2
YWwgZm9yIERPTVRpbWVycyBpbiB0aGlzIFdlYlZpZXcuIFRoaXMgbWV0aG9kIGlzCi0gICAgZXhw
b3NlZCBoZXJlIGluIHRoZSBNYWMgcG9ydCByYXRoZXIgdGhhbiB0aHJvdWdoIFdlYlByZWZlcmVu
Y2VzICh3aGljaCBnZW5lcmFsbHkKLSAgICBnb3Zlcm5zIFNldHRpbmdzKSBiZWNhdXNlIHRoaXMg
dmFsdWUgaXMgc29tZXRoaW5nIGFkanVzdGVkIGF0IHJ1biB0aW1lLCBub3Qgc2V0Ci0gICAgZ2xv
YmFsbHkgdmlhICJkZWZhdWx0cyB3cml0ZSIuIFNob3VsZCBjb25zaWRlciBhZGRpbmcgdGhpcyB0
byB0aGUgcHVibGljIEFQSS4KLSAgICBAcGFyYW0gaW50ZXJ2YWxJblNlY29uZHMgVGhlIG5ldyBt
aW5pbXVtIHRpbWVyIGludGVydmFsLCBpbiBzZWNvbmRzLgotKi8KLS0gKHZvaWQpX3NldE1pbmlt
dW1UaW1lckludGVydmFsOihkb3VibGUpaW50ZXJ2YWxJblNlY29uZHM7Ci0KLS8qIQogICAgIEBt
ZXRob2QgX0hUVFBQaXBlbGluaW5nRW5hYmxlZAogICAgIEBhYnN0cmFjdCBDaGVja3MgdGhlIEhU
VFAgcGlwZWxpbmluZyBzdGF0dXMuCiAgICAgQGRpc2N1c3Npb24gRGVmYXVsdHMgdG8gTk8uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IDBiNzg1NmEyM2QzOTIzYWM1MDZkODlkNTdiMTNlYTM3
NTNjMjhhMWIuLjVjMzYyNWFiNmE2MTdhZmU5MjVkYzVlNTFmZGQwYmY5OTg2OTc0ZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwCkBAIC03OTcsMjAgKzc5Nyw2IEBAIFFTdHJpbmdMaXN0IER1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0Ojpjb250ZXh0TWVudShRV2ViUGFnZUFkYXB0ZXIqIHBhZ2UpCiAg
ICAgcmV0dXJuIHBhZ2UtPm1lbnVBY3Rpb25zQXNUZXh0KCk7CiB9CiAKLWRvdWJsZSBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6ZGVmYXVsdE1pbmltdW1UaW1lckludGVydmFsKCkKLXsKLSAgICBy
ZXR1cm4gU2V0dGluZ3M6OmRlZmF1bHRNaW5ET01UaW1lckludGVydmFsKCk7Ci19Ci0KLXZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1pbmltdW1UaW1lckludGVydmFsKFFXZWJQYWdl
QWRhcHRlciogYWRhcHRlciwgZG91YmxlIGludGVydmFsKQotewotICAgIFBhZ2UqIGNvcmVQYWdl
ID0gYWRhcHRlci0+cGFnZTsKLSAgICBpZiAoIWNvcmVQYWdlKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c2V0TWluRE9NVGltZXJJbnRlcnZhbChpbnRlcnZh
bCk7Ci19Ci0KIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQ
b2xpY3lBbGxvd3MoUVdlYlBhZ2VBZGFwdGVyICphZGFwdGVyLCBjb25zdCBRVXJsJiB1cmwsIGNv
bnN0IFFVcmwmIGZpcnN0UGFydHlVcmwpCiB7CiAgICAgUGFnZSogY29yZVBhZ2UgPSBhZGFwdGVy
LT5wYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCmluZGV4IDUxYjg1YTE1MmVmZGM5MjJjN2M4MDI2NmI3
MzMyY2I5NGM1M2RlNTkuLmVjN2IxN2IwMmFlNjRhNzg2YjMxZTUyNWQ1Y2ViYjdmYjk5MGNkMTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0LmgKQEAgLTE4Miw5ICsxODIsNiBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgYWRkVVJMVG9SZWRpcmVjdChjb25zdCBRU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFFT
dHJpbmcmIGRlc3RpbmF0aW9uKTsKICAgICBzdGF0aWMgUVN0cmluZ0xpc3QgY29udGV4dE1lbnUo
UVdlYlBhZ2VBZGFwdGVyKik7CiAKLSAgICBzdGF0aWMgZG91YmxlIGRlZmF1bHRNaW5pbXVtVGlt
ZXJJbnRlcnZhbCgpOyAvLyBOb3QgcmVhbGx5IHRpZWQgdG8gV2ViVmlldwotICAgIHN0YXRpYyB2
b2lkIHNldE1pbmltdW1UaW1lckludGVydmFsKFFXZWJQYWdlQWRhcHRlciosIGRvdWJsZSk7Ci0K
ICAgICBzdGF0aWMgUVVybCBtZWRpYUNvbnRlbnRVcmxCeUVsZW1lbnRJZChRV2ViRnJhbWVBZGFw
dGVyKiwgY29uc3QgUVN0cmluZyYgZWxlbWVudElkKTsKICAgICBzdGF0aWMgdm9pZCBzZXRBbHRl
cm5hdGVIdG1sKFFXZWJGcmFtZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBodG1sLCBjb25zdCBR
VXJsJiBiYXNlVXJsLCBjb25zdCBRVXJsJiBmYWlsaW5nVXJsKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
LmNwcAppbmRleCBjZTg2YTQ1OGVjNmNlNTNkMTliN2I5M2JjMTFhM2ZiZDM4NmUyZTY0Li5iNzdm
ZDAyYWVkNjg0Mjg1YzAyMjY4OTJiMzk5NzE3MGNlZDE2OTVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
LmNwcApAQCAtMjY0LDExICsyNjQsNiBAQCBXS0FycmF5UmVmIFdLQnVuZGxlQ29weU9yaWdpbnNX
aXRoQXBwbGljYXRpb25DYWNoZShXS0J1bmRsZVJlZiBidW5kbGVSZWYpCiAgICAgcmV0dXJuIHRv
QVBJKG9yaWdpbnMucmVsZWFzZSgpLmxlYWtSZWYoKSk7CiB9CiAKLXZvaWQgV0tCdW5kbGVTZXRN
aW5pbXVtVGltZXJJbnRlcnZhbChXS0J1bmRsZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxlUGFnZUdy
b3VwUmVmIHBhZ2VHcm91cFJlZiwgZG91YmxlIHNlY29uZHMpCi17Ci0gICAgdG9JbXBsKGJ1bmRs
ZVJlZiktPnNldE1pbmltdW1UaW1lckludGVydmFsKHRvSW1wbChwYWdlR3JvdXBSZWYpLCBzZWNv
bmRzKTsKLX0KLQogV0tEYXRhUmVmIFdLQnVuZGxlQ3JlYXRlV0tEYXRhRnJvbVVJbnQ4QXJyYXko
V0tCdW5kbGVSZWYgYnVuZGxlLCBKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBkYXRh
KQogewogICAgIFJlZlB0cjxXZWJEYXRhPiB3ZWJEYXRhID0gdG9JbXBsKGJ1bmRsZSktPmNyZWF0
ZVdlYkRhdGFGcm9tVWludDhBcnJheShjb250ZXh0LCBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUHJpdmF0ZS5oCmluZGV4IDIzZTg0MDkyMDZmNmI2ZTAxOGM2YWE2ZjJmNTNiNGM3NTlmOTY5
NjkuLjg4NmNkZTM5NGMzY2Y5ODNiM2FkOTI0NjFlNWQwMjdhMTY0MjAyYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVByaXZhdGUuaApAQCAtNjYsNyArNjYsNiBAQCBXS19FWFBPUlQgdm9pZCBX
S0J1bmRsZVNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1
bmRsZVBhZwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVTZXRXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9uKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVm
IG9yaWdpblN0cmluZ1JlZiwgYm9vbCBhbGxvd2VkKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxl
UmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoV0tCdW5kbGVSZWYgYnVuZGxlLCBX
S0J1bmRsZVBhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgdWludDY0X3QgV0tCdW5kbGVHZXRXZWJO
b3RpZmljYXRpb25JRChXS0J1bmRsZVJlZiBidW5kbGUsIEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U1ZhbHVlUmVmIG5vdGlmaWNhdGlvbik7Ci1XS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNldE1pbmlt
dW1UaW1lckludGVydmFsKFdLQnVuZGxlUmVmIGJ1bmRsZVJlZiwgV0tCdW5kbGVQYWdlR3JvdXBS
ZWYgcGFnZUdyb3VwUmVmLCBkb3VibGUgaW50ZXJ2YWwpOwogV0tfRVhQT1JUIFdLRGF0YVJlZiBX
S0J1bmRsZUNyZWF0ZVdLRGF0YUZyb21VSW50OEFycmF5KFdLQnVuZGxlUmVmIGJ1bmRsZSwgSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgZGF0YSk7CiAKIC8vIFVzZXJDb250ZW50IEFQ
SQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBhNTM3OWNmMmZhNzkzYmFmZDZmZDc1MTYxZTg2
MmNiNDAwZWE4YzVhLi4xMWIzOGQ3MTg3NjJhOTJjZTE1Yjc4M2FhYjdhY2VlNWI4MWY3ZDk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNTg1LDEzICs1ODUsNiBAQCB2b2lkIEluamVjdGVk
QnVuZGxlOjpzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdl
R3JvdXAsIGNvbgogICAgICAgICAoKml0ZXIpLT5zZXR0aW5ncygpLT5zZXRVc2VyU3R5bGVTaGVl
dExvY2F0aW9uKEtVUkwoS1VSTCgpLCBsb2NhdGlvbikpOwogfQogCi12b2lkIEluamVjdGVkQnVu
ZGxlOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3Vw
LCBkb3VibGUgc2Vjb25kcykKLXsKLSAgICBjb25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQ
YWdlR3JvdXA6OnBhZ2VHcm91cChwYWdlR3JvdXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7Ci0g
ICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6aXRlcmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0
ZXIgIT0gcGFnZXMuZW5kKCk7ICsraXRlcikKLSAgICAgICAgKCppdGVyKS0+c2V0dGluZ3MoKS0+
c2V0TWluRE9NVGltZXJJbnRlcnZhbChzZWNvbmRzKTsKLX0KLQogdm9pZCBJbmplY3RlZEJ1bmRs
ZTo6c2V0V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJp
bmcmIG9yaWdpblN0cmluZywgYm9vbCBhbGxvd2VkKQogewogI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5k
ZXggY2U0YmZkMTU0YWRhMGE4N2ExNWU2NGEwMzFkZjBhZDZkZjY2NTVmNy4uNTIxMTdlYTlmYTI3
MWRjNWVlZjE5YTZhNDJiYjI1MmRiMWY4OGUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtMTI0
LDcgKzEyNCw2IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgcGFnZVNpemVBbmRNYXJnaW5zSW5QaXhl
bHMoV2ViRnJhbWUqLCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpOwogICAgIGJv
b2wgaXNQYWdlQm94VmlzaWJsZShXZWJGcmFtZSosIGludCk7CiAgICAgdm9pZCBzZXRVc2VyU3R5
bGVTaGVldExvY2F0aW9uKFdlYlBhZ2VHcm91cFByb3h5KiwgY29uc3QgU3RyaW5nJik7Ci0gICAg
dm9pZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChXZWJQYWdlR3JvdXBQcm94eSosIGRvdWJsZSBz
ZWNvbmRzKTsKICAgICB2b2lkIHNldFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oV2ViUGFnZSos
IGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBib29sIGFsbG93ZWQpOwogICAgIHZvaWQgcmVt
b3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoV2ViUGFnZSopOwogICAgIHVpbnQ2NF90
IHdlYk5vdGlmaWNhdGlvbklEKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjBjMDgwOWM5YWE4ZmI1
NGM4YjRmYzQwOWE3Mzk2ZDI2MGU3ZTMzMS4uYzA2Y2NkMzVhOGRkOTlmZmJjNTQ0MzZiYzVjYjcw
MTZlMWQyOTQ0MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEzLTAyLTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YmVu
amFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBLaWxsIFRlc3RSdW5uZXI6OnNldE1pbmltdW1U
aW1lckludGVydmFsOyBpbXBsZW1lbnQgdGhlIGZlYXR1cmUgd2l0aCBJbnRlcm5hbFNldHRpbmdz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDkK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBHZXQgcmlk
IG9mIFRlc3RSdW5uZXIncyBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCBhbmQgYWxsIHRoZSByZWxh
dGVkIGZ1bmN0aW9ucy4KKworICAgICAgICBUaGlzIGFsc28gZml4ZXMgYW4gb2RkaXR5OgorICAg
ICAgICBUZXN0UnVubmVycyB3ZXJlIGluaXRpYWxpemVkIHdpdGggYSBtaW5pbXVtIHRpbWVyIGlu
dGVydmFsIG9mIDEwIG1pbGxpc2Vjb25kcyBpbnN0ZWFkCisgICAgICAgIG9mIHVzaW5nIHRoZSBk
ZWZhdWx0IHZhbHVlLiBBbGwgd2l0aCB0aGUgc2FtZSBjb3B5IG9mIGFuIG91dGRhdGVkIGNvbW1l
bnQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAg
KFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVyZW5jZXMuaDoK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVu
bmVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OlRlc3RSdW5uZXIp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RS
dW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlByZWZlcmVuY2VzOjpyZXNldCk6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OnJlc2V0KToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgor
ICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRW
YWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcDoK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAg
ICAocmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0
YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5u
ZXJNYWMubW06CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJQYWdlOjpyZXNldFNldHRpbmdzKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJlc2V0
V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L3d4L1Rlc3RSdW5uZXJXeC5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5q
ZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIpOgorCiAy
MDEzLTAyLTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIE1vdmUgd29ya2VyVGhyZWFkQ291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50
ZXJuYWxzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGM4MTdkNTIzMGM0NDhh
N2ExZGQ3ZDc0MzlhYjEyYWEzYTA4OWQzNGIuLmQzYzFmNzVlNmI1ZjJiYzgzNGNmZjEyM2IyMjEz
NzIwM2I3ZTFiMDQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xOTcyLDIw
ICsxOTcyLDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2ltdWxhdGVMZWdhY3lXZWJOb3RpZmljYXRp
b25DbGlja0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXgKICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNldE1pbmltdW1U
aW1lckludGVydmFsQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAg
IGlmIChhcmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOwotCi0gICAgZG91YmxlIG1pbmltdW0gPSBKU1ZhbHVlVG9OdW1iZXIoY29u
dGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pOwotICAgIEFTU0VSVCghKmV4Y2VwdGlvbik7
Ci0KLSAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+
KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+c2V0TWlu
aW11bVRpbWVySW50ZXJ2YWwobWluaW11bSk7Ci0KLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNldFRleHREaXJlY3Rpb25D
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50
Q291bnQgPT0gMSkgewpAQCAtMjIzMSw3ICsyMjE3LDYgQEAgSlNTdGF0aWNGdW5jdGlvbiogVGVz
dFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0SWNvbkRhdGFiYXNlRW5h
YmxlZCIsIHNldEljb25EYXRhYmFzZUVuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCIsIHNldEF1dG9tYXRpY0xpbmtEZXRl
Y3Rpb25FbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0TWFpbkZyYW1lSXNG
aXJzdFJlc3BvbmRlciIsIHNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXJDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAotICAgICAgICB7ICJzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCIsIHNldE1pbmltdW1UaW1l
ckludGVydmFsQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0TW9ja0RldmljZU9yaWVu
dGF0aW9uIiwgc2V0TW9ja0RldmljZU9yaWVudGF0aW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAic2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yIiwgc2V0TW9j
a0dlb2xvY2F0aW9uUG9zaXRpb25VbmF2YWlsYWJsZUVycm9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAic2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24iLCBzZXRNb2NrR2VvbG9jYXRpb25Q
b3NpdGlvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKaW5kZXgg
YWE0YWFjMjFhMGNkMTE3ZGFjYzQ1NThlZDNiY2Q4YjM1ODNhNzViOC4uMmE4YTZkY2NjNTk2MDdj
NmNiMjM4NjMwMTQxYjUzOGZjNzU3M2Y5OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApA
QCAtMzQ1LDggKzM0NSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4
Vmlld1dpZHRoOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhWaWV3SGVpZ2h0OwogCi0g
ICAgdm9pZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUpOwotCiAgICAgdm9pZCBzZXRU
ZXh0RGlyZWN0aW9uKEpTU3RyaW5nUmVmKTsKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgdGl0bGVU
ZXh0RGlyZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90aXRsZVRleHREaXJlY3Rpb247IH0KICAg
ICB2b2lkIHNldFRpdGxlVGV4dERpcmVjdGlvbihjb25zdCBzdGQ6OnN0cmluZyYgZGlyZWN0aW9u
KSB7IG1fdGl0bGVUZXh0RGlyZWN0aW9uID0gZGlyZWN0aW9uOyB9CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCmlu
ZGV4IDZiY2VmZTVkYWI0NWI2NDA5YjFjNTJjNTU3MTQwNjhjMDM4MTVjZmYuLjA0N2JiZGQxMTU1
YjEzYmY0NmY4YzgwY2Y2ODg2MmE3YTFhYzI4NDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCkBAIC01Nzgs
MTEgKzU3OCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGJvb2wp
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRNaW5pbXVt
VGltZXJJbnRlcnZhbChkb3VibGUpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9p
ZCBUZXN0UnVubmVyOjpzZXRUZXh0RGlyZWN0aW9uKEpTU3RyaW5nUmVmKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJlbmNlcy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVyZW5jZXMuaAppbmRleCBhMTM4YmZk
NzAwY2M0Zjc3ZmY1MzhkMDNhMWIyNjlkZDIwZWQ5NjAwLi5jYWYyNjRmZjg1NmE0Y2M1YzA4MDU2
MmYwYmU2NDIxNmM5MmQ3OTcxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlByZWZlcmVuY2VzLmgKQEAg
LTEwNCw3ICsxMDQsNiBAQCBzdHJ1Y3QgV0VCVEVTVFJVTk5FUl9FWFBPUlQgV2ViUHJlZmVyZW5j
ZXMgewogICAgIGJvb2wgY3NzQ3VzdG9tRmlsdGVyRW5hYmxlZDsKICAgICBib29sIHNob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uOwogICAgIGJvb2wgYXN5bmNocm9ub3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQ7Ci0gICAgZG91YmxlIG1pbmltdW1UaW1lckludGVydmFsOwogICAgIGJvb2wgdG91
Y2hEcmFnRHJvcEVuYWJsZWQ7CiAKICAgICBXZWJQcmVmZXJlbmNlcygpIHsgcmVzZXQoKTsgfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
VGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0UnVubmVyLmNwcAppbmRleCAzNDFlMDdlYjQwYWRiZjUxOTliYjU5YjJkYjdkNDBi
MzhhMWJiNjUyLi41MDUwODYwYjk1NzVhZDc2NzhjNmFmNDc5MDQ2ZGFiYzU1M2JkZjc4IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0UnVubmVyLmNwcApAQCAtMjMxLDcgKzIzMSw2IEBAIFRlc3RSdW5uZXI6OlRlc3RS
dW5uZXIoKQogICAgIGJpbmRNZXRob2QoIm92ZXJyaWRlUHJlZmVyZW5jZSIsICZUZXN0UnVubmVy
OjpvdmVycmlkZVByZWZlcmVuY2UpOwogICAgIGJpbmRNZXRob2QoInNldFBsdWdpbnNFbmFibGVk
IiwgJlRlc3RSdW5uZXI6OnNldFBsdWdpbnNFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJzZXRB
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCIsICZUZXN0UnVubmVyOjpzZXRBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCk7Ci0gICAgYmluZE1ldGhvZCgic2V0TWluaW11bVRp
bWVySW50ZXJ2YWwiLCAmVGVzdFJ1bm5lcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwpOwogICAg
IGJpbmRNZXRob2QoInNldFRvdWNoRHJhZ0Ryb3BFbmFibGVkIiwgJlRlc3RSdW5uZXI6OnNldFRv
dWNoRHJhZ0Ryb3BFbmFibGVkKTsKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgbW9kaWZ5IHRoZSBz
dGF0ZSBvZiB0aGUgVGVzdFJ1bm5lci4KQEAgLTE2NDAsMTUgKzE2MzksNiBAQCB2b2lkIFRlc3RS
dW5uZXI6OnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYgYXJndQogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCi12b2lkIFRlc3RSdW5u
ZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1l
bnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAw
ICYmIGFyZ3VtZW50c1swXS5pc051bWJlcigpKSB7Ci0gICAgICAgIG1fZGVsZWdhdGUtPnByZWZl
cmVuY2VzKCktPm1pbmltdW1UaW1lckludGVydmFsID0gYXJndW1lbnRzWzBdLnRvRG91YmxlKCk7
Ci0gICAgICAgIG1fZGVsZWdhdGUtPmFwcGx5UHJlZmVyZW5jZXMoKTsKLSAgICB9Ci0gICAgcmVz
dWx0LT5zZXROdWxsKCk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0VG91Y2hEcmFnRHJvcEVu
YWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3Vs
dCkKIHsKICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9v
bCgpKSB7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKaW5kZXggMGQ1NDFhZmFkYWZjYTU5ZjI4MjdhNTBiOTE2
NGJmOTQyMjZhNmIyOS4uNjA4YTUxZTE1N2UzY2MzYmZkYjYyNGM1YTQxOTczMjE5OWYyNzBiNyAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
VGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1Rlc3RSdW5uZXIuaApAQCAtMzA3LDcgKzMwNyw2IEBAIHByaXZhdGU6CiAgICAgLy8g
Q2hhbmdlcyBhc3luY2hyb25vdXMgc3BlbGxjaGVja2luZyBmbGFnIG9uIHRoZSBzZXR0aW5ncy4K
ICAgICB2b2lkIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAotICAgIHZvaWQgc2V0TWluaW11bVRpbWVySW50
ZXJ2YWwoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgc2V0
VG91Y2hEcmFnRHJvcEVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwogCiAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAK
aW5kZXggMjM5MDkzNTE4NzYxOTFkZDM3ZmJkZmYwMTcyZjU5MTRkYmZmZmEwYi4uZTMxNmY5MTUz
YzU2N2FmZGQ1OGQ2YmUyMGZiNDQ2ZWIzYmIyMmMzNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZlcmVu
Y2VzLmNwcApAQCAtMTMxLDcgKzEzMSw2IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnJlc2V0KCkK
ICAgICBjc3NDdXN0b21GaWx0ZXJFbmFibGVkID0gZmFsc2U7CiAgICAgc2hvdWxkUmVzcGVjdElt
YWdlT3JpZW50YXRpb24gPSBmYWxzZTsKICAgICBhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZCA9IGZhbHNlOwotICAgIG1pbmltdW1UaW1lckludGVydmFsID0gMC4wMTA7IC8vIDEwIG1p
bGxpc2Vjb25kcy4KICAgICB0b3VjaERyYWdEcm9wRW5hYmxlZCA9IGZhbHNlOwogfQogCkBAIC0y
MDIsNyArMjAxLDYgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJW
aWV3KQogICAgIHNldHRpbmdzLT5zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQobW9ja1Njcm9sbGJh
cnNFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRp
b24oc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24pOwogICAgIHNldHRpbmdzLT5zZXRBc3lu
Y2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZCk7Ci0gICAgc2V0dGluZ3MtPnNldE1pbmltdW1UaW1lckludGVydmFsKG1pbmltdW1UaW1l
ckludGVydmFsKTsKICAgICBzZXR0aW5ncy0+c2V0VG91Y2hEcmFnRHJvcEVuYWJsZWQodG91Y2hE
cmFnRHJvcEVuYWJsZWQpOwogCiAgICAgLy8gRml4ZWQgdmFsdWVzLgpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IGU3Mjc0N2VhZDVkNzcxMGM2
NTI3MTA1MjYwODhlYjRmZDZhZTEzZjcuLmYzM2E5MzJhNmZhYWU0YTM4MjA4ZmUwYmVjNDNmZmUz
ZjA1MmM1OGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9z
dC5jcHAKQEAgLTEwNzAsNyArMTA3MCw2IEBAIHZvaWQgV2ViVmlld0hvc3Q6OnJlc2V0KCkKIAog
ICAgIGlmIChtX3dlYldpZGdldCkgewogICAgICAgICB3ZWJWaWV3KCktPm1haW5GcmFtZSgpLT5z
ZXROYW1lKFdlYlN0cmluZygpKTsKLSAgICAgICAgd2ViVmlldygpLT5zZXR0aW5ncygpLT5zZXRN
aW5pbXVtVGltZXJJbnRlcnZhbCh3ZWJraXRfc3VwcG9ydDo6R2V0Rm9yZWdyb3VuZFRhYlRpbWVy
SW50ZXJ2YWwoKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAppbmRleCBlNWE4NGJmOGE3MzVmYmJkZDZhZTczZTQz
Y2Y5MjI3ZGFlOTJiZTMxLi5lMzc4NWIxMDUyOTUyMmIxYjMzY2M0NzM2MTQ3OGFjMGI0YmJkYmQx
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJv
bWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9t
ZS5jcHAKQEAgLTI3Myw3ICsyNzMsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNl
dERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBld2tfdmlld19zZXR0aW5nX2F1dG9f
bG9hZF9pbWFnZXNfc2V0KG1haW5WaWV3KCksIEVJTkFfVFJVRSk7CiAgICAgZXdrX3ZpZXdfc2V0
dGluZ191c2VyX3N0eWxlc2hlZXRfc2V0KG1haW5WaWV3KCksIDApOwogICAgIGV3a192aWV3X3Nl
dHRpbmdfZW5hYmxlX3hzc19hdWRpdG9yX3NldChicm93c2VyLT5tYWluVmlldygpLCBFSU5BX1RS
VUUpOwotICAgIGV3a192aWV3X3NldHRpbmdfbWluaW11bV90aW1lcl9pbnRlcnZhbF9zZXQoYnJv
d3Nlci0+bWFpblZpZXcoKSwgMC4wMTApOyAvLyAxMCBtaWxsaXNlY29uZHMgKERPTVRpbWVyOjpz
X21pbkRlZmF1bHRUaW1lckludGVydmFsKQogICAgIGV3a192aWV3X3NldHRpbmdfZW5hYmxlX3dl
YmdsX3NldChtYWluVmlldygpLCBFSU5BX1RSVUUpOwogICAgIGV3a192aWV3X3NldHRpbmdfZW5h
YmxlX2h5cGVybGlua19hdWRpdGluZ19zZXQobWFpblZpZXcoKSwgRUlOQV9GQUxTRSk7CiAgICAg
ZXdrX3ZpZXdfc2V0dGluZ19pbmNsdWRlX2xpbmtzX2luX2ZvY3VzX2NoYWluX3NldChtYWluVmll
dygpLCBFSU5BX0ZBTFNFKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9U
ZXN0UnVubmVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZs
LmNwcAppbmRleCA1ODBjNTAwZGU5NmQyYzM3Y2IxNzg2NmVkNmY2ODUyZWFkYmY3MWFiLi44OTJk
NjJjYmE2OTdkYWU0YWE4OWY2MjhmYjM0NWRkYWQ5ZWZlOGNlIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCkBAIC03OTYsMTEgKzc5Niw2IEBAIHZvaWQgVGVz
dFJ1bm5lcjo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGJvb2wgc2VyaWFsaXplKQogICAgIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U2VyaWFsaXplSFRUUExvYWRzKHNlcmlhbGl6ZSk7CiB9
CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwoZG91YmxlIG1pbmlt
dW1UaW1lckludGVydmFsKQotewotICAgIGV3a192aWV3X3NldHRpbmdfbWluaW11bV90aW1lcl9p
bnRlcnZhbF9zZXQoYnJvd3Nlci0+bWFpblZpZXcoKSwgbWluaW11bVRpbWVySW50ZXJ2YWwpOwot
fQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFRleHREaXJlY3Rpb24oSlNTdHJpbmdSZWYgZGlyZWN0
aW9uKQogewogICAgIEV3a19UZXh0X0RpcmVjdGlvbiBld2tEaXJlY3Rpb247CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBmYWRjM2VjNzYwMTBhZjk2
YTBhZDM0ZmEwNjNlOGFmOTA5ZWVmOTA1Li42NDVhOTAxNDFlYjY1ZWQzYjQ0OWU5NGVjY2JiYWI4
MDQzNDZhMjUzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRl
clRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5j
cHAKQEAgLTQ4Miw3ICs0ODIsNiBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0
ZW50VmFsdWVzKCkKICAgICBnX29iamVjdF9zZXQoR19PQkpFQ1QoaW5zcGVjdG9yKSwgImphdmFz
Y3JpcHQtcHJvZmlsaW5nLWVuYWJsZWQiLCBGQUxTRSwgTlVMTCk7CiAKICAgICB3ZWJraXRfd2Vi
X3ZpZXdfc2V0X3pvb21fbGV2ZWwod2ViVmlldywgMS4wKTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNldE1pbmltdW1UaW1lckludGVydmFsKHdlYlZpZXcsIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6ZGVmYXVsdE1pbmltdW1UaW1lckludGVydmFsKCkpOwogCiAgICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlTGlzdHMoKTsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCmluZGV4IGEyMzczYjY0ZmZh
NWJhNDFiODFjYjlkY2I0NGQyYmQwMDYwNjEwMzAuLjcyNGVjODhhNWUxZTdkODQ0NTMxYWU2ZjNl
NzMxM2E2N2U3ZWM0YzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0
UnVubmVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0
ay5jcHAKQEAgLTkwMSwxMiArOTAxLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTZXJpYWxpemVI
VFRQTG9hZHMoYm9vbCBzZXJpYWxpemUpCiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpz
ZXRTZXJpYWxpemVIVFRQTG9hZHMoc2VyaWFsaXplKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpz
ZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUgbWluaW11bVRpbWVySW50ZXJ2YWwpCi17Ci0g
ICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3
KG1haW5GcmFtZSk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNaW5pbXVtVGlt
ZXJJbnRlcnZhbCh3ZWJWaWV3LCBtaW5pbXVtVGltZXJJbnRlcnZhbCk7Ci19Ci0KIHZvaWQgVGVz
dFJ1bm5lcjo6c2V0VGV4dERpcmVjdGlvbihKU1N0cmluZ1JlZiBkaXJlY3Rpb24pCiB7CiAgICAg
R093blB0cjxnY2hhcj4gd3JpdGluZ0RpcmVjdGlvbihKU1N0cmluZ0NvcHlVVEY4Q1N0cmluZyhk
aXJlY3Rpb24pKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpp
bmRleCA1Y2ZmNDY2NmU2NjUwMmRlYjQwNDgyZGU3YWFjZmU5NDI3NmQ4YjkzLi45YTIwMjJlMmRm
Mzc1NDAzZWY5MWY2MzdlMGQ5MDY5NzE2ZTg1NTU4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMjY4LDcgKzEyNjgsNiBAQCBzdGF0aWMgdm9pZCBy
ZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcoKQogICAgIFtbd2ViVmll
dyB1bmRvTWFuYWdlcl0gcmVtb3ZlQWxsQWN0aW9uc107CiAgICAgW1dlYlZpZXcgX3JlbW92ZUFs
bFVzZXJDb250ZW50RnJvbUdyb3VwOlt3ZWJWaWV3IGdyb3VwTmFtZV1dOwogICAgIFtbd2ViVmll
dyB3aW5kb3ddIHNldEF1dG9kaXNwbGF5Ok5PXTsKLSAgICBbd2ViVmlldyBfc2V0TWluaW11bVRp
bWVySW50ZXJ2YWw6W1dlYlZpZXcgX2RlZmF1bHRNaW5pbXVtVGltZXJJbnRlcnZhbF1dOwogICAg
IFt3ZWJWaWV3IHNldFRyYWNrc1JlcGFpbnRzOk5PXTsKICAgICAKICAgICByZXNldERlZmF1bHRz
VG9Db25zaXN0ZW50VmFsdWVzKCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvVGVzdFJ1bm5lck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVy
TWFjLm1tCmluZGV4IDdkNjJiOGZhNTFmZGY0ODkwZGYyZmRlYmNhN2YxMThkMTM2MjI3ODIuLjcy
YjI1M2Y4ODk3N2E3ZmJiMWM3N2U4NmM4YTQyNzRlNDU3NDAwNWEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCkBAIC0xMDc0LDExICsxMDc0LDYgQEAgdm9pZCBU
ZXN0UnVubmVyOjpzZXRTZXJpYWxpemVIVFRQTG9hZHMoYm9vbCBzZXJpYWxpemUpCiAgICAgW1dl
YlZpZXcgX3NldExvYWRSZXNvdXJjZXNTZXJpYWxseTpzZXJpYWxpemVdOwogfQogCi12b2lkIFRl
c3RSdW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsKGRvdWJsZSBtaW5pbXVtVGltZXJJbnRl
cnZhbCkKLXsKLSAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBfc2V0TWluaW11bVRpbWVySW50ZXJ2
YWw6bWluaW11bVRpbWVySW50ZXJ2YWxdOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFRleHRE
aXJlY3Rpb24oSlNTdHJpbmdSZWYgZGlyZWN0aW9uTmFtZSkKIHsKICNpZiBfX01BQ19PU19YX1ZF
UlNJT05fTUlOX1JFUVVJUkVEID49IDEwNjAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVt
cFJlbmRlclRyZWVRdC5jcHAKaW5kZXggMjQwOWI2YWI3OGIxMWVmMDZmZTk0MGU1MThhNDVjZTUz
MzFkZjkzNS4uNGY4NWM2MTljYTlmNDk1YzdhYTZiYjY2M2EwNDJkNzA1MDg0N2MyMyAxMDA3NTUK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKQEAgLTIwNSw4ICsy
MDUsNiBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0U2V0dGluZ3MoKQogCiAgICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OnNldFNlYW1sZXNzSUZyYW1lc0VuYWJsZWQodHJ1ZSk7CiAKLSAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwoaGFuZGxlKCksIER1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkZWZhdWx0TWluaW11bVRpbWVySW50ZXJ2YWwoKSk7Ci0K
ICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6cmVzZXRJbnRlcm5hbHNPYmplY3QobWFpbkZy
YW1lKCktPmhhbmRsZSgpKTsKIAogICAgIG1fcGVuZGluZ0dlb2xvY2F0aW9uUmVxdWVzdHMuY2xl
YXIoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCmluZGV4IDZkYWMy
MmQ4NmI5OGQwZDE1YjcxYWE1YzJiMjI3YWFlZmVkZDJlZDUuLjgyNmU5ODZiYmFlOGUyMjMyZGRj
MjkxODg2YjA4NTBkNGViMTdlMDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L1Rlc3RSdW5uZXJRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5l
clF0LmNwcApAQCAtODczLDExICs4NzMsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OmFkZFVSTFRvUmVk
aXJlY3QoY29uc3QgUVN0cmluZyYgb3JpZ2luLCBjb25zdCBRU3RyaW5nJiBkZXN0aW5hdAogICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjphZGRVUkxUb1JlZGlyZWN0KG9yaWdpbiwgZGVzdGlu
YXRpb24pOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsKGRv
dWJsZSBtaW5pbXVtVGltZXJJbnRlcnZhbCkKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dDo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwobV9kcnQtPnBhZ2VBZGFwdGVyKCksIG1pbmltdW1U
aW1lckludGVydmFsKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpvcmlnaW5zV2l0aExvY2FsU3Rv
cmFnZSgpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
VGVzdFJ1bm5lclF0LmgKaW5kZXggZWMzNWE5MWEyZTkwYTBkYTBjMjdkMzNmMWZiOTgyNzc1NmQ3
OTExNi4uMmNmZmY2NTdlNzlkZGVhZTJiZDJjOGYzMzY4ZGNiMjJhMzczYzhiNSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKQEAgLTI1OCw4ICsyNTgsNiBAQCBwdWJsaWMg
UV9TTE9UUzoKICAgICB2b2lkIGV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkQW5kUmV0dXJu
VmFsdWUoaW50IHdvcmxkSUQsIGNvbnN0IFFTdHJpbmcmIHNjcmlwdCk7CiAgICAgdm9pZCBldmFs
dWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZChpbnQgd29ybGRJRCwgY29uc3QgUVN0cmluZyYgc2Ny
aXB0KTsKICAgICB2b2lkIGFkZFVzZXJTdHlsZVNoZWV0KGNvbnN0IFFTdHJpbmcmIHNvdXJjZUNv
ZGUpOwotCi0gICAgdm9pZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUpOwogICAgIAog
ICAgIHZvaWQgb3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKTsKICAgICB2b2lkIGRlbGV0ZUFsbExv
Y2FsU3RvcmFnZSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBS
ZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5j
cHAKaW5kZXggZTllODRiODQ4YWU3MTdmNDFhYzk2YzQ3MjlkZDI5MTYxYTRjYjJlYS4uMDRjMTkz
Njg4MDlhMzQyZWJjZWY1MjQ3MzRkNTk0N2I1YmFlNzM2YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC05MDgsMTAgKzkwOCw2IEBAIHN0YXRpYyB2
b2lkIHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgaWYg
KCF3ZWJWaWV3UHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZG91YmxlIG1pbmltdW1J
bnRlcnZhbCA9IDA7Ci0gICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3UHJpdmF0ZS0+ZGVmYXVsdE1p
bmltdW1UaW1lckludGVydmFsKCZtaW5pbXVtSW50ZXJ2YWwpKSkKLSAgICAgICAgd2ViVmlld1By
aXZhdGUtPnNldE1pbmltdW1UaW1lckludGVydmFsKG1pbmltdW1JbnRlcnZhbCk7Ci0KICAgICBI
V05EIHZpZXdXaW5kb3c7CiAgICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3UHJpdmF0ZS0+dmlld1dp
bmRvdyhyZWludGVycHJldF9jYXN0PE9MRV9IQU5ETEUqPigmdmlld1dpbmRvdykpKSAmJiB2aWV3
V2luZG93KQogICAgICAgICBTZXRGb2N1cyh2aWV3V2luZG93KTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAppbmRleCBmZmMxYTdjZTcyYjY2ZGQ2OTk5MTE5YTdj
OGNiNzg3NmM3NzVkYjY4Li5hMzM2N2JmODMyZjBjNjAyNDQxZWFjZTRkZWVhYmM3MTBmOWM3NDM0
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCkBAIC0xMjcw
LDE5ICsxMjcwLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpkZWxldGVMb2NhbFN0b3JhZ2VGb3JPcmln
aW4oSlNTdHJpbmdSZWYgVVJMKQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiB9CiAKLXZvaWQg
VGVzdFJ1bm5lcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwoZG91YmxlIG1pbmltdW1UaW1lcklu
dGVydmFsKQotewotICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKLSAgICBpZiAoRkFJTEVE
KGZyYW1lLT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIENPTVB0
cjxJV2ViVmlld1ByaXZhdGU+IHZpZXdQcml2YXRlKFF1ZXJ5LCB3ZWJWaWV3KTsKLSAgICBpZiAo
IXZpZXdQcml2YXRlKQotICAgICAgICByZXR1cm47Ci0KLSAgICB2aWV3UHJpdmF0ZS0+c2V0TWlu
aW11bVRpbWVySW50ZXJ2YWwobWluaW11bVRpbWVySW50ZXJ2YWwpOwotfQotCiB2b2lkIFRlc3RS
dW5uZXI6OnNldFRleHREaXJlY3Rpb24oSlNTdHJpbmdSZWYgZGlyZWN0aW9uKQogewogICAgIENP
TVB0cjxJV2ViRnJhbWVQcml2YXRlPiBmcmFtZVByaXZhdGUoUXVlcnksIGZyYW1lKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCmluZGV4IDI2M2YwMzMxMmEyNWM3YjI4
NWFkYjM5ZjljYzM1Mjg0NGU5NmU3NzkuLmIwNGVjMzlkZWI1Yjc3ODNmN2Q0MjJmNTU4NjMwYTg5
NmIxZTU1MmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJX
eC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcApAQCAt
NTAyLDExICs1MDIsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNlcmlhbGl6ZUhUVFBMb2Fkcyhi
b29sKQogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0
TWluaW11bVRpbWVySW50ZXJ2YWwoZG91YmxlIGludGVydmFsKQotewotCi19Ci0KIHZvaWQgVGVz
dFJ1bm5lcjo6c3luY0xvY2FsU3RvcmFnZSgpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudC4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGwgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCmluZGV4IDA5MjhmMWE5ZTU5ODMwNzFmMTRkM2QzZjY4
MmYwYjNlMzE4MmFiMTAuLmZlYWI2YmI3MGRmMWUwOTdlNzZkMjUyYjJkNzdjMTkwZDhlYzg4YTgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbApAQCAtNjcsNyArNjcsNiBAQCBpbnRlcmZhY2Ug
VGVzdFJ1bm5lciB7CiAgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShp
biBET01TdHJpbmcgc291cmNlT3JpZ2luLCBpbiBET01TdHJpbmcgZGVzdGluYXRpb25Qcm90b2Nv
bCwgaW4gRE9NU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgaW4gYm9vbGVhbiBhbGxvd0Rlc3RpbmF0
aW9uU3ViZG9tYWlucyk7CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQoaW4gYm9v
bGVhbiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKGluIERPTVN0
cmluZyBsb2NhdGlvbik7Ci0gICAgdm9pZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChpbiBkb3Vi
bGUgaW50ZXJ2YWwpOyAvLyBJbnRlcnZhbCBzcGVjaWZpZWQgaW4gc2Vjb25kcy4KICAgICB2b2lk
IHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChpbiBib29sZWFuIHZhbHVlKTsKICAgICB2b2lk
IHNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhpbiBib29sZWFuIGVuYWJsZWQpOwogICAg
IHZvaWQgc2V0U2VyaWFsaXplSFRUUExvYWRzKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IGJhZGNh
M2ZjYmU5NWE5Y2E5MjgzN2E0ZDY1OWNmYjg3YmNjYTRkOWEuLjkwOTRhNjYxYTBhOGM3MGQ2ZDQx
MGZhOWMxNjYzZTA0MGY5ZGY1ZTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0yNTAsNyArMjUwLDYg
QEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6YmVnaW5UZXN0aW5nKFdLRGljdGlvbmFyeVJlZiBzZXR0
aW5ncykKICAgICBXS0J1bmRsZVNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKG1fYnVuZGxl
LCBtX3BhZ2VHcm91cCwgdHJ1ZSk7CiAgICAgV0tCdW5kbGVTZXRGcmFtZUZsYXR0ZW5pbmdFbmFi
bGVkKG1fYnVuZGxlLCBtX3BhZ2VHcm91cCwgZmFsc2UpOwogICAgIFdLQnVuZGxlU2V0TWluaW11
bUxvZ2ljYWxGb250U2l6ZShtX2J1bmRsZSwgbV9wYWdlR3JvdXAsIDkpOwotICAgIFdLQnVuZGxl
U2V0TWluaW11bVRpbWVySW50ZXJ2YWwobV9idW5kbGUsIG1fcGFnZUdyb3VwLCAwLjAxMCk7IC8v
IDEwIG1pbGxpc2Vjb25kcyAoRE9NVGltZXI6OnNfbWluRGVmYXVsdFRpbWVySW50ZXJ2YWwpCiAg
ICAgV0tCdW5kbGVTZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQobV9idW5kbGUsIG1fcGFnZUdy
b3VwLCBmYWxzZSk7CiAgICAgV0tCdW5kbGVTZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMo
bV9idW5kbGUsIG1fcGFnZUdyb3VwLCB0cnVlKTsKICAgICBXS0J1bmRsZVNldFBsdWdpbnNFbmFi
bGVkKG1fYnVuZGxlLCBtX3BhZ2VHcm91cCwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCBlNzMzYzU0Njg3
MTgyMGQ0YTA3NGZlZjQ0ODY2ZGVkZGUxOTk3ZWQzLi40MGVkNWEyZTE4ODY4OWViZWQwYTZhMDkw
ZTk1NWYyOGMwNmU1ZDZhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTY1NiwxMSArNjU2LDYgQEAgdm9pZCBUZXN0
UnVubmVyOjpzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKEpTU3RyaW5nUmVmIGxvY2F0aW9uKQog
ICAgICAgICBzZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQodHJ1ZSk7CiB9CiAKLXZvaWQgVGVzdFJ1
bm5lcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwoZG91YmxlIHNlY29uZHMpCi17Ci0gICAgV0tC
dW5kbGVTZXRNaW5pbXVtVGltZXJJbnRlcnZhbChJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVu
ZGxlKCksIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlR3JvdXAoKSwgc2Vjb25kcyk7Ci19
Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGJvb2wgZW5h
YmxlZCkKIHsKICAgICBXS0J1bmRsZVNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChJbmplY3Rl
ZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdl
R3JvdXAoKSwgZW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IGExNzYyMTU4NDliNzNkMDM5N2U2ZDYzODQ2ZWI3
YTJiMGViMzhkNGYuLmViNTYxNjliNjY3YTYyMDYzOGRkYTNhZmQ2MDQ5ZTdjODI5NjJlYWEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5oCkBAIC0xMTEsNyArMTExLDYgQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBk
ZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxs
b3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRFbmFi
bGVkKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihKU1N0cmluZ1Jl
Zik7Ci0gICAgdm9pZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUgc2Vjb25kcyk7IC8v
IEludGVydmFsIHNwZWNpZmllZCBpbiBzZWNvbmRzLgogICAgIHZvaWQgc2V0U3BhdGlhbE5hdmln
YXRpb25FbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1l
bnRzKGJvb2wpOwogICAgIHZvaWQgc2V0U2VyaWFsaXplSFRUUExvYWRzKCk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmIw
ZDk5ZWE5MmYyZTlmNzIxZTcwOTZlZDZhYWY5YzUwMjgyYWY5Yi4uYjBmOTcxNTI1MmMwYWFmZDBm
ZTY5YjdlNmM1OTMwNzFiOTVjNzI2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTAyLTA4
ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBLaWxs
IFRlc3RSdW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsOyBpbXBsZW1lbnQgdGhlIGZlYXR1
cmUgd2l0aCBJbnRlcm5hbFNldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDkzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIHRlc3RzIHRvIHVzZSBJbnRlcm5hbFNldHRpbmdz
LgorCisgICAgICAgICogZmFzdC9kb20vdGltZXItaW5jcmVhc2UtbWluLWludGVydmFsLWFuZC1y
ZXNldC1wYXJ0LTEuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS90aW1lci1pbmNyZWFzZS1taW4t
aW50ZXJ2YWwtcmVwZWF0aW5nLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vdGltZXItaW5jcmVh
c2UtbWluLWludGVydmFsLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vdGltZXItaW5jcmVhc2Ut
dGhlbi1kZWNyZWFzZS1taW4taW50ZXJ2YWwtcmVwZWF0aW5nLmh0bWw6CisgICAgICAgICogZmFz
dC9kb20vdGltZXItaW5jcmVhc2UtdGhlbi1kZWNyZWFzZS1taW4taW50ZXJ2YWwuaHRtbDoKKwog
MjAxMy0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNb3ZlIHdvcmtlclRocmVhZENvdW50IGZyb20gVGVzdFJ1bm5lciB0byBXZWJDb3JlIElu
dGVybmFscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItaW5jcmVhc2Ut
bWluLWludGVydmFsLWFuZC1yZXNldC1wYXJ0LTEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3RpbWVyLWluY3JlYXNlLW1pbi1pbnRlcnZhbC1hbmQtcmVzZXQtcGFydC0xLmh0bWwKaW5kZXgg
NGRjNGY4NWQ4NWQwNDg0ZmY1MjhkNmJmMWM1MzQ3MTVlMmJlOGU0My4uMjhlNWJhZjQ0OTBjOWE5
MjEyYTlkYThhMjZlZmQzM2Q1ODRlYzBiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vdGltZXItaW5jcmVhc2UtbWluLWludGVydmFsLWFuZC1yZXNldC1wYXJ0LTEuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1pbmNyZWFzZS1taW4taW50ZXJ2YWwtYW5kLXJl
c2V0LXBhcnQtMS5odG1sCkBAIC0xNyw3ICsxNyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICAvLyBNYWtlIHRpbWVycyBydW4gbm8g
bW9yZSBvZnRlbiB0aGFuIHR3aWNlIGEgc2Vjb25kLgotICAgIHRlc3RSdW5uZXIuc2V0TWluaW11
bVRpbWVySW50ZXJ2YWwoMC41KTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0TWluaW11bVRp
bWVySW50ZXJ2YWwoMC41KTsKIAogICAgIC8vIFBhcnQgMiBvZiB0aGlzIHRlc3QgKHdoaWNoIHdp
bGwgbGlrZWx5IGJlIGV4ZWN1dGVkIGltbWVkaWF0ZWx5CiAgICAgLy8gYWZ0ZXIgdGhpcyBvbmUg
YnkgdGhlIGhhcm5lc3MpIHZlcmlmaWVzIHRoYXQgdGhlIG1pbmltdW0gdGltZXIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLW1pbi1pbnRlcnZhbC1yZXBl
YXRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLW1pbi1pbnRl
cnZhbC1yZXBlYXRpbmcuaHRtbAppbmRleCA1M2Q3YTRmMTZmMjFlYWJkNzIzZDFmMGFmY2Q2NmYw
YTk2MTExZjVhLi4yNWM3ZWE4YWVmN2E5MmM1NTE4NzZiZGEzYjEwYWEyNTU4NTE5ZTU3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1pbmNyZWFzZS1taW4taW50ZXJ2YWwt
cmVwZWF0aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItaW5jcmVhc2Ut
bWluLWludGVydmFsLXJlcGVhdGluZy5odG1sCkBAIC0zMyw3ICszMyw3IEBAIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAgICAvLyBNYWtl
IHRpbWVycyBydW4gbm8gbW9yZSBvZnRlbiB0aGFuIHR3aWNlIGEgc2Vjb25kLgotICAgIHRlc3RS
dW5uZXIuc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoMC41KTsKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoMC41KTsKIAogICAgIHNldEludGVydmFsKHNsb3dU
aW1lb3V0SGFuZGxlciwgMTAwMCk7CiAgICAgc2V0SW50ZXJ2YWwoZmFzdFRpbWVvdXRIYW5kbGVy
LCAxKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLW1p
bi1pbnRlcnZhbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItaW5jcmVhc2UtbWlu
LWludGVydmFsLmh0bWwKaW5kZXggZTU0ZjQ2YmY4NTc1Y2Q0ODI5ZjQ2OWY3ZDA5Y2IyNjE4NGU4
NWRmMy4uNjEzNzY2NzFjYzc1NDEzNjFmYjk3MTM3NWFkNWRkMTE3ZTczMjQzNyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItaW5jcmVhc2UtbWluLWludGVydmFsLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItaW5jcmVhc2UtbWluLWludGVydmFsLmh0
bWwKQEAgLTM0LDcgKzM0LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKIAogICAgIC8vIE1ha2UgdGltZXJzIHJ1biBubyBtb3JlIG9mdGVu
IHRoYW4gdHdpY2UgYSBzZWNvbmQuCi0gICAgdGVzdFJ1bm5lci5zZXRNaW5pbXVtVGltZXJJbnRl
cnZhbCgwLjUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRNaW5pbXVtVGltZXJJbnRlcnZh
bCgwLjUpOwogCiAgICAgc2V0VGltZW91dChzbG93VGltZW91dEhhbmRsZXIsIDEwMDApOwogICAg
IHNldFRpbWVvdXQoZmFzdFRpbWVvdXRIYW5kbGVyLCAxKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLXRoZW4tZGVjcmVhc2UtbWluLWludGVydmFsLXJl
cGVhdGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItaW5jcmVhc2UtdGhlbi1k
ZWNyZWFzZS1taW4taW50ZXJ2YWwtcmVwZWF0aW5nLmh0bWwKaW5kZXggNThiZmZiMTA4MmY0MTA3
MjMwYTc5YzBkY2MwOWQzZjk1OTA2NGJkNy4uNzMwOTYxN2M1MzYzOTIwZTk0NzQ3YjY2NWRjNzQ2
YWY4OGY4Zjk2MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItaW5jcmVh
c2UtdGhlbi1kZWNyZWFzZS1taW4taW50ZXJ2YWwtcmVwZWF0aW5nLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vdGltZXItaW5jcmVhc2UtdGhlbi1kZWNyZWFzZS1taW4taW50ZXJ2YWwt
cmVwZWF0aW5nLmh0bWwKQEAgLTMzLDcgKzMzLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAogICAgIC8vIE1ha2UgdGltZXJzIHJ1biBu
byBtb3JlIG9mdGVuIHRoYW4gb25jZSBldmVyeSB0d28gc2Vjb25kcy4KLSAgICB0ZXN0UnVubmVy
LnNldE1pbmltdW1UaW1lckludGVydmFsKDIuMCk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dE1pbmltdW1UaW1lckludGVydmFsKDIuMCk7CiAKICAgICBzZXRJbnRlcnZhbChzbG93VGltZW91
dEhhbmRsZXIsIDEwMDApOwogICAgIHNldEludGVydmFsKGZhc3RUaW1lb3V0SGFuZGxlciwgMSk7
CkBAIC00Miw3ICs0Miw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgLy8gSWYgdGhpcyBk
b2Vzbid0IGNhdXNlIHRpbWVycyB0byBnZXQgcmUtZXZhbHVhdGVkIGltbWVkaWF0ZWx5LAogICAg
IC8vIHRoZSBmYXN0IHRpbWVvdXQgaGFuZGxlciB3b24ndCBnZXQgY2FsbGVkIGZvciB1cCB0byB0
d28gc2Vjb25kcywKICAgICAvLyB3aGljaCB3b3VsZCBsZWFkIHRvIHBvb3IgcmVzcG9uc2l2ZW5l
c3MuCi0gICAgdGVzdFJ1bm5lci5zZXRNaW5pbXVtVGltZXJJbnRlcnZhbCgwLjAwNCk7CisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldE1pbmltdW1UaW1lckludGVydmFsKDAuMDA0KTsKIH0KIDwv
c2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXIt
aW5jcmVhc2UtdGhlbi1kZWNyZWFzZS1taW4taW50ZXJ2YWwuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3RpbWVyLWluY3JlYXNlLXRoZW4tZGVjcmVhc2UtbWluLWludGVydmFsLmh0bWwKaW5k
ZXggNzk5N2QzMGMxYjlmNDZlMjUyNzY0Mjg0YjUyY2ZhNWZiZDY4OGY5ZS4uZTJjYWViYjE0MWM1
ZjMyOWVkZGYxN2ExYTNkM2VmNzg0OTk3ZTViNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vdGltZXItaW5jcmVhc2UtdGhlbi1kZWNyZWFzZS1taW4taW50ZXJ2YWwuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1pbmNyZWFzZS10aGVuLWRlY3JlYXNlLW1pbi1p
bnRlcnZhbC5odG1sCkBAIC0zNCw3ICszNCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAgICAvLyBNYWtlIHRpbWVycyBydW4gbm8g
bW9yZSBvZnRlbiB0aGFuIG9uY2UgZXZlcnkgdHdvIHNlY29uZHMuCi0gICAgdGVzdFJ1bm5lci5z
ZXRNaW5pbXVtVGltZXJJbnRlcnZhbCgyLjApOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRN
aW5pbXVtVGltZXJJbnRlcnZhbCgyLjApOwogCiAgICAgc2V0VGltZW91dChzbG93VGltZW91dEhh
bmRsZXIsIDEwMDApOwogICAgIHNldFRpbWVvdXQoZmFzdFRpbWVvdXRIYW5kbGVyLCAxKTsKQEAg
LTQzLDcgKzQzLDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICAvLyBJZiB0aGlzIGRvZXNu
J3QgY2F1c2UgdGltZXJzIHRvIGdldCByZS1ldmFsdWF0ZWQgaW1tZWRpYXRlbHksCiAgICAgLy8g
dGhlIGZhc3QgdGltZW91dCBoYW5kbGVyIHdvbid0IGdldCBjYWxsZWQgZm9yIHVwIHRvIHR3byBz
ZWNvbmRzLAogICAgIC8vIHdoaWNoIHdvdWxkIGxlYWQgdG8gcG9vciByZXNwb25zaXZlbmVzcy4K
LSAgICB0ZXN0UnVubmVyLnNldE1pbmltdW1UaW1lckludGVydmFsKDAuMDA0KTsKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoMC4wMDQpOwogfQogPC9zY3Jp
cHQ+CiA8L2hlYWQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187417</attachid>
            <date>2013-02-08 22:37:50 -0800</date>
            <delta_ts>2013-02-10 13:27:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109349-20130208223424.patch</filename>
            <type>text/plain</type>
            <size>47935</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ4MWYyM2I0ODNlZWZk
ODM0MDFmNTdlMGYwODFjYzdkMzI4Y2ZiMi4uNjAyNmE2M2YxNmU5ZGQ2ZjkyZDYxODE4OTE5Nzc3
NTY0NTc4MzI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAyLTA4ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBLaWxsIFRlc3RS
dW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsOyBpbXBsZW1lbnQgdGhlIGZlYXR1cmUgd2l0
aCBJbnRlcm5hbFNldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDkzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeHBvc2Ugc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoKSBhbmQgaW1wbGVtZW50
IHRoZSBiYWNrdXAvcmVzdG9yZSB0byBrZWVwCisgICAgICAgIGEgY29uc2lzdGVudCBzdGF0ZSBi
ZXR3ZWVuIHRlc3RzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldE1pbmltdW1UaW1lckludGVydmFs
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oOgorICAgICAgICAoQmFja3VwKToKKyAgICAgICAgKEludGVybmFsU2V0dGluZ3MpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKIDIwMTMtMDItMDggIEJlbmph
bWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSB3b3JrZXJU
aHJlYWRDb3VudCBmcm9tIFRlc3RSdW5uZXIgdG8gV2ViQ29yZSBJbnRlcm5hbHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5n
ZUxvZwppbmRleCA3ZTc4ZmNkY2YyY2U1YzYxMTJiZmU3MTcxN2Q5MTA1NzM3ZTkyMmZiLi5iNGZm
ZGMzNzVkNWVhNjZmYjRkODRmZDQ4ZDA0YmU4ZjhkOTVmNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTMtMDItMDggIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3
ZWJraXQub3JnPgorCisgICAgICAgIEtpbGwgVGVzdFJ1bm5lcjo6c2V0TWluaW11bVRpbWVySW50
ZXJ2YWw7IGltcGxlbWVudCB0aGUgZmVhdHVyZSB3aXRoIEludGVybmFsU2V0dGluZ3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTM0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ayk6CisKIDIwMTMtMDItMDggIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW92ZSB3b3JrZXJUaHJlYWRDb3VudCBmcm9tIFRlc3RSdW5uZXIg
dG8gV2ViQ29yZSBJbnRlcm5hbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA3NTJiYTRmOGEwY2EyZTY3
YWI4YzQ3N2E0OTgxMmY4M2Y5OTllMjA2Li43YWYwZDNlNzUyMjFmNDg3NWNlM2E5MGZmNzA2ZDU0
ODZlMTcxY2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMDgg
IEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIEtpbGwg
VGVzdFJ1bm5lcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWw7IGltcGxlbWVudCB0aGUgZmVhdHVy
ZSB3aXRoIEludGVybmFsU2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwOTM0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAqIFdlYlZpZXcv
V2ViVmlld1ByaXZhdGUuaDoKKwogMjAxMy0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3Vs
YWluQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHdvcmtlclRocmVhZENvdW50IGZyb20gVGVz
dFJ1bm5lciB0byBXZWJDb3JlIEludGVybmFscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA1OTUxOWQ0MDE1
MjhkNmI1ZDNmZmQ0Mjk5NWZiNzUyODI3ZmE4MDVkLi5hMTUwZjc4NmVlNzY0MjgxZWJhMmJiMzYw
YTE4OTUxZjMzOWRkYTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAy
LTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBL
aWxsIFRlc3RSdW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsOyBpbXBsZW1lbnQgdGhlIGZl
YXR1cmUgd2l0aCBJbnRlcm5hbFNldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5oOgorCiAyMDEzLTAyLTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIE1vdmUgd29ya2VyVGhyZWFkQ291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdl
YkNvcmUgSW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmJkMjY5YTFmOGRiYzM2Y2I5YWFkOGY4YjI2
YmYwYjAzMjgyN2FhZS4uMDAyZTRmNTJiN2RiNDNkYmRmZjNiNzg3OTQ4MDZiMDg2MzkyNGYzZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTA4ICBCZW5qYW1pbiBQb3VsYWlu
ICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBLaWxsIFRlc3RSdW5uZXI6OnNldE1p
bmltdW1UaW1lckludGVydmFsOyBpbXBsZW1lbnQgdGhlIGZlYXR1cmUgd2l0aCBJbnRlcm5hbFNl
dHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDkzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOgorICAgICAg
ICAoSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDEzLTAyLTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YnBv
dWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgd29ya2VyVGhyZWFkQ291bnQgZnJvbSBU
ZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCAwNjBjNjIyOTBmNWM0OGQ4MzNiMzk1NzhhNWJkNzY5
OTBjYWEzOGFiLi5lMDgzMzcwZTYzMzllMTcyOTlmZDI4MzQwZjEwMzA3MjQwOWMwOTRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTEsNSArMSw2
IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04Nyw2ICs4OCw3IEBAIElu
dGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKFNldHRpbmdzKiBzZXR0aW5ncykKICAgICAs
IG1fb3JpZ2luYWxNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoc2V0dGluZ3MtPm1vY2tTY3JvbGxiYXJz
RW5hYmxlZCgpKQogICAgICwgbV9sYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxl
ZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpsYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJ
RW5hYmxlZCgpKQogICAgICwgbV9pbWFnZXNFbmFibGVkKHNldHRpbmdzLT5hcmVJbWFnZXNFbmFi
bGVkKCkpCisgICAgLCBtX21pbmltdW1UaW1lckludGVydmFsKHNldHRpbmdzLT5taW5ET01UaW1l
ckludGVydmFsKCkpCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICwgbV9zaG91bGREaXNw
bGF5U3VidGl0bGVzKHNldHRpbmdzLT5zaG91bGREaXNwbGF5U3VidGl0bGVzKCkpCiAgICAgLCBt
X3Nob3VsZERpc3BsYXlDYXB0aW9ucyhzZXR0aW5ncy0+c2hvdWxkRGlzcGxheUNhcHRpb25zKCkp
CkBAIC0xMjEsNiArMTIzLDcgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3Rv
cmVUbyhTZXR0aW5ncyogc2V0dGluZ3MpCiAgICAgc2V0dGluZ3MtPnNldE1vY2tTY3JvbGxiYXJz
RW5hYmxlZChtX29yaWdpbmFsTW9ja1Njcm9sbGJhcnNFbmFibGVkKTsKICAgICBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzZXRMYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZCht
X2xhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+
c2V0SW1hZ2VzRW5hYmxlZChtX2ltYWdlc0VuYWJsZWQpOworICAgIHNldHRpbmdzLT5zZXRNaW5E
T01UaW1lckludGVydmFsKG1fbWluaW11bVRpbWVySW50ZXJ2YWwpOwogI2lmIEVOQUJMRShWSURF
T19UUkFDSykKICAgICBzZXR0aW5ncy0+c2V0U2hvdWxkRGlzcGxheVN1YnRpdGxlcyhtX3Nob3Vs
ZERpc3BsYXlTdWJ0aXRsZXMpOwogICAgIHNldHRpbmdzLT5zZXRTaG91bGREaXNwbGF5Q2FwdGlv
bnMobV9zaG91bGREaXNwbGF5Q2FwdGlvbnMpOwpAQCAtNDY2LDQgKzQ2OSwxMCBAQCB2b2lkIElu
dGVybmFsU2V0dGluZ3M6OnNldEltYWdlc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25D
b2RlJiBlYykKICAgICBzZXR0aW5ncygpLT5zZXRJbWFnZXNFbmFibGVkKGVuYWJsZWQpOwogfQog
Cit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldE1pbmltdW1UaW1lckludGVydmFsKGRvdWJsZSBp
bnRlcnZhbEluU2Vjb25kcywgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0
aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKKyAgICBzZXR0aW5ncygpLT5zZXRNaW5ET01UaW1lcklu
dGVydmFsKGludGVydmFsSW5TZWNvbmRzKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaAppbmRleCA1MGQ3YTc3N2YwNGEzMzFkZGY4ODcxMmI1ZDhjODlh
M2I5ZjQ5MTE1Li5kNjcyNGRhNjliZmM4ZDAxZWFkZDBjNTk5MWFmOTc3ZGMxMTE4ODI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTc1LDYgKzc2LDcgQEAgcHVibGlj
OgogICAgICAgICBib29sIG1fb3JpZ2luYWxVc2VzT3ZlcmxheVNjcm9sbGJhcnM7CiAgICAgICAg
IGJvb2wgbV9sYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZDsKICAgICAgICAg
Ym9vbCBtX2ltYWdlc0VuYWJsZWQ7CisgICAgICAgIGRvdWJsZSBtX21pbmltdW1UaW1lckludGVy
dmFsOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICAgICAgYm9vbCBtX3Nob3VsZERpc3Bs
YXlTdWJ0aXRsZXM7CiAgICAgICAgIGJvb2wgbV9zaG91bGREaXNwbGF5Q2FwdGlvbnM7CkBAIC0x
MjMsNiArMTI1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5
KGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldExhbmdBdHRyaWJ1
dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0SW1hZ2VzRW5h
YmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldE1pbmltdW1U
aW1lckludGVydmFsKGRvdWJsZSBpbnRlcnZhbEluU2Vjb25kcywgRXhjZXB0aW9uQ29kZSYpOwog
CiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFsU2V0dGluZ3MoUGFnZSopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggY2Q4YjY4MzgxMmVl
Nzc3MWI0MmY0YzY3ZGNkYWFmNGQ4Mjk1M2RmNC4uNWRkYjBhZTczYWUzNDE4MDQ2MWZkMDE2YWI3
NWZhZWVjMzMxM2MxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaWRsCkBAIC01OCw0ICs1OCw1IEBACiAgICAgW0NvbmRpdGlvbmFsPVZJREVPX1RSQUNLXSBi
b29sZWFuIHNob3VsZERpc3BsYXlUcmFja0tpbmQoaW4gRE9NU3RyaW5nIHRyYWNrS2luZCkgcmFp
c2VzIChET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KGlu
IERPTVN0cmluZyBwb2xpY3kpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0SW1h
Z2VzRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAg
IHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoaW4gZG91YmxlIGludGVydmFsSW5TZWNvbmRz
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRl
eCBiYzEzYWZhYjRmYTE4YWI4YmU2MTk1YmVjMjEwYzYyMGQxZjg4ZTRiLi43MzVhMGU3NGZhMWJk
Mjk3Y2ZiM2I4Njg4MjJkYzU1MGI5MTg0ZGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAK
QEAgLTUzNiwxNiArNTM2LDYgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZpbmRT
dHJpbmcoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgZ2NoYXIqIHQKICAgICByZXR1cm4g
Y29yZSh3ZWJWaWV3KS0+ZmluZFN0cmluZyhTdHJpbmc6OmZyb21VVEY4KHRhcmdldFN0cmluZyks
IGZpbmRPcHRpb25zKTsKIH0KIAotZG91YmxlIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6ZGVm
YXVsdE1pbmltdW1UaW1lckludGVydmFsKCkKLXsKLSAgICByZXR1cm4gU2V0dGluZ3M6OmRlZmF1
bHRNaW5ET01UaW1lckludGVydmFsKCk7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBkb3Vi
bGUgaW50ZXJ2YWwpCi17Ci0gICAgY29yZSh3ZWJWaWV3KS0+c2V0dGluZ3MoKS0+c2V0TWluRE9N
VGltZXJJbnRlcnZhbChpbnRlcnZhbCk7Ci19Ci0KIENTdHJpbmcgRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjphY2Nlc3NpYmlsaXR5SGVscFRleHQoQXRrT2JqZWN0KiBheE9iamVjdCkKIHsKICAg
ICBpZiAoIWF4T2JqZWN0IHx8ICFXRUJLSVRfSVNfQUNDRVNTSUJMRShheE9iamVjdCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5oCmluZGV4IDQ3ZWNhN2EzZDZiYWI3OTIwNjAzZjMwN2E3ZDgxN2FiODgx
MTFhZTcuLmEzNDlmYThjY2VlZGE3NTJkODYyMGU3ZTZmYjBhZWYxZTNkYzE3YWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5oCkBAIC03OCw4ICs3OCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCBleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUoV2ViS2l0V2ViVmlldyosIGNvbnN0IGdjaGFyKiBu
YW1lLCBjb25zdCBnY2hhciogdmFsdWUpOwogICAgIHN0YXRpYyBib29sIGlzQ29tbWFuZEVuYWJs
ZWQoV2ViS2l0V2ViVmlldyosIGNvbnN0IGdjaGFyKiBuYW1lKTsKICAgICBzdGF0aWMgYm9vbCBm
aW5kU3RyaW5nKFdlYktpdFdlYlZpZXcqLCBjb25zdCBnY2hhciosIFdlYktpdEZpbmRPcHRpb25z
KTsKLSAgICBzdGF0aWMgZG91YmxlIGRlZmF1bHRNaW5pbXVtVGltZXJJbnRlcnZhbCgpOyAvLyBO
b3QgcmVhbGx5IHRpZWQgdG8gV2ViVmlldwotICAgIHN0YXRpYyB2b2lkIHNldE1pbmltdW1UaW1l
ckludGVydmFsKFdlYktpdFdlYlZpZXcqLCBkb3VibGUpOwogICAgIHN0YXRpYyB2b2lkIHJlY3Rh
bmdsZUZvclNlbGVjdGlvbihXZWJLaXRXZWJGcmFtZSosIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCop
OwogICAgIHN0YXRpYyB2b2lkIHNjYWxlUGFnZUJ5KFdlYktpdFdlYlZpZXcqLCBmbG9hdCwgZmxv
YXQsIGZsb2F0KTsKICAgICBzdGF0aWMgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYktpdFdlYlZp
ZXcqLCBib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBmYzJjYjNh
OTA5ZWFmNDU5MDY2NDMwNjQ4NTA1NDk2YTk4MDMyMmY4Li40N2UwOTY3NDE5ZDE1ZmY4Yjk2ODU4
MGQ1ZDI1OTliODAxOTJiODkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBA
IC0zMDczLDE3ICszMDczLDYgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHRvU3RyaW5nVmVjdG9y
KE5TQXJyYXkqIHBhdHRlcm5zKQogICAgIHJlc291cmNlTG9hZFNjaGVkdWxlcigpLT5zZXRTZXJp
YWxMb2FkaW5nRW5hYmxlZChzZXJpYWxpemUpOwogfQogCi0rIChkb3VibGUpX2RlZmF1bHRNaW5p
bXVtVGltZXJJbnRlcnZhbAotewotICAgIHJldHVybiBTZXR0aW5nczo6ZGVmYXVsdE1pbkRPTVRp
bWVySW50ZXJ2YWwoKTsKLX0KLQotLSAodm9pZClfc2V0TWluaW11bVRpbWVySW50ZXJ2YWw6KGRv
dWJsZSlpbnRlcnZhbEluU2Vjb25kcwotewotICAgIGlmIChfcHJpdmF0ZS0+cGFnZSkKLSAgICAg
ICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNldE1pbkRPTVRpbWVySW50ZXJ2YWwoaW50
ZXJ2YWxJblNlY29uZHMpOwotfQotCiArIChCT09MKV9IVFRQUGlwZWxpbmluZ0VuYWJsZWQKIHsK
ICAgICByZXR1cm4gUmVzb3VyY2VSZXF1ZXN0OjpodHRwUGlwZWxpbmluZ0VuYWJsZWQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAppbmRleCBhNGM4NWY5NDNm
ZTJhNmQzNTE0YTE2MzU3NGYwYTk0ZjY1ZTNmZmI4Li42ODUzYjM0ODg1MzFmZGVjZTMxYWMzY2U3
ZjE4ZWI5M2E3ZDBhMDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJp
dmF0ZS5oCkBAIC02MjAsMjMgKzYyMCw2IEBAIENvdWxkIGJlIHdvcnRoIGFkZGluZyB0byB0aGUg
QVBJLgogLSAoQk9PTClzZWFyY2hGb3I6KE5TU3RyaW5nICopc3RyaW5nIGRpcmVjdGlvbjooQk9P
TClmb3J3YXJkIGNhc2VTZW5zaXRpdmU6KEJPT0wpY2FzZUZsYWcgd3JhcDooQk9PTCl3cmFwRmxh
ZyBzdGFydEluU2VsZWN0aW9uOihCT09MKXN0YXJ0SW5TZWxlY3Rpb247CiAKIC8qIQotICAgIEBt
ZXRob2QgZGVmYXVsdE1pbmltdW1UaW1lckludGVydmFsCi0gICAgQGRpc2N1c3Npb24gU2hvdWxk
IGNvbnNpZGVyIG1vdmluZyB0aGlzIHRvIHRoZSBwdWJsaWMgQVBJLgotICAgIEByZXN1bHQgUmV0
dXJucyB0aGUgZGVmYXVsdCBtaW5pbXVtIHRpbWVyIGludGVydmFsLgotKi8KLSsgKGRvdWJsZSlf
ZGVmYXVsdE1pbmltdW1UaW1lckludGVydmFsOwotCi0vKiEKLSAgICBAbWV0aG9kIHNldE1pbmlt
dW1UaW1lckludGVydmFsOgotICAgIEBkaXNjdXNzaW9uIFNldHMgdGhlIG1pbmltdW0gaW50ZXJ2
YWwgZm9yIERPTVRpbWVycyBpbiB0aGlzIFdlYlZpZXcuIFRoaXMgbWV0aG9kIGlzCi0gICAgZXhw
b3NlZCBoZXJlIGluIHRoZSBNYWMgcG9ydCByYXRoZXIgdGhhbiB0aHJvdWdoIFdlYlByZWZlcmVu
Y2VzICh3aGljaCBnZW5lcmFsbHkKLSAgICBnb3Zlcm5zIFNldHRpbmdzKSBiZWNhdXNlIHRoaXMg
dmFsdWUgaXMgc29tZXRoaW5nIGFkanVzdGVkIGF0IHJ1biB0aW1lLCBub3Qgc2V0Ci0gICAgZ2xv
YmFsbHkgdmlhICJkZWZhdWx0cyB3cml0ZSIuIFNob3VsZCBjb25zaWRlciBhZGRpbmcgdGhpcyB0
byB0aGUgcHVibGljIEFQSS4KLSAgICBAcGFyYW0gaW50ZXJ2YWxJblNlY29uZHMgVGhlIG5ldyBt
aW5pbXVtIHRpbWVyIGludGVydmFsLCBpbiBzZWNvbmRzLgotKi8KLS0gKHZvaWQpX3NldE1pbmlt
dW1UaW1lckludGVydmFsOihkb3VibGUpaW50ZXJ2YWxJblNlY29uZHM7Ci0KLS8qIQogICAgIEBt
ZXRob2QgX0hUVFBQaXBlbGluaW5nRW5hYmxlZAogICAgIEBhYnN0cmFjdCBDaGVja3MgdGhlIEhU
VFAgcGlwZWxpbmluZyBzdGF0dXMuCiAgICAgQGRpc2N1c3Npb24gRGVmYXVsdHMgdG8gTk8uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IDBiNzg1NmEyM2QzOTIzYWM1MDZkODlkNTdiMTNlYTM3
NTNjMjhhMWIuLjVjMzYyNWFiNmE2MTdhZmU5MjVkYzVlNTFmZGQwYmY5OTg2OTc0ZGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwCkBAIC03OTcsMjAgKzc5Nyw2IEBAIFFTdHJpbmdMaXN0IER1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0Ojpjb250ZXh0TWVudShRV2ViUGFnZUFkYXB0ZXIqIHBhZ2UpCiAg
ICAgcmV0dXJuIHBhZ2UtPm1lbnVBY3Rpb25zQXNUZXh0KCk7CiB9CiAKLWRvdWJsZSBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6ZGVmYXVsdE1pbmltdW1UaW1lckludGVydmFsKCkKLXsKLSAgICBy
ZXR1cm4gU2V0dGluZ3M6OmRlZmF1bHRNaW5ET01UaW1lckludGVydmFsKCk7Ci19Ci0KLXZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1pbmltdW1UaW1lckludGVydmFsKFFXZWJQYWdl
QWRhcHRlciogYWRhcHRlciwgZG91YmxlIGludGVydmFsKQotewotICAgIFBhZ2UqIGNvcmVQYWdl
ID0gYWRhcHRlci0+cGFnZTsKLSAgICBpZiAoIWNvcmVQYWdlKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c2V0TWluRE9NVGltZXJJbnRlcnZhbChpbnRlcnZh
bCk7Ci19Ci0KIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnRoaXJkUGFydHlDb29raWVQ
b2xpY3lBbGxvd3MoUVdlYlBhZ2VBZGFwdGVyICphZGFwdGVyLCBjb25zdCBRVXJsJiB1cmwsIGNv
bnN0IFFVcmwmIGZpcnN0UGFydHlVcmwpCiB7CiAgICAgUGFnZSogY29yZVBhZ2UgPSBhZGFwdGVy
LT5wYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCmluZGV4IDUxYjg1YTE1MmVmZGM5MjJjN2M4MDI2NmI3
MzMyY2I5NGM1M2RlNTkuLmVjN2IxN2IwMmFlNjRhNzg2YjMxZTUyNWQ1Y2ViYjdmYjk5MGNkMTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0LmgKQEAgLTE4Miw5ICsxODIsNiBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgYWRkVVJMVG9SZWRpcmVjdChjb25zdCBRU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFFT
dHJpbmcmIGRlc3RpbmF0aW9uKTsKICAgICBzdGF0aWMgUVN0cmluZ0xpc3QgY29udGV4dE1lbnUo
UVdlYlBhZ2VBZGFwdGVyKik7CiAKLSAgICBzdGF0aWMgZG91YmxlIGRlZmF1bHRNaW5pbXVtVGlt
ZXJJbnRlcnZhbCgpOyAvLyBOb3QgcmVhbGx5IHRpZWQgdG8gV2ViVmlldwotICAgIHN0YXRpYyB2
b2lkIHNldE1pbmltdW1UaW1lckludGVydmFsKFFXZWJQYWdlQWRhcHRlciosIGRvdWJsZSk7Ci0K
ICAgICBzdGF0aWMgUVVybCBtZWRpYUNvbnRlbnRVcmxCeUVsZW1lbnRJZChRV2ViRnJhbWVBZGFw
dGVyKiwgY29uc3QgUVN0cmluZyYgZWxlbWVudElkKTsKICAgICBzdGF0aWMgdm9pZCBzZXRBbHRl
cm5hdGVIdG1sKFFXZWJGcmFtZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBodG1sLCBjb25zdCBR
VXJsJiBiYXNlVXJsLCBjb25zdCBRVXJsJiBmYWlsaW5nVXJsKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
LmNwcAppbmRleCBjZTg2YTQ1OGVjNmNlNTNkMTliN2I5M2JjMTFhM2ZiZDM4NmUyZTY0Li5iNzdm
ZDAyYWVkNjg0Mjg1YzAyMjY4OTJiMzk5NzE3MGNlZDE2OTVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
LmNwcApAQCAtMjY0LDExICsyNjQsNiBAQCBXS0FycmF5UmVmIFdLQnVuZGxlQ29weU9yaWdpbnNX
aXRoQXBwbGljYXRpb25DYWNoZShXS0J1bmRsZVJlZiBidW5kbGVSZWYpCiAgICAgcmV0dXJuIHRv
QVBJKG9yaWdpbnMucmVsZWFzZSgpLmxlYWtSZWYoKSk7CiB9CiAKLXZvaWQgV0tCdW5kbGVTZXRN
aW5pbXVtVGltZXJJbnRlcnZhbChXS0J1bmRsZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxlUGFnZUdy
b3VwUmVmIHBhZ2VHcm91cFJlZiwgZG91YmxlIHNlY29uZHMpCi17Ci0gICAgdG9JbXBsKGJ1bmRs
ZVJlZiktPnNldE1pbmltdW1UaW1lckludGVydmFsKHRvSW1wbChwYWdlR3JvdXBSZWYpLCBzZWNv
bmRzKTsKLX0KLQogV0tEYXRhUmVmIFdLQnVuZGxlQ3JlYXRlV0tEYXRhRnJvbVVJbnQ4QXJyYXko
V0tCdW5kbGVSZWYgYnVuZGxlLCBKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBkYXRh
KQogewogICAgIFJlZlB0cjxXZWJEYXRhPiB3ZWJEYXRhID0gdG9JbXBsKGJ1bmRsZSktPmNyZWF0
ZVdlYkRhdGFGcm9tVWludDhBcnJheShjb250ZXh0LCBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUHJpdmF0ZS5oCmluZGV4IDIzZTg0MDkyMDZmNmI2ZTAxOGM2YWE2ZjJmNTNiNGM3NTlmOTY5
NjkuLjg4NmNkZTM5NGMzY2Y5ODNiM2FkOTI0NjFlNWQwMjdhMTY0MjAyYmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVByaXZhdGUuaApAQCAtNjYsNyArNjYsNiBAQCBXS19FWFBPUlQgdm9pZCBX
S0J1bmRsZVNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1
bmRsZVBhZwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVTZXRXZWJOb3RpZmljYXRpb25QZXJtaXNz
aW9uKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVm
IG9yaWdpblN0cmluZ1JlZiwgYm9vbCBhbGxvd2VkKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxl
UmVtb3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoV0tCdW5kbGVSZWYgYnVuZGxlLCBX
S0J1bmRsZVBhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgdWludDY0X3QgV0tCdW5kbGVHZXRXZWJO
b3RpZmljYXRpb25JRChXS0J1bmRsZVJlZiBidW5kbGUsIEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U1ZhbHVlUmVmIG5vdGlmaWNhdGlvbik7Ci1XS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNldE1pbmlt
dW1UaW1lckludGVydmFsKFdLQnVuZGxlUmVmIGJ1bmRsZVJlZiwgV0tCdW5kbGVQYWdlR3JvdXBS
ZWYgcGFnZUdyb3VwUmVmLCBkb3VibGUgaW50ZXJ2YWwpOwogV0tfRVhQT1JUIFdLRGF0YVJlZiBX
S0J1bmRsZUNyZWF0ZVdLRGF0YUZyb21VSW50OEFycmF5KFdLQnVuZGxlUmVmIGJ1bmRsZSwgSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgZGF0YSk7CiAKIC8vIFVzZXJDb250ZW50IEFQ
SQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBhNTM3OWNmMmZhNzkzYmFmZDZmZDc1MTYxZTg2
MmNiNDAwZWE4YzVhLi4xMWIzOGQ3MTg3NjJhOTJjZTE1Yjc4M2FhYjdhY2VlNWI4MWY3ZDk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtNTg1LDEzICs1ODUsNiBAQCB2b2lkIEluamVjdGVk
QnVuZGxlOjpzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdl
R3JvdXAsIGNvbgogICAgICAgICAoKml0ZXIpLT5zZXR0aW5ncygpLT5zZXRVc2VyU3R5bGVTaGVl
dExvY2F0aW9uKEtVUkwoS1VSTCgpLCBsb2NhdGlvbikpOwogfQogCi12b2lkIEluamVjdGVkQnVu
ZGxlOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3Vw
LCBkb3VibGUgc2Vjb25kcykKLXsKLSAgICBjb25zdCBIYXNoU2V0PFBhZ2UqPiYgcGFnZXMgPSBQ
YWdlR3JvdXA6OnBhZ2VHcm91cChwYWdlR3JvdXAtPmlkZW50aWZpZXIoKSktPnBhZ2VzKCk7Ci0g
ICAgZm9yIChIYXNoU2V0PFBhZ2UqPjo6aXRlcmF0b3IgaXRlciA9IHBhZ2VzLmJlZ2luKCk7IGl0
ZXIgIT0gcGFnZXMuZW5kKCk7ICsraXRlcikKLSAgICAgICAgKCppdGVyKS0+c2V0dGluZ3MoKS0+
c2V0TWluRE9NVGltZXJJbnRlcnZhbChzZWNvbmRzKTsKLX0KLQogdm9pZCBJbmplY3RlZEJ1bmRs
ZTo6c2V0V2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbihXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJp
bmcmIG9yaWdpblN0cmluZywgYm9vbCBhbGxvd2VkKQogewogI2lmIEVOQUJMRShOT1RJRklDQVRJ
T05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5k
ZXggY2U0YmZkMTU0YWRhMGE4N2ExNWU2NGEwMzFkZjBhZDZkZjY2NTVmNy4uNTIxMTdlYTlmYTI3
MWRjNWVlZjE5YTZhNDJiYjI1MmRiMWY4OGUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtMTI0
LDcgKzEyNCw2IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgcGFnZVNpemVBbmRNYXJnaW5zSW5QaXhl
bHMoV2ViRnJhbWUqLCBpbnQsIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQpOwogICAgIGJv
b2wgaXNQYWdlQm94VmlzaWJsZShXZWJGcmFtZSosIGludCk7CiAgICAgdm9pZCBzZXRVc2VyU3R5
bGVTaGVldExvY2F0aW9uKFdlYlBhZ2VHcm91cFByb3h5KiwgY29uc3QgU3RyaW5nJik7Ci0gICAg
dm9pZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChXZWJQYWdlR3JvdXBQcm94eSosIGRvdWJsZSBz
ZWNvbmRzKTsKICAgICB2b2lkIHNldFdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb24oV2ViUGFnZSos
IGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBib29sIGFsbG93ZWQpOwogICAgIHZvaWQgcmVt
b3ZlQWxsV2ViTm90aWZpY2F0aW9uUGVybWlzc2lvbnMoV2ViUGFnZSopOwogICAgIHVpbnQ2NF90
IHdlYk5vdGlmaWNhdGlvbklEKEpTQ29udGV4dFJlZiwgSlNWYWx1ZVJlZik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9zeW1i
b2xzLmZpbHRlcgppbmRleCA2NWM1ZDQ4ZGU2ZDM2ZDUxMWJhNGY5NWI4MWUwN2ZhMjA3NmY4ZTk2
Li44ZDBjMzZjNmJhNzJmNDAzMTNhOTQ0OWM3OTY2MTFmNTFlNGE2YzBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXIKQEAgLTQyLDYgKzQyLDcgQEAgX1pON1dlYkNvcmU1UmFuZ2U2Y3JlYXRlRU4z
V1RGMTBQYXNzUmVmUHRySU5TXzhEb2N1bWVudEVFRU5TMl9JTlNfNE5vZGVFRUVpUzZfaTsKIF9a
TjdXZWJDb3JlNVJhbmdlRDFFdjsKIF9aTjdXZWJDb3JlOERvY3VtZW50MzZ1cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHNFdjsKIF9aTjdXZWJDb3JlOERvY3VtZW50OGljb25VUkxz
RXY7CitfWk43V2ViQ29yZThTZXR0aW5nczE5bWluRE9NVGltZXJJbnRlcnZhbEV2OwogX1pON1dl
YkNvcmU5SFRNTE5hbWVzOGlucHV0VGFnRTsKIF9aTjdXZWJDb3JlOUhUTUxOYW1lczExdGV4dGFy
ZWFUYWdFOwogX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQxMHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNT
dGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNs
b3RFOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGYwYzA4MDljOWFhOGZiNTRjOGI0ZmM0MDlhNzM5NmQyNjBlN2UzMzEuLmMwNmNjZDM1YThkZDk5
ZmZiYzU0NDM2YmM1Y2I3MDE2ZTFkMjk0NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAxMy0wMi0wOCAgQmVuamFt
aW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgS2lsbCBUZXN0UnVu
bmVyOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbDsgaW1wbGVtZW50IHRoZSBmZWF0dXJlIHdpdGgg
SW50ZXJuYWxTZXR0aW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgR2V0IHJpZCBvZiBUZXN0UnVubmVyJ3Mgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwg
YW5kIGFsbCB0aGUgcmVsYXRlZCBmdW5jdGlvbnMuCisKKyAgICAgICAgVGhpcyBhbHNvIGZpeGVz
IGFuIG9kZGl0eToKKyAgICAgICAgVGVzdFJ1bm5lcnMgd2VyZSBpbml0aWFsaXplZCB3aXRoIGEg
bWluaW11bSB0aW1lciBpbnRlcnZhbCBvZiAxMCBtaWxsaXNlY29uZHMgaW5zdGVhZAorICAgICAg
ICBvZiB1c2luZyB0aGUgZGVmYXVsdCB2YWx1ZS4gQWxsIHdpdGggdGhlIHNhbWUgY29weSBvZiBh
biBvdXRkYXRlZCBjb21tZW50LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5l
ci5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3Bw
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dl
YlByZWZlcmVuY2VzLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVu
bmVyOjpUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5j
cHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQcmVmZXJlbmNlczo6cmVzZXQpOgorICAg
ICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8pOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdlYlZp
ZXdIb3N0OjpyZXNldCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJU
cmVlQ2hyb21lLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1
bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvVGVz
dFJ1bm5lckVmbC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJU
cmVlLmNwcDoKKyAgICAgICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDoKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChyZXNldFdlYlZp
ZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1
bXBSZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViUGFnZTo6cmVzZXRTZXR0
aW5ncyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcDoKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaDoKKyAgICAgICAgKFRlc3RS
dW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6
CisgICAgICAgIChyZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6Cisg
ICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpiZWdpblRlc3RpbmcpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChU
ZXN0UnVubmVyKToKKwogMjAxMy0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFw
cGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHdvcmtlclRocmVhZENvdW50IGZyb20gVGVzdFJ1bm5l
ciB0byBXZWJDb3JlIEludGVybmFscwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAppbmRl
eCBjODE3ZDUyMzBjNDQ4YTdhMWRkN2Q3NDM5YWIxMmFhM2EwODlkMzRiLi5kM2MxZjc1ZTZiNWYy
YmM4MzRjZmYxMjNiMjIxMzcyMDNiN2UxYjA0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmNwcApAQCAtMTk3MiwyMCArMTk3Miw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNpbXVsYXRlTGVn
YWN5V2ViTm90aWZpY2F0aW9uQ2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4CiAgICAg
cmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1
ZVJlZiBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKLXsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIGRvdWJsZSBtaW5pbXVtID0gSlNW
YWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKLSAgICBBU1NF
UlQoISpleGNlcHRpb24pOwotCi0gICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19j
YXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIGNv
bnRyb2xsZXItPnNldE1pbmltdW1UaW1lckludGVydmFsKG1pbmltdW0pOwotCi0gICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRUZXh0RGlyZWN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewog
ICAgIGlmIChhcmd1bWVudENvdW50ID09IDEpIHsKQEAgLTIyMzEsNyArMjIxNyw2IEBAIEpTU3Rh
dGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNl
dEljb25EYXRhYmFzZUVuYWJsZWQiLCBzZXRJY29uRGF0YWJhc2VFbmFibGVkQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAic2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQiLCBzZXRB
dXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIiLCBzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9u
ZGVyQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0TWluaW11bVRpbWVySW50ZXJ2YWwi
LCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNl
dE1vY2tEZXZpY2VPcmllbnRhdGlvbiIsIHNldE1vY2tEZXZpY2VPcmllbnRhdGlvbkNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFi
bGVFcnJvciIsIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvckNhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uIiwgc2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5oCmluZGV4IGFhNGFhYzIxYTBjZDExN2RhY2M0NTU4ZWQzYmNkOGIzNTgzYTc1Yjgu
LjJhOGE2ZGNjYzU5NjA3YzZjYjIzODYzMDE0MWI1MzhmYzc1NzNmOTggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmgKQEAgLTM0NSw4ICszNDUsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIG1heFZpZXdXaWR0aDsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4
Vmlld0hlaWdodDsKIAotICAgIHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoZG91YmxlKTsK
LQogICAgIHZvaWQgc2V0VGV4dERpcmVjdGlvbihKU1N0cmluZ1JlZik7CiAgICAgY29uc3Qgc3Rk
OjpzdHJpbmcmIHRpdGxlVGV4dERpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdGl0bGVUZXh0
RGlyZWN0aW9uOyB9CiAgICAgdm9pZCBzZXRUaXRsZVRleHREaXJlY3Rpb24oY29uc3Qgc3RkOjpz
dHJpbmcmIGRpcmVjdGlvbikgeyBtX3RpdGxlVGV4dERpcmVjdGlvbiA9IGRpcmVjdGlvbjsgfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxh
Y2tCZXJyeS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJC
bGFja0JlcnJ5LmNwcAppbmRleCA2YmNlZmU1ZGFiNDViNjQwOWIxYzUyYzU1NzE0MDY4YzAzODE1
Y2ZmLi4wNDdiYmRkMTE1NWIxM2JmNDZmOGM4MGNmNjg4NjJhN2ExYWMyODQzIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0Jl
cnJ5LmNwcApAQCAtNTc4LDExICs1NzgsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNlcmlhbGl6
ZUhUVFBMb2Fkcyhib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGVzdFJ1
bm5lcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwoZG91YmxlKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0VGV4dERpcmVjdGlvbihKU1N0cmluZ1Jl
ZikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVyZW5jZXMuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlByZWZlcmVuY2Vz
LmgKaW5kZXggYTEzOGJmZDcwMGNjNGY3N2ZmNTM4ZDAzYTFiMjY5ZGQyMGVkOTYwMC4uY2FmMjY0
ZmY4NTZhNGNjNWMwODA1NjJmMGJlNjQyMTZjOTJkNzk3MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVyZW5jZXMuaAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJQ
cmVmZXJlbmNlcy5oCkBAIC0xMDQsNyArMTA0LDYgQEAgc3RydWN0IFdFQlRFU1RSVU5ORVJfRVhQ
T1JUIFdlYlByZWZlcmVuY2VzIHsKICAgICBib29sIGNzc0N1c3RvbUZpbHRlckVuYWJsZWQ7CiAg
ICAgYm9vbCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbjsKICAgICBib29sIGFzeW5jaHJv
bm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOwotICAgIGRvdWJsZSBtaW5pbXVtVGltZXJJbnRlcnZh
bDsKICAgICBib29sIHRvdWNoRHJhZ0Ryb3BFbmFibGVkOwogCiAgICAgV2ViUHJlZmVyZW5jZXMo
KSB7IHJlc2V0KCk7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKaW5kZXggMzQxZTA3ZWI0MGFkYmY1
MTk5YmI1OWIyZGI3ZDQwYjM4YTFiYjY1Mi4uNTA1MDg2MGI5NTc1YWQ3Njc4YzZhZjQ3OTA0NmRh
YmM1NTNiZGY3OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKQEAgLTIzMSw3ICsyMzEsNiBAQCBU
ZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKICAgICBiaW5kTWV0aG9kKCJvdmVycmlkZVByZWZlcmVu
Y2UiLCAmVGVzdFJ1bm5lcjo6b3ZlcnJpZGVQcmVmZXJlbmNlKTsKICAgICBiaW5kTWV0aG9kKCJz
ZXRQbHVnaW5zRW5hYmxlZCIsICZUZXN0UnVubmVyOjpzZXRQbHVnaW5zRW5hYmxlZCk7CiAgICAg
YmluZE1ldGhvZCgic2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQiLCAmVGVzdFJ1
bm5lcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOwotICAgIGJpbmRNZXRo
b2QoInNldE1pbmltdW1UaW1lckludGVydmFsIiwgJlRlc3RSdW5uZXI6OnNldE1pbmltdW1UaW1l
ckludGVydmFsKTsKICAgICBiaW5kTWV0aG9kKCJzZXRUb3VjaERyYWdEcm9wRW5hYmxlZCIsICZU
ZXN0UnVubmVyOjpzZXRUb3VjaERyYWdEcm9wRW5hYmxlZCk7CiAKICAgICAvLyBUaGUgZm9sbG93
aW5nIG1vZGlmeSB0aGUgc3RhdGUgb2YgdGhlIFRlc3RSdW5uZXIuCkBAIC0xNjQwLDE1ICsxNjM5
LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3UKICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0K
IAotdm9pZCBUZXN0UnVubmVyOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIGlmIChhcmd1
bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNOdW1iZXIoKSkgewotICAgICAgICBt
X2RlbGVnYXRlLT5wcmVmZXJlbmNlcygpLT5taW5pbXVtVGltZXJJbnRlcnZhbCA9IGFyZ3VtZW50
c1swXS50b0RvdWJsZSgpOwotICAgICAgICBtX2RlbGVnYXRlLT5hcHBseVByZWZlcmVuY2VzKCk7
Ci0gICAgfQotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNl
dFRvdWNoRHJhZ0Ryb3BFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBD
cHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFy
Z3VtZW50c1swXS5pc0Jvb2woKSkgewpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCmluZGV4IDBkNTQxYWZhZGFm
Y2E1OWYyODI3YTUwYjkxNjRiZjk0MjI2YTZiMjkuLjYwOGE1MWUxNTdlM2NjM2JmZGI2MjRjNWE0
MTk3MzIxOTlmMjcwYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKQEAgLTMwNyw3ICszMDcsNiBAQCBw
cml2YXRlOgogICAgIC8vIENoYW5nZXMgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmcgZmxhZyBv
biB0aGUgc2V0dGluZ3MuCiAgICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKLSAgICB2b2lkIHNl
dE1pbmltdW1UaW1lckludGVydmFsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKICAgICB2b2lkIHNldFRvdWNoRHJhZ0Ryb3BFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYsIENwcFZhcmlhbnQqKTsKIAogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5j
ZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2Vi
UHJlZmVyZW5jZXMuY3BwCmluZGV4IDIzOTA5MzUxODc2MTkxZGQzN2ZiZGZmMDE3MmY1OTE0ZGJm
ZmZhMGIuLmUzMTZmOTE1M2M1NjdhZmRkNThkNmJlMjBmYjQ0NmViM2JiMjJjMzQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZl
cmVuY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTEzMSw3ICsxMzEsNiBAQCB2b2lkIFdlYlByZWZl
cmVuY2VzOjpyZXNldCgpCiAgICAgY3NzQ3VzdG9tRmlsdGVyRW5hYmxlZCA9IGZhbHNlOwogICAg
IHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID0gZmFsc2U7CiAgICAgYXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQgPSBmYWxzZTsKLSAgICBtaW5pbXVtVGltZXJJbnRlcnZhbCA9
IDAuMDEwOyAvLyAxMCBtaWxsaXNlY29uZHMuCiAgICAgdG91Y2hEcmFnRHJvcEVuYWJsZWQgPSBm
YWxzZTsKIH0KIApAQCAtMjAyLDcgKzIwMSw2IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmFwcGx5
VG8oV2ViVmlldyogd2ViVmlldykKICAgICBzZXR0aW5ncy0+c2V0TW9ja1Njcm9sbGJhcnNFbmFi
bGVkKG1vY2tTY3JvbGxiYXJzRW5hYmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldFNob3VsZFJlc3Bl
Y3RJbWFnZU9yaWVudGF0aW9uKHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKICAgICBz
ZXR0aW5ncy0+c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQpOwotICAgIHNldHRpbmdzLT5zZXRNaW5pbXVtVGltZXJJbnRl
cnZhbChtaW5pbXVtVGltZXJJbnRlcnZhbCk7CiAgICAgc2V0dGluZ3MtPnNldFRvdWNoRHJhZ0Ry
b3BFbmFibGVkKHRvdWNoRHJhZ0Ryb3BFbmFibGVkKTsKIAogICAgIC8vIEZpeGVkIHZhbHVlcy4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNw
cCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRleCBl
NzI3NDdlYWQ1ZDc3MTBjNjUyNzEwNTI2MDg4ZWI0ZmQ2YWUxM2Y3Li5mMzNhOTMyYTZmYWFlNGEz
ODIwOGZlMGJlYzQzZmZlM2YwNTJjNThmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0xMDcwLDcgKzEwNzAsNiBAQCB2b2lkIFdlYlZpZXdI
b3N0OjpyZXNldCgpCiAKICAgICBpZiAobV93ZWJXaWRnZXQpIHsKICAgICAgICAgd2ViVmlldygp
LT5tYWluRnJhbWUoKS0+c2V0TmFtZShXZWJTdHJpbmcoKSk7Ci0gICAgICAgIHdlYlZpZXcoKS0+
c2V0dGluZ3MoKS0+c2V0TWluaW11bVRpbWVySW50ZXJ2YWwod2Via2l0X3N1cHBvcnQ6OkdldEZv
cmVncm91bmRUYWJUaW1lckludGVydmFsKCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKaW5kZXggZTVhODRiZjhh
NzM1ZmJiZGQ2YWU3M2U0M2NmOTIyN2RhZTkyYmUzMS4uZTM3ODViMTA1Mjk1MjJiMWIzM2NjNDcz
NjE0NzhhYzBiNGJiZGJkMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1
bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVt
cFJlbmRlclRyZWVDaHJvbWUuY3BwCkBAIC0yNzMsNyArMjczLDYgQEAgdm9pZCBEdW1wUmVuZGVy
VHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgZXdrX3Zp
ZXdfc2V0dGluZ19hdXRvX2xvYWRfaW1hZ2VzX3NldChtYWluVmlldygpLCBFSU5BX1RSVUUpOwog
ICAgIGV3a192aWV3X3NldHRpbmdfdXNlcl9zdHlsZXNoZWV0X3NldChtYWluVmlldygpLCAwKTsK
ICAgICBld2tfdmlld19zZXR0aW5nX2VuYWJsZV94c3NfYXVkaXRvcl9zZXQoYnJvd3Nlci0+bWFp
blZpZXcoKSwgRUlOQV9UUlVFKTsKLSAgICBld2tfdmlld19zZXR0aW5nX21pbmltdW1fdGltZXJf
aW50ZXJ2YWxfc2V0KGJyb3dzZXItPm1haW5WaWV3KCksIDAuMDEwKTsgLy8gMTAgbWlsbGlzZWNv
bmRzIChET01UaW1lcjo6c19taW5EZWZhdWx0VGltZXJJbnRlcnZhbCkKICAgICBld2tfdmlld19z
ZXR0aW5nX2VuYWJsZV93ZWJnbF9zZXQobWFpblZpZXcoKSwgRUlOQV9UUlVFKTsKICAgICBld2tf
dmlld19zZXR0aW5nX2VuYWJsZV9oeXBlcmxpbmtfYXVkaXRpbmdfc2V0KG1haW5WaWV3KCksIEVJ
TkFfRkFMU0UpOwogICAgIGV3a192aWV3X3NldHRpbmdfaW5jbHVkZV9saW5rc19pbl9mb2N1c19j
aGFpbl9zZXQobWFpblZpZXcoKSwgRUlOQV9GQUxTRSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9l
ZmwvVGVzdFJ1bm5lckVmbC5jcHAKaW5kZXggNTgwYzUwMGRlOTZkMmMzN2NiMTc4NjZlZDZmNjg1
MmVhZGJmNzFhYi4uODkyZDYyY2JhNjk3ZGFlNGFhODlmNjI4ZmIzNDVkZGFkOWVmZThjZSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcApAQCAtNzk2LDExICs3
OTYsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNlcmlhbGl6ZUhUVFBMb2Fkcyhib29sIHNlcmlh
bGl6ZSkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlcmlhbGl6ZUhUVFBMb2Fk
cyhzZXJpYWxpemUpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1pbmltdW1UaW1lckludGVy
dmFsKGRvdWJsZSBtaW5pbXVtVGltZXJJbnRlcnZhbCkKLXsKLSAgICBld2tfdmlld19zZXR0aW5n
X21pbmltdW1fdGltZXJfaW50ZXJ2YWxfc2V0KGJyb3dzZXItPm1haW5WaWV3KCksIG1pbmltdW1U
aW1lckludGVydmFsKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRUZXh0RGlyZWN0aW9uKEpT
U3RyaW5nUmVmIGRpcmVjdGlvbikKIHsKICAgICBFd2tfVGV4dF9EaXJlY3Rpb24gZXdrRGlyZWN0
aW9uOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVl
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXgg
ZmFkYzNlYzc2MDEwYWY5NmEwYWQzNGZhMDYzZThhZjkwOWVlZjkwNS4uNjQ1YTkwMTQxZWI2NWVk
M2I0NDllOTRlY2NiYmFiODA0MzQ2YTI1MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsv
RHVtcFJlbmRlclRyZWUuY3BwCkBAIC00ODIsNyArNDgyLDYgQEAgc3RhdGljIHZvaWQgcmVzZXRE
ZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKGlu
c3BlY3RvciksICJqYXZhc2NyaXB0LXByb2ZpbGluZy1lbmFibGVkIiwgRkFMU0UsIE5VTEwpOwog
CiAgICAgd2Via2l0X3dlYl92aWV3X3NldF96b29tX2xldmVsKHdlYlZpZXcsIDEuMCk7Ci0gICAg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCh3ZWJWaWV3
LCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmRlZmF1bHRNaW5pbXVtVGltZXJJbnRlcnZhbCgp
KTsKIAogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0
ZUxpc3RzKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVu
bmVyR3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcApp
bmRleCBhMjM3M2I2NGZmYTViYTQxYjgxY2I5ZGNiNDRkMmJkMDA2MDYxMDMwLi43MjRlYzg4YTVl
MWU3ZDg0NDUzMWFlNmYzZTczMTNhNjdlN2VjNGMxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL1Rlc3RSdW5uZXJHdGsuY3BwCkBAIC05MDEsMTIgKzkwMSw2IEBAIHZvaWQgVGVzdFJ1bm5l
cjo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGJvb2wgc2VyaWFsaXplKQogICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6c2V0U2VyaWFsaXplSFRUUExvYWRzKHNlcmlhbGl6ZSk7CiB9CiAKLXZv
aWQgVGVzdFJ1bm5lcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwoZG91YmxlIG1pbmltdW1UaW1l
ckludGVydmFsKQotewotICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSB3ZWJraXRfd2ViX2Zy
YW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwod2ViVmlldywgbWluaW11bVRpbWVySW50ZXJ2YWwp
OwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFRleHREaXJlY3Rpb24oSlNTdHJpbmdSZWYgZGly
ZWN0aW9uKQogewogICAgIEdPd25QdHI8Z2NoYXI+IHdyaXRpbmdEaXJlY3Rpb24oSlNTdHJpbmdD
b3B5VVRGOENTdHJpbmcoZGlyZWN0aW9uKSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW0KaW5kZXggNWNmZjQ2NjZlNjY1MDJkZWI0MDQ4MmRlN2FhY2ZlOTQyNzZk
OGI5My4uOWEyMDIyZTJkZjM3NTQwM2VmOTFmNjM3ZTBkOTA2OTcxNmU4NTU1OCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTI2OCw3ICsxMjY4LDYg
QEAgc3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5n
KCkKICAgICBbW3dlYlZpZXcgdW5kb01hbmFnZXJdIHJlbW92ZUFsbEFjdGlvbnNdOwogICAgIFtX
ZWJWaWV3IF9yZW1vdmVBbGxVc2VyQ29udGVudEZyb21Hcm91cDpbd2ViVmlldyBncm91cE5hbWVd
XTsKICAgICBbW3dlYlZpZXcgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0gICAgW3dlYlZp
ZXcgX3NldE1pbmltdW1UaW1lckludGVydmFsOltXZWJWaWV3IF9kZWZhdWx0TWluaW11bVRpbWVy
SW50ZXJ2YWxdXTsKICAgICBbd2ViVmlldyBzZXRUcmFja3NSZXBhaW50czpOT107CiAgICAgCiAg
ICAgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQppbmRleCA3ZDYyYjhmYTUxZmRmNDg5MGRmMmZkZWJjYTdm
MTE4ZDEzNjIyNzgyLi43MmIyNTNmODg5NzdhN2ZiYjFjNzdlODZjOGE0Mjc0ZTQ1NzQwMDVhIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtMTA3NCwxMSAr
MTA3NCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGJvb2wgc2Vy
aWFsaXplKQogICAgIFtXZWJWaWV3IF9zZXRMb2FkUmVzb3VyY2VzU2VyaWFsbHk6c2VyaWFsaXpl
XTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3VibGUg
bWluaW11bVRpbWVySW50ZXJ2YWwpCi17Ci0gICAgW1ttYWluRnJhbWUgd2ViVmlld10gX3NldE1p
bmltdW1UaW1lckludGVydmFsOm1pbmltdW1UaW1lckludGVydmFsXTsKLX0KLQogdm9pZCBUZXN0
UnVubmVyOjpzZXRUZXh0RGlyZWN0aW9uKEpTU3RyaW5nUmVmIGRpcmVjdGlvbk5hbWUpCiB7CiAj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmluZGV4IDI0MDliNmFiNzhiMTFlZjA2
ZmU5NDBlNTE4YTQ1Y2U1MzMxZGY5MzUuLjRmODVjNjE5Y2E5ZjQ5NWM3YWE2YmI2NjNhMDQyZDcw
NTA4NDdjMjMgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJU
cmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQu
Y3BwCkBAIC0yMDUsOCArMjA1LDYgQEAgdm9pZCBXZWJQYWdlOjpyZXNldFNldHRpbmdzKCkKIAog
ICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTZWFtbGVzc0lGcmFtZXNFbmFibGVkKHRy
dWUpOwogCi0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1pbmltdW1UaW1lckludGVy
dmFsKGhhbmRsZSgpLCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZGVmYXVsdE1pbmltdW1UaW1l
ckludGVydmFsKCkpOwotCiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnJlc2V0SW50ZXJu
YWxzT2JqZWN0KG1haW5GcmFtZSgpLT5oYW5kbGUoKSk7CiAKICAgICBtX3BlbmRpbmdHZW9sb2Nh
dGlvblJlcXVlc3RzLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9x
dC9UZXN0UnVubmVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0
LmNwcAppbmRleCA2ZGFjMjJkODZiOThkMGQxNWI3MWFhNWMyYjIyN2FhZWZlZGQyZWQ1Li44MjZl
OTg2YmJhZThlMjIzMmRkYzI5MTg4NmIwODUwZDRlYjE3ZTA3IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKQEAgLTg3MywxMSArODczLDYgQEAgdm9pZCBUZXN0UnVu
bmVyOjphZGRVUkxUb1JlZGlyZWN0KGNvbnN0IFFTdHJpbmcmIG9yaWdpbiwgY29uc3QgUVN0cmlu
ZyYgZGVzdGluYXQKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6YWRkVVJMVG9SZWRpcmVj
dChvcmlnaW4sIGRlc3RpbmF0aW9uKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRNaW5pbXVt
VGltZXJJbnRlcnZhbChkb3VibGUgbWluaW11bVRpbWVySW50ZXJ2YWwpCi17Ci0gICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OnNldE1pbmltdW1UaW1lckludGVydmFsKG1fZHJ0LT5wYWdlQWRh
cHRlcigpLCBtaW5pbXVtVGltZXJJbnRlcnZhbCk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6b3Jp
Z2luc1dpdGhMb2NhbFN0b3JhZ2UoKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCmluZGV4IGVjMzVhOTFhMmU5MGEwZGEwYzI3
ZDMzZjFmYjk4Mjc3NTZkNzkxMTYuLjJjZmZmNjU3ZTc5ZGRlYWUyYmQyYzhmMzM2OGRjYjIyYTM3
M2M4YjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCkBAIC0yNTgsOCAr
MjU4LDYgQEAgcHVibGljIFFfU0xPVFM6CiAgICAgdm9pZCBldmFsdWF0ZVNjcmlwdEluSXNvbGF0
ZWRXb3JsZEFuZFJldHVyblZhbHVlKGludCB3b3JsZElELCBjb25zdCBRU3RyaW5nJiBzY3JpcHQp
OwogICAgIHZvaWQgZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoaW50IHdvcmxkSUQsIGNv
bnN0IFFTdHJpbmcmIHNjcmlwdCk7CiAgICAgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChjb25zdCBR
U3RyaW5nJiBzb3VyY2VDb2RlKTsKLQotICAgIHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwo
ZG91YmxlKTsKICAgICAKICAgICB2b2lkIG9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlKCk7CiAgICAg
dm9pZCBkZWxldGVBbGxMb2NhbFN0b3JhZ2UoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGU5ZTg0Yjg0OGFlNzE3ZjQxYWM5NmM0NzI5ZGQyOTE2
MWE0Y2IyZWEuLjA0YzE5MzY4ODA5YTM0MmViY2VmNTI0NzM0ZDU5NDdiNWJhZTczNmMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtOTA4LDEwICs5
MDgsNiBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRl
c3RpbmcoKQogICAgIGlmICghd2ViVmlld1ByaXZhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGRvdWJsZSBtaW5pbXVtSW50ZXJ2YWwgPSAwOwotICAgIGlmIChTVUNDRUVERUQod2ViVmlld1By
aXZhdGUtPmRlZmF1bHRNaW5pbXVtVGltZXJJbnRlcnZhbCgmbWluaW11bUludGVydmFsKSkpCi0g
ICAgICAgIHdlYlZpZXdQcml2YXRlLT5zZXRNaW5pbXVtVGltZXJJbnRlcnZhbChtaW5pbXVtSW50
ZXJ2YWwpOwotCiAgICAgSFdORCB2aWV3V2luZG93OwogICAgIGlmIChTVUNDRUVERUQod2ViVmll
d1ByaXZhdGUtPnZpZXdXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxPTEVfSEFORExFKj4oJnZpZXdX
aW5kb3cpKSkgJiYgdmlld1dpbmRvdykKICAgICAgICAgU2V0Rm9jdXModmlld1dpbmRvdyk7CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggZmZjMWE3Y2U3
MmI2NmRkNjk5OTExOWE3YzhjYjc4NzZjNzc1ZGI2OC4uYTMzNjdiZjgzMmYwYzYwMjQ0MWVhY2U0
ZGVlYWJjNzEwZjljNzQzNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rl
c3RSdW5uZXJXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVy
V2luLmNwcApAQCAtMTI3MCwxOSArMTI3MCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6ZGVsZXRlTG9j
YWxTdG9yYWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIFVSTCkKICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50LgogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsKGRvdWJs
ZSBtaW5pbXVtVGltZXJJbnRlcnZhbCkKLXsKLSAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7
Ci0gICAgaWYgKEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB2aWV3UHJpdmF0ZShRdWVyeSwgd2Vi
Vmlldyk7Ci0gICAgaWYgKCF2aWV3UHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmll
d1ByaXZhdGUtPnNldE1pbmltdW1UaW1lckludGVydmFsKG1pbmltdW1UaW1lckludGVydmFsKTsK
LX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRUZXh0RGlyZWN0aW9uKEpTU3RyaW5nUmVmIGRpcmVj
dGlvbikKIHsKICAgICBDT01QdHI8SVdlYkZyYW1lUHJpdmF0ZT4gZnJhbWVQcml2YXRlKFF1ZXJ5
LCBmcmFtZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVy
V3guY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcAppbmRleCAy
NjNmMDMzMTJhMjVjN2IyODVhZGIzOWY5Y2MzNTI4NDRlOTZlNzc5Li5iMDRlYzM5ZGViNWI3Nzgz
ZjdkNDIyZjU1ODYzMGE4OTZiMWU1NTJiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93eC9UZXN0UnVubmVyV3guY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RS
dW5uZXJXeC5jcHAKQEAgLTUwMiwxMSArNTAyLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTZXJp
YWxpemVIVFRQTG9hZHMoYm9vbCkKICAgICAvLyBGSVhNRTogSW1wbGVtZW50LgogfQogCi12b2lk
IFRlc3RSdW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsKGRvdWJsZSBpbnRlcnZhbCkKLXsK
LQotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnN5bmNMb2NhbFN0b3JhZ2UoKQogewogICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCAwOTI4ZjFhOWU1
OTgzMDcxZjE0ZDNkM2Y2ODJmMGIzZTMxODJhYjEwLi5mZWFiNmJiNzBkZjFlMDk3ZTc2ZDI1MmIy
ZDc3YzE5MGQ4ZWM4OGE4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTY3LDcgKzY3
LDYgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnkoaW4gRE9NU3RyaW5nIHNvdXJjZU9yaWdpbiwgaW4gRE9NU3RyaW5nIGRl
c3RpbmF0aW9uUHJvdG9jb2wsIGluIERPTVN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGluIGJvb2xl
YW4gYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgc2V0VXNlclN0eWxlU2hl
ZXRFbmFibGVkKGluIGJvb2xlYW4gdmFsdWUpOwogICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRM
b2NhdGlvbihpbiBET01TdHJpbmcgbG9jYXRpb24pOwotICAgIHZvaWQgc2V0TWluaW11bVRpbWVy
SW50ZXJ2YWwoaW4gZG91YmxlIGludGVydmFsKTsgLy8gSW50ZXJ2YWwgc3BlY2lmaWVkIGluIHNl
Y29uZHMuCiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoaW4gYm9vbGVhbiB2
YWx1ZSk7CiAgICAgdm9pZCBzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoaW4gYm9vbGVh
biBlbmFibGVkKTsKICAgICB2b2lkIHNldFNlcmlhbGl6ZUhUVFBMb2FkcygpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcAppbmRleCBiYWRjYTNmY2JlOTVhOWNhOTI4MzdhNGQ2NTljZmI4N2JjY2E0ZDlhLi45MDk0
YTY2MWEwYThjNzBkNmQ0MTBmYTljMTY2M2UwNDBmOWRmNWUwIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApA
QCAtMjUwLDcgKzI1MCw2IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyhXS0Rp
Y3Rpb25hcnlSZWYgc2V0dGluZ3MpCiAgICAgV0tCdW5kbGVTZXRBdXRob3JBbmRVc2VyU3R5bGVz
RW5hYmxlZChtX2J1bmRsZSwgbV9wYWdlR3JvdXAsIHRydWUpOwogICAgIFdLQnVuZGxlU2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZChtX2J1bmRsZSwgbV9wYWdlR3JvdXAsIGZhbHNlKTsKICAgICBX
S0J1bmRsZVNldE1pbmltdW1Mb2dpY2FsRm9udFNpemUobV9idW5kbGUsIG1fcGFnZUdyb3VwLCA5
KTsKLSAgICBXS0J1bmRsZVNldE1pbmltdW1UaW1lckludGVydmFsKG1fYnVuZGxlLCBtX3BhZ2VH
cm91cCwgMC4wMTApOyAvLyAxMCBtaWxsaXNlY29uZHMgKERPTVRpbWVyOjpzX21pbkRlZmF1bHRU
aW1lckludGVydmFsKQogICAgIFdLQnVuZGxlU2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKG1f
YnVuZGxlLCBtX3BhZ2VHcm91cCwgZmFsc2UpOwogICAgIFdLQnVuZGxlU2V0QWxsb3dGaWxlQWNj
ZXNzRnJvbUZpbGVVUkxzKG1fYnVuZGxlLCBtX3BhZ2VHcm91cCwgdHJ1ZSk7CiAgICAgV0tCdW5k
bGVTZXRQbHVnaW5zRW5hYmxlZChtX2J1bmRsZSwgbV9wYWdlR3JvdXAsIHRydWUpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
aW5kZXggZTczM2M1NDY4NzE4MjBkNGEwNzRmZWY0NDg2NmRlZGRlMTk5N2VkMy4uNDBlZDVhMmUx
ODg2ODllYmVkMGE2YTA5MGU5NTVmMjhjMDZlNWQ2YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC02NTYsMTEgKzY1
Niw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihKU1N0cmlu
Z1JlZiBsb2NhdGlvbikKICAgICAgICAgc2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKHRydWUpOwog
fQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsKGRvdWJsZSBzZWNv
bmRzKQotewotICAgIFdLQnVuZGxlU2V0TWluaW11bVRpbWVySW50ZXJ2YWwoSW5qZWN0ZWRCdW5k
bGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZUdyb3Vw
KCksIHNlY29uZHMpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFNwYXRpYWxOYXZpZ2F0aW9u
RW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgV0tCdW5kbGVTZXRTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBJbmplY3RlZEJ1bmRs
ZTo6c2hhcmVkKCkucGFnZUdyb3VwKCksIGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCBhMTc2MjE1ODQ5Yjcz
ZDAzOTdlNmQ2Mzg0NmViN2EyYjBlYjM4ZDRmLi5lYjU2MTY5YjY2N2E2MjA2MzhkZGEzYWZkNjA0
OWU3YzgyOTYyZWFhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMTExLDcgKzExMSw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdp
biwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRp
b25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKICAgICB2b2lkIHNldFVz
ZXJTdHlsZVNoZWV0RW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0TG9j
YXRpb24oSlNTdHJpbmdSZWYpOwotICAgIHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoZG91
YmxlIHNlY29uZHMpOyAvLyBJbnRlcnZhbCBzcGVjaWZpZWQgaW4gc2Vjb25kcy4KICAgICB2b2lk
IHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFRhYktleUN5
Y2xlc1Rocm91Z2hFbGVtZW50cyhib29sKTsKICAgICB2b2lkIHNldFNlcmlhbGl6ZUhUVFBMb2Fk
cygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDZiMGQ5OWVhOTJmMmU5ZjcyMWU3MDk2ZWQ2YWFmOWM1MDI4MmFmOWIuLmIw
Zjk3MTUyNTJjMGFhZmQwZmU2OWI3ZTZjNTkzMDcxYjk1YzcyNmQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAxMy0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgS2lsbCBUZXN0UnVubmVyOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbDsgaW1w
bGVtZW50IHRoZSBmZWF0dXJlIHdpdGggSW50ZXJuYWxTZXR0aW5ncworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MzQ5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSB0ZXN0cyB0byB1c2Ug
SW50ZXJuYWxTZXR0aW5ncy4KKworICAgICAgICAqIGZhc3QvZG9tL3RpbWVyLWluY3JlYXNlLW1p
bi1pbnRlcnZhbC1hbmQtcmVzZXQtcGFydC0xLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vdGlt
ZXItaW5jcmVhc2UtbWluLWludGVydmFsLXJlcGVhdGluZy5odG1sOgorICAgICAgICAqIGZhc3Qv
ZG9tL3RpbWVyLWluY3JlYXNlLW1pbi1pbnRlcnZhbC5odG1sOgorICAgICAgICAqIGZhc3QvZG9t
L3RpbWVyLWluY3JlYXNlLXRoZW4tZGVjcmVhc2UtbWluLWludGVydmFsLXJlcGVhdGluZy5odG1s
OgorICAgICAgICAqIGZhc3QvZG9tL3RpbWVyLWluY3JlYXNlLXRoZW4tZGVjcmVhc2UtbWluLWlu
dGVydmFsLmh0bWw6CisKIDIwMTMtMDItMDggIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgTW92ZSB3b3JrZXJUaHJlYWRDb3VudCBmcm9tIFRlc3RSdW5u
ZXIgdG8gV2ViQ29yZSBJbnRlcm5hbHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3RpbWVyLWluY3JlYXNlLW1pbi1pbnRlcnZhbC1hbmQtcmVzZXQtcGFydC0xLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS90aW1lci1pbmNyZWFzZS1taW4taW50ZXJ2YWwtYW5kLXJlc2V0LXBh
cnQtMS5odG1sCmluZGV4IDRkYzRmODVkODVkMDQ4NGZmNTI4ZDZiZjFjNTM0NzE1ZTJiZThlNDMu
LjI4ZTViYWY0NDkwYzlhOTIxMmE5ZGE4YTI2ZWZkMzNkNTg0ZWMwYjEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLW1pbi1pbnRlcnZhbC1hbmQtcmVzZXQt
cGFydC0xLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItaW5jcmVhc2UtbWlu
LWludGVydmFsLWFuZC1yZXNldC1wYXJ0LTEuaHRtbApAQCAtMTcsNyArMTcsNyBAQCBmdW5jdGlv
biBydW5UZXN0KCkgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgLy8gTWFr
ZSB0aW1lcnMgcnVuIG5vIG1vcmUgb2Z0ZW4gdGhhbiB0d2ljZSBhIHNlY29uZC4KLSAgICB0ZXN0
UnVubmVyLnNldE1pbmltdW1UaW1lckludGVydmFsKDAuNSk7CisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldE1pbmltdW1UaW1lckludGVydmFsKDAuNSk7CiAKICAgICAvLyBQYXJ0IDIgb2YgdGhp
cyB0ZXN0ICh3aGljaCB3aWxsIGxpa2VseSBiZSBleGVjdXRlZCBpbW1lZGlhdGVseQogICAgIC8v
IGFmdGVyIHRoaXMgb25lIGJ5IHRoZSBoYXJuZXNzKSB2ZXJpZmllcyB0aGF0IHRoZSBtaW5pbXVt
IHRpbWVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1pbmNyZWFzZS1t
aW4taW50ZXJ2YWwtcmVwZWF0aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1p
bmNyZWFzZS1taW4taW50ZXJ2YWwtcmVwZWF0aW5nLmh0bWwKaW5kZXggNTNkN2E0ZjE2ZjIxZWFi
ZDcyM2QxZjBhZmNkNjZmMGE5NjExMWY1YS4uMjVjN2VhOGFlZjdhOTJjNTUxODc2YmRhM2IxMGFh
MjU1ODUxOWU1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItaW5jcmVh
c2UtbWluLWludGVydmFsLXJlcGVhdGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3RpbWVyLWluY3JlYXNlLW1pbi1pbnRlcnZhbC1yZXBlYXRpbmcuaHRtbApAQCAtMzMsNyArMzMs
NyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwogCiAgICAgLy8gTWFrZSB0aW1lcnMgcnVuIG5vIG1vcmUgb2Z0ZW4gdGhhbiB0d2ljZSBhIHNl
Y29uZC4KLSAgICB0ZXN0UnVubmVyLnNldE1pbmltdW1UaW1lckludGVydmFsKDAuNSk7CisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldE1pbmltdW1UaW1lckludGVydmFsKDAuNSk7CiAKICAgICBz
ZXRJbnRlcnZhbChzbG93VGltZW91dEhhbmRsZXIsIDEwMDApOwogICAgIHNldEludGVydmFsKGZh
c3RUaW1lb3V0SGFuZGxlciwgMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90
aW1lci1pbmNyZWFzZS1taW4taW50ZXJ2YWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Rp
bWVyLWluY3JlYXNlLW1pbi1pbnRlcnZhbC5odG1sCmluZGV4IGU1NGY0NmJmODU3NWNkNDgyOWY0
NjlmN2QwOWNiMjYxODRlODVkZjMuLjYxMzc2NjcxY2M3NTQxMzYxZmI5NzEzNzVhZDVkZDExN2U3
MzI0MzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLW1p
bi1pbnRlcnZhbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNl
LW1pbi1pbnRlcnZhbC5odG1sCkBAIC0zNCw3ICszNCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7
CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAgICAvLyBNYWtlIHRpbWVycyBy
dW4gbm8gbW9yZSBvZnRlbiB0aGFuIHR3aWNlIGEgc2Vjb25kLgotICAgIHRlc3RSdW5uZXIuc2V0
TWluaW11bVRpbWVySW50ZXJ2YWwoMC41KTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0TWlu
aW11bVRpbWVySW50ZXJ2YWwoMC41KTsKIAogICAgIHNldFRpbWVvdXQoc2xvd1RpbWVvdXRIYW5k
bGVyLCAxMDAwKTsKICAgICBzZXRUaW1lb3V0KGZhc3RUaW1lb3V0SGFuZGxlciwgMSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1pbmNyZWFzZS10aGVuLWRlY3JlYXNl
LW1pbi1pbnRlcnZhbC1yZXBlYXRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVy
LWluY3JlYXNlLXRoZW4tZGVjcmVhc2UtbWluLWludGVydmFsLXJlcGVhdGluZy5odG1sCmluZGV4
IDU4YmZmYjEwODJmNDEwNzIzMGE3OWMwZGNjMDlkM2Y5NTkwNjRiZDcuLjczMDk2MTdjNTM2Mzky
MGU5NDc0N2I2NjVkYzc0NmFmODhmOGY5NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3RpbWVyLWluY3JlYXNlLXRoZW4tZGVjcmVhc2UtbWluLWludGVydmFsLXJlcGVhdGluZy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLXRoZW4tZGVjcmVh
c2UtbWluLWludGVydmFsLXJlcGVhdGluZy5odG1sCkBAIC0zMyw3ICszMyw3IEBAIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAgICAvLyBN
YWtlIHRpbWVycyBydW4gbm8gbW9yZSBvZnRlbiB0aGFuIG9uY2UgZXZlcnkgdHdvIHNlY29uZHMu
Ci0gICAgdGVzdFJ1bm5lci5zZXRNaW5pbXVtVGltZXJJbnRlcnZhbCgyLjApOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRNaW5pbXVtVGltZXJJbnRlcnZhbCgyLjApOwogCiAgICAgc2V0SW50
ZXJ2YWwoc2xvd1RpbWVvdXRIYW5kbGVyLCAxMDAwKTsKICAgICBzZXRJbnRlcnZhbChmYXN0VGlt
ZW91dEhhbmRsZXIsIDEpOwpAQCAtNDIsNyArNDIsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewog
ICAgIC8vIElmIHRoaXMgZG9lc24ndCBjYXVzZSB0aW1lcnMgdG8gZ2V0IHJlLWV2YWx1YXRlZCBp
bW1lZGlhdGVseSwKICAgICAvLyB0aGUgZmFzdCB0aW1lb3V0IGhhbmRsZXIgd29uJ3QgZ2V0IGNh
bGxlZCBmb3IgdXAgdG8gdHdvIHNlY29uZHMsCiAgICAgLy8gd2hpY2ggd291bGQgbGVhZCB0byBw
b29yIHJlc3BvbnNpdmVuZXNzLgotICAgIHRlc3RSdW5uZXIuc2V0TWluaW11bVRpbWVySW50ZXJ2
YWwoMC4wMDQpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRNaW5pbXVtVGltZXJJbnRlcnZh
bCgwLjAwNCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLXRoZW4tZGVjcmVhc2UtbWluLWludGVydmFsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1pbmNyZWFzZS10aGVuLWRlY3JlYXNlLW1pbi1p
bnRlcnZhbC5odG1sCmluZGV4IDc5OTdkMzBjMWI5ZjQ2ZTI1Mjc2NDI4NGI1MmNmYTVmYmQ2ODhm
OWUuLmUyY2FlYmIxNDFjNWYzMjllZGRmMTdhMWEzZDNlZjc4NDk5N2U1YjUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLXRoZW4tZGVjcmVhc2UtbWluLWlu
dGVydmFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItaW5jcmVhc2UtdGhl
bi1kZWNyZWFzZS1taW4taW50ZXJ2YWwuaHRtbApAQCAtMzQsNyArMzQsNyBAQCBmdW5jdGlvbiBy
dW5UZXN0KCkgewogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCiAgICAgLy8gTWFr
ZSB0aW1lcnMgcnVuIG5vIG1vcmUgb2Z0ZW4gdGhhbiBvbmNlIGV2ZXJ5IHR3byBzZWNvbmRzLgot
ICAgIHRlc3RSdW5uZXIuc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoMi4wKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoMi4wKTsKIAogICAgIHNldFRpbWVv
dXQoc2xvd1RpbWVvdXRIYW5kbGVyLCAxMDAwKTsKICAgICBzZXRUaW1lb3V0KGZhc3RUaW1lb3V0
SGFuZGxlciwgMSk7CkBAIC00Myw3ICs0Myw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAg
Ly8gSWYgdGhpcyBkb2Vzbid0IGNhdXNlIHRpbWVycyB0byBnZXQgcmUtZXZhbHVhdGVkIGltbWVk
aWF0ZWx5LAogICAgIC8vIHRoZSBmYXN0IHRpbWVvdXQgaGFuZGxlciB3b24ndCBnZXQgY2FsbGVk
IGZvciB1cCB0byB0d28gc2Vjb25kcywKICAgICAvLyB3aGljaCB3b3VsZCBsZWFkIHRvIHBvb3Ig
cmVzcG9uc2l2ZW5lc3MuCi0gICAgdGVzdFJ1bm5lci5zZXRNaW5pbXVtVGltZXJJbnRlcnZhbCgw
LjAwNCk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldE1pbmltdW1UaW1lckludGVydmFsKDAu
MDA0KTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hh
bmdlTG9nCmluZGV4IGFiMjMzYmRkMjgyNTRjYzM1OGY5YmMyZjUwOWFmNGExOTc5OWIwNmMuLjI1
NmJhYTJkOTIyYzU5ZDliNjE2NzkyMzVhZGIxN2MwMDJjY2U0NjMgMTAwNjQ0Ci0tLSBhL0NoYW5n
ZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMy0wMi0wOCAgQmVuamFt
aW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgS2lsbCBUZXN0UnVu
bmVyOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbDsgaW1wbGVtZW50IHRoZSBmZWF0dXJlIHdpdGgg
SW50ZXJuYWxTZXR0aW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEzLTAyLTA4
ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUg
d29ya2VyVGhyZWFkQ291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187493</attachid>
            <date>2013-02-10 13:27:52 -0800</date>
            <delta_ts>2013-02-11 13:42:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109349-20130210132423.patch</filename>
            <type>text/plain</type>
            <size>47914</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNiMzY0YzNmNjNmYWFl
Mjk0N2E4NzM4MTNjODdmODc5MjBhNmM3NC4uMDI5MTcwNzI3NzdiNzRlN2NlMjgyMTgzMmE2MGM2
M2Q3NDdhNjFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTAyLTEwICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBLaWxsIFRlc3RS
dW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsOyBpbXBsZW1lbnQgdGhlIGZlYXR1cmUgd2l0
aCBJbnRlcm5hbFNldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDkzNDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeHBvc2Ugc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoKSBhbmQgaW1wbGVtZW50
IHRoZSBiYWNrdXAvcmVzdG9yZSB0byBrZWVwCisgICAgICAgIGEgY29uc2lzdGVudCBzdGF0ZSBi
ZXR3ZWVuIHRlc3RzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKToKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldE1pbmltdW1UaW1lckludGVydmFs
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oOgorICAgICAgICAoQmFja3VwKToKKyAgICAgICAgKEludGVybmFsU2V0dGluZ3MpOgorICAg
ICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKIDIwMTMtMDItMDggIEVyaWMg
Q2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gcmVzcGVj
dCBpbi1iYW5kIGNhcHRpb24gY29sb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA3ZTc4ZmNkY2YyY2U1
YzYxMTJiZmU3MTcxN2Q5MTA1NzM3ZTkyMmZiLi5kOGUzMzRiZWMxMjUwODQ1Yzg0ZjYyNTQzZWQy
NTlmOTRiZDE0ODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDIt
MTAgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIEtp
bGwgVGVzdFJ1bm5lcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWw7IGltcGxlbWVudCB0aGUgZmVh
dHVyZSB3aXRoIEludGVybmFsU2V0dGluZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTM0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ayk6CisKIDIwMTMtMDItMDgg
IEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSB3
b3JrZXJUaHJlYWRDb3VudCBmcm9tIFRlc3RSdW5uZXIgdG8gV2ViQ29yZSBJbnRlcm5hbHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCA3NTJiYTRmOGEwY2EyZTY3YWI4YzQ3N2E0OTgxMmY4M2Y5OTllMjA2
Li43YzI5YzUzZGRjYWI4YWQyNzk4MGY5MDdlMTQwMjY4YmQ2M2MwZWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTMtMDItMTAgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5q
YW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIEtpbGwgVGVzdFJ1bm5lcjo6c2V0TWluaW11bVRp
bWVySW50ZXJ2YWw7IGltcGxlbWVudCB0aGUgZmVhdHVyZSB3aXRoIEludGVybmFsU2V0dGluZ3MK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTM0OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld1ByaXZhdGUuaDoKKwogMjAx
My0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNb3ZlIHdvcmtlclRocmVhZENvdW50IGZyb20gVGVzdFJ1bm5lciB0byBXZWJDb3JlIEludGVy
bmFscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwppbmRleCA1OTUxOWQ0MDE1MjhkNmI1ZDNmZmQ0Mjk5NWZiNzUyODI3
ZmE4MDVkLi5jOTAyZTBmOGQwZDU3NmQzYjkzODZjM2I4NGM3NWE3Y2JmOTFhMjRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEzLTAyLTEwICBCZW5qYW1pbiBQb3VsYWluICA8
YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBLaWxsIFRlc3RSdW5uZXI6OnNldE1pbmlt
dW1UaW1lckludGVydmFsOyBpbXBsZW1lbnQgdGhlIGZlYXR1cmUgd2l0aCBJbnRlcm5hbFNldHRp
bmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkz
NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oOgorCiAyMDEzLTAyLTA4ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgd29ya2Vy
VGhyZWFkQ291bnQgZnJvbSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggNDAxNDZmZjU3ODY5OTQ1MGQ4ODE2YmQ1NjhhYmEzMjM1OTRlM2VhZi4uNDdjNDczMzlj
ODVhZjc1OWNkYTRhYzNmMzU0YzkwZjc3MjVlOTNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDEzLTAyLTEwICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4K
KworICAgICAgICBLaWxsIFRlc3RSdW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsOyBpbXBs
ZW1lbnQgdGhlIGZlYXR1cmUgd2l0aCBJbnRlcm5hbFNldHRpbmdzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkzNDkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oOgorICAgICAgICAoSW5qZWN0ZWRCdW5kbGUpOgorCiAy
MDEzLTAyLTA4ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IEFT
U0VSVCB3aGVuIHRoZSBXZWIgQ29udGVudCBQcm9jZXNzIGNyYXNoZXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDA2MGM2MjI5MGY1YzQ4ZDgzM2Iz
OTU3OGE1YmQ3Njk5MGNhYTM4YWIuLmUwODMzNzBlNjMzOWUxNzI5OWZkMjgzNDBmMTAzMDcyNDA5
YzA5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg3LDYg
Kzg4LDcgQEAgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNrdXAoU2V0dGluZ3MqIHNldHRp
bmdzKQogICAgICwgbV9vcmlnaW5hbE1vY2tTY3JvbGxiYXJzRW5hYmxlZChzZXR0aW5ncy0+bW9j
a1Njcm9sbGJhcnNFbmFibGVkKCkpCiAgICAgLCBtX2xhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250
cm9sVUlFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmxhbmdBdHRyaWJ1dGVBd2FyZUZv
cm1Db250cm9sVUlFbmFibGVkKCkpCiAgICAgLCBtX2ltYWdlc0VuYWJsZWQoc2V0dGluZ3MtPmFy
ZUltYWdlc0VuYWJsZWQoKSkKKyAgICAsIG1fbWluaW11bVRpbWVySW50ZXJ2YWwoc2V0dGluZ3Mt
Pm1pbkRPTVRpbWVySW50ZXJ2YWwoKSkKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgLCBt
X3Nob3VsZERpc3BsYXlTdWJ0aXRsZXMoc2V0dGluZ3MtPnNob3VsZERpc3BsYXlTdWJ0aXRsZXMo
KSkKICAgICAsIG1fc2hvdWxkRGlzcGxheUNhcHRpb25zKHNldHRpbmdzLT5zaG91bGREaXNwbGF5
Q2FwdGlvbnMoKSkKQEAgLTEyMSw2ICsxMjMsNyBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OkJh
Y2t1cDo6cmVzdG9yZVRvKFNldHRpbmdzKiBzZXR0aW5ncykKICAgICBzZXR0aW5ncy0+c2V0TW9j
a1Njcm9sbGJhcnNFbmFibGVkKG1fb3JpZ2luYWxNb2NrU2Nyb2xsYmFyc0VuYWJsZWQpOwogICAg
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldExhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9s
VUlFbmFibGVkKG1fbGFuZ0F0dHJpYnV0ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQpOwogICAg
IHNldHRpbmdzLT5zZXRJbWFnZXNFbmFibGVkKG1faW1hZ2VzRW5hYmxlZCk7CisgICAgc2V0dGlu
Z3MtPnNldE1pbkRPTVRpbWVySW50ZXJ2YWwobV9taW5pbXVtVGltZXJJbnRlcnZhbCk7CiAjaWYg
RU5BQkxFKFZJREVPX1RSQUNLKQogICAgIHNldHRpbmdzLT5zZXRTaG91bGREaXNwbGF5U3VidGl0
bGVzKG1fc2hvdWxkRGlzcGxheVN1YnRpdGxlcyk7CiAgICAgc2V0dGluZ3MtPnNldFNob3VsZERp
c3BsYXlDYXB0aW9ucyhtX3Nob3VsZERpc3BsYXlDYXB0aW9ucyk7CkBAIC00NjYsNCArNDY5LDEw
IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0SW1hZ2VzRW5hYmxlZChib29sIGVuYWJsZWQs
IEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHNldHRpbmdzKCktPnNldEltYWdlc0VuYWJsZWQoZW5h
YmxlZCk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0TWluaW11bVRpbWVySW50ZXJ2
YWwoZG91YmxlIGludGVydmFsSW5TZWNvbmRzLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJ
bnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOworICAgIHNldHRpbmdzKCktPnNldE1p
bkRPTVRpbWVySW50ZXJ2YWwoaW50ZXJ2YWxJblNlY29uZHMpOworfQorCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IDUwZDdhNzc3ZjA0YTMzMWRkZjg4
NzEyYjVkOGM4OWEzYjlmNDkxMTUuLmQ2NzI0ZGE2OWJmYzhkMDFlYWRkMGM1OTkxYWY5NzdkYzEx
MTg4MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzUsNiArNzYs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgbV9vcmlnaW5hbFVzZXNPdmVybGF5U2Nyb2xsYmFy
czsKICAgICAgICAgYm9vbCBtX2xhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVk
OwogICAgICAgICBib29sIG1faW1hZ2VzRW5hYmxlZDsKKyAgICAgICAgZG91YmxlIG1fbWluaW11
bVRpbWVySW50ZXJ2YWw7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICAgICBib29sIG1f
c2hvdWxkRGlzcGxheVN1YnRpdGxlczsKICAgICAgICAgYm9vbCBtX3Nob3VsZERpc3BsYXlDYXB0
aW9uczsKQEAgLTEyMyw2ICsxMjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTdG9yYWdlQmxv
Y2tpbmdQb2xpY3koY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0
TGFuZ0F0dHJpYnV0ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBz
ZXRJbWFnZXNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQg
c2V0TWluaW11bVRpbWVySW50ZXJ2YWwoZG91YmxlIGludGVydmFsSW5TZWNvbmRzLCBFeGNlcHRp
b25Db2RlJik7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxTZXR0aW5ncyhQYWdl
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCBj
ZDhiNjgzODEyZWU3NzcxYjQyZjRjNjdkY2RhYWY0ZDgyOTUzZGY0Li41ZGRiMGFlNzNhZTM0MTgw
NDYxZmQwMTZhYjc1ZmFlZWMzMzEzYzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTU4LDQgKzU4LDUgQEAKICAgICBbQ29uZGl0aW9uYWw9VklE
RU9fVFJBQ0tdIGJvb2xlYW4gc2hvdWxkRGlzcGxheVRyYWNrS2luZChpbiBET01TdHJpbmcgdHJh
Y2tLaW5kKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRTdG9yYWdlQmxvY2tp
bmdQb2xpY3koaW4gRE9NU3RyaW5nIHBvbGljeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAg
dm9pZCBzZXRJbWFnZXNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CisgICAgdm9pZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChpbiBkb3VibGUgaW50ZXJ2
YWxJblNlY29uZHMpIHJhaXNlcyhET01FeGNlcHRpb24pOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGsuY3BwCmluZGV4IGJjMTNhZmFiNGZhMThhYjhiZTYxOTViZWMyMTBjNjIwZDFmODhlNGIuLjcz
NWEwZTc0ZmExYmQyOTdjZmIzYjg2ODgyMmRjNTUwYjkxODRkYjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcApAQCAtNTM2LDE2ICs1MzYsNiBAQCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6ZmluZFN0cmluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogdAog
ICAgIHJldHVybiBjb3JlKHdlYlZpZXcpLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgodGFy
Z2V0U3RyaW5nKSwgZmluZE9wdGlvbnMpOwogfQogCi1kb3VibGUgRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpkZWZhdWx0TWluaW11bVRpbWVySW50ZXJ2YWwoKQotewotICAgIHJldHVybiBTZXR0
aW5nczo6ZGVmYXVsdE1pbkRPTVRpbWVySW50ZXJ2YWwoKTsKLX0KLQotdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGs6OnNldE1pbmltdW1UaW1lckludGVydmFsKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcsIGRvdWJsZSBpbnRlcnZhbCkKLXsKLSAgICBjb3JlKHdlYlZpZXcpLT5zZXR0aW5ncygp
LT5zZXRNaW5ET01UaW1lckludGVydmFsKGludGVydmFsKTsKLX0KLQogQ1N0cmluZyBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OmFjY2Vzc2liaWxpdHlIZWxwVGV4dChBdGtPYmplY3QqIGF4T2Jq
ZWN0KQogewogICAgIGlmICghYXhPYmplY3QgfHwgIVdFQktJVF9JU19BQ0NFU1NJQkxFKGF4T2Jq
ZWN0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKaW5kZXggNDdlY2E3YTNkNmJhYjc5MjA2MDNmMzA3
YTdkODE3YWI4ODExMWFlNy4uYTM0OWZhOGNjZWVkYTc1MmQ4NjIwZTdlNmZiMGFlZjFlM2RjMTdh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKQEAgLTc4LDggKzc4LDYgQEAgcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIGV4ZWN1dGVDb3JlQ29tbWFuZEJ5TmFtZShXZWJLaXRXZWJWaWV3KiwgY29u
c3QgZ2NoYXIqIG5hbWUsIGNvbnN0IGdjaGFyKiB2YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgaXND
b21tYW5kRW5hYmxlZChXZWJLaXRXZWJWaWV3KiwgY29uc3QgZ2NoYXIqIG5hbWUpOwogICAgIHN0
YXRpYyBib29sIGZpbmRTdHJpbmcoV2ViS2l0V2ViVmlldyosIGNvbnN0IGdjaGFyKiwgV2ViS2l0
RmluZE9wdGlvbnMpOwotICAgIHN0YXRpYyBkb3VibGUgZGVmYXVsdE1pbmltdW1UaW1lckludGVy
dmFsKCk7IC8vIE5vdCByZWFsbHkgdGllZCB0byBXZWJWaWV3Ci0gICAgc3RhdGljIHZvaWQgc2V0
TWluaW11bVRpbWVySW50ZXJ2YWwoV2ViS2l0V2ViVmlldyosIGRvdWJsZSk7CiAgICAgc3RhdGlj
IHZvaWQgcmVjdGFuZ2xlRm9yU2VsZWN0aW9uKFdlYktpdFdlYkZyYW1lKiwgY2Fpcm9fcmVjdGFu
Z2xlX2ludF90Kik7CiAgICAgc3RhdGljIHZvaWQgc2NhbGVQYWdlQnkoV2ViS2l0V2ViVmlldyos
IGZsb2F0LCBmbG9hdCwgZmxvYXQpOwogICAgIHN0YXRpYyB2b2lkIHNldERlZmVyc0xvYWRpbmco
V2ViS2l0V2ViVmlldyosIGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmlu
ZGV4IGZjMmNiM2E5MDllYWY0NTkwNjY0MzA2NDg1MDU0OTZhOTgwMzIyZjguLjQ3ZTA5Njc0MTlk
MTVmZjhiOTY4NTgwZDVkMjU5OWI4MDE5MmI4OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KQEAgLTMwNzMsMTcgKzMwNzMsNiBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gdG9T
dHJpbmdWZWN0b3IoTlNBcnJheSogcGF0dGVybnMpCiAgICAgcmVzb3VyY2VMb2FkU2NoZWR1bGVy
KCktPnNldFNlcmlhbExvYWRpbmdFbmFibGVkKHNlcmlhbGl6ZSk7CiB9CiAKLSsgKGRvdWJsZSlf
ZGVmYXVsdE1pbmltdW1UaW1lckludGVydmFsCi17Ci0gICAgcmV0dXJuIFNldHRpbmdzOjpkZWZh
dWx0TWluRE9NVGltZXJJbnRlcnZhbCgpOwotfQotCi0tICh2b2lkKV9zZXRNaW5pbXVtVGltZXJJ
bnRlcnZhbDooZG91YmxlKWludGVydmFsSW5TZWNvbmRzCi17Ci0gICAgaWYgKF9wcml2YXRlLT5w
YWdlKQotICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0TWluRE9NVGltZXJJ
bnRlcnZhbChpbnRlcnZhbEluU2Vjb25kcyk7Ci19Ci0KICsgKEJPT0wpX0hUVFBQaXBlbGluaW5n
RW5hYmxlZAogewogICAgIHJldHVybiBSZXNvdXJjZVJlcXVlc3Q6Omh0dHBQaXBlbGluaW5nRW5h
YmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCmluZGV4
IGE0Yzg1Zjk0M2ZlMmE2ZDM1MTRhMTYzNTc0ZjBhOTRmNjVlM2ZmYjguLjY4NTNiMzQ4ODUzMWZk
ZWNlMzFhYzNjZTdmMThlYjkzYTdkMGEwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdQcml2YXRlLmgKQEAgLTYyMCwyMyArNjIwLDYgQEAgQ291bGQgYmUgd29ydGggYWRk
aW5nIHRvIHRoZSBBUEkuCiAtIChCT09MKXNlYXJjaEZvcjooTlNTdHJpbmcgKilzdHJpbmcgZGly
ZWN0aW9uOihCT09MKWZvcndhcmQgY2FzZVNlbnNpdGl2ZTooQk9PTCljYXNlRmxhZyB3cmFwOihC
T09MKXdyYXBGbGFnIHN0YXJ0SW5TZWxlY3Rpb246KEJPT0wpc3RhcnRJblNlbGVjdGlvbjsKIAog
LyohCi0gICAgQG1ldGhvZCBkZWZhdWx0TWluaW11bVRpbWVySW50ZXJ2YWwKLSAgICBAZGlzY3Vz
c2lvbiBTaG91bGQgY29uc2lkZXIgbW92aW5nIHRoaXMgdG8gdGhlIHB1YmxpYyBBUEkuCi0gICAg
QHJlc3VsdCBSZXR1cm5zIHRoZSBkZWZhdWx0IG1pbmltdW0gdGltZXIgaW50ZXJ2YWwuCi0qLwot
KyAoZG91YmxlKV9kZWZhdWx0TWluaW11bVRpbWVySW50ZXJ2YWw7Ci0KLS8qIQotICAgIEBtZXRo
b2Qgc2V0TWluaW11bVRpbWVySW50ZXJ2YWw6Ci0gICAgQGRpc2N1c3Npb24gU2V0cyB0aGUgbWlu
aW11bSBpbnRlcnZhbCBmb3IgRE9NVGltZXJzIGluIHRoaXMgV2ViVmlldy4gVGhpcyBtZXRob2Qg
aXMKLSAgICBleHBvc2VkIGhlcmUgaW4gdGhlIE1hYyBwb3J0IHJhdGhlciB0aGFuIHRocm91Z2gg
V2ViUHJlZmVyZW5jZXMgKHdoaWNoIGdlbmVyYWxseQotICAgIGdvdmVybnMgU2V0dGluZ3MpIGJl
Y2F1c2UgdGhpcyB2YWx1ZSBpcyBzb21ldGhpbmcgYWRqdXN0ZWQgYXQgcnVuIHRpbWUsIG5vdCBz
ZXQKLSAgICBnbG9iYWxseSB2aWEgImRlZmF1bHRzIHdyaXRlIi4gU2hvdWxkIGNvbnNpZGVyIGFk
ZGluZyB0aGlzIHRvIHRoZSBwdWJsaWMgQVBJLgotICAgIEBwYXJhbSBpbnRlcnZhbEluU2Vjb25k
cyBUaGUgbmV3IG1pbmltdW0gdGltZXIgaW50ZXJ2YWwsIGluIHNlY29uZHMuCi0qLwotLSAodm9p
ZClfc2V0TWluaW11bVRpbWVySW50ZXJ2YWw6KGRvdWJsZSlpbnRlcnZhbEluU2Vjb25kczsKLQot
LyohCiAgICAgQG1ldGhvZCBfSFRUUFBpcGVsaW5pbmdFbmFibGVkCiAgICAgQGFic3RyYWN0IENo
ZWNrcyB0aGUgSFRUUCBwaXBlbGluaW5nIHN0YXR1cy4KICAgICBAZGlzY3Vzc2lvbiBEZWZhdWx0
cyB0byBOTy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggMGI3ODU2YTIzZDM5MjNhYzUwNmQ4
OWQ1N2IxM2VhMzc1M2MyOGExYi4uNWMzNjI1YWI2YTYxN2FmZTkyNWRjNWU1MWZkZDBiZjk5ODY5
NzRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTc5NywyMCArNzk3LDYgQEAgUVN0cmlu
Z0xpc3QgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmNvbnRleHRNZW51KFFXZWJQYWdlQWRhcHRl
ciogcGFnZSkKICAgICByZXR1cm4gcGFnZS0+bWVudUFjdGlvbnNBc1RleHQoKTsKIH0KIAotZG91
YmxlIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpkZWZhdWx0TWluaW11bVRpbWVySW50ZXJ2YWwo
KQotewotICAgIHJldHVybiBTZXR0aW5nczo6ZGVmYXVsdE1pbkRPTVRpbWVySW50ZXJ2YWwoKTsK
LX0KLQotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0TWluaW11bVRpbWVySW50ZXJ2
YWwoUVdlYlBhZ2VBZGFwdGVyKiBhZGFwdGVyLCBkb3VibGUgaW50ZXJ2YWwpCi17Ci0gICAgUGFn
ZSogY29yZVBhZ2UgPSBhZGFwdGVyLT5wYWdlOwotICAgIGlmICghY29yZVBhZ2UpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGNvcmVQYWdlLT5zZXR0aW5ncygpLT5zZXRNaW5ET01UaW1lckludGVy
dmFsKGludGVydmFsKTsKLX0KLQogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6dGhpcmRQ
YXJ0eUNvb2tpZVBvbGljeUFsbG93cyhRV2ViUGFnZUFkYXB0ZXIgKmFkYXB0ZXIsIGNvbnN0IFFV
cmwmIHVybCwgY29uc3QgUVVybCYgZmlyc3RQYXJ0eVVybCkKIHsKICAgICBQYWdlKiBjb3JlUGFn
ZSA9IGFkYXB0ZXItPnBhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKaW5kZXggNTFiODVhMTUyZWZkYzky
MmM3YzgwMjY2YjczMzJjYjk0YzUzZGU1OS4uZWM3YjE3YjAyYWU2NGE3ODZiMzFlNTI1ZDVjZWJi
N2ZiOTkwY2QxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtMTgyLDkgKzE4Miw2IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgdm9pZCBhZGRVUkxUb1JlZGlyZWN0KGNvbnN0IFFTdHJpbmcmIG9yaWdp
biwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb24pOwogICAgIHN0YXRpYyBRU3RyaW5nTGlzdCBj
b250ZXh0TWVudShRV2ViUGFnZUFkYXB0ZXIqKTsKIAotICAgIHN0YXRpYyBkb3VibGUgZGVmYXVs
dE1pbmltdW1UaW1lckludGVydmFsKCk7IC8vIE5vdCByZWFsbHkgdGllZCB0byBXZWJWaWV3Ci0g
ICAgc3RhdGljIHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoUVdlYlBhZ2VBZGFwdGVyKiwg
ZG91YmxlKTsKLQogICAgIHN0YXRpYyBRVXJsIG1lZGlhQ29udGVudFVybEJ5RWxlbWVudElkKFFX
ZWJGcmFtZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBlbGVtZW50SWQpOwogICAgIHN0YXRpYyB2
b2lkIHNldEFsdGVybmF0ZUh0bWwoUVdlYkZyYW1lQWRhcHRlciosIGNvbnN0IFFTdHJpbmcmIGh0
bWwsIGNvbnN0IFFVcmwmIGJhc2VVcmwsIGNvbnN0IFFVcmwmIGZhaWxpbmdVcmwpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGUuY3BwCmluZGV4IGNlODZhNDU4ZWM2Y2U1M2QxOWI3YjkzYmMxMWEzZmJkMzg2
ZTJlNjQuLmI3N2ZkMDJhZWQ2ODQyODVjMDIyNjg5MmIzOTk3MTcwY2VkMTY5NWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGUuY3BwCkBAIC0yNjQsMTEgKzI2NCw2IEBAIFdLQXJyYXlSZWYgV0tCdW5kbGVD
b3B5T3JpZ2luc1dpdGhBcHBsaWNhdGlvbkNhY2hlKFdLQnVuZGxlUmVmIGJ1bmRsZVJlZikKICAg
ICByZXR1cm4gdG9BUEkob3JpZ2lucy5yZWxlYXNlKCkubGVha1JlZigpKTsKIH0KIAotdm9pZCBX
S0J1bmRsZVNldE1pbmltdW1UaW1lckludGVydmFsKFdLQnVuZGxlUmVmIGJ1bmRsZVJlZiwgV0tC
dW5kbGVQYWdlR3JvdXBSZWYgcGFnZUdyb3VwUmVmLCBkb3VibGUgc2Vjb25kcykKLXsKLSAgICB0
b0ltcGwoYnVuZGxlUmVmKS0+c2V0TWluaW11bVRpbWVySW50ZXJ2YWwodG9JbXBsKHBhZ2VHcm91
cFJlZiksIHNlY29uZHMpOwotfQotCiBXS0RhdGFSZWYgV0tCdW5kbGVDcmVhdGVXS0RhdGFGcm9t
VUludDhBcnJheShXS0J1bmRsZVJlZiBidW5kbGUsIEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1Zh
bHVlUmVmIGRhdGEpCiB7CiAgICAgUmVmUHRyPFdlYkRhdGE+IHdlYkRhdGEgPSB0b0ltcGwoYnVu
ZGxlKS0+Y3JlYXRlV2ViRGF0YUZyb21VaW50OEFycmF5KGNvbnRleHQsIGRhdGEpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQcml2YXRlLmgKaW5kZXggMjNlODQwOTIwNmY2YjZlMDE4YzZhYTZmMmY1
M2I0Yzc1OWY5Njk2OS4uODg2Y2RlMzk0YzNjZjk4M2IzYWQ5MjQ2MWU1ZDAyN2ExNjQyMDJiZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oCkBAIC02Niw3ICs2Niw2IEBAIFdLX0VY
UE9SVCB2b2lkIFdLQnVuZGxlU2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihXS0J1bmRsZVJlZiBi
dW5kbGUsIFdLQnVuZGxlUGFnCiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNldFdlYk5vdGlmaWNh
dGlvblBlcm1pc3Npb24oV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
V0tTdHJpbmdSZWYgb3JpZ2luU3RyaW5nUmVmLCBib29sIGFsbG93ZWQpOwogV0tfRVhQT1JUIHZv
aWQgV0tCdW5kbGVSZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhXS0J1bmRsZVJl
ZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCB1aW50NjRfdCBXS0J1
bmRsZUdldFdlYk5vdGlmaWNhdGlvbklEKFdLQnVuZGxlUmVmIGJ1bmRsZSwgSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTVmFsdWVSZWYgbm90aWZpY2F0aW9uKTsKLVdLX0VYUE9SVCB2b2lkIFdLQnVu
ZGxlU2V0TWluaW11bVRpbWVySW50ZXJ2YWwoV0tCdW5kbGVSZWYgYnVuZGxlUmVmLCBXS0J1bmRs
ZVBhZ2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIGRvdWJsZSBpbnRlcnZhbCk7CiBXS19FWFBPUlQg
V0tEYXRhUmVmIFdLQnVuZGxlQ3JlYXRlV0tEYXRhRnJvbVVJbnQ4QXJyYXkoV0tCdW5kbGVSZWYg
YnVuZGxlLCBKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBkYXRhKTsKIAogLy8gVXNl
ckNvbnRlbnQgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IGE1Mzc5Y2YyZmE3OTNiYWZk
NmZkNzUxNjFlODYyY2I0MDBlYThjNWEuLjExYjM4ZDcxODc2MmE5MmNlMTViNzgzYWFiN2FjZWU1
YjgxZjdkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC01ODUsMTMgKzU4NSw2IEBAIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OnNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oV2ViUGFnZUdyb3Vw
UHJveHkqIHBhZ2VHcm91cCwgY29uCiAgICAgICAgICgqaXRlciktPnNldHRpbmdzKCktPnNldFVz
ZXJTdHlsZVNoZWV0TG9jYXRpb24oS1VSTChLVVJMKCksIGxvY2F0aW9uKSk7CiB9CiAKLXZvaWQg
SW5qZWN0ZWRCdW5kbGU6OnNldE1pbmltdW1UaW1lckludGVydmFsKFdlYlBhZ2VHcm91cFByb3h5
KiBwYWdlR3JvdXAsIGRvdWJsZSBzZWNvbmRzKQotewotICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+
JiBwYWdlcyA9IFBhZ2VHcm91cDo6cGFnZUdyb3VwKHBhZ2VHcm91cC0+aWRlbnRpZmllcigpKS0+
cGFnZXMoKTsKLSAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVyYXRvciBpdGVyID0gcGFnZXMu
YmVnaW4oKTsgaXRlciAhPSBwYWdlcy5lbmQoKTsgKytpdGVyKQotICAgICAgICAoKml0ZXIpLT5z
ZXR0aW5ncygpLT5zZXRNaW5ET01UaW1lckludGVydmFsKHNlY29uZHMpOwotfQotCiB2b2lkIElu
amVjdGVkQnVuZGxlOjpzZXRXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9uKFdlYlBhZ2UqIHBhZ2Us
IGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBib29sIGFsbG93ZWQpCiB7CiAjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuaAppbmRleCBjZTRiZmQxNTRhZGEwYTg3YTE1ZTY0YTAzMWRmMGFkNmRmNjY1NWY3Li41
MjExN2VhOWZhMjcxZGM1ZWVmMTlhNmE0MmJiMjUyZGIxZjg4ZTM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5oCkBAIC0xMjQsNyArMTI0LDYgQEAgcHVibGljOgogICAgIFN0cmluZyBwYWdlU2l6ZUFuZE1h
cmdpbnNJblBpeGVscyhXZWJGcmFtZSosIGludCwgaW50LCBpbnQsIGludCwgaW50LCBpbnQsIGlu
dCk7CiAgICAgYm9vbCBpc1BhZ2VCb3hWaXNpYmxlKFdlYkZyYW1lKiwgaW50KTsKICAgICB2b2lk
IHNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oV2ViUGFnZUdyb3VwUHJveHkqLCBjb25zdCBTdHJp
bmcmKTsKLSAgICB2b2lkIHNldE1pbmltdW1UaW1lckludGVydmFsKFdlYlBhZ2VHcm91cFByb3h5
KiwgZG91YmxlIHNlY29uZHMpOwogICAgIHZvaWQgc2V0V2ViTm90aWZpY2F0aW9uUGVybWlzc2lv
bihXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIGJvb2wgYWxsb3dlZCk7CiAg
ICAgdm9pZCByZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucyhXZWJQYWdlKik7CiAg
ICAgdWludDY0X3Qgd2ViTm90aWZpY2F0aW9uSUQoSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0
b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDY1YzVkNDhkZTZkMzZkNTExYmE0Zjk1YjgxZTA3
ZmEyMDc2ZjhlOTYuLjZhMzFlMGJjMDg0ZjdiMWQ4ZGIyNzE3ZjE2MWU2YWUxYTU0M2FjYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1
dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNDIsNiArNDIsOCBAQCBfWk43V2ViQ29yZTVSYW5n
ZTZjcmVhdGVFTjNXVEYxMFBhc3NSZWZQdHJJTlNfOERvY3VtZW50RUVFTlMyX0lOU180Tm9kZUVF
RWlTNl9pOwogX1pON1dlYkNvcmU1UmFuZ2VEMUV2OwogX1pON1dlYkNvcmU4RG9jdW1lbnQzNnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0c0V2OwogX1pON1dlYkNvcmU4RG9jdW1l
bnQ4aWNvblVSTHNFdjsKK19aTjdXZWJDb3JlOFNldHRpbmdzMTltaW5ET01UaW1lckludGVydmFs
RXY7CitfWk43V2ViQ29yZThTZXR0aW5nczIyc2V0TWluRE9NVGltZXJJbnRlcnZhbEVkOwogX1pO
N1dlYkNvcmU5SFRNTE5hbWVzOGlucHV0VGFnRTsKIF9aTjdXZWJDb3JlOUhUTUxOYW1lczExdGV4
dGFyZWFUYWdFOwogX1pON1dlYkNvcmUxMEpTRG9jdW1lbnQxMHB1dFZpcnR1YWxFUE4zSlNDOUV4
ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0
eVNsb3RFOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IGYwYzA4MDljOWFhOGZiNTRjOGI0ZmM0MDlhNzM5NmQyNjBlN2UzMzEuLmJlZDFjODcyNjlk
YzhjNmI0ZDJhMWRmZmQyYzkzNTI2ODcwYjhjZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAxMy0wMi0xMCAgQmVu
amFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgS2lsbCBUZXN0
UnVubmVyOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbDsgaW1wbGVtZW50IHRoZSBmZWF0dXJlIHdp
dGggSW50ZXJuYWxTZXR0aW5ncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA5MzQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgR2V0IHJpZCBvZiBUZXN0UnVubmVyJ3Mgc2V0TWluaW11bVRpbWVySW50ZXJ2
YWwgYW5kIGFsbCB0aGUgcmVsYXRlZCBmdW5jdGlvbnMuCisKKyAgICAgICAgVGhpcyBhbHNvIGZp
eGVzIGFuIG9kZGl0eToKKyAgICAgICAgVGVzdFJ1bm5lcnMgd2VyZSBpbml0aWFsaXplZCB3aXRo
IGEgbWluaW11bSB0aW1lciBpbnRlcnZhbCBvZiAxMCBtaWxsaXNlY29uZHMgaW5zdGVhZAorICAg
ICAgICBvZiB1c2luZyB0aGUgZGVmYXVsdCB2YWx1ZS4gQWxsIHdpdGggdGhlIHNhbWUgY29weSBv
ZiBhbiBvdXRkYXRlZCBjb21tZW50LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnku
Y3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGlj
L1dlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0
UnVubmVyOjpUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJlbmNl
cy5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQcmVmZXJlbmNlczo6cmVzZXQpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8pOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKFdl
YlZpZXdIb3N0OjpyZXNldCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5k
ZXJUcmVlQ2hyb21lLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNldERl
ZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwv
VGVzdFJ1bm5lckVmbC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5k
ZXJUcmVlLmNwcDoKKyAgICAgICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChyZXNldFdl
YlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0
L0R1bXBSZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViUGFnZTo6cmVzZXRT
ZXR0aW5ncyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcDoK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaDoKKyAgICAgICAgKFRl
c3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5j
cHA6CisgICAgICAgIChyZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3Rpbmcp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcDoKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlOjpiZWdpblRlc3RpbmcpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAg
IChUZXN0UnVubmVyKToKKwogMjAxMy0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHdvcmtlclRocmVhZENvdW50IGZyb20gVGVzdFJ1
bm5lciB0byBXZWJDb3JlIEludGVybmFscwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcApp
bmRleCBjODE3ZDUyMzBjNDQ4YTdhMWRkN2Q3NDM5YWIxMmFhM2EwODlkMzRiLi5kM2MxZjc1ZTZi
NWYyYmM4MzRjZmYxMjNiMjIxMzcyMDNiN2UxYjA0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVu
bmVyLmNwcApAQCAtMTk3MiwyMCArMTk3Miw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNpbXVsYXRl
TGVnYWN5V2ViTm90aWZpY2F0aW9uQ2xpY2tDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4CiAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNW
YWx1ZVJlZiBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90
IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbikKLXsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVy
biBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIGRvdWJsZSBtaW5pbXVtID0g
SlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKLSAgICBB
U1NFUlQoISpleGNlcHRpb24pOwotCi0gICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRp
Y19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAg
IGNvbnRyb2xsZXItPnNldE1pbmltdW1UaW1lckludGVydmFsKG1pbmltdW0pOwotCi0gICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJl
ZiBzZXRUZXh0RGlyZWN0aW9uQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0
UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3Vu
dCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQog
ewogICAgIGlmIChhcmd1bWVudENvdW50ID09IDEpIHsKQEAgLTIyMzEsNyArMjIxNyw2IEBAIEpT
U3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsg
InNldEljb25EYXRhYmFzZUVuYWJsZWQiLCBzZXRJY29uRGF0YWJhc2VFbmFibGVkQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAic2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQiLCBz
ZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgInNldE1haW5GcmFtZUlzRmlyc3RSZXNwb25kZXIiLCBzZXRNYWluRnJhbWVJc0ZpcnN0UmVz
cG9uZGVyQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0TWluaW11bVRpbWVySW50ZXJ2
YWwiLCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InNldE1vY2tEZXZpY2VPcmllbnRhdGlvbiIsIHNldE1vY2tEZXZpY2VPcmllbnRhdGlvbkNhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFp
bGFibGVFcnJvciIsIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvckNh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uIiwg
c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5oCmluZGV4IGFhNGFhYzIxYTBjZDExN2RhY2M0NTU4ZWQzYmNkOGIzNTgzYTc1
YjguLjJhOGE2ZGNjYzU5NjA3YzZjYjIzODYzMDE0MWI1MzhmYzc1NzNmOTggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmgKQEAgLTM0NSw4ICszNDUsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIG1heFZpZXdXaWR0aDsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
bWF4Vmlld0hlaWdodDsKIAotICAgIHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoZG91Ymxl
KTsKLQogICAgIHZvaWQgc2V0VGV4dERpcmVjdGlvbihKU1N0cmluZ1JlZik7CiAgICAgY29uc3Qg
c3RkOjpzdHJpbmcmIHRpdGxlVGV4dERpcmVjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdGl0bGVU
ZXh0RGlyZWN0aW9uOyB9CiAgICAgdm9pZCBzZXRUaXRsZVRleHREaXJlY3Rpb24oY29uc3Qgc3Rk
OjpzdHJpbmcmIGRpcmVjdGlvbikgeyBtX3RpdGxlVGV4dERpcmVjdGlvbiA9IGRpcmVjdGlvbjsg
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVy
QmxhY2tCZXJyeS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5u
ZXJCbGFja0JlcnJ5LmNwcAppbmRleCA2YmNlZmU1ZGFiNDViNjQwOWIxYzUyYzU1NzE0MDY4YzAz
ODE1Y2ZmLi4wNDdiYmRkMTE1NWIxM2JmNDZmOGM4MGNmNjg4NjJhN2ExYWMyODQzIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFj
a0JlcnJ5LmNwcApAQCAtNTc4LDExICs1NzgsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNlcmlh
bGl6ZUhUVFBMb2Fkcyhib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGVz
dFJ1bm5lcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwoZG91YmxlKQotewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0VGV4dERpcmVjdGlvbihKU1N0cmlu
Z1JlZikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVyZW5jZXMuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlByZWZlcmVu
Y2VzLmgKaW5kZXggYTEzOGJmZDcwMGNjNGY3N2ZmNTM4ZDAzYTFiMjY5ZGQyMGVkOTYwMC4uY2Fm
MjY0ZmY4NTZhNGNjNWMwODA1NjJmMGJlNjQyMTZjOTJkNzk3MSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViUHJlZmVyZW5jZXMu
aAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9X
ZWJQcmVmZXJlbmNlcy5oCkBAIC0xMDQsNyArMTA0LDYgQEAgc3RydWN0IFdFQlRFU1RSVU5ORVJf
RVhQT1JUIFdlYlByZWZlcmVuY2VzIHsKICAgICBib29sIGNzc0N1c3RvbUZpbHRlckVuYWJsZWQ7
CiAgICAgYm9vbCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbjsKICAgICBib29sIGFzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOwotICAgIGRvdWJsZSBtaW5pbXVtVGltZXJJbnRl
cnZhbDsKICAgICBib29sIHRvdWNoRHJhZ0Ryb3BFbmFibGVkOwogCiAgICAgV2ViUHJlZmVyZW5j
ZXMoKSB7IHJlc2V0KCk7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKaW5kZXggMzQxZTA3ZWI0MGFk
YmY1MTk5YmI1OWIyZGI3ZDQwYjM4YTFiYjY1Mi4uNTA1MDg2MGI5NTc1YWQ3Njc4YzZhZjQ3OTA0
NmRhYmM1NTNiZGY3OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKQEAgLTIzMSw3ICsyMzEsNiBA
QCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKICAgICBiaW5kTWV0aG9kKCJvdmVycmlkZVByZWZl
cmVuY2UiLCAmVGVzdFJ1bm5lcjo6b3ZlcnJpZGVQcmVmZXJlbmNlKTsKICAgICBiaW5kTWV0aG9k
KCJzZXRQbHVnaW5zRW5hYmxlZCIsICZUZXN0UnVubmVyOjpzZXRQbHVnaW5zRW5hYmxlZCk7CiAg
ICAgYmluZE1ldGhvZCgic2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQiLCAmVGVz
dFJ1bm5lcjo6c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOwotICAgIGJpbmRN
ZXRob2QoInNldE1pbmltdW1UaW1lckludGVydmFsIiwgJlRlc3RSdW5uZXI6OnNldE1pbmltdW1U
aW1lckludGVydmFsKTsKICAgICBiaW5kTWV0aG9kKCJzZXRUb3VjaERyYWdEcm9wRW5hYmxlZCIs
ICZUZXN0UnVubmVyOjpzZXRUb3VjaERyYWdEcm9wRW5hYmxlZCk7CiAKICAgICAvLyBUaGUgZm9s
bG93aW5nIG1vZGlmeSB0aGUgc3RhdGUgb2YgdGhlIFRlc3RSdW5uZXIuCkBAIC0xNjQwLDE1ICsx
NjM5LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3UKICAgICByZXN1bHQtPnNldE51bGwoKTsK
IH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChjb25zdCBDcHBB
cmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIGlmIChh
cmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNOdW1iZXIoKSkgewotICAgICAg
ICBtX2RlbGVnYXRlLT5wcmVmZXJlbmNlcygpLT5taW5pbXVtVGltZXJJbnRlcnZhbCA9IGFyZ3Vt
ZW50c1swXS50b0RvdWJsZSgpOwotICAgICAgICBtX2RlbGVnYXRlLT5hcHBseVByZWZlcmVuY2Vz
KCk7Ci0gICAgfQotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6
OnNldFRvdWNoRHJhZ0Ryb3BFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRz
LCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYm
IGFyZ3VtZW50c1swXS5pc0Jvb2woKSkgewpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCmluZGV4IDBkNTQxYWZh
ZGFmY2E1OWYyODI3YTUwYjkxNjRiZjk0MjI2YTZiMjkuLjYwOGE1MWUxNTdlM2NjM2JmZGI2MjRj
NWE0MTk3MzIxOTlmMjcwYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKQEAgLTMwNyw3ICszMDcsNiBA
QCBwcml2YXRlOgogICAgIC8vIENoYW5nZXMgYXN5bmNocm9ub3VzIHNwZWxsY2hlY2tpbmcgZmxh
ZyBvbiB0aGUgc2V0dGluZ3MuCiAgICAgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKLSAgICB2b2lk
IHNldE1pbmltdW1UaW1lckludGVydmFsKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqKTsKICAgICB2b2lkIHNldFRvdWNoRHJhZ0Ryb3BFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqKTsKIAogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVy
ZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDIzOTA5MzUxODc2MTkxZGQzN2ZiZGZmMDE3MmY1OTE0
ZGJmZmZhMGIuLmUzMTZmOTE1M2M1NjdhZmRkNThkNmJlMjBmYjQ0NmViM2JiMjJjMzQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBy
ZWZlcmVuY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTEzMSw3ICsxMzEsNiBAQCB2b2lkIFdlYlBy
ZWZlcmVuY2VzOjpyZXNldCgpCiAgICAgY3NzQ3VzdG9tRmlsdGVyRW5hYmxlZCA9IGZhbHNlOwog
ICAgIHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uID0gZmFsc2U7CiAgICAgYXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQgPSBmYWxzZTsKLSAgICBtaW5pbXVtVGltZXJJbnRlcnZh
bCA9IDAuMDEwOyAvLyAxMCBtaWxsaXNlY29uZHMuCiAgICAgdG91Y2hEcmFnRHJvcEVuYWJsZWQg
PSBmYWxzZTsKIH0KIApAQCAtMjAyLDcgKzIwMSw2IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmFw
cGx5VG8oV2ViVmlldyogd2ViVmlldykKICAgICBzZXR0aW5ncy0+c2V0TW9ja1Njcm9sbGJhcnNF
bmFibGVkKG1vY2tTY3JvbGxiYXJzRW5hYmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldFNob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uKHNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKTsKICAg
ICBzZXR0aW5ncy0+c2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQpOwotICAgIHNldHRpbmdzLT5zZXRNaW5pbXVtVGltZXJJ
bnRlcnZhbChtaW5pbXVtVGltZXJJbnRlcnZhbCk7CiAgICAgc2V0dGluZ3MtPnNldFRvdWNoRHJh
Z0Ryb3BFbmFibGVkKHRvdWNoRHJhZ0Ryb3BFbmFibGVkKTsKIAogICAgIC8vIEZpeGVkIHZhbHVl
cy4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRl
eCBlNzI3NDdlYWQ1ZDc3MTBjNjUyNzEwNTI2MDg4ZWI0ZmQ2YWUxM2Y3Li5mMzNhOTMyYTZmYWFl
NGEzODIwOGZlMGJlYzQzZmZlM2YwNTJjNThmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0xMDcwLDcgKzEwNzAsNiBAQCB2b2lkIFdlYlZp
ZXdIb3N0OjpyZXNldCgpCiAKICAgICBpZiAobV93ZWJXaWRnZXQpIHsKICAgICAgICAgd2ViVmll
dygpLT5tYWluRnJhbWUoKS0+c2V0TmFtZShXZWJTdHJpbmcoKSk7Ci0gICAgICAgIHdlYlZpZXco
KS0+c2V0dGluZ3MoKS0+c2V0TWluaW11bVRpbWVySW50ZXJ2YWwod2Via2l0X3N1cHBvcnQ6Okdl
dEZvcmVncm91bmRUYWJUaW1lckludGVydmFsKCkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKaW5kZXggZTVhODRi
ZjhhNzM1ZmJiZGQ2YWU3M2U0M2NmOTIyN2RhZTkyYmUzMS4uZTM3ODViMTA1Mjk1MjJiMWIzM2Nj
NDczNjE0NzhhYzBiNGJiZGJkMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCkBAIC0yNzMsNyArMjczLDYgQEAgdm9pZCBEdW1wUmVu
ZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgZXdr
X3ZpZXdfc2V0dGluZ19hdXRvX2xvYWRfaW1hZ2VzX3NldChtYWluVmlldygpLCBFSU5BX1RSVUUp
OwogICAgIGV3a192aWV3X3NldHRpbmdfdXNlcl9zdHlsZXNoZWV0X3NldChtYWluVmlldygpLCAw
KTsKICAgICBld2tfdmlld19zZXR0aW5nX2VuYWJsZV94c3NfYXVkaXRvcl9zZXQoYnJvd3Nlci0+
bWFpblZpZXcoKSwgRUlOQV9UUlVFKTsKLSAgICBld2tfdmlld19zZXR0aW5nX21pbmltdW1fdGlt
ZXJfaW50ZXJ2YWxfc2V0KGJyb3dzZXItPm1haW5WaWV3KCksIDAuMDEwKTsgLy8gMTAgbWlsbGlz
ZWNvbmRzIChET01UaW1lcjo6c19taW5EZWZhdWx0VGltZXJJbnRlcnZhbCkKICAgICBld2tfdmll
d19zZXR0aW5nX2VuYWJsZV93ZWJnbF9zZXQobWFpblZpZXcoKSwgRUlOQV9UUlVFKTsKICAgICBl
d2tfdmlld19zZXR0aW5nX2VuYWJsZV9oeXBlcmxpbmtfYXVkaXRpbmdfc2V0KG1haW5WaWV3KCks
IEVJTkFfRkFMU0UpOwogICAgIGV3a192aWV3X3NldHRpbmdfaW5jbHVkZV9saW5rc19pbl9mb2N1
c19jaGFpbl9zZXQobWFpblZpZXcoKSwgRUlOQV9GQUxTRSk7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKaW5kZXggNTgwYzUwMGRlOTZkMmMzN2NiMTc4NjZlZDZm
Njg1MmVhZGJmNzFhYi4uODkyZDYyY2JhNjk3ZGFlNGFhODlmNjI4ZmIzNDVkZGFkOWVmZThjZSAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcApAQCAtNzk2LDEx
ICs3OTYsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFNlcmlhbGl6ZUhUVFBMb2Fkcyhib29sIHNl
cmlhbGl6ZSkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlcmlhbGl6ZUhUVFBM
b2FkcyhzZXJpYWxpemUpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1pbmltdW1UaW1lcklu
dGVydmFsKGRvdWJsZSBtaW5pbXVtVGltZXJJbnRlcnZhbCkKLXsKLSAgICBld2tfdmlld19zZXR0
aW5nX21pbmltdW1fdGltZXJfaW50ZXJ2YWxfc2V0KGJyb3dzZXItPm1haW5WaWV3KCksIG1pbmlt
dW1UaW1lckludGVydmFsKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRUZXh0RGlyZWN0aW9u
KEpTU3RyaW5nUmVmIGRpcmVjdGlvbikKIHsKICAgICBFd2tfVGV4dF9EaXJlY3Rpb24gZXdrRGly
ZWN0aW9uOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJU
cmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKaW5k
ZXggZmFkYzNlYzc2MDEwYWY5NmEwYWQzNGZhMDYzZThhZjkwOWVlZjkwNS4uNjQ1YTkwMTQxZWI2
NWVkM2I0NDllOTRlY2NiYmFiODA0MzQ2YTI1MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9n
dGsvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC00ODIsNyArNDgyLDYgQEAgc3RhdGljIHZvaWQgcmVz
ZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNU
KGluc3BlY3RvciksICJqYXZhc2NyaXB0LXByb2ZpbGluZy1lbmFibGVkIiwgRkFMU0UsIE5VTEwp
OwogCiAgICAgd2Via2l0X3dlYl92aWV3X3NldF96b29tX2xldmVsKHdlYlZpZXcsIDEuMCk7Ci0g
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbCh3ZWJW
aWV3LCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmRlZmF1bHRNaW5pbXVtVGltZXJJbnRlcnZh
bCgpKTsKIAogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVzZXRPcmlnaW5BY2Nlc3NX
aGl0ZUxpc3RzKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0
UnVubmVyR3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNw
cAppbmRleCBhMjM3M2I2NGZmYTViYTQxYjgxY2I5ZGNiNDRkMmJkMDA2MDYxMDMwLi43MjRlYzg4
YTVlMWU3ZDg0NDUzMWFlNmYzZTczMTNhNjdlN2VjNGMxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCkBAIC05MDEsMTIgKzkwMSw2IEBAIHZvaWQgVGVzdFJ1
bm5lcjo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGJvb2wgc2VyaWFsaXplKQogICAgIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6c2V0U2VyaWFsaXplSFRUUExvYWRzKHNlcmlhbGl6ZSk7CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwoZG91YmxlIG1pbmltdW1U
aW1lckludGVydmFsKQotewotICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSB3ZWJraXRfd2Vi
X2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6c2V0TWluaW11bVRpbWVySW50ZXJ2YWwod2ViVmlldywgbWluaW11bVRpbWVySW50ZXJ2
YWwpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFRleHREaXJlY3Rpb24oSlNTdHJpbmdSZWYg
ZGlyZWN0aW9uKQogewogICAgIEdPd25QdHI8Z2NoYXI+IHdyaXRpbmdEaXJlY3Rpb24oSlNTdHJp
bmdDb3B5VVRGOENTdHJpbmcoZGlyZWN0aW9uKSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW0KaW5kZXggNWNmZjQ2NjZlNjY1MDJkZWI0MDQ4MmRlN2FhY2ZlOTQy
NzZkOGI5My4uOWEyMDIyZTJkZjM3NTQwM2VmOTFmNjM3ZTBkOTA2OTcxNmU4NTU1OCAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTI2OCw3ICsxMjY4
LDYgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0
aW5nKCkKICAgICBbW3dlYlZpZXcgdW5kb01hbmFnZXJdIHJlbW92ZUFsbEFjdGlvbnNdOwogICAg
IFtXZWJWaWV3IF9yZW1vdmVBbGxVc2VyQ29udGVudEZyb21Hcm91cDpbd2ViVmlldyBncm91cE5h
bWVdXTsKICAgICBbW3dlYlZpZXcgd2luZG93XSBzZXRBdXRvZGlzcGxheTpOT107Ci0gICAgW3dl
YlZpZXcgX3NldE1pbmltdW1UaW1lckludGVydmFsOltXZWJWaWV3IF9kZWZhdWx0TWluaW11bVRp
bWVySW50ZXJ2YWxdXTsKICAgICBbd2ViVmlldyBzZXRUcmFja3NSZXBhaW50czpOT107CiAgICAg
CiAgICAgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQppbmRleCA3ZDYyYjhmYTUxZmRmNDg5MGRmMmZkZWJj
YTdmMTE4ZDEzNjIyNzgyLi43MmIyNTNmODg5NzdhN2ZiYjFjNzdlODZjOGE0Mjc0ZTQ1NzQwMDVh
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtMTA3NCwx
MSArMTA3NCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGJvb2wg
c2VyaWFsaXplKQogICAgIFtXZWJWaWV3IF9zZXRMb2FkUmVzb3VyY2VzU2VyaWFsbHk6c2VyaWFs
aXplXTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChkb3Vi
bGUgbWluaW11bVRpbWVySW50ZXJ2YWwpCi17Ci0gICAgW1ttYWluRnJhbWUgd2ViVmlld10gX3Nl
dE1pbmltdW1UaW1lckludGVydmFsOm1pbmltdW1UaW1lckludGVydmFsXTsKLX0KLQogdm9pZCBU
ZXN0UnVubmVyOjpzZXRUZXh0RGlyZWN0aW9uKEpTU3RyaW5nUmVmIGRpcmVjdGlvbk5hbWUpCiB7
CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmluZGV4IDI0MDliNmFiNzhiMTFl
ZjA2ZmU5NDBlNTE4YTQ1Y2U1MzMxZGY5MzUuLjRmODVjNjE5Y2E5ZjQ5NWM3YWE2YmI2NjNhMDQy
ZDcwNTA4NDdjMjMgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5k
ZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVl
UXQuY3BwCkBAIC0yMDUsOCArMjA1LDYgQEAgdm9pZCBXZWJQYWdlOjpyZXNldFNldHRpbmdzKCkK
IAogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTZWFtbGVzc0lGcmFtZXNFbmFibGVk
KHRydWUpOwogCi0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1pbmltdW1UaW1lcklu
dGVydmFsKGhhbmRsZSgpLCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZGVmYXVsdE1pbmltdW1U
aW1lckludGVydmFsKCkpOwotCiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnJlc2V0SW50
ZXJuYWxzT2JqZWN0KG1haW5GcmFtZSgpLT5oYW5kbGUoKSk7CiAKICAgICBtX3BlbmRpbmdHZW9s
b2NhdGlvblJlcXVlc3RzLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9UZXN0UnVubmVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5l
clF0LmNwcAppbmRleCA2ZGFjMjJkODZiOThkMGQxNWI3MWFhNWMyYjIyN2FhZWZlZGQyZWQ1Li44
MjZlOTg2YmJhZThlMjIzMmRkYzI5MTg4NmIwODUwZDRlYjE3ZTA3IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKQEAgLTg3MywxMSArODczLDYgQEAgdm9pZCBUZXN0
UnVubmVyOjphZGRVUkxUb1JlZGlyZWN0KGNvbnN0IFFTdHJpbmcmIG9yaWdpbiwgY29uc3QgUVN0
cmluZyYgZGVzdGluYXQKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6YWRkVVJMVG9SZWRp
cmVjdChvcmlnaW4sIGRlc3RpbmF0aW9uKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRNaW5p
bXVtVGltZXJJbnRlcnZhbChkb3VibGUgbWluaW11bVRpbWVySW50ZXJ2YWwpCi17Ci0gICAgRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldE1pbmltdW1UaW1lckludGVydmFsKG1fZHJ0LT5wYWdl
QWRhcHRlcigpLCBtaW5pbXVtVGltZXJJbnRlcnZhbCk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6
b3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCmluZGV4IGVjMzVhOTFhMmU5MGEwZGEw
YzI3ZDMzZjFmYjk4Mjc3NTZkNzkxMTYuLjJjZmZmNjU3ZTc5ZGRlYWUyYmQyYzhmMzM2OGRjYjIy
YTM3M2M4YjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJR
dC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCkBAIC0yNTgs
OCArMjU4LDYgQEAgcHVibGljIFFfU0xPVFM6CiAgICAgdm9pZCBldmFsdWF0ZVNjcmlwdEluSXNv
bGF0ZWRXb3JsZEFuZFJldHVyblZhbHVlKGludCB3b3JsZElELCBjb25zdCBRU3RyaW5nJiBzY3Jp
cHQpOwogICAgIHZvaWQgZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoaW50IHdvcmxkSUQs
IGNvbnN0IFFTdHJpbmcmIHNjcmlwdCk7CiAgICAgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChjb25z
dCBRU3RyaW5nJiBzb3VyY2VDb2RlKTsKLQotICAgIHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2
YWwoZG91YmxlKTsKICAgICAKICAgICB2b2lkIG9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlKCk7CiAg
ICAgdm9pZCBkZWxldGVBbGxMb2NhbFN0b3JhZ2UoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGU5ZTg0Yjg0OGFlNzE3ZjQxYWM5NmM0NzI5ZGQy
OTE2MWE0Y2IyZWEuLjA0YzE5MzY4ODA5YTM0MmViY2VmNTI0NzM0ZDU5NDdiNWJhZTczNmMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtOTA4LDEw
ICs5MDgsNiBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9y
ZVRlc3RpbmcoKQogICAgIGlmICghd2ViVmlld1ByaXZhdGUpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGRvdWJsZSBtaW5pbXVtSW50ZXJ2YWwgPSAwOwotICAgIGlmIChTVUNDRUVERUQod2ViVmll
d1ByaXZhdGUtPmRlZmF1bHRNaW5pbXVtVGltZXJJbnRlcnZhbCgmbWluaW11bUludGVydmFsKSkp
Ci0gICAgICAgIHdlYlZpZXdQcml2YXRlLT5zZXRNaW5pbXVtVGltZXJJbnRlcnZhbChtaW5pbXVt
SW50ZXJ2YWwpOwotCiAgICAgSFdORCB2aWV3V2luZG93OwogICAgIGlmIChTVUNDRUVERUQod2Vi
Vmlld1ByaXZhdGUtPnZpZXdXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxPTEVfSEFORExFKj4oJnZp
ZXdXaW5kb3cpKSkgJiYgdmlld1dpbmRvdykKICAgICAgICAgU2V0Rm9jdXModmlld1dpbmRvdyk7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggZmZjMWE3
Y2U3MmI2NmRkNjk5OTExOWE3YzhjYjc4NzZjNzc1ZGI2OC4uYTMzNjdiZjgzMmYwYzYwMjQ0MWVh
Y2U0ZGVlYWJjNzEwZjljNzQzNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVu
bmVyV2luLmNwcApAQCAtMTI3MCwxOSArMTI3MCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6ZGVsZXRl
TG9jYWxTdG9yYWdlRm9yT3JpZ2luKEpTU3RyaW5nUmVmIFVSTCkKICAgICAvLyBGSVhNRTogSW1w
bGVtZW50LgogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsKGRv
dWJsZSBtaW5pbXVtVGltZXJJbnRlcnZhbCkKLXsKLSAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZp
ZXc7Ci0gICAgaWYgKEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB2aWV3UHJpdmF0ZShRdWVyeSwg
d2ViVmlldyk7Ci0gICAgaWYgKCF2aWV3UHJpdmF0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
dmlld1ByaXZhdGUtPnNldE1pbmltdW1UaW1lckludGVydmFsKG1pbmltdW1UaW1lckludGVydmFs
KTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRUZXh0RGlyZWN0aW9uKEpTU3RyaW5nUmVmIGRp
cmVjdGlvbikKIHsKICAgICBDT01QdHI8SVdlYkZyYW1lUHJpdmF0ZT4gZnJhbWVQcml2YXRlKFF1
ZXJ5LCBmcmFtZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVu
bmVyV3guY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcAppbmRl
eCAyNjNmMDMzMTJhMjVjN2IyODVhZGIzOWY5Y2MzNTI4NDRlOTZlNzc5Li5iMDRlYzM5ZGViNWI3
NzgzZjdkNDIyZjU1ODYzMGE4OTZiMWU1NTJiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS93eC9UZXN0UnVubmVyV3guY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rl
c3RSdW5uZXJXeC5jcHAKQEAgLTUwMiwxMSArNTAyLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRT
ZXJpYWxpemVIVFRQTG9hZHMoYm9vbCkKICAgICAvLyBGSVhNRTogSW1wbGVtZW50LgogfQogCi12
b2lkIFRlc3RSdW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsKGRvdWJsZSBpbnRlcnZhbCkK
LXsKLQotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnN5bmNMb2NhbFN0b3JhZ2UoKQogewogICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCAwOTI4ZjFh
OWU1OTgzMDcxZjE0ZDNkM2Y2ODJmMGIzZTMxODJhYjEwLi5mZWFiNmJiNzBkZjFlMDk3ZTc2ZDI1
MmIyZDc3YzE5MGQ4ZWM4OGE4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTY3LDcg
KzY3LDYgQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkoaW4gRE9NU3RyaW5nIHNvdXJjZU9yaWdpbiwgaW4gRE9NU3RyaW5n
IGRlc3RpbmF0aW9uUHJvdG9jb2wsIGluIERPTVN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGluIGJv
b2xlYW4gYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgc2V0VXNlclN0eWxl
U2hlZXRFbmFibGVkKGluIGJvb2xlYW4gdmFsdWUpOwogICAgIHZvaWQgc2V0VXNlclN0eWxlU2hl
ZXRMb2NhdGlvbihpbiBET01TdHJpbmcgbG9jYXRpb24pOwotICAgIHZvaWQgc2V0TWluaW11bVRp
bWVySW50ZXJ2YWwoaW4gZG91YmxlIGludGVydmFsKTsgLy8gSW50ZXJ2YWwgc3BlY2lmaWVkIGlu
IHNlY29uZHMuCiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoaW4gYm9vbGVh
biB2YWx1ZSk7CiAgICAgdm9pZCBzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoaW4gYm9v
bGVhbiBlbmFibGVkKTsKICAgICB2b2lkIHNldFNlcmlhbGl6ZUhUVFBMb2FkcygpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcAppbmRleCBiYWRjYTNmY2JlOTVhOWNhOTI4MzdhNGQ2NTljZmI4N2JjY2E0ZDlhLi45
MDk0YTY2MWEwYThjNzBkNmQ0MTBmYTljMTY2M2UwNDBmOWRmNWUwIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNw
cApAQCAtMjUwLDcgKzI1MCw2IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyhX
S0RpY3Rpb25hcnlSZWYgc2V0dGluZ3MpCiAgICAgV0tCdW5kbGVTZXRBdXRob3JBbmRVc2VyU3R5
bGVzRW5hYmxlZChtX2J1bmRsZSwgbV9wYWdlR3JvdXAsIHRydWUpOwogICAgIFdLQnVuZGxlU2V0
RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChtX2J1bmRsZSwgbV9wYWdlR3JvdXAsIGZhbHNlKTsKICAg
ICBXS0J1bmRsZVNldE1pbmltdW1Mb2dpY2FsRm9udFNpemUobV9idW5kbGUsIG1fcGFnZUdyb3Vw
LCA5KTsKLSAgICBXS0J1bmRsZVNldE1pbmltdW1UaW1lckludGVydmFsKG1fYnVuZGxlLCBtX3Bh
Z2VHcm91cCwgMC4wMTApOyAvLyAxMCBtaWxsaXNlY29uZHMgKERPTVRpbWVyOjpzX21pbkRlZmF1
bHRUaW1lckludGVydmFsKQogICAgIFdLQnVuZGxlU2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVk
KG1fYnVuZGxlLCBtX3BhZ2VHcm91cCwgZmFsc2UpOwogICAgIFdLQnVuZGxlU2V0QWxsb3dGaWxl
QWNjZXNzRnJvbUZpbGVVUkxzKG1fYnVuZGxlLCBtX3BhZ2VHcm91cCwgdHJ1ZSk7CiAgICAgV0tC
dW5kbGVTZXRQbHVnaW5zRW5hYmxlZChtX2J1bmRsZSwgbV9wYWdlR3JvdXAsIHRydWUpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAKaW5kZXggZTczM2M1NDY4NzE4MjBkNGEwNzRmZWY0NDg2NmRlZGRlMTk5N2VkMy4uNDBlZDVh
MmUxODg2ODllYmVkMGE2YTA5MGU5NTVmMjhjMDZlNWQ2YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC02NTYsMTEg
KzY1Niw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihKU1N0
cmluZ1JlZiBsb2NhdGlvbikKICAgICAgICAgc2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKHRydWUp
OwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldE1pbmltdW1UaW1lckludGVydmFsKGRvdWJsZSBz
ZWNvbmRzKQotewotICAgIFdLQnVuZGxlU2V0TWluaW11bVRpbWVySW50ZXJ2YWwoSW5qZWN0ZWRC
dW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZUdy
b3VwKCksIHNlY29uZHMpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFNwYXRpYWxOYXZpZ2F0
aW9uRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgV0tCdW5kbGVTZXRTcGF0aWFsTmF2aWdh
dGlvbkVuYWJsZWQoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBJbmplY3RlZEJ1
bmRsZTo6c2hhcmVkKCkucGFnZUdyb3VwKCksIGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCBhMTc2MjE1ODQ5
YjczZDAzOTdlNmQ2Mzg0NmViN2EyYjBlYjM4ZDRmLi5lYjU2MTY5YjY2N2E2MjA2MzhkZGEzYWZk
NjA0OWU3YzgyOTYyZWFhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMTExLDcgKzExMSw2IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9y
aWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGlu
YXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKICAgICB2b2lkIHNl
dFVzZXJTdHlsZVNoZWV0RW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0
TG9jYXRpb24oSlNTdHJpbmdSZWYpOwotICAgIHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwo
ZG91YmxlIHNlY29uZHMpOyAvLyBJbnRlcnZhbCBzcGVjaWZpZWQgaW4gc2Vjb25kcy4KICAgICB2
b2lkIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFRhYktl
eUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhib29sKTsKICAgICB2b2lkIHNldFNlcmlhbGl6ZUhUVFBM
b2FkcygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDI4Y2M4YmNlMjliOWIzMjYwOGMyZjBlNDFkZGI0OThhZGIzZWU2MTcu
LjViMmQwM2YwZGEwNDM0NGE5YzcxYTBmNzk3YWNlNDYwYjdjNzU4NDUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOCBAQAorMjAxMy0wMi0xMCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgS2lsbCBUZXN0UnVubmVyOjpzZXRNaW5pbXVtVGltZXJJbnRlcnZhbDsg
aW1wbGVtZW50IHRoZSBmZWF0dXJlIHdpdGggSW50ZXJuYWxTZXR0aW5ncworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MzQ5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSB0ZXN0cyB0byB1
c2UgSW50ZXJuYWxTZXR0aW5ncy4KKworICAgICAgICAqIGZhc3QvZG9tL3RpbWVyLWluY3JlYXNl
LW1pbi1pbnRlcnZhbC1hbmQtcmVzZXQtcGFydC0xLmh0bWw6CisgICAgICAgICogZmFzdC9kb20v
dGltZXItaW5jcmVhc2UtbWluLWludGVydmFsLXJlcGVhdGluZy5odG1sOgorICAgICAgICAqIGZh
c3QvZG9tL3RpbWVyLWluY3JlYXNlLW1pbi1pbnRlcnZhbC5odG1sOgorICAgICAgICAqIGZhc3Qv
ZG9tL3RpbWVyLWluY3JlYXNlLXRoZW4tZGVjcmVhc2UtbWluLWludGVydmFsLXJlcGVhdGluZy5o
dG1sOgorICAgICAgICAqIGZhc3QvZG9tL3RpbWVyLWluY3JlYXNlLXRoZW4tZGVjcmVhc2UtbWlu
LWludGVydmFsLmh0bWw6CisKIDIwMTMtMDItMDggIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY10gcmVzcGVjdCBpbi1iYW5kIGNhcHRpb24gY29s
b3IKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLW1pbi1p
bnRlcnZhbC1hbmQtcmVzZXQtcGFydC0xLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1l
ci1pbmNyZWFzZS1taW4taW50ZXJ2YWwtYW5kLXJlc2V0LXBhcnQtMS5odG1sCmluZGV4IDRkYzRm
ODVkODVkMDQ4NGZmNTI4ZDZiZjFjNTM0NzE1ZTJiZThlNDMuLjI4ZTViYWY0NDkwYzlhOTIxMmE5
ZGE4YTI2ZWZkMzNkNTg0ZWMwYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Rp
bWVyLWluY3JlYXNlLW1pbi1pbnRlcnZhbC1hbmQtcmVzZXQtcGFydC0xLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vdGltZXItaW5jcmVhc2UtbWluLWludGVydmFsLWFuZC1yZXNldC1w
YXJ0LTEuaHRtbApAQCAtMTcsNyArMTcsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgLy8gTWFrZSB0aW1lcnMgcnVuIG5vIG1vcmUg
b2Z0ZW4gdGhhbiB0d2ljZSBhIHNlY29uZC4KLSAgICB0ZXN0UnVubmVyLnNldE1pbmltdW1UaW1l
ckludGVydmFsKDAuNSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldE1pbmltdW1UaW1lcklu
dGVydmFsKDAuNSk7CiAKICAgICAvLyBQYXJ0IDIgb2YgdGhpcyB0ZXN0ICh3aGljaCB3aWxsIGxp
a2VseSBiZSBleGVjdXRlZCBpbW1lZGlhdGVseQogICAgIC8vIGFmdGVyIHRoaXMgb25lIGJ5IHRo
ZSBoYXJuZXNzKSB2ZXJpZmllcyB0aGF0IHRoZSBtaW5pbXVtIHRpbWVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1pbmNyZWFzZS1taW4taW50ZXJ2YWwtcmVwZWF0aW5n
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1pbmNyZWFzZS1taW4taW50ZXJ2YWwt
cmVwZWF0aW5nLmh0bWwKaW5kZXggNTNkN2E0ZjE2ZjIxZWFiZDcyM2QxZjBhZmNkNjZmMGE5NjEx
MWY1YS4uMjVjN2VhOGFlZjdhOTJjNTUxODc2YmRhM2IxMGFhMjU1ODUxOWU1NyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItaW5jcmVhc2UtbWluLWludGVydmFsLXJlcGVh
dGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLW1pbi1p
bnRlcnZhbC1yZXBlYXRpbmcuaHRtbApAQCAtMzMsNyArMzMsNyBAQCBmdW5jdGlvbiBydW5UZXN0
KCkgewogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCiAgICAgLy8gTWFrZSB0aW1l
cnMgcnVuIG5vIG1vcmUgb2Z0ZW4gdGhhbiB0d2ljZSBhIHNlY29uZC4KLSAgICB0ZXN0UnVubmVy
LnNldE1pbmltdW1UaW1lckludGVydmFsKDAuNSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dE1pbmltdW1UaW1lckludGVydmFsKDAuNSk7CiAKICAgICBzZXRJbnRlcnZhbChzbG93VGltZW91
dEhhbmRsZXIsIDEwMDApOwogICAgIHNldEludGVydmFsKGZhc3RUaW1lb3V0SGFuZGxlciwgMSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci1pbmNyZWFzZS1taW4taW50
ZXJ2YWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLW1pbi1pbnRl
cnZhbC5odG1sCmluZGV4IGU1NGY0NmJmODU3NWNkNDgyOWY0NjlmN2QwOWNiMjYxODRlODVkZjMu
LjYxMzc2NjcxY2M3NTQxMzYxZmI5NzEzNzVhZDVkZDExN2U3MzI0MzcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLW1pbi1pbnRlcnZhbC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLW1pbi1pbnRlcnZhbC5odG1sCkBA
IC0zNCw3ICszNCw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CiAKICAgICAvLyBNYWtlIHRpbWVycyBydW4gbm8gbW9yZSBvZnRlbiB0aGFu
IHR3aWNlIGEgc2Vjb25kLgotICAgIHRlc3RSdW5uZXIuc2V0TWluaW11bVRpbWVySW50ZXJ2YWwo
MC41KTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoMC41
KTsKIAogICAgIHNldFRpbWVvdXQoc2xvd1RpbWVvdXRIYW5kbGVyLCAxMDAwKTsKICAgICBzZXRU
aW1lb3V0KGZhc3RUaW1lb3V0SGFuZGxlciwgMSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS90aW1lci1pbmNyZWFzZS10aGVuLWRlY3JlYXNlLW1pbi1pbnRlcnZhbC1yZXBlYXRp
bmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLXRoZW4tZGVjcmVh
c2UtbWluLWludGVydmFsLXJlcGVhdGluZy5odG1sCmluZGV4IDU4YmZmYjEwODJmNDEwNzIzMGE3
OWMwZGNjMDlkM2Y5NTkwNjRiZDcuLjczMDk2MTdjNTM2MzkyMGU5NDc0N2I2NjVkYzc0NmFmODhm
OGY5NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLXRo
ZW4tZGVjcmVhc2UtbWluLWludGVydmFsLXJlcGVhdGluZy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3RpbWVyLWluY3JlYXNlLXRoZW4tZGVjcmVhc2UtbWluLWludGVydmFsLXJlcGVh
dGluZy5odG1sCkBAIC0zMyw3ICszMyw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAgICAvLyBNYWtlIHRpbWVycyBydW4gbm8gbW9y
ZSBvZnRlbiB0aGFuIG9uY2UgZXZlcnkgdHdvIHNlY29uZHMuCi0gICAgdGVzdFJ1bm5lci5zZXRN
aW5pbXVtVGltZXJJbnRlcnZhbCgyLjApOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRNaW5p
bXVtVGltZXJJbnRlcnZhbCgyLjApOwogCiAgICAgc2V0SW50ZXJ2YWwoc2xvd1RpbWVvdXRIYW5k
bGVyLCAxMDAwKTsKICAgICBzZXRJbnRlcnZhbChmYXN0VGltZW91dEhhbmRsZXIsIDEpOwpAQCAt
NDIsNyArNDIsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIC8vIElmIHRoaXMgZG9lc24n
dCBjYXVzZSB0aW1lcnMgdG8gZ2V0IHJlLWV2YWx1YXRlZCBpbW1lZGlhdGVseSwKICAgICAvLyB0
aGUgZmFzdCB0aW1lb3V0IGhhbmRsZXIgd29uJ3QgZ2V0IGNhbGxlZCBmb3IgdXAgdG8gdHdvIHNl
Y29uZHMsCiAgICAgLy8gd2hpY2ggd291bGQgbGVhZCB0byBwb29yIHJlc3BvbnNpdmVuZXNzLgot
ICAgIHRlc3RSdW5uZXIuc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoMC4wMDQpOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRNaW5pbXVtVGltZXJJbnRlcnZhbCgwLjAwNCk7CiB9CiA8L3Njcmlw
dD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLWluY3Jl
YXNlLXRoZW4tZGVjcmVhc2UtbWluLWludGVydmFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS90aW1lci1pbmNyZWFzZS10aGVuLWRlY3JlYXNlLW1pbi1pbnRlcnZhbC5odG1sCmluZGV4IDc5
OTdkMzBjMWI5ZjQ2ZTI1Mjc2NDI4NGI1MmNmYTVmYmQ2ODhmOWUuLmUyY2FlYmIxNDFjNWYzMjll
ZGRmMTdhMWEzZDNlZjc4NDk5N2U1YjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3RpbWVyLWluY3JlYXNlLXRoZW4tZGVjcmVhc2UtbWluLWludGVydmFsLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vdGltZXItaW5jcmVhc2UtdGhlbi1kZWNyZWFzZS1taW4taW50ZXJ2
YWwuaHRtbApAQCAtMzQsNyArMzQsNyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwogCiAgICAgLy8gTWFrZSB0aW1lcnMgcnVuIG5vIG1vcmUg
b2Z0ZW4gdGhhbiBvbmNlIGV2ZXJ5IHR3byBzZWNvbmRzLgotICAgIHRlc3RSdW5uZXIuc2V0TWlu
aW11bVRpbWVySW50ZXJ2YWwoMi4wKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0TWluaW11
bVRpbWVySW50ZXJ2YWwoMi4wKTsKIAogICAgIHNldFRpbWVvdXQoc2xvd1RpbWVvdXRIYW5kbGVy
LCAxMDAwKTsKICAgICBzZXRUaW1lb3V0KGZhc3RUaW1lb3V0SGFuZGxlciwgMSk7CkBAIC00Myw3
ICs0Myw3IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgLy8gSWYgdGhpcyBkb2Vzbid0IGNh
dXNlIHRpbWVycyB0byBnZXQgcmUtZXZhbHVhdGVkIGltbWVkaWF0ZWx5LAogICAgIC8vIHRoZSBm
YXN0IHRpbWVvdXQgaGFuZGxlciB3b24ndCBnZXQgY2FsbGVkIGZvciB1cCB0byB0d28gc2Vjb25k
cywKICAgICAvLyB3aGljaCB3b3VsZCBsZWFkIHRvIHBvb3IgcmVzcG9uc2l2ZW5lc3MuCi0gICAg
dGVzdFJ1bm5lci5zZXRNaW5pbXVtVGltZXJJbnRlcnZhbCgwLjAwNCk7CisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldE1pbmltdW1UaW1lckludGVydmFsKDAuMDA0KTsKIH0KIDwvc2NyaXB0Pgog
PC9oZWFkPgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGFiMjMzYmRk
MjgyNTRjYzM1OGY5YmMyZjUwOWFmNGExOTc5OWIwNmMuLjI1NmJhYTJkOTIyYzU5ZDliNjE2Nzky
MzVhZGIxN2MwMDJjY2U0NjMgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAxMy0wMi0wOCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWlu
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgS2lsbCBUZXN0UnVubmVyOjpzZXRNaW5pbXVtVGltZXJJ
bnRlcnZhbDsgaW1wbGVtZW50IHRoZSBmZWF0dXJlIHdpdGggSW50ZXJuYWxTZXR0aW5ncworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MzQ5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0
b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDEzLTAyLTA4ICBCZW5qYW1pbiBQb3VsYWluICA8
YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgd29ya2VyVGhyZWFkQ291bnQgZnJv
bSBUZXN0UnVubmVyIHRvIFdlYkNvcmUgSW50ZXJuYWxzCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>