<?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>140282</bug_id>
          
          <creation_ts>2015-01-08 19:58:32 -0800</creation_ts>
          <short_desc>defaultPlaybackRate not respected when set before sourec is loaded</short_desc>
          <delta_ts>2015-02-09 11:02:49 -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>
          <dependson>140366</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1060057</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-01-08 19:58:32 -0800</bug_when>
    <thetext>defaultPlaybackRate not respected when set before sourec is loaded</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060086</commentid>
    <comment_count>1</comment_count>
      <attachid>244328</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-01-08 22:04:29 -0800</bug_when>
    <thetext>Created attachment 244328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060178</commentid>
    <comment_count>2</comment_count>
      <attachid>244328</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-01-09 10:57:57 -0800</bug_when>
    <thetext>Comment on attachment 244328
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:265
&gt; +    , m_playbackRate(1)

This name makes it even less clear what this is used for now that there are 3 rate ivars. I think something like &quot;m_requestedRate&quot; would be better.

&gt; LayoutTests/ChangeLog:3
&gt; +        defaultPlaybackRate not respected when set before sourec is loaded

Typo: sourec -&gt; source</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060190</commentid>
    <comment_count>3</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-01-09 11:15:36 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 244328 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=244328&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLMediaElement.cpp:265
&gt; &gt; +    , m_playbackRate(1)
&gt; 
&gt; This name makes it even less clear what this is used for now that there are
&gt; 3 rate ivars. I think something like &quot;m_requestedRate&quot; would be better.

I originally changed it to m_requestedPlaybackRate, but changed it back.  I&apos;ll re-make that change.

&gt; &gt; LayoutTests/ChangeLog:3
&gt; &gt; +        defaultPlaybackRate not respected when set before sourec is loaded
&gt; 
&gt; Typo: sourec -&gt; source

Whoops!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060232</commentid>
    <comment_count>4</comment_count>
      <attachid>244363</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-01-09 12:11:56 -0800</bug_when>
    <thetext>Created attachment 244363
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060584</commentid>
    <comment_count>5</comment_count>
      <attachid>244363</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-12 10:15:08 -0800</bug_when>
    <thetext>Comment on attachment 244363
Patch for landing

Clearing flags on attachment: 244363

Committed r178281: &lt;http://trac.webkit.org/changeset/178281&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060605</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-01-12 10:57:50 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 244363 [details]
&gt; Patch for landing
&gt; 
&gt; Clearing flags on attachment: 244363
&gt; 
&gt; Committed r178281: &lt;http://trac.webkit.org/changeset/178281&gt;

It broke many tests everywhere:
- Apple Yosemite WK2: https://build.webkit.org/builders/Apple%20Yosemite%20Release%20WK2%20%28Tests%29/builds/1895
-  Apple Yosemite WK1: https://build.webkit.org/builders/Apple%20Yosemite%20Release%20WK1%20%28Tests%29/builds/1904
- GTK: https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release%20%28Tests%29/builds/5336</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060612</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-12 11:57:21 -0800</bug_when>
    <thetext>Yes, I&apos;m going to roll out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060659</commentid>
    <comment_count>8</comment_count>
      <attachid>244464</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-01-12 13:48:55 -0800</bug_when>
    <thetext>Created attachment 244464
Patch for landing

Replaced two more instances of &apos;effectivePlaybackRate()&apos; with &apos;requsetedPlaybackRate()&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060669</commentid>
    <comment_count>9</comment_count>
      <attachid>244466</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-01-12 14:12:56 -0800</bug_when>
    <thetext>Created attachment 244466
Patch for landing

Replaced two more instances of &apos;effectivePlaybackRate()&apos; with &apos;requsetedPlaybackRate()&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060883</commentid>
    <comment_count>10</comment_count>
      <attachid>244466</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-13 12:01:44 -0800</bug_when>
    <thetext>Comment on attachment 244466
Patch for landing

Clearing flags on attachment: 244466

Committed r178367: &lt;http://trac.webkit.org/changeset/178367&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244328</attachid>
            <date>2015-01-08 22:04:29 -0800</date>
            <delta_ts>2015-01-26 08:38:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140282-20150108220434.patch</filename>
            <type>text/plain</type>
            <size>27231</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ0MWYxM2E0MjRhM2U0
ODJhM2JjNmEwNDZkZDEwNWMwOWQ1Nzk3Mi4uZjIyOTg2MWFkMTBiNGJhYTI0YTIyYmY0OTRmOWUz
OTI0ZDg2N2I1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE1LTAxLTA4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIGRlZmF1bHRQbGF5YmFja1Jh
dGUgbm90IHJlc3BlY3RlZCB3aGVuIHNldCBiZWZvcmUgc291cmVjIGlzIGxvYWRlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwMjgyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWVkaWEvdmlk
ZW8tZGVmYXVsdHBsYXliYWNrcmF0ZS1iZWZvcmUtbG9hZC5odG1sCisKKyAgICAgICAgV2hlbiB0
aGUgSFRNTE1lZGlhRWxlbWVudCBpcyBub3RpZmllZCB0aGF0IHRoZSBtZWRpYSBwbGF5ZXIncyBy
YXRlIGhhcyBjaGFuZ2VkLCBpdCBhc2tzCisgICAgICAgIGZvciB0aGUgcmF0ZSBmcm9tIE1lZGlh
UGxheWVyLiBIb3dldmVyLCBNZWRpYVBsYXllciBuZXZlciByZXF1ZXN0cyB0aGUgcGxheWJhY2sg
cmF0ZQorICAgICAgICBmcm9tIHRoZSB1bmRlcmx5aW5nIE1lZGlhUGxheWVyUHJpdmF0ZTsgaXQg
anVzdCByZXR1cm5zIHRoZSBsYXN0IHJhdGUgd2hpY2ggd2FzIHNldCwgb3IKKyAgICAgICAgMSBp
ZiBubyByYXRlIHdhcyBzZXQuIEhUTUxNZWRpYUVsZW1lbnQgdGhlbiBzZXRzIGl0cyBwbGF5YmFj
a1JhdGUgdG8gdGhlIHJldHVybmVkCisgICAgICAgIHZhbHVlLiBTbyB0aGUgZW5kIHJlc3VsdCBp
cyB0aGF0IHRoZSB2YWx1ZSBmcm9tIGRlZmF1bHRQbGF5YmFja1JhdGUgaXMgb3ZlcndyaXR0ZW4g
YnkKKyAgICAgICAgdGhlIGRlZmF1bHQgdmFsdWUgb2YgMSBpbiBNZWRpYVBsYXllci4KKworICAg
ICAgICBSYXRoZXIgdGhhbiBjYWNoaW5nIHRoZSByZXF1ZXN0ZWQgcmF0ZSBpbiBNZWRpYVBsYXll
ciwgY2FjaGUgdGhlIHZhbHVlIHJlcG9ydGVkIGJ5CisgICAgICAgIE1lZGlhUGxheWVyIGluc2lk
ZSBIVE1MTWVkaWFFbGVtZW50LiBBbmQgaW5zdGVhZCBvZiByZXR1cm5pbmcgdGhlIHJlcG9ydGVk
IHBsYXliYWNrCisgICAgICAgIHJhdGUgZnJvbSBIVE1MTWVkaWFFbGVtZW50LnBsYXliYWNrUmF0
ZSwganVzdCByZXR1cm4gdGhlIGxhc3QgdmFsdWUgc2V0LiBUaGUgcmVwb3J0ZWQKKyAgICAgICAg
dmFsdWUgaXMgc3RpbGwgdXNlZCBmb3IgZXN0aW1hdGluZyB0aGUgY3VycmVudCB0aW1lIGR1cmlu
ZyBwbGF5YmFjay4KKworICAgICAgICBBZGQgTWVkaWFQbGF5ZXJQcml2YXRlIGludGVyZmFjZSBt
ZXRob2QgdG8gcmV0dXJuIHRoZSBjdXJyZW50IHBsYXliYWNrIHJhdGUuCisKKyAgICAgICAgKiBo
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6SFRNTE1lZGlhRWxlbWVudCk6IEluaXRpYWxpemUgbV9yZXBvcnRlZFBsYXliYWNrUmF0
ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmVmZmVjdGl2ZVBsYXliYWNr
UmF0ZSk6IFJldHVybiBtX3JlcG9ydGVkUGxheWJhY2tSYXRlLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6cmVxdWVzdGVkUGxheWJhY2tSYXRlKTogUmV0dXJuIG1fcGxheWJh
Y2tSYXRlLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlUGxheWJh
Y2tSYXRlKTogVXNlIHJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpIGluc3RlYWQKKyAgICAgICAgICAg
IG9mIGVmZmVjdGl2ZVBsYXliYWNrUmF0ZSgpOworICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6ZW5kZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OnBsYXliYWNrUHJvZ3Jlc3NUaW1lckZpcmVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjplbmRlZFBsYXliYWNrKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5U3RhdGUpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUmF0ZUNoYW5nZWQpOiBTZXQg
bV9yZXBvcnRlZFBsYXliYWNrUmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJhY2tSYXRlKTogUmV0dXJuCisgICAgICAgICAg
ICByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSBpZiBwbGF5aW5nIGFuZCAwIGlmIG5vdC4KKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFQ
bGF5ZXIpOiBSZW1vdmVkIG1fcmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpy
YXRlKTogUGFzcyB0byBNZWRpYVBsYXllclByaXZhdGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6c2V0UmF0ZSk6IERvIG5vdCBjYWNoZSB0aGUgcmF0ZS4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyOjpyZXF1ZXN0ZWRSYXRlKTogQWRkZWQ7IGFzayBIVE1MTWVkaWFFbGVt
ZW50LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmg6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllckNsaWVudDo6bWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFj
a1JhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclBy
aXZhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTo6
cmF0ZSk6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24pOgorICAgICAgICAgICAgRG8gbm90IGNhY2hlIHRoZSByZXF1ZXN0ZWQgcmF0ZS4KKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cmVxdWVzdGVkUmF0
ZSk6IFBhc3MgdG8gTWVkaWFQbGF5ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb246OnNldFJhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6cmVxdWVz
dGVkUmF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpzZXRSYXRlKTogUmVuYW1l
ZCBmcm9tIHVwZGF0ZVJhdGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25DRjo6cmF0ZSk6IEZldGNoIHRoZSByYXRlIGZyb20gdGhlIHBsYXllci4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uQ0YuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6OnNldFJhdGVEb3VibGUpOiBSZW5hbWVkIGZyb20gdXBkYXRlUmF0
ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OnJhdGUpOiBGZXRjaCB0aGUgcmF0ZSBmcm9tIHRoZSBwbGF5ZXIuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnJhdGUpOiBGZXRjaCB0aGUgcmF0ZSBm
cm9tIHRoZSBRVE1vdmllLgorCiAyMDE1LTAxLTA1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgVHJpZWQgdG8gZml4IHRoZSBpT1MgYnVpbGQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA4N2IzNjEwZDJhMDAxMjFmMDFkMzYz
YTgyNmMyOWE5ZDMzMTNkNDkyLi44MmQ1ODA1NGIxOGZhOGVmODkxZWJkNTViMzFjMDE0ZmU4Mjkz
NmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTI2Miw4
ICsyNjIsOSBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bQogICAgICwgbV9zZWVrVGltZXIoKnRo
aXMsICZIVE1MTWVkaWFFbGVtZW50OjpzZWVrVGltZXJGaXJlZCkKICAgICAsIG1fcGxheWVkVGlt
ZVJhbmdlcygpCiAgICAgLCBtX2FzeW5jRXZlbnRRdWV1ZSgqdGhpcykKLSAgICAsIG1fcGxheWJh
Y2tSYXRlKDEuMGYpCi0gICAgLCBtX2RlZmF1bHRQbGF5YmFja1JhdGUoMS4wZikKKyAgICAsIG1f
cGxheWJhY2tSYXRlKDEpCisgICAgLCBtX3JlcG9ydGVkUGxheWJhY2tSYXRlKDEpCisgICAgLCBt
X2RlZmF1bHRQbGF5YmFja1JhdGUoMSkKICAgICAsIG1fd2Via2l0UHJlc2VydmVzUGl0Y2godHJ1
ZSkKICAgICAsIG1fbmV0d29ya1N0YXRlKE5FVFdPUktfRU1QVFkpCiAgICAgLCBtX3JlYWR5U3Rh
dGUoSEFWRV9OT1RISU5HKQpAQCAtMjY1Myw2ICsyNjU0LDExIEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2V0RGVmYXVsdFBsYXliYWNrUmF0ZShkb3VibGUgcmF0ZSkKIAogZG91YmxlIEhUTUxN
ZWRpYUVsZW1lbnQ6OmVmZmVjdGl2ZVBsYXliYWNrUmF0ZSgpIGNvbnN0CiB7CisgICAgcmV0dXJu
IG1fbWVkaWFDb250cm9sbGVyID8gbV9tZWRpYUNvbnRyb2xsZXItPnBsYXliYWNrUmF0ZSgpIDog
bV9yZXBvcnRlZFBsYXliYWNrUmF0ZTsKK30KKworZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6OnJl
cXVlc3RlZFBsYXliYWNrUmF0ZSgpIGNvbnN0Cit7CiAgICAgcmV0dXJuIG1fbWVkaWFDb250cm9s
bGVyID8gbV9tZWRpYUNvbnRyb2xsZXItPnBsYXliYWNrUmF0ZSgpIDogbV9wbGF5YmFja1JhdGU7
CiB9CiAKQEAgLTI2NjksNyArMjY3NSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0UGxh
eWJhY2tSYXRlKGRvdWJsZSByYXRlKQogICAgICAgICBtX3BsYXllci0+c2V0UmF0ZShyYXRlKTsK
IAogICAgIGlmIChtX3BsYXliYWNrUmF0ZSAhPSByYXRlKSB7Ci0gICAgICAgIG1fcGxheWJhY2tS
YXRlID0gcmF0ZTsKKyAgICAgICAgbV9yZXBvcnRlZFBsYXliYWNrUmF0ZSA9IG1fcGxheWJhY2tS
YXRlID0gcmF0ZTsKICAgICAgICAgaW52YWxpZGF0ZUNhY2hlZFRpbWUoKTsKICAgICAgICAgc2No
ZWR1bGVFdmVudChldmVudE5hbWVzKCkucmF0ZWNoYW5nZUV2ZW50KTsKICAgICB9CkBAIC0yNjc3
LDkgKzI2ODMsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFBsYXliYWNrUmF0ZShkb3Vi
bGUgcmF0ZSkKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5YmFja1JhdGUoKQog
ewotICAgIGRvdWJsZSBlZmZlY3RpdmVSYXRlID0gZWZmZWN0aXZlUGxheWJhY2tSYXRlKCk7Ci0g
ICAgaWYgKG1fcGxheWVyICYmIHBvdGVudGlhbGx5UGxheWluZygpICYmIG1fcGxheWVyLT5yYXRl
KCkgIT0gZWZmZWN0aXZlUmF0ZSkKLSAgICAgICAgbV9wbGF5ZXItPnNldFJhdGUoZWZmZWN0aXZl
UmF0ZSk7CisgICAgZG91YmxlIHJlcXVlc3RlZFJhdGUgPSByZXF1ZXN0ZWRQbGF5YmFja1JhdGUo
KTsKKyAgICBpZiAobV9wbGF5ZXIgJiYgcG90ZW50aWFsbHlQbGF5aW5nKCkgJiYgbV9wbGF5ZXIt
PnJhdGUoKSAhPSByZXF1ZXN0ZWRSYXRlKQorICAgICAgICBtX3BsYXllci0+c2V0UmF0ZShyZXF1
ZXN0ZWRSYXRlKTsKIH0KIAogYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojp3ZWJraXRQcmVzZXJ2ZXNQ
aXRjaCgpIGNvbnN0CkBAIC0yNzA0LDcgKzI3MTAsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6
OmVuZGVkKCkgY29uc3QKICAgICAvLyA0LjguMTAuOCBQbGF5aW5nIHRoZSBtZWRpYSByZXNvdXJj
ZQogICAgIC8vIFRoZSBlbmRlZCBhdHRyaWJ1dGUgbXVzdCByZXR1cm4gdHJ1ZSBpZiB0aGUgbWVk
aWEgZWxlbWVudCBoYXMgZW5kZWQgCiAgICAgLy8gcGxheWJhY2sgYW5kIHRoZSBkaXJlY3Rpb24g
b2YgcGxheWJhY2sgaXMgZm9yd2FyZHMsIGFuZCBmYWxzZSBvdGhlcndpc2UuCi0gICAgcmV0dXJu
IGVuZGVkUGxheWJhY2soKSAmJiBlZmZlY3RpdmVQbGF5YmFja1JhdGUoKSA+IDA7CisgICAgcmV0
dXJuIGVuZGVkUGxheWJhY2soKSAmJiByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSA+IDA7CiB9CiAK
IGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6YXV0b3BsYXkoKSBjb25zdApAQCAtMzE0MSw3ICszMTQ3
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZCgp
CiB7CiAgICAgQVNTRVJUKG1fcGxheWVyKTsKIAotICAgIGlmIChtX2ZyYWdtZW50RW5kVGltZS5p
c1ZhbGlkKCkgJiYgY3VycmVudE1lZGlhVGltZSgpID49IG1fZnJhZ21lbnRFbmRUaW1lICYmIGVm
ZmVjdGl2ZVBsYXliYWNrUmF0ZSgpID4gMCkgeworICAgIGlmIChtX2ZyYWdtZW50RW5kVGltZS5p
c1ZhbGlkKCkgJiYgY3VycmVudE1lZGlhVGltZSgpID49IG1fZnJhZ21lbnRFbmRUaW1lICYmIHJl
cXVlc3RlZFBsYXliYWNrUmF0ZSgpID4gMCkgewogICAgICAgICBtX2ZyYWdtZW50RW5kVGltZSA9
IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKICAgICAgICAgaWYgKCFtX21lZGlhQ29udHJvbGxl
ciAmJiAhbV9wYXVzZWQpIHsKICAgICAgICAgICAgIC8vIGNoYW5nZXMgcGF1c2VkIHRvIHRydWUg
YW5kIGZpcmVzIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHBhdXNlIGF0IHRoZSBtZWRpYSBlbGVtZW50
LgpAQCAtNDE5NSwxMyArNDIwMSwxNCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxh
eWVyRHVyYXRpb25DaGFuZ2VkKE1lZGlhUGxheWVyKiBwbGF5ZXIpCiAKIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6bWVkaWFQbGF5ZXJSYXRlQ2hhbmdlZChNZWRpYVBsYXllciopCiB7Ci0gICAgTE9H
KE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJSYXRlQ2hhbmdlZCglcCkiLCB0
aGlzKTsKLQogICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxheWVyQ2FsbGJhY2soKTsKIAogICAg
IC8vIFN0YXNoIHRoZSByYXRlIGluIGNhc2UgdGhlIG9uZSB3ZSB0cmllZCB0byBzZXQgaXNuJ3Qg
d2hhdCB0aGUgZW5naW5lIGlzCiAgICAgLy8gdXNpbmcgKGVnLiBpdCBjYW4ndCBoYW5kbGUgdGhl
IHJhdGUgd2Ugc2V0KQotICAgIG1fcGxheWJhY2tSYXRlID0gbV9wbGF5ZXItPnJhdGUoKTsKKyAg
ICBtX3JlcG9ydGVkUGxheWJhY2tSYXRlID0gbV9wbGF5ZXItPnJhdGUoKTsKKworICAgIExPRyhN
ZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUmF0ZUNoYW5nZWQoJXApIC0gcmF0
ZTogJWxmIiwgdGhpcywgbV9yZXBvcnRlZFBsYXliYWNrUmF0ZSk7CisKICAgICBpZiAobV9wbGF5
aW5nKQogICAgICAgICBpbnZhbGlkYXRlQ2FjaGVkVGltZSgpOwogCkBAIC00NDMzLDEyICs0NDQw
LDEyIEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6ZW5kZWRQbGF5YmFjaygpIGNvbnN0CiAgICAg
Ly8gb2YgcGxheWJhY2sgaXMgZm9yd2FyZHMsIEVpdGhlciB0aGUgbWVkaWEgZWxlbWVudCBkb2Vz
IG5vdCBoYXZlIGEgbG9vcCBhdHRyaWJ1dGUgc3BlY2lmaWVkLAogICAgIC8vIG9yIHRoZSBtZWRp
YSBlbGVtZW50IGhhcyBhIGN1cnJlbnQgbWVkaWEgY29udHJvbGxlci4KICAgICBNZWRpYVRpbWUg
bm93ID0gY3VycmVudE1lZGlhVGltZSgpOwotICAgIGlmIChlZmZlY3RpdmVQbGF5YmFja1JhdGUo
KSA+IDApCisgICAgaWYgKHJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpID4gMCkKICAgICAgICAgcmV0
dXJuIGR1ciA+IE1lZGlhVGltZTo6emVyb1RpbWUoKSAmJiBub3cgPj0gZHVyICYmICghbG9vcCgp
IHx8IG1fbWVkaWFDb250cm9sbGVyKTsKIAogICAgIC8vIG9yIHRoZSBjdXJyZW50IHBsYXliYWNr
IHBvc2l0aW9uIGlzIHRoZSBlYXJsaWVzdCBwb3NzaWJsZSBwb3NpdGlvbiBhbmQgdGhlIGRpcmVj
dGlvbiAKICAgICAvLyBvZiBwbGF5YmFjayBpcyBiYWNrd2FyZHMKLSAgICBpZiAoZWZmZWN0aXZl
UGxheWJhY2tSYXRlKCkgPCAwKQorICAgIGlmIChyZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSA8IDAp
CiAgICAgICAgIHJldHVybiBub3cgPD0gTWVkaWFUaW1lOjp6ZXJvVGltZSgpOwogCiAgICAgcmV0
dXJuIGZhbHNlOwpAQCAtNDUzOSw3ICs0NTQ2LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1
cGRhdGVQbGF5U3RhdGUoKQogCiAgICAgICAgICAgICAvLyBTZXQgcmF0ZSwgbXV0ZWQgYmVmb3Jl
IGNhbGxpbmcgcGxheSBpbiBjYXNlIHRoZXkgd2VyZSBzZXQgYmVmb3JlIHRoZSBtZWRpYSBlbmdp
bmUgd2FzIHNldHVwLgogICAgICAgICAgICAgLy8gVGhlIG1lZGlhIGVuZ2luZSBzaG91bGQganVz
dCBzdGFzaCB0aGUgcmF0ZSBhbmQgbXV0ZWQgdmFsdWVzIHNpbmNlIGl0IGlzbid0IGFscmVhZHkg
cGxheWluZy4KLSAgICAgICAgICAgIG1fcGxheWVyLT5zZXRSYXRlKGVmZmVjdGl2ZVBsYXliYWNr
UmF0ZSgpKTsKKyAgICAgICAgICAgIG1fcGxheWVyLT5zZXRSYXRlKHJlcXVlc3RlZFBsYXliYWNr
UmF0ZSgpKTsKICAgICAgICAgICAgIG1fcGxheWVyLT5zZXRNdXRlZChlZmZlY3RpdmVNdXRlZCgp
KTsKIAogICAgICAgICAgICAgaWYgKG1fZmlyc3RUaW1lUGxheWluZykgewpAQCAtNTc5MCw2ICs1
Nzk3LDExIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRU
b0xvYWQoKSBjb25zdAogICAgIGRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LT5sb2dEaWFnbm9zdGlj
TWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmVuZ2luZUZhaWxlZFRvTG9h
ZEtleSgpLCBlbmdpbmUsIFN0cmluZzo6bnVtYmVyKG1fcGxheWVyLT5wbGF0Zm9ybUVycm9yQ29k
ZSgpKSk7CiB9CiAKK2RvdWJsZSBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJlcXVlc3Rl
ZFBsYXliYWNrUmF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHBvdGVudGlhbGx5UGxheWluZygp
ID8gcmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgOiAwOworfQorCiB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OnJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVyRmlyc3RVc2VyR2VzdHVyZSgpCiB7
CiAgICAgbV9tZWRpYVNlc3Npb24tPnJlbW92ZUJlaGF2aW9yUmVzdHJpY3Rpb24oSFRNTE1lZGlh
U2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlRm9yTG9hZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oCmluZGV4IGU1OGM0ZjY2NjE0ZWVkYmEzOTliYWI5YzRjNTIwOWE0MmM3
YWE3MDAuLjczNGJiMTZhYzVmNjU3Nzk2OTk3N2VkYzc0M2EwN2FmZTU0NjdlOTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC01MzEsNiArNTMxLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHNldE5ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlKTsK
IAogICAgIGRvdWJsZSBlZmZlY3RpdmVQbGF5YmFja1JhdGUoKSBjb25zdDsKKyAgICBkb3VibGUg
cmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQ
bGF5ZXJOZXR3b3JrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyKikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIG1lZGlhUGxheWVyUmVhZHlTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKSBvdmVy
cmlkZTsKQEAgLTYwNSw2ICs2MDYsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBtZWRp
YVBsYXllcklzSW5NZWRpYURvY3VtZW50KCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmly
dHVhbCB2b2lkIG1lZGlhUGxheWVyRW5naW5lRmFpbGVkVG9Mb2FkKCkgY29uc3Qgb3ZlcnJpZGUg
ZmluYWw7CiAKKyAgICB2aXJ0dWFsIGRvdWJsZSBtZWRpYVBsYXllclJlcXVlc3RlZFBsYXliYWNr
UmF0ZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworCiAgICAgdm9pZCBsb2FkVGltZXJGaXJlZCgp
OwogICAgIHZvaWQgcHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQoKTsKICAgICB2b2lkIHBsYXliYWNr
UHJvZ3Jlc3NUaW1lckZpcmVkKCk7CkBAIC03NDUsNiArNzQ4LDcgQEAgcHJpdmF0ZToKICAgICBH
ZW5lcmljRXZlbnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsKIAogICAgIGRvdWJsZSBtX3BsYXli
YWNrUmF0ZTsKKyAgICBkb3VibGUgbV9yZXBvcnRlZFBsYXliYWNrUmF0ZTsKICAgICBkb3VibGUg
bV9kZWZhdWx0UGxheWJhY2tSYXRlOwogICAgIGJvb2wgbV93ZWJraXRQcmVzZXJ2ZXNQaXRjaDsK
ICAgICBOZXR3b3JrU3RhdGUgbV9uZXR3b3JrU3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggZjExMzY1ZTEzZDNhNTI2N2Jj
NjVlYWE1N2NkOGFkNjA0ZmRlOTZiZC4uYzE0NDcyZTZjNjU2OWVmMWJlYzc3NzEzYjFiMTQ1MGNk
NDg2N2EyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlh
UGxheWVyLmNwcApAQCAtMzEyLDcgKzMxMiw2IEBAIE1lZGlhUGxheWVyOjpNZWRpYVBsYXllcihN
ZWRpYVBsYXllckNsaWVudCYgY2xpZW50KQogICAgICwgbV9jdXJyZW50TWVkaWFFbmdpbmUoMCkK
ICAgICAsIG1fcHJlbG9hZChBdXRvKQogICAgICwgbV92aXNpYmxlKGZhbHNlKQotICAgICwgbV9y
YXRlKDEuMGYpCiAgICAgLCBtX3ZvbHVtZSgxLjBmKQogICAgICwgbV9tdXRlZChmYWxzZSkKICAg
ICAsIG1fcHJlc2VydmVzUGl0Y2godHJ1ZSkKQEAgLTY3OSwxNSArNjc4LDE5IEBAIHZvaWQgTWVk
aWFQbGF5ZXI6OnNldENsb3NlZENhcHRpb25zVmlzaWJsZShib29sIGNsb3NlZENhcHRpb25zVmlz
aWJsZSkKIAogZG91YmxlIE1lZGlhUGxheWVyOjpyYXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
bV9yYXRlOworICAgIHJldHVybiBtX3ByaXZhdGUtPnJhdGUoKTsKIH0KIAogdm9pZCBNZWRpYVBs
YXllcjo6c2V0UmF0ZShkb3VibGUgcmF0ZSkKIHsKLSAgICBtX3JhdGUgPSByYXRlOwogICAgIG1f
cHJpdmF0ZS0+c2V0UmF0ZURvdWJsZShyYXRlKTsKIH0KIAorZG91YmxlIE1lZGlhUGxheWVyOjpy
ZXF1ZXN0ZWRSYXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQubWVkaWFQbGF5ZXJS
ZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKTsKK30KKwogYm9vbCBNZWRpYVBsYXllcjo6cHJlc2VydmVz
UGl0Y2goKSBjb25zdAogewogICAgIHJldHVybiBtX3ByZXNlcnZlc1BpdGNoOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggNDNkOTY1MzFj
MmY3M2NlMzFkZDVlZTZkZTUyZjNkMzFjMWFkNDU5OC4uM2I5NDYzZWM3MzQ2ZDM1YjU5MDk2MzQ5
YzRkYWM3ZTg5OTU2MTJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9NZWRpYVBsYXllci5oCkBAIC0yNjIsNiArMjYyLDggQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBib29sIG1lZGlhUGxheWVySXNJbk1lZGlhRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCgpIGNv
bnN0IHsgfQorCisgICAgdmlydHVhbCBkb3VibGUgbWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFj
a1JhdGUoKSBjb25zdCB7IHJldHVybiAwOyB9CiB9OwogCiBjbGFzcyBNZWRpYVBsYXllclN1cHBv
cnRzVHlwZUNsaWVudCB7CkBAIC0zNjQsNiArMzY2LDcgQEAgcHVibGljOgogCiAgICAgZG91Ymxl
IHJhdGUoKSBjb25zdDsKICAgICB2b2lkIHNldFJhdGUoZG91YmxlKTsKKyAgICBkb3VibGUgcmVx
dWVzdGVkUmF0ZSgpIGNvbnN0OwogCiAgICAgYm9vbCBwcmVzZXJ2ZXNQaXRjaCgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0UHJlc2VydmVzUGl0Y2goYm9vbCk7CkBAIC01OTUsNyArNTk4LDYgQEAgcHJp
dmF0ZToKICAgICBJbnRTaXplIG1fc2l6ZTsKICAgICBQcmVsb2FkIG1fcHJlbG9hZDsKICAgICBi
b29sIG1fdmlzaWJsZTsKLSAgICBkb3VibGUgbV9yYXRlOwogICAgIGRvdWJsZSBtX3ZvbHVtZTsK
ICAgICBib29sIG1fbXV0ZWQ7CiAgICAgYm9vbCBtX3ByZXNlcnZlc1BpdGNoOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApp
bmRleCAxNjM2MWU4YzMzOTEwYWJkOTIxMDEzNGQ2Mjk5ZDM4YzM4NTk0ODUxLi40NGY4ZjZjMjlm
ODBmNWMwMzc1YTZhYTJiZWQ1M2YyNjk4YzhhNTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtMTAyLDYgKzEw
Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRlKGZsb2F0KSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0UmF0ZURvdWJsZShkb3VibGUgcmF0ZSkgeyBzZXRSYXRlKHJhdGUp
OyB9CisgICAgdmlydHVhbCBkb3VibGUgcmF0ZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAogICAg
IHZpcnR1YWwgdm9pZCBzZXRQcmVzZXJ2ZXNQaXRjaChib29sKSB7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAppbmRleCBm
OGM1NTE4NWY5YWYwYjUyZjQ3MDk0MzJkMWI2NWM5MGYwYmQ3MDMwLi40ZDk2ODg2YjU0YWQ5NDQy
ZTNmMWZlZmQyMzY0YWYzNDQ3YTJjZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcApAQCAtNjAsNyArNjAsNiBAQCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bihNZWRpYVBsYXllciogcGxheQogICAgICwgbV9jYWNoZWREdXJhdGlvbihNZWRpYVRpbWU6Omlu
dmFsaWRUaW1lKCkpCiAgICAgLCBtX3JlcG9ydGVkRHVyYXRpb24oTWVkaWFUaW1lOjppbnZhbGlk
VGltZSgpKQogICAgICwgbV9tYXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzKE1l
ZGlhVGltZTo6aW52YWxpZFRpbWUoKSkKLSAgICAsIG1fcmVxdWVzdGVkUmF0ZSgxKQogICAgICwg
bV9kZWxheUNhbGxiYWNrcygwKQogICAgICwgbV9kZWxheUNoYXJhY3RlcmlzdGljc0NoYW5nZWRO
b3RpZmljYXRpb24oMCkKICAgICAsIG1fbWFpblRocmVhZENhbGxQZW5kaW5nKGZhbHNlKQpAQCAt
MjkwLDE0ICsyODksNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2Vl
a1dpdGhUb2xlcmFuY2UoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbQogICAgIHNlZWtUb1RpbWUo
dGltZSwgbmVnYXRpdmVUb2xlcmFuY2UsIHBvc2l0aXZlVG9sZXJhbmNlKTsKIH0KIAotdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFJhdGUoZmxvYXQgcmF0ZSkKLXsKLSAg
ICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFJhdGUoJXAp
IC0gc2V0aW5nIHRvICVmIiwgdGhpcywgcmF0ZSk7Ci0gICAgbV9yZXF1ZXN0ZWRSYXRlID0gcmF0
ZTsKLQotICAgIHVwZGF0ZVJhdGUoKTsKLX0KLQogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb246OnBhdXNlZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgp
KQpAQCAtNDE5LDYgKzQxMCwxMSBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uOjptaW5NZWRpYVRpbWVTZWVrYWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2FjaGVk
TWluVGltZVNlZWthYmxlOwogfQogCitkb3VibGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uOjpyZXF1ZXN0ZWRSYXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wbGF5ZXItPnJlcXVl
c3RlZFJhdGUoKTsKK30KKwogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bjo6bWF4VGltZUxvYWRlZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5oCmluZGV4IDgwZTE0NjdjYWMxMDU4YzA1ZTlmNzkzNDhlZGZiZmY4YjZiMjcyZmIuLjdiNTU4
NDY1YmYzY2IxMWIyYzJjMmI1ZGQ5N2Y4NTE2MzFmM2QxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTE3MSw3ICsxNzEs
NiBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNlZWsoY29uc3QgTWVkaWFUaW1lJikg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlh
VGltZSYsIGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgYm9vbCBzZWVraW5nKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IHNldFJhdGUoZmxvYXQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBwYXVzZWQoKSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KSA9IDA7CiAgICAg
dmlydHVhbCBib29sIGhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9jYWNoZWRIYXNDYXB0aW9uczsgfQpAQCAtMjMyLDggKzIzMSw2IEBAIHByb3RlY3RlZDoKICAg
ICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1QbGF5KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwbGF0
Zm9ybVBhdXNlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjaGVja1BsYXlhYmlsaXR5KCkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSYXRlKCkgPSAwOwotICAgIHZpcnR1YWwgZmxvYXQg
cmF0ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2Vla1RvVGltZShjb25zdCBNZWRp
YVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVG9sZXJhbmNlLCBjb25zdCBNZWRpYVRp
bWUmIHBvc2l0aXZlVG9sZXJhbmNlKSA9IDA7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxv
bmcgdG90YWxCeXRlcygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybVRpbWVSYW5nZXM+IHBsYXRmb3JtQnVmZmVyZWRUaW1lUmFuZ2VzKCkgY29uc3QgPSAw
OwpAQCAtMjc3LDcgKzI3NCw3IEBAIHByb3RlY3RlZDoKICAgICBNZWRpYVJlbmRlcmluZ01vZGUg
cHJlZmVycmVkUmVuZGVyaW5nTW9kZSgpIGNvbnN0OwogCiAgICAgYm9vbCBtZXRhRGF0YUF2YWls
YWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlTdGF0ZSA+PSBNZWRpYVBsYXllcjo6SGF2ZU1l
dGFkYXRhOyB9Ci0gICAgZmxvYXQgcmVxdWVzdGVkUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVx
dWVzdGVkUmF0ZTsgfQorICAgIGRvdWJsZSByZXF1ZXN0ZWRSYXRlKCkgY29uc3Q7CiAgICAgTWVk
aWFUaW1lIG1heFRpbWVMb2FkZWQoKSBjb25zdDsKICAgICBib29sIGlzUmVhZHlGb3JWaWRlb1Nl
dHVwKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHNldFVwVmlkZW9SZW5kZXJpbmcoKTsKQEAg
LTMzMSw3ICszMjgsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgTWVkaWFUaW1lIG1fY2FjaGVk
RHVyYXRpb247CiAgICAgTWVkaWFUaW1lIG1fcmVwb3J0ZWREdXJhdGlvbjsKICAgICBtdXRhYmxl
IE1lZGlhVGltZSBtX21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3M7Ci0gICAg
ZmxvYXQgbV9yZXF1ZXN0ZWRSYXRlOwogICAgIG11dGFibGUgaW50IG1fZGVsYXlDYWxsYmFja3M7
CiAgICAgaW50IG1fZGVsYXlDaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkTm90aWZpY2F0aW9uOwogICAg
IGJvb2wgbV9tYWluVGhyZWFkQ2FsbFBlbmRpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0YuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCA1OTNl
MzgyZjRiNzRjMjZiN2E1ZGMzYTc4ZGVkNjNjNGFmMjg3Mjc1Li5hMzRmMGQ0NjdkZDhkNWRkZDQz
YzQyZDNlMmJiODc4MzA1MDAxZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0YuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTY0MywyNCArNjQz
LDI0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnNldENsb3NlZENh
cHRpb25zVmlzaWJsZShib29sIGNsb3NlZENhcHRpCiAgICAgQVZDRlBsYXllclNldENsb3NlZENh
cHRpb25EaXNwbGF5RW5hYmxlZChhdlBsYXllcihtX2F2ZldyYXBwZXIpLCBjbG9zZWRDYXB0aW9u
c1Zpc2libGUpOwogfQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjp1
cGRhdGVSYXRlKCkKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnNldFJh
dGUoZmxvYXQgcmF0ZSkKIHsKLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25DRjo6dXBkYXRlUmF0ZSglcCkiLCB0aGlzKTsKKyAgICBMT0coTWVkaWEsICJNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6c2V0UmF0ZSglcCkgLSByYXRlOiAlZiIsIHRo
aXMsIHJhdGUpOwogICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSB8fCAhYXZQbGF5ZXIobV9h
dmZXcmFwcGVyKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc2V0RGVsYXlDYWxsYmFja3ModHJ1
ZSk7Ci0gICAgQVZDRlBsYXllclNldFJhdGUoYXZQbGF5ZXIobV9hdmZXcmFwcGVyKSwgcmVxdWVz
dGVkUmF0ZSgpKTsKKyAgICBBVkNGUGxheWVyU2V0UmF0ZShhdlBsYXllcihtX2F2ZldyYXBwZXIp
LCByYXRlKTsKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9CiAKLWZsb2F0IE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpyYXRlKCkgY29uc3QKK2RvdWJsZSBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6cmF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtZXRh
RGF0YUF2YWlsYWJsZSgpIHx8ICFhdlBsYXllcihtX2F2ZldyYXBwZXIpKQogICAgICAgICByZXR1
cm4gMDsKIAogICAgIHNldERlbGF5Q2FsbGJhY2tzKHRydWUpOwotICAgIGZsb2F0IGN1cnJlbnRS
YXRlID0gQVZDRlBsYXllckdldFJhdGUoYXZQbGF5ZXIobV9hdmZXcmFwcGVyKSk7CisgICAgZG91
YmxlIGN1cnJlbnRSYXRlID0gQVZDRlBsYXllckdldFJhdGUoYXZQbGF5ZXIobV9hdmZXcmFwcGVy
KSk7CiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwogCiAgICAgcmV0dXJuIGN1cnJlbnRS
YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uQ0YuaAppbmRleCAzYmU0NWVlOTdjNzBkYWU0NTcxODExMGNhNmVjMjY2YWM0
N2I3MTllLi5iMWNkY2QwMGQ5ZjAyYTBjY2E0YWM4YjEzOTVkOWU5YTZmMGZmYjg3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uQ0YuaApAQCAtOTAsOCArOTAsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpBc3NldFN0YXR1cyBhc3NldFN0YXR1cygpIGNvbnN0Owog
CiAgICAgdmlydHVhbCB2b2lkIGNoZWNrUGxheWFiaWxpdHkoKTsKLSAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlUmF0ZSgpOwotICAgIHZpcnR1YWwgZmxvYXQgcmF0ZSgpIGNvbnN0OworICAgIHZpcnR1
YWwgdm9pZCBzZXRSYXRlKGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSByYXRl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNlZWtUb1RpbWUoY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRvbGVyYW5jZSwgY29uc3QgTWVkaWFU
aW1lJiBwb3NpdGl2ZVRvbGVyYW5jZSk7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxvbmcg
dG90YWxCeXRlcygpIGNvbnN0OwogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3Jt
VGltZVJhbmdlcz4gcGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaAppbmRleCBiODYxNjM4NWQzYmQyMjM3MjYwZjY5NzQ1MWE2MzZmM2FmNDY0NmE5
Li43MDQ5Y2NjYWQ1Y2ZhMTQ1NGY5MTI1MzU4MmEyZGQwOWQ0N2Q3NTZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQy5oCkBAIC0xNzcsOCArMTc3LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGxvbmcg
YXNzZXRFcnJvckNvZGUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBjaGVja1BsYXlhYmls
aXR5KCk7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJhdGUoKTsKLSAgICB2aXJ0dWFsIGZsb2F0
IHJhdGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmF0ZURvdWJsZShkb3VibGUpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgZG91YmxlIHJhdGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgc2Vla1RvVGltZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZl
VG9sZXJhbmNlLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVG9sZXJhbmNlKTsKICAgICB2aXJ0
dWFsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBz
dGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBwbGF0Zm9ybUJ1ZmZlcmVkVGltZVJh
bmdlcygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZDNkMjIxOGJlZWI4ZmE3
YjUzOGFjMzAzYjM1OTc0ZTUzYmY2ODA5ZS4uZjc3MDBmNjVlYWQ4MTI3MzgzODk2ZjVmMWQ0NWYz
NjIyMGI4NTk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xMjUzLDE1ICsxMjUzLDE2
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0Q2xvc2VkQ2Fw
dGlvbnNWaXNpYmxlKGJvb2wgY2xvc2VkQ2FwCiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKCVwKSAtIHNl
dCB0byAlcyIsIHRoaXMsIGJvb2xTdHJpbmcoY2xvc2VkQ2FwdGlvbnNWaXNpYmxlKSk7CiB9CiAK
LXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlUmF0ZSgpCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFJhdGVEb3VibGUoZG91
YmxlIHJhdGUpCisKIHsKICAgICBzZXREZWxheUNhbGxiYWNrcyh0cnVlKTsKLSAgICBtX2NhY2hl
ZFJhdGUgPSByZXF1ZXN0ZWRSYXRlKCk7Ci0gICAgW21fYXZQbGF5ZXIuZ2V0KCkgc2V0UmF0ZTpy
ZXF1ZXN0ZWRSYXRlKCldOworICAgIG1fY2FjaGVkUmF0ZSA9IHJhdGU7CisgICAgW21fYXZQbGF5
ZXIuZ2V0KCkgc2V0UmF0ZTpyYXRlXTsKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9
CiAKLWZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJhdGUoKSBjb25z
dAorZG91YmxlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJhdGUoKSBjb25z
dAogewogICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCmluZGV4IDExYjZhMDZiNGQ1MjllNGI2NDYxMmZmYzFl
OGI2YWE1Mzc0MWRlNmEuLmU3NjcwNDUwZGM4NzU1YjFiZjY2Nzg3NDI2ZmRiOTQ3ODExYzMxYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByaXZhdGVRVEtpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCkBAIC0xMDQsNiArMTA0LDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgc2Vlayhjb25zdCBNZWRpYVRpbWUmKSBvdmVycmlkZTsKICAg
ICAKICAgICB2b2lkIHNldFJhdGUoZmxvYXQpOworICAgIHZpcnR1YWwgZG91YmxlIHJhdGUoKSBj
b25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCk7CiAgICAgdm9pZCBzZXRQ
cmVzZXJ2ZXNQaXRjaChib29sKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCmluZGV4
IDM2OTEyMDYzNjM1ZDkyMWMwNjdhZGU3ZmYzNDdkNjVlYTY3NTA5NGEuLjZiMmJhNDg4MGIzOTZj
NWNjYmQ4YjQwM2EzYjc5MzZjMTZhYTZlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQu
bW0KQEAgLTc5Miw2ICs3OTIsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2V0
UmF0ZShmbG9hdCByYXRlKQogICAgICAgICBbbV9xdE1vdmllLmdldCgpIHNldFJhdGU6cmF0ZV07
CiB9CiAKK2RvdWJsZSBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cmF0ZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcXRNb3ZpZSA/IFttX3F0TW92aWUgcmF0ZV0gOiAwOworfQorCiB2b2lkIE1l
ZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzZXRQcmVzZXJ2ZXNQaXRjaChib29sIHByZXNlcnZlc1Bp
dGNoKQogewogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzZXRQcmVz
ZXJ2ZXNQaXRjaCglcCkgLSBwcmVzZXJ2ZXNQaXRjaCAlZCIsIHRoaXMsIChpbnQpcHJlc2VydmVz
UGl0Y2gpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGIwNzVhMWI0NmRjMjZkZjFjZWM5N2JmZjgwOGM3MTIxZDZkMTBkZmIu
LjEwMGExNjI5YWIwZWIyOGE5YzIxNGM2NzI0NWYwZDgwYjY5Y2YwNzMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAxNS0wMS0wOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKwor
ICAgICAgICBkZWZhdWx0UGxheWJhY2tSYXRlIG5vdCByZXNwZWN0ZWQgd2hlbiBzZXQgYmVmb3Jl
IHNvdXJlYyBpcyBsb2FkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0MDI4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogbWVkaWEvdmlkZW8tZGVmYXVsdHBsYXliYWNrcmF0ZS1iZWZvcmUtbG9hZC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3ZpZGVvLWRlZmF1bHRwbGF5YmFj
a3JhdGUtYmVmb3JlLWxvYWQuaHRtbDogQWRkZWQuCisKIDIwMTUtMDEtMDUgIEFsZXhleSBQcm9z
a3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgQWZ0ZXIgdXBkYXRpbmcgdGVzdHMg
dG8gdXNlIGtlcm5pbmcsIGxpZ2F0dXJlcywgYW5kIHByaW50ZXIgZm9udHMsIHNvbWUgdGVzdHMg
ZmFpbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZGVmYXVsdHBsYXliYWNr
cmF0ZS1iZWZvcmUtbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1k
ZWZhdWx0cGxheWJhY2tyYXRlLWJlZm9yZS1sb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
MWM1ZmEyOWIzYjIwZTRmYzM5YjRkNWJjNGM4MGVkMDc1NjYwZGJiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZGVmYXVsdHBsYXliYWNrcmF0ZS1iZWZvcmUtbG9h
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCitSVU4odmlkZW8uZGVmYXVsdFBsYXli
YWNrUmF0ZSA9IDAuNSkKK0VWRU5UKGNhbnBsYXl0aHJvdWdoKQorRVhQRUNURUQgKHZpZGVvLnBs
YXliYWNrUmF0ZSA9PSAnMC41JykgT0sKK0VYUEVDVEVEICh2aWRlby5kZWZhdWx0UGxheWJhY2tS
YXRlID09ICcwLjUnKSBPSworRVZFTlQodGltZXVwZGF0ZSkKK0VWRU5UKHRpbWV1cGRhdGUpCitF
WFBFQ1RFRCAoZWZmZWN0aXZlUGxheWJhY2tSYXRlIDwgJzAuNzUnKSBPSworRU5EIE9GIFRFU1QK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZGVmYXVsdHBsYXliYWNrcmF0
ZS1iZWZvcmUtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZGVmYXVsdHBsYXli
YWNrcmF0ZS1iZWZvcmUtbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiNDc3ZjRlM2Y4NTI2ZGI4OWIz
MTMzM2IyMGYyNmZmYjJiOGQ4N2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRp
YS92aWRlby1kZWZhdWx0cGxheWJhY2tyYXRlLWJlZm9yZS1sb2FkLmh0bWwKQEAgLTAsMCArMSw1
NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxl
PnRlc3QgcGxheWJhY2tSYXRlIGFuZCBkZWZhdWx0UGxheWJhY2tSYXRlPC90aXRsZT4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAg
IHZhciB3YWxsQ2xvY2tBdEZpcnN0VGltZVVwZGF0ZTsKKyAgICAgICAgICAgIHZhciBtZWRpYVRp
bWVBdEZpcnN0VGltZVVwZGF0ZTsKKyAgICAgICAgICAgIHZhciBlZmZlY3RpdmVQbGF5YmFja1Jh
dGU7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICBmaW5kTWVkaWFFbGVtZW50KCk7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2
ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGNhbnBsYXl0aHJvdWdoKTsKKyAgICAgICAgICAgICAgICBy
dW4oJ3ZpZGVvLmRlZmF1bHRQbGF5YmFja1JhdGUgPSAwLjUnKTsKKyAgICAgICAgICAgICAgICBz
ZXRTcmNCeVRhZ05hbWUoJ3ZpZGVvJywgZmluZE1lZGlhRmlsZSgndmlkZW8nLCAnY29udGVudC90
ZXN0JykpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBjYW5wbGF5dGhy
b3VnaCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCd2aWRl
by5wbGF5YmFja1JhdGUnLCAwLjUpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndmlk
ZW8uZGVmYXVsdFBsYXliYWNrUmF0ZScsIDAuNSk7CisKKyAgICAgICAgICAgICAgICB3YWl0Rm9y
RXZlbnQoJ3RpbWV1cGRhdGUnLCB0aW1ldXBkYXRlKTsKKyAgICAgICAgICAgICAgICB2aWRlby5w
bGF5KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHRpbWV1cGRhdGUo
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBub3cgPSBEYXRlLm5vdygpIC8g
MTAwMDsKKyAgICAgICAgICAgICAgICBpZiAoIXdhbGxDbG9ja0F0Rmlyc3RUaW1lVXBkYXRlKSB7
CisgICAgICAgICAgICAgICAgICAgIHdhbGxDbG9ja0F0Rmlyc3RUaW1lVXBkYXRlID0gbm93Owor
ICAgICAgICAgICAgICAgICAgICBtZWRpYVRpbWVBdEZpcnN0VGltZVVwZGF0ZSA9IHZpZGVvLmN1
cnJlbnRUaW1lOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgaWYgKHdhbGxDbG9ja0F0Rmlyc3RUaW1lVXBkYXRlID09IG5v
dykKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAgICAgdmFyIHdh
bGxDbG9ja0RlbHRhID0gd2FsbENsb2NrQXRGaXJzdFRpbWVVcGRhdGUgLSBub3c7CisgICAgICAg
ICAgICAgICAgdmFyIG1lZGlhVGltZURlbHRhID0gbWVkaWFUaW1lQXRGaXJzdFRpbWVVcGRhdGUg
LSB2aWRlby5jdXJyZW50VGltZTsKKyAgICAgICAgICAgICAgICBlZmZlY3RpdmVQbGF5YmFja1Jh
dGUgPSBtZWRpYVRpbWVEZWx0YSAvIHdhbGxDbG9ja0RlbHRhOworCisgICAgICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCdlZmZlY3RpdmVQbGF5YmFja1JhdGUnLCAuNzUsICc8Jyk7CisgICAgICAg
ICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgfQorCisgICAgICAgIDwvc2NyaXB0Pgor
ICAgIDwvaGVhZD4KKworICAgIDxib2R5IG9ubG9hZD0ic3RhcnQoKSI+CisgICAgICAgIDx2aWRl
byBjb250cm9scz48L3ZpZGVvPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244363</attachid>
            <date>2015-01-09 12:11:56 -0800</date>
            <delta_ts>2015-01-13 11:20:38 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-140282-20150109121201.patch</filename>
            <type>text/plain</type>
            <size>27730</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ0MWYxM2E0MjRhM2U0
ODJhM2JjNmEwNDZkZDEwNWMwOWQ1Nzk3Mi4uMDY4ZDhkMzc1MDQ4MzZhMjY0YTAxYzNiMjk3MTkx
OGJjMjg4MWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDE1LTAxLTA4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIGRlZmF1bHRQbGF5YmFja1Jh
dGUgbm90IHJlc3BlY3RlZCB3aGVuIHNldCBiZWZvcmUgc291cmNlIGlzIGxvYWRlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwMjgyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3ZpZGVv
LWRlZmF1bHRwbGF5YmFja3JhdGUtYmVmb3JlLWxvYWQuaHRtbAorCisgICAgICAgIFdoZW4gdGhl
IEhUTUxNZWRpYUVsZW1lbnQgaXMgbm90aWZpZWQgdGhhdCB0aGUgbWVkaWEgcGxheWVyJ3MgcmF0
ZSBoYXMgY2hhbmdlZCwgaXQgYXNrcworICAgICAgICBmb3IgdGhlIHJhdGUgZnJvbSBNZWRpYVBs
YXllci4gSG93ZXZlciwgTWVkaWFQbGF5ZXIgbmV2ZXIgcmVxdWVzdHMgdGhlIHBsYXliYWNrIHJh
dGUKKyAgICAgICAgZnJvbSB0aGUgdW5kZXJseWluZyBNZWRpYVBsYXllclByaXZhdGU7IGl0IGp1
c3QgcmV0dXJucyB0aGUgbGFzdCByYXRlIHdoaWNoIHdhcyBzZXQsIG9yCisgICAgICAgIDEgaWYg
bm8gcmF0ZSB3YXMgc2V0LiBIVE1MTWVkaWFFbGVtZW50IHRoZW4gc2V0cyBpdHMgcGxheWJhY2tS
YXRlIHRvIHRoZSByZXR1cm5lZAorICAgICAgICB2YWx1ZS4gU28gdGhlIGVuZCByZXN1bHQgaXMg
dGhhdCB0aGUgdmFsdWUgZnJvbSBkZWZhdWx0UGxheWJhY2tSYXRlIGlzIG92ZXJ3cml0dGVuIGJ5
CisgICAgICAgIHRoZSBkZWZhdWx0IHZhbHVlIG9mIDEgaW4gTWVkaWFQbGF5ZXIuCisKKyAgICAg
ICAgUmF0aGVyIHRoYW4gY2FjaGluZyB0aGUgcmVxdWVzdGVkIHJhdGUgaW4gTWVkaWFQbGF5ZXIs
IGNhY2hlIHRoZSB2YWx1ZSByZXBvcnRlZCBieQorICAgICAgICBNZWRpYVBsYXllciBpbnNpZGUg
SFRNTE1lZGlhRWxlbWVudC4gQW5kIGluc3RlYWQgb2YgcmV0dXJuaW5nIHRoZSByZXBvcnRlZCBw
bGF5YmFjaworICAgICAgICByYXRlIGZyb20gSFRNTE1lZGlhRWxlbWVudC5wbGF5YmFja1JhdGUs
IGp1c3QgcmV0dXJuIHRoZSBsYXN0IHZhbHVlIHNldC4gVGhlIHJlcG9ydGVkCisgICAgICAgIHZh
bHVlIGlzIHN0aWxsIHVzZWQgZm9yIGVzdGltYXRpbmcgdGhlIGN1cnJlbnQgdGltZSBkdXJpbmcg
cGxheWJhY2suCisKKyAgICAgICAgQWRkIE1lZGlhUGxheWVyUHJpdmF0ZSBpbnRlcmZhY2UgbWV0
aG9kIHRvIHJldHVybiB0aGUgY3VycmVudCBwbGF5YmFjayByYXRlLgorCisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OkhUTUxNZWRpYUVsZW1lbnQpOiBJbml0aWFsaXplIG1fcmVwb3J0ZWRQbGF5YmFja1JhdGUu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjplZmZlY3RpdmVQbGF5YmFja1Jh
dGUpOiBSZXR1cm4gbV9yZXBvcnRlZFBsYXliYWNrUmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OnJlcXVlc3RlZFBsYXliYWNrUmF0ZSk6IFJldHVybiBtX3BsYXliYWNr
UmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXliYWNr
UmF0ZSk6IFVzZSByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSBpbnN0ZWFkCisgICAgICAgICAgICBv
ZiBlZmZlY3RpdmVQbGF5YmFja1JhdGUoKTsKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OmVuZGVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6ZW5kZWRQbGF5YmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlUGxheVN0YXRlKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJhdGVDaGFuZ2VkKTogU2V0IG1f
cmVwb3J0ZWRQbGF5YmFja1JhdGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVBsYXllclJlcXVlc3RlZFBsYXliYWNrUmF0ZSk6IFJldHVybgorICAgICAgICAgICAg
cmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgaWYgcGxheWluZyBhbmQgMCBpZiBub3QuCisgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6Ok1lZGlhUGxh
eWVyKTogUmVtb3ZlZCBtX3JhdGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6cmF0
ZSk6IFBhc3MgdG8gTWVkaWFQbGF5ZXJQcml2YXRlLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXI6OnNldFJhdGUpOiBEbyBub3QgY2FjaGUgdGhlIHJhdGUuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllcjo6cmVxdWVzdGVkUmF0ZSk6IEFkZGVkOyBhc2sgSFRNTE1lZGlhRWxlbWVu
dC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJhY2tS
YXRlKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2
YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OnJh
dGUpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
KToKKyAgICAgICAgICAgIERvIG5vdCBjYWNoZSB0aGUgcmVxdWVzdGVkIHJhdGUuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnJlcXVlc3RlZFJhdGUp
OiBQYXNzIHRvIE1lZGlhUGxheWVyLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uOjpzZXRSYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnJlcXVlc3Rl
ZFJhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6c2V0UmF0ZSk6IFJlbmFtZWQg
ZnJvbSB1cGRhdGVSYXRlLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0Y6OnJhdGUpOiBGZXRjaCB0aGUgcmF0ZSBmcm9tIHRoZSBwbGF5ZXIuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpzZXRSYXRlRG91YmxlKTogUmVuYW1lZCBmcm9tIHVwZGF0ZVJhdGUu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpy
YXRlKTogRmV0Y2ggdGhlIHJhdGUgZnJvbSB0aGUgcGxheWVyLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpyYXRlKTogRmV0Y2ggdGhlIHJhdGUgZnJv
bSB0aGUgUVRNb3ZpZS4KKwogMjAxNS0wMS0wNSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFRyaWVkIHRvIGZpeCB0aGUgaU9TIGJ1aWxkLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggODdiMzYxMGQyYTAwMTIxZjAxZDM2M2E4
MjZjMjlhOWQzMzEzZDQ5Mi4uYTM4YjQ0N2ViMGNhYTYwYmYyMTI2MWExMzEwNjAyODdlYjgyNjRl
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0yNjIsOCAr
MjYyLDkgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fc2Vla1RpbWVyKCp0aGlz
LCAmSFRNTE1lZGlhRWxlbWVudDo6c2Vla1RpbWVyRmlyZWQpCiAgICAgLCBtX3BsYXllZFRpbWVS
YW5nZXMoKQogICAgICwgbV9hc3luY0V2ZW50UXVldWUoKnRoaXMpCi0gICAgLCBtX3BsYXliYWNr
UmF0ZSgxLjBmKQotICAgICwgbV9kZWZhdWx0UGxheWJhY2tSYXRlKDEuMGYpCisgICAgLCBtX3Jl
cXVlc3RlZFBsYXliYWNrUmF0ZSgxKQorICAgICwgbV9yZXBvcnRlZFBsYXliYWNrUmF0ZSgxKQor
ICAgICwgbV9kZWZhdWx0UGxheWJhY2tSYXRlKDEpCiAgICAgLCBtX3dlYmtpdFByZXNlcnZlc1Bp
dGNoKHRydWUpCiAgICAgLCBtX25ldHdvcmtTdGF0ZShORVRXT1JLX0VNUFRZKQogICAgICwgbV9y
ZWFkeVN0YXRlKEhBVkVfTk9USElORykKQEAgLTI2NTMsMTIgKzI2NTQsMTcgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKGRvdWJsZSByYXRlKQogCiBkb3Vi
bGUgSFRNTE1lZGlhRWxlbWVudDo6ZWZmZWN0aXZlUGxheWJhY2tSYXRlKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV9tZWRpYUNvbnRyb2xsZXIgPyBtX21lZGlhQ29udHJvbGxlci0+cGxheWJhY2tS
YXRlKCkgOiBtX3BsYXliYWNrUmF0ZTsKKyAgICByZXR1cm4gbV9tZWRpYUNvbnRyb2xsZXIgPyBt
X21lZGlhQ29udHJvbGxlci0+cGxheWJhY2tSYXRlKCkgOiBtX3JlcG9ydGVkUGxheWJhY2tSYXRl
OworfQorCitkb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6cmVxdWVzdGVkUGxheWJhY2tSYXRlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9tZWRpYUNvbnRyb2xsZXIgPyBtX21lZGlhQ29udHJvbGxl
ci0+cGxheWJhY2tSYXRlKCkgOiBtX3JlcXVlc3RlZFBsYXliYWNrUmF0ZTsKIH0KIAogZG91Ymxl
IEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrUmF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1f
cGxheWJhY2tSYXRlOworICAgIHJldHVybiBtX3JlcXVlc3RlZFBsYXliYWNrUmF0ZTsKIH0KIAog
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRQbGF5YmFja1JhdGUoZG91YmxlIHJhdGUpCkBAIC0y
NjY4LDggKzI2NzQsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFBsYXliYWNrUmF0ZShk
b3VibGUgcmF0ZSkKICAgICBpZiAobV9wbGF5ZXIgJiYgcG90ZW50aWFsbHlQbGF5aW5nKCkgJiYg
bV9wbGF5ZXItPnJhdGUoKSAhPSByYXRlICYmICFtX21lZGlhQ29udHJvbGxlcikKICAgICAgICAg
bV9wbGF5ZXItPnNldFJhdGUocmF0ZSk7CiAKLSAgICBpZiAobV9wbGF5YmFja1JhdGUgIT0gcmF0
ZSkgewotICAgICAgICBtX3BsYXliYWNrUmF0ZSA9IHJhdGU7CisgICAgaWYgKG1fcmVxdWVzdGVk
UGxheWJhY2tSYXRlICE9IHJhdGUpIHsKKyAgICAgICAgbV9yZXBvcnRlZFBsYXliYWNrUmF0ZSA9
IG1fcmVxdWVzdGVkUGxheWJhY2tSYXRlID0gcmF0ZTsKICAgICAgICAgaW52YWxpZGF0ZUNhY2hl
ZFRpbWUoKTsKICAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCkucmF0ZWNoYW5nZUV2
ZW50KTsKICAgICB9CkBAIC0yNjc3LDkgKzI2ODMsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
OnNldFBsYXliYWNrUmF0ZShkb3VibGUgcmF0ZSkKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp1
cGRhdGVQbGF5YmFja1JhdGUoKQogewotICAgIGRvdWJsZSBlZmZlY3RpdmVSYXRlID0gZWZmZWN0
aXZlUGxheWJhY2tSYXRlKCk7Ci0gICAgaWYgKG1fcGxheWVyICYmIHBvdGVudGlhbGx5UGxheWlu
ZygpICYmIG1fcGxheWVyLT5yYXRlKCkgIT0gZWZmZWN0aXZlUmF0ZSkKLSAgICAgICAgbV9wbGF5
ZXItPnNldFJhdGUoZWZmZWN0aXZlUmF0ZSk7CisgICAgZG91YmxlIHJlcXVlc3RlZFJhdGUgPSBy
ZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKTsKKyAgICBpZiAobV9wbGF5ZXIgJiYgcG90ZW50aWFsbHlQ
bGF5aW5nKCkgJiYgbV9wbGF5ZXItPnJhdGUoKSAhPSByZXF1ZXN0ZWRSYXRlKQorICAgICAgICBt
X3BsYXllci0+c2V0UmF0ZShyZXF1ZXN0ZWRSYXRlKTsKIH0KIAogYm9vbCBIVE1MTWVkaWFFbGVt
ZW50Ojp3ZWJraXRQcmVzZXJ2ZXNQaXRjaCgpIGNvbnN0CkBAIC0yNzA0LDcgKzI3MTAsNyBAQCBi
b29sIEhUTUxNZWRpYUVsZW1lbnQ6OmVuZGVkKCkgY29uc3QKICAgICAvLyA0LjguMTAuOCBQbGF5
aW5nIHRoZSBtZWRpYSByZXNvdXJjZQogICAgIC8vIFRoZSBlbmRlZCBhdHRyaWJ1dGUgbXVzdCBy
ZXR1cm4gdHJ1ZSBpZiB0aGUgbWVkaWEgZWxlbWVudCBoYXMgZW5kZWQgCiAgICAgLy8gcGxheWJh
Y2sgYW5kIHRoZSBkaXJlY3Rpb24gb2YgcGxheWJhY2sgaXMgZm9yd2FyZHMsIGFuZCBmYWxzZSBv
dGhlcndpc2UuCi0gICAgcmV0dXJuIGVuZGVkUGxheWJhY2soKSAmJiBlZmZlY3RpdmVQbGF5YmFj
a1JhdGUoKSA+IDA7CisgICAgcmV0dXJuIGVuZGVkUGxheWJhY2soKSAmJiByZXF1ZXN0ZWRQbGF5
YmFja1JhdGUoKSA+IDA7CiB9CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6YXV0b3BsYXkoKSBj
b25zdApAQCAtMzE0MSw3ICszMTQ3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFj
a1Byb2dyZXNzVGltZXJGaXJlZCgpCiB7CiAgICAgQVNTRVJUKG1fcGxheWVyKTsKIAotICAgIGlm
IChtX2ZyYWdtZW50RW5kVGltZS5pc1ZhbGlkKCkgJiYgY3VycmVudE1lZGlhVGltZSgpID49IG1f
ZnJhZ21lbnRFbmRUaW1lICYmIGVmZmVjdGl2ZVBsYXliYWNrUmF0ZSgpID4gMCkgeworICAgIGlm
IChtX2ZyYWdtZW50RW5kVGltZS5pc1ZhbGlkKCkgJiYgY3VycmVudE1lZGlhVGltZSgpID49IG1f
ZnJhZ21lbnRFbmRUaW1lICYmIHJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpID4gMCkgewogICAgICAg
ICBtX2ZyYWdtZW50RW5kVGltZSA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUoKTsKICAgICAgICAg
aWYgKCFtX21lZGlhQ29udHJvbGxlciAmJiAhbV9wYXVzZWQpIHsKICAgICAgICAgICAgIC8vIGNo
YW5nZXMgcGF1c2VkIHRvIHRydWUgYW5kIGZpcmVzIGEgc2ltcGxlIGV2ZW50IG5hbWVkIHBhdXNl
IGF0IHRoZSBtZWRpYSBlbGVtZW50LgpAQCAtNDE5NSwxMyArNDIwMSwxNCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRHVyYXRpb25DaGFuZ2VkKE1lZGlhUGxheWVyKiBwbGF5
ZXIpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJSYXRlQ2hhbmdlZChNZWRp
YVBsYXllciopCiB7Ci0gICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5
ZXJSYXRlQ2hhbmdlZCglcCkiLCB0aGlzKTsKLQogICAgIGJlZ2luUHJvY2Vzc2luZ01lZGlhUGxh
eWVyQ2FsbGJhY2soKTsKIAogICAgIC8vIFN0YXNoIHRoZSByYXRlIGluIGNhc2UgdGhlIG9uZSB3
ZSB0cmllZCB0byBzZXQgaXNuJ3Qgd2hhdCB0aGUgZW5naW5lIGlzCiAgICAgLy8gdXNpbmcgKGVn
LiBpdCBjYW4ndCBoYW5kbGUgdGhlIHJhdGUgd2Ugc2V0KQotICAgIG1fcGxheWJhY2tSYXRlID0g
bV9wbGF5ZXItPnJhdGUoKTsKKyAgICBtX3JlcG9ydGVkUGxheWJhY2tSYXRlID0gbV9wbGF5ZXIt
PnJhdGUoKTsKKworICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVy
UmF0ZUNoYW5nZWQoJXApIC0gcmF0ZTogJWxmIiwgdGhpcywgbV9yZXBvcnRlZFBsYXliYWNrUmF0
ZSk7CisKICAgICBpZiAobV9wbGF5aW5nKQogICAgICAgICBpbnZhbGlkYXRlQ2FjaGVkVGltZSgp
OwogCkBAIC00NDMzLDEyICs0NDQwLDEyIEBAIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6ZW5kZWRQ
bGF5YmFjaygpIGNvbnN0CiAgICAgLy8gb2YgcGxheWJhY2sgaXMgZm9yd2FyZHMsIEVpdGhlciB0
aGUgbWVkaWEgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGEgbG9vcCBhdHRyaWJ1dGUgc3BlY2lmaWVk
LAogICAgIC8vIG9yIHRoZSBtZWRpYSBlbGVtZW50IGhhcyBhIGN1cnJlbnQgbWVkaWEgY29udHJv
bGxlci4KICAgICBNZWRpYVRpbWUgbm93ID0gY3VycmVudE1lZGlhVGltZSgpOwotICAgIGlmIChl
ZmZlY3RpdmVQbGF5YmFja1JhdGUoKSA+IDApCisgICAgaWYgKHJlcXVlc3RlZFBsYXliYWNrUmF0
ZSgpID4gMCkKICAgICAgICAgcmV0dXJuIGR1ciA+IE1lZGlhVGltZTo6emVyb1RpbWUoKSAmJiBu
b3cgPj0gZHVyICYmICghbG9vcCgpIHx8IG1fbWVkaWFDb250cm9sbGVyKTsKIAogICAgIC8vIG9y
IHRoZSBjdXJyZW50IHBsYXliYWNrIHBvc2l0aW9uIGlzIHRoZSBlYXJsaWVzdCBwb3NzaWJsZSBw
b3NpdGlvbiBhbmQgdGhlIGRpcmVjdGlvbiAKICAgICAvLyBvZiBwbGF5YmFjayBpcyBiYWNrd2Fy
ZHMKLSAgICBpZiAoZWZmZWN0aXZlUGxheWJhY2tSYXRlKCkgPCAwKQorICAgIGlmIChyZXF1ZXN0
ZWRQbGF5YmFja1JhdGUoKSA8IDApCiAgICAgICAgIHJldHVybiBub3cgPD0gTWVkaWFUaW1lOjp6
ZXJvVGltZSgpOwogCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDUzOSw3ICs0NTQ2LDcgQEAgdm9p
ZCBIVE1MTWVkaWFFbGVtZW50Ojp1cGRhdGVQbGF5U3RhdGUoKQogCiAgICAgICAgICAgICAvLyBT
ZXQgcmF0ZSwgbXV0ZWQgYmVmb3JlIGNhbGxpbmcgcGxheSBpbiBjYXNlIHRoZXkgd2VyZSBzZXQg
YmVmb3JlIHRoZSBtZWRpYSBlbmdpbmUgd2FzIHNldHVwLgogICAgICAgICAgICAgLy8gVGhlIG1l
ZGlhIGVuZ2luZSBzaG91bGQganVzdCBzdGFzaCB0aGUgcmF0ZSBhbmQgbXV0ZWQgdmFsdWVzIHNp
bmNlIGl0IGlzbid0IGFscmVhZHkgcGxheWluZy4KLSAgICAgICAgICAgIG1fcGxheWVyLT5zZXRS
YXRlKGVmZmVjdGl2ZVBsYXliYWNrUmF0ZSgpKTsKKyAgICAgICAgICAgIG1fcGxheWVyLT5zZXRS
YXRlKHJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpKTsKICAgICAgICAgICAgIG1fcGxheWVyLT5zZXRN
dXRlZChlZmZlY3RpdmVNdXRlZCgpKTsKIAogICAgICAgICAgICAgaWYgKG1fZmlyc3RUaW1lUGxh
eWluZykgewpAQCAtNTc5MCw2ICs1Nzk3LDExIEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVk
aWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBjb25zdAogICAgIGRpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LT5sb2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZShEaWFnbm9zdGljTG9nZ2luZ0tl
eXM6OmVuZ2luZUZhaWxlZFRvTG9hZEtleSgpLCBlbmdpbmUsIFN0cmluZzo6bnVtYmVyKG1fcGxh
eWVyLT5wbGF0Zm9ybUVycm9yQ29kZSgpKSk7CiB9CiAKK2RvdWJsZSBIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVBsYXllclJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHBvdGVudGlhbGx5UGxheWluZygpID8gcmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgOiAwOworfQor
CiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZUJlaGF2aW9yc1Jlc3RyaWN0aW9uc0FmdGVy
Rmlyc3RVc2VyR2VzdHVyZSgpCiB7CiAgICAgbV9tZWRpYVNlc3Npb24tPnJlbW92ZUJlaGF2aW9y
UmVzdHJpY3Rpb24oSFRNTE1lZGlhU2Vzc2lvbjo6UmVxdWlyZVVzZXJHZXN0dXJlRm9yTG9hZCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGU1OGM0ZjY2NjE0ZWVk
YmEzOTliYWI5YzRjNTIwOWE0MmM3YWE3MDAuLmU5NzJiMGI4YjcxMmU2NDlmMDkzODZjYWNlZGRm
MGNmYWNjYTA4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC01
MzEsNiArNTMxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldE5ldHdvcmtTdGF0ZShNZWRpYVBs
YXllcjo6TmV0d29ya1N0YXRlKTsKIAogICAgIGRvdWJsZSBlZmZlY3RpdmVQbGF5YmFja1JhdGUo
KSBjb25zdDsKKyAgICBkb3VibGUgcmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJOZXR3b3JrU3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVy
Kikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyUmVhZHlTdGF0ZUNoYW5n
ZWQoTWVkaWFQbGF5ZXIqKSBvdmVycmlkZTsKQEAgLTYwNSw2ICs2MDYsOCBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllcklzSW5NZWRpYURvY3VtZW50KCkgY29uc3Qgb3Zl
cnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyRW5naW5lRmFpbGVkVG9M
b2FkKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWw7CiAKKyAgICB2aXJ0dWFsIGRvdWJsZSBtZWRpYVBs
YXllclJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOworCiAgICAg
dm9pZCBsb2FkVGltZXJGaXJlZCgpOwogICAgIHZvaWQgcHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQo
KTsKICAgICB2b2lkIHBsYXliYWNrUHJvZ3Jlc3NUaW1lckZpcmVkKCk7CkBAIC03NDQsNyArNzQ3
LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8VGltZVJhbmdlcz4gbV9wbGF5ZWRUaW1lUmFuZ2Vz
OwogICAgIEdlbmVyaWNFdmVudFF1ZXVlIG1fYXN5bmNFdmVudFF1ZXVlOwogCi0gICAgZG91Ymxl
IG1fcGxheWJhY2tSYXRlOworICAgIGRvdWJsZSBtX3JlcXVlc3RlZFBsYXliYWNrUmF0ZTsKKyAg
ICBkb3VibGUgbV9yZXBvcnRlZFBsYXliYWNrUmF0ZTsKICAgICBkb3VibGUgbV9kZWZhdWx0UGxh
eWJhY2tSYXRlOwogICAgIGJvb2wgbV93ZWJraXRQcmVzZXJ2ZXNQaXRjaDsKICAgICBOZXR3b3Jr
U3RhdGUgbV9uZXR3b3JrU3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggZjExMzY1ZTEzZDNhNTI2N2JjNjVlYWE1N2NkOGFk
NjA0ZmRlOTZiZC4uYzE0NDcyZTZjNjU2OWVmMWJlYzc3NzEzYjFiMTQ1MGNkNDg2N2EyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApA
QCAtMzEyLDcgKzMxMiw2IEBAIE1lZGlhUGxheWVyOjpNZWRpYVBsYXllcihNZWRpYVBsYXllckNs
aWVudCYgY2xpZW50KQogICAgICwgbV9jdXJyZW50TWVkaWFFbmdpbmUoMCkKICAgICAsIG1fcHJl
bG9hZChBdXRvKQogICAgICwgbV92aXNpYmxlKGZhbHNlKQotICAgICwgbV9yYXRlKDEuMGYpCiAg
ICAgLCBtX3ZvbHVtZSgxLjBmKQogICAgICwgbV9tdXRlZChmYWxzZSkKICAgICAsIG1fcHJlc2Vy
dmVzUGl0Y2godHJ1ZSkKQEAgLTY3OSwxNSArNjc4LDE5IEBAIHZvaWQgTWVkaWFQbGF5ZXI6OnNl
dENsb3NlZENhcHRpb25zVmlzaWJsZShib29sIGNsb3NlZENhcHRpb25zVmlzaWJsZSkKIAogZG91
YmxlIE1lZGlhUGxheWVyOjpyYXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9yYXRlOworICAg
IHJldHVybiBtX3ByaXZhdGUtPnJhdGUoKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllcjo6c2V0UmF0
ZShkb3VibGUgcmF0ZSkKIHsKLSAgICBtX3JhdGUgPSByYXRlOwogICAgIG1fcHJpdmF0ZS0+c2V0
UmF0ZURvdWJsZShyYXRlKTsKIH0KIAorZG91YmxlIE1lZGlhUGxheWVyOjpyZXF1ZXN0ZWRSYXRl
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQubWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5
YmFja1JhdGUoKTsKK30KKwogYm9vbCBNZWRpYVBsYXllcjo6cHJlc2VydmVzUGl0Y2goKSBjb25z
dAogewogICAgIHJldHVybiBtX3ByZXNlcnZlc1BpdGNoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggNDNkOTY1MzFjMmY3M2NlMzFkZDVl
ZTZkZTUyZjNkMzFjMWFkNDU5OC4uM2I5NDYzZWM3MzQ2ZDM1YjU5MDk2MzQ5YzRkYWM3ZTg5OTU2
MTJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCkBAIC0yNjIsNiArMjYyLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIG1lZGlh
UGxheWVySXNJbk1lZGlhRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgdm9pZCBtZWRpYVBsYXllckVuZ2luZUZhaWxlZFRvTG9hZCgpIGNvbnN0IHsgfQorCisg
ICAgdmlydHVhbCBkb3VibGUgbWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSBjb25z
dCB7IHJldHVybiAwOyB9CiB9OwogCiBjbGFzcyBNZWRpYVBsYXllclN1cHBvcnRzVHlwZUNsaWVu
dCB7CkBAIC0zNjQsNiArMzY2LDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIHJhdGUoKSBjb25z
dDsKICAgICB2b2lkIHNldFJhdGUoZG91YmxlKTsKKyAgICBkb3VibGUgcmVxdWVzdGVkUmF0ZSgp
IGNvbnN0OwogCiAgICAgYm9vbCBwcmVzZXJ2ZXNQaXRjaCgpIGNvbnN0OwogICAgIHZvaWQgc2V0
UHJlc2VydmVzUGl0Y2goYm9vbCk7CkBAIC01OTUsNyArNTk4LDYgQEAgcHJpdmF0ZToKICAgICBJ
bnRTaXplIG1fc2l6ZTsKICAgICBQcmVsb2FkIG1fcHJlbG9hZDsKICAgICBib29sIG1fdmlzaWJs
ZTsKLSAgICBkb3VibGUgbV9yYXRlOwogICAgIGRvdWJsZSBtX3ZvbHVtZTsKICAgICBib29sIG1f
bXV0ZWQ7CiAgICAgYm9vbCBtX3ByZXNlcnZlc1BpdGNoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCAxNjM2MWU4
YzMzOTEwYWJkOTIxMDEzNGQ2Mjk5ZDM4YzM4NTk0ODUxLi40NGY4ZjZjMjlmODBmNWMwMzc1YTZh
YTJiZWQ1M2YyNjk4YzhhNTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtMTAyLDYgKzEwMiw3IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRlKGZsb2F0KSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2V0UmF0ZURvdWJsZShkb3VibGUgcmF0ZSkgeyBzZXRSYXRlKHJhdGUpOyB9CisgICAgdmly
dHVhbCBkb3VibGUgcmF0ZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBzZXRQcmVzZXJ2ZXNQaXRjaChib29sKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAppbmRleCBmOGM1NTE4NWY5YWYw
YjUyZjQ3MDk0MzJkMWI2NWM5MGYwYmQ3MDMwLi40ZDk2ODg2YjU0YWQ5NDQyZTNmMWZlZmQyMzY0
YWYzNDQ3YTJjZTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmNwcApAQCAtNjAsNyArNjAsNiBAQCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb246Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbihNZWRpYVBsYXll
ciogcGxheQogICAgICwgbV9jYWNoZWREdXJhdGlvbihNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkp
CiAgICAgLCBtX3JlcG9ydGVkRHVyYXRpb24oTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpKQogICAg
ICwgbV9tYXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzKE1lZGlhVGltZTo6aW52
YWxpZFRpbWUoKSkKLSAgICAsIG1fcmVxdWVzdGVkUmF0ZSgxKQogICAgICwgbV9kZWxheUNhbGxi
YWNrcygwKQogICAgICwgbV9kZWxheUNoYXJhY3RlcmlzdGljc0NoYW5nZWROb3RpZmljYXRpb24o
MCkKICAgICAsIG1fbWFpblRocmVhZENhbGxQZW5kaW5nKGZhbHNlKQpAQCAtMjkwLDE0ICsyODks
NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6c2Vla1dpdGhUb2xlcmFu
Y2UoY29uc3QgTWVkaWFUaW1lJiBtZWRpYVRpbQogICAgIHNlZWtUb1RpbWUodGltZSwgbmVnYXRp
dmVUb2xlcmFuY2UsIHBvc2l0aXZlVG9sZXJhbmNlKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb246OnNldFJhdGUoZmxvYXQgcmF0ZSkKLXsKLSAgICBMT0coTWVkaWEs
ICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNldFJhdGUoJXApIC0gc2V0aW5nIHRv
ICVmIiwgdGhpcywgcmF0ZSk7Ci0gICAgbV9yZXF1ZXN0ZWRSYXRlID0gcmF0ZTsKLQotICAgIHVw
ZGF0ZVJhdGUoKTsKLX0KLQogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnBh
dXNlZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQpAQCAtNDE5LDYg
KzQxMCwxMSBAQCBNZWRpYVRpbWUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjptaW5N
ZWRpYVRpbWVTZWVrYWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2FjaGVkTWluVGltZVNlZWth
YmxlOwogfQogCitkb3VibGUgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpyZXF1ZXN0
ZWRSYXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wbGF5ZXItPnJlcXVlc3RlZFJhdGUoKTsK
K30KKwogTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6bWF4VGltZUxv
YWRlZCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJsZSgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCmluZGV4IDgw
ZTE0NjdjYWMxMDU4YzA1ZTlmNzkzNDhlZGZiZmY4YjZiMjcyZmIuLjdiNTU4NDY1YmYzY2IxMWIy
YzJjMmI1ZGQ5N2Y4NTE2MzFmM2QxM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTE3MSw3ICsxNzEsNiBAQCBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNlZWsoY29uc3QgTWVkaWFUaW1lJikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIHNlZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0
IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBzZWVraW5nKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNldFJhdGUoZmxv
YXQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBwYXVzZWQoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Vm9sdW1lKGZsb2F0KSA9IDA7CiAgICAgdmlydHVhbCBib29s
IGhhc0Nsb3NlZENhcHRpb25zKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jYWNoZWRIYXND
YXB0aW9uczsgfQpAQCAtMjMyLDggKzIzMSw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZv
aWQgcGxhdGZvcm1QbGF5KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybVBhdXNlKCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBjaGVja1BsYXlhYmlsaXR5KCkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVSYXRlKCkgPSAwOwotICAgIHZpcnR1YWwgZmxvYXQgcmF0ZSgpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2Vla1RvVGltZShjb25zdCBNZWRpYVRpbWUmLCBjb25z
dCBNZWRpYVRpbWUmIG5lZ2F0aXZlVG9sZXJhbmNlLCBjb25zdCBNZWRpYVRpbWUmIHBvc2l0aXZl
VG9sZXJhbmNlKSA9IDA7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRl
cygpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVRpbWVS
YW5nZXM+IHBsYXRmb3JtQnVmZmVyZWRUaW1lUmFuZ2VzKCkgY29uc3QgPSAwOwpAQCAtMjc3LDcg
KzI3NCw3IEBAIHByb3RlY3RlZDoKICAgICBNZWRpYVJlbmRlcmluZ01vZGUgcHJlZmVycmVkUmVu
ZGVyaW5nTW9kZSgpIGNvbnN0OwogCiAgICAgYm9vbCBtZXRhRGF0YUF2YWlsYWJsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmVhZHlTdGF0ZSA+PSBNZWRpYVBsYXllcjo6SGF2ZU1ldGFkYXRhOyB9Ci0g
ICAgZmxvYXQgcmVxdWVzdGVkUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkUmF0ZTsg
fQorICAgIGRvdWJsZSByZXF1ZXN0ZWRSYXRlKCkgY29uc3Q7CiAgICAgTWVkaWFUaW1lIG1heFRp
bWVMb2FkZWQoKSBjb25zdDsKICAgICBib29sIGlzUmVhZHlGb3JWaWRlb1NldHVwKCkgY29uc3Q7
CiAgICAgdmlydHVhbCB2b2lkIHNldFVwVmlkZW9SZW5kZXJpbmcoKTsKQEAgLTMzMSw3ICszMjgs
NiBAQCBwcml2YXRlOgogICAgIG11dGFibGUgTWVkaWFUaW1lIG1fY2FjaGVkRHVyYXRpb247CiAg
ICAgTWVkaWFUaW1lIG1fcmVwb3J0ZWREdXJhdGlvbjsKICAgICBtdXRhYmxlIE1lZGlhVGltZSBt
X21heFRpbWVMb2FkZWRBdExhc3REaWRMb2FkaW5nUHJvZ3Jlc3M7Ci0gICAgZmxvYXQgbV9yZXF1
ZXN0ZWRSYXRlOwogICAgIG11dGFibGUgaW50IG1fZGVsYXlDYWxsYmFja3M7CiAgICAgaW50IG1f
ZGVsYXlDaGFyYWN0ZXJpc3RpY3NDaGFuZ2VkTm90aWZpY2F0aW9uOwogICAgIGJvb2wgbV9tYWlu
VGhyZWFkQ2FsbFBlbmRpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Yu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmNwcAppbmRleCA1OTNlMzgyZjRiNzRjMjZi
N2E1ZGMzYTc4ZGVkNjNjNGFmMjg3Mjc1Li5hMzRmMGQ0NjdkZDhkNWRkZDQzYzQyZDNlMmJiODc4
MzA1MDAxZmEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKQEAgLTY0MywyNCArNjQzLDI0IEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnNldENsb3NlZENhcHRpb25zVmlzaWJs
ZShib29sIGNsb3NlZENhcHRpCiAgICAgQVZDRlBsYXllclNldENsb3NlZENhcHRpb25EaXNwbGF5
RW5hYmxlZChhdlBsYXllcihtX2F2ZldyYXBwZXIpLCBjbG9zZWRDYXB0aW9uc1Zpc2libGUpOwog
fQogCi12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjp1cGRhdGVSYXRlKCkK
K3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnNldFJhdGUoZmxvYXQgcmF0
ZSkKIHsKLSAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6
dXBkYXRlUmF0ZSglcCkiLCB0aGlzKTsKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25DRjo6c2V0UmF0ZSglcCkgLSByYXRlOiAlZiIsIHRoaXMsIHJhdGUpOwog
ICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUoKSB8fCAhYXZQbGF5ZXIobV9hdmZXcmFwcGVyKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgc2V0RGVsYXlDYWxsYmFja3ModHJ1ZSk7Ci0gICAgQVZD
RlBsYXllclNldFJhdGUoYXZQbGF5ZXIobV9hdmZXcmFwcGVyKSwgcmVxdWVzdGVkUmF0ZSgpKTsK
KyAgICBBVkNGUGxheWVyU2V0UmF0ZShhdlBsYXllcihtX2F2ZldyYXBwZXIpLCByYXRlKTsKICAg
ICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9CiAKLWZsb2F0IE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGOjpyYXRlKCkgY29uc3QKK2RvdWJsZSBNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25DRjo6cmF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtZXRhRGF0YUF2YWlsYWJs
ZSgpIHx8ICFhdlBsYXllcihtX2F2ZldyYXBwZXIpKQogICAgICAgICByZXR1cm4gMDsKIAogICAg
IHNldERlbGF5Q2FsbGJhY2tzKHRydWUpOwotICAgIGZsb2F0IGN1cnJlbnRSYXRlID0gQVZDRlBs
YXllckdldFJhdGUoYXZQbGF5ZXIobV9hdmZXcmFwcGVyKSk7CisgICAgZG91YmxlIGN1cnJlbnRS
YXRlID0gQVZDRlBsYXllckdldFJhdGUoYXZQbGF5ZXIobV9hdmZXcmFwcGVyKSk7CiAgICAgc2V0
RGVsYXlDYWxsYmFja3MoZmFsc2UpOwogCiAgICAgcmV0dXJuIGN1cnJlbnRSYXRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
Q0YuaAppbmRleCAzYmU0NWVlOTdjNzBkYWU0NTcxODExMGNhNmVjMjY2YWM0N2I3MTllLi5iMWNk
Y2QwMGQ5ZjAyYTBjY2E0YWM4YjEzOTVkOWU5YTZmMGZmYjg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uQ0YuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuaApAQCAt
OTAsOCArOTAsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uOjpBc3NldFN0YXR1cyBhc3NldFN0YXR1cygpIGNvbnN0OwogCiAgICAgdmlydHVh
bCB2b2lkIGNoZWNrUGxheWFiaWxpdHkoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmF0ZSgp
OwotICAgIHZpcnR1YWwgZmxvYXQgcmF0ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRS
YXRlKGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSByYXRlKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNlZWtUb1RpbWUoY29uc3QgTWVkaWFUaW1lJiwgY29u
c3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRvbGVyYW5jZSwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2
ZVRvbGVyYW5jZSk7CiAgICAgdmlydHVhbCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygp
IGNvbnN0OwogICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4g
cGxhdGZvcm1CdWZmZXJlZFRpbWVSYW5nZXMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApp
bmRleCBiODYxNjM4NWQzYmQyMjM3MjYwZjY5NzQ1MWE2MzZmM2FmNDY0NmE5Li43MDQ5Y2NjYWQ1
Y2ZhMTQ1NGY5MTI1MzU4MmEyZGQwOWQ0N2Q3NTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBA
IC0xNzcsOCArMTc3LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGxvbmcgYXNzZXRFcnJvckNv
ZGUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBjaGVja1BsYXlhYmlsaXR5KCk7Ci0gICAg
dmlydHVhbCB2b2lkIHVwZGF0ZVJhdGUoKTsKLSAgICB2aXJ0dWFsIGZsb2F0IHJhdGUoKSBjb25z
dDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmF0ZURvdWJsZShkb3VibGUpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgZG91YmxlIHJhdGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2Vla1RvVGlt
ZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmIG5lZ2F0aXZlVG9sZXJhbmNlLCBj
b25zdCBNZWRpYVRpbWUmIHBvc2l0aXZlVG9sZXJhbmNlKTsKICAgICB2aXJ0dWFsIHVuc2lnbmVk
IGxvbmcgbG9uZyB0b3RhbEJ5dGVzKCkgY29uc3Q7CiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9w
dHI8UGxhdGZvcm1UaW1lUmFuZ2VzPiBwbGF0Zm9ybUJ1ZmZlcmVkVGltZVJhbmdlcygpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggZDNkMjIxOGJlZWI4ZmE3YjUzOGFjMzAzYjM1
OTc0ZTUzYmY2ODA5ZS4uZjc3MDBmNjVlYWQ4MTI3MzgzODk2ZjVmMWQ0NWYzNjIyMGI4NTk0MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC0xMjUzLDE1ICsxMjUzLDE2IEBAIHZvaWQgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxl
KGJvb2wgY2xvc2VkQ2FwCiAgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQzo6c2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKCVwKSAtIHNldCB0byAlcyIsIHRo
aXMsIGJvb2xTdHJpbmcoY2xvc2VkQ2FwdGlvbnNWaXNpYmxlKSk7CiB9CiAKLXZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6dXBkYXRlUmF0ZSgpCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFJhdGVEb3VibGUoZG91YmxlIHJhdGUpCisK
IHsKICAgICBzZXREZWxheUNhbGxiYWNrcyh0cnVlKTsKLSAgICBtX2NhY2hlZFJhdGUgPSByZXF1
ZXN0ZWRSYXRlKCk7Ci0gICAgW21fYXZQbGF5ZXIuZ2V0KCkgc2V0UmF0ZTpyZXF1ZXN0ZWRSYXRl
KCldOworICAgIG1fY2FjaGVkUmF0ZSA9IHJhdGU7CisgICAgW21fYXZQbGF5ZXIuZ2V0KCkgc2V0
UmF0ZTpyYXRlXTsKICAgICBzZXREZWxheUNhbGxiYWNrcyhmYWxzZSk7CiB9CiAKLWZsb2F0IE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJhdGUoKSBjb25zdAorZG91YmxlIE1l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnJhdGUoKSBjb25zdAogewogICAgIGlm
ICghbWV0YURhdGFBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRL
aXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclBy
aXZhdGVRVEtpdC5oCmluZGV4IDExYjZhMDZiNGQ1MjllNGI2NDYxMmZmYzFlOGI2YWE1Mzc0MWRl
NmEuLmU3NjcwNDUwZGM4NzU1YjFiZjY2Nzg3NDI2ZmRiOTQ3ODExYzMxYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByaXZhdGVRVEtpdC5oCkBAIC0xMDQsNiArMTA0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgc2Vlayhjb25zdCBNZWRpYVRpbWUmKSBvdmVycmlkZTsKICAgICAKICAgICB2b2lk
IHNldFJhdGUoZmxvYXQpOworICAgIHZpcnR1YWwgZG91YmxlIHJhdGUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCk7CiAgICAgdm9pZCBzZXRQcmVzZXJ2ZXNQaXRj
aChib29sKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCmluZGV4IDM2OTEyMDYzNjM1
ZDkyMWMwNjdhZGU3ZmYzNDdkNjVlYTY3NTA5NGEuLjZiMmJhNDg4MGIzOTZjNWNjYmQ4YjQwM2Ez
Yjc5MzZjMTZhYTZlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KQEAgLTc5Miw2
ICs3OTIsMTEgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2V0UmF0ZShmbG9hdCBy
YXRlKQogICAgICAgICBbbV9xdE1vdmllLmdldCgpIHNldFJhdGU6cmF0ZV07CiB9CiAKK2RvdWJs
ZSBNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6cmF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
cXRNb3ZpZSA/IFttX3F0TW92aWUgcmF0ZV0gOiAwOworfQorCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0OjpzZXRQcmVzZXJ2ZXNQaXRjaChib29sIHByZXNlcnZlc1BpdGNoKQogewogICAg
IExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpzZXRQcmVzZXJ2ZXNQaXRjaCgl
cCkgLSBwcmVzZXJ2ZXNQaXRjaCAlZCIsIHRoaXMsIChpbnQpcHJlc2VydmVzUGl0Y2gpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGIwNzVhMWI0NmRjMjZkZjFjZWM5N2JmZjgwOGM3MTIxZDZkMTBkZmIuLjFjZmVmMGI4NWE1
ZjBmMWNkZmRkMzEwMjg1ZWRhOTNlOTdkOGE2Y2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
NS0wMS0wOCAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAgICAgICBkZWZh
dWx0UGxheWJhY2tSYXRlIG5vdCByZXNwZWN0ZWQgd2hlbiBzZXQgYmVmb3JlIHNvdXJjZSBpcyBs
b2FkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
MDI4MgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIG1l
ZGlhL3ZpZGVvLWRlZmF1bHRwbGF5YmFja3JhdGUtYmVmb3JlLWxvYWQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBtZWRpYS92aWRlby1kZWZhdWx0cGxheWJhY2tyYXRlLWJlZm9yZS1s
b2FkLmh0bWw6IEFkZGVkLgorCiAyMDE1LTAxLTA1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
YXBwbGUuY29tPgogCiAgICAgICAgIEFmdGVyIHVwZGF0aW5nIHRlc3RzIHRvIHVzZSBrZXJuaW5n
LCBsaWdhdHVyZXMsIGFuZCBwcmludGVyIGZvbnRzLCBzb21lIHRlc3RzIGZhaWwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWRlZmF1bHRwbGF5YmFja3JhdGUtYmVmb3JlLWxv
YWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZGVmYXVsdHBsYXliYWNr
cmF0ZS1iZWZvcmUtbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFjNWZhMjliM2IyMGU0
ZmMzOWI0ZDViYzRjODBlZDA3NTY2MGRiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLWRlZmF1bHRwbGF5YmFja3JhdGUtYmVmb3JlLWxvYWQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTAgQEAKKworUlVOKHZpZGVvLmRlZmF1bHRQbGF5YmFja1JhdGUgPSAwLjUp
CitFVkVOVChjYW5wbGF5dGhyb3VnaCkKK0VYUEVDVEVEICh2aWRlby5wbGF5YmFja1JhdGUgPT0g
JzAuNScpIE9LCitFWFBFQ1RFRCAodmlkZW8uZGVmYXVsdFBsYXliYWNrUmF0ZSA9PSAnMC41Jykg
T0sKK0VWRU5UKHRpbWV1cGRhdGUpCitFVkVOVCh0aW1ldXBkYXRlKQorRVhQRUNURUQgKGVmZmVj
dGl2ZVBsYXliYWNrUmF0ZSA8ICcwLjc1JykgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWRlZmF1bHRwbGF5YmFja3JhdGUtYmVmb3JlLWxvYWQu
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWRlZmF1bHRwbGF5YmFja3JhdGUtYmVmb3Jl
LWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjQ3N2Y0ZTNmODUyNmRiODliMzEzMzNiMjBmMjZmZmIy
YjhkODdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tZGVmYXVs
dHBsYXliYWNrcmF0ZS1iZWZvcmUtbG9hZC5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT50ZXN0IHBsYXliYWNr
UmF0ZSBhbmQgZGVmYXVsdFBsYXliYWNrUmF0ZTwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3Jj
PW1lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPXZpZGVvLXRlc3Qu
anM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICB2YXIgd2FsbENsb2Nr
QXRGaXJzdFRpbWVVcGRhdGU7CisgICAgICAgICAgICB2YXIgbWVkaWFUaW1lQXRGaXJzdFRpbWVV
cGRhdGU7CisgICAgICAgICAgICB2YXIgZWZmZWN0aXZlUGxheWJhY2tSYXRlOworCisgICAgICAg
ICAgICBmdW5jdGlvbiBzdGFydCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZmlu
ZE1lZGlhRWxlbWVudCgpOworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudCgnY2FucGxheXRo
cm91Z2gnLCBjYW5wbGF5dGhyb3VnaCk7CisgICAgICAgICAgICAgICAgcnVuKCd2aWRlby5kZWZh
dWx0UGxheWJhY2tSYXRlID0gMC41Jyk7CisgICAgICAgICAgICAgICAgc2V0U3JjQnlUYWdOYW1l
KCd2aWRlbycsIGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJ2NvbnRlbnQvdGVzdCcpKTsKKyAgICAg
ICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gY2FucGxheXRocm91Z2goKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgndmlkZW8ucGxheWJhY2tSYXRl
JywgMC41KTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3ZpZGVvLmRlZmF1bHRQbGF5
YmFja1JhdGUnLCAwLjUpOworCisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50KCd0aW1ldXBk
YXRlJywgdGltZXVwZGF0ZSk7CisgICAgICAgICAgICAgICAgdmlkZW8ucGxheSgpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiB0aW1ldXBkYXRlKCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICB2YXIgbm93ID0gRGF0ZS5ub3coKSAvIDEwMDA7CisgICAgICAg
ICAgICAgICAgaWYgKCF3YWxsQ2xvY2tBdEZpcnN0VGltZVVwZGF0ZSkgeworICAgICAgICAgICAg
ICAgICAgICB3YWxsQ2xvY2tBdEZpcnN0VGltZVVwZGF0ZSA9IG5vdzsKKyAgICAgICAgICAgICAg
ICAgICAgbWVkaWFUaW1lQXRGaXJzdFRpbWVVcGRhdGUgPSB2aWRlby5jdXJyZW50VGltZTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIGlmICh3YWxsQ2xvY2tBdEZpcnN0VGltZVVwZGF0ZSA9PSBub3cpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgIHZhciB3YWxsQ2xvY2tEZWx0YSA9
IHdhbGxDbG9ja0F0Rmlyc3RUaW1lVXBkYXRlIC0gbm93OworICAgICAgICAgICAgICAgIHZhciBt
ZWRpYVRpbWVEZWx0YSA9IG1lZGlhVGltZUF0Rmlyc3RUaW1lVXBkYXRlIC0gdmlkZW8uY3VycmVu
dFRpbWU7CisgICAgICAgICAgICAgICAgZWZmZWN0aXZlUGxheWJhY2tSYXRlID0gbWVkaWFUaW1l
RGVsdGEgLyB3YWxsQ2xvY2tEZWx0YTsKKworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgn
ZWZmZWN0aXZlUGxheWJhY2tSYXRlJywgLjc1LCAnPCcpOworICAgICAgICAgICAgICAgIGVuZFRl
c3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisK
KyAgICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgICAgICA8dmlkZW8gY29udHJvbHM+PC92
aWRlbz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244464</attachid>
            <date>2015-01-12 13:48:55 -0800</date>
            <delta_ts>2015-01-12 14:13:09 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-140282-20150112134901.patch</filename>
            <type>text/plain</type>
            <size>25032</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4MjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ4NzA0ZmE1ZTc2OGMy
OWNiZmRlYTQ2ODA1OTE1NmIyMmVhY2M1Yy4uMWYwMTlhOGFmZmVjMWNlOWFkZDkwODYyZGI2YmE4
OGZkNmM0ZWIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDE1LTAxLTA4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIGRlZmF1bHRQbGF5YmFja1Jh
dGUgbm90IHJlc3BlY3RlZCB3aGVuIHNldCBiZWZvcmUgc291cmNlIGlzIGxvYWRlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwMjgyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3ZpZGVv
LWRlZmF1bHRwbGF5YmFja3JhdGUtYmVmb3JlLWxvYWQuaHRtbAorCisgICAgICAgIFdoZW4gdGhl
IEhUTUxNZWRpYUVsZW1lbnQgaXMgbm90aWZpZWQgdGhhdCB0aGUgbWVkaWEgcGxheWVyJ3MgcmF0
ZSBoYXMgY2hhbmdlZCwgaXQgYXNrcworICAgICAgICBmb3IgdGhlIHJhdGUgZnJvbSBNZWRpYVBs
YXllci4gSG93ZXZlciwgTWVkaWFQbGF5ZXIgbmV2ZXIgcmVxdWVzdHMgdGhlIHBsYXliYWNrIHJh
dGUKKyAgICAgICAgZnJvbSB0aGUgdW5kZXJseWluZyBNZWRpYVBsYXllclByaXZhdGU7IGl0IGp1
c3QgcmV0dXJucyB0aGUgbGFzdCByYXRlIHdoaWNoIHdhcyBzZXQsIG9yCisgICAgICAgIDEgaWYg
bm8gcmF0ZSB3YXMgc2V0LiBIVE1MTWVkaWFFbGVtZW50IHRoZW4gc2V0cyBpdHMgcGxheWJhY2tS
YXRlIHRvIHRoZSByZXR1cm5lZAorICAgICAgICB2YWx1ZS4gU28gdGhlIGVuZCByZXN1bHQgaXMg
dGhhdCB0aGUgdmFsdWUgZnJvbSBkZWZhdWx0UGxheWJhY2tSYXRlIGlzIG92ZXJ3cml0dGVuIGJ5
CisgICAgICAgIHRoZSBkZWZhdWx0IHZhbHVlIG9mIDEgaW4gTWVkaWFQbGF5ZXIuCisKKyAgICAg
ICAgUmF0aGVyIHRoYW4gY2FjaGluZyB0aGUgcmVxdWVzdGVkIHJhdGUgaW4gTWVkaWFQbGF5ZXIs
IGNhY2hlIHRoZSB2YWx1ZSByZXBvcnRlZCBieQorICAgICAgICBNZWRpYVBsYXllciBpbnNpZGUg
SFRNTE1lZGlhRWxlbWVudC4gQW5kIGluc3RlYWQgb2YgcmV0dXJuaW5nIHRoZSByZXBvcnRlZCBw
bGF5YmFjaworICAgICAgICByYXRlIGZyb20gSFRNTE1lZGlhRWxlbWVudC5wbGF5YmFja1JhdGUs
IGp1c3QgcmV0dXJuIHRoZSBsYXN0IHZhbHVlIHNldC4gVGhlIHJlcG9ydGVkCisgICAgICAgIHZh
bHVlIGlzIHN0aWxsIHVzZWQgZm9yIGVzdGltYXRpbmcgdGhlIGN1cnJlbnQgdGltZSBkdXJpbmcg
cGxheWJhY2suCisKKyAgICAgICAgQWRkIE1lZGlhUGxheWVyUHJpdmF0ZSBpbnRlcmZhY2UgbWV0
aG9kIHRvIHJldHVybiB0aGUgY3VycmVudCBwbGF5YmFjayByYXRlLgorCisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OkhUTUxNZWRpYUVsZW1lbnQpOiBJbml0aWFsaXplIG1fcmVwb3J0ZWRQbGF5YmFja1JhdGUu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjplZmZlY3RpdmVQbGF5YmFja1Jh
dGUpOiBSZXR1cm4gbV9yZXBvcnRlZFBsYXliYWNrUmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OnJlcXVlc3RlZFBsYXliYWNrUmF0ZSk6IFJldHVybiBtX3BsYXliYWNr
UmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXliYWNr
UmF0ZSk6IFVzZSByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSBpbnN0ZWFkCisgICAgICAgICAgICBv
ZiBlZmZlY3RpdmVQbGF5YmFja1JhdGUoKTsKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OmVuZGVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6ZW5kZWRQbGF5YmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlUGxheVN0YXRlKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJhdGVDaGFu
Z2VkKTogU2V0IG1fcmVwb3J0ZWRQbGF5YmFja1JhdGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJlcXVlc3RlZFBsYXliYWNrUmF0ZSk6IFJldHVybgor
ICAgICAgICAgICAgcmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgaWYgcGxheWluZyBhbmQgMCBpZiBu
b3QuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXI6Ok1lZGlhUGxheWVyKTogUmVtb3ZlZCBtX3JhdGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6cmF0ZSk6IFBhc3MgdG8gTWVkaWFQbGF5ZXJQcml2YXRlLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OnNldFJhdGUpOiBEbyBub3QgY2FjaGUgdGhlIHJhdGUuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6cmVxdWVzdGVkUmF0ZSk6IEFkZGVkOyBhc2sgSFRN
TE1lZGlhRWxlbWVudC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhUGxheWVyUmVxdWVz
dGVkUGxheWJhY2tSYXRlKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U6OnJhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uKToKKyAgICAgICAgICAgIERvIG5vdCBjYWNoZSB0aGUgcmVxdWVzdGVkIHJh
dGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnJl
cXVlc3RlZFJhdGUpOiBQYXNzIHRvIE1lZGlhUGxheWVyLgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRSYXRlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b246OnJlcXVlc3RlZFJhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6c2V0UmF0
ZSk6IFJlbmFtZWQgZnJvbSB1cGRhdGVSYXRlLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJhdGUpOiBGZXRjaCB0aGUgcmF0ZSBmcm9tIHRoZSBw
bGF5ZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRSYXRlRG91YmxlKTogUmVuYW1lZCBmcm9t
IHVwZGF0ZVJhdGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpyYXRlKTogRmV0Y2ggdGhlIHJhdGUgZnJvbSB0aGUgcGxheWVyLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpyYXRlKTogRmV0Y2gg
dGhlIHJhdGUgZnJvbSB0aGUgUVRNb3ZpZS4KKwogMjAxNS0wMS0xMiAgTXlsZXMgQy4gTWF4Zmll
bGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IHRhcmdldHRpbmcgdGhl
IFNWRy0+T1RGIGZvbnQgY29udmVydGVyIHdpdGggRU5BQkxFKFNWR19PVEZfQ09OVkVSVEVSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggODdiMzYxMGQyYTAw
MTIxZjAxZDM2M2E4MjZjMjlhOWQzMzEzZDQ5Mi4uNDg0ZDY0YmVlNmE3MzhkZTcwYjE1ZTNjZThj
Mjc4MzVlODM2MDhiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CkBAIC0yNjIsOCArMjYyLDkgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fc2Vl
a1RpbWVyKCp0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6c2Vla1RpbWVyRmlyZWQpCiAgICAgLCBt
X3BsYXllZFRpbWVSYW5nZXMoKQogICAgICwgbV9hc3luY0V2ZW50UXVldWUoKnRoaXMpCi0gICAg
LCBtX3BsYXliYWNrUmF0ZSgxLjBmKQotICAgICwgbV9kZWZhdWx0UGxheWJhY2tSYXRlKDEuMGYp
CisgICAgLCBtX3JlcXVlc3RlZFBsYXliYWNrUmF0ZSgxKQorICAgICwgbV9yZXBvcnRlZFBsYXli
YWNrUmF0ZSgxKQorICAgICwgbV9kZWZhdWx0UGxheWJhY2tSYXRlKDEpCiAgICAgLCBtX3dlYmtp
dFByZXNlcnZlc1BpdGNoKHRydWUpCiAgICAgLCBtX25ldHdvcmtTdGF0ZShORVRXT1JLX0VNUFRZ
KQogICAgICwgbV9yZWFkeVN0YXRlKEhBVkVfTk9USElORykKQEAgLTI2NTMsMTIgKzI2NTQsMTcg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKGRvdWJsZSBy
YXRlKQogCiBkb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6ZWZmZWN0aXZlUGxheWJhY2tSYXRlKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9tZWRpYUNvbnRyb2xsZXIgPyBtX21lZGlhQ29udHJvbGxl
ci0+cGxheWJhY2tSYXRlKCkgOiBtX3BsYXliYWNrUmF0ZTsKKyAgICByZXR1cm4gbV9tZWRpYUNv
bnRyb2xsZXIgPyBtX21lZGlhQ29udHJvbGxlci0+cGxheWJhY2tSYXRlKCkgOiBtX3JlcG9ydGVk
UGxheWJhY2tSYXRlOworfQorCitkb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6cmVxdWVzdGVkUGxh
eWJhY2tSYXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tZWRpYUNvbnRyb2xsZXIgPyBtX21l
ZGlhQ29udHJvbGxlci0+cGxheWJhY2tSYXRlKCkgOiBtX3JlcXVlc3RlZFBsYXliYWNrUmF0ZTsK
IH0KIAogZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrUmF0ZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fcGxheWJhY2tSYXRlOworICAgIHJldHVybiBtX3JlcXVlc3RlZFBsYXliYWNr
UmF0ZTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRQbGF5YmFja1JhdGUoZG91Ymxl
IHJhdGUpCkBAIC0yNjY4LDggKzI2NzQsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFBs
YXliYWNrUmF0ZShkb3VibGUgcmF0ZSkKICAgICBpZiAobV9wbGF5ZXIgJiYgcG90ZW50aWFsbHlQ
bGF5aW5nKCkgJiYgbV9wbGF5ZXItPnJhdGUoKSAhPSByYXRlICYmICFtX21lZGlhQ29udHJvbGxl
cikKICAgICAgICAgbV9wbGF5ZXItPnNldFJhdGUocmF0ZSk7CiAKLSAgICBpZiAobV9wbGF5YmFj
a1JhdGUgIT0gcmF0ZSkgewotICAgICAgICBtX3BsYXliYWNrUmF0ZSA9IHJhdGU7CisgICAgaWYg
KG1fcmVxdWVzdGVkUGxheWJhY2tSYXRlICE9IHJhdGUpIHsKKyAgICAgICAgbV9yZXBvcnRlZFBs
YXliYWNrUmF0ZSA9IG1fcmVxdWVzdGVkUGxheWJhY2tSYXRlID0gcmF0ZTsKICAgICAgICAgaW52
YWxpZGF0ZUNhY2hlZFRpbWUoKTsKICAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCku
cmF0ZWNoYW5nZUV2ZW50KTsKICAgICB9CkBAIC0yNjc3LDkgKzI2ODMsOSBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNldFBsYXliYWNrUmF0ZShkb3VibGUgcmF0ZSkKIAogdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojp1cGRhdGVQbGF5YmFja1JhdGUoKQogewotICAgIGRvdWJsZSBlZmZlY3RpdmVS
YXRlID0gZWZmZWN0aXZlUGxheWJhY2tSYXRlKCk7Ci0gICAgaWYgKG1fcGxheWVyICYmIHBvdGVu
dGlhbGx5UGxheWluZygpICYmIG1fcGxheWVyLT5yYXRlKCkgIT0gZWZmZWN0aXZlUmF0ZSkKLSAg
ICAgICAgbV9wbGF5ZXItPnNldFJhdGUoZWZmZWN0aXZlUmF0ZSk7CisgICAgZG91YmxlIHJlcXVl
c3RlZFJhdGUgPSByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKTsKKyAgICBpZiAobV9wbGF5ZXIgJiYg
cG90ZW50aWFsbHlQbGF5aW5nKCkgJiYgbV9wbGF5ZXItPnJhdGUoKSAhPSByZXF1ZXN0ZWRSYXRl
KQorICAgICAgICBtX3BsYXllci0+c2V0UmF0ZShyZXF1ZXN0ZWRSYXRlKTsKIH0KIAogYm9vbCBI
VE1MTWVkaWFFbGVtZW50Ojp3ZWJraXRQcmVzZXJ2ZXNQaXRjaCgpIGNvbnN0CkBAIC0yNzA0LDcg
KzI3MTAsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmVuZGVkKCkgY29uc3QKICAgICAvLyA0
LjguMTAuOCBQbGF5aW5nIHRoZSBtZWRpYSByZXNvdXJjZQogICAgIC8vIFRoZSBlbmRlZCBhdHRy
aWJ1dGUgbXVzdCByZXR1cm4gdHJ1ZSBpZiB0aGUgbWVkaWEgZWxlbWVudCBoYXMgZW5kZWQgCiAg
ICAgLy8gcGxheWJhY2sgYW5kIHRoZSBkaXJlY3Rpb24gb2YgcGxheWJhY2sgaXMgZm9yd2FyZHMs
IGFuZCBmYWxzZSBvdGhlcndpc2UuCi0gICAgcmV0dXJuIGVuZGVkUGxheWJhY2soKSAmJiBlZmZl
Y3RpdmVQbGF5YmFja1JhdGUoKSA+IDA7CisgICAgcmV0dXJuIGVuZGVkUGxheWJhY2soKSAmJiBy
ZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSA+IDA7CiB9CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6
YXV0b3BsYXkoKSBjb25zdApAQCAtMzE0MSw3ICszMTQ3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZCgpCiB7CiAgICAgQVNTRVJUKG1fcGxheWVy
KTsKIAotICAgIGlmIChtX2ZyYWdtZW50RW5kVGltZS5pc1ZhbGlkKCkgJiYgY3VycmVudE1lZGlh
VGltZSgpID49IG1fZnJhZ21lbnRFbmRUaW1lICYmIGVmZmVjdGl2ZVBsYXliYWNrUmF0ZSgpID4g
MCkgeworICAgIGlmIChtX2ZyYWdtZW50RW5kVGltZS5pc1ZhbGlkKCkgJiYgY3VycmVudE1lZGlh
VGltZSgpID49IG1fZnJhZ21lbnRFbmRUaW1lICYmIHJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpID4g
MCkgewogICAgICAgICBtX2ZyYWdtZW50RW5kVGltZSA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUo
KTsKICAgICAgICAgaWYgKCFtX21lZGlhQ29udHJvbGxlciAmJiAhbV9wYXVzZWQpIHsKICAgICAg
ICAgICAgIC8vIGNoYW5nZXMgcGF1c2VkIHRvIHRydWUgYW5kIGZpcmVzIGEgc2ltcGxlIGV2ZW50
IG5hbWVkIHBhdXNlIGF0IHRoZSBtZWRpYSBlbGVtZW50LgpAQCAtMzE1MSw3ICszMTU3LDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZCgpCiAgICAg
CiAgICAgc2NoZWR1bGVUaW1ldXBkYXRlRXZlbnQodHJ1ZSk7CiAKLSAgICBpZiAoIWVmZmVjdGl2
ZVBsYXliYWNrUmF0ZSgpKQorICAgIGlmICghcmVxdWVzdGVkUGxheWJhY2tSYXRlKCkpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmICghbV9wYXVzZWQgJiYgaGFzTWVkaWFDb250cm9scygpKQpA
QCAtNDEwNyw3ICs0MTEzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclRp
bWVDaGFuZ2VkKE1lZGlhUGxheWVyKikKIAogICAgIE1lZGlhVGltZSBub3cgPSBjdXJyZW50TWVk
aWFUaW1lKCk7CiAgICAgTWVkaWFUaW1lIGR1ciA9IGR1cmF0aW9uTWVkaWFUaW1lKCk7Ci0gICAg
ZG91YmxlIHBsYXliYWNrUmF0ZSA9IGVmZmVjdGl2ZVBsYXliYWNrUmF0ZSgpOworICAgIGRvdWJs
ZSBwbGF5YmFja1JhdGUgPSByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKTsKICAgICAKICAgICAvLyBX
aGVuIHRoZSBjdXJyZW50IHBsYXliYWNrIHBvc2l0aW9uIHJlYWNoZXMgdGhlIGVuZCBvZiB0aGUg
bWVkaWEgcmVzb3VyY2UgdGhlbiB0aGUgdXNlciBhZ2VudCBtdXN0IGZvbGxvdyB0aGVzZSBzdGVw
czoKICAgICBpZiAoZHVyLmlzVmFsaWQoKSAmJiBkdXIpIHsKQEAgLTQxOTUsMTMgKzQyMDEsMTQg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckR1cmF0aW9uQ2hhbmdlZChNZWRp
YVBsYXllciogcGxheWVyKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUmF0
ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogewotICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyUmF0ZUNoYW5nZWQoJXApIiwgdGhpcyk7Ci0KICAgICBiZWdpblByb2Nl
c3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiAKICAgICAvLyBTdGFzaCB0aGUgcmF0ZSBpbiBj
YXNlIHRoZSBvbmUgd2UgdHJpZWQgdG8gc2V0IGlzbid0IHdoYXQgdGhlIGVuZ2luZSBpcwogICAg
IC8vIHVzaW5nIChlZy4gaXQgY2FuJ3QgaGFuZGxlIHRoZSByYXRlIHdlIHNldCkKLSAgICBtX3Bs
YXliYWNrUmF0ZSA9IG1fcGxheWVyLT5yYXRlKCk7CisgICAgbV9yZXBvcnRlZFBsYXliYWNrUmF0
ZSA9IG1fcGxheWVyLT5yYXRlKCk7CisKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVBsYXllclJhdGVDaGFuZ2VkKCVwKSAtIHJhdGU6ICVsZiIsIHRoaXMsIG1fcmVwb3J0
ZWRQbGF5YmFja1JhdGUpOworCiAgICAgaWYgKG1fcGxheWluZykKICAgICAgICAgaW52YWxpZGF0
ZUNhY2hlZFRpbWUoKTsKIApAQCAtNDQzMywxMiArNDQ0MCwxMiBAQCBib29sIEhUTUxNZWRpYUVs
ZW1lbnQ6OmVuZGVkUGxheWJhY2soKSBjb25zdAogICAgIC8vIG9mIHBsYXliYWNrIGlzIGZvcndh
cmRzLCBFaXRoZXIgdGhlIG1lZGlhIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhIGxvb3AgYXR0cmli
dXRlIHNwZWNpZmllZCwKICAgICAvLyBvciB0aGUgbWVkaWEgZWxlbWVudCBoYXMgYSBjdXJyZW50
IG1lZGlhIGNvbnRyb2xsZXIuCiAgICAgTWVkaWFUaW1lIG5vdyA9IGN1cnJlbnRNZWRpYVRpbWUo
KTsKLSAgICBpZiAoZWZmZWN0aXZlUGxheWJhY2tSYXRlKCkgPiAwKQorICAgIGlmIChyZXF1ZXN0
ZWRQbGF5YmFja1JhdGUoKSA+IDApCiAgICAgICAgIHJldHVybiBkdXIgPiBNZWRpYVRpbWU6Onpl
cm9UaW1lKCkgJiYgbm93ID49IGR1ciAmJiAoIWxvb3AoKSB8fCBtX21lZGlhQ29udHJvbGxlcik7
CiAKICAgICAvLyBvciB0aGUgY3VycmVudCBwbGF5YmFjayBwb3NpdGlvbiBpcyB0aGUgZWFybGll
c3QgcG9zc2libGUgcG9zaXRpb24gYW5kIHRoZSBkaXJlY3Rpb24gCiAgICAgLy8gb2YgcGxheWJh
Y2sgaXMgYmFja3dhcmRzCi0gICAgaWYgKGVmZmVjdGl2ZVBsYXliYWNrUmF0ZSgpIDwgMCkKKyAg
ICBpZiAocmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgPCAwKQogICAgICAgICByZXR1cm4gbm93IDw9
IE1lZGlhVGltZTo6emVyb1RpbWUoKTsKIAogICAgIHJldHVybiBmYWxzZTsKQEAgLTQ1MzksNyAr
NDU0Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlUGxheVN0YXRlKCkKIAogICAg
ICAgICAgICAgLy8gU2V0IHJhdGUsIG11dGVkIGJlZm9yZSBjYWxsaW5nIHBsYXkgaW4gY2FzZSB0
aGV5IHdlcmUgc2V0IGJlZm9yZSB0aGUgbWVkaWEgZW5naW5lIHdhcyBzZXR1cC4KICAgICAgICAg
ICAgIC8vIFRoZSBtZWRpYSBlbmdpbmUgc2hvdWxkIGp1c3Qgc3Rhc2ggdGhlIHJhdGUgYW5kIG11
dGVkIHZhbHVlcyBzaW5jZSBpdCBpc24ndCBhbHJlYWR5IHBsYXlpbmcuCi0gICAgICAgICAgICBt
X3BsYXllci0+c2V0UmF0ZShlZmZlY3RpdmVQbGF5YmFja1JhdGUoKSk7CisgICAgICAgICAgICBt
X3BsYXllci0+c2V0UmF0ZShyZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSk7CiAgICAgICAgICAgICBt
X3BsYXllci0+c2V0TXV0ZWQoZWZmZWN0aXZlTXV0ZWQoKSk7CiAKICAgICAgICAgICAgIGlmICht
X2ZpcnN0VGltZVBsYXlpbmcpIHsKQEAgLTU3OTAsNiArNTc5NywxMSBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhUGxheWVyRW5naW5lRmFpbGVkVG9Mb2FkKCkgY29uc3QKICAgICBkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjplbmdpbmVGYWlsZWRUb0xvYWRLZXkoKSwgZW5naW5lLCBTdHJpbmc6
Om51bWJlcihtX3BsYXllci0+cGxhdGZvcm1FcnJvckNvZGUoKSkpOwogfQogCitkb3VibGUgSFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSBjb25zdAor
eworICAgIHJldHVybiBwb3RlbnRpYWxseVBsYXlpbmcoKSA/IHJlcXVlc3RlZFBsYXliYWNrUmF0
ZSgpIDogMDsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVCZWhhdmlvcnNSZXN0
cmljdGlvbnNBZnRlckZpcnN0VXNlckdlc3R1cmUoKQogewogICAgIG1fbWVkaWFTZXNzaW9uLT5y
ZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVVc2VyR2Vz
dHVyZUZvckxvYWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBi
MTlmMGNiMGRlZjg2NjZkYTZlZDRjYjYxODUwMGZlN2NmZDU3ZmY1Li40M2IzNTgyZTY4NjRjYTIw
YjJjNDYxMWJmMWU3ZTEwOWVmYmFmZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaApAQCAtNTMyLDYgKzUzMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXROZXR3b3Jr
U3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSk7CiAKICAgICBkb3VibGUgZWZmZWN0aXZl
UGxheWJhY2tSYXRlKCkgY29uc3Q7CisgICAgZG91YmxlIHJlcXVlc3RlZFBsYXliYWNrUmF0ZSgp
IGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyTmV0d29ya1N0YXRlQ2hhbmdl
ZChNZWRpYVBsYXllciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclJl
YWR5U3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyKikgb3ZlcnJpZGU7CkBAIC02MDYsNiArNjA3LDgg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJJc0luTWVkaWFEb2N1bWVu
dCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllckVu
Z2luZUZhaWxlZFRvTG9hZCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogCisgICAgdmlydHVhbCBk
b3VibGUgbWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSBjb25zdCBvdmVycmlkZSBm
aW5hbDsKKwogICAgIHZvaWQgbG9hZFRpbWVyRmlyZWQoKTsKICAgICB2b2lkIHByb2dyZXNzRXZl
bnRUaW1lckZpcmVkKCk7CiAgICAgdm9pZCBwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZCgpOwpA
QCAtNzQ1LDcgKzc0OCw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IG1fcGxh
eWVkVGltZVJhbmdlczsKICAgICBHZW5lcmljRXZlbnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsK
IAotICAgIGRvdWJsZSBtX3BsYXliYWNrUmF0ZTsKKyAgICBkb3VibGUgbV9yZXF1ZXN0ZWRQbGF5
YmFja1JhdGU7CisgICAgZG91YmxlIG1fcmVwb3J0ZWRQbGF5YmFja1JhdGU7CiAgICAgZG91Ymxl
IG1fZGVmYXVsdFBsYXliYWNrUmF0ZTsKICAgICBib29sIG1fd2Via2l0UHJlc2VydmVzUGl0Y2g7
CiAgICAgTmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGYxMTM2NWUxM2QzYTUyNjdi
YzY1ZWFhNTdjZDhhZDYwNGZkZTk2YmQuLmMxNDQ3MmU2YzY1NjllZjFiZWM3NzcxM2IxYjE0NTBj
ZDQ4NjdhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKQEAgLTMxMiw3ICszMTIsNiBAQCBNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIo
TWVkaWFQbGF5ZXJDbGllbnQmIGNsaWVudCkKICAgICAsIG1fY3VycmVudE1lZGlhRW5naW5lKDAp
CiAgICAgLCBtX3ByZWxvYWQoQXV0bykKICAgICAsIG1fdmlzaWJsZShmYWxzZSkKLSAgICAsIG1f
cmF0ZSgxLjBmKQogICAgICwgbV92b2x1bWUoMS4wZikKICAgICAsIG1fbXV0ZWQoZmFsc2UpCiAg
ICAgLCBtX3ByZXNlcnZlc1BpdGNoKHRydWUpCkBAIC02NzksMTUgKzY3OCwxOSBAQCB2b2lkIE1l
ZGlhUGxheWVyOjpzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCBjbG9zZWRDYXB0aW9uc1Zp
c2libGUpCiAKIGRvdWJsZSBNZWRpYVBsYXllcjo6cmF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fcmF0ZTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5yYXRlKCk7CiB9CiAKIHZvaWQgTWVkaWFQ
bGF5ZXI6OnNldFJhdGUoZG91YmxlIHJhdGUpCiB7Ci0gICAgbV9yYXRlID0gcmF0ZTsKICAgICBt
X3ByaXZhdGUtPnNldFJhdGVEb3VibGUocmF0ZSk7CiB9CiAKK2RvdWJsZSBNZWRpYVBsYXllcjo6
cmVxdWVzdGVkUmF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50Lm1lZGlhUGxheWVy
UmVxdWVzdGVkUGxheWJhY2tSYXRlKCk7Cit9CisKIGJvb2wgTWVkaWFQbGF5ZXI6OnByZXNlcnZl
c1BpdGNoKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcmVzZXJ2ZXNQaXRjaDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDQzZDk2NTMx
YzJmNzNjZTMxZGQ1ZWU2ZGU1MmYzZDMxYzFhZDQ1OTguLjNiOTQ2M2VjNzM0NmQzNWI1OTA5NjM0
OWM0ZGFjN2U4OTk1NjEyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaApAQCAtMjYyLDYgKzI2Miw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgYm9vbCBtZWRpYVBsYXllcklzSW5NZWRpYURvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBj
b25zdCB7IH0KKworICAgIHZpcnR1YWwgZG91YmxlIG1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJh
Y2tSYXRlKCkgY29uc3QgeyByZXR1cm4gMDsgfQogfTsKIAogY2xhc3MgTWVkaWFQbGF5ZXJTdXBw
b3J0c1R5cGVDbGllbnQgewpAQCAtMzY0LDYgKzM2Niw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJs
ZSByYXRlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSYXRlKGRvdWJsZSk7CisgICAgZG91YmxlIHJl
cXVlc3RlZFJhdGUoKSBjb25zdDsKIAogICAgIGJvb2wgcHJlc2VydmVzUGl0Y2goKSBjb25zdDsK
ICAgICB2b2lkIHNldFByZXNlcnZlc1BpdGNoKGJvb2wpOwpAQCAtNTk1LDcgKzU5OCw2IEBAIHBy
aXZhdGU6CiAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAgUHJlbG9hZCBtX3ByZWxvYWQ7CiAgICAg
Ym9vbCBtX3Zpc2libGU7Ci0gICAgZG91YmxlIG1fcmF0ZTsKICAgICBkb3VibGUgbV92b2x1bWU7
CiAgICAgYm9vbCBtX211dGVkOwogICAgIGJvb2wgbV9wcmVzZXJ2ZXNQaXRjaDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
aW5kZXggMTYzNjFlOGMzMzkxMGFiZDkyMTAxMzRkNjI5OWQzOGMzODU5NDg1MS4uNDRmOGY2YzI5
ZjgwZjVjMDM3NWE2YWEyYmVkNTNmMjY5OGM4YTU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTEwMiw2ICsx
MDIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmF0ZShmbG9hdCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIHNldFJhdGVEb3VibGUoZG91YmxlIHJhdGUpIHsgc2V0UmF0ZShyYXRl
KTsgfQorICAgIHZpcnR1YWwgZG91YmxlIHJhdGUoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0UHJlc2VydmVzUGl0Y2goYm9vbCkgeyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXgg
ZjhjNTUxODVmOWFmMGI1MmY0NzA5NDMyZDFiNjVjOTBmMGJkNzAzMC4uNGQ5Njg4NmI1NGFkOTQ0
MmUzZjFmZWZkMjM2NGFmMzQ0N2EyY2U5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKQEAgLTYwLDcgKzYwLDYgQEAgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24oTWVkaWFQbGF5ZXIqIHBsYXkKICAgICAsIG1fY2FjaGVkRHVyYXRpb24oTWVkaWFUaW1lOjpp
bnZhbGlkVGltZSgpKQogICAgICwgbV9yZXBvcnRlZER1cmF0aW9uKE1lZGlhVGltZTo6aW52YWxp
ZFRpbWUoKSkKICAgICAsIG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzcyhN
ZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpCi0gICAgLCBtX3JlcXVlc3RlZFJhdGUoMSkKICAgICAs
IG1fZGVsYXlDYWxsYmFja3MoMCkKICAgICAsIG1fZGVsYXlDaGFyYWN0ZXJpc3RpY3NDaGFuZ2Vk
Tm90aWZpY2F0aW9uKDApCiAgICAgLCBtX21haW5UaHJlYWRDYWxsUGVuZGluZyhmYWxzZSkKQEAg
LTI5MCwxNCArMjg5LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNl
ZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW0KICAgICBzZWVrVG9UaW1l
KHRpbWUsIG5lZ2F0aXZlVG9sZXJhbmNlLCBwb3NpdGl2ZVRvbGVyYW5jZSk7CiB9CiAKLXZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRSYXRlKGZsb2F0IHJhdGUpCi17Ci0g
ICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRSYXRlKCVw
KSAtIHNldGluZyB0byAlZiIsIHRoaXMsIHJhdGUpOwotICAgIG1fcmVxdWVzdGVkUmF0ZSA9IHJh
dGU7Ci0KLSAgICB1cGRhdGVSYXRlKCk7Ci19Ci0KIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uOjpwYXVzZWQoKSBjb25zdAogewogICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUo
KSkKQEAgLTQxOSw2ICs0MTAsMTEgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6bWluTWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdAogICAgIHJldHVybiBtX2NhY2hl
ZE1pblRpbWVTZWVrYWJsZTsKIH0KIAorZG91YmxlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbjo6cmVxdWVzdGVkUmF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGxheWVyLT5yZXF1
ZXN0ZWRSYXRlKCk7Cit9CisKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b246Om1heFRpbWVMb2FkZWQoKSBjb25zdAogewogICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaAppbmRleCA4MGUxNDY3Y2FjMTA1OGMwNWU5Zjc5MzQ4ZWRmYmZmOGI2YjI3MmZiLi43YjU1
ODQ2NWJmM2NiMTFiMmMyYzJiNWRkOTdmODUxNjMxZjNkMTNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBAIC0xNzEsNyArMTcx
LDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzZWVrKGNvbnN0IE1lZGlhVGltZSYp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZWVrV2l0aFRvbGVyYW5jZShjb25zdCBNZWRp
YVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2Vla2luZygpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRSYXRlKGZsb2F0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcGF1c2VkKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZvbHVtZShmbG9hdCkgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fY2FjaGVkSGFzQ2FwdGlvbnM7IH0KQEAgLTIzMiw4ICsyMzEsNiBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtUGxheSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGxh
dGZvcm1QYXVzZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tQbGF5YWJpbGl0eSgpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmF0ZSgpID0gMDsKLSAgICB2aXJ0dWFsIGZsb2F0
IHJhdGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNlZWtUb1RpbWUoY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRvbGVyYW5jZSwgY29uc3QgTWVkaWFU
aW1lJiBwb3NpdGl2ZVRvbGVyYW5jZSkgPSAwOwogICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBs
b25nIHRvdGFsQnl0ZXMoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8
UGxhdGZvcm1UaW1lUmFuZ2VzPiBwbGF0Zm9ybUJ1ZmZlcmVkVGltZVJhbmdlcygpIGNvbnN0ID0g
MDsKQEAgLTI3Nyw3ICsyNzQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFSZW5kZXJpbmdNb2Rl
IHByZWZlcnJlZFJlbmRlcmluZ01vZGUoKSBjb25zdDsKIAogICAgIGJvb2wgbWV0YURhdGFBdmFp
bGFibGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OkhhdmVN
ZXRhZGF0YTsgfQotICAgIGZsb2F0IHJlcXVlc3RlZFJhdGUoKSBjb25zdCB7IHJldHVybiBtX3Jl
cXVlc3RlZFJhdGU7IH0KKyAgICBkb3VibGUgcmVxdWVzdGVkUmF0ZSgpIGNvbnN0OwogICAgIE1l
ZGlhVGltZSBtYXhUaW1lTG9hZGVkKCkgY29uc3Q7CiAgICAgYm9vbCBpc1JlYWR5Rm9yVmlkZW9T
ZXR1cCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRVcFZpZGVvUmVuZGVyaW5nKCk7CkBA
IC0zMzEsNyArMzI4LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIE1lZGlhVGltZSBtX2NhY2hl
ZER1cmF0aW9uOwogICAgIE1lZGlhVGltZSBtX3JlcG9ydGVkRHVyYXRpb247CiAgICAgbXV0YWJs
ZSBNZWRpYVRpbWUgbV9tYXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzOwotICAg
IGZsb2F0IG1fcmVxdWVzdGVkUmF0ZTsKICAgICBtdXRhYmxlIGludCBtX2RlbGF5Q2FsbGJhY2tz
OwogICAgIGludCBtX2RlbGF5Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZE5vdGlmaWNhdGlvbjsKICAg
ICBib29sIG1fbWFpblRocmVhZENhbGxQZW5kaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggNTkz
ZTM4MmY0Yjc0YzI2YjdhNWRjM2E3OGRlZDYzYzRhZjI4NzI3NS4uYTM0ZjBkNDY3ZGQ4ZDVkZGQ0
M2M0MmQzZTJiYjg3ODMwNTAwMWZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC02NDMsMjQgKzY0
MywyNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpzZXRDbG9zZWRD
YXB0aW9uc1Zpc2libGUoYm9vbCBjbG9zZWRDYXB0aQogICAgIEFWQ0ZQbGF5ZXJTZXRDbG9zZWRD
YXB0aW9uRGlzcGxheUVuYWJsZWQoYXZQbGF5ZXIobV9hdmZXcmFwcGVyKSwgY2xvc2VkQ2FwdGlv
bnNWaXNpYmxlKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6
dXBkYXRlUmF0ZSgpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpzZXRS
YXRlKGZsb2F0IHJhdGUpCiB7Ci0gICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0Y6OnVwZGF0ZVJhdGUoJXApIiwgdGhpcyk7CisgICAgTE9HKE1lZGlhLCAiTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnNldFJhdGUoJXApIC0gcmF0ZTogJWYiLCB0
aGlzLCByYXRlKTsKICAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkgfHwgIWF2UGxheWVyKG1f
YXZmV3JhcHBlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIHNldERlbGF5Q2FsbGJhY2tzKHRy
dWUpOwotICAgIEFWQ0ZQbGF5ZXJTZXRSYXRlKGF2UGxheWVyKG1fYXZmV3JhcHBlciksIHJlcXVl
c3RlZFJhdGUoKSk7CisgICAgQVZDRlBsYXllclNldFJhdGUoYXZQbGF5ZXIobV9hdmZXcmFwcGVy
KSwgcmF0ZSk7CiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwogfQogCi1mbG9hdCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6cmF0ZSgpIGNvbnN0Citkb3VibGUgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJhdGUoKSBjb25zdAogewogICAgIGlmICghbWV0
YURhdGFBdmFpbGFibGUoKSB8fCAhYXZQbGF5ZXIobV9hdmZXcmFwcGVyKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBzZXREZWxheUNhbGxiYWNrcyh0cnVlKTsKLSAgICBmbG9hdCBjdXJyZW50
UmF0ZSA9IEFWQ0ZQbGF5ZXJHZXRSYXRlKGF2UGxheWVyKG1fYXZmV3JhcHBlcikpOworICAgIGRv
dWJsZSBjdXJyZW50UmF0ZSA9IEFWQ0ZQbGF5ZXJHZXRSYXRlKGF2UGxheWVyKG1fYXZmV3JhcHBl
cikpOwogICAgIHNldERlbGF5Q2FsbGJhY2tzKGZhbHNlKTsKIAogICAgIHJldHVybiBjdXJyZW50
UmF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmgKaW5kZXggM2JlNDVlZTk3YzcwZGFlNDU3MTgxMTBjYTZlYzI2NmFj
NDdiNzE5ZS4uYjFjZGNkMDBkOWYwMmEwY2NhNGFjOGIxMzk1ZDllOWE2ZjBmZmI4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGLmgKQEAgLTkwLDggKzkwLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6QXNzZXRTdGF0dXMgYXNzZXRTdGF0dXMoKSBjb25zdDsK
IAogICAgIHZpcnR1YWwgdm9pZCBjaGVja1BsYXlhYmlsaXR5KCk7Ci0gICAgdmlydHVhbCB2b2lk
IHVwZGF0ZVJhdGUoKTsKLSAgICB2aXJ0dWFsIGZsb2F0IHJhdGUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0UmF0ZShmbG9hdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBkb3VibGUgcmF0
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZWVrVG9UaW1lKGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVUb2xlcmFuY2UsIGNvbnN0IE1lZGlh
VGltZSYgcG9zaXRpdmVUb2xlcmFuY2UpOwogICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBsb25n
IHRvdGFsQnl0ZXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9y
bVRpbWVSYW5nZXM+IHBsYXRmb3JtQnVmZmVyZWRUaW1lUmFuZ2VzKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmgKaW5kZXggYjg2MTYzODVkM2JkMjIzNzI2MGY2OTc0NTFhNjM2ZjNhZjQ2NDZh
OS4uNzA0OWNjY2FkNWNmYTE0NTRmOTEyNTM1ODJhMmRkMDlkNDdkNzU2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaApAQCAtMTc3LDggKzE3Nyw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBsb25n
IGFzc2V0RXJyb3JDb2RlKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tQbGF5YWJp
bGl0eSgpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSYXRlKCk7Ci0gICAgdmlydHVhbCBmbG9h
dCByYXRlKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFJhdGVEb3VibGUoZG91YmxlKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSByYXRlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIHNlZWtUb1RpbWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2
ZVRvbGVyYW5jZSwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRvbGVyYW5jZSk7CiAgICAgdmly
dHVhbCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0OwogICAgIHZpcnR1YWwg
c3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gcGxhdGZvcm1CdWZmZXJlZFRpbWVS
YW5nZXMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGQzZDIyMThiZWViOGZh
N2I1MzhhYzMwM2IzNTk3NGU1M2JmNjgwOWUuLmY3NzAwZjY1ZWFkODEyNzM4Mzg5NmY1ZjFkNDVm
MzYyMjBiODU5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMTI1MywxNSArMTI1Mywx
NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldENsb3NlZENh
cHRpb25zVmlzaWJsZShib29sIGNsb3NlZENhcAogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldENsb3NlZENhcHRpb25zVmlzaWJsZSglcCkgLSBz
ZXQgdG8gJXMiLCB0aGlzLCBib29sU3RyaW5nKGNsb3NlZENhcHRpb25zVmlzaWJsZSkpOwogfQog
Ci12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZVJhdGUoKQor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRSYXRlRG91YmxlKGRv
dWJsZSByYXRlKQorCiB7CiAgICAgc2V0RGVsYXlDYWxsYmFja3ModHJ1ZSk7Ci0gICAgbV9jYWNo
ZWRSYXRlID0gcmVxdWVzdGVkUmF0ZSgpOwotICAgIFttX2F2UGxheWVyLmdldCgpIHNldFJhdGU6
cmVxdWVzdGVkUmF0ZSgpXTsKKyAgICBtX2NhY2hlZFJhdGUgPSByYXRlOworICAgIFttX2F2UGxh
eWVyLmdldCgpIHNldFJhdGU6cmF0ZV07CiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwog
fQogCi1mbG9hdCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpyYXRlKCkgY29u
c3QKK2RvdWJsZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpyYXRlKCkgY29u
c3QKIHsKICAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCAxMWI2YTA2YjRkNTI5ZTRiNjQ2MTJmZmMx
ZThiNmFhNTM3NDFkZTZhLi5lNzY3MDQ1MGRjODc1NWIxYmY2Njc4NzQyNmZkYjk0NzgxMWMzMWJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtMTA0LDYgKzEwNCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIHNlZWsoY29uc3QgTWVkaWFUaW1lJikgb3ZlcnJpZGU7CiAg
ICAgCiAgICAgdm9pZCBzZXRSYXRlKGZsb2F0KTsKKyAgICB2aXJ0dWFsIGRvdWJsZSByYXRlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOwogICAgIHZvaWQgc2V0
UHJlc2VydmVzUGl0Y2goYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRl
eCAzNjkxMjA2MzYzNWQ5MjFjMDY3YWRlN2ZmMzQ3ZDY1ZWE2NzUwOTRhLi42YjJiYTQ4ODBiMzk2
YzVjY2JkOGI0MDNhM2I3OTM2YzE2YWE2ZTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
Lm1tCkBAIC03OTIsNiArNzkyLDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnNl
dFJhdGUoZmxvYXQgcmF0ZSkKICAgICAgICAgW21fcXRNb3ZpZS5nZXQoKSBzZXRSYXRlOnJhdGVd
OwogfQogCitkb3VibGUgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnJhdGUoKSBjb25zdAorewor
ICAgIHJldHVybiBtX3F0TW92aWUgPyBbbV9xdE1vdmllIHJhdGVdIDogMDsKK30KKwogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2V0UHJlc2VydmVzUGl0Y2goYm9vbCBwcmVzZXJ2ZXNQ
aXRjaCkKIHsKICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2V0UHJl
c2VydmVzUGl0Y2goJXApIC0gcHJlc2VydmVzUGl0Y2ggJWQiLCB0aGlzLCAoaW50KXByZXNlcnZl
c1BpdGNoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244466</attachid>
            <date>2015-01-12 14:12:56 -0800</date>
            <delta_ts>2015-01-13 12:01:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-140282-20150112141301.patch</filename>
            <type>text/plain</type>
            <size>28495</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4MjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ4NzA0ZmE1ZTc2OGMy
OWNiZmRlYTQ2ODA1OTE1NmIyMmVhY2M1Yy4uMWYwMTlhOGFmZmVjMWNlOWFkZDkwODYyZGI2YmE4
OGZkNmM0ZWIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDE1LTAxLTA4ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIGRlZmF1bHRQbGF5YmFja1Jh
dGUgbm90IHJlc3BlY3RlZCB3aGVuIHNldCBiZWZvcmUgc291cmNlIGlzIGxvYWRlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwMjgyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3ZpZGVv
LWRlZmF1bHRwbGF5YmFja3JhdGUtYmVmb3JlLWxvYWQuaHRtbAorCisgICAgICAgIFdoZW4gdGhl
IEhUTUxNZWRpYUVsZW1lbnQgaXMgbm90aWZpZWQgdGhhdCB0aGUgbWVkaWEgcGxheWVyJ3MgcmF0
ZSBoYXMgY2hhbmdlZCwgaXQgYXNrcworICAgICAgICBmb3IgdGhlIHJhdGUgZnJvbSBNZWRpYVBs
YXllci4gSG93ZXZlciwgTWVkaWFQbGF5ZXIgbmV2ZXIgcmVxdWVzdHMgdGhlIHBsYXliYWNrIHJh
dGUKKyAgICAgICAgZnJvbSB0aGUgdW5kZXJseWluZyBNZWRpYVBsYXllclByaXZhdGU7IGl0IGp1
c3QgcmV0dXJucyB0aGUgbGFzdCByYXRlIHdoaWNoIHdhcyBzZXQsIG9yCisgICAgICAgIDEgaWYg
bm8gcmF0ZSB3YXMgc2V0LiBIVE1MTWVkaWFFbGVtZW50IHRoZW4gc2V0cyBpdHMgcGxheWJhY2tS
YXRlIHRvIHRoZSByZXR1cm5lZAorICAgICAgICB2YWx1ZS4gU28gdGhlIGVuZCByZXN1bHQgaXMg
dGhhdCB0aGUgdmFsdWUgZnJvbSBkZWZhdWx0UGxheWJhY2tSYXRlIGlzIG92ZXJ3cml0dGVuIGJ5
CisgICAgICAgIHRoZSBkZWZhdWx0IHZhbHVlIG9mIDEgaW4gTWVkaWFQbGF5ZXIuCisKKyAgICAg
ICAgUmF0aGVyIHRoYW4gY2FjaGluZyB0aGUgcmVxdWVzdGVkIHJhdGUgaW4gTWVkaWFQbGF5ZXIs
IGNhY2hlIHRoZSB2YWx1ZSByZXBvcnRlZCBieQorICAgICAgICBNZWRpYVBsYXllciBpbnNpZGUg
SFRNTE1lZGlhRWxlbWVudC4gQW5kIGluc3RlYWQgb2YgcmV0dXJuaW5nIHRoZSByZXBvcnRlZCBw
bGF5YmFjaworICAgICAgICByYXRlIGZyb20gSFRNTE1lZGlhRWxlbWVudC5wbGF5YmFja1JhdGUs
IGp1c3QgcmV0dXJuIHRoZSBsYXN0IHZhbHVlIHNldC4gVGhlIHJlcG9ydGVkCisgICAgICAgIHZh
bHVlIGlzIHN0aWxsIHVzZWQgZm9yIGVzdGltYXRpbmcgdGhlIGN1cnJlbnQgdGltZSBkdXJpbmcg
cGxheWJhY2suCisKKyAgICAgICAgQWRkIE1lZGlhUGxheWVyUHJpdmF0ZSBpbnRlcmZhY2UgbWV0
aG9kIHRvIHJldHVybiB0aGUgY3VycmVudCBwbGF5YmFjayByYXRlLgorCisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnQ6OkhUTUxNZWRpYUVsZW1lbnQpOiBJbml0aWFsaXplIG1fcmVwb3J0ZWRQbGF5YmFja1JhdGUu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjplZmZlY3RpdmVQbGF5YmFja1Jh
dGUpOiBSZXR1cm4gbV9yZXBvcnRlZFBsYXliYWNrUmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OnJlcXVlc3RlZFBsYXliYWNrUmF0ZSk6IFJldHVybiBtX3BsYXliYWNr
UmF0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnVwZGF0ZVBsYXliYWNr
UmF0ZSk6IFVzZSByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSBpbnN0ZWFkCisgICAgICAgICAgICBv
ZiBlZmZlY3RpdmVQbGF5YmFja1JhdGUoKTsKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OmVuZGVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
OjpwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6ZW5kZWRQbGF5YmFjayk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlUGxheVN0YXRlKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclRpbWVDaGFuZ2VkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJhdGVDaGFu
Z2VkKTogU2V0IG1fcmVwb3J0ZWRQbGF5YmFja1JhdGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjptZWRpYVBsYXllclJlcXVlc3RlZFBsYXliYWNrUmF0ZSk6IFJldHVybgor
ICAgICAgICAgICAgcmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgaWYgcGxheWluZyBhbmQgMCBpZiBu
b3QuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXI6Ok1lZGlhUGxheWVyKTogUmVtb3ZlZCBtX3JhdGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllcjo6cmF0ZSk6IFBhc3MgdG8gTWVkaWFQbGF5ZXJQcml2YXRlLgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFQbGF5ZXI6OnNldFJhdGUpOiBEbyBub3QgY2FjaGUgdGhlIHJhdGUuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6cmVxdWVzdGVkUmF0ZSk6IEFkZGVkOyBhc2sgSFRN
TE1lZGlhRWxlbWVudC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5o
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJDbGllbnQ6Om1lZGlhUGxheWVyUmVxdWVz
dGVkUGxheWJhY2tSYXRlKTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvTWVk
aWFQbGF5ZXJQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U6OnJhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6TWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uKToKKyAgICAgICAgICAgIERvIG5vdCBjYWNoZSB0aGUgcmVxdWVzdGVkIHJh
dGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnJl
cXVlc3RlZFJhdGUpOiBQYXNzIHRvIE1lZGlhUGxheWVyLgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRSYXRlKTogRGVsZXRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b246OnJlcXVlc3RlZFJhdGUpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6c2V0UmF0
ZSk6IFJlbmFtZWQgZnJvbSB1cGRhdGVSYXRlLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJhdGUpOiBGZXRjaCB0aGUgcmF0ZSBmcm9tIHRoZSBw
bGF5ZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRSYXRlRG91YmxlKTogUmVuYW1lZCBmcm9t
IHVwZGF0ZVJhdGUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpyYXRlKTogRmV0Y2ggdGhlIHJhdGUgZnJvbSB0aGUgcGxheWVyLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpyYXRlKTogRmV0Y2gg
dGhlIHJhdGUgZnJvbSB0aGUgUVRNb3ZpZS4KKwogMjAxNS0wMS0xMiAgTXlsZXMgQy4gTWF4Zmll
bGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IHRhcmdldHRpbmcgdGhl
IFNWRy0+T1RGIGZvbnQgY29udmVydGVyIHdpdGggRU5BQkxFKFNWR19PVEZfQ09OVkVSVEVSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggODdiMzYxMGQyYTAw
MTIxZjAxZDM2M2E4MjZjMjlhOWQzMzEzZDQ5Mi4uNDg0ZDY0YmVlNmE3MzhkZTcwYjE1ZTNjZThj
Mjc4MzVlODM2MDhiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CkBAIC0yNjIsOCArMjYyLDkgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fc2Vl
a1RpbWVyKCp0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6c2Vla1RpbWVyRmlyZWQpCiAgICAgLCBt
X3BsYXllZFRpbWVSYW5nZXMoKQogICAgICwgbV9hc3luY0V2ZW50UXVldWUoKnRoaXMpCi0gICAg
LCBtX3BsYXliYWNrUmF0ZSgxLjBmKQotICAgICwgbV9kZWZhdWx0UGxheWJhY2tSYXRlKDEuMGYp
CisgICAgLCBtX3JlcXVlc3RlZFBsYXliYWNrUmF0ZSgxKQorICAgICwgbV9yZXBvcnRlZFBsYXli
YWNrUmF0ZSgxKQorICAgICwgbV9kZWZhdWx0UGxheWJhY2tSYXRlKDEpCiAgICAgLCBtX3dlYmtp
dFByZXNlcnZlc1BpdGNoKHRydWUpCiAgICAgLCBtX25ldHdvcmtTdGF0ZShORVRXT1JLX0VNUFRZ
KQogICAgICwgbV9yZWFkeVN0YXRlKEhBVkVfTk9USElORykKQEAgLTI2NTMsMTIgKzI2NTQsMTcg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXREZWZhdWx0UGxheWJhY2tSYXRlKGRvdWJsZSBy
YXRlKQogCiBkb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6ZWZmZWN0aXZlUGxheWJhY2tSYXRlKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9tZWRpYUNvbnRyb2xsZXIgPyBtX21lZGlhQ29udHJvbGxl
ci0+cGxheWJhY2tSYXRlKCkgOiBtX3BsYXliYWNrUmF0ZTsKKyAgICByZXR1cm4gbV9tZWRpYUNv
bnRyb2xsZXIgPyBtX21lZGlhQ29udHJvbGxlci0+cGxheWJhY2tSYXRlKCkgOiBtX3JlcG9ydGVk
UGxheWJhY2tSYXRlOworfQorCitkb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6cmVxdWVzdGVkUGxh
eWJhY2tSYXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tZWRpYUNvbnRyb2xsZXIgPyBtX21l
ZGlhQ29udHJvbGxlci0+cGxheWJhY2tSYXRlKCkgOiBtX3JlcXVlc3RlZFBsYXliYWNrUmF0ZTsK
IH0KIAogZG91YmxlIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXliYWNrUmF0ZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fcGxheWJhY2tSYXRlOworICAgIHJldHVybiBtX3JlcXVlc3RlZFBsYXliYWNr
UmF0ZTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRQbGF5YmFja1JhdGUoZG91Ymxl
IHJhdGUpCkBAIC0yNjY4LDggKzI2NzQsOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFBs
YXliYWNrUmF0ZShkb3VibGUgcmF0ZSkKICAgICBpZiAobV9wbGF5ZXIgJiYgcG90ZW50aWFsbHlQ
bGF5aW5nKCkgJiYgbV9wbGF5ZXItPnJhdGUoKSAhPSByYXRlICYmICFtX21lZGlhQ29udHJvbGxl
cikKICAgICAgICAgbV9wbGF5ZXItPnNldFJhdGUocmF0ZSk7CiAKLSAgICBpZiAobV9wbGF5YmFj
a1JhdGUgIT0gcmF0ZSkgewotICAgICAgICBtX3BsYXliYWNrUmF0ZSA9IHJhdGU7CisgICAgaWYg
KG1fcmVxdWVzdGVkUGxheWJhY2tSYXRlICE9IHJhdGUpIHsKKyAgICAgICAgbV9yZXBvcnRlZFBs
YXliYWNrUmF0ZSA9IG1fcmVxdWVzdGVkUGxheWJhY2tSYXRlID0gcmF0ZTsKICAgICAgICAgaW52
YWxpZGF0ZUNhY2hlZFRpbWUoKTsKICAgICAgICAgc2NoZWR1bGVFdmVudChldmVudE5hbWVzKCku
cmF0ZWNoYW5nZUV2ZW50KTsKICAgICB9CkBAIC0yNjc3LDkgKzI2ODMsOSBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNldFBsYXliYWNrUmF0ZShkb3VibGUgcmF0ZSkKIAogdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojp1cGRhdGVQbGF5YmFja1JhdGUoKQogewotICAgIGRvdWJsZSBlZmZlY3RpdmVS
YXRlID0gZWZmZWN0aXZlUGxheWJhY2tSYXRlKCk7Ci0gICAgaWYgKG1fcGxheWVyICYmIHBvdGVu
dGlhbGx5UGxheWluZygpICYmIG1fcGxheWVyLT5yYXRlKCkgIT0gZWZmZWN0aXZlUmF0ZSkKLSAg
ICAgICAgbV9wbGF5ZXItPnNldFJhdGUoZWZmZWN0aXZlUmF0ZSk7CisgICAgZG91YmxlIHJlcXVl
c3RlZFJhdGUgPSByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKTsKKyAgICBpZiAobV9wbGF5ZXIgJiYg
cG90ZW50aWFsbHlQbGF5aW5nKCkgJiYgbV9wbGF5ZXItPnJhdGUoKSAhPSByZXF1ZXN0ZWRSYXRl
KQorICAgICAgICBtX3BsYXllci0+c2V0UmF0ZShyZXF1ZXN0ZWRSYXRlKTsKIH0KIAogYm9vbCBI
VE1MTWVkaWFFbGVtZW50Ojp3ZWJraXRQcmVzZXJ2ZXNQaXRjaCgpIGNvbnN0CkBAIC0yNzA0LDcg
KzI3MTAsNyBAQCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmVuZGVkKCkgY29uc3QKICAgICAvLyA0
LjguMTAuOCBQbGF5aW5nIHRoZSBtZWRpYSByZXNvdXJjZQogICAgIC8vIFRoZSBlbmRlZCBhdHRy
aWJ1dGUgbXVzdCByZXR1cm4gdHJ1ZSBpZiB0aGUgbWVkaWEgZWxlbWVudCBoYXMgZW5kZWQgCiAg
ICAgLy8gcGxheWJhY2sgYW5kIHRoZSBkaXJlY3Rpb24gb2YgcGxheWJhY2sgaXMgZm9yd2FyZHMs
IGFuZCBmYWxzZSBvdGhlcndpc2UuCi0gICAgcmV0dXJuIGVuZGVkUGxheWJhY2soKSAmJiBlZmZl
Y3RpdmVQbGF5YmFja1JhdGUoKSA+IDA7CisgICAgcmV0dXJuIGVuZGVkUGxheWJhY2soKSAmJiBy
ZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSA+IDA7CiB9CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6
YXV0b3BsYXkoKSBjb25zdApAQCAtMzE0MSw3ICszMTQ3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZCgpCiB7CiAgICAgQVNTRVJUKG1fcGxheWVy
KTsKIAotICAgIGlmIChtX2ZyYWdtZW50RW5kVGltZS5pc1ZhbGlkKCkgJiYgY3VycmVudE1lZGlh
VGltZSgpID49IG1fZnJhZ21lbnRFbmRUaW1lICYmIGVmZmVjdGl2ZVBsYXliYWNrUmF0ZSgpID4g
MCkgeworICAgIGlmIChtX2ZyYWdtZW50RW5kVGltZS5pc1ZhbGlkKCkgJiYgY3VycmVudE1lZGlh
VGltZSgpID49IG1fZnJhZ21lbnRFbmRUaW1lICYmIHJlcXVlc3RlZFBsYXliYWNrUmF0ZSgpID4g
MCkgewogICAgICAgICBtX2ZyYWdtZW50RW5kVGltZSA9IE1lZGlhVGltZTo6aW52YWxpZFRpbWUo
KTsKICAgICAgICAgaWYgKCFtX21lZGlhQ29udHJvbGxlciAmJiAhbV9wYXVzZWQpIHsKICAgICAg
ICAgICAgIC8vIGNoYW5nZXMgcGF1c2VkIHRvIHRydWUgYW5kIGZpcmVzIGEgc2ltcGxlIGV2ZW50
IG5hbWVkIHBhdXNlIGF0IHRoZSBtZWRpYSBlbGVtZW50LgpAQCAtMzE1MSw3ICszMTU3LDcgQEAg
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZCgpCiAgICAg
CiAgICAgc2NoZWR1bGVUaW1ldXBkYXRlRXZlbnQodHJ1ZSk7CiAKLSAgICBpZiAoIWVmZmVjdGl2
ZVBsYXliYWNrUmF0ZSgpKQorICAgIGlmICghcmVxdWVzdGVkUGxheWJhY2tSYXRlKCkpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmICghbV9wYXVzZWQgJiYgaGFzTWVkaWFDb250cm9scygpKQpA
QCAtNDEwNyw3ICs0MTEzLDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllclRp
bWVDaGFuZ2VkKE1lZGlhUGxheWVyKikKIAogICAgIE1lZGlhVGltZSBub3cgPSBjdXJyZW50TWVk
aWFUaW1lKCk7CiAgICAgTWVkaWFUaW1lIGR1ciA9IGR1cmF0aW9uTWVkaWFUaW1lKCk7Ci0gICAg
ZG91YmxlIHBsYXliYWNrUmF0ZSA9IGVmZmVjdGl2ZVBsYXliYWNrUmF0ZSgpOworICAgIGRvdWJs
ZSBwbGF5YmFja1JhdGUgPSByZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKTsKICAgICAKICAgICAvLyBX
aGVuIHRoZSBjdXJyZW50IHBsYXliYWNrIHBvc2l0aW9uIHJlYWNoZXMgdGhlIGVuZCBvZiB0aGUg
bWVkaWEgcmVzb3VyY2UgdGhlbiB0aGUgdXNlciBhZ2VudCBtdXN0IGZvbGxvdyB0aGVzZSBzdGVw
czoKICAgICBpZiAoZHVyLmlzVmFsaWQoKSAmJiBkdXIpIHsKQEAgLTQxOTUsMTMgKzQyMDEsMTQg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckR1cmF0aW9uQ2hhbmdlZChNZWRp
YVBsYXllciogcGxheWVyKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyUmF0
ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogewotICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyUmF0ZUNoYW5nZWQoJXApIiwgdGhpcyk7Ci0KICAgICBiZWdpblByb2Nl
c3NpbmdNZWRpYVBsYXllckNhbGxiYWNrKCk7CiAKICAgICAvLyBTdGFzaCB0aGUgcmF0ZSBpbiBj
YXNlIHRoZSBvbmUgd2UgdHJpZWQgdG8gc2V0IGlzbid0IHdoYXQgdGhlIGVuZ2luZSBpcwogICAg
IC8vIHVzaW5nIChlZy4gaXQgY2FuJ3QgaGFuZGxlIHRoZSByYXRlIHdlIHNldCkKLSAgICBtX3Bs
YXliYWNrUmF0ZSA9IG1fcGxheWVyLT5yYXRlKCk7CisgICAgbV9yZXBvcnRlZFBsYXliYWNrUmF0
ZSA9IG1fcGxheWVyLT5yYXRlKCk7CisKKyAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50
OjptZWRpYVBsYXllclJhdGVDaGFuZ2VkKCVwKSAtIHJhdGU6ICVsZiIsIHRoaXMsIG1fcmVwb3J0
ZWRQbGF5YmFja1JhdGUpOworCiAgICAgaWYgKG1fcGxheWluZykKICAgICAgICAgaW52YWxpZGF0
ZUNhY2hlZFRpbWUoKTsKIApAQCAtNDQzMywxMiArNDQ0MCwxMiBAQCBib29sIEhUTUxNZWRpYUVs
ZW1lbnQ6OmVuZGVkUGxheWJhY2soKSBjb25zdAogICAgIC8vIG9mIHBsYXliYWNrIGlzIGZvcndh
cmRzLCBFaXRoZXIgdGhlIG1lZGlhIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhIGxvb3AgYXR0cmli
dXRlIHNwZWNpZmllZCwKICAgICAvLyBvciB0aGUgbWVkaWEgZWxlbWVudCBoYXMgYSBjdXJyZW50
IG1lZGlhIGNvbnRyb2xsZXIuCiAgICAgTWVkaWFUaW1lIG5vdyA9IGN1cnJlbnRNZWRpYVRpbWUo
KTsKLSAgICBpZiAoZWZmZWN0aXZlUGxheWJhY2tSYXRlKCkgPiAwKQorICAgIGlmIChyZXF1ZXN0
ZWRQbGF5YmFja1JhdGUoKSA+IDApCiAgICAgICAgIHJldHVybiBkdXIgPiBNZWRpYVRpbWU6Onpl
cm9UaW1lKCkgJiYgbm93ID49IGR1ciAmJiAoIWxvb3AoKSB8fCBtX21lZGlhQ29udHJvbGxlcik7
CiAKICAgICAvLyBvciB0aGUgY3VycmVudCBwbGF5YmFjayBwb3NpdGlvbiBpcyB0aGUgZWFybGll
c3QgcG9zc2libGUgcG9zaXRpb24gYW5kIHRoZSBkaXJlY3Rpb24gCiAgICAgLy8gb2YgcGxheWJh
Y2sgaXMgYmFja3dhcmRzCi0gICAgaWYgKGVmZmVjdGl2ZVBsYXliYWNrUmF0ZSgpIDwgMCkKKyAg
ICBpZiAocmVxdWVzdGVkUGxheWJhY2tSYXRlKCkgPCAwKQogICAgICAgICByZXR1cm4gbm93IDw9
IE1lZGlhVGltZTo6emVyb1RpbWUoKTsKIAogICAgIHJldHVybiBmYWxzZTsKQEAgLTQ1MzksNyAr
NDU0Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6dXBkYXRlUGxheVN0YXRlKCkKIAogICAg
ICAgICAgICAgLy8gU2V0IHJhdGUsIG11dGVkIGJlZm9yZSBjYWxsaW5nIHBsYXkgaW4gY2FzZSB0
aGV5IHdlcmUgc2V0IGJlZm9yZSB0aGUgbWVkaWEgZW5naW5lIHdhcyBzZXR1cC4KICAgICAgICAg
ICAgIC8vIFRoZSBtZWRpYSBlbmdpbmUgc2hvdWxkIGp1c3Qgc3Rhc2ggdGhlIHJhdGUgYW5kIG11
dGVkIHZhbHVlcyBzaW5jZSBpdCBpc24ndCBhbHJlYWR5IHBsYXlpbmcuCi0gICAgICAgICAgICBt
X3BsYXllci0+c2V0UmF0ZShlZmZlY3RpdmVQbGF5YmFja1JhdGUoKSk7CisgICAgICAgICAgICBt
X3BsYXllci0+c2V0UmF0ZShyZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSk7CiAgICAgICAgICAgICBt
X3BsYXllci0+c2V0TXV0ZWQoZWZmZWN0aXZlTXV0ZWQoKSk7CiAKICAgICAgICAgICAgIGlmICht
X2ZpcnN0VGltZVBsYXlpbmcpIHsKQEAgLTU3OTAsNiArNTc5NywxMSBAQCB2b2lkIEhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhUGxheWVyRW5naW5lRmFpbGVkVG9Mb2FkKCkgY29uc3QKICAgICBkaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC0+bG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoVmFsdWUoRGlhZ25v
c3RpY0xvZ2dpbmdLZXlzOjplbmdpbmVGYWlsZWRUb0xvYWRLZXkoKSwgZW5naW5lLCBTdHJpbmc6
Om51bWJlcihtX3BsYXllci0+cGxhdGZvcm1FcnJvckNvZGUoKSkpOwogfQogCitkb3VibGUgSFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSBjb25zdAor
eworICAgIHJldHVybiBwb3RlbnRpYWxseVBsYXlpbmcoKSA/IHJlcXVlc3RlZFBsYXliYWNrUmF0
ZSgpIDogMDsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVCZWhhdmlvcnNSZXN0
cmljdGlvbnNBZnRlckZpcnN0VXNlckdlc3R1cmUoKQogewogICAgIG1fbWVkaWFTZXNzaW9uLT5y
ZW1vdmVCZWhhdmlvclJlc3RyaWN0aW9uKEhUTUxNZWRpYVNlc3Npb246OlJlcXVpcmVVc2VyR2Vz
dHVyZUZvckxvYWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCBi
MTlmMGNiMGRlZjg2NjZkYTZlZDRjYjYxODUwMGZlN2NmZDU3ZmY1Li40M2IzNTgyZTY4NjRjYTIw
YjJjNDYxMWJmMWU3ZTEwOWVmYmFmZWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaApAQCAtNTMyLDYgKzUzMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXROZXR3b3Jr
U3RhdGUoTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSk7CiAKICAgICBkb3VibGUgZWZmZWN0aXZl
UGxheWJhY2tSYXRlKCkgY29uc3Q7CisgICAgZG91YmxlIHJlcXVlc3RlZFBsYXliYWNrUmF0ZSgp
IGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIG1lZGlhUGxheWVyTmV0d29ya1N0YXRlQ2hhbmdl
ZChNZWRpYVBsYXllciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllclJl
YWR5U3RhdGVDaGFuZ2VkKE1lZGlhUGxheWVyKikgb3ZlcnJpZGU7CkBAIC02MDYsNiArNjA3LDgg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgbWVkaWFQbGF5ZXJJc0luTWVkaWFEb2N1bWVu
dCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXllckVu
Z2luZUZhaWxlZFRvTG9hZCgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogCisgICAgdmlydHVhbCBk
b3VibGUgbWVkaWFQbGF5ZXJSZXF1ZXN0ZWRQbGF5YmFja1JhdGUoKSBjb25zdCBvdmVycmlkZSBm
aW5hbDsKKwogICAgIHZvaWQgbG9hZFRpbWVyRmlyZWQoKTsKICAgICB2b2lkIHByb2dyZXNzRXZl
bnRUaW1lckZpcmVkKCk7CiAgICAgdm9pZCBwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZCgpOwpA
QCAtNzQ1LDcgKzc0OCw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IG1fcGxh
eWVkVGltZVJhbmdlczsKICAgICBHZW5lcmljRXZlbnRRdWV1ZSBtX2FzeW5jRXZlbnRRdWV1ZTsK
IAotICAgIGRvdWJsZSBtX3BsYXliYWNrUmF0ZTsKKyAgICBkb3VibGUgbV9yZXF1ZXN0ZWRQbGF5
YmFja1JhdGU7CisgICAgZG91YmxlIG1fcmVwb3J0ZWRQbGF5YmFja1JhdGU7CiAgICAgZG91Ymxl
IG1fZGVmYXVsdFBsYXliYWNrUmF0ZTsKICAgICBib29sIG1fd2Via2l0UHJlc2VydmVzUGl0Y2g7
CiAgICAgTmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IGYxMTM2NWUxM2QzYTUyNjdi
YzY1ZWFhNTdjZDhhZDYwNGZkZTk2YmQuLmMxNDQ3MmU2YzY1NjllZjFiZWM3NzcxM2IxYjE0NTBj
ZDQ4NjdhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRp
YVBsYXllci5jcHAKQEAgLTMxMiw3ICszMTIsNiBAQCBNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIo
TWVkaWFQbGF5ZXJDbGllbnQmIGNsaWVudCkKICAgICAsIG1fY3VycmVudE1lZGlhRW5naW5lKDAp
CiAgICAgLCBtX3ByZWxvYWQoQXV0bykKICAgICAsIG1fdmlzaWJsZShmYWxzZSkKLSAgICAsIG1f
cmF0ZSgxLjBmKQogICAgICwgbV92b2x1bWUoMS4wZikKICAgICAsIG1fbXV0ZWQoZmFsc2UpCiAg
ICAgLCBtX3ByZXNlcnZlc1BpdGNoKHRydWUpCkBAIC02NzksMTUgKzY3OCwxOSBAQCB2b2lkIE1l
ZGlhUGxheWVyOjpzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCBjbG9zZWRDYXB0aW9uc1Zp
c2libGUpCiAKIGRvdWJsZSBNZWRpYVBsYXllcjo6cmF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IG1fcmF0ZTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5yYXRlKCk7CiB9CiAKIHZvaWQgTWVkaWFQ
bGF5ZXI6OnNldFJhdGUoZG91YmxlIHJhdGUpCiB7Ci0gICAgbV9yYXRlID0gcmF0ZTsKICAgICBt
X3ByaXZhdGUtPnNldFJhdGVEb3VibGUocmF0ZSk7CiB9CiAKK2RvdWJsZSBNZWRpYVBsYXllcjo6
cmVxdWVzdGVkUmF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY2xpZW50Lm1lZGlhUGxheWVy
UmVxdWVzdGVkUGxheWJhY2tSYXRlKCk7Cit9CisKIGJvb2wgTWVkaWFQbGF5ZXI6OnByZXNlcnZl
c1BpdGNoKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcmVzZXJ2ZXNQaXRjaDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCmluZGV4IDQzZDk2NTMx
YzJmNzNjZTMxZGQ1ZWU2ZGU1MmYzZDMxYzFhZDQ1OTguLjNiOTQ2M2VjNzM0NmQzNWI1OTA5NjM0
OWM0ZGFjN2U4OTk1NjEyZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvTWVkaWFQbGF5ZXIuaApAQCAtMjYyLDYgKzI2Miw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgYm9vbCBtZWRpYVBsYXllcklzSW5NZWRpYURvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFQbGF5ZXJFbmdpbmVGYWlsZWRUb0xvYWQoKSBj
b25zdCB7IH0KKworICAgIHZpcnR1YWwgZG91YmxlIG1lZGlhUGxheWVyUmVxdWVzdGVkUGxheWJh
Y2tSYXRlKCkgY29uc3QgeyByZXR1cm4gMDsgfQogfTsKIAogY2xhc3MgTWVkaWFQbGF5ZXJTdXBw
b3J0c1R5cGVDbGllbnQgewpAQCAtMzY0LDYgKzM2Niw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJs
ZSByYXRlKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSYXRlKGRvdWJsZSk7CisgICAgZG91YmxlIHJl
cXVlc3RlZFJhdGUoKSBjb25zdDsKIAogICAgIGJvb2wgcHJlc2VydmVzUGl0Y2goKSBjb25zdDsK
ICAgICB2b2lkIHNldFByZXNlcnZlc1BpdGNoKGJvb2wpOwpAQCAtNTk1LDcgKzU5OCw2IEBAIHBy
aXZhdGU6CiAgICAgSW50U2l6ZSBtX3NpemU7CiAgICAgUHJlbG9hZCBtX3ByZWxvYWQ7CiAgICAg
Ym9vbCBtX3Zpc2libGU7Ci0gICAgZG91YmxlIG1fcmF0ZTsKICAgICBkb3VibGUgbV92b2x1bWU7
CiAgICAgYm9vbCBtX211dGVkOwogICAgIGJvb2wgbV9wcmVzZXJ2ZXNQaXRjaDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgK
aW5kZXggMTYzNjFlOGMzMzkxMGFiZDkyMTAxMzRkNjI5OWQzOGMzODU5NDg1MS4uNDRmOGY2YzI5
ZjgwZjVjMDM3NWE2YWEyYmVkNTNmMjY5OGM4YTU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTEwMiw2ICsx
MDIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmF0ZShmbG9hdCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIHNldFJhdGVEb3VibGUoZG91YmxlIHJhdGUpIHsgc2V0UmF0ZShyYXRl
KTsgfQorICAgIHZpcnR1YWwgZG91YmxlIHJhdGUoKSBjb25zdCB7IHJldHVybiAwOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0UHJlc2VydmVzUGl0Y2goYm9vbCkgeyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKaW5kZXgg
ZjhjNTUxODVmOWFmMGI1MmY0NzA5NDMyZDFiNjVjOTBmMGJkNzAzMC4uNGQ5Njg4NmI1NGFkOTQ0
MmUzZjFmZWZkMjM2NGFmMzQ0N2EyY2U5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5jcHAKQEAgLTYwLDcgKzYwLDYgQEAgTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24oTWVkaWFQbGF5ZXIqIHBsYXkKICAgICAsIG1fY2FjaGVkRHVyYXRpb24oTWVkaWFUaW1lOjpp
bnZhbGlkVGltZSgpKQogICAgICwgbV9yZXBvcnRlZER1cmF0aW9uKE1lZGlhVGltZTo6aW52YWxp
ZFRpbWUoKSkKICAgICAsIG1fbWF4VGltZUxvYWRlZEF0TGFzdERpZExvYWRpbmdQcm9ncmVzcyhN
ZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpCi0gICAgLCBtX3JlcXVlc3RlZFJhdGUoMSkKICAgICAs
IG1fZGVsYXlDYWxsYmFja3MoMCkKICAgICAsIG1fZGVsYXlDaGFyYWN0ZXJpc3RpY3NDaGFuZ2Vk
Tm90aWZpY2F0aW9uKDApCiAgICAgLCBtX21haW5UaHJlYWRDYWxsUGVuZGluZyhmYWxzZSkKQEAg
LTI5MCwxNCArMjg5LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb246OnNl
ZWtXaXRoVG9sZXJhbmNlKGNvbnN0IE1lZGlhVGltZSYgbWVkaWFUaW0KICAgICBzZWVrVG9UaW1l
KHRpbWUsIG5lZ2F0aXZlVG9sZXJhbmNlLCBwb3NpdGl2ZVRvbGVyYW5jZSk7CiB9CiAKLXZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRSYXRlKGZsb2F0IHJhdGUpCi17Ci0g
ICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uOjpzZXRSYXRlKCVw
KSAtIHNldGluZyB0byAlZiIsIHRoaXMsIHJhdGUpOwotICAgIG1fcmVxdWVzdGVkUmF0ZSA9IHJh
dGU7Ci0KLSAgICB1cGRhdGVSYXRlKCk7Ci19Ci0KIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uOjpwYXVzZWQoKSBjb25zdAogewogICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUo
KSkKQEAgLTQxOSw2ICs0MTAsMTEgQEAgTWVkaWFUaW1lIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbjo6bWluTWVkaWFUaW1lU2Vla2FibGUoKSBjb25zdAogICAgIHJldHVybiBtX2NhY2hl
ZE1pblRpbWVTZWVrYWJsZTsKIH0KIAorZG91YmxlIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbjo6cmVxdWVzdGVkUmF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGxheWVyLT5yZXF1
ZXN0ZWRSYXRlKCk7Cit9CisKIE1lZGlhVGltZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b246Om1heFRpbWVMb2FkZWQoKSBjb25zdAogewogICAgIGlmICghbWV0YURhdGFBdmFpbGFibGUo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaAppbmRleCA4MGUxNDY3Y2FjMTA1OGMwNWU5Zjc5MzQ4ZWRmYmZmOGI2YjI3MmZiLi43YjU1
ODQ2NWJmM2NiMTFiMmMyYzJiNWRkOTdmODUxNjMxZjNkMTNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRl
QVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBAIC0xNzEsNyArMTcx
LDYgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzZWVrKGNvbnN0IE1lZGlhVGltZSYp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZWVrV2l0aFRvbGVyYW5jZShjb25zdCBNZWRp
YVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2Vla2luZygpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRSYXRlKGZsb2F0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcGF1c2VkKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZvbHVtZShmbG9hdCkgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBoYXNDbG9zZWRDYXB0aW9ucygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fY2FjaGVkSGFzQ2FwdGlvbnM7IH0KQEAgLTIzMiw4ICsyMzEsNiBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtUGxheSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGxh
dGZvcm1QYXVzZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tQbGF5YWJpbGl0eSgpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmF0ZSgpID0gMDsKLSAgICB2aXJ0dWFsIGZsb2F0
IHJhdGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNlZWtUb1RpbWUoY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2ZVRvbGVyYW5jZSwgY29uc3QgTWVkaWFU
aW1lJiBwb3NpdGl2ZVRvbGVyYW5jZSkgPSAwOwogICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBs
b25nIHRvdGFsQnl0ZXMoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8
UGxhdGZvcm1UaW1lUmFuZ2VzPiBwbGF0Zm9ybUJ1ZmZlcmVkVGltZVJhbmdlcygpIGNvbnN0ID0g
MDsKQEAgLTI3Nyw3ICsyNzQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFSZW5kZXJpbmdNb2Rl
IHByZWZlcnJlZFJlbmRlcmluZ01vZGUoKSBjb25zdDsKIAogICAgIGJvb2wgbWV0YURhdGFBdmFp
bGFibGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGUgPj0gTWVkaWFQbGF5ZXI6OkhhdmVN
ZXRhZGF0YTsgfQotICAgIGZsb2F0IHJlcXVlc3RlZFJhdGUoKSBjb25zdCB7IHJldHVybiBtX3Jl
cXVlc3RlZFJhdGU7IH0KKyAgICBkb3VibGUgcmVxdWVzdGVkUmF0ZSgpIGNvbnN0OwogICAgIE1l
ZGlhVGltZSBtYXhUaW1lTG9hZGVkKCkgY29uc3Q7CiAgICAgYm9vbCBpc1JlYWR5Rm9yVmlkZW9T
ZXR1cCgpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRVcFZpZGVvUmVuZGVyaW5nKCk7CkBA
IC0zMzEsNyArMzI4LDYgQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIE1lZGlhVGltZSBtX2NhY2hl
ZER1cmF0aW9uOwogICAgIE1lZGlhVGltZSBtX3JlcG9ydGVkRHVyYXRpb247CiAgICAgbXV0YWJs
ZSBNZWRpYVRpbWUgbV9tYXhUaW1lTG9hZGVkQXRMYXN0RGlkTG9hZGluZ1Byb2dyZXNzOwotICAg
IGZsb2F0IG1fcmVxdWVzdGVkUmF0ZTsKICAgICBtdXRhYmxlIGludCBtX2RlbGF5Q2FsbGJhY2tz
OwogICAgIGludCBtX2RlbGF5Q2hhcmFjdGVyaXN0aWNzQ2hhbmdlZE5vdGlmaWNhdGlvbjsKICAg
ICBib29sIG1fbWFpblRocmVhZENhbGxQZW5kaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5jcHAKaW5kZXggNTkz
ZTM4MmY0Yjc0YzI2YjdhNWRjM2E3OGRlZDYzYzRhZjI4NzI3NS4uYTM0ZjBkNDY3ZGQ4ZDVkZGQ0
M2M0MmQzZTJiYjg3ODMwNTAwMWZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bkNGLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vY2YvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0YuY3BwCkBAIC02NDMsMjQgKzY0
MywyNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpzZXRDbG9zZWRD
YXB0aW9uc1Zpc2libGUoYm9vbCBjbG9zZWRDYXB0aQogICAgIEFWQ0ZQbGF5ZXJTZXRDbG9zZWRD
YXB0aW9uRGlzcGxheUVuYWJsZWQoYXZQbGF5ZXIobV9hdmZXcmFwcGVyKSwgY2xvc2VkQ2FwdGlv
bnNWaXNpYmxlKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6
dXBkYXRlUmF0ZSgpCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGOjpzZXRS
YXRlKGZsb2F0IHJhdGUpCiB7Ci0gICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uQ0Y6OnVwZGF0ZVJhdGUoJXApIiwgdGhpcyk7CisgICAgTE9HKE1lZGlhLCAiTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnNldFJhdGUoJXApIC0gcmF0ZTogJWYiLCB0
aGlzLCByYXRlKTsKICAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkgfHwgIWF2UGxheWVyKG1f
YXZmV3JhcHBlcikpCiAgICAgICAgIHJldHVybjsKIAogICAgIHNldERlbGF5Q2FsbGJhY2tzKHRy
dWUpOwotICAgIEFWQ0ZQbGF5ZXJTZXRSYXRlKGF2UGxheWVyKG1fYXZmV3JhcHBlciksIHJlcXVl
c3RlZFJhdGUoKSk7CisgICAgQVZDRlBsYXllclNldFJhdGUoYXZQbGF5ZXIobV9hdmZXcmFwcGVy
KSwgcmF0ZSk7CiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwogfQogCi1mbG9hdCBNZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRjo6cmF0ZSgpIGNvbnN0Citkb3VibGUgTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uQ0Y6OnJhdGUoKSBjb25zdAogewogICAgIGlmICghbWV0
YURhdGFBdmFpbGFibGUoKSB8fCAhYXZQbGF5ZXIobV9hdmZXcmFwcGVyKSkKICAgICAgICAgcmV0
dXJuIDA7CiAKICAgICBzZXREZWxheUNhbGxiYWNrcyh0cnVlKTsKLSAgICBmbG9hdCBjdXJyZW50
UmF0ZSA9IEFWQ0ZQbGF5ZXJHZXRSYXRlKGF2UGxheWVyKG1fYXZmV3JhcHBlcikpOworICAgIGRv
dWJsZSBjdXJyZW50UmF0ZSA9IEFWQ0ZQbGF5ZXJHZXRSYXRlKGF2UGxheWVyKG1fYXZmV3JhcHBl
cikpOwogICAgIHNldERlbGF5Q2FsbGJhY2tzKGZhbHNlKTsKIAogICAgIHJldHVybiBjdXJyZW50
UmF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9jZi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25DRi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbkNGLmgKaW5kZXggM2JlNDVlZTk3YzcwZGFlNDU3MTgxMTBjYTZlYzI2NmFj
NDdiNzE5ZS4uYjFjZGNkMDBkOWYwMmEwY2NhNGFjOGIxMzk1ZDllOWE2ZjBmZmI4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbkNGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL2NmL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbkNGLmgKQEAgLTkwLDggKzkwLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbjo6QXNzZXRTdGF0dXMgYXNzZXRTdGF0dXMoKSBjb25zdDsK
IAogICAgIHZpcnR1YWwgdm9pZCBjaGVja1BsYXlhYmlsaXR5KCk7Ci0gICAgdmlydHVhbCB2b2lk
IHVwZGF0ZVJhdGUoKTsKLSAgICB2aXJ0dWFsIGZsb2F0IHJhdGUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0UmF0ZShmbG9hdCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBkb3VibGUgcmF0
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZWVrVG9UaW1lKGNvbnN0IE1l
ZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYgbmVnYXRpdmVUb2xlcmFuY2UsIGNvbnN0IE1lZGlh
VGltZSYgcG9zaXRpdmVUb2xlcmFuY2UpOwogICAgIHZpcnR1YWwgdW5zaWduZWQgbG9uZyBsb25n
IHRvdGFsQnl0ZXMoKSBjb25zdDsKICAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9y
bVRpbWVSYW5nZXM+IHBsYXRmb3JtQnVmZmVyZWRUaW1lUmFuZ2VzKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmgKaW5kZXggYjg2MTYzODVkM2JkMjIzNzI2MGY2OTc0NTFhNjM2ZjNhZjQ2NDZh
OS4uNzA0OWNjY2FkNWNmYTE0NTRmOTEyNTM1ODJhMmRkMDlkNDdkNzU2ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMuaApAQCAtMTc3LDggKzE3Nyw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBsb25n
IGFzc2V0RXJyb3JDb2RlKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hlY2tQbGF5YWJp
bGl0eSgpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSYXRlKCk7Ci0gICAgdmlydHVhbCBmbG9h
dCByYXRlKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFJhdGVEb3VibGUoZG91YmxlKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIGRvdWJsZSByYXRlKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2
b2lkIHNlZWtUb1RpbWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiBuZWdhdGl2
ZVRvbGVyYW5jZSwgY29uc3QgTWVkaWFUaW1lJiBwb3NpdGl2ZVRvbGVyYW5jZSk7CiAgICAgdmly
dHVhbCB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWxCeXRlcygpIGNvbnN0OwogICAgIHZpcnR1YWwg
c3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtVGltZVJhbmdlcz4gcGxhdGZvcm1CdWZmZXJlZFRpbWVS
YW5nZXMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCmluZGV4IGQzZDIyMThiZWViOGZh
N2I1MzhhYzMwM2IzNTk3NGU1M2JmNjgwOWUuLmY3NzAwZjY1ZWFkODEyNzM4Mzg5NmY1ZjFkNDVm
MzYyMjBiODU5NDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQpAQCAtMTI1MywxNSArMTI1Mywx
NiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldENsb3NlZENh
cHRpb25zVmlzaWJsZShib29sIGNsb3NlZENhcAogICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldENsb3NlZENhcHRpb25zVmlzaWJsZSglcCkgLSBz
ZXQgdG8gJXMiLCB0aGlzLCBib29sU3RyaW5nKGNsb3NlZENhcHRpb25zVmlzaWJsZSkpOwogfQog
Ci12b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnVwZGF0ZVJhdGUoKQor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRSYXRlRG91YmxlKGRv
dWJsZSByYXRlKQorCiB7CiAgICAgc2V0RGVsYXlDYWxsYmFja3ModHJ1ZSk7Ci0gICAgbV9jYWNo
ZWRSYXRlID0gcmVxdWVzdGVkUmF0ZSgpOwotICAgIFttX2F2UGxheWVyLmdldCgpIHNldFJhdGU6
cmVxdWVzdGVkUmF0ZSgpXTsKKyAgICBtX2NhY2hlZFJhdGUgPSByYXRlOworICAgIFttX2F2UGxh
eWVyLmdldCgpIHNldFJhdGU6cmF0ZV07CiAgICAgc2V0RGVsYXlDYWxsYmFja3MoZmFsc2UpOwog
fQogCi1mbG9hdCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpyYXRlKCkgY29u
c3QKK2RvdWJsZSBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpyYXRlKCkgY29u
c3QKIHsKICAgICBpZiAoIW1ldGFEYXRhQXZhaWxhYmxlKCkpCiAgICAgICAgIHJldHVybiAwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxh
eWVyUHJpdmF0ZVFUS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAppbmRleCAxMWI2YTA2YjRkNTI5ZTRiNjQ2MTJmZmMx
ZThiNmFhNTM3NDFkZTZhLi5lNzY3MDQ1MGRjODc1NWIxYmY2Njc4NzQyNmZkYjk0NzgxMWMzMWJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQ
bGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtMTA0LDYgKzEwNCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIHNlZWsoY29uc3QgTWVkaWFUaW1lJikgb3ZlcnJpZGU7CiAg
ICAgCiAgICAgdm9pZCBzZXRSYXRlKGZsb2F0KTsKKyAgICB2aXJ0dWFsIGRvdWJsZSByYXRlKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOwogICAgIHZvaWQgc2V0
UHJlc2VydmVzUGl0Y2goYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRl
eCAzNjkxMjA2MzYzNWQ5MjFjMDY3YWRlN2ZmMzQ3ZDY1ZWE2NzUwOTRhLi42YjJiYTQ4ODBiMzk2
YzVjY2JkOGI0MDNhM2I3OTM2YzE2YWE2ZTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
Lm1tCkBAIC03OTIsNiArNzkyLDExIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnNl
dFJhdGUoZmxvYXQgcmF0ZSkKICAgICAgICAgW21fcXRNb3ZpZS5nZXQoKSBzZXRSYXRlOnJhdGVd
OwogfQogCitkb3VibGUgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OnJhdGUoKSBjb25zdAorewor
ICAgIHJldHVybiBtX3F0TW92aWUgPyBbbV9xdE1vdmllIHJhdGVdIDogMDsKK30KKwogdm9pZCBN
ZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2V0UHJlc2VydmVzUGl0Y2goYm9vbCBwcmVzZXJ2ZXNQ
aXRjaCkKIHsKICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVRVEtpdDo6c2V0UHJl
c2VydmVzUGl0Y2goJXApIC0gcHJlc2VydmVzUGl0Y2ggJWQiLCB0aGlzLCAoaW50KXByZXNlcnZl
c1BpdGNoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAwYzg3MTkxN2MxNmMzNjE0YmE0NzM4YzE5MGFiYmZlOGFiNmU0ZjNl
Li45Y2Q0YTVlMjMyMDkyMWMxMjk4MTIzODEyMmU5MTgyZjVjNWJjMzRjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTUtMDEtMDggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgZGVmYXVsdFBsYXliYWNrUmF0ZSBub3QgcmVzcGVjdGVkIHdoZW4gc2V0IGJlZm9y
ZSBzb3VyY2UgaXMgbG9hZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDAyODIKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgKiBtZWRpYS92aWRlby1kZWZhdWx0cGxheWJhY2tyYXRlLWJlZm9yZS1sb2FkLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvdmlkZW8tZGVmYXVsdHBsYXliYWNr
cmF0ZS1iZWZvcmUtbG9hZC5odG1sOiBBZGRlZC4KKwogMjAxNS0wMS0xMiAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE3ODI4MS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWRlZmF1
bHRwbGF5YmFja3JhdGUtYmVmb3JlLWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVk
aWEvdmlkZW8tZGVmYXVsdHBsYXliYWNrcmF0ZS1iZWZvcmUtbG9hZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzFjNWZhMjliM2IyMGU0ZmMzOWI0ZDViYzRjODBlZDA3NTY2MGRiYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWRlZmF1bHRwbGF5YmFja3JhdGUt
YmVmb3JlLWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworUlVOKHZpZGVvLmRl
ZmF1bHRQbGF5YmFja1JhdGUgPSAwLjUpCitFVkVOVChjYW5wbGF5dGhyb3VnaCkKK0VYUEVDVEVE
ICh2aWRlby5wbGF5YmFja1JhdGUgPT0gJzAuNScpIE9LCitFWFBFQ1RFRCAodmlkZW8uZGVmYXVs
dFBsYXliYWNrUmF0ZSA9PSAnMC41JykgT0sKK0VWRU5UKHRpbWV1cGRhdGUpCitFVkVOVCh0aW1l
dXBkYXRlKQorRVhQRUNURUQgKGVmZmVjdGl2ZVBsYXliYWNrUmF0ZSA8ICcwLjc1JykgT0sKK0VO
RCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWRlZmF1bHRw
bGF5YmFja3JhdGUtYmVmb3JlLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWRl
ZmF1bHRwbGF5YmFja3JhdGUtYmVmb3JlLWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjQ3N2Y0ZTNm
ODUyNmRiODliMzEzMzNiMjBmMjZmZmIyYjhkODdhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tZGVmYXVsdHBsYXliYWNrcmF0ZS1iZWZvcmUtbG9hZC5odG1sCkBA
IC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAg
ICAgIDx0aXRsZT50ZXN0IHBsYXliYWNrUmF0ZSBhbmQgZGVmYXVsdFBsYXliYWNrUmF0ZTwvdGl0
bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPW1lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+Cisg
ICAgICAgICAgICB2YXIgd2FsbENsb2NrQXRGaXJzdFRpbWVVcGRhdGU7CisgICAgICAgICAgICB2
YXIgbWVkaWFUaW1lQXRGaXJzdFRpbWVVcGRhdGU7CisgICAgICAgICAgICB2YXIgZWZmZWN0aXZl
UGxheWJhY2tSYXRlOworCisgICAgICAgICAgICBmdW5jdGlvbiBzdGFydCgpCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOworICAgICAgICAgICAgICAg
IHdhaXRGb3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBjYW5wbGF5dGhyb3VnaCk7CisgICAgICAg
ICAgICAgICAgcnVuKCd2aWRlby5kZWZhdWx0UGxheWJhY2tSYXRlID0gMC41Jyk7CisgICAgICAg
ICAgICAgICAgc2V0U3JjQnlUYWdOYW1lKCd2aWRlbycsIGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywg
J2NvbnRlbnQvdGVzdCcpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24g
Y2FucGxheXRocm91Z2goKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgndmlkZW8ucGxheWJhY2tSYXRlJywgMC41KTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoJ3ZpZGVvLmRlZmF1bHRQbGF5YmFja1JhdGUnLCAwLjUpOworCisgICAgICAgICAgICAg
ICAgd2FpdEZvckV2ZW50KCd0aW1ldXBkYXRlJywgdGltZXVwZGF0ZSk7CisgICAgICAgICAgICAg
ICAgdmlkZW8ucGxheSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiB0
aW1ldXBkYXRlKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB2YXIgbm93ID0gRGF0
ZS5ub3coKSAvIDEwMDA7CisgICAgICAgICAgICAgICAgaWYgKCF3YWxsQ2xvY2tBdEZpcnN0VGlt
ZVVwZGF0ZSkgeworICAgICAgICAgICAgICAgICAgICB3YWxsQ2xvY2tBdEZpcnN0VGltZVVwZGF0
ZSA9IG5vdzsKKyAgICAgICAgICAgICAgICAgICAgbWVkaWFUaW1lQXRGaXJzdFRpbWVVcGRhdGUg
PSB2aWRlby5jdXJyZW50VGltZTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICh3YWxsQ2xvY2tBdEZpcnN0VGltZVVw
ZGF0ZSA9PSBub3cpCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAg
ICAgIHZhciB3YWxsQ2xvY2tEZWx0YSA9IHdhbGxDbG9ja0F0Rmlyc3RUaW1lVXBkYXRlIC0gbm93
OworICAgICAgICAgICAgICAgIHZhciBtZWRpYVRpbWVEZWx0YSA9IG1lZGlhVGltZUF0Rmlyc3RU
aW1lVXBkYXRlIC0gdmlkZW8uY3VycmVudFRpbWU7CisgICAgICAgICAgICAgICAgZWZmZWN0aXZl
UGxheWJhY2tSYXRlID0gbWVkaWFUaW1lRGVsdGEgLyB3YWxsQ2xvY2tEZWx0YTsKKworICAgICAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgnZWZmZWN0aXZlUGxheWJhY2tSYXRlJywgLjc1LCAnPCcp
OworICAgICAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICA8
L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAg
ICAgICA8dmlkZW8gY29udHJvbHM+PC92aWRlbz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>