<?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>233781</bug_id>
          
          <creation_ts>2021-12-02 12:45:44 -0800</creation_ts>
          <short_desc>Change IDL `Date` to be backed by `WallTime` to avoid confusion when converting to native dates</short_desc>
          <delta_ts>2022-02-14 13:32:38 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=233779</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=233795</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>236360</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>aestes</cc>
    
    <cc>akeerthi</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>pangle</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1819835</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-02 12:45:44 -0800</bug_when>
    <thetext>JS `Date` is milliseconds-based, but some native dates (e.g. `NSDate`) are seconds-based.  `WallTime` will avoid any confusion by having a more defined type instead of something very generic like `double`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819839</commentid>
    <comment_count>1</comment_count>
      <attachid>445766</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-02 12:54:35 -0800</bug_when>
    <thetext>Created attachment 445766
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819959</commentid>
    <comment_count>2</comment_count>
      <attachid>445766</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-12-02 17:04:26 -0800</bug_when>
    <thetext>Comment on attachment 445766
Patch

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

Overall the IDB part looks good to me; the test failure looks legit. It seems IDBKeyData::IDBKeyData(const IDBKey* key) can set m_value to double for Date type.

&gt; Source/WebCore/bindings/js/JSDOMConvertDate.cpp:50
&gt; +    return WallTime::fromSeconds(Seconds::fromMilliseconds(milliseconds));

Could milliseconds be NaN at this point?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819963</commentid>
    <comment_count>3</comment_count>
      <attachid>445766</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-02 17:07:28 -0800</bug_when>
    <thetext>Comment on attachment 445766
Patch

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

&gt;&gt; Source/WebCore/bindings/js/JSDOMConvertDate.cpp:50
&gt;&gt; +    return WallTime::fromSeconds(Seconds::fromMilliseconds(milliseconds));
&gt; 
&gt; Could milliseconds be NaN at this point?

Yes it&apos;s possible for `milliseconds` to be NaN, but that&apos;s fine because both `Seconds` and `WallTime` support NaN :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819990</commentid>
    <comment_count>4</comment_count>
      <attachid>445801</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-02 18:38:55 -0800</bug_when>
    <thetext>Created attachment 445801
Patch

rebased and fixed typo in `WebCore::IDBKeyData::hash`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820227</commentid>
    <comment_count>5</comment_count>
      <attachid>445875</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-03 11:04:47 -0800</bug_when>
    <thetext>Created attachment 445875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820250</commentid>
    <comment_count>6</comment_count>
      <attachid>445875</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-03 11:50:28 -0800</bug_when>
    <thetext>Comment on attachment 445875
Patch

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

Great change!

review- because of the &quot;-1.0&quot; mistake

&gt; Source/WebCore/Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:66
&gt; -static NSDate *toDate(double date)
&gt; +static NSDate *toDate(WallTime date)
&gt;  {
&gt; -    return [NSDate dateWithTimeIntervalSince1970:(date / 1000)];
&gt; +    return [NSDate dateWithTimeIntervalSince1970:date.secondsSinceEpoch().value()];
&gt;  }

More follow-up: seems to me this function should be somewhere reusable.

Other files that either have a copy or could use it: SearchPopupMenuCocoa.mm, WebFrameLoaderClient.cpp, _WKResourceLoadInfo.mm, WebProcessCocoa.mm, NetworkProcessCocoa.mm, and NetworkSessionCocoa.mm.

I would call it createNSDate and have it return a RetainPtr&lt;NSDate&gt;. Just have to figure out which header to put it in. If no existing header, then &lt;wtf/cocoa/NSDateExtras.h&gt;. But could even put it in Seconds.h with the implementation in an .mm file if we follow the pattern that String, StringView, URL, and more have established.

&gt; Source/WebCore/Modules/indexeddb/IDBKey.h:65
&gt; +        return adoptRef(*new IDBKey(date));

Could keep the patch and this class simpler by only making a change here and in the date() function. Convert to a double and back. Other changes not needed. Not sure it’s all that valuable to actually keep the WallTime intact inside the IDBKey class as long as we change these two public functions.

&gt; Source/WebCore/Modules/indexeddb/IDBKeyData.cpp:420
&gt; +void IDBKeyData::setDateValue(WallTime value)

Same suggestion here. Just convert here and many other changes won’t be needed.

&gt; Source/WebCore/Modules/indexeddb/IDBKeyData.h:167
&gt; -        return std::get&lt;double&gt;(m_value);
&gt; +        return std::get&lt;WallTime&gt;(m_value);

Same suggestion here. Just convert right here.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:1610
&gt; +            write(-1);

This is wrong! Needs to be:

    write(-1.0);

Otherwise it will write an integer, not a double. May need to find out if we have test cases covering this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820258</commentid>
    <comment_count>7</comment_count>
      <attachid>445875</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-03 11:58:41 -0800</bug_when>
    <thetext>Comment on attachment 445875
Patch

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

&gt;&gt; Source/WebCore/Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:66
&gt;&gt;  }
&gt; 
&gt; More follow-up: seems to me this function should be somewhere reusable.
&gt; 
&gt; Other files that either have a copy or could use it: SearchPopupMenuCocoa.mm, WebFrameLoaderClient.cpp, _WKResourceLoadInfo.mm, WebProcessCocoa.mm, NetworkProcessCocoa.mm, and NetworkSessionCocoa.mm.
&gt; 
&gt; I would call it createNSDate and have it return a RetainPtr&lt;NSDate&gt;. Just have to figure out which header to put it in. If no existing header, then &lt;wtf/cocoa/NSDateExtras.h&gt;. But could even put it in Seconds.h with the implementation in an .mm file if we follow the pattern that String, StringView, URL, and more have established.

Ooo absolutely!  I actually wanted to create implicit conversions between `WTF::Seconds` and `NSTimeInterval` (just like `WTF::String` and `NSString`) so I&apos;ll do all those as a followup too :)

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBKey.h:65
&gt;&gt; +        return adoptRef(*new IDBKey(date));
&gt; 
&gt; Could keep the patch and this class simpler by only making a change here and in the date() function. Convert to a double and back. Other changes not needed. Not sure it’s all that valuable to actually keep the WallTime intact inside the IDBKey class as long as we change these two public functions.

I personally think it&apos;s nicer/cleaner to encode `WallTime` inside the `std::variant` because then there&apos;s a 1-1 mapping between `IndexedDB::KeyType` and `std::variant` subtype (i.e. if you pull out a `WallTime` from the `std::variant` then you must also be a `IndexedDB::KeyType::Date`), but I don&apos;t feel super strongly so if you&apos;d prefer I can change it as you described.

&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:1610
&gt;&gt; +            write(-1);
&gt; 
&gt; This is wrong! Needs to be:
&gt; 
&gt;     write(-1.0);
&gt; 
&gt; Otherwise it will write an integer, not a double. May need to find out if we have test cases covering this.

Oh wow good catch.  Will change :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820259</commentid>
    <comment_count>8</comment_count>
      <attachid>445875</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-03 11:58:45 -0800</bug_when>
    <thetext>Comment on attachment 445875
Patch

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

&gt;&gt; Source/WebCore/Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:66
&gt;&gt;  }
&gt; 
&gt; More follow-up: seems to me this function should be somewhere reusable.
&gt; 
&gt; Other files that either have a copy or could use it: SearchPopupMenuCocoa.mm, WebFrameLoaderClient.cpp, _WKResourceLoadInfo.mm, WebProcessCocoa.mm, NetworkProcessCocoa.mm, and NetworkSessionCocoa.mm.
&gt; 
&gt; I would call it createNSDate and have it return a RetainPtr&lt;NSDate&gt;. Just have to figure out which header to put it in. If no existing header, then &lt;wtf/cocoa/NSDateExtras.h&gt;. But could even put it in Seconds.h with the implementation in an .mm file if we follow the pattern that String, StringView, URL, and more have established.

Ooo absolutely!  I actually wanted to create implicit conversions between `WTF::Seconds` and `NSTimeInterval` (just like `WTF::String` and `NSString`) so I&apos;ll do all those as a followup too :)

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBKey.h:65
&gt;&gt; +        return adoptRef(*new IDBKey(date));
&gt; 
&gt; Could keep the patch and this class simpler by only making a change here and in the date() function. Convert to a double and back. Other changes not needed. Not sure it’s all that valuable to actually keep the WallTime intact inside the IDBKey class as long as we change these two public functions.

I personally think it&apos;s nicer/cleaner to encode `WallTime` inside the `std::variant` because then there&apos;s a 1-1 mapping between `IndexedDB::KeyType` and `std::variant` subtype (i.e. if you pull out a `WallTime` from the `std::variant` then you must also be a `IndexedDB::KeyType::Date`), but I don&apos;t feel super strongly so if you&apos;d prefer I can change it as you described.

&gt;&gt; Source/WebCore/bindings/js/SerializedScriptValue.cpp:1610
&gt;&gt; +            write(-1);
&gt; 
&gt; This is wrong! Needs to be:
&gt; 
&gt;     write(-1.0);
&gt; 
&gt; Otherwise it will write an integer, not a double. May need to find out if we have test cases covering this.

Oh wow good catch.  Will change :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820261</commentid>
    <comment_count>9</comment_count>
      <attachid>445887</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-03 12:03:16 -0800</bug_when>
    <thetext>Created attachment 445887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820271</commentid>
    <comment_count>10</comment_count>
      <attachid>445889</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-03 12:39:40 -0800</bug_when>
    <thetext>Created attachment 445889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820280</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-03 12:59:25 -0800</bug_when>
    <thetext>(In reply to Devin Rousso from comment #8)
&gt; I don&apos;t feel super strongly so if you&apos;d
&gt; prefer I can change it as you described.

I do feel pretty strongly about this. We just don’t need the change and extra code. Consider how much smaller the patch and the code will be: that’s not nothing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820282</commentid>
    <comment_count>12</comment_count>
      <attachid>445875</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-03 13:01:18 -0800</bug_when>
    <thetext>Comment on attachment 445875
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/Modules/applepay/cocoa/PaymentSummaryItemsCocoa.mm:66
&gt;&gt;&gt;&gt;  }
&gt;&gt;&gt; 
&gt;&gt;&gt; More follow-up: seems to me this function should be somewhere reusable.
&gt;&gt;&gt; 
&gt;&gt;&gt; Other files that either have a copy or could use it: SearchPopupMenuCocoa.mm, WebFrameLoaderClient.cpp, _WKResourceLoadInfo.mm, WebProcessCocoa.mm, NetworkProcessCocoa.mm, and NetworkSessionCocoa.mm.
&gt;&gt;&gt; 
&gt;&gt;&gt; I would call it createNSDate and have it return a RetainPtr&lt;NSDate&gt;. Just have to figure out which header to put it in. If no existing header, then &lt;wtf/cocoa/NSDateExtras.h&gt;. But could even put it in Seconds.h with the implementation in an .mm file if we follow the pattern that String, StringView, URL, and more have established.
&gt;&gt; 
&gt;&gt; Ooo absolutely!  I actually wanted to create implicit conversions between `WTF::Seconds` and `NSTimeInterval` (just like `WTF::String` and `NSString`) so I&apos;ll do all those as a followup too :)
&gt; 
&gt; Ooo absolutely!  I actually wanted to create implicit conversions between `WTF::Seconds` and `NSTimeInterval` (just like `WTF::String` and `NSString`) so I&apos;ll do all those as a followup too :)

An implicit conversion to and from NSTimeInterval is *not* a good idea, because NSTimeInterval is just a typedef for double. Like CFTypeRef, it seems to be a type but is really just syntactic sugar and so doesn’t provide the safety and opportunity for overloading and conversion that it would if it was a separate type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820305</commentid>
    <comment_count>13</comment_count>
      <attachid>445895</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-03 14:00:52 -0800</bug_when>
    <thetext>Created attachment 445895
Patch

removed unnecessary changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820313</commentid>
    <comment_count>14</comment_count>
      <attachid>445900</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-03 14:35:21 -0800</bug_when>
    <thetext>Created attachment 445900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820318</commentid>
    <comment_count>15</comment_count>
      <attachid>445904</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-03 14:45:32 -0800</bug_when>
    <thetext>Created attachment 445904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820322</commentid>
    <comment_count>16</comment_count>
      <attachid>445906</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-12-03 14:58:10 -0800</bug_when>
    <thetext>Created attachment 445906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820708</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-06 12:04:31 -0800</bug_when>
    <thetext>Committed r286560 (244889@main): &lt;https://commits.webkit.org/244889@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445906.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820709</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-06 12:05:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/86116947&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445766</attachid>
            <date>2021-12-02 12:54:35 -0800</date>
            <delta_ts>2021-12-02 19:20:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233781-20211202135434.patch</filename>
            <type>text/plain</type>
            <size>48052</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cK
aW5kZXggNjU2MThiNzdlYjczNGU1ZjE3NzIyMzkwZDBhYjhiNmFkYWYyMTAwMi4uZTY0MGM2MDIx
NmNkMWFmMTI2MDE5MjM2MTM3MmE5MDA0MmIyMDRhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAy
MS0xMi0wMiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgQ2hh
bmdlIElETCBgRGF0ZWAgdG8gYmUgYmFja2VkIGJ5IGBXYWxsVGltZWAgdG8gYXZvaWQgY29uZnVz
aW9uIHdoZW4gY29udmVydGluZyB0byBuYXRpdmUgZGF0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzc4MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEpTIGBEYXRlYCBpcyBtaWxsaXNlY29uZHMtYmFz
ZWQsIGJ1dCBzb21lIG5hdGl2ZSBkYXRlcyAoZS5nLiBgTlNEYXRlYCkgYXJlIHNlY29uZHMtYmFz
ZWQuCisgICAgICAgIGBXYWxsVGltZWAgd2lsbCBoZWxwIGF2b2lkIGNvbmZ1c2lvbiBzaW5jZSBu
b3QgYSBnZW5lcmljIHR5cGUgKGUuZy4gYGRvdWJsZWApIGFuZCBpbnN0ZWFkCisgICAgICAgIGhh
cyBleHBsaWNpdGx5IGRlZmluZWQgY29udmVyc2lvbiBtZXRob2RzIHRvIHNlY29uZHMsIG1pbGxp
c2Vjb25kcywgZXRjLi4KKworICAgICAgICAqIHd0Zi9HZW5lcmljVGltZU1peGluLmg6CisgICAg
ICAgIChXVEY6OkdlbmVyaWNUaW1lTWl4aW46OmZyb21TZWNvbmRzKTogQWRkZWQuCisgICAgICAg
IEFkZCBhIGhlbHBlciBtZXRob2QgdG8gc2ltcGxpZnkgYFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKG1zKS52YWx1ZSgpKWAuCisKIDIwMjEtMTItMDEg
IEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW1dp
bl0gT1NBbGxvY2F0b3I6OnJlc2VydmVVbmNvbW1pdHRlZEFsaWduZWQgc2hvdWxkIHVzZSBhbGln
bmVkIGFsbG9jYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZDA3YzZhNTY3OTZmYzRmZDk3Y2IxNDNhOTZm
YjM5MTY0MDI1ZDI0Li5iZTNiMWI1MzExYjhhNzNhZGM4MWY3ZjdkMWI1Y2ZlNzU2OGM3MWRkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsODggQEAKKzIwMjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENoYW5nZSBJREwgYERhdGVgIHRvIGJlIGJhY2tl
ZCBieSBgV2FsbFRpbWVgIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aGVuIGNvbnZlcnRpbmcgdG8gbmF0
aXZlIGRhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzM3ODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBKUyBgRGF0ZWAgaXMgbWlsbGlzZWNvbmRzLWJhc2VkLCBidXQgc29tZSBuYXRpdmUgZGF0ZXMg
KGUuZy4gYE5TRGF0ZWApIGFyZSBzZWNvbmRzLWJhc2VkLgorICAgICAgICBgV2FsbFRpbWVgIHdp
bGwgaGVscCBhdm9pZCBjb25mdXNpb24gc2luY2Ugbm90IGEgZ2VuZXJpYyB0eXBlIChlLmcuIGBk
b3VibGVgKSBhbmQgaW5zdGVhZAorICAgICAgICBoYXMgZXhwbGljaXRseSBkZWZpbmVkIGNvbnZl
cnNpb24gbWV0aG9kcyB0byBzZWNvbmRzLCBtaWxsaXNlY29uZHMsIGV0Yy4uCisKKyAgICAgICAg
KiBiaW5kaW5ncy9JRExUeXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6SURMRGF0ZTo6bnVsbFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklETERhdGU6OmlzTnVsbFZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OklETERhdGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZSk6CisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udmVy
dGVyPElETERhdGU+Ojpjb252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29udmVydGVyPElE
TERhdGU+Ojpjb252ZXJ0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmpzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1
ZVRvRGF0ZSk6CisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TGluZUl0ZW0u
aDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5TGluZUl0ZW06OmRlY29kZSk6CisgICAgICAg
ICogTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjp0b0RhdGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QktleS5oOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5OjpjcmVhdGVOdW1iZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCS2V5OjpjcmVhdGVEYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQktl
eTo6ZGF0ZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQktleTo6SURCS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OklE
QktleTo6Y29tcGFyZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6aGFzaCBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpkYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQktleURhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlEYXRh
OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6bWF5YmVDcmVhdGVJREJLZXkgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6aXNvbGF0ZWRDb3B5KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQktleURhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJL
ZXlEYXRhOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6c2V0RGF0ZVZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6Om9wZXJhdG9yPT0gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6c2l6ZSBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6ZW5jb2RlS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OmRlY29kZUtleSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpnZXQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDbG9uZVNlcmlhbGl6ZXI6OndyaXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNsb25lRGVzZXJpYWxpemVyOjpyZWFkRmlsZSk6CisgICAgICAgICogZmlsZWFwaS9G
aWxlLmlkbDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGUuaDoKKyAgICAgICAgKiBmaWxlYXBpL0Zp
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6RmlsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlOjpsYXN0TW9kaWZpZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6bGFz
dE1vZGlmaWVkRm9yQmluZGluZ3MgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0Jhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjp2YWx1
ZUFzRGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBl
OjpzZXRWYWx1ZUFzRGF0ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
Ojp2YWx1ZUFzRGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1l
TG9jYWxJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6dmFsdWVBc0RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlh
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpnZXRTdGFydERhdGUgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1s
L01vbnRoSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6dmFsdWVBc0RhdGUgY29uc3QpOgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yOjppZGJLZXlGcm9tSW5zcGVjdG9yT2JqZWN0KToKKwog
MjAyMS0xMi0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEFkZCBjc3AtcmVwb3J0IHJlc291cmNlIHR5cGUgdG8gV0tDb250ZW50UnVsZUxp
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA4NmU1ZDk5NThjNjUyYTVhZjNmNzg1
YzA1YjU1MDQyM2FiZmUxMGEzLi5mODM1OGNkNWZiMzg5OWMyNDAwZjBlYjgyZWE1Zjg5MTYxMjJm
NmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjEt
MTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIENoYW5n
ZSBJREwgYERhdGVgIHRvIGJlIGJhY2tlZCBieSBgV2FsbFRpbWVgIHRvIGF2b2lkIGNvbmZ1c2lv
biB3aGVuIGNvbnZlcnRpbmcgdG8gbmF0aXZlIGRhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3ODEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKUyBgRGF0ZWAgaXMgbWlsbGlzZWNvbmRzLWJhc2Vk
LCBidXQgc29tZSBuYXRpdmUgZGF0ZXMgKGUuZy4gYE5TRGF0ZWApIGFyZSBzZWNvbmRzLWJhc2Vk
LgorICAgICAgICBgV2FsbFRpbWVgIHdpbGwgaGVscCBhdm9pZCBjb25mdXNpb24gc2luY2Ugbm90
IGEgZ2VuZXJpYyB0eXBlIChlLmcuIGBkb3VibGVgKSBhbmQgaW5zdGVhZAorICAgICAgICBoYXMg
ZXhwbGljaXRseSBkZWZpbmVkIGNvbnZlcnNpb24gbWV0aG9kcyB0byBzZWNvbmRzLCBtaWxsaXNl
Y29uZHMsIGV0Yy4uCisKKyAgICAgICAgKiBET00vRE9NSW50ZXJuYWwuaDoKKyAgICAgICAgKGtp
dCk6CisgICAgICAgIChjb3JlKToKKworICAgICAgICAqIERPTS9ET01GaWxlLm1tOgorICAgICAg
ICAoLVtET01GaWxlIGxhc3RNb2RpZmllZF0pOgorICAgICAgICAqIERPTS9ET01IVE1MTWVkaWFF
bGVtZW50Lm1tOgorICAgICAgICAoLVtET01IVE1MTWVkaWFFbGVtZW50IGdldFN0YXJ0RGF0ZV0p
OgorCiAyMDIxLTEyLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVncmVzc2lvbihyMjgzOTEyKSBCcm9rZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGZvciBT
d2lmdCBiaW5kaW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvR2VuZXJpY1RpbWVNaXhp
bi5oIGIvU291cmNlL1dURi93dGYvR2VuZXJpY1RpbWVNaXhpbi5oCmluZGV4IGFiYmVlMGFlZWRm
YzM4Y2I3NDQ0Y2ExMjA0YTYzNjAyYjZhNDg2ODAuLjQyMDM3M2U5NDZjMzZkOGNlODlmNWIzOGNh
NjA3MGMyNWFmMDJmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0dlbmVyaWNUaW1lTWl4
aW4uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9HZW5lcmljVGltZU1peGluLmgKQEAgLTMzLDYgKzMz
LDExIEBAIHRlbXBsYXRlPHR5cGVuYW1lIERlcml2ZWRUaW1lPgogY2xhc3MgR2VuZXJpY1RpbWVN
aXhpbiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBEZXJpdmVkVGltZSBmcm9tU2Vjb25kcyhTZWNvbmRzIHNlY29uZHMpCisgICAg
eworICAgICAgICByZXR1cm4gRGVyaXZlZFRpbWUoc2Vjb25kcy52YWx1ZSgpKTsKKyAgICB9CisK
ICAgICAvLyBDYWxsIHRoaXMgaWYgeW91IGtub3cgZm9yIHN1cmUgdGhhdCB0aGUgZG91YmxlIHJl
cHJlc2VudHMgdGhlIHRpbWUgYWNjb3JkaW5nIHRvIHRoZQogICAgIC8vIHNhbWUgdGltZSBzb3Vy
Y2UgYXMgRGVyaXZlZFRpbWUuIEl0IG11c3QgYmUgaW4gc2Vjb25kcy4KICAgICBzdGF0aWMgY29u
c3RleHByIERlcml2ZWRUaW1lIGZyb21SYXdTZWNvbmRzKGRvdWJsZSB2YWx1ZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUxpbmVJdGVtLmgKaW5kZXgg
OTllZWZiYWIxMTMzNDMxY2M1YTA3MDJmY2NkMDk4YTE5M2Y0YzcyYi4uNmEzNDQzN2E0NDhlODcw
MGYxZWI2YmE4OTVkZmJiZWM1Y2VhN2I4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheUxpbmVJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheUxpbmVJdGVtLmgKQEAgLTI5LDggKzI5LDggQEAKIAogI2lu
Y2x1ZGUgIkFwcGxlUGF5UGF5bWVudFRpbWluZy5oIgogI2luY2x1ZGUgIkFwcGxlUGF5UmVjdXJy
aW5nUGF5bWVudERhdGVVbml0LmgiCi0jaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPG9wdGlv
bmFsPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKQEAgLTUyLDE0ICs1MiwxNCBA
QCBzdHJ1Y3QgQXBwbGVQYXlMaW5lSXRlbSBmaW5hbCB7CiAgICAgQXBwbGVQYXlQYXltZW50VGlt
aW5nIHBheW1lbnRUaW1pbmcgeyBBcHBsZVBheVBheW1lbnRUaW1pbmc6OkltbWVkaWF0ZSB9Owog
CiAjaWYgRU5BQkxFKEFQUExFX1BBWV9SRUNVUlJJTkdfTElORV9JVEVNKQotICAgIGRvdWJsZSBy
ZWN1cnJpbmdQYXltZW50U3RhcnREYXRlIHsgc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+Ojpx
dWlldF9OYU4oKSB9OworICAgIFdhbGxUaW1lIHJlY3VycmluZ1BheW1lbnRTdGFydERhdGUgeyBX
YWxsVGltZTo6bmFuKCkgfTsKICAgICBBcHBsZVBheVJlY3VycmluZ1BheW1lbnREYXRlVW5pdCBy
ZWN1cnJpbmdQYXltZW50SW50ZXJ2YWxVbml0IHsgQXBwbGVQYXlSZWN1cnJpbmdQYXltZW50RGF0
ZVVuaXQ6Ok1vbnRoIH07CiAgICAgdW5zaWduZWQgcmVjdXJyaW5nUGF5bWVudEludGVydmFsQ291
bnQgPSAxOwotICAgIGRvdWJsZSByZWN1cnJpbmdQYXltZW50RW5kRGF0ZSB7IHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKKyAgICBXYWxsVGltZSByZWN1cnJpbmdQ
YXltZW50RW5kRGF0ZSB7IFdhbGxUaW1lOjpuYW4oKSB9OwogI2VuZGlmCiAKICNpZiBFTkFCTEUo
QVBQTEVfUEFZX0RFRkVSUkVEX0xJTkVfSVRFTSkKLSAgICBkb3VibGUgZGVmZXJyZWRQYXltZW50
RGF0ZSB7IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKKyAgICBX
YWxsVGltZSBkZWZlcnJlZFBheW1lbnREYXRlIHsgV2FsbFRpbWU6Om5hbigpIH07CiAjZW5kaWYK
IAogI2lmIGRlZmluZWQoQXBwbGVQYXlMaW5lSXRlbUFkZGl0aW9uc19tZW1iZXJzKQpAQCAtMTA1
LDEzICsxMDUsMTMgQEAgc3RkOjpvcHRpb25hbDxBcHBsZVBheUxpbmVJdGVtPiBBcHBsZVBheUxp
bmVJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICBERUNPREUoYW1vdW50LCBTdHJp
bmcpCiAgICAgREVDT0RFKHBheW1lbnRUaW1pbmcsIEFwcGxlUGF5UGF5bWVudFRpbWluZykKICNp
ZiBFTkFCTEUoQVBQTEVfUEFZX1JFQ1VSUklOR19MSU5FX0lURU0pCi0gICAgREVDT0RFKHJlY3Vy
cmluZ1BheW1lbnRTdGFydERhdGUsIGRvdWJsZSkKKyAgICBERUNPREUocmVjdXJyaW5nUGF5bWVu
dFN0YXJ0RGF0ZSwgV2FsbFRpbWUpCiAgICAgREVDT0RFKHJlY3VycmluZ1BheW1lbnRJbnRlcnZh
bFVuaXQsIEFwcGxlUGF5UmVjdXJyaW5nUGF5bWVudERhdGVVbml0KQogICAgIERFQ09ERShyZWN1
cnJpbmdQYXltZW50SW50ZXJ2YWxDb3VudCwgdW5zaWduZWQpCi0gICAgREVDT0RFKHJlY3Vycmlu
Z1BheW1lbnRFbmREYXRlLCBkb3VibGUpCisgICAgREVDT0RFKHJlY3VycmluZ1BheW1lbnRFbmRE
YXRlLCBXYWxsVGltZSkKICNlbmRpZgogI2lmIEVOQUJMRShBUFBMRV9QQVlfREVGRVJSRURfTElO
RV9JVEVNKQotICAgIERFQ09ERShkZWZlcnJlZFBheW1lbnREYXRlLCBkb3VibGUpCisgICAgREVD
T0RFKGRlZmVycmVkUGF5bWVudERhdGUsIFdhbGxUaW1lKQogI2VuZGlmCiAjaWYgZGVmaW5lZChB
cHBsZVBheUxpbmVJdGVtQWRkaXRpb25zX2RlY29kZV9tZW1iZXJzKQogICAgIEFwcGxlUGF5TGlu
ZUl0ZW1BZGRpdGlvbnNfZGVjb2RlX21lbWJlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29j
b2EubW0KaW5kZXggNzQ3M2E2MDJmOGM2YzA4ZDQyODE5Y2MxM2I0Y2Y3ZGViMjA1M2Q4Yi4uNWYx
YzMxYjZlOWUxZTllZTIzOTMwZmRkMmRlMWY5MzViZjIzZWJkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3Vt
bWFyeUl0ZW1zQ29jb2EubW0KQEAgLTYwLDkgKzYwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAjaWYgSEFWRShQQVNTS0lUX1JFQ1VSUklOR19TVU1NQVJZX0lURU0pIHx8IEhBVkUoUEFTU0tJ
VF9ERUZFUlJFRF9TVU1NQVJZX0lURU0pCiAKLXN0YXRpYyBOU0RhdGUgKnRvRGF0ZShkb3VibGUg
ZGF0ZSkKK3N0YXRpYyBOU0RhdGUgKnRvRGF0ZShXYWxsVGltZSBkYXRlKQogewotICAgIHJldHVy
biBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2UxOTcwOmRhdGVdOworICAgIHJldHVy
biBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2UxOTcwOmRhdGUuc2Vjb25kc1NpbmNl
RXBvY2goKS52YWx1ZSgpXTsKIH0KIAogI2VuZGlmIC8vIEhBVkUoUEFTU0tJVF9SRUNVUlJJTkdf
U1VNTUFSWV9JVEVNKSB8fCBIQVZFKFBBU1NLSVRfREVGRVJSRURfU1VNTUFSWV9JVEVNKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5jcHAKaW5kZXggNGZiMjYzODU0
ODI4YjlmN2Y4ZTRmYmJhYjA3ZDRhMzRlZjRmNzM1ZC4uZjBmMmUzNmNlNDc4YmZlZjEzMmZlYTQy
NTIxNWMxZGVkMDhmOTc1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCS2V5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXkuY3BwCkBAIC01OCwxMyArNTgsMjAgQEAgUmVmPElEQktleT4gSURCS2V5OjpjcmVhdGVC
aW5hcnkoSlNDOjpKU0FycmF5QnVmZmVyVmlldyYgYXJyYXlCdWZmZXJWaWV3KQogICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IElEQktleShUaHJlYWRTYWZlRGF0YUJ1ZmZlcjo6Y29weURhdGEoYnVm
ZmVyVmlldy0+ZGF0YSgpLCBidWZmZXJWaWV3LT5ieXRlTGVuZ3RoKCkpKSk7CiB9CiAKLUlEQktl
eTo6SURCS2V5KEluZGV4ZWREQjo6S2V5VHlwZSB0eXBlLCBkb3VibGUgbnVtYmVyKQotICAgIDog
bV90eXBlKHR5cGUpCitJREJLZXk6OklEQktleShkb3VibGUgbnVtYmVyKQorICAgIDogbV90eXBl
KEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyKQogICAgICwgbV92YWx1ZShudW1iZXIpCiAgICAg
LCBtX3NpemVFc3RpbWF0ZShPdmVyaGVhZFNpemUgKyBzaXplb2YoZG91YmxlKSkKIHsKIH0KIAor
SURCS2V5OjpJREJLZXkoV2FsbFRpbWUgZGF0ZSkKKyAgICA6IG1fdHlwZShJbmRleGVkREI6Oktl
eVR5cGU6OkRhdGUpCisgICAgLCBtX3ZhbHVlKGRhdGUpCisgICAgLCBtX3NpemVFc3RpbWF0ZShP
dmVyaGVhZFNpemUgKyBzaXplb2YoV2FsbFRpbWUpKQoreworfQorCiBJREJLZXk6OklEQktleShj
b25zdCBTdHJpbmcmIHZhbHVlKQogICAgIDogbV90eXBlKEluZGV4ZWREQjo6S2V5VHlwZTo6U3Ry
aW5nKQogICAgICwgbV92YWx1ZSh2YWx1ZSkKQEAgLTEyNiw3ICsxMzMsMTEgQEAgaW50IElEQktl
eTo6Y29tcGFyZShjb25zdCBJREJLZXkmIG90aGVyKSBjb25zdAogICAgICAgICByZXR1cm4gY29t
cGFyZUJpbmFyeUtleURhdGEoc3RkOjpnZXQ8VGhyZWFkU2FmZURhdGFCdWZmZXI+KG1fdmFsdWUp
LCBzdGQ6OmdldDxUaHJlYWRTYWZlRGF0YUJ1ZmZlcj4ob3RoZXIubV92YWx1ZSkpOwogICAgIGNh
c2UgSW5kZXhlZERCOjpLZXlUeXBlOjpTdHJpbmc6CiAgICAgICAgIHJldHVybiAtY29kZVBvaW50
Q29tcGFyZShzdGQ6OmdldDxTdHJpbmc+KG90aGVyLm1fdmFsdWUpLCBzdGQ6OmdldDxTdHJpbmc+
KG1fdmFsdWUpKTsKLSAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAgICBjYXNl
IEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZTogeworICAgICAgICBhdXRvIGRhdGUgPSBzdGQ6Omdl
dDxXYWxsVGltZT4obV92YWx1ZSk7CisgICAgICAgIGF1dG8gb3RoZXJEYXRlID0gc3RkOjpnZXQ8
V2FsbFRpbWU+KG90aGVyLm1fdmFsdWUpOworICAgICAgICByZXR1cm4gKGRhdGUgPCBvdGhlckRh
dGUpID8gLTEgOiAoKGRhdGUgPiBvdGhlckRhdGUpID8gMSA6IDApOworICAgIH0KICAgICBjYXNl
IEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyOiB7CiAgICAgICAgIGF1dG8gbnVtYmVyID0gc3Rk
OjpnZXQ8ZG91YmxlPihtX3ZhbHVlKTsKICAgICAgICAgYXV0byBvdGhlck51bWJlciA9IHN0ZDo6
Z2V0PGRvdWJsZT4ob3RoZXIubV92YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQktleS5oCmluZGV4IGMyOGZkY2YzNWJmM2RmZGI3YjFmZGE1ZTdjZWM1OWEzZDQwNjk3
NzQuLjE4NmE5MzZmMmYzOTVjM2Y2M2FiZDUzYzJkYWYzNjBmODQ4ODYwYjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTUxLDcgKzUyLDcg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIFJlZjxJREJLZXk+IGNyZWF0ZU51bWJlcihkb3VibGUg
bnVtYmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCS2V5KEluZGV4
ZWREQjo6S2V5VHlwZTo6TnVtYmVyLCBudW1iZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSURCS2V5KG51bWJlcikpOwogICAgIH0KIAogICAgIHN0YXRpYyBSZWY8SURCS2V5PiBj
cmVhdGVTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCkBAIC01OSw5ICs2MCw5IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCS2V5KHN0cmluZykpOwogICAgIH0K
IAotICAgIHN0YXRpYyBSZWY8SURCS2V5PiBjcmVhdGVEYXRlKGRvdWJsZSBkYXRlKQorICAgIHN0
YXRpYyBSZWY8SURCS2V5PiBjcmVhdGVEYXRlKFdhbGxUaW1lIGRhdGUpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJLZXkoSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlLCBk
YXRlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQktleShkYXRlKSk7CiAgICAg
fQogCiAgICAgc3RhdGljIFJlZjxJREJLZXk+IGNyZWF0ZU11bHRpRW50cnlBcnJheShjb25zdCBW
ZWN0b3I8UmVmUHRyPElEQktleT4+JiBhcnJheSkKQEAgLTEyMCwxMCArMTIxLDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIHN0ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSk7CiAgICAgfQogCi0g
ICAgZG91YmxlIGRhdGUoKSBjb25zdAorICAgIFdhbGxUaW1lIGRhdGUoKSBjb25zdAogICAgIHsK
ICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6OkRhdGUpOwotICAg
ICAgICByZXR1cm4gc3RkOjpnZXQ8ZG91YmxlPihtX3ZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6Z2V0PFdhbGxUaW1lPihtX3ZhbHVlKTsKICAgICB9CiAKICAgICBkb3VibGUgbnVtYmVyKCkg
Y29uc3QKQEAgLTE2MywxMyArMTY0LDE0IEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAotICAg
IElEQktleShJbmRleGVkREI6OktleVR5cGUsIGRvdWJsZSBudW1iZXIpOworICAgIGV4cGxpY2l0
IElEQktleShkb3VibGUpOworICAgIGV4cGxpY2l0IElEQktleShXYWxsVGltZSk7CiAgICAgZXhw
bGljaXQgSURCS2V5KGNvbnN0IFN0cmluZyYgdmFsdWUpOwogICAgIElEQktleShjb25zdCBWZWN0
b3I8UmVmUHRyPElEQktleT4+JiBrZXlBcnJheSwgc2l6ZV90IGFycmF5U2l6ZSk7CiAgICAgZXhw
bGljaXQgSURCS2V5KGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJik7CiAKICAgICBjb25zdCBJ
bmRleGVkREI6OktleVR5cGUgbV90eXBlOwotICAgIHN0ZDo6dmFyaWFudDxWZWN0b3I8UmVmUHRy
PElEQktleT4+LCBTdHJpbmcsIGRvdWJsZSwgVGhyZWFkU2FmZURhdGFCdWZmZXI+IG1fdmFsdWU7
CisgICAgc3RkOjp2YXJpYW50PFZlY3RvcjxSZWZQdHI8SURCS2V5Pj4sIFN0cmluZywgV2FsbFRp
bWUsIGRvdWJsZSwgVGhyZWFkU2FmZURhdGFCdWZmZXI+IG1fdmFsdWU7CiAKICAgICBjb25zdCBz
aXplX3QgbV9zaXplRXN0aW1hdGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCS2V5RGF0YS5jcHAKaW5kZXggMmEzN2M1MjhlZjViZjlkOTU3NzNhMGIxMGYwMjUy
MjliZGU1YTQxOC4uZTQ5ZmIzZTcyOGJiMzUwMzk0OGNmOTg5NjM2NzJiNjUyMTkwZjgxYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKQEAg
LTkxLDcgKzkxLDcgQEAgUmVmUHRyPElEQktleT4gSURCS2V5RGF0YTo6bWF5YmVDcmVhdGVJREJL
ZXkoKSBjb25zdAogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpTdHJpbmc6CiAgICAgICAg
IHJldHVybiBJREJLZXk6OmNyZWF0ZVN0cmluZyhzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpKTsK
ICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKLSAgICAgICAgcmV0dXJuIElEQktl
eTo6Y3JlYXRlRGF0ZShzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpKTsKKyAgICAgICAgcmV0dXJu
IElEQktleTo6Y3JlYXRlRGF0ZShzdGQ6OmdldDxXYWxsVGltZT4obV92YWx1ZSkpOwogICAgIGNh
c2UgSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6CiAgICAgICAgIHJldHVybiBJREJLZXk6OmNy
ZWF0ZU51bWJlcihzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpKTsKICAgICBjYXNlIEluZGV4ZWRE
Qjo6S2V5VHlwZTo6TWF4OgpAQCAtMTM2LDYgKzEzNiw4IEBAIHZvaWQgSURCS2V5RGF0YTo6aXNv
bGF0ZWRDb3B5KGNvbnN0IElEQktleURhdGEmIHNvdXJjZSwgSURCS2V5RGF0YSYgZGVzdGluYXRp
b24pCiAgICAgICAgIGRlc3RpbmF0aW9uLm1fdmFsdWUgPSBzdGQ6OmdldDxTdHJpbmc+KHNvdXJj
ZS5tX3ZhbHVlKS5pc29sYXRlZENvcHkoKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5k
ZXhlZERCOjpLZXlUeXBlOjpEYXRlOgorICAgICAgICBkZXN0aW5hdGlvbi5tX3ZhbHVlID0gc3Rk
OjpnZXQ8V2FsbFRpbWU+KHNvdXJjZS5tX3ZhbHVlKTsKKyAgICAgICAgcmV0dXJuOwogICAgIGNh
c2UgSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6CiAgICAgICAgIGRlc3RpbmF0aW9uLm1fdmFs
dWUgPSBzdGQ6OmdldDxkb3VibGU+KHNvdXJjZS5tX3ZhbHVlKTsKICAgICAgICAgcmV0dXJuOwpA
QCAtMTc2LDYgKzE3OCw4IEBAIHZvaWQgSURCS2V5RGF0YTo6ZW5jb2RlKEtleWVkRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICAgICAgICAgZW5jb2Rlci5lbmNvZGVTdHJpbmcoInN0cmluZyIsIHN0
ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSkpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRl
eGVkREI6OktleVR5cGU6OkRhdGU6CisgICAgICAgIGVuY29kZXIuZW5jb2RlRG91YmxlKCJkYXRl
Iiwgc3RkOjpnZXQ8V2FsbFRpbWU+KG1fdmFsdWUpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUo
KSk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVy
OgogICAgICAgICBlbmNvZGVyLmVuY29kZURvdWJsZSgibnVtYmVyIiwgc3RkOjpnZXQ8ZG91Ymxl
PihtX3ZhbHVlKSk7CiAgICAgICAgIHJldHVybjsKQEAgLTIyMiw3ICsyMjYsMTYgQEAgYm9vbCBJ
REJLZXlEYXRhOjpkZWNvZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiByZXN1
bHQpCiAgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZVN0cmluZygic3RyaW5nIiwgc3RkOjpn
ZXQ8U3RyaW5nPihyZXN1bHQubV92YWx1ZSkpOwogICAgIH0KIAotICAgIGlmIChyZXN1bHQubV90
eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyIHx8IHJlc3VsdC5tX3R5cGUgPT0gSW5k
ZXhlZERCOjpLZXlUeXBlOjpEYXRlKSB7CisgICAgaWYgKHJlc3VsdC5tX3R5cGUgPT0gSW5kZXhl
ZERCOjpLZXlUeXBlOjpEYXRlKSB7CisgICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gV2FsbFRpbWUo
KTsKKyAgICAgICAgZG91YmxlIHNlY29uZHM7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVE
b3VibGUoImRhdGUiLCBzZWNvbmRzKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgcmVzdWx0Lm1fdmFsdWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoc2Vjb25kcyk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGlmIChyZXN1bHQubV90eXBlID09IElu
ZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyKSB7CiAgICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gMC4w
OwogICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVEb3VibGUoIm51bWJlciIsIHN0ZDo6Z2V0
PGRvdWJsZT4ocmVzdWx0Lm1fdmFsdWUpKTsKICAgICB9CkBAIC00MDQsNyArNDE3LDcgQEAgdm9p
ZCBJREJLZXlEYXRhOjpzZXRTdHJpbmdWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKQogICAgIG1f
aXNOdWxsID0gZmFsc2U7CiB9CiAKLXZvaWQgSURCS2V5RGF0YTo6c2V0RGF0ZVZhbHVlKGRvdWJs
ZSB2YWx1ZSkKK3ZvaWQgSURCS2V5RGF0YTo6c2V0RGF0ZVZhbHVlKFdhbGxUaW1lIHZhbHVlKQog
ewogICAgICp0aGlzID0gSURCS2V5RGF0YSgpOwogICAgIG1fdmFsdWUgPSB2YWx1ZTsKQEAgLTQ1
MCw4ICs0NjMsOSBAQCBib29sIElEQktleURhdGE6Om9wZXJhdG9yPT0oY29uc3QgSURCS2V5RGF0
YSYgb3RoZXIpIGNvbnN0CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok1pbjoKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjoKLSAg
ICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKICAgICAgICAgcmV0dXJuIHN0ZDo6Z2V0
PGRvdWJsZT4obV92YWx1ZSkgPT0gc3RkOjpnZXQ8ZG91YmxlPihvdGhlci5tX3ZhbHVlKTsKKyAg
ICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAgcmV0dXJuIHN0ZDo6Z2V0
PFdhbGxUaW1lPihtX3ZhbHVlKSA9PSBzdGQ6OmdldDxXYWxsVGltZT4ob3RoZXIubV92YWx1ZSk7
CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZzoKICAgICAgICAgcmV0dXJuIHN0
ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSkgPT0gc3RkOjpnZXQ8U3RyaW5nPihvdGhlci5tX3ZhbHVl
KTsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6QmluYXJ5OgpAQCAtNDgyLDYgKzQ5Niw3
IEBAIHNpemVfdCBJREJLZXlEYXRhOjpzaXplKCkgY29uc3QKICAgICBjYXNlIEluZGV4ZWREQjo6
S2V5VHlwZTo6U3RyaW5nOgogICAgICAgICByZXR1cm4gc3RkOjpnZXQ8U3RyaW5nPihtX3ZhbHVl
KS5zaXplSW5CeXRlcygpOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlOgorICAg
ICAgICByZXR1cm4gc2l6ZW9mKFdhbGxUaW1lKTsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlw
ZTo6TnVtYmVyOgogICAgICAgICByZXR1cm4gc2l6ZW9mKGRvdWJsZSk7CiAgICAgY2FzZSBJbmRl
eGVkREI6OktleVR5cGU6Ok1heDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQktleURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQktleURhdGEuaAppbmRleCA0Yjk3ODUzNjlkMTkwYTZiMTk2OTFkMTM3YWUxNTY3ZTVjMzc5
NWQ5Li44NDUwNjI1NWFjYTg0OTg0ODU1MzJmZmE1NmJkZmJmMThiMWJjZGI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiSURCS2V5LmgiCiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3
dGYvU3RkU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04MSw3ICs4Miw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEFycmF5VmFsdWUoY29uc3QgVmVjdG9yPElEQktleURhdGE+
Jik7CiAgICAgdm9pZCBzZXRCaW5hcnlWYWx1ZShjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYp
OwogICAgIHZvaWQgc2V0U3RyaW5nVmFsdWUoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBzZXRE
YXRlVmFsdWUoZG91YmxlKTsKKyAgICB2b2lkIHNldERhdGVWYWx1ZShXYWxsVGltZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXROdW1iZXJWYWx1ZShkb3VibGUpOwogCiAgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwpAQCAtMTI5LDYg
KzEzMCw4IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok1pbjoK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVt
YmVyOgorICAgICAgICAgICAgaGFzaENvZGVzLmFwcGVuZChTdHJpbmdIYXNoZXI6Omhhc2hNZW1v
cnk8c2l6ZW9mKFdhbGxUaW1lKT4oJnN0ZDo6Z2V0PFdhbGxUaW1lPihtX3ZhbHVlKSkpOworICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlOgog
ICAgICAgICAgICAgaGFzaENvZGVzLmFwcGVuZChTdHJpbmdIYXNoZXI6Omhhc2hNZW1vcnk8c2l6
ZW9mKGRvdWJsZSk+KCZzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpKSk7CiAgICAgICAgICAgICBi
cmVhazsKQEAgLTE1OCwxMCArMTYxLDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0ZDo6
Z2V0PFN0cmluZz4obV92YWx1ZSk7CiAgICAgfQogCi0gICAgZG91YmxlIGRhdGUoKSBjb25zdAor
ICAgIFdhbGxUaW1lIGRhdGUoKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9
PSBJbmRleGVkREI6OktleVR5cGU6OkRhdGUpOwotICAgICAgICByZXR1cm4gc3RkOjpnZXQ8ZG91
YmxlPihtX3ZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6Z2V0PFdhbGxUaW1lPihtX3ZhbHVl
KTsKICAgICB9CiAKICAgICBkb3VibGUgbnVtYmVyKCkgY29uc3QKQEAgLTE5Myw3ICsxOTYsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9pc051bGwgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0Rl
bGV0ZWRWYWx1ZSB7IGZhbHNlIH07CiAKLSAgICBzdGQ6OnZhcmlhbnQ8VmVjdG9yPElEQktleURh
dGE+LCBTdHJpbmcsIGRvdWJsZSwgVGhyZWFkU2FmZURhdGFCdWZmZXI+IG1fdmFsdWU7CisgICAg
c3RkOjp2YXJpYW50PFZlY3RvcjxJREJLZXlEYXRhPiwgU3RyaW5nLCBXYWxsVGltZSwgZG91Ymxl
LCBUaHJlYWRTYWZlRGF0YUJ1ZmZlcj4gbV92YWx1ZTsKIH07CiAKIHN0cnVjdCBJREJLZXlEYXRh
SGFzaCB7CkBAIC0yNDQsNiArMjQ3LDggQEAgdm9pZCBJREJLZXlEYXRhOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICAgICAgZW5jb2RlciA8PCBzdGQ6OmdldDxTdHJpbmc+KG1f
dmFsdWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0
ZToKKyAgICAgICAgZW5jb2RlciA8PCBzdGQ6OmdldDxXYWxsVGltZT4obV92YWx1ZSk7CisgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6CiAgICAgICAg
IGVuY29kZXIgPDwgc3RkOjpnZXQ8ZG91YmxlPihtX3ZhbHVlKTsKICAgICAgICAgYnJlYWs7CkBA
IC0yODQsNiArMjg5LDEwIEBAIHN0ZDo6b3B0aW9uYWw8SURCS2V5RGF0YT4gSURCS2V5RGF0YTo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAg
ICAgICAga2V5RGF0YS5tX3ZhbHVlID0gV2FsbFRpbWUoKTsKKyAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzdGQ6OmdldDxXYWxsVGltZT4oa2V5RGF0YS5tX3ZhbHVlKSkpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgICAgICBicmVhazsKICAgICBjYXNlIEluZGV4ZWRE
Qjo6S2V5VHlwZTo6TnVtYmVyOgogICAgICAgICBrZXlEYXRhLm1fdmFsdWUgPSAwLjA7CiAgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RkOjpnZXQ8ZG91YmxlPihrZXlEYXRhLm1fdmFsdWUp
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJpYWxpemF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJpYWxpemF0aW9uLmNwcAppbmRleCAyYTJjMWZjMzI5NTgwNWQ1MmZkNTZhZjMw
YjQ1NWFlMmNjY2M0ODc3Li44NzMwMWNmZTE1MWVjNDVmN2I1YTdiNjNkZjhkOTZkZWQ5MDY2M2Nl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VyaWFsaXphdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3BwCkBAIC0yNDMsNyArMjQzLDcgQEAgc3RhdGljIHZv
aWQgZW5jb2RlS2V5KFZlY3Rvcjx1aW50OF90PiYgZGF0YSwgY29uc3QgSURCS2V5RGF0YSYga2V5
KQogICAgICAgICB3cml0ZURvdWJsZShkYXRhLCBrZXkubnVtYmVyKCkpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIFNJREJLZXlUeXBlOjpEYXRlOgotICAgICAgICB3cml0ZURvdWJsZShkYXRh
LCBrZXkuZGF0ZSgpKTsKKyAgICAgICAgd3JpdGVEb3VibGUoZGF0YSwga2V5LmRhdGUoKS5zZWNv
bmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNJREJL
ZXlUeXBlOjpTdHJpbmc6IHsKICAgICAgICAgYXV0byBzdHJpbmcgPSBrZXkuc3RyaW5nKCk7CkBA
IC0zMTMsMTEgKzMxMywxMSBAQCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2Rl
S2V5KGNvbnN0IHVpbnQ4X3QqJiBkYXRhLCBjb25zdCB1aW50OF90KiBlbgogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAgICAgY2FzZSBTSURCS2V5VHlwZTo6RGF0ZTogewotICAgICAgICBk
b3VibGUgZDsKLSAgICAgICAgaWYgKCFyZWFkRG91YmxlKGRhdGEsIGVuZCwgZCkpCisgICAgICAg
IGRvdWJsZSBzZWNvbmRzOworICAgICAgICBpZiAoIXJlYWREb3VibGUoZGF0YSwgZW5kLCBzZWNv
bmRzKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICByZXN1bHQuc2V0RGF0
ZVZhbHVlKGQpOworICAgICAgICByZXN1bHQuc2V0RGF0ZVZhbHVlKFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyhzZWNvbmRzKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBjYXNl
IFNJREJLZXlUeXBlOjpTdHJpbmc6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL0lETFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCmluZGV4
IGZkMDk5ZjU0Mzc4YTE5OTVkM2YxNDc4ODk5NzU4MGNjYzhlZjljNTUuLjlmNjEyYTYxZTRiOWI3
NGMxMzUyYjE3YWNkYmI2N2RiNDZjOThmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL0lETFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMu
aApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9CcmlnYW5kLmg+CiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYv
V2FsbFRpbWUuaD4KIAogI2lmIEVOQUJMRShXRUJHTCkKICNpbmNsdWRlICJXZWJHTEFueS5oIgpA
QCAtMjU5LDExICsyNjAsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElETFR5cGVk
QXJyYXkgOiBJRExCdWZmZXJTb3VyY2U8VD4geyB9OwogCiAvLyBOb24tV2ViSURMIGV4dGVuc2lv
bnMKIAotc3RydWN0IElETERhdGUgOiBJRExUeXBlPGRvdWJsZT4geyAKLSAgICB1c2luZyBOdWxs
YWJsZVR5cGUgPSBkb3VibGU7Ci0gICAgc3RhdGljIGRvdWJsZSBudWxsVmFsdWUoKSB7IHJldHVy
biBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOyB9Ci0gICAgc3RhdGlj
IGJvb2wgaXNOdWxsVmFsdWUoZG91YmxlIHZhbHVlKSB7IHJldHVybiBzdGQ6OmlzbmFuKHZhbHVl
KTsgfQotICAgIHN0YXRpYyBkb3VibGUgZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0KK3N0cnVjdCBJRExEYXRlIDogSURMVHlwZTxXYWxsVGlt
ZT4geyAKKyAgICB1c2luZyBOdWxsYWJsZVR5cGUgPSBXYWxsVGltZTsKKyAgICBzdGF0aWMgV2Fs
bFRpbWUgbnVsbFZhbHVlKCkgeyByZXR1cm4gV2FsbFRpbWU6Om5hbigpOyB9CisgICAgc3RhdGlj
IGJvb2wgaXNOdWxsVmFsdWUoV2FsbFRpbWUgdmFsdWUpIHsgcmV0dXJuIHN0ZDo6aXNuYW4odmFs
dWUpOyB9CisgICAgc3RhdGljIFdhbGxUaW1lIGV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShXYWxs
VGltZSB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0KIH07CiAKIHN0cnVjdCBJRExKU09OIDogSURM
VHlwZTxTdHJpbmc+IHsgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9J
REJCaW5kaW5nVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJp
bmRpbmdVdGlsaXRpZXMuY3BwCmluZGV4IDllNTY3MjFkM2VkYWNkOGI5MGJiYjcwZDQzMTNlMWY3
MDFmZTkxOTMuLmM3MjgxYThjYTEwNjAwYjJiYjdjYTgzM2ZjNmI1NThlMTQyYmNiOWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3Bw
CkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyBib29sIGdldChKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNWYWx1ZSBvYmplY3QsIGNvbnN0IFN0cmluCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgICAgICBpZiAoa2V5UGF0aEVsZW1lbnQgPT0gImxh
c3RNb2RpZmllZCIpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IGpzTnVtYmVyKGpzQ2FzdDxKU0Zp
bGUqPihvYmopLT53cmFwcGVkKCkubGFzdE1vZGlmaWVkKCkpOworICAgICAgICAgICAgcmVzdWx0
ID0ganNOdW1iZXIoanNDYXN0PEpTRmlsZSo+KG9iaiktPndyYXBwZWQoKS5sYXN0TW9kaWZpZWQo
KS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGlmIChrZXlQYXRoRWxlbWVudCA9PSAibGFzdE1v
ZGlmaWVkRGF0ZSIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQ29udmVydERhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252
ZXJ0RGF0ZS5jcHAKaW5kZXggMTM2N2VkMjU0NzIxMWEzN2JmNzUzODRkODM5YThmZGVhMzI1OWM3
Ni4uYWQ1ZGU1NjE2NzM4M2Y0MzQ5NGYwODIzNGNjMTRkOTcyNzc3YTJjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHAKQEAgLTMwLDIxICsz
MCwyNCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotSlNW
YWx1ZSBqc0RhdGUoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIGRvdWJsZSB2
YWx1ZSkKK0pTVmFsdWUganNEYXRlKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBXYWxsVGltZSB2YWx1ZSkKIHsKLSAgICByZXR1cm4gRGF0ZUluc3RhbmNlOjpjcmVhdGUobGV4
aWNhbEdsb2JhbE9iamVjdC52bSgpLCBsZXhpY2FsR2xvYmFsT2JqZWN0LmRhdGVTdHJ1Y3R1cmUo
KSwgdmFsdWUpOworICAgIHJldHVybiBEYXRlSW5zdGFuY2U6OmNyZWF0ZShsZXhpY2FsR2xvYmFs
T2JqZWN0LnZtKCksIGxleGljYWxHbG9iYWxPYmplY3QuZGF0ZVN0cnVjdHVyZSgpLCB2YWx1ZS5z
ZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZG91YmxlIHZhbHVlVG9E
YXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFs
dWUpCitXYWxsVGltZSB2YWx1ZVRvRGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogeworICAgIGRvdWJsZSBtaWxsaXNlY29uZHMgPSBz
dGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworCiAgICAgYXV0byYgdm0g
PSBsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCk7CiAgICAgaWYgKHZhbHVlLmluaGVyaXRzPERhdGVJ
bnN0YW5jZT4odm0pKQotICAgICAgICByZXR1cm4ganNDYXN0PERhdGVJbnN0YW5jZSo+KHZhbHVl
KS0+aW50ZXJuYWxOdW1iZXIoKTsKLSAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkKLSAgICAgICAg
cmV0dXJuIHZhbHVlLmFzTnVtYmVyKCk7Ci0gICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpCi0gICAg
ICAgIHJldHVybiB2bS5kYXRlQ2FjaGUucGFyc2VEYXRlKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB2
bSwgdmFsdWUuZ2V0U3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSk7Ci0gICAgcmV0dXJuIHN0
ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisgICAgICAgIG1pbGxpc2Vj
b25kcyA9IGpzQ2FzdDxEYXRlSW5zdGFuY2UqPih2YWx1ZSktPmludGVybmFsTnVtYmVyKCk7Cisg
ICAgZWxzZSBpZiAodmFsdWUuaXNOdW1iZXIoKSkKKyAgICAgICAgbWlsbGlzZWNvbmRzID0gdmFs
dWUuYXNOdW1iZXIoKTsKKyAgICBlbHNlIGlmICh2YWx1ZS5pc1N0cmluZygpKQorICAgICAgICBt
aWxsaXNlY29uZHMgPSB2bS5kYXRlQ2FjaGUucGFyc2VEYXRlKCZsZXhpY2FsR2xvYmFsT2JqZWN0
LCB2bSwgdmFsdWUuZ2V0U3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CisKKyAgICByZXR1
cm4gV2FsbFRpbWU6OmZyb21TZWNvbmRzKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobWlsbGlz
ZWNvbmRzKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuaAppbmRleCA1NjI0MjkyOWY3MmRjYzVlNGQ0
NDA0MjgxMTEyZWJlMDdhZjhiNjc0Li5kMTIzNjFmZDZmZjFlMWU2MTBiM2YxMjE4ZTgwNjhmODY4
YzI3Y2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZl
cnREYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0
ZS5oCkBAIC0yOCwxNCArMjgsMTUgQEAKICNpbmNsdWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUg
IkpTRE9NQ29udmVydEJhc2UuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0dsb2JhbE9i
amVjdC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLUpTQzo6SlNWYWx1ZSBqc0RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIGRvdWJsZSB2YWx1
ZSk7Ci1kb3VibGUgdmFsdWVUb0RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1
ZSk7IC8vIE5hTiBpZiB0aGUgdmFsdWUgY2FuJ3QgYmUgY29udmVydGVkIHRvIGEgZGF0ZS4KK0pT
Qzo6SlNWYWx1ZSBqc0RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIFdhbGxUaW1lIHZhbHVlKTsK
K1dhbGxUaW1lIHZhbHVlVG9EYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpTVmFsdWUp
OyAvLyBOYU4gaWYgdGhlIHZhbHVlIGNhbid0IGJlIGNvbnZlcnRlZCB0byBhIGRhdGUuCiAKIHRl
bXBsYXRlPD4gc3RydWN0IENvbnZlcnRlcjxJRExEYXRlPiA6IERlZmF1bHRDb252ZXJ0ZXI8SURM
RGF0ZT4gewotICAgIHN0YXRpYyBkb3VibGUgY29udmVydChKU0M6OkpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgdmFsdWUpCisgICAgc3RhdGljIFdhbGxU
aW1lIGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlND
OjpKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIHZhbHVlVG9EYXRlKGxleGlj
YWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICB9CkBAIC00Niw3ICs0Nyw3IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEpTQ29udmVydGVyPElETERhdGU+IHsKICAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgbmVlZHNHbG9iYWxPYmplY3QgPSBmYWxzZTsKIAogICAgIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBiZSB0YWtpbmcgYSBKU0RPTUdsb2JhbE9iamVjdCBhbmQgcGFzc2luZyBpdCB0byBqc0RhdGUu
Ci0gICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSkKKyAgICBzdGF0aWMgSlNDOjpKU1ZhbHVl
IGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgV2FsbFRp
bWUgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4ganNEYXRlKGxleGljYWxHbG9iYWxPYmpl
Y3QsIHZhbHVlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAppbmRleCAwYmFmYTc5ODMwOWMxNjUwYzY0MDJiZDA2
ZWVhNzMwMTE5NmUzZTMzLi42NjEyMTUzYjczYWRmMzNkODQ5NTdjOTdiOGRiOGVkOTQxYzEzOWNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0
VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5jcHAKQEAgLTE2MDQsNyArMTYwNCwxMCBAQCBwcml2YXRlOgogICAgICAgICB3cml0
ZShmaWxlLnVybCgpLnN0cmluZygpKTsKICAgICAgICAgd3JpdGUoZmlsZS50eXBlKCkpOwogICAg
ICAgICB3cml0ZShmaWxlLm5hbWUoKSk7Ci0gICAgICAgIHdyaXRlKHN0YXRpY19jYXN0PGRvdWJs
ZT4oZmlsZS5sYXN0TW9kaWZpZWRPdmVycmlkZSgpLnZhbHVlX29yKC0xKSkpOworICAgICAgICBp
ZiAoYXV0byBsYXN0TW9kaWZpZWRPdmVycmlkZSA9IGZpbGUubGFzdE1vZGlmaWVkT3ZlcnJpZGUo
KSkKKyAgICAgICAgICAgIHdyaXRlKGxhc3RNb2RpZmllZE92ZXJyaWRlLT5zZWNvbmRzU2luY2VF
cG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgd3JpdGUo
LTEpOwogICAgIH0KIAogICAgIHZvaWQgd3JpdGUoUHJlZGVmaW5lZENvbG9yU3BhY2UgY29sb3JT
cGFjZSkKQEAgLTI1NDksMTMgKzI1NTIsMTMgQEAgcHJpdmF0ZToKICAgICAgICAgQ2FjaGVkU3Ry
aW5nUmVmIG5hbWU7CiAgICAgICAgIGlmICghcmVhZFN0cmluZ0RhdGEobmFtZSkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4gb3B0aW9u
YWxMYXN0TW9kaWZpZWQ7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IG9wdGlvbmFs
TGFzdE1vZGlmaWVkOwogICAgICAgICBpZiAobV92ZXJzaW9uID4gNikgewogICAgICAgICAgICAg
ZG91YmxlIGxhc3RNb2RpZmllZDsKICAgICAgICAgICAgIGlmICghcmVhZChsYXN0TW9kaWZpZWQp
KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGlmIChsYXN0TW9k
aWZpZWQgPj0gMCkKLSAgICAgICAgICAgICAgICBvcHRpb25hbExhc3RNb2RpZmllZCA9IGxhc3RN
b2RpZmllZDsKKyAgICAgICAgICAgICAgICBvcHRpb25hbExhc3RNb2RpZmllZCA9IFdhbGxUaW1l
Ojpmcm9tU2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKGxhc3RNb2RpZmllZCkpOwog
ICAgICAgICB9CiAKICAgICAgICAgLy8gSWYgdGhlIGJsb2IgVVJMIGZvciB0aGlzIGZpbGUgaGFz
IGFuIGFzc29jaWF0ZWQgYmxvYiBmaWxlIHBhdGgsIHByZWZlciB0aGF0IG9uZSBvdmVyIHRoZSAi
YnVpbHQtaW4iIHBhdGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcAppbmRleCA5NzQ0YjAxNTdhZTEx
YzExMGNkOGMyODllNTI3Y2JmYTAyYzEwZTkxLi5kMmUxOGIyZmY0ZWRjM2Y2NGEyM2NiNTdlZTg0
MDFkZTI5NDJjMTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAg
RmlsZTo6RmlsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBVUkwmJiB1cmwsIFN0
cmluZyYmIHR5cGUsIFN0cmluZyYmIHAKIHsKIH0KIAotRmlsZTo6RmlsZShEZXNlcmlhbGl6YXRp
b25Db250cnVjdG9yLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJp
bmcmIHBhdGgsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxpbnQ2NF90PiYgbGFzdE1vZGlmaWVkKQorRmls
ZTo6RmlsZShEZXNlcmlhbGl6YXRpb25Db250cnVjdG9yLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxXYWxsVGlt
ZT4mIGxhc3RNb2RpZmllZCkKICAgICA6IEJsb2IoZGVzZXJpYWxpemF0aW9uQ29udHJ1Y3Rvciwg
Y29udGV4dCwgdXJsLCB0eXBlLCB7IH0sIHBhdGgpCiAgICAgLCBtX3BhdGgocGF0aCkKICAgICAs
IG1fbmFtZShuYW1lKQpAQCAtNzgsNyArNzgsNyBAQCBGaWxlOjpGaWxlKERlc2VyaWFsaXphdGlv
bkNvbnRydWN0b3IsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cgog
RmlsZTo6RmlsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBWZWN0b3I8QmxvYlBh
cnRWYXJpYW50PiYmIGJsb2JQYXJ0VmFyaWFudHMsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNv
bnN0IFByb3BlcnR5QmFnJiBwcm9wZXJ0eUJhZykKICAgICA6IEJsb2IoY29udGV4dCwgV1RGTW92
ZShibG9iUGFydFZhcmlhbnRzKSwgcHJvcGVydHlCYWcpCiAgICAgLCBtX25hbWUoZmlsZW5hbWUp
Ci0gICAgLCBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZShwcm9wZXJ0eUJhZy5sYXN0TW9kaWZp
ZWQudmFsdWVfb3IoV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNv
bmRzKCkpKQorICAgICwgbV9sYXN0TW9kaWZpZWREYXRlT3ZlcnJpZGUocHJvcGVydHlCYWcubGFz
dE1vZGlmaWVkID8gV2FsbFRpbWU6OmZyb21TZWNvbmRzKFNlY29uZHM6OmZyb21NaWxsaXNlY29u
ZHMoKnByb3BlcnR5QmFnLmxhc3RNb2RpZmllZCkpIDogV2FsbFRpbWU6Om5vdygpKQogewogfQog
CkBAIC05OSwyMyArOTksMjMgQEAgRmlsZTo6RmlsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBjb25zdCBGaWxlJiBmaWxlLCBjb25zdCBTdHJpbmcmIG5hbWUKIHsKIH0KIAotaW50
NjRfdCBGaWxlOjpsYXN0TW9kaWZpZWQoKSBjb25zdAorV2FsbFRpbWUgRmlsZTo6bGFzdE1vZGlm
aWVkKCkgY29uc3QKIHsKICAgICBpZiAobV9sYXN0TW9kaWZpZWREYXRlT3ZlcnJpZGUpCiAgICAg
ICAgIHJldHVybiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZS52YWx1ZSgpOwogCi0gICAgaW50
NjRfdCByZXN1bHQ7Ci0KICAgICAvLyBGSVhNRTogVGhpcyBkb2VzIHN5bmMtaS9vIG9uIHRoZSBt
YWluIHRocmVhZCBhbmQgYWxzbyByZWNhbGN1bGF0ZXMgZXZlcnkgdGltZSB0aGUgbWV0aG9kIGlz
IGNhbGxlZC4KICAgICAvLyBUaGUgaS9vIHNob3VsZCBiZSBwZXJmb3JtZWQgb24gYSBiYWNrZ3Jv
dW5kIHRocmVhZCwKICAgICAvLyBhbmQgdGhlIHJlc3VsdCBzaG91bGQgYmUgY2FjaGVkIGFsb25n
IHdpdGggYW4gYXN5bmNocm9ub3VzIG1vbml0b3IgZm9yIGNoYW5nZXMgdG8gdGhlIGZpbGUuCi0g
ICAgYXV0byBtb2RpZmljYXRpb25UaW1lID0gRmlsZVN5c3RlbTo6ZmlsZU1vZGlmaWNhdGlvblRp
bWUobV9wYXRoKTsKLSAgICBpZiAobW9kaWZpY2F0aW9uVGltZSkKLSAgICAgICAgcmVzdWx0ID0g
bW9kaWZpY2F0aW9uVGltZS0+c2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHNBczxpbnQ2
NF90PigpOwotICAgIGVsc2UKLSAgICAgICAgcmVzdWx0ID0gV2FsbFRpbWU6Om5vdygpLnNlY29u
ZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzQXM8aW50NjRfdD4oKTsKKyAgICBpZiAoYXV0byBt
b2RpZmljYXRpb25UaW1lID0gRmlsZVN5c3RlbTo6ZmlsZU1vZGlmaWNhdGlvblRpbWUobV9wYXRo
KSkKKyAgICAgICAgcmV0dXJuICptb2RpZmljYXRpb25UaW1lOwogCi0gICAgcmV0dXJuIHRpbWVD
bGlwKHJlc3VsdCk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpub3coKTsKK30KKworaW50NjRfdCBG
aWxlOjpsYXN0TW9kaWZpZWRGb3JCaW5kaW5ncygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRpbWVD
bGlwKGxhc3RNb2RpZmllZCgpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzQXM8aW50
NjRfdD4oKSk7CiB9CiAKIHZvaWQgRmlsZTo6Y29tcHV0ZU5hbWVBbmRDb250ZW50VHlwZShjb25z
dCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgbmFtZU92ZXJyaWRlLCBTdHJpbmcmIGVmZmVj
dGl2ZU5hbWUsIFN0cmluZyYgZWZmZWN0aXZlQ29udGVudFR5cGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5o
CmluZGV4IGM4ODAzMmI1ZWE3NzVhOGJmMjlkZGRiM2Q3M2ExY2RhNDA0NDE3MmEuLjRkYTczNGZi
NmQ4MGFlNGUxMzYxYmJiYWU3ZjhlZmE2OTQyOTQwZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvRmlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5oCkBA
IC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0
Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTUxLDcgKzUyLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZmlsZTsKICAg
ICB9CiAKLSAgICBzdGF0aWMgUmVmPEZpbGU+IGRlc2VyaWFsaXplKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgVVJMJiBzcmNVUkwsIGNv
bnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6Om9wdGlvbmFs
PGludDY0X3Q+JiBsYXN0TW9kaWZpZWQgPSBzdGQ6Om51bGxvcHQpCisgICAgc3RhdGljIFJlZjxG
aWxlPiBkZXNlcmlhbGl6ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIHBhdGgsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4mIGxhc3RNb2RpZmll
ZCA9IHN0ZDo6bnVsbG9wdCkKICAgICB7CiAgICAgICAgIGF1dG8gZmlsZSA9IGFkb3B0UmVmKCpu
ZXcgRmlsZShkZXNlcmlhbGl6YXRpb25Db250cnVjdG9yLCBjb250ZXh0LCBwYXRoLCBzcmNVUkws
IHR5cGUsIG5hbWUsIGxhc3RNb2RpZmllZCkpOwogICAgICAgICBmaWxlLT5zdXNwZW5kSWZOZWVk
ZWQoKTsKQEAgLTgwLDggKzgxLDEwIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHJlbGF0
aXZlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVsYXRpdmVQYXRoOyB9CiAgICAgdm9pZCBzZXRS
ZWxhdGl2ZVBhdGgoY29uc3QgU3RyaW5nJiByZWxhdGl2ZVBhdGgpIHsgbV9yZWxhdGl2ZVBhdGgg
PSByZWxhdGl2ZVBhdGg7IH0KICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVy
biBtX25hbWU7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQ2NF90IGxhc3RNb2RpZmllZCgpIGNv
bnN0OyAvLyBOdW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlIEVwb2NoLgotICAgIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8aW50NjRfdD4mIGxhc3RNb2RpZmllZE92ZXJyaWRlKCkgY29uc3QgeyByZXR1
cm4gbV9sYXN0TW9kaWZpZWREYXRlT3ZlcnJpZGU7IH0gLy8gTnVtYmVyIG9mIG1pbGxpc2Vjb25k
cyBzaW5jZSBFcG9jaC4KKyAgICBXYWxsVGltZSBsYXN0TW9kaWZpZWQoKSBjb25zdDsKKyAgICBj
b25zdCBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiYgbGFzdE1vZGlmaWVkT3ZlcnJpZGUoKSBjb25z
dCB7IHJldHVybiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZTsgfQorCisgICAgV0VCQ09SRV9F
WFBPUlQgaW50NjRfdCBsYXN0TW9kaWZpZWRGb3JCaW5kaW5ncygpIGNvbnN0OyAvLyBOdW1iZXIg
b2YgbWlsbGlzZWNvbmRzIHNpbmNlIEVwb2NoLgogCiAgICAgc3RhdGljIFN0cmluZyBjb250ZW50
VHlwZUZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKTsKIApAQCAtOTgsNyArMTAxLDcgQEAgcHJp
dmF0ZToKICAgICBGaWxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBCbG9iJiwgY29u
c3QgU3RyaW5nJiBuYW1lKTsKICAgICBGaWxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25z
dCBGaWxlJiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKIAotICAgIEZpbGUoRGVzZXJpYWxpemF0aW9u
Q29udHJ1Y3RvciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgcGF0aCwg
Y29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBzdGQ6Om9wdGlvbmFsPGludDY0X3Q+JiBsYXN0TW9kaWZpZWQpOworICAgIEZpbGUo
RGVzZXJpYWxpemF0aW9uQ29udHJ1Y3RvciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgcGF0aCwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiYgbGFzdE1vZGlm
aWVkKTsKIAogICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVOYW1lQW5kQ29udGVudFR5cGUoY29uc3Qg
U3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIG5hbWVPdmVycmlkZSwgU3RyaW5nJiBlZmZlY3Rp
dmVOYW1lLCBTdHJpbmcmIGVmZmVjdGl2ZUNvbnRlbnRUeXBlKTsKICNpZiBFTkFCTEUoRklMRV9S
RVBMQUNFTUVOVCkKQEAgLTExMiw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX3Jl
bGF0aXZlUGF0aDsKICAgICBTdHJpbmcgbV9uYW1lOwogCi0gICAgc3RkOjpvcHRpb25hbDxpbnQ2
NF90PiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFdhbGxU
aW1lPiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZTsKICAgICBtdXRhYmxlIHN0ZDo6b3B0aW9u
YWw8Ym9vbD4gbV9pc0RpcmVjdG9yeTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaWRsCmluZGV4
IGY1ZWI1Mzg5Y2JmMjJkMmI1NmMwZmI3OGZjYzZjOTRmNWY3YmMzOWMuLjZhMTJlYTA3MzFhODg1
YmZjNTQ3M2ZiZmU2MjUyMmMxZmM0MjAzMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRmlsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmlkbApAQCAt
MzQsNyArMzQsNyBAQCB0eXBlZGVmIChCdWZmZXJTb3VyY2Ugb3IgQmxvYiBvciBVU1ZTdHJpbmcp
IEJsb2JQYXJ0OwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBjb25zdHJ1
Y3RvcihzZXF1ZW5jZTxCbG9iUGFydD4gZmlsZUJpdHMsIFVTVlN0cmluZyBmaWxlTmFtZSwgb3B0
aW9uYWwgRmlsZVByb3BlcnR5QmFnIG9wdGlvbnMpOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBuYW1lOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxvbmcgbGFzdE1v
ZGlmaWVkOworICAgIFtJbXBsZW1lbnRlZEFzPWxhc3RNb2RpZmllZEZvckJpbmRpbmdzXSByZWFk
b25seSBhdHRyaWJ1dGUgbG9uZyBsb25nIGxhc3RNb2RpZmllZDsKIAogICAgIC8vIGh0dHBzOi8v
d2ljZy5naXRodWIuaW8vZW50cmllcy1hcGkvI2ZpbGUtaW50ZXJmYWNlCiAgICAgW0VuYWJsZWRB
dFJ1bnRpbWU9RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCwgSW1wbGVtZW50ZWRBcz1yZWxhdGl2ZVBh
dGhdIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgd2Via2l0UmVsYXRpdmVQYXRoOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4
IDhjMDE4ZDg1Y2U0ZmI2Mzg3ZmIwZTE5ZTliMzlmZjNhMTZlNGRlMmIuLmEyYWEwYWVkZDIwNzQ4
MzZmNzg0YWI2ZTYxMmIyM2FjMTJmNWZhYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTEyNywxNSArMTI3LDE1IEBAIEJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZTo6fkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSgpCiAgICAgY2xv
c2VEYXRlVGltZUNob29zZXIoKTsKIH0KIAotZG91YmxlIEJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZTo6dmFsdWVBc0RhdGUoKSBjb25zdAorV2FsbFRpbWUgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
Ojp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHZhbHVlQXNEb3VibGUoKTsKKyAg
ICByZXR1cm4gV2FsbFRpbWU6OmZyb21TZWNvbmRzKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMo
dmFsdWVBc0RvdWJsZSgpKSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IEJhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUoZG91YmxlIHZhbHVlKSBjb25zdAorRXhjZXB0aW9u
T3I8dm9pZD4gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShXYWxsVGlt
ZSB2YWx1ZSkgY29uc3QKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKLSAgICBlbGVtZW50KCkt
PnNldFZhbHVlKHNlcmlhbGl6ZVdpdGhNaWxsaXNlY29uZHModmFsdWUpKTsKKyAgICBlbGVtZW50
KCktPnNldFZhbHVlKHNlcmlhbGl6ZVdpdGhNaWxsaXNlY29uZHModmFsdWUuc2Vjb25kc1NpbmNl
RXBvY2goKS5taWxsaXNlY29uZHMoKSkpOwogICAgIHJldHVybiB7IH07CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCmluZGV4IGM3MjljOTIy
YWIzOGJhOGQ5NGQ0NzQ0NTczM2FkYTMwYzU5NWUyNzYuLjY4OTEwNWIzNjUxYzYzYmI5ZmZkYWEx
ZTljZDA4NDFjMWQwNjQzYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaApAQCAtMTAyLDggKzEwMiw4IEBAIHByaXZhdGU6CiAgICAgU3RyaW5n
IHZpc2libGVWYWx1ZSgpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNv
bnN0IFN0cmluZyYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5n
JiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGZpbmFsOwotICAg
IGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldFZhbHVlQXNEYXRlKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV2FsbFRpbWUg
dmFsdWVBc0RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRW
YWx1ZUFzRGF0ZShXYWxsVGltZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgZG91YmxlIHZhbHVlQXNE
b3VibGUoKSBjb25zdCBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGVj
aW1hbChjb25zdCBEZWNpbWFsJiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgY29uc3QgZmluYWw7
CiAgICAgRGVjaW1hbCBkZWZhdWx0VmFsdWVGb3JTdGVwVXAoKSBjb25zdCBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IDU5
OGE4YmJkZjc0ZjU3YjBmN2ZkMTVlOTcwMGRiYTM4NmJjMjE0ZWEuLmRiMTZkYTdlNDk5YjFlOWJi
NzgzNjk3MTMxNmJlZTk4YTZiZGUzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRl
VGltZUxvY2FsSW5wdXRUeXBlLmNwcApAQCAtNjIsMTMgKzYyLDEzIEBAIERhdGVDb21wb25lbnRz
VHlwZSBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpkYXRlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJu
IERhdGVDb21wb25lbnRzVHlwZTo6RGF0ZVRpbWVMb2NhbDsKIH0KIAotZG91YmxlIERhdGVUaW1l
TG9jYWxJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKK1dhbGxUaW1lIERhdGVUaW1lTG9j
YWxJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKIHsKICAgICAvLyB2YWx1ZUFzRGF0ZSBk
b2Vzbid0IHdvcmsgZm9yIHRoZSBkYXRldGltZS1sb2NhbCB0eXBlIGFjY29yZGluZyB0byB0aGUg
c3RhbmRhcmQuCi0gICAgcmV0dXJuIERhdGVDb21wb25lbnRzOjppbnZhbGlkTWlsbGlzZWNvbmRz
KCk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpuYW4oKTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4g
RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUoZG91YmxlIHZhbHVlKSBjb25z
dAorRXhjZXB0aW9uT3I8dm9pZD4gRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0VmFsdWVBc0Rh
dGUoV2FsbFRpbWUgdmFsdWUpIGNvbnN0CiB7CiAgICAgLy8gdmFsdWVBc0RhdGUgZG9lc24ndCB3
b3JrIGZvciB0aGUgZGF0ZXRpbWUtbG9jYWwgdHlwZSBhY2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJk
LgogICAgIHJldHVybiBJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlKHZhbHVlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKaW5kZXggMTY2ZjUwMDA0MTZl
YzQ2N2E1ZmU5OTM0N2I3ZmM5YTIzOTI0MTI4Ny4uNTYwZmI2NGQwMGEyYmE4ZDI3NDIxYmZiMTAx
YjVjMGE3MjUyMWRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5w
dXRUeXBlLmgKQEAgLTQ3LDggKzQ3LDggQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBjb25zdCBB
dG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBmaW5hbDsKICAgICBEYXRlQ29tcG9u
ZW50c1R5cGUgZGF0ZVR5cGUoKSBjb25zdCBmaW5hbDsKLSAgICBkb3VibGUgdmFsdWVBc0RhdGUo
KSBjb25zdCBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0ZShkb3Vi
bGUpIGNvbnN0IGZpbmFsOworICAgIFdhbGxUaW1lIHZhbHVlQXNEYXRlKCkgY29uc3QgZmluYWw7
CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoV2FsbFRpbWUpIGNvbnN0IGZp
bmFsOwogICAgIFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25z
dCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBwYXJzZVRvRGF0ZUNv
bXBvbmVudHMoU3RyaW5nVmlldykgY29uc3QgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxEYXRl
Q29tcG9uZW50cz4gc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSkgY29uc3Qg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCA3NmQ3
NzVjYjRlYjM3NzBiNWFhNTc1NzE0NDMwYTY5MWI2YmZlOWMyLi5mYTZiNzZkMDJiOGNhNzQ0Zjdk
YjAzZDU3MmFjOWJiNGI0YjJkYWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKQEAgLTExMTEsMTIgKzExMTEsMTIgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpz
ZXRWYWx1ZUludGVybmFsKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIFRleHRGaWVsZEUK
ICAgICB1cGRhdGVWYWxpZGl0eSgpOwogfQogCi1kb3VibGUgSFRNTElucHV0RWxlbWVudDo6dmFs
dWVBc0RhdGUoKSBjb25zdAorV2FsbFRpbWUgSFRNTElucHV0RWxlbWVudDo6dmFsdWVBc0RhdGUo
KSBjb25zdAogewogICAgIHJldHVybiBtX2lucHV0VHlwZS0+dmFsdWVBc0RhdGUoKTsKIH0KIAot
RXhjZXB0aW9uT3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoZG91Ymxl
IHZhbHVlKQorRXhjZXB0aW9uT3I8dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVBc0Rh
dGUoV2FsbFRpbWUgdmFsdWUpCiB7CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5zZXRWYWx1ZUFz
RGF0ZSh2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4
IDMwNTA0MzNiZGZhYjA0ZDAwOGE1ZGEzNzlhMTFkNDQxMzUwMzc3YTkuLjdhZjAzZjQ5ZTZkODI2
MmE0YTU5NWUwZmFkNjA5NzQyMjJlODgzNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oCkBAIC0xODQsOCArMTg0LDggQEAgcHVibGljOgogICAgIC8vIFRoZSB2YWx1ZSB3
aGljaCBpcyBkcmF3biBieSBhIHJlbmRlcmVyLgogICAgIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBj
b25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0Owot
ICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKGRvdWJs
ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgV2FsbFRpbWUgdmFsdWVBc0RhdGUoKSBjb25zdDsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0ZShXYWxsVGlt
ZSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgdmFsdWVBc051bWJlcigpIGNvbnN0Owog
ICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNOdW1iZXIoZG91
YmxlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDUxNzFiOWNkYzc4OTMxNzFlMjFl
NWY0YmY1NTAxN2VmOTQ0YWM3OTUuLmVjODM1MWMwOTc3NDhiMTQ5YTk0NDM5YmFiNjk1NzhlZTkw
MDFhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtMTEx
MSwxMSArMTExMSwxMiBAQCBTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6Y2FuUGxheVR5cGUoY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSkgY29uc3QKICAgICByZXR1cm4gY2FuUGxheTsKIH0KIAotZG91
YmxlIEhUTUxNZWRpYUVsZW1lbnQ6OmdldFN0YXJ0RGF0ZSgpIGNvbnN0CitXYWxsVGltZSBIVE1M
TWVkaWFFbGVtZW50OjpnZXRTdGFydERhdGUoKSBjb25zdAogewogICAgIGlmICghbV9wbGF5ZXIp
Ci0gICAgICAgIHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigp
OwotICAgIHJldHVybiBtX3BsYXllci0+Z2V0U3RhcnREYXRlKCkudG9Eb3VibGUoKTsKKyAgICAg
ICAgcmV0dXJuIFdhbGxUaW1lOjpuYW4oKTsKKworICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJh
d1NlY29uZHMobV9wbGF5ZXItPmdldFN0YXJ0RGF0ZSgpLnRvRG91YmxlKCkpOwogfQogCiB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuaAppbmRleCA2OTU2Njk0OTYzMTBlZjkxMDhiOTU2ZmRhNDgyMTQzMDE0OTcwZWNiLi42YjQw
NGFhODczNTI3NzdiNDcxODM1ZjEyMGZmMTU3Y2VlZDg0YTY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPHd0Zi9GdW5j
dGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KICNpbmNsdWRlIDx3dGYvT2Jz
ZXJ2ZXIuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0
ci5oPgogCiAjaWYgVVNFKEFVRElPX1NFU1NJT04pICYmIFBMQVRGT1JNKE1BQykKQEAgLTI0Miw3
ICsyNDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDdXJyZW50VGltZVdpdGhUb2xlcmFuY2Uo
ZG91YmxlLCBkb3VibGUgdG9sZXJhbmNlQmVmb3JlLCBkb3VibGUgdG9sZXJhbmNlQWZ0ZXIpOwog
ICAgIGRvdWJsZSBjdXJyZW50VGltZUZvckJpbmRpbmdzKCkgY29uc3QgeyByZXR1cm4gY3VycmVu
dFRpbWUoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldEN1cnJl
bnRUaW1lRm9yQmluZGluZ3MoZG91YmxlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgZ2V0
U3RhcnREYXRlKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgV2FsbFRpbWUgZ2V0U3RhcnRE
YXRlKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIGR1cmF0aW9uKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBwYXVzZWQoKSBjb25zdCBvdmVycmlk
ZTsKICAgICB2b2lkIHNldFBhdXNlZChib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApp
bmRleCAyOTBjMmQ2NDVjZjk1ZTgwZmQzOGM0MTFiOGFkMmUyMGNlOGE4MjZlLi40NGU4ZmIyYTM3
NDY5MzdjZjk2YjU5ZjM3MWZiNmY1ZWIxNTMxNTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUu
Y3BwCkBAIC0yMDQsMTIgKzIwNCwxMiBAQCBib29sIElucHV0VHlwZTo6YXBwZW5kRm9ybURhdGEo
RE9NRm9ybURhdGEmIGZvcm1EYXRhLCBib29sKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQog
Ci1kb3VibGUgSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CitXYWxsVGltZSBJbnB1dFR5
cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gRGF0ZUNvbXBvbmVudHM6Omlu
dmFsaWRNaWxsaXNlY29uZHMoKTsKKyAgICByZXR1cm4gV2FsbFRpbWU6Om5hbigpOwogfQogCi1F
eGNlcHRpb25Pcjx2b2lkPiBJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlKGRvdWJsZSkgY29uc3QK
K0V4Y2VwdGlvbk9yPHZvaWQ+IElucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUoV2FsbFRpbWUpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCAxOWQ4MGM0MWExZmM2ZTFhMGFiZGVkMTNlMDc4MTZj
MjU0ZDZlY2I4Li4yZTI4YTRjODZkMGNmNWU5ZDk2ZjYxZWU2YmExOTUxMTIzZmEzYmE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTIyMCw4ICsyMjAsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIGdldFR5cGVTcGVjaWZpY1ZhbHVlKFN0cmluZyYpOyAvLyBDaGVja2VkIGZpcnN0
LCBiZWZvcmUgaW50ZXJuYWwgc3RvcmFnZSBvciB0aGUgdmFsdWUgYXR0cmlidXRlLgogICAgIHZp
cnR1YWwgU3RyaW5nIGZhbGxiYWNrVmFsdWUoKSBjb25zdDsgLy8gQ2hlY2tlZCBsYXN0LCBpZiBi
b3RoIGludGVybmFsIHN0b3JhZ2UgYW5kIHZhbHVlIGF0dHJpYnV0ZSBhcmUgbWlzc2luZy4KICAg
ICB2aXJ0dWFsIFN0cmluZyBkZWZhdWx0VmFsdWUoKSBjb25zdDsgLy8gQ2hlY2tlZCBhZnRlciBl
dmVuIGZhbGxiYWNrVmFsdWUsIG9ubHkgd2hlbiB0aGUgdmFsdWVXaXRoRGVmYXVsdCBmdW5jdGlv
biBpcyBjYWxsZWQuCi0gICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKGRvdWJsZSkgY29uc3Q7
CisgICAgdmlydHVhbCBXYWxsVGltZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0OworICAgIHZpcnR1YWwg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoV2FsbFRpbWUpIGNvbnN0OwogICAgIHZp
cnR1YWwgZG91YmxlIHZhbHVlQXNEb3VibGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldFZhbHVlQXNEb3VibGUoZG91YmxlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9y
KSBjb25zdDsKICAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEZWNpbWFs
KGNvbnN0IERlY2ltYWwmLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKaW5kZXggODkxOGVlMWM5YzQwZGI0MDU0OTI3NGUx
YmRiZDM1NjYzZDQ0NGQyNy4uYjY5NjgzYTdiNTQyNDU2ZjEzY2E1NzQ4NTcxNDhiYTYxNDJkNTlh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKQEAgLTY0LDE1ICs2NCwx
NSBAQCBEYXRlQ29tcG9uZW50c1R5cGUgTW9udGhJbnB1dFR5cGU6OmRhdGVUeXBlKCkgY29uc3QK
ICAgICByZXR1cm4gRGF0ZUNvbXBvbmVudHNUeXBlOjpNb250aDsKIH0KIAotZG91YmxlIE1vbnRo
SW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CitXYWxsVGltZSBNb250aElucHV0VHlwZTo6
dmFsdWVBc0RhdGUoKSBjb25zdAogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIGF1dG8g
ZGF0ZSA9IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhlbGVtZW50KCktPnZhbHVlKCkpOwogICAgIGlm
ICghZGF0ZSkKLSAgICAgICAgcmV0dXJuIERhdGVDb21wb25lbnRzOjppbnZhbGlkTWlsbGlzZWNv
bmRzKCk7CisgICAgICAgIHJldHVybiBXYWxsVGltZTo6bmFuKCk7CiAgICAgZG91YmxlIG1zZWMg
PSBkYXRlLT5taWxsaXNlY29uZHNTaW5jZUVwb2NoKCk7CiAgICAgQVNTRVJUKHN0ZDo6aXNmaW5p
dGUobXNlYykpOwotICAgIHJldHVybiBtc2VjOworICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVNl
Y29uZHMoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhtc2VjKSk7CiB9CiAKIFN0cmluZyBNb250
aElucHV0VHlwZTo6c2VyaWFsaXplV2l0aE1pbGxpc2Vjb25kcyhkb3VibGUgdmFsdWUpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKaW5kZXggZGE0YzViYzhhNDNlMWYwNDY4
ZjY4MDZkOTViNGYxZjQwNzU4Mjc5Yy4uNTcyNzhiNWRhMDczODUyMjQxZjFhMTg3OWIwYTE2ODFh
MWU0NmU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNDcsNyArNDcs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9s
VHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIERhdGVDb21wb25lbnRzVHlwZSBkYXRlVHlwZSgp
IGNvbnN0IG92ZXJyaWRlOwotICAgIGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IG92ZXJyaWRl
OworICAgIFdhbGxUaW1lIHZhbHVlQXNEYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5n
IHNlcmlhbGl6ZVdpdGhNaWxsaXNlY29uZHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBE
ZWNpbWFsIHBhcnNlVG9OdW1iZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgRGVjaW1hbCYpIGNvbnN0
IG92ZXJyaWRlOwogICAgIERlY2ltYWwgZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCkgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCmluZGV4IDYyODZiNjUyMTI2ZTBkZDEzM2QyYzI0
ZTQ3ZmNkN2NkYzczNzZhNzMuLjVhOGU2NDg5ZmFlMzQ0YjE1N2UwM2RkYTkzNDk0ZGNmYzc1N2Fk
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
SW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC0yODIsNyArMjgyLDcgQEAgc3RhdGljIFJl
ZlB0cjxJREJLZXk+IGlkYktleUZyb21JbnNwZWN0b3JPYmplY3QoUmVmPEpTT046Ok9iamVjdD4m
JiBrZXkpCiAgICAgICAgIGF1dG8gZGF0ZSA9IGtleS0+Z2V0RG91YmxlKFByb3RvY29sOjpJbmRl
eGVkREI6OktleTo6ZGF0ZUtleSk7CiAgICAgICAgIGlmICghZGF0ZSkKICAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVEYXRlKCpkYXRlKTsK
KyAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlRGF0ZShXYWxsVGltZTo6ZnJvbVNlY29uZHMo
U2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcygqZGF0ZSkpKTsKICAgICB9CiAKICAgICBjYXNlIFBy
b3RvY29sOjpJbmRleGVkREI6OktleTo6VHlwZTo6QXJyYXk6IHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01GaWxlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvRE9NL0RPTUZpbGUubW0KaW5kZXggZDU4ZmQwNTYzNTcxYjY1NjFiMmQ0NzZmNmEyYTBjZjQw
YTlmMWQwMi4uOWFjMzMyZDdhYTA3Mjc4ZmUyMWZhYmZjZGFmMmEwODFiZjJkM2FlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUZpbGUubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUZpbGUubW0KQEAgLTQ4LDcgKzQ4LDcgQEAgLSAoTlNT
dHJpbmcgKiluYW1lCiAtIChsb25nIGxvbmcpbGFzdE1vZGlmaWVkCiB7CiAgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT5sYXN0TW9kaWZp
ZWQoKTsKKyAgICByZXR1cm4gSU1QTC0+bGFzdE1vZGlmaWVkRm9yQmluZGluZ3MoKTsKIH0KIAog
QGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUhUTUxNZWRp
YUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxl
bWVudC5tbQppbmRleCAzZjJiZWUzY2RjYWI5ZWQ2YjkwMzJmZjE4MDBiMzRiMzA3OWY2NjZmLi45
YWUxN2NiMTUwZDk4MGVmOGI2ZmU4MjlmMTRjYmU1Y2M4NGE1N2VkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbQpAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaW1wb3J0ICJET01IVE1MTWVkaWFFbGVtZW50LmgiCiAKKyNpbXBvcnQgIkRP
TUludGVybmFsLmgiCiAjaW1wb3J0ICJET01NZWRpYUVycm9ySW50ZXJuYWwuaCIKICNpbXBvcnQg
IkRPTU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NVGltZVJhbmdlc0ludGVybmFsLmgiCkBA
IC0zMTMsNyArMzE0LDcgQEAgLSAoTlNTdHJpbmcgKiljYW5QbGF5VHlwZTooTlNTdHJpbmcgKil0
eXBlCiAtIChOU1RpbWVJbnRlcnZhbClnZXRTdGFydERhdGUKIHsKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPmdldFN0YXJ0RGF0ZSgp
OworICAgIHJldHVybiBraXQoSU1QTC0+Z2V0U3RhcnREYXRlKCkpOwogfQogCiAtICh2b2lkKXBs
YXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01JbnRlcm5hbC5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFsLmgKaW5kZXggOWU3MWM0
YmQ1M2I0MmM5NmJiOGJiMDA0ZjMwM2IwNzIwYTBlM2Y3OC4uYmE1YjJlNjNkOWUwNjg3OTkzMzU3
MWMxOTdhYjI3MWJkZDcyZGVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
RE9NL0RPTUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUlu
dGVybmFsLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkRPTU9iamVjdC5oIgogI2ltcG9y
dCAiRE9NWFBhdGhOU1Jlc29sdmVyLmgiCiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgorI2ltcG9y
dCA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEpTT2JqZWN0
OwpAQCAtNzcsMTIgKzc4LDEyIEBAIFdlYkNvcmU6Ok5vZGVGaWx0ZXIqIGNvcmUoRE9NTm9kZUZp
bHRlciAqKTsKIERPTU5hdGl2ZVhQYXRoTlNSZXNvbHZlciAqa2l0KFdlYkNvcmU6OlhQYXRoTlNS
ZXNvbHZlciopOwogV2ViQ29yZTo6WFBhdGhOU1Jlc29sdmVyKiBjb3JlKERPTU5hdGl2ZVhQYXRo
TlNSZXNvbHZlciAqKTsKIAotaW5saW5lIE5TVGltZUludGVydmFsIGtpdChkb3VibGUgbXNTaW5j
ZUVwb2NoKQoraW5saW5lIE5TVGltZUludGVydmFsIGtpdChXYWxsVGltZSB0aW1lKQogewotICAg
IHJldHVybiBtc1NpbmNlRXBvY2ggLyAxMDAwLjAgLSBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MDsK
KyAgICByZXR1cm4gdGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgLSBOU1RpbWVJbnRl
cnZhbFNpbmNlMTk3MDsKIH0KIAotaW5saW5lIGRvdWJsZSBjb3JlKE5TVGltZUludGVydmFsIHNl
YykKK2lubGluZSBXYWxsVGltZSBjb3JlKE5TVGltZUludGVydmFsIHNlYykKIHsKLSAgICByZXR1
cm4gc2VjICogMTAwMC4wICsgTlNUaW1lSW50ZXJ2YWxTaW5jZTE5NzA7CisgICAgcmV0dXJuIFdh
bGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzZWMgKyBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MCk7CiB9
Cg==
</data>
<flag name="commit-queue"
          id="471073"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445801</attachid>
            <date>2021-12-02 18:38:55 -0800</date>
            <delta_ts>2021-12-03 11:04:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233781-20211202193854.patch</filename>
            <type>text/plain</type>
            <size>46498</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhMWQ4NTc3ZDY0ZDViYzNkYjFlNGFkOTY3MDg3YzY0NzRhMDI1NGJmLi40
YjI1ZDdlYTIzOWMwOGNiYTVlNDg3ZjhhYTRmNzZhMTMzMjk5Nzk5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsODggQEAKKzIwMjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENoYW5nZSBJREwgYERhdGVgIHRvIGJlIGJhY2tlZCBieSBgV2FsbFRpbWVg
IHRvIGF2b2lkIGNvbmZ1c2lvbiB3aGVuIGNvbnZlcnRpbmcgdG8gbmF0aXZlIGRhdGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3ODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKUyBgRGF0ZWAgaXMg
bWlsbGlzZWNvbmRzLWJhc2VkLCBidXQgc29tZSBuYXRpdmUgZGF0ZXMgKGUuZy4gYE5TRGF0ZWAp
IGFyZSBzZWNvbmRzLWJhc2VkLgorICAgICAgICBgV2FsbFRpbWVgIHdpbGwgaGVscCBhdm9pZCBj
b25mdXNpb24gc2luY2Ugbm90IGEgZ2VuZXJpYyB0eXBlIChlLmcuIGBkb3VibGVgKSBhbmQgaW5z
dGVhZAorICAgICAgICBoYXMgZXhwbGljaXRseSBkZWZpbmVkIGNvbnZlcnNpb24gbWV0aG9kcyB0
byBzZWNvbmRzLCBtaWxsaXNlY29uZHMsIGV0Yy4uCisKKyAgICAgICAgKiBiaW5kaW5ncy9JRExU
eXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6SURMRGF0ZTo6bnVsbFZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OklETERhdGU6OmlzTnVsbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklETERh
dGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0RGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udmVydGVyPElETERhdGU+Ojpj
b252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29udmVydGVyPElETERhdGU+Ojpjb252ZXJ0
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmpzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVRvRGF0ZSk6CisKKyAg
ICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TGluZUl0ZW0uaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5TGluZUl0ZW06OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW06CisgICAgICAgIChXZWJDb3Jl
Ojp0b0RhdGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oOgorICAgICAg
ICAoV2ViQ29yZTo6SURCS2V5OjpjcmVhdGVOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURC
S2V5OjpjcmVhdGVEYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleTo6ZGF0ZSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQktleTo6SURCS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleTo6Y29tcGFyZSBj
b25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oOgorICAgICAg
ICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJLZXlEYXRhOjpkYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5RGF0YTo6bWF5YmVDcmVhdGVJREJLZXkgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5RGF0YTo6aXNvbGF0ZWRDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURh
dGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpkZWNvZGUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6c2V0RGF0ZVZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQktleURhdGE6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5RGF0YTo6c2l6ZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5jb2RlS2V5
KToKKyAgICAgICAgKFdlYkNvcmU6OmRlY29kZUtleSk6CisgICAgICAgICogYmluZGluZ3MvanMv
SURCQmluZGluZ1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXQpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDbG9uZVNlcmlhbGl6ZXI6OndyaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVz
ZXJpYWxpemVyOjpyZWFkRmlsZSk6CisgICAgICAgICogZmlsZWFwaS9GaWxlLmlkbDoKKyAgICAg
ICAgKiBmaWxlYXBpL0ZpbGUuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZTo6RmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjpsYXN0TW9k
aWZpZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6bGFzdE1vZGlmaWVkRm9yQmlu
ZGluZ3MgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0
ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZh
bHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
dmFsdWVBc0RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpnZXRTdGFydERhdGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OnNldFZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNb250aElucHV0VHlwZTo6dmFsdWVBc0RhdGUgY29uc3QpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yOjppZGJLZXlGcm9tSW5zcGVjdG9yT2JqZWN0KToKKwogMjAyMS0xMi0wMiAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3Nd
IE1vdmUgdGhlIEZpbHRlckVmZmVjdCBib3VuZGFyaWVzIHRvIGEgbmV3IGNsYXNzIEZpbHRlckVm
ZmVjdEdlb21ldHJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNzZhYTZhYWY4NGRl
YjA4MmU0Yzg0MzIyNDkzMzgwZDgzM2RlOTJkMS4uMWE0ZTczMjExMmY0NGQxYWNiYTI3MzNhNzE2
NTkzMTExNTkwODIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDIxLTEyLTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAg
ICAgICBDaGFuZ2UgSURMIGBEYXRlYCB0byBiZSBiYWNrZWQgYnkgYFdhbGxUaW1lYCB0byBhdm9p
ZCBjb25mdXNpb24gd2hlbiBjb252ZXJ0aW5nIHRvIG5hdGl2ZSBkYXRlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzgxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSlMgYERhdGVgIGlzIG1pbGxpc2Vj
b25kcy1iYXNlZCwgYnV0IHNvbWUgbmF0aXZlIGRhdGVzIChlLmcuIGBOU0RhdGVgKSBhcmUgc2Vj
b25kcy1iYXNlZC4KKyAgICAgICAgYFdhbGxUaW1lYCB3aWxsIGhlbHAgYXZvaWQgY29uZnVzaW9u
IHNpbmNlIG5vdCBhIGdlbmVyaWMgdHlwZSAoZS5nLiBgZG91YmxlYCkgYW5kIGluc3RlYWQKKyAg
ICAgICAgaGFzIGV4cGxpY2l0bHkgZGVmaW5lZCBjb252ZXJzaW9uIG1ldGhvZHMgdG8gc2Vjb25k
cywgbWlsbGlzZWNvbmRzLCBldGMuLgorCisgICAgICAgICogRE9NL0RPTUludGVybmFsLmg6Cisg
ICAgICAgIChraXQpOgorICAgICAgICAoY29yZSk6CisKKyAgICAgICAgKiBET00vRE9NRmlsZS5t
bToKKyAgICAgICAgKC1bRE9NRmlsZSBsYXN0TW9kaWZpZWRdKToKKyAgICAgICAgKiBET00vRE9N
SFRNTE1lZGlhRWxlbWVudC5tbToKKyAgICAgICAgKC1bRE9NSFRNTE1lZGlhRWxlbWVudCBnZXRT
dGFydERhdGVdKToKKwogMjAyMS0xMi0wMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRA
YXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHUFVdIEhvb2sgdXAgbmF2aWdhdG9yLmdwdS5yZXF1
ZXN0QWRhcHRlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5TGluZUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlMaW5lSXRlbS5oCmluZGV4IDk5ZWVmYmFiMTEzMzQzMWNjNWEwNzAyZmNjZDA5OGExOTNm
NGM3MmIuLjZhMzQ0MzdhNDQ4ZTg3MDBmMWViNmJhODk1ZGZiYmVjNWNlYTdiODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oCkBA
IC0yOSw4ICsyOSw4IEBACiAKICNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRUaW1pbmcuaCIKICNp
bmNsdWRlICJBcHBsZVBheVJlY3VycmluZ1BheW1lbnREYXRlVW5pdC5oIgotI2luY2x1ZGUgPGxp
bWl0cz4KICNpbmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCkBAIC01MiwxNCArNTIsMTQgQEAgc3RydWN0IEFwcGxlUGF5TGluZUl0ZW0gZmluYWwgewog
ICAgIEFwcGxlUGF5UGF5bWVudFRpbWluZyBwYXltZW50VGltaW5nIHsgQXBwbGVQYXlQYXltZW50
VGltaW5nOjpJbW1lZGlhdGUgfTsKIAogI2lmIEVOQUJMRShBUFBMRV9QQVlfUkVDVVJSSU5HX0xJ
TkVfSVRFTSkKLSAgICBkb3VibGUgcmVjdXJyaW5nUGF5bWVudFN0YXJ0RGF0ZSB7IHN0ZDo6bnVt
ZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKKyAgICBXYWxsVGltZSByZWN1cnJp
bmdQYXltZW50U3RhcnREYXRlIHsgV2FsbFRpbWU6Om5hbigpIH07CiAgICAgQXBwbGVQYXlSZWN1
cnJpbmdQYXltZW50RGF0ZVVuaXQgcmVjdXJyaW5nUGF5bWVudEludGVydmFsVW5pdCB7IEFwcGxl
UGF5UmVjdXJyaW5nUGF5bWVudERhdGVVbml0OjpNb250aCB9OwogICAgIHVuc2lnbmVkIHJlY3Vy
cmluZ1BheW1lbnRJbnRlcnZhbENvdW50ID0gMTsKLSAgICBkb3VibGUgcmVjdXJyaW5nUGF5bWVu
dEVuZERhdGUgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07Cisg
ICAgV2FsbFRpbWUgcmVjdXJyaW5nUGF5bWVudEVuZERhdGUgeyBXYWxsVGltZTo6bmFuKCkgfTsK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9ERUZFUlJFRF9MSU5FX0lURU0pCi0gICAg
ZG91YmxlIGRlZmVycmVkUGF5bWVudERhdGUgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46
OnF1aWV0X05hTigpIH07CisgICAgV2FsbFRpbWUgZGVmZXJyZWRQYXltZW50RGF0ZSB7IFdhbGxU
aW1lOjpuYW4oKSB9OwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEFwcGxlUGF5TGluZUl0ZW1BZGRp
dGlvbnNfbWVtYmVycykKQEAgLTEwNSwxMyArMTA1LDEzIEBAIHN0ZDo6b3B0aW9uYWw8QXBwbGVQ
YXlMaW5lSXRlbT4gQXBwbGVQYXlMaW5lSXRlbTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAg
ICAgREVDT0RFKGFtb3VudCwgU3RyaW5nKQogICAgIERFQ09ERShwYXltZW50VGltaW5nLCBBcHBs
ZVBheVBheW1lbnRUaW1pbmcpCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9SRUNVUlJJTkdfTElORV9J
VEVNKQotICAgIERFQ09ERShyZWN1cnJpbmdQYXltZW50U3RhcnREYXRlLCBkb3VibGUpCisgICAg
REVDT0RFKHJlY3VycmluZ1BheW1lbnRTdGFydERhdGUsIFdhbGxUaW1lKQogICAgIERFQ09ERShy
ZWN1cnJpbmdQYXltZW50SW50ZXJ2YWxVbml0LCBBcHBsZVBheVJlY3VycmluZ1BheW1lbnREYXRl
VW5pdCkKICAgICBERUNPREUocmVjdXJyaW5nUGF5bWVudEludGVydmFsQ291bnQsIHVuc2lnbmVk
KQotICAgIERFQ09ERShyZWN1cnJpbmdQYXltZW50RW5kRGF0ZSwgZG91YmxlKQorICAgIERFQ09E
RShyZWN1cnJpbmdQYXltZW50RW5kRGF0ZSwgV2FsbFRpbWUpCiAjZW5kaWYKICNpZiBFTkFCTEUo
QVBQTEVfUEFZX0RFRkVSUkVEX0xJTkVfSVRFTSkKLSAgICBERUNPREUoZGVmZXJyZWRQYXltZW50
RGF0ZSwgZG91YmxlKQorICAgIERFQ09ERShkZWZlcnJlZFBheW1lbnREYXRlLCBXYWxsVGltZSkK
ICNlbmRpZgogI2lmIGRlZmluZWQoQXBwbGVQYXlMaW5lSXRlbUFkZGl0aW9uc19kZWNvZGVfbWVt
YmVycykKICAgICBBcHBsZVBheUxpbmVJdGVtQWRkaXRpb25zX2RlY29kZV9tZW1iZXJzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTdW1t
YXJ5SXRlbXNDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2Ev
UGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tCmluZGV4IDk0MWE5ZWYxZDgwZWVlODUwNzE1NGMy
MTZkNzcwMDY3ZDc0MTBiMWEuLjVmMWMzMWI2ZTllMWU5ZWUyMzkzMGZkZDJkZTFmOTM1YmYyM2Vi
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5
bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvY29jb2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tCkBAIC02MCw5ICs2MCw5IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIEhBVkUoUEFTU0tJVF9SRUNVUlJJTkdfU1VNTUFS
WV9JVEVNKSB8fCBIQVZFKFBBU1NLSVRfREVGRVJSRURfU1VNTUFSWV9JVEVNKQogCi1zdGF0aWMg
TlNEYXRlICp0b0RhdGUoZG91YmxlIGRhdGUpCitzdGF0aWMgTlNEYXRlICp0b0RhdGUoV2FsbFRp
bWUgZGF0ZSkKIHsKLSAgICByZXR1cm4gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNl
MTk3MDooZGF0ZSAvIDEwMDApXTsKKyAgICByZXR1cm4gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRl
cnZhbFNpbmNlMTk3MDpkYXRlLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKV07CiB9CiAKICNl
bmRpZiAvLyBIQVZFKFBBU1NLSVRfUkVDVVJSSU5HX1NVTU1BUllfSVRFTSkgfHwgSEFWRShQQVNT
S0lUX0RFRkVSUkVEX1NVTU1BUllfSVRFTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJLZXkuY3BwCmluZGV4IDRmYjI2Mzg1NDgyOGI5ZjdmOGU0ZmJiYWIwN2Q0YTM0ZWY0
ZjczNWQuLmYwZjJlMzZjZTQ3OGJmZWYxMzJmZWE0MjUyMTVjMWRlZDA4Zjk3NTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcApAQCAtNTgsMTMgKzU4LDIw
IEBAIFJlZjxJREJLZXk+IElEQktleTo6Y3JlYXRlQmluYXJ5KEpTQzo6SlNBcnJheUJ1ZmZlclZp
ZXcmIGFycmF5QnVmZmVyVmlldykKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJLZXkoVGhy
ZWFkU2FmZURhdGFCdWZmZXI6OmNvcHlEYXRhKGJ1ZmZlclZpZXctPmRhdGEoKSwgYnVmZmVyVmll
dy0+Ynl0ZUxlbmd0aCgpKSkpOwogfQogCi1JREJLZXk6OklEQktleShJbmRleGVkREI6OktleVR5
cGUgdHlwZSwgZG91YmxlIG51bWJlcikKLSAgICA6IG1fdHlwZSh0eXBlKQorSURCS2V5OjpJREJL
ZXkoZG91YmxlIG51bWJlcikKKyAgICA6IG1fdHlwZShJbmRleGVkREI6OktleVR5cGU6Ok51bWJl
cikKICAgICAsIG1fdmFsdWUobnVtYmVyKQogICAgICwgbV9zaXplRXN0aW1hdGUoT3ZlcmhlYWRT
aXplICsgc2l6ZW9mKGRvdWJsZSkpCiB7CiB9CiAKK0lEQktleTo6SURCS2V5KFdhbGxUaW1lIGRh
dGUpCisgICAgOiBtX3R5cGUoSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlKQorICAgICwgbV92YWx1
ZShkYXRlKQorICAgICwgbV9zaXplRXN0aW1hdGUoT3ZlcmhlYWRTaXplICsgc2l6ZW9mKFdhbGxU
aW1lKSkKK3sKK30KKwogSURCS2V5OjpJREJLZXkoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICA6
IG1fdHlwZShJbmRleGVkREI6OktleVR5cGU6OlN0cmluZykKICAgICAsIG1fdmFsdWUodmFsdWUp
CkBAIC0xMjYsNyArMTMzLDExIEBAIGludCBJREJLZXk6OmNvbXBhcmUoY29uc3QgSURCS2V5JiBv
dGhlcikgY29uc3QKICAgICAgICAgcmV0dXJuIGNvbXBhcmVCaW5hcnlLZXlEYXRhKHN0ZDo6Z2V0
PFRocmVhZFNhZmVEYXRhQnVmZmVyPihtX3ZhbHVlKSwgc3RkOjpnZXQ8VGhyZWFkU2FmZURhdGFC
dWZmZXI+KG90aGVyLm1fdmFsdWUpKTsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6U3Ry
aW5nOgogICAgICAgICByZXR1cm4gLWNvZGVQb2ludENvbXBhcmUoc3RkOjpnZXQ8U3RyaW5nPihv
dGhlci5tX3ZhbHVlKSwgc3RkOjpnZXQ8U3RyaW5nPihtX3ZhbHVlKSk7Ci0gICAgY2FzZSBJbmRl
eGVkREI6OktleVR5cGU6OkRhdGU6CisgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6
IHsKKyAgICAgICAgYXV0byBkYXRlID0gc3RkOjpnZXQ8V2FsbFRpbWU+KG1fdmFsdWUpOworICAg
ICAgICBhdXRvIG90aGVyRGF0ZSA9IHN0ZDo6Z2V0PFdhbGxUaW1lPihvdGhlci5tX3ZhbHVlKTsK
KyAgICAgICAgcmV0dXJuIChkYXRlIDwgb3RoZXJEYXRlKSA/IC0xIDogKChkYXRlID4gb3RoZXJE
YXRlKSA/IDEgOiAwKTsKKyAgICB9CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJl
cjogewogICAgICAgICBhdXRvIG51bWJlciA9IHN0ZDo6Z2V0PGRvdWJsZT4obV92YWx1ZSk7CiAg
ICAgICAgIGF1dG8gb3RoZXJOdW1iZXIgPSBzdGQ6OmdldDxkb3VibGU+KG90aGVyLm1fdmFsdWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaAppbmRleCBjMjhmZGNm
MzViZjNkZmRiN2IxZmRhNWU3Y2VjNTlhM2Q0MDY5Nzc0Li4xODZhOTM2ZjJmMzk1YzNmNjNhYmQ1
M2MyZGFmMzYwZjg0ODg2MGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJLZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXkuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNs
dWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAog
bmFtZXNwYWNlIEpTQyB7CkBAIC01MSw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBS
ZWY8SURCS2V5PiBjcmVhdGVOdW1iZXIoZG91YmxlIG51bWJlcikKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IElEQktleShJbmRleGVkREI6OktleVR5cGU6Ok51bWJlciwgbnVt
YmVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQktleShudW1iZXIpKTsKICAg
ICB9CiAKICAgICBzdGF0aWMgUmVmPElEQktleT4gY3JlYXRlU3RyaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQpAQCAtNTksOSArNjAsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IElEQktleShzdHJpbmcpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPElEQktleT4g
Y3JlYXRlRGF0ZShkb3VibGUgZGF0ZSkKKyAgICBzdGF0aWMgUmVmPElEQktleT4gY3JlYXRlRGF0
ZShXYWxsVGltZSBkYXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURC
S2V5KEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZSwgZGF0ZSkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBJREJLZXkoZGF0ZSkpOwogICAgIH0KIAogICAgIHN0YXRpYyBSZWY8SURCS2V5
PiBjcmVhdGVNdWx0aUVudHJ5QXJyYXkoY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+PiYgYXJy
YXkpCkBAIC0xMjAsMTAgKzEyMSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdGQ6Omdl
dDxTdHJpbmc+KG1fdmFsdWUpOwogICAgIH0KIAotICAgIGRvdWJsZSBkYXRlKCkgY29uc3QKKyAg
ICBXYWxsVGltZSBkYXRlKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
SW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlKTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6Z2V0PGRvdWJs
ZT4obV92YWx1ZSk7CisgICAgICAgIHJldHVybiBzdGQ6OmdldDxXYWxsVGltZT4obV92YWx1ZSk7
CiAgICAgfQogCiAgICAgZG91YmxlIG51bWJlcigpIGNvbnN0CkBAIC0xNjMsMTMgKzE2NCwxNCBA
QCBwcml2YXRlOgogICAgIHsKICAgICB9CiAKLSAgICBJREJLZXkoSW5kZXhlZERCOjpLZXlUeXBl
LCBkb3VibGUgbnVtYmVyKTsKKyAgICBleHBsaWNpdCBJREJLZXkoZG91YmxlKTsKKyAgICBleHBs
aWNpdCBJREJLZXkoV2FsbFRpbWUpOwogICAgIGV4cGxpY2l0IElEQktleShjb25zdCBTdHJpbmcm
IHZhbHVlKTsKICAgICBJREJLZXkoY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+PiYga2V5QXJy
YXksIHNpemVfdCBhcnJheVNpemUpOwogICAgIGV4cGxpY2l0IElEQktleShjb25zdCBUaHJlYWRT
YWZlRGF0YUJ1ZmZlciYpOwogCiAgICAgY29uc3QgSW5kZXhlZERCOjpLZXlUeXBlIG1fdHlwZTsK
LSAgICBzdGQ6OnZhcmlhbnQ8VmVjdG9yPFJlZlB0cjxJREJLZXk+PiwgU3RyaW5nLCBkb3VibGUs
IFRocmVhZFNhZmVEYXRhQnVmZmVyPiBtX3ZhbHVlOworICAgIHN0ZDo6dmFyaWFudDxWZWN0b3I8
UmVmUHRyPElEQktleT4+LCBTdHJpbmcsIFdhbGxUaW1lLCBkb3VibGUsIFRocmVhZFNhZmVEYXRh
QnVmZmVyPiBtX3ZhbHVlOwogCiAgICAgY29uc3Qgc2l6ZV90IG1fc2l6ZUVzdGltYXRlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCmluZGV4
IDJhMzdjNTI4ZWY1YmY5ZDk1NzczYTBiMTBmMDI1MjI5YmRlNWE0MTguLmU0OWZiM2U3MjhiYjM1
MDM5NDhjZjk4OTYzNjcyYjY1MjE5MGY4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCkBAIC05MSw3ICs5MSw3IEBAIFJlZlB0cjxJREJL
ZXk+IElEQktleURhdGE6Om1heWJlQ3JlYXRlSURCS2V5KCkgY29uc3QKICAgICBjYXNlIEluZGV4
ZWREQjo6S2V5VHlwZTo6U3RyaW5nOgogICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVTdHJp
bmcoc3RkOjpnZXQ8U3RyaW5nPihtX3ZhbHVlKSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5
cGU6OkRhdGU6Ci0gICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZURhdGUoc3RkOjpnZXQ8ZG91
YmxlPihtX3ZhbHVlKSk7CisgICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZURhdGUoc3RkOjpn
ZXQ8V2FsbFRpbWU+KG1fdmFsdWUpKTsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVt
YmVyOgogICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVOdW1iZXIoc3RkOjpnZXQ8ZG91Ymxl
PihtX3ZhbHVlKSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok1heDoKQEAgLTEzNiw2
ICsxMzYsOCBAQCB2b2lkIElEQktleURhdGE6Omlzb2xhdGVkQ29weShjb25zdCBJREJLZXlEYXRh
JiBzb3VyY2UsIElEQktleURhdGEmIGRlc3RpbmF0aW9uKQogICAgICAgICBkZXN0aW5hdGlvbi5t
X3ZhbHVlID0gc3RkOjpnZXQ8U3RyaW5nPihzb3VyY2UubV92YWx1ZSkuaXNvbGF0ZWRDb3B5KCk7
CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAg
ICAgICAgZGVzdGluYXRpb24ubV92YWx1ZSA9IHN0ZDo6Z2V0PFdhbGxUaW1lPihzb3VyY2UubV92
YWx1ZSk7CisgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVt
YmVyOgogICAgICAgICBkZXN0aW5hdGlvbi5tX3ZhbHVlID0gc3RkOjpnZXQ8ZG91YmxlPihzb3Vy
Y2UubV92YWx1ZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTE3Niw2ICsxNzgsOCBAQCB2b2lkIElE
QktleURhdGE6OmVuY29kZShLZXllZEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgICAgIGVu
Y29kZXIuZW5jb2RlU3RyaW5nKCJzdHJpbmciLCBzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlOgorICAg
ICAgICBlbmNvZGVyLmVuY29kZURvdWJsZSgiZGF0ZSIsIHN0ZDo6Z2V0PFdhbGxUaW1lPihtX3Zh
bHVlKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgICAgICByZXR1cm47CiAgICAg
Y2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjoKICAgICAgICAgZW5jb2Rlci5lbmNvZGVE
b3VibGUoIm51bWJlciIsIHN0ZDo6Z2V0PGRvdWJsZT4obV92YWx1ZSkpOwogICAgICAgICByZXR1
cm47CkBAIC0yMjIsNyArMjI2LDE2IEBAIGJvb2wgSURCS2V5RGF0YTo6ZGVjb2RlKEtleWVkRGVj
b2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogICAgICAgICByZXR1cm4gZGVjb2Rl
ci5kZWNvZGVTdHJpbmcoInN0cmluZyIsIHN0ZDo6Z2V0PFN0cmluZz4ocmVzdWx0Lm1fdmFsdWUp
KTsKICAgICB9CiAKLSAgICBpZiAocmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6
Ok51bWJlciB8fCByZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZSkgewor
ICAgIGlmIChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZSkgeworICAg
ICAgICByZXN1bHQubV92YWx1ZSA9IFdhbGxUaW1lKCk7CisgICAgICAgIGRvdWJsZSBzZWNvbmRz
OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlRG91YmxlKCJkYXRlIiwgc2Vjb25kcykpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gV2FsbFRp
bWU6OmZyb21SYXdTZWNvbmRzKHNlY29uZHMpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICBpZiAocmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcikg
ewogICAgICAgICByZXN1bHQubV92YWx1ZSA9IDAuMDsKICAgICAgICAgcmV0dXJuIGRlY29kZXIu
ZGVjb2RlRG91YmxlKCJudW1iZXIiLCBzdGQ6OmdldDxkb3VibGU+KHJlc3VsdC5tX3ZhbHVlKSk7
CiAgICAgfQpAQCAtNDA0LDcgKzQxNyw3IEBAIHZvaWQgSURCS2V5RGF0YTo6c2V0U3RyaW5nVmFs
dWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICBtX2lzTnVsbCA9IGZhbHNlOwogfQogCi12b2lk
IElEQktleURhdGE6OnNldERhdGVWYWx1ZShkb3VibGUgdmFsdWUpCit2b2lkIElEQktleURhdGE6
OnNldERhdGVWYWx1ZShXYWxsVGltZSB2YWx1ZSkKIHsKICAgICAqdGhpcyA9IElEQktleURhdGEo
KTsKICAgICBtX3ZhbHVlID0gdmFsdWU7CkBAIC00NTAsOCArNDYzLDkgQEAgYm9vbCBJREJLZXlE
YXRhOjpvcGVyYXRvcj09KGNvbnN0IElEQktleURhdGEmIG90aGVyKSBjb25zdAogICAgIGNhc2Ug
SW5kZXhlZERCOjpLZXlUeXBlOjpNaW46CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2Ug
SW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6Ci0gICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6
OkRhdGU6CiAgICAgICAgIHJldHVybiBzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpID09IHN0ZDo6
Z2V0PGRvdWJsZT4ob3RoZXIubV92YWx1ZSk7CisgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6
OkRhdGU6CisgICAgICAgIHJldHVybiBzdGQ6OmdldDxXYWxsVGltZT4obV92YWx1ZSkgPT0gc3Rk
OjpnZXQ8V2FsbFRpbWU+KG90aGVyLm1fdmFsdWUpOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlU
eXBlOjpTdHJpbmc6CiAgICAgICAgIHJldHVybiBzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpID09
IHN0ZDo6Z2V0PFN0cmluZz4ob3RoZXIubV92YWx1ZSk7CiAgICAgY2FzZSBJbmRleGVkREI6Oktl
eVR5cGU6OkJpbmFyeToKQEAgLTQ4Miw2ICs0OTYsNyBAQCBzaXplX3QgSURCS2V5RGF0YTo6c2l6
ZSgpIGNvbnN0CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZzoKICAgICAgICAg
cmV0dXJuIHN0ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSkuc2l6ZUluQnl0ZXMoKTsKICAgICBjYXNl
IEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAgcmV0dXJuIHNpemVvZihXYWxsVGlt
ZSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjoKICAgICAgICAgcmV0dXJu
IHNpemVvZihkb3VibGUpOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpNYXg6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmgKaW5kZXggNGI5Nzg1
MzY5ZDE5MGE2YjE5NjkxZDEzN2FlMTU2N2U1YzM3OTVkOS4uNWExN2U1OTEzMmNhNjVmYjJjYzE1
NDI1M2JhODhiZDQyZTMxNTk2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCS2V5RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQktleURhdGEuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIklEQktleS5oIgog
I2luY2x1ZGUgPHZhcmlhbnQ+CiAjaW5jbHVkZSA8d3RmL1N0ZFNldC5oPgorI2luY2x1ZGUgPHd0
Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtODEsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBcnJh
eVZhbHVlKGNvbnN0IFZlY3RvcjxJREJLZXlEYXRhPiYpOwogICAgIHZvaWQgc2V0QmluYXJ5VmFs
dWUoY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImKTsKICAgICB2b2lkIHNldFN0cmluZ1ZhbHVl
KGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgc2V0RGF0ZVZhbHVlKGRvdWJsZSk7CisgICAgdm9p
ZCBzZXREYXRlVmFsdWUoV2FsbFRpbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TnVt
YmVyVmFsdWUoZG91YmxlKTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKQEAgLTEyOSw5ICsxMzAsMTEgQEAgcHVibGljOgogICAgICAg
ICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TWluOgogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6Ci0gICAgICAgIGNhc2UgSW5kZXhl
ZERCOjpLZXlUeXBlOjpEYXRlOgogICAgICAgICAgICAgaGFzaENvZGVzLmFwcGVuZChTdHJpbmdI
YXNoZXI6Omhhc2hNZW1vcnk8c2l6ZW9mKGRvdWJsZSk+KCZzdGQ6OmdldDxkb3VibGU+KG1fdmFs
dWUpKSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBJbmRleGVkREI6OktleVR5
cGU6OkRhdGU6CisgICAgICAgICAgICBoYXNoQ29kZXMuYXBwZW5kKFN0cmluZ0hhc2hlcjo6aGFz
aE1lbW9yeTxzaXplb2YoV2FsbFRpbWUpPigmc3RkOjpnZXQ8V2FsbFRpbWU+KG1fdmFsdWUpKSk7
CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OlN0
cmluZzoKICAgICAgICAgICAgIGhhc2hDb2Rlcy5hcHBlbmQoU3RyaW5nSGFzaDo6aGFzaChzdGQ6
OmdldDxTdHJpbmc+KG1fdmFsdWUpKSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE1OCwxMCAr
MTYxLDEwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0ZDo6Z2V0PFN0cmluZz4obV92YWx1
ZSk7CiAgICAgfQogCi0gICAgZG91YmxlIGRhdGUoKSBjb25zdAorICAgIFdhbGxUaW1lIGRhdGUo
KSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5
cGU6OkRhdGUpOwotICAgICAgICByZXR1cm4gc3RkOjpnZXQ8ZG91YmxlPihtX3ZhbHVlKTsKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6Z2V0PFdhbGxUaW1lPihtX3ZhbHVlKTsKICAgICB9CiAKICAgICBk
b3VibGUgbnVtYmVyKCkgY29uc3QKQEAgLTE5Myw3ICsxOTYsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9pc051bGwgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0RlbGV0ZWRWYWx1ZSB7IGZhbHNl
IH07CiAKLSAgICBzdGQ6OnZhcmlhbnQ8VmVjdG9yPElEQktleURhdGE+LCBTdHJpbmcsIGRvdWJs
ZSwgVGhyZWFkU2FmZURhdGFCdWZmZXI+IG1fdmFsdWU7CisgICAgc3RkOjp2YXJpYW50PFZlY3Rv
cjxJREJLZXlEYXRhPiwgU3RyaW5nLCBXYWxsVGltZSwgZG91YmxlLCBUaHJlYWRTYWZlRGF0YUJ1
ZmZlcj4gbV92YWx1ZTsKIH07CiAKIHN0cnVjdCBJREJLZXlEYXRhSGFzaCB7CkBAIC0yNDQsNiAr
MjQ3LDggQEAgdm9pZCBJREJLZXlEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
ICAgICAgICAgZW5jb2RlciA8PCBzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAgZW5jb2Rl
ciA8PCBzdGQ6OmdldDxXYWxsVGltZT4obV92YWx1ZSk7CisgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6CiAgICAgICAgIGVuY29kZXIgPDwgc3RkOjpn
ZXQ8ZG91YmxlPihtX3ZhbHVlKTsKICAgICAgICAgYnJlYWs7CkBAIC0yODQsNiArMjg5LDEwIEBA
IHN0ZDo6b3B0aW9uYWw8SURCS2V5RGF0YT4gSURCS2V5RGF0YTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAga2V5RGF0YS5tX3Zh
bHVlID0gV2FsbFRpbWUoKTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGQ6OmdldDxX
YWxsVGltZT4oa2V5RGF0YS5tX3ZhbHVlKSkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgICAgICBicmVhazsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVy
OgogICAgICAgICBrZXlEYXRhLm1fdmFsdWUgPSAwLjA7CiAgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoc3RkOjpnZXQ8ZG91YmxlPihrZXlEYXRhLm1fdmFsdWUpKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0
aW9uLmNwcAppbmRleCAyYTJjMWZjMzI5NTgwNWQ1MmZkNTZhZjMwYjQ1NWFlMmNjY2M0ODc3Li44
NzMwMWNmZTE1MWVjNDVmN2I1YTdiNjNkZjhkOTZkZWQ5MDY2M2NlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VyaWFsaXphdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcmlhbGl6
YXRpb24uY3BwCkBAIC0yNDMsNyArMjQzLDcgQEAgc3RhdGljIHZvaWQgZW5jb2RlS2V5KFZlY3Rv
cjx1aW50OF90PiYgZGF0YSwgY29uc3QgSURCS2V5RGF0YSYga2V5KQogICAgICAgICB3cml0ZURv
dWJsZShkYXRhLCBrZXkubnVtYmVyKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNJREJL
ZXlUeXBlOjpEYXRlOgotICAgICAgICB3cml0ZURvdWJsZShkYXRhLCBrZXkuZGF0ZSgpKTsKKyAg
ICAgICAgd3JpdGVEb3VibGUoZGF0YSwga2V5LmRhdGUoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZh
bHVlKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNJREJLZXlUeXBlOjpTdHJpbmc6IHsK
ICAgICAgICAgYXV0byBzdHJpbmcgPSBrZXkuc3RyaW5nKCk7CkBAIC0zMTMsMTEgKzMxMywxMSBA
QCBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlS2V5KGNvbnN0IHVpbnQ4X3Qq
JiBkYXRhLCBjb25zdCB1aW50OF90KiBlbgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAg
ICAgY2FzZSBTSURCS2V5VHlwZTo6RGF0ZTogewotICAgICAgICBkb3VibGUgZDsKLSAgICAgICAg
aWYgKCFyZWFkRG91YmxlKGRhdGEsIGVuZCwgZCkpCisgICAgICAgIGRvdWJsZSBzZWNvbmRzOwor
ICAgICAgICBpZiAoIXJlYWREb3VibGUoZGF0YSwgZW5kLCBzZWNvbmRzKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgICAgICByZXN1bHQuc2V0RGF0ZVZhbHVlKGQpOworICAgICAg
ICByZXN1bHQuc2V0RGF0ZVZhbHVlKFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzZWNvbmRzKSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBjYXNlIFNJREJLZXlUeXBlOjpTdHJp
bmc6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCmluZGV4IGZkMDk5ZjU0Mzc4YTE5OTVk
M2YxNDc4ODk5NzU4MGNjYzhlZjljNTUuLjlmNjEyYTYxZTRiOWI3NGMxMzUyYjE3YWNkYmI2N2Ri
NDZjOThmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgPHd0Zi9CcmlnYW5kLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogI2lm
IEVOQUJMRShXRUJHTCkKICNpbmNsdWRlICJXZWJHTEFueS5oIgpAQCAtMjU5LDExICsyNjAsMTEg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElETFR5cGVkQXJyYXkgOiBJRExCdWZmZXJT
b3VyY2U8VD4geyB9OwogCiAvLyBOb24tV2ViSURMIGV4dGVuc2lvbnMKIAotc3RydWN0IElETERh
dGUgOiBJRExUeXBlPGRvdWJsZT4geyAKLSAgICB1c2luZyBOdWxsYWJsZVR5cGUgPSBkb3VibGU7
Ci0gICAgc3RhdGljIGRvdWJsZSBudWxsVmFsdWUoKSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OnF1aWV0X05hTigpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNOdWxsVmFsdWUo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBzdGQ6OmlzbmFuKHZhbHVlKTsgfQotICAgIHN0YXRpYyBk
b3VibGUgZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gdmFs
dWU7IH0KK3N0cnVjdCBJRExEYXRlIDogSURMVHlwZTxXYWxsVGltZT4geyAKKyAgICB1c2luZyBO
dWxsYWJsZVR5cGUgPSBXYWxsVGltZTsKKyAgICBzdGF0aWMgV2FsbFRpbWUgbnVsbFZhbHVlKCkg
eyByZXR1cm4gV2FsbFRpbWU6Om5hbigpOyB9CisgICAgc3RhdGljIGJvb2wgaXNOdWxsVmFsdWUo
V2FsbFRpbWUgdmFsdWUpIHsgcmV0dXJuIHN0ZDo6aXNuYW4odmFsdWUpOyB9CisgICAgc3RhdGlj
IFdhbGxUaW1lIGV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShXYWxsVGltZSB2YWx1ZSkgeyByZXR1
cm4gdmFsdWU7IH0KIH07CiAKIHN0cnVjdCBJRExKU09OIDogSURMVHlwZTxTdHJpbmc+IHsgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3Bw
CmluZGV4IDllNTY3MjFkM2VkYWNkOGI5MGJiYjcwZDQzMTNlMWY3MDFmZTkxOTMuLmM3MjgxYThj
YTEwNjAwYjJiYjdjYTgzM2ZjNmI1NThlMTQyYmNiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC05Nyw3ICs5Nyw3IEBA
IHN0YXRpYyBib29sIGdldChKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNW
YWx1ZSBvYmplY3QsIGNvbnN0IFN0cmluCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAg
ICAgfQogICAgICAgICBpZiAoa2V5UGF0aEVsZW1lbnQgPT0gImxhc3RNb2RpZmllZCIpIHsKLSAg
ICAgICAgICAgIHJlc3VsdCA9IGpzTnVtYmVyKGpzQ2FzdDxKU0ZpbGUqPihvYmopLT53cmFwcGVk
KCkubGFzdE1vZGlmaWVkKCkpOworICAgICAgICAgICAgcmVzdWx0ID0ganNOdW1iZXIoanNDYXN0
PEpTRmlsZSo+KG9iaiktPndyYXBwZWQoKS5sYXN0TW9kaWZpZWQoKS5zZWNvbmRzU2luY2VFcG9j
aCgpLm1pbGxpc2Vjb25kcygpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9
CiAgICAgICAgIGlmIChrZXlQYXRoRWxlbWVudCA9PSAibGFzdE1vZGlmaWVkRGF0ZSIpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHAKaW5kZXgg
MTM2N2VkMjU0NzIxMWEzN2JmNzUzODRkODM5YThmZGVhMzI1OWM3Ni4uZDgwNzBjOGMxNTVjZjJm
NzJhZWY1NGQ4MjY5ZjQ2N2M4YzUxNzM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHAKQEAgLTMwLDIxICszMCwyNCBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotSlNWYWx1ZSBqc0RhdGUoSlNHbG9i
YWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSkKK0pTVmFsdWUganNE
YXRlKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBXYWxsVGltZSB2YWx1ZSkK
IHsKLSAgICByZXR1cm4gRGF0ZUluc3RhbmNlOjpjcmVhdGUobGV4aWNhbEdsb2JhbE9iamVjdC52
bSgpLCBsZXhpY2FsR2xvYmFsT2JqZWN0LmRhdGVTdHJ1Y3R1cmUoKSwgdmFsdWUpOworICAgIHJl
dHVybiBEYXRlSW5zdGFuY2U6OmNyZWF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCksIGxleGlj
YWxHbG9iYWxPYmplY3QuZGF0ZVN0cnVjdHVyZSgpLCB2YWx1ZS5zZWNvbmRzU2luY2VFcG9jaCgp
Lm1pbGxpc2Vjb25kcygpKTsKIH0KIAotZG91YmxlIHZhbHVlVG9EYXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitXYWxsVGltZSB2YWx1
ZVRvRGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVl
IHZhbHVlKQogeworICAgIGRvdWJsZSBtaWxsaXNlY29uZHMgPSBzdGQ6Om51bWVyaWNfbGltaXRz
PGRvdWJsZT46OnF1aWV0X05hTigpOworCiAgICAgYXV0byYgdm0gPSBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LnZtKCk7CiAgICAgaWYgKHZhbHVlLmluaGVyaXRzPERhdGVJbnN0YW5jZT4odm0pKQotICAg
ICAgICByZXR1cm4ganNDYXN0PERhdGVJbnN0YW5jZSo+KHZhbHVlKS0+aW50ZXJuYWxOdW1iZXIo
KTsKLSAgICBpZiAodmFsdWUuaXNOdW1iZXIoKSkKLSAgICAgICAgcmV0dXJuIHZhbHVlLmFzTnVt
YmVyKCk7Ci0gICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpCi0gICAgICAgIHJldHVybiB2bS5kYXRl
Q2FjaGUucGFyc2VEYXRlKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB2bSwgdmFsdWUuZ2V0U3RyaW5n
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KSk7Ci0gICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8
ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisgICAgICAgIG1pbGxpc2Vjb25kcyA9IGpzQ2FzdDxEYXRl
SW5zdGFuY2UqPih2YWx1ZSktPmludGVybmFsTnVtYmVyKCk7CisgICAgZWxzZSBpZiAodmFsdWUu
aXNOdW1iZXIoKSkKKyAgICAgICAgbWlsbGlzZWNvbmRzID0gdmFsdWUuYXNOdW1iZXIoKTsKKyAg
ICBlbHNlIGlmICh2YWx1ZS5pc1N0cmluZygpKQorICAgICAgICBtaWxsaXNlY29uZHMgPSB2bS5k
YXRlQ2FjaGUucGFyc2VEYXRlKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB2bSwgdmFsdWUuZ2V0U3Ry
aW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CisKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobWlsbGlzZWNvbmRzKS52YWx1ZSgp
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01Db252ZXJ0RGF0ZS5oCmluZGV4IDU2MjQyOTI5ZjcyZGNjNWU0ZDQ0MDQyODEx
MTJlYmUwN2FmOGI2NzQuLmQxMjM2MWZkNmZmMWUxZTYxMGIzZjEyMThlODA2OGY4NjhjMjdjZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmgKQEAg
LTI4LDE0ICsyOCwxNSBAQAogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiSlNET01D
b252ZXJ0QmFzZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTR2xvYmFsT2JqZWN0Lmg+
CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlND
OjpKU1ZhbHVlIGpzRGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgZG91YmxlIHZhbHVlKTsKLWRv
dWJsZSB2YWx1ZVRvRGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlKTsgLy8g
TmFOIGlmIHRoZSB2YWx1ZSBjYW4ndCBiZSBjb252ZXJ0ZWQgdG8gYSBkYXRlLgorSlNDOjpKU1Zh
bHVlIGpzRGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgV2FsbFRpbWUgdmFsdWUpOworV2FsbFRp
bWUgdmFsdWVUb0RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7IC8vIE5h
TiBpZiB0aGUgdmFsdWUgY2FuJ3QgYmUgY29udmVydGVkIHRvIGEgZGF0ZS4KIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgQ29udmVydGVyPElETERhdGU+IDogRGVmYXVsdENvbnZlcnRlcjxJRExEYXRlPiB7
Ci0gICAgc3RhdGljIGRvdWJsZSBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKKyAgICBzdGF0aWMgV2FsbFRpbWUgY29u
dmVydChKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFs
dWUgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4gdmFsdWVUb0RhdGUobGV4aWNhbEdsb2Jh
bE9iamVjdCwgdmFsdWUpOwogICAgIH0KQEAgLTQ2LDcgKzQ3LDcgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgSlNDb252ZXJ0ZXI8SURMRGF0ZT4gewogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVk
c0dsb2JhbE9iamVjdCA9IGZhbHNlOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHRh
a2luZyBhIEpTRE9NR2xvYmFsT2JqZWN0IGFuZCBwYXNzaW5nIGl0IHRvIGpzRGF0ZS4KLSAgICBz
dGF0aWMgSlNDOjpKU1ZhbHVlIGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgZG91YmxlIHZhbHVlKQorICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgY29udmVy
dChKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBXYWxsVGltZSB2YWx1
ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBqc0RhdGUobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFs
dWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDBiYWZhNzk4MzA5YzE2NTBjNjQwMmJkMDZlZWE3MzAx
MTk2ZTNlMzMuLjBhYjkxMTVjNDU1YzIyNjE0YzM1MTU0NjAzM2VlMDdmYmM5MzJiOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcApAQCAtMTYwNCw3ICsxNjA0LDEwIEBAIHByaXZhdGU6CiAgICAgICAgIHdyaXRlKGZpbGUu
dXJsKCkuc3RyaW5nKCkpOwogICAgICAgICB3cml0ZShmaWxlLnR5cGUoKSk7CiAgICAgICAgIHdy
aXRlKGZpbGUubmFtZSgpKTsKLSAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8ZG91YmxlPihmaWxl
Lmxhc3RNb2RpZmllZE92ZXJyaWRlKCkudmFsdWVfb3IoLTEpKSk7CisgICAgICAgIGlmIChhdXRv
IGxhc3RNb2RpZmllZE92ZXJyaWRlID0gZmlsZS5sYXN0TW9kaWZpZWRPdmVycmlkZSgpKQorICAg
ICAgICAgICAgd3JpdGUobGFzdE1vZGlmaWVkT3ZlcnJpZGUtPnNlY29uZHNTaW5jZUVwb2NoKCku
bWlsbGlzZWNvbmRzKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB3cml0ZSgtMSk7CiAg
ICAgfQogCiAgICAgdm9pZCB3cml0ZShQcmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlKQpA
QCAtMjU0OSwxMyArMjU1MiwxMyBAQCBwcml2YXRlOgogICAgICAgICBDYWNoZWRTdHJpbmdSZWYg
bmFtZTsKICAgICAgICAgaWYgKCFyZWFkU3RyaW5nRGF0YShuYW1lKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxpbnQ2NF90PiBvcHRpb25hbExhc3RN
b2RpZmllZDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gb3B0aW9uYWxMYXN0TW9k
aWZpZWQ7CiAgICAgICAgIGlmIChtX3ZlcnNpb24gPiA2KSB7CiAgICAgICAgICAgICBkb3VibGUg
bGFzdE1vZGlmaWVkOwogICAgICAgICAgICAgaWYgKCFyZWFkKGxhc3RNb2RpZmllZCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKGxhc3RNb2RpZmllZCA+
PSAwKQotICAgICAgICAgICAgICAgIG9wdGlvbmFsTGFzdE1vZGlmaWVkID0gbGFzdE1vZGlmaWVk
OworICAgICAgICAgICAgICAgIG9wdGlvbmFsTGFzdE1vZGlmaWVkID0gV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobGFzdE1vZGlmaWVkKS52YWx1ZSgp
KTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIElmIHRoZSBibG9iIFVSTCBmb3IgdGhpcyBmaWxl
IGhhcyBhbiBhc3NvY2lhdGVkIGJsb2IgZmlsZSBwYXRoLCBwcmVmZXIgdGhhdCBvbmUgb3ZlciB0
aGUgImJ1aWx0LWluIiBwYXRoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9G
aWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKaW5kZXggOTc0NGIwMTU3
YWUxMWMxMTBjZDhjMjg5ZTUyN2NiZmEwMmMxMGU5MS4uYjNmMjU4MmU2MjA5YmY3NjRjOTM4YmVi
YTYxYjAyMzliMzg3Y2Y4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCkBAIC02Nyw3ICs2Nyw3
IEBAIEZpbGU6OkZpbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVVJMJiYgdXJs
LCBTdHJpbmcmJiB0eXBlLCBTdHJpbmcmJiBwCiB7CiB9CiAKLUZpbGU6OkZpbGUoRGVzZXJpYWxp
emF0aW9uQ29udHJ1Y3RvciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3Qg
U3RyaW5nJiBwYXRoLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4mIGxhc3RNb2RpZmllZCkK
K0ZpbGU6OkZpbGUoRGVzZXJpYWxpemF0aW9uQ29udHJ1Y3RvciwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2Fs
bFRpbWU+JiBsYXN0TW9kaWZpZWQpCiAgICAgOiBCbG9iKGRlc2VyaWFsaXphdGlvbkNvbnRydWN0
b3IsIGNvbnRleHQsIHVybCwgdHlwZSwgeyB9LCBwYXRoKQogICAgICwgbV9wYXRoKHBhdGgpCiAg
ICAgLCBtX25hbWUobmFtZSkKQEAgLTc4LDcgKzc4LDcgQEAgRmlsZTo6RmlsZShEZXNlcmlhbGl6
YXRpb25Db250cnVjdG9yLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBT
dHIKIEZpbGU6OkZpbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVmVjdG9yPEJs
b2JQYXJ0VmFyaWFudD4mJiBibG9iUGFydFZhcmlhbnRzLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1l
LCBjb25zdCBQcm9wZXJ0eUJhZyYgcHJvcGVydHlCYWcpCiAgICAgOiBCbG9iKGNvbnRleHQsIFdU
Rk1vdmUoYmxvYlBhcnRWYXJpYW50cyksIHByb3BlcnR5QmFnKQogICAgICwgbV9uYW1lKGZpbGVu
YW1lKQotICAgICwgbV9sYXN0TW9kaWZpZWREYXRlT3ZlcnJpZGUocHJvcGVydHlCYWcubGFzdE1v
ZGlmaWVkLnZhbHVlX29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxp
c2Vjb25kcygpKSkKKyAgICAsIG1fbGFzdE1vZGlmaWVkRGF0ZU92ZXJyaWRlKHByb3BlcnR5QmFn
Lmxhc3RNb2RpZmllZCA/IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWls
bGlzZWNvbmRzKCpwcm9wZXJ0eUJhZy5sYXN0TW9kaWZpZWQpLnZhbHVlKCkpIDogV2FsbFRpbWU6
Om5vdygpKQogewogfQogCkBAIC05OSwyMyArOTksMjMgQEAgRmlsZTo6RmlsZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBGaWxlJiBmaWxlLCBjb25zdCBTdHJpbmcmIG5h
bWUKIHsKIH0KIAotaW50NjRfdCBGaWxlOjpsYXN0TW9kaWZpZWQoKSBjb25zdAorV2FsbFRpbWUg
RmlsZTo6bGFzdE1vZGlmaWVkKCkgY29uc3QKIHsKICAgICBpZiAobV9sYXN0TW9kaWZpZWREYXRl
T3ZlcnJpZGUpCiAgICAgICAgIHJldHVybiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZS52YWx1
ZSgpOwogCi0gICAgaW50NjRfdCByZXN1bHQ7Ci0KICAgICAvLyBGSVhNRTogVGhpcyBkb2VzIHN5
bmMtaS9vIG9uIHRoZSBtYWluIHRocmVhZCBhbmQgYWxzbyByZWNhbGN1bGF0ZXMgZXZlcnkgdGlt
ZSB0aGUgbWV0aG9kIGlzIGNhbGxlZC4KICAgICAvLyBUaGUgaS9vIHNob3VsZCBiZSBwZXJmb3Jt
ZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZCwKICAgICAvLyBhbmQgdGhlIHJlc3VsdCBzaG91bGQg
YmUgY2FjaGVkIGFsb25nIHdpdGggYW4gYXN5bmNocm9ub3VzIG1vbml0b3IgZm9yIGNoYW5nZXMg
dG8gdGhlIGZpbGUuCi0gICAgYXV0byBtb2RpZmljYXRpb25UaW1lID0gRmlsZVN5c3RlbTo6Zmls
ZU1vZGlmaWNhdGlvblRpbWUobV9wYXRoKTsKLSAgICBpZiAobW9kaWZpY2F0aW9uVGltZSkKLSAg
ICAgICAgcmVzdWx0ID0gbW9kaWZpY2F0aW9uVGltZS0+c2Vjb25kc1NpbmNlRXBvY2goKS5taWxs
aXNlY29uZHNBczxpbnQ2NF90PigpOwotICAgIGVsc2UKLSAgICAgICAgcmVzdWx0ID0gV2FsbFRp
bWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzQXM8aW50NjRfdD4oKTsK
KyAgICBpZiAoYXV0byBtb2RpZmljYXRpb25UaW1lID0gRmlsZVN5c3RlbTo6ZmlsZU1vZGlmaWNh
dGlvblRpbWUobV9wYXRoKSkKKyAgICAgICAgcmV0dXJuICptb2RpZmljYXRpb25UaW1lOwogCi0g
ICAgcmV0dXJuIHRpbWVDbGlwKHJlc3VsdCk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpub3coKTsK
K30KKworaW50NjRfdCBGaWxlOjpsYXN0TW9kaWZpZWRGb3JCaW5kaW5ncygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHRpbWVDbGlwKGxhc3RNb2RpZmllZCgpLnNlY29uZHNTaW5jZUVwb2NoKCkubWls
bGlzZWNvbmRzQXM8aW50NjRfdD4oKSk7CiB9CiAKIHZvaWQgRmlsZTo6Y29tcHV0ZU5hbWVBbmRD
b250ZW50VHlwZShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgbmFtZU92ZXJyaWRl
LCBTdHJpbmcmIGVmZmVjdGl2ZU5hbWUsIFN0cmluZyYgZWZmZWN0aXZlQ29udGVudFR5cGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZS5oCmluZGV4IGM4ODAzMmI1ZWE3NzVhOGJmMjlkZGRiM2Q3M2ExY2RhNDA0
NDE3MmEuLjRkYTczNGZiNmQ4MGFlNGUxMzYxYmJiYWU3ZjhlZmE2OTQyOTQwZWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvRmlsZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5o
PgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CisjaW5j
bHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUxLDcgKzUyLDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gZmlsZTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPEZpbGU+IGRlc2VyaWFsaXplKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3Qg
VVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBzdGQ6Om9wdGlvbmFsPGludDY0X3Q+JiBsYXN0TW9kaWZpZWQgPSBzdGQ6Om51bGxvcHQpCisg
ICAgc3RhdGljIFJlZjxGaWxlPiBkZXNlcmlhbGl6ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxXYWxsVGlt
ZT4mIGxhc3RNb2RpZmllZCA9IHN0ZDo6bnVsbG9wdCkKICAgICB7CiAgICAgICAgIGF1dG8gZmls
ZSA9IGFkb3B0UmVmKCpuZXcgRmlsZShkZXNlcmlhbGl6YXRpb25Db250cnVjdG9yLCBjb250ZXh0
LCBwYXRoLCBzcmNVUkwsIHR5cGUsIG5hbWUsIGxhc3RNb2RpZmllZCkpOwogICAgICAgICBmaWxl
LT5zdXNwZW5kSWZOZWVkZWQoKTsKQEAgLTgwLDggKzgxLDEwIEBAIHB1YmxpYzoKICAgICBjb25z
dCBTdHJpbmcmIHJlbGF0aXZlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVsYXRpdmVQYXRoOyB9
CiAgICAgdm9pZCBzZXRSZWxhdGl2ZVBhdGgoY29uc3QgU3RyaW5nJiByZWxhdGl2ZVBhdGgpIHsg
bV9yZWxhdGl2ZVBhdGggPSByZWxhdGl2ZVBhdGg7IH0KICAgICBjb25zdCBTdHJpbmcmIG5hbWUo
KSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQ2NF90IGxh
c3RNb2RpZmllZCgpIGNvbnN0OyAvLyBOdW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlIEVwb2No
LgotICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4mIGxhc3RNb2RpZmllZE92ZXJyaWRl
KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TW9kaWZpZWREYXRlT3ZlcnJpZGU7IH0gLy8gTnVtYmVy
IG9mIG1pbGxpc2Vjb25kcyBzaW5jZSBFcG9jaC4KKyAgICBXYWxsVGltZSBsYXN0TW9kaWZpZWQo
KSBjb25zdDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiYgbGFzdE1vZGlmaWVk
T3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZTsgfQor
CisgICAgV0VCQ09SRV9FWFBPUlQgaW50NjRfdCBsYXN0TW9kaWZpZWRGb3JCaW5kaW5ncygpIGNv
bnN0OyAvLyBOdW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlIEVwb2NoLgogCiAgICAgc3RhdGlj
IFN0cmluZyBjb250ZW50VHlwZUZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKTsKIApAQCAtOTgs
NyArMTAxLDcgQEAgcHJpdmF0ZToKICAgICBGaWxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBj
b25zdCBCbG9iJiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICBGaWxlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBjb25zdCBGaWxlJiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKIAotICAgIEZpbGUo
RGVzZXJpYWxpemF0aW9uQ29udHJ1Y3RvciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0
IFN0cmluZyYgcGF0aCwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6Om9wdGlvbmFsPGludDY0X3Q+JiBsYXN0TW9kaWZp
ZWQpOworICAgIEZpbGUoRGVzZXJpYWxpemF0aW9uQ29udHJ1Y3RvciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0
cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdhbGxU
aW1lPiYgbGFzdE1vZGlmaWVkKTsKIAogICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVOYW1lQW5kQ29u
dGVudFR5cGUoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIG5hbWVPdmVycmlkZSwg
U3RyaW5nJiBlZmZlY3RpdmVOYW1lLCBTdHJpbmcmIGVmZmVjdGl2ZUNvbnRlbnRUeXBlKTsKICNp
ZiBFTkFCTEUoRklMRV9SRVBMQUNFTUVOVCkKQEAgLTExMiw3ICsxMTUsNyBAQCBwcml2YXRlOgog
ICAgIFN0cmluZyBtX3JlbGF0aXZlUGF0aDsKICAgICBTdHJpbmcgbV9uYW1lOwogCi0gICAgc3Rk
OjpvcHRpb25hbDxpbnQ2NF90PiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZTsKKyAgICBzdGQ6
Om9wdGlvbmFsPFdhbGxUaW1lPiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZTsKICAgICBtdXRh
YmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9pc0RpcmVjdG9yeTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGUuaWRsCmluZGV4IGY1ZWI1Mzg5Y2JmMjJkMmI1NmMwZmI3OGZjYzZjOTRmNWY3YmMzOWMu
LjZhMTJlYTA3MzFhODg1YmZjNTQ3M2ZiZmU2MjUyMmMxZmM0MjAzMjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlLmlkbApAQCAtMzQsNyArMzQsNyBAQCB0eXBlZGVmIChCdWZmZXJTb3VyY2Ugb3IgQmxv
YiBvciBVU1ZTdHJpbmcpIEJsb2JQYXJ0OwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25D
b250ZXh0XSBjb25zdHJ1Y3RvcihzZXF1ZW5jZTxCbG9iUGFydD4gZmlsZUJpdHMsIFVTVlN0cmlu
ZyBmaWxlTmFtZSwgb3B0aW9uYWwgRmlsZVByb3BlcnR5QmFnIG9wdGlvbnMpOwogCiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBs
b25nIGxvbmcgbGFzdE1vZGlmaWVkOworICAgIFtJbXBsZW1lbnRlZEFzPWxhc3RNb2RpZmllZEZv
ckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBsb25nIGxhc3RNb2RpZmllZDsKIAog
ICAgIC8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vZW50cmllcy1hcGkvI2ZpbGUtaW50ZXJmYWNl
CiAgICAgW0VuYWJsZWRBdFJ1bnRpbWU9RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCwgSW1wbGVtZW50
ZWRBcz1yZWxhdGl2ZVBhdGhdIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgd2Via2l0UmVs
YXRpdmVQYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGUuY3BwCmluZGV4IDU2MGE0Y2Y5NmI2OGEyMWI3ODMyODY4NDFjMDU0MDJiYzlhZDYzNGUu
LjZjMzgxYWE3MDFjOTQwNzI2NjFjZTBlMTUyZjI1OTFiNTQ3MTQ5OTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTEyNywxNSAr
MTI3LDE1IEBAIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6fkJhc2VEYXRlQW5kVGltZUlucHV0
VHlwZSgpCiAgICAgY2xvc2VEYXRlVGltZUNob29zZXIoKTsKIH0KIAotZG91YmxlIEJhc2VEYXRl
QW5kVGltZUlucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAorV2FsbFRpbWUgQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHZhbHVl
QXNEb3VibGUoKTsKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29uZHM6
OmZyb21NaWxsaXNlY29uZHModmFsdWVBc0RvdWJsZSgpKS52YWx1ZSgpKTsKIH0KIAotRXhjZXB0
aW9uT3I8dm9pZD4gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShkb3Vi
bGUgdmFsdWUpIGNvbnN0CitFeGNlcHRpb25Pcjx2b2lkPiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OnNldFZhbHVlQXNEYXRlKFdhbGxUaW1lIHZhbHVlKSBjb25zdAogewogICAgIEFTU0VSVChl
bGVtZW50KCkpOwotICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUoc2VyaWFsaXplV2l0aE1pbGxpc2Vj
b25kcyh2YWx1ZSkpOworICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUoc2VyaWFsaXplV2l0aE1pbGxp
c2Vjb25kcyh2YWx1ZS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKSk7CiAgICAg
cmV0dXJuIHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlLmgKaW5kZXggYzcyOWM5MjJhYjM4YmE4ZDk0ZDQ3NDQ1NzMzYWRhMzBjNTk1ZTI3
Ni4uNjg5MTA1YjM2NTFjNjNiYjlmZmRhYTFlOWNkMDg0MWMxZDA2NDNhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC0xMDIsOCArMTAy
LDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgZmluYWw7CiAg
ICAgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAgICAg
dm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxk
RXZlbnRCZWhhdmlvcikgZmluYWw7Ci0gICAgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoZG91YmxlKSBjb25z
dCBvdmVycmlkZTsKKyAgICBXYWxsVGltZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKFdhbGxUaW1lKSBjb25zdCBvdmVy
cmlkZTsKICAgICBkb3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0IGZpbmFsOwogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEZWNpbWFsKGNvbnN0IERlY2ltYWwmLCBUZXh0RmllbGRF
dmVudEJlaGF2aW9yKSBjb25zdCBmaW5hbDsKICAgICBEZWNpbWFsIGRlZmF1bHRWYWx1ZUZvclN0
ZXBVcCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVM
b2NhbElucHV0VHlwZS5jcHAKaW5kZXggNTk4YThiYmRmNzRmNTdiMGY3ZmQxNWU5NzAwZGJhMzg2
YmMyMTRlYS4uZGIxNmRhN2U0OTliMWU5YmI3ODM2OTcxMzE2YmVlOThhNmJkZTNmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCkBAIC02Miwx
MyArNjIsMTMgQEAgRGF0ZUNvbXBvbmVudHNUeXBlIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmRh
dGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gRGF0ZUNvbXBvbmVudHNUeXBlOjpEYXRlVGltZUxv
Y2FsOwogfQogCi1kb3VibGUgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBj
b25zdAorV2FsbFRpbWUgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25z
dAogewogICAgIC8vIHZhbHVlQXNEYXRlIGRvZXNuJ3Qgd29yayBmb3IgdGhlIGRhdGV0aW1lLWxv
Y2FsIHR5cGUgYWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZC4KLSAgICByZXR1cm4gRGF0ZUNvbXBv
bmVudHM6OmludmFsaWRNaWxsaXNlY29uZHMoKTsKKyAgICByZXR1cm4gV2FsbFRpbWU6Om5hbigp
OwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRWYWx1
ZUFzRGF0ZShkb3VibGUgdmFsdWUpIGNvbnN0CitFeGNlcHRpb25Pcjx2b2lkPiBEYXRlVGltZUxv
Y2FsSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShXYWxsVGltZSB2YWx1ZSkgY29uc3QKIHsKICAg
ICAvLyB2YWx1ZUFzRGF0ZSBkb2Vzbid0IHdvcmsgZm9yIHRoZSBkYXRldGltZS1sb2NhbCB0eXBl
IGFjY29yZGluZyB0byB0aGUgc3RhbmRhcmQuCiAgICAgcmV0dXJuIElucHV0VHlwZTo6c2V0VmFs
dWVBc0RhdGUodmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGlt
ZUxvY2FsSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1
dFR5cGUuaAppbmRleCAxNjZmNTAwMDQxNmVjNDY3YTVmZTk5MzQ3YjdmYzlhMjM5MjQxMjg3Li41
NjBmYjY0ZDAwYTJiYThkMjc0MjFiZmIxMDFiNWMwYTcyNTIxZGMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaApAQCAtNDcsOCArNDcsOCBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNv
bnN0IGZpbmFsOwogICAgIERhdGVDb21wb25lbnRzVHlwZSBkYXRlVHlwZSgpIGNvbnN0IGZpbmFs
OwotICAgIGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IGZpbmFsOwotICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFZhbHVlQXNEYXRlKGRvdWJsZSkgY29uc3QgZmluYWw7CisgICAgV2FsbFRpbWUg
dmFsdWVBc0RhdGUoKSBjb25zdCBmaW5hbDsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1
ZUFzRGF0ZShXYWxsVGltZSkgY29uc3QgZmluYWw7CiAgICAgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBS
YW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8RGF0
ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhTdHJpbmdWaWV3KSBjb25zdCBmaW5h
bDsKICAgICBzdGQ6Om9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0
ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCmluZGV4IDBiYmFmMjI0ZjJmNTFkMzY1ZDQzNWU0YTM0ZmU0YTYzYTY2
NDU3YzAuLjlhNzVhYWRkNzgyMjk5ODFiMjQ0OWY0NDJlMDJmMzgyYzdhZWU1MjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTExMSwxMiArMTExMSwxMiBA
QCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlSW50ZXJuYWwoY29uc3QgU3RyaW5nJiBz
YW5pdGl6ZWRWYWx1ZSwgVGV4dEZpZWxkRQogICAgIHVwZGF0ZVZhbGlkaXR5KCk7CiB9CiAKLWRv
dWJsZSBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZSgpIGNvbnN0CitXYWxsVGltZSBIVE1M
SW5wdXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW5wdXRU
eXBlLT52YWx1ZUFzRGF0ZSgpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVt
ZW50OjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUgdmFsdWUpCitFeGNlcHRpb25Pcjx2b2lkPiBIVE1M
SW5wdXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShXYWxsVGltZSB2YWx1ZSkKIHsKICAgICByZXR1
cm4gbV9pbnB1dFR5cGUtPnNldFZhbHVlQXNEYXRlKHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggMTk5ODQ0Y2ZhN2M1NzM1Y2I0ZDcyMzBlYjVkM2Ri
OTBmYTU5M2Y1Yi4uNzUwNmMyODY0NTQ3YWY4NWRkODkyZWJlMDEzMDcwMWIxYjZmODUwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTE4NCw4ICsxODQsOCBAQCBw
dWJsaWM6CiAgICAgLy8gVGhlIHZhbHVlIHdoaWNoIGlzIGRyYXduIGJ5IGEgcmVuZGVyZXIuCiAg
ICAgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgZG91
YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0VmFsdWVBc0RhdGUoZG91YmxlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBXYWxsVGlt
ZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldFZhbHVlQXNEYXRlKFdhbGxUaW1lKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJs
ZSB2YWx1ZUFzTnVtYmVyKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0VmFsdWVBc051bWJlcihkb3VibGUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgPSBE
aXNwYXRjaE5vRXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
aW5kZXggNTE3MWI5Y2RjNzg5MzE3MWUyMWU1ZjRiZjU1MDE3ZWY5NDRhYzc5NS4uZWM4MzUxYzA5
Nzc0OGIxNDlhOTQ0MzliYWI2OTU3OGVlOTAwMWEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMTExLDExICsxMTExLDEyIEBAIFN0cmluZyBIVE1MTWVk
aWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAogICAg
IHJldHVybiBjYW5QbGF5OwogfQogCi1kb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6Z2V0U3RhcnRE
YXRlKCkgY29uc3QKK1dhbGxUaW1lIEhUTUxNZWRpYUVsZW1lbnQ6OmdldFN0YXJ0RGF0ZSgpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX3BsYXllcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19s
aW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7Ci0gICAgcmV0dXJuIG1fcGxheWVyLT5nZXRTdGFy
dERhdGUoKS50b0RvdWJsZSgpOworICAgICAgICByZXR1cm4gV2FsbFRpbWU6Om5hbigpOworCisg
ICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhtX3BsYXllci0+Z2V0U3RhcnREYXRl
KCkudG9Eb3VibGUoKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDY5NTY2OTQ5NjMxMGVmOTEwOGI5
NTZmZGE0ODIxNDMwMTQ5NzBlY2IuLjZiNDA0YWE4NzM1Mjc3N2I0NzE4MzVmMTIwZmYxNTdjZWVk
ODRhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC00Niw2ICs0
Niw3IEBACiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhl
bHBlci5oPgogI2luY2x1ZGUgPHd0Zi9PYnNlcnZlci5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikg
JiYgUExBVEZPUk0oTUFDKQpAQCAtMjQyLDcgKzI0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dEN1cnJlbnRUaW1lV2l0aFRvbGVyYW5jZShkb3VibGUsIGRvdWJsZSB0b2xlcmFuY2VCZWZvcmUs
IGRvdWJsZSB0b2xlcmFuY2VBZnRlcik7CiAgICAgZG91YmxlIGN1cnJlbnRUaW1lRm9yQmluZGlu
Z3MoKSBjb25zdCB7IHJldHVybiBjdXJyZW50VGltZSgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0Q3VycmVudFRpbWVGb3JCaW5kaW5ncyhkb3VibGUpOwotICAg
IFdFQkNPUkVfRVhQT1JUIGRvdWJsZSBnZXRTdGFydERhdGUoKSBjb25zdDsKKyAgICBXRUJDT1JF
X0VYUE9SVCBXYWxsVGltZSBnZXRTdGFydERhdGUoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCBkb3VibGUgZHVyYXRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIHBhdXNlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0UGF1c2VkKGJvb2wpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IGViMGU4NDFhZDlmYzAwYTYyYTJkOTQ2MzBj
ZmI3MTEwMGY0ZTA2MjguLmNmZWM2Nzk3NDE1NjZjZTYwZmRjMzQyOWUyMmQ0Mjc2Mzg4Mzc1NTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTIwNCwxMiArMjA0LDEyIEBAIGJvb2wg
SW5wdXRUeXBlOjphcHBlbmRGb3JtRGF0YShET01Gb3JtRGF0YSYgZm9ybURhdGEpIGNvbnN0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWRvdWJsZSBJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKCkgY29u
c3QKK1dhbGxUaW1lIElucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAogewotICAgIHJldHVy
biBEYXRlQ29tcG9uZW50czo6aW52YWxpZE1pbGxpc2Vjb25kcygpOworICAgIHJldHVybiBXYWxs
VGltZTo6bmFuKCk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IElucHV0VHlwZTo6c2V0VmFsdWVB
c0RhdGUoZG91YmxlKSBjb25zdAorRXhjZXB0aW9uT3I8dm9pZD4gSW5wdXRUeXBlOjpzZXRWYWx1
ZUFzRGF0ZShXYWxsVGltZSkgY29uc3QKIHsKICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGRhMWRlYmNiNmI5
ZmMwNTJmZDYzYjU0Yjk2MjBjMjBhNzA0MzMyNjguLmUwZWFhODExZGRiNDE1MTdiMjg3M2FiNjZh
Mzc2MjJmYjY2ODdlZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMjIwLDggKzIyMCw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5n
Jik7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRoZSB2YWx1
ZSBhdHRyaWJ1dGUuCiAgICAgdmlydHVhbCBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpIGNvbnN0OyAv
LyBDaGVja2VkIGxhc3QsIGlmIGJvdGggaW50ZXJuYWwgc3RvcmFnZSBhbmQgdmFsdWUgYXR0cmli
dXRlIGFyZSBtaXNzaW5nLgogICAgIHZpcnR1YWwgU3RyaW5nIGRlZmF1bHRWYWx1ZSgpIGNvbnN0
OyAvLyBDaGVja2VkIGFmdGVyIGV2ZW4gZmFsbGJhY2tWYWx1ZSwgb25seSB3aGVuIHRoZSB2YWx1
ZVdpdGhEZWZhdWx0IGZ1bmN0aW9uIGlzIGNhbGxlZC4KLSAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1
ZUFzRGF0ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVB
c0RhdGUoZG91YmxlKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdhbGxUaW1lIHZhbHVlQXNEYXRlKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0ZShXYWxs
VGltZSkgY29uc3Q7CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RvdWJsZShkb3VibGUsIFRl
eHRGaWVsZEV2ZW50QmVoYXZpb3IpIGNvbnN0OwogICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0VmFsdWVBc0RlY2ltYWwoY29uc3QgRGVjaW1hbCYsIFRleHRGaWVsZEV2ZW50QmVoYXZp
b3IpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCA4OTE4
ZWUxYzljNDBkYjQwNTQ5Mjc0ZTFiZGJkMzU2NjNkNDQ0ZDI3Li4xOTgzYzQwOTk4ZjA2NTdiMTdk
MWQ4MGRlYjI4MGJkNjJlNzQ1ODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01v
bnRoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBl
LmNwcApAQCAtNjQsMTUgKzY0LDE1IEBAIERhdGVDb21wb25lbnRzVHlwZSBNb250aElucHV0VHlw
ZTo6ZGF0ZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBEYXRlQ29tcG9uZW50c1R5cGU6Ok1vbnRo
OwogfQogCi1kb3VibGUgTW9udGhJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKK1dhbGxU
aW1lIE1vbnRoSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGVs
ZW1lbnQoKSk7CiAgICAgYXV0byBkYXRlID0gcGFyc2VUb0RhdGVDb21wb25lbnRzKGVsZW1lbnQo
KS0+dmFsdWUoKSk7CiAgICAgaWYgKCFkYXRlKQotICAgICAgICByZXR1cm4gRGF0ZUNvbXBvbmVu
dHM6OmludmFsaWRNaWxsaXNlY29uZHMoKTsKKyAgICAgICAgcmV0dXJuIFdhbGxUaW1lOjpuYW4o
KTsKICAgICBkb3VibGUgbXNlYyA9IGRhdGUtPm1pbGxpc2Vjb25kc1NpbmNlRXBvY2goKTsKICAg
ICBBU1NFUlQoc3RkOjppc2Zpbml0ZShtc2VjKSk7Ci0gICAgcmV0dXJuIG1zZWM7CisgICAgcmV0
dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKG1z
ZWMpLnZhbHVlKCkpOwogfQogCiBTdHJpbmcgTW9udGhJbnB1dFR5cGU6OnNlcmlhbGl6ZVdpdGhN
aWxsaXNlY29uZHMoZG91YmxlIHZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb250aElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0
VHlwZS5oCmluZGV4IGRhNGM1YmM4YTQzZTFmMDQ2OGY2ODA2ZDk1YjRmMWY0MDc1ODI3OWMuLjU3
Mjc4YjVkYTA3Mzg1MjI0MWYxYTE4NzliMGExNjgxYTFlNDZlNTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01vbnRoSW5wdXRUeXBlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsKICAg
ICBEYXRlQ29tcG9uZW50c1R5cGUgZGF0ZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBkb3Vi
bGUgdmFsdWVBc0RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBXYWxsVGltZSB2YWx1ZUFzRGF0
ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFN0cmluZyBzZXJpYWxpemVXaXRoTWlsbGlzZWNvbmRz
KGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgRGVjaW1hbCBwYXJzZVRvTnVtYmVyKGNvbnN0
IFN0cmluZyYsIGNvbnN0IERlY2ltYWwmKSBjb25zdCBvdmVycmlkZTsKICAgICBEZWNpbWFsIGRl
ZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNw
cAppbmRleCA2Mjg2YjY1MjEyNmUwZGQxMzNkMmMyNGU0N2ZjZDdjZGM3Mzc2YTczLi43Mzk3ZTIw
OGEzZWQyODNkYzYyYTgxZmMwZjVhNGM5MWVkYTE5YzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNw
cApAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyBSZWZQdHI8SURCS2V5PiBpZGJLZXlGcm9tSW5z
cGVjdG9yT2JqZWN0KFJlZjxKU09OOjpPYmplY3Q+JiYga2V5KQogICAgICAgICBhdXRvIGRhdGUg
PSBrZXktPmdldERvdWJsZShQcm90b2NvbDo6SW5kZXhlZERCOjpLZXk6OmRhdGVLZXkpOwogICAg
ICAgICBpZiAoIWRhdGUpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0
dXJuIElEQktleTo6Y3JlYXRlRGF0ZSgqZGF0ZSk7CisgICAgICAgIHJldHVybiBJREJLZXk6OmNy
ZWF0ZURhdGUoV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29uZHM6OmZyb21NaWxsaXNlY29u
ZHMoKmRhdGUpKS52YWx1ZSgpKTsKICAgICB9CiAKICAgICBjYXNlIFByb3RvY29sOjpJbmRleGVk
REI6OktleTo6VHlwZTo6QXJyYXk6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0RPTS9ET01GaWxlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUZpbGUu
bW0KaW5kZXggZDU4ZmQwNTYzNTcxYjY1NjFiMmQ0NzZmNmEyYTBjZjQwYTlmMWQwMi4uOWFjMzMy
ZDdhYTA3Mjc4ZmUyMWZhYmZjZGFmMmEwODFiZjJkM2FlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvRE9NL0RPTUZpbGUubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvRE9NL0RPTUZpbGUubW0KQEAgLTQ4LDcgKzQ4LDcgQEAgLSAoTlNTdHJpbmcgKiluYW1lCiAt
IChsb25nIGxvbmcpbGFzdE1vZGlmaWVkCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT5sYXN0TW9kaWZpZWQoKTsKKyAgICByZXR1
cm4gSU1QTC0+bGFzdE1vZGlmaWVkRm9yQmluZGluZ3MoKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUhUTUxNZWRpYUVsZW1lbnQubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbQppbmRleCAz
ZjJiZWUzY2RjYWI5ZWQ2YjkwMzJmZjE4MDBiMzRiMzA3OWY2NjZmLi45YWUxN2NiMTUwZDk4MGVm
OGI2ZmU4MjlmMTRjYmU1Y2M4NGE1N2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW1w
b3J0ICJET01IVE1MTWVkaWFFbGVtZW50LmgiCiAKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCiAj
aW1wb3J0ICJET01NZWRpYUVycm9ySW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5vZGVJbnRlcm5h
bC5oIgogI2ltcG9ydCAiRE9NVGltZVJhbmdlc0ludGVybmFsLmgiCkBAIC0zMTMsNyArMzE0LDcg
QEAgLSAoTlNTdHJpbmcgKiljYW5QbGF5VHlwZTooTlNTdHJpbmcgKil0eXBlCiAtIChOU1RpbWVJ
bnRlcnZhbClnZXRTdGFydERhdGUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPmdldFN0YXJ0RGF0ZSgpOworICAgIHJldHVybiBr
aXQoSU1QTC0+Z2V0U3RhcnREYXRlKCkpOwogfQogCiAtICh2b2lkKXBsYXkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01JbnRlcm5hbC5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFsLmgKaW5kZXggOWU3MWM0YmQ1M2I0MmM5NmJiOGJi
MDA0ZjMwM2IwNzIwYTBlM2Y3OC4uYmE1YjJlNjNkOWUwNjg3OTkzMzU3MWMxOTdhYjI3MWJkZDcy
ZGVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFs
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFsLmgKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbXBvcnQgIkRPTU9iamVjdC5oIgogI2ltcG9ydCAiRE9NWFBhdGhOU1Jl
c29sdmVyLmgiCiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgorI2ltcG9ydCA8d3RmL1dhbGxUaW1l
Lmg+CiAKIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEpTT2JqZWN0OwpAQCAtNzcsMTIgKzc4
LDEyIEBAIFdlYkNvcmU6Ok5vZGVGaWx0ZXIqIGNvcmUoRE9NTm9kZUZpbHRlciAqKTsKIERPTU5h
dGl2ZVhQYXRoTlNSZXNvbHZlciAqa2l0KFdlYkNvcmU6OlhQYXRoTlNSZXNvbHZlciopOwogV2Vi
Q29yZTo6WFBhdGhOU1Jlc29sdmVyKiBjb3JlKERPTU5hdGl2ZVhQYXRoTlNSZXNvbHZlciAqKTsK
IAotaW5saW5lIE5TVGltZUludGVydmFsIGtpdChkb3VibGUgbXNTaW5jZUVwb2NoKQoraW5saW5l
IE5TVGltZUludGVydmFsIGtpdChXYWxsVGltZSB0aW1lKQogewotICAgIHJldHVybiBtc1NpbmNl
RXBvY2ggLyAxMDAwLjAgLSBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MDsKKyAgICByZXR1cm4gdGlt
ZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgLSBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MDsK
IH0KIAotaW5saW5lIGRvdWJsZSBjb3JlKE5TVGltZUludGVydmFsIHNlYykKK2lubGluZSBXYWxs
VGltZSBjb3JlKE5TVGltZUludGVydmFsIHNlYykKIHsKLSAgICByZXR1cm4gc2VjICogMTAwMC4w
ICsgTlNUaW1lSW50ZXJ2YWxTaW5jZTE5NzA7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyhzZWMgKyBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445875</attachid>
            <date>2021-12-03 11:04:47 -0800</date>
            <delta_ts>2021-12-03 12:03:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233781-20211203120446.patch</filename>
            <type>text/plain</type>
            <size>46489</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzYzViZDk2ZWMwMjJiNDkwYTcyN2NjYTAyZDFlZTcyNWE5ZDYyZTFiLi43
MjgzNjBmMGY3NzY0NWE5OTA2YTI1NjcyNmI4NDg3ZTgyMGY1N2Y4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsODggQEAKKzIwMjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENoYW5nZSBJREwgYERhdGVgIHRvIGJlIGJhY2tlZCBieSBgV2FsbFRpbWVg
IHRvIGF2b2lkIGNvbmZ1c2lvbiB3aGVuIGNvbnZlcnRpbmcgdG8gbmF0aXZlIGRhdGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3ODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKUyBgRGF0ZWAgaXMg
bWlsbGlzZWNvbmRzLWJhc2VkLCBidXQgc29tZSBuYXRpdmUgZGF0ZXMgKGUuZy4gYE5TRGF0ZWAp
IGFyZSBzZWNvbmRzLWJhc2VkLgorICAgICAgICBgV2FsbFRpbWVgIHdpbGwgaGVscCBhdm9pZCBj
b25mdXNpb24gc2luY2Ugbm90IGEgZ2VuZXJpYyB0eXBlIChlLmcuIGBkb3VibGVgKSBhbmQgaW5z
dGVhZAorICAgICAgICBoYXMgZXhwbGljaXRseSBkZWZpbmVkIGNvbnZlcnNpb24gbWV0aG9kcyB0
byBzZWNvbmRzLCBtaWxsaXNlY29uZHMsIGV0Yy4uCisKKyAgICAgICAgKiBiaW5kaW5ncy9JRExU
eXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6SURMRGF0ZTo6bnVsbFZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OklETERhdGU6OmlzTnVsbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklETERh
dGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0RGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udmVydGVyPElETERhdGU+Ojpj
b252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29udmVydGVyPElETERhdGU+Ojpjb252ZXJ0
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmpzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVRvRGF0ZSk6CisKKyAg
ICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TGluZUl0ZW0uaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5TGluZUl0ZW06OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW06CisgICAgICAgIChXZWJDb3Jl
Ojp0b0RhdGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oOgorICAgICAg
ICAoV2ViQ29yZTo6SURCS2V5OjpjcmVhdGVOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURC
S2V5OjpjcmVhdGVEYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleTo6ZGF0ZSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQktleTo6SURCS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleTo6Y29tcGFyZSBj
b25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oOgorICAgICAg
ICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJLZXlEYXRhOjpkYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5RGF0YTo6bWF5YmVDcmVhdGVJREJLZXkgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5RGF0YTo6aXNvbGF0ZWRDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURh
dGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpkZWNvZGUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6c2V0RGF0ZVZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQktleURhdGE6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5RGF0YTo6c2l6ZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5jb2RlS2V5
KToKKyAgICAgICAgKFdlYkNvcmU6OmRlY29kZUtleSk6CisgICAgICAgICogYmluZGluZ3MvanMv
SURCQmluZGluZ1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXQpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDbG9uZVNlcmlhbGl6ZXI6OndyaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVz
ZXJpYWxpemVyOjpyZWFkRmlsZSk6CisgICAgICAgICogZmlsZWFwaS9GaWxlLmlkbDoKKyAgICAg
ICAgKiBmaWxlYXBpL0ZpbGUuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZTo6RmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjpsYXN0TW9k
aWZpZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6bGFzdE1vZGlmaWVkRm9yQmlu
ZGluZ3MgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0
ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZh
bHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
dmFsdWVBc0RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpnZXRTdGFydERhdGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OnNldFZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNb250aElucHV0VHlwZTo6dmFsdWVBc0RhdGUgY29uc3QpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yOjppZGJLZXlGcm9tSW5zcGVjdG9yT2JqZWN0KToKKwogMjAyMS0xMi0wMiAgQWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBDcmVhdGUg
ZGlzcGxheSBib3hlcyBmb3IgZnJhZ21lbnRlZCBpbmxpbmUgYm94ZXMgb24gYmlkaSBib3VuZGFy
aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNzZhYTZhYWY4NGRlYjA4MmU0Yzg0
MzIyNDkzMzgwZDgzM2RlOTJkMS4uMWE0ZTczMjExMmY0NGQxYWNiYTI3MzNhNzE2NTkzMTExNTkw
ODIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIx
LTEyLTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDaGFu
Z2UgSURMIGBEYXRlYCB0byBiZSBiYWNrZWQgYnkgYFdhbGxUaW1lYCB0byBhdm9pZCBjb25mdXNp
b24gd2hlbiBjb252ZXJ0aW5nIHRvIG5hdGl2ZSBkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSlMgYERhdGVgIGlzIG1pbGxpc2Vjb25kcy1iYXNl
ZCwgYnV0IHNvbWUgbmF0aXZlIGRhdGVzIChlLmcuIGBOU0RhdGVgKSBhcmUgc2Vjb25kcy1iYXNl
ZC4KKyAgICAgICAgYFdhbGxUaW1lYCB3aWxsIGhlbHAgYXZvaWQgY29uZnVzaW9uIHNpbmNlIG5v
dCBhIGdlbmVyaWMgdHlwZSAoZS5nLiBgZG91YmxlYCkgYW5kIGluc3RlYWQKKyAgICAgICAgaGFz
IGV4cGxpY2l0bHkgZGVmaW5lZCBjb252ZXJzaW9uIG1ldGhvZHMgdG8gc2Vjb25kcywgbWlsbGlz
ZWNvbmRzLCBldGMuLgorCisgICAgICAgICogRE9NL0RPTUludGVybmFsLmg6CisgICAgICAgIChr
aXQpOgorICAgICAgICAoY29yZSk6CisKKyAgICAgICAgKiBET00vRE9NRmlsZS5tbToKKyAgICAg
ICAgKC1bRE9NRmlsZSBsYXN0TW9kaWZpZWRdKToKKyAgICAgICAgKiBET00vRE9NSFRNTE1lZGlh
RWxlbWVudC5tbToKKyAgICAgICAgKC1bRE9NSFRNTE1lZGlhRWxlbWVudCBnZXRTdGFydERhdGVd
KToKKwogMjAyMS0xMi0wMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgogCiAgICAgICAgIFtXZWJHUFVdIEhvb2sgdXAgbmF2aWdhdG9yLmdwdS5yZXF1ZXN0QWRhcHRl
cigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
TGluZUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5l
SXRlbS5oCmluZGV4IDk5ZWVmYmFiMTEzMzQzMWNjNWEwNzAyZmNjZDA5OGExOTNmNGM3MmIuLjZh
MzQ0MzdhNDQ4ZTg3MDBmMWViNmJhODk1ZGZiYmVjNWNlYTdiODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oCkBAIC0yOSw4ICsy
OSw4IEBACiAKICNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRUaW1pbmcuaCIKICNpbmNsdWRlICJB
cHBsZVBheVJlY3VycmluZ1BheW1lbnREYXRlVW5pdC5oIgotI2luY2x1ZGUgPGxpbWl0cz4KICNp
bmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCkBAIC01
MiwxNCArNTIsMTQgQEAgc3RydWN0IEFwcGxlUGF5TGluZUl0ZW0gZmluYWwgewogICAgIEFwcGxl
UGF5UGF5bWVudFRpbWluZyBwYXltZW50VGltaW5nIHsgQXBwbGVQYXlQYXltZW50VGltaW5nOjpJ
bW1lZGlhdGUgfTsKIAogI2lmIEVOQUJMRShBUFBMRV9QQVlfUkVDVVJSSU5HX0xJTkVfSVRFTSkK
LSAgICBkb3VibGUgcmVjdXJyaW5nUGF5bWVudFN0YXJ0RGF0ZSB7IHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKKyAgICBXYWxsVGltZSByZWN1cnJpbmdQYXltZW50
U3RhcnREYXRlIHsgV2FsbFRpbWU6Om5hbigpIH07CiAgICAgQXBwbGVQYXlSZWN1cnJpbmdQYXlt
ZW50RGF0ZVVuaXQgcmVjdXJyaW5nUGF5bWVudEludGVydmFsVW5pdCB7IEFwcGxlUGF5UmVjdXJy
aW5nUGF5bWVudERhdGVVbml0OjpNb250aCB9OwogICAgIHVuc2lnbmVkIHJlY3VycmluZ1BheW1l
bnRJbnRlcnZhbENvdW50ID0gMTsKLSAgICBkb3VibGUgcmVjdXJyaW5nUGF5bWVudEVuZERhdGUg
eyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisgICAgV2FsbFRp
bWUgcmVjdXJyaW5nUGF5bWVudEVuZERhdGUgeyBXYWxsVGltZTo6bmFuKCkgfTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKEFQUExFX1BBWV9ERUZFUlJFRF9MSU5FX0lURU0pCi0gICAgZG91YmxlIGRl
ZmVycmVkUGF5bWVudERhdGUgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05h
TigpIH07CisgICAgV2FsbFRpbWUgZGVmZXJyZWRQYXltZW50RGF0ZSB7IFdhbGxUaW1lOjpuYW4o
KSB9OwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEFwcGxlUGF5TGluZUl0ZW1BZGRpdGlvbnNfbWVt
YmVycykKQEAgLTEwNSwxMyArMTA1LDEzIEBAIHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlMaW5lSXRl
bT4gQXBwbGVQYXlMaW5lSXRlbTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgREVDT0RF
KGFtb3VudCwgU3RyaW5nKQogICAgIERFQ09ERShwYXltZW50VGltaW5nLCBBcHBsZVBheVBheW1l
bnRUaW1pbmcpCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9SRUNVUlJJTkdfTElORV9JVEVNKQotICAg
IERFQ09ERShyZWN1cnJpbmdQYXltZW50U3RhcnREYXRlLCBkb3VibGUpCisgICAgREVDT0RFKHJl
Y3VycmluZ1BheW1lbnRTdGFydERhdGUsIFdhbGxUaW1lKQogICAgIERFQ09ERShyZWN1cnJpbmdQ
YXltZW50SW50ZXJ2YWxVbml0LCBBcHBsZVBheVJlY3VycmluZ1BheW1lbnREYXRlVW5pdCkKICAg
ICBERUNPREUocmVjdXJyaW5nUGF5bWVudEludGVydmFsQ291bnQsIHVuc2lnbmVkKQotICAgIERF
Q09ERShyZWN1cnJpbmdQYXltZW50RW5kRGF0ZSwgZG91YmxlKQorICAgIERFQ09ERShyZWN1cnJp
bmdQYXltZW50RW5kRGF0ZSwgV2FsbFRpbWUpCiAjZW5kaWYKICNpZiBFTkFCTEUoQVBQTEVfUEFZ
X0RFRkVSUkVEX0xJTkVfSVRFTSkKLSAgICBERUNPREUoZGVmZXJyZWRQYXltZW50RGF0ZSwgZG91
YmxlKQorICAgIERFQ09ERShkZWZlcnJlZFBheW1lbnREYXRlLCBXYWxsVGltZSkKICNlbmRpZgog
I2lmIGRlZmluZWQoQXBwbGVQYXlMaW5lSXRlbUFkZGl0aW9uc19kZWNvZGVfbWVtYmVycykKICAg
ICBBcHBsZVBheUxpbmVJdGVtQWRkaXRpb25zX2RlY29kZV9tZW1iZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTdW1tYXJ5SXRlbXND
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1
bW1hcnlJdGVtc0NvY29hLm1tCmluZGV4IDk0MWE5ZWYxZDgwZWVlODUwNzE1NGMyMTZkNzcwMDY3
ZDc0MTBiMWEuLjVmMWMzMWI2ZTllMWU5ZWUyMzkzMGZkZDJkZTFmOTM1YmYyM2ViZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1bW1h
cnlJdGVtc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29j
b2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tCkBAIC02MCw5ICs2MCw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogI2lmIEhBVkUoUEFTU0tJVF9SRUNVUlJJTkdfU1VNTUFSWV9JVEVNKSB8
fCBIQVZFKFBBU1NLSVRfREVGRVJSRURfU1VNTUFSWV9JVEVNKQogCi1zdGF0aWMgTlNEYXRlICp0
b0RhdGUoZG91YmxlIGRhdGUpCitzdGF0aWMgTlNEYXRlICp0b0RhdGUoV2FsbFRpbWUgZGF0ZSkK
IHsKLSAgICByZXR1cm4gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDooZGF0
ZSAvIDEwMDApXTsKKyAgICByZXR1cm4gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNl
MTk3MDpkYXRlLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKV07CiB9CiAKICNlbmRpZiAvLyBI
QVZFKFBBU1NLSVRfUkVDVVJSSU5HX1NVTU1BUllfSVRFTSkgfHwgSEFWRShQQVNTS0lUX0RFRkVS
UkVEX1NVTU1BUllfSVRFTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJL
ZXkuY3BwCmluZGV4IDRmYjI2Mzg1NDgyOGI5ZjdmOGU0ZmJiYWIwN2Q0YTM0ZWY0ZjczNWQuLmYw
ZjJlMzZjZTQ3OGJmZWYxMzJmZWE0MjUyMTVjMWRlZDA4Zjk3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcApAQCAtNTgsMTMgKzU4LDIwIEBAIFJlZjxJ
REJLZXk+IElEQktleTo6Y3JlYXRlQmluYXJ5KEpTQzo6SlNBcnJheUJ1ZmZlclZpZXcmIGFycmF5
QnVmZmVyVmlldykKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJLZXkoVGhyZWFkU2FmZURh
dGFCdWZmZXI6OmNvcHlEYXRhKGJ1ZmZlclZpZXctPmRhdGEoKSwgYnVmZmVyVmlldy0+Ynl0ZUxl
bmd0aCgpKSkpOwogfQogCi1JREJLZXk6OklEQktleShJbmRleGVkREI6OktleVR5cGUgdHlwZSwg
ZG91YmxlIG51bWJlcikKLSAgICA6IG1fdHlwZSh0eXBlKQorSURCS2V5OjpJREJLZXkoZG91Ymxl
IG51bWJlcikKKyAgICA6IG1fdHlwZShJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcikKICAgICAs
IG1fdmFsdWUobnVtYmVyKQogICAgICwgbV9zaXplRXN0aW1hdGUoT3ZlcmhlYWRTaXplICsgc2l6
ZW9mKGRvdWJsZSkpCiB7CiB9CiAKK0lEQktleTo6SURCS2V5KFdhbGxUaW1lIGRhdGUpCisgICAg
OiBtX3R5cGUoSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlKQorICAgICwgbV92YWx1ZShkYXRlKQor
ICAgICwgbV9zaXplRXN0aW1hdGUoT3ZlcmhlYWRTaXplICsgc2l6ZW9mKFdhbGxUaW1lKSkKK3sK
K30KKwogSURCS2V5OjpJREJLZXkoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICA6IG1fdHlwZShJ
bmRleGVkREI6OktleVR5cGU6OlN0cmluZykKICAgICAsIG1fdmFsdWUodmFsdWUpCkBAIC0xMjYs
NyArMTMzLDExIEBAIGludCBJREJLZXk6OmNvbXBhcmUoY29uc3QgSURCS2V5JiBvdGhlcikgY29u
c3QKICAgICAgICAgcmV0dXJuIGNvbXBhcmVCaW5hcnlLZXlEYXRhKHN0ZDo6Z2V0PFRocmVhZFNh
ZmVEYXRhQnVmZmVyPihtX3ZhbHVlKSwgc3RkOjpnZXQ8VGhyZWFkU2FmZURhdGFCdWZmZXI+KG90
aGVyLm1fdmFsdWUpKTsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6U3RyaW5nOgogICAg
ICAgICByZXR1cm4gLWNvZGVQb2ludENvbXBhcmUoc3RkOjpnZXQ8U3RyaW5nPihvdGhlci5tX3Zh
bHVlKSwgc3RkOjpnZXQ8U3RyaW5nPihtX3ZhbHVlKSk7Ci0gICAgY2FzZSBJbmRleGVkREI6Oktl
eVR5cGU6OkRhdGU6CisgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6IHsKKyAgICAg
ICAgYXV0byBkYXRlID0gc3RkOjpnZXQ8V2FsbFRpbWU+KG1fdmFsdWUpOworICAgICAgICBhdXRv
IG90aGVyRGF0ZSA9IHN0ZDo6Z2V0PFdhbGxUaW1lPihvdGhlci5tX3ZhbHVlKTsKKyAgICAgICAg
cmV0dXJuIChkYXRlIDwgb3RoZXJEYXRlKSA/IC0xIDogKChkYXRlID4gb3RoZXJEYXRlKSA/IDEg
OiAwKTsKKyAgICB9CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjogewogICAg
ICAgICBhdXRvIG51bWJlciA9IHN0ZDo6Z2V0PGRvdWJsZT4obV92YWx1ZSk7CiAgICAgICAgIGF1
dG8gb3RoZXJOdW1iZXIgPSBzdGQ6OmdldDxkb3VibGU+KG90aGVyLm1fdmFsdWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaAppbmRleCBjMjhmZGNmMzViZjNkZmRi
N2IxZmRhNWU3Y2VjNTlhM2Q0MDY5Nzc0Li4xODZhOTM2ZjJmMzk1YzNmNjNhYmQ1M2MyZGFmMzYw
Zjg0ODg2MGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYv
V2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IEpTQyB7CkBAIC01MSw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBSZWY8SURCS2V5
PiBjcmVhdGVOdW1iZXIoZG91YmxlIG51bWJlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IElEQktleShJbmRleGVkREI6OktleVR5cGU6Ok51bWJlciwgbnVtYmVyKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQktleShudW1iZXIpKTsKICAgICB9CiAKICAg
ICBzdGF0aWMgUmVmPElEQktleT4gY3JlYXRlU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQpA
QCAtNTksOSArNjAsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElE
QktleShzdHJpbmcpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPElEQktleT4gY3JlYXRlRGF0
ZShkb3VibGUgZGF0ZSkKKyAgICBzdGF0aWMgUmVmPElEQktleT4gY3JlYXRlRGF0ZShXYWxsVGlt
ZSBkYXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCS2V5KEluZGV4
ZWREQjo6S2V5VHlwZTo6RGF0ZSwgZGF0ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBJREJLZXkoZGF0ZSkpOwogICAgIH0KIAogICAgIHN0YXRpYyBSZWY8SURCS2V5PiBjcmVhdGVN
dWx0aUVudHJ5QXJyYXkoY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+PiYgYXJyYXkpCkBAIC0x
MjAsMTAgKzEyMSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdGQ6OmdldDxTdHJpbmc+
KG1fdmFsdWUpOwogICAgIH0KIAotICAgIGRvdWJsZSBkYXRlKCkgY29uc3QKKyAgICBXYWxsVGlt
ZSBkYXRlKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gSW5kZXhlZERC
OjpLZXlUeXBlOjpEYXRlKTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6Z2V0PGRvdWJsZT4obV92YWx1
ZSk7CisgICAgICAgIHJldHVybiBzdGQ6OmdldDxXYWxsVGltZT4obV92YWx1ZSk7CiAgICAgfQog
CiAgICAgZG91YmxlIG51bWJlcigpIGNvbnN0CkBAIC0xNjMsMTMgKzE2NCwxNCBAQCBwcml2YXRl
OgogICAgIHsKICAgICB9CiAKLSAgICBJREJLZXkoSW5kZXhlZERCOjpLZXlUeXBlLCBkb3VibGUg
bnVtYmVyKTsKKyAgICBleHBsaWNpdCBJREJLZXkoZG91YmxlKTsKKyAgICBleHBsaWNpdCBJREJL
ZXkoV2FsbFRpbWUpOwogICAgIGV4cGxpY2l0IElEQktleShjb25zdCBTdHJpbmcmIHZhbHVlKTsK
ICAgICBJREJLZXkoY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+PiYga2V5QXJyYXksIHNpemVf
dCBhcnJheVNpemUpOwogICAgIGV4cGxpY2l0IElEQktleShjb25zdCBUaHJlYWRTYWZlRGF0YUJ1
ZmZlciYpOwogCiAgICAgY29uc3QgSW5kZXhlZERCOjpLZXlUeXBlIG1fdHlwZTsKLSAgICBzdGQ6
OnZhcmlhbnQ8VmVjdG9yPFJlZlB0cjxJREJLZXk+PiwgU3RyaW5nLCBkb3VibGUsIFRocmVhZFNh
ZmVEYXRhQnVmZmVyPiBtX3ZhbHVlOworICAgIHN0ZDo6dmFyaWFudDxWZWN0b3I8UmVmUHRyPElE
QktleT4+LCBTdHJpbmcsIFdhbGxUaW1lLCBkb3VibGUsIFRocmVhZFNhZmVEYXRhQnVmZmVyPiBt
X3ZhbHVlOwogCiAgICAgY29uc3Qgc2l6ZV90IG1fc2l6ZUVzdGltYXRlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCmluZGV4IDJhMzdjNTI4
ZWY1YmY5ZDk1NzczYTBiMTBmMDI1MjI5YmRlNWE0MTguLmU0OWZiM2U3MjhiYjM1MDM5NDhjZjk4
OTYzNjcyYjY1MjE5MGY4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQktleURhdGEuY3BwCkBAIC05MSw3ICs5MSw3IEBAIFJlZlB0cjxJREJLZXk+IElEQktl
eURhdGE6Om1heWJlQ3JlYXRlSURCS2V5KCkgY29uc3QKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5
VHlwZTo6U3RyaW5nOgogICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVTdHJpbmcoc3RkOjpn
ZXQ8U3RyaW5nPihtX3ZhbHVlKSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6
Ci0gICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZURhdGUoc3RkOjpnZXQ8ZG91YmxlPihtX3Zh
bHVlKSk7CisgICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZURhdGUoc3RkOjpnZXQ8V2FsbFRp
bWU+KG1fdmFsdWUpKTsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyOgogICAg
ICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVOdW1iZXIoc3RkOjpnZXQ8ZG91YmxlPihtX3ZhbHVl
KSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok1heDoKQEAgLTEzNiw2ICsxMzYsOCBA
QCB2b2lkIElEQktleURhdGE6Omlzb2xhdGVkQ29weShjb25zdCBJREJLZXlEYXRhJiBzb3VyY2Us
IElEQktleURhdGEmIGRlc3RpbmF0aW9uKQogICAgICAgICBkZXN0aW5hdGlvbi5tX3ZhbHVlID0g
c3RkOjpnZXQ8U3RyaW5nPihzb3VyY2UubV92YWx1ZSkuaXNvbGF0ZWRDb3B5KCk7CiAgICAgICAg
IHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAgZGVz
dGluYXRpb24ubV92YWx1ZSA9IHN0ZDo6Z2V0PFdhbGxUaW1lPihzb3VyY2UubV92YWx1ZSk7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyOgogICAg
ICAgICBkZXN0aW5hdGlvbi5tX3ZhbHVlID0gc3RkOjpnZXQ8ZG91YmxlPihzb3VyY2UubV92YWx1
ZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTE3Niw2ICsxNzgsOCBAQCB2b2lkIElEQktleURhdGE6
OmVuY29kZShLZXllZEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgICAgIGVuY29kZXIuZW5j
b2RlU3RyaW5nKCJzdHJpbmciLCBzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlOgorICAgICAgICBlbmNv
ZGVyLmVuY29kZURvdWJsZSgiZGF0ZSIsIHN0ZDo6Z2V0PFdhbGxUaW1lPihtX3ZhbHVlKS5zZWNv
bmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRl
eGVkREI6OktleVR5cGU6Ok51bWJlcjoKICAgICAgICAgZW5jb2Rlci5lbmNvZGVEb3VibGUoIm51
bWJlciIsIHN0ZDo6Z2V0PGRvdWJsZT4obV92YWx1ZSkpOwogICAgICAgICByZXR1cm47CkBAIC0y
MjIsNyArMjI2LDE2IEBAIGJvb2wgSURCS2V5RGF0YTo6ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVj
b2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVT
dHJpbmcoInN0cmluZyIsIHN0ZDo6Z2V0PFN0cmluZz4ocmVzdWx0Lm1fdmFsdWUpKTsKICAgICB9
CiAKLSAgICBpZiAocmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlciB8
fCByZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZSkgeworICAgIGlmIChy
ZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZSkgeworICAgICAgICByZXN1
bHQubV92YWx1ZSA9IFdhbGxUaW1lKCk7CisgICAgICAgIGRvdWJsZSBzZWNvbmRzOworICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlRG91YmxlKCJkYXRlIiwgc2Vjb25kcykpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKHNlY29uZHMpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBp
ZiAocmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcikgewogICAgICAg
ICByZXN1bHQubV92YWx1ZSA9IDAuMDsKICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlRG91
YmxlKCJudW1iZXIiLCBzdGQ6OmdldDxkb3VibGU+KHJlc3VsdC5tX3ZhbHVlKSk7CiAgICAgfQpA
QCAtNDA0LDcgKzQxNyw3IEBAIHZvaWQgSURCS2V5RGF0YTo6c2V0U3RyaW5nVmFsdWUoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKICAgICBtX2lzTnVsbCA9IGZhbHNlOwogfQogCi12b2lkIElEQktleURh
dGE6OnNldERhdGVWYWx1ZShkb3VibGUgdmFsdWUpCit2b2lkIElEQktleURhdGE6OnNldERhdGVW
YWx1ZShXYWxsVGltZSB2YWx1ZSkKIHsKICAgICAqdGhpcyA9IElEQktleURhdGEoKTsKICAgICBt
X3ZhbHVlID0gdmFsdWU7CkBAIC00NTAsOCArNDYzLDkgQEAgYm9vbCBJREJLZXlEYXRhOjpvcGVy
YXRvcj09KGNvbnN0IElEQktleURhdGEmIG90aGVyKSBjb25zdAogICAgIGNhc2UgSW5kZXhlZERC
OjpLZXlUeXBlOjpNaW46CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgSW5kZXhlZERC
OjpLZXlUeXBlOjpOdW1iZXI6Ci0gICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6CiAg
ICAgICAgIHJldHVybiBzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpID09IHN0ZDo6Z2V0PGRvdWJs
ZT4ob3RoZXIubV92YWx1ZSk7CisgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6Cisg
ICAgICAgIHJldHVybiBzdGQ6OmdldDxXYWxsVGltZT4obV92YWx1ZSkgPT0gc3RkOjpnZXQ8V2Fs
bFRpbWU+KG90aGVyLm1fdmFsdWUpOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpTdHJp
bmc6CiAgICAgICAgIHJldHVybiBzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpID09IHN0ZDo6Z2V0
PFN0cmluZz4ob3RoZXIubV92YWx1ZSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkJp
bmFyeToKQEAgLTQ4Miw2ICs0OTYsNyBAQCBzaXplX3QgSURCS2V5RGF0YTo6c2l6ZSgpIGNvbnN0
CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZzoKICAgICAgICAgcmV0dXJuIHN0
ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSkuc2l6ZUluQnl0ZXMoKTsKICAgICBjYXNlIEluZGV4ZWRE
Qjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAgcmV0dXJuIHNpemVvZihXYWxsVGltZSk7CiAgICAg
Y2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjoKICAgICAgICAgcmV0dXJuIHNpemVvZihk
b3VibGUpOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpNYXg6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmgKaW5kZXggNGI5Nzg1MzY5ZDE5MGE2
YjE5NjkxZDEzN2FlMTU2N2U1YzM3OTVkOS4uNWExN2U1OTEzMmNhNjVmYjJjYzE1NDI1M2JhODhi
ZDQyZTMxNTk2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCS2V5RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eURhdGEuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUg
PHZhcmlhbnQ+CiAjaW5jbHVkZSA8d3RmL1N0ZFNldC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtODEsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBcnJheVZhbHVlKGNv
bnN0IFZlY3RvcjxJREJLZXlEYXRhPiYpOwogICAgIHZvaWQgc2V0QmluYXJ5VmFsdWUoY29uc3Qg
VGhyZWFkU2FmZURhdGFCdWZmZXImKTsKICAgICB2b2lkIHNldFN0cmluZ1ZhbHVlKGNvbnN0IFN0
cmluZyYpOwotICAgIHZvaWQgc2V0RGF0ZVZhbHVlKGRvdWJsZSk7CisgICAgdm9pZCBzZXREYXRl
VmFsdWUoV2FsbFRpbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TnVtYmVyVmFsdWUo
ZG91YmxlKTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKQEAgLTEyOSw5ICsxMzAsMTEgQEAgcHVibGljOgogICAgICAgICBjYXNlIElu
ZGV4ZWREQjo6S2V5VHlwZTo6TWluOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
SW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6Ci0gICAgICAgIGNhc2UgSW5kZXhlZERCOjpLZXlU
eXBlOjpEYXRlOgogICAgICAgICAgICAgaGFzaENvZGVzLmFwcGVuZChTdHJpbmdIYXNoZXI6Omhh
c2hNZW1vcnk8c2l6ZW9mKGRvdWJsZSk+KCZzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpKSk7CiAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6
CisgICAgICAgICAgICBoYXNoQ29kZXMuYXBwZW5kKFN0cmluZ0hhc2hlcjo6aGFzaE1lbW9yeTxz
aXplb2YoV2FsbFRpbWUpPigmc3RkOjpnZXQ8V2FsbFRpbWU+KG1fdmFsdWUpKSk7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZzoKICAg
ICAgICAgICAgIGhhc2hDb2Rlcy5hcHBlbmQoU3RyaW5nSGFzaDo6aGFzaChzdGQ6OmdldDxTdHJp
bmc+KG1fdmFsdWUpKSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE1OCwxMCArMTYxLDEwIEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSk7CiAgICAg
fQogCi0gICAgZG91YmxlIGRhdGUoKSBjb25zdAorICAgIFdhbGxUaW1lIGRhdGUoKSBjb25zdAog
ICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6OkRhdGUp
OwotICAgICAgICByZXR1cm4gc3RkOjpnZXQ8ZG91YmxlPihtX3ZhbHVlKTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6Z2V0PFdhbGxUaW1lPihtX3ZhbHVlKTsKICAgICB9CiAKICAgICBkb3VibGUgbnVt
YmVyKCkgY29uc3QKQEAgLTE5Myw3ICsxOTYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc051
bGwgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0RlbGV0ZWRWYWx1ZSB7IGZhbHNlIH07CiAKLSAg
ICBzdGQ6OnZhcmlhbnQ8VmVjdG9yPElEQktleURhdGE+LCBTdHJpbmcsIGRvdWJsZSwgVGhyZWFk
U2FmZURhdGFCdWZmZXI+IG1fdmFsdWU7CisgICAgc3RkOjp2YXJpYW50PFZlY3RvcjxJREJLZXlE
YXRhPiwgU3RyaW5nLCBXYWxsVGltZSwgZG91YmxlLCBUaHJlYWRTYWZlRGF0YUJ1ZmZlcj4gbV92
YWx1ZTsKIH07CiAKIHN0cnVjdCBJREJLZXlEYXRhSGFzaCB7CkBAIC0yNDQsNiArMjQ3LDggQEAg
dm9pZCBJREJLZXlEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAgICAg
ZW5jb2RlciA8PCBzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAgZW5jb2RlciA8PCBzdGQ6
OmdldDxXYWxsVGltZT4obV92YWx1ZSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5kZXhl
ZERCOjpLZXlUeXBlOjpOdW1iZXI6CiAgICAgICAgIGVuY29kZXIgPDwgc3RkOjpnZXQ8ZG91Ymxl
PihtX3ZhbHVlKTsKICAgICAgICAgYnJlYWs7CkBAIC0yODQsNiArMjg5LDEwIEBAIHN0ZDo6b3B0
aW9uYWw8SURCS2V5RGF0YT4gSURCS2V5RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAga2V5RGF0YS5tX3ZhbHVlID0gV2Fs
bFRpbWUoKTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGQ6OmdldDxXYWxsVGltZT4o
a2V5RGF0YS5tX3ZhbHVlKSkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
ICAgICBicmVhazsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyOgogICAgICAg
ICBrZXlEYXRhLm1fdmFsdWUgPSAwLjA7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3Rk
OjpnZXQ8ZG91YmxlPihrZXlEYXRhLm1fdmFsdWUpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcApp
bmRleCAyYTJjMWZjMzI5NTgwNWQ1MmZkNTZhZjMwYjQ1NWFlMmNjY2M0ODc3Li44NzMwMWNmZTE1
MWVjNDVmN2I1YTdiNjNkZjhkOTZkZWQ5MDY2M2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VyaWFsaXphdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3Bw
CkBAIC0yNDMsNyArMjQzLDcgQEAgc3RhdGljIHZvaWQgZW5jb2RlS2V5KFZlY3Rvcjx1aW50OF90
PiYgZGF0YSwgY29uc3QgSURCS2V5RGF0YSYga2V5KQogICAgICAgICB3cml0ZURvdWJsZShkYXRh
LCBrZXkubnVtYmVyKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNJREJLZXlUeXBlOjpE
YXRlOgotICAgICAgICB3cml0ZURvdWJsZShkYXRhLCBrZXkuZGF0ZSgpKTsKKyAgICAgICAgd3Jp
dGVEb3VibGUoZGF0YSwga2V5LmRhdGUoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFNJREJLZXlUeXBlOjpTdHJpbmc6IHsKICAgICAgICAg
YXV0byBzdHJpbmcgPSBrZXkuc3RyaW5nKCk7CkBAIC0zMTMsMTEgKzMxMywxMSBAQCBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlS2V5KGNvbnN0IHVpbnQ4X3QqJiBkYXRhLCBj
b25zdCB1aW50OF90KiBlbgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgY2FzZSBT
SURCS2V5VHlwZTo6RGF0ZTogewotICAgICAgICBkb3VibGUgZDsKLSAgICAgICAgaWYgKCFyZWFk
RG91YmxlKGRhdGEsIGVuZCwgZCkpCisgICAgICAgIGRvdWJsZSBzZWNvbmRzOworICAgICAgICBp
ZiAoIXJlYWREb3VibGUoZGF0YSwgZW5kLCBzZWNvbmRzKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgICAgICByZXN1bHQuc2V0RGF0ZVZhbHVlKGQpOworICAgICAgICByZXN1bHQu
c2V0RGF0ZVZhbHVlKFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzZWNvbmRzKSk7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KICAgICBjYXNlIFNJREJLZXlUeXBlOjpTdHJpbmc6IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCmluZGV4IGZkMDk5ZjU0Mzc4YTE5OTVkM2YxNDc4ODk5
NzU4MGNjYzhlZjljNTUuLjlmNjEyYTYxZTRiOWI3NGMxMzUyYjE3YWNkYmI2N2RiNDZjOThmNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgPHd0Zi9CcmlnYW5kLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1
ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogI2lmIEVOQUJMRShX
RUJHTCkKICNpbmNsdWRlICJXZWJHTEFueS5oIgpAQCAtMjU5LDExICsyNjAsMTEgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IElETFR5cGVkQXJyYXkgOiBJRExCdWZmZXJTb3VyY2U8VD4g
eyB9OwogCiAvLyBOb24tV2ViSURMIGV4dGVuc2lvbnMKIAotc3RydWN0IElETERhdGUgOiBJRExU
eXBlPGRvdWJsZT4geyAKLSAgICB1c2luZyBOdWxsYWJsZVR5cGUgPSBkb3VibGU7Ci0gICAgc3Rh
dGljIGRvdWJsZSBudWxsVmFsdWUoKSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJs
ZT46OnF1aWV0X05hTigpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNOdWxsVmFsdWUoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBzdGQ6OmlzbmFuKHZhbHVlKTsgfQotICAgIHN0YXRpYyBkb3VibGUgZXh0
cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0KK3N0
cnVjdCBJRExEYXRlIDogSURMVHlwZTxXYWxsVGltZT4geyAKKyAgICB1c2luZyBOdWxsYWJsZVR5
cGUgPSBXYWxsVGltZTsKKyAgICBzdGF0aWMgV2FsbFRpbWUgbnVsbFZhbHVlKCkgeyByZXR1cm4g
V2FsbFRpbWU6Om5hbigpOyB9CisgICAgc3RhdGljIGJvb2wgaXNOdWxsVmFsdWUoV2FsbFRpbWUg
dmFsdWUpIHsgcmV0dXJuIHN0ZDo6aXNuYW4odmFsdWUpOyB9CisgICAgc3RhdGljIFdhbGxUaW1l
IGV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShXYWxsVGltZSB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7
IH0KIH07CiAKIHN0cnVjdCBJRExKU09OIDogSURMVHlwZTxTdHJpbmc+IHsgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCmluZGV4IDll
NTY3MjFkM2VkYWNkOGI5MGJiYjcwZDQzMTNlMWY3MDFmZTkxOTMuLmM3MjgxYThjYTEwNjAwYjJi
YjdjYTgzM2ZjNmI1NThlMTQyYmNiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyBi
b29sIGdldChKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSBvYmpl
Y3QsIGNvbnN0IFN0cmluCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAg
ICAgICBpZiAoa2V5UGF0aEVsZW1lbnQgPT0gImxhc3RNb2RpZmllZCIpIHsKLSAgICAgICAgICAg
IHJlc3VsdCA9IGpzTnVtYmVyKGpzQ2FzdDxKU0ZpbGUqPihvYmopLT53cmFwcGVkKCkubGFzdE1v
ZGlmaWVkKCkpOworICAgICAgICAgICAgcmVzdWx0ID0ganNOdW1iZXIoanNDYXN0PEpTRmlsZSo+
KG9iaiktPndyYXBwZWQoKS5sYXN0TW9kaWZpZWQoKS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxp
c2Vjb25kcygpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAg
IGlmIChrZXlQYXRoRWxlbWVudCA9PSAibGFzdE1vZGlmaWVkRGF0ZSIpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHAKaW5kZXggMTM2N2VkMjU0
NzIxMWEzN2JmNzUzODRkODM5YThmZGVhMzI1OWM3Ni4uZDgwNzBjOGMxNTVjZjJmNzJhZWY1NGQ4
MjY5ZjQ2N2M4YzUxNzM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Db252ZXJ0RGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0RGF0ZS5jcHAKQEAgLTMwLDIxICszMCwyNCBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotSlNWYWx1ZSBqc0RhdGUoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSkKK0pTVmFsdWUganNEYXRlKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBXYWxsVGltZSB2YWx1ZSkKIHsKLSAgICBy
ZXR1cm4gRGF0ZUluc3RhbmNlOjpjcmVhdGUobGV4aWNhbEdsb2JhbE9iamVjdC52bSgpLCBsZXhp
Y2FsR2xvYmFsT2JqZWN0LmRhdGVTdHJ1Y3R1cmUoKSwgdmFsdWUpOworICAgIHJldHVybiBEYXRl
SW5zdGFuY2U6OmNyZWF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCksIGxleGljYWxHbG9iYWxP
YmplY3QuZGF0ZVN0cnVjdHVyZSgpLCB2YWx1ZS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vj
b25kcygpKTsKIH0KIAotZG91YmxlIHZhbHVlVG9EYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitXYWxsVGltZSB2YWx1ZVRvRGF0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQog
eworICAgIGRvdWJsZSBtaWxsaXNlY29uZHMgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46
OnF1aWV0X05hTigpOworCiAgICAgYXV0byYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCk7
CiAgICAgaWYgKHZhbHVlLmluaGVyaXRzPERhdGVJbnN0YW5jZT4odm0pKQotICAgICAgICByZXR1
cm4ganNDYXN0PERhdGVJbnN0YW5jZSo+KHZhbHVlKS0+aW50ZXJuYWxOdW1iZXIoKTsKLSAgICBp
ZiAodmFsdWUuaXNOdW1iZXIoKSkKLSAgICAgICAgcmV0dXJuIHZhbHVlLmFzTnVtYmVyKCk7Ci0g
ICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpCi0gICAgICAgIHJldHVybiB2bS5kYXRlQ2FjaGUucGFy
c2VEYXRlKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB2bSwgdmFsdWUuZ2V0U3RyaW5nKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSk7Ci0gICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
cXVpZXRfTmFOKCk7CisgICAgICAgIG1pbGxpc2Vjb25kcyA9IGpzQ2FzdDxEYXRlSW5zdGFuY2Uq
Pih2YWx1ZSktPmludGVybmFsTnVtYmVyKCk7CisgICAgZWxzZSBpZiAodmFsdWUuaXNOdW1iZXIo
KSkKKyAgICAgICAgbWlsbGlzZWNvbmRzID0gdmFsdWUuYXNOdW1iZXIoKTsKKyAgICBlbHNlIGlm
ICh2YWx1ZS5pc1N0cmluZygpKQorICAgICAgICBtaWxsaXNlY29uZHMgPSB2bS5kYXRlQ2FjaGUu
cGFyc2VEYXRlKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB2bSwgdmFsdWUuZ2V0U3RyaW5nKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSk7CisKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobWlsbGlzZWNvbmRzKS52YWx1ZSgpKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01Db252ZXJ0RGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0RGF0ZS5oCmluZGV4IDU2MjQyOTI5ZjcyZGNjNWU0ZDQ0MDQyODExMTJlYmUwN2Fm
OGI2NzQuLmQxMjM2MWZkNmZmMWUxZTYxMGIzZjEyMThlODA2OGY4NjhjMjdjZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmgKQEAgLTI4LDE0ICsy
OCwxNSBAQAogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0QmFz
ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTR2xvYmFsT2JqZWN0Lmg+CisjaW5jbHVk
ZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNDOjpKU1ZhbHVl
IGpzRGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgZG91YmxlIHZhbHVlKTsKLWRvdWJsZSB2YWx1
ZVRvRGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlKTsgLy8gTmFOIGlmIHRo
ZSB2YWx1ZSBjYW4ndCBiZSBjb252ZXJ0ZWQgdG8gYSBkYXRlLgorSlNDOjpKU1ZhbHVlIGpzRGF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgV2FsbFRpbWUgdmFsdWUpOworV2FsbFRpbWUgdmFsdWVU
b0RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7IC8vIE5hTiBpZiB0aGUg
dmFsdWUgY2FuJ3QgYmUgY29udmVydGVkIHRvIGEgZGF0ZS4KIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
Q29udmVydGVyPElETERhdGU+IDogRGVmYXVsdENvbnZlcnRlcjxJRExEYXRlPiB7Ci0gICAgc3Rh
dGljIGRvdWJsZSBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKKyAgICBzdGF0aWMgV2FsbFRpbWUgY29udmVydChKU0M6
OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgdmFsdWUp
CiAgICAgewogICAgICAgICByZXR1cm4gdmFsdWVUb0RhdGUobGV4aWNhbEdsb2JhbE9iamVjdCwg
dmFsdWUpOwogICAgIH0KQEAgLTQ2LDcgKzQ3LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgSlNDb252
ZXJ0ZXI8SURMRGF0ZT4gewogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0dsb2JhbE9i
amVjdCA9IGZhbHNlOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHRha2luZyBhIEpT
RE9NR2xvYmFsT2JqZWN0IGFuZCBwYXNzaW5nIGl0IHRvIGpzRGF0ZS4KLSAgICBzdGF0aWMgSlND
OjpKU1ZhbHVlIGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgZG91YmxlIHZhbHVlKQorICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgY29udmVydChKU0M6OkpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBXYWxsVGltZSB2YWx1ZSkKICAgICB7
CiAgICAgICAgIHJldHVybiBqc0RhdGUobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0
VmFsdWUuY3BwCmluZGV4IDBiYWZhNzk4MzA5YzE2NTBjNjQwMmJkMDZlZWE3MzAxMTk2ZTNlMzMu
LjBhYjkxMTVjNDU1YzIyNjE0YzM1MTU0NjAzM2VlMDdmYmM5MzJiOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAt
MTYwNCw3ICsxNjA0LDEwIEBAIHByaXZhdGU6CiAgICAgICAgIHdyaXRlKGZpbGUudXJsKCkuc3Ry
aW5nKCkpOwogICAgICAgICB3cml0ZShmaWxlLnR5cGUoKSk7CiAgICAgICAgIHdyaXRlKGZpbGUu
bmFtZSgpKTsKLSAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8ZG91YmxlPihmaWxlLmxhc3RNb2Rp
ZmllZE92ZXJyaWRlKCkudmFsdWVfb3IoLTEpKSk7CisgICAgICAgIGlmIChhdXRvIGxhc3RNb2Rp
ZmllZE92ZXJyaWRlID0gZmlsZS5sYXN0TW9kaWZpZWRPdmVycmlkZSgpKQorICAgICAgICAgICAg
d3JpdGUobGFzdE1vZGlmaWVkT3ZlcnJpZGUtPnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNv
bmRzKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB3cml0ZSgtMSk7CiAgICAgfQogCiAg
ICAgdm9pZCB3cml0ZShQcmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNlKQpAQCAtMjU0OSwx
MyArMjU1MiwxMyBAQCBwcml2YXRlOgogICAgICAgICBDYWNoZWRTdHJpbmdSZWYgbmFtZTsKICAg
ICAgICAgaWYgKCFyZWFkU3RyaW5nRGF0YShuYW1lKSkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxpbnQ2NF90PiBvcHRpb25hbExhc3RNb2RpZmllZDsK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gb3B0aW9uYWxMYXN0TW9kaWZpZWQ7CiAg
ICAgICAgIGlmIChtX3ZlcnNpb24gPiA2KSB7CiAgICAgICAgICAgICBkb3VibGUgbGFzdE1vZGlm
aWVkOwogICAgICAgICAgICAgaWYgKCFyZWFkKGxhc3RNb2RpZmllZCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKGxhc3RNb2RpZmllZCA+PSAwKQotICAg
ICAgICAgICAgICAgIG9wdGlvbmFsTGFzdE1vZGlmaWVkID0gbGFzdE1vZGlmaWVkOworICAgICAg
ICAgICAgICAgIG9wdGlvbmFsTGFzdE1vZGlmaWVkID0gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobGFzdE1vZGlmaWVkKS52YWx1ZSgpKTsKICAgICAg
ICAgfQogCiAgICAgICAgIC8vIElmIHRoZSBibG9iIFVSTCBmb3IgdGhpcyBmaWxlIGhhcyBhbiBh
c3NvY2lhdGVkIGJsb2IgZmlsZSBwYXRoLCBwcmVmZXIgdGhhdCBvbmUgb3ZlciB0aGUgImJ1aWx0
LWluIiBwYXRoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKaW5kZXggOTc0NGIwMTU3YWUxMWMxMTBj
ZDhjMjg5ZTUyN2NiZmEwMmMxMGU5MS4uYjNmMjU4MmU2MjA5YmY3NjRjOTM4YmViYTYxYjAyMzli
Mzg3Y2Y4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIEZpbGU6
OkZpbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVVJMJiYgdXJsLCBTdHJpbmcm
JiB0eXBlLCBTdHJpbmcmJiBwCiB7CiB9CiAKLUZpbGU6OkZpbGUoRGVzZXJpYWxpemF0aW9uQ29u
dHJ1Y3RvciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBw
YXRoLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4mIGxhc3RNb2RpZmllZCkKK0ZpbGU6OkZp
bGUoRGVzZXJpYWxpemF0aW9uQ29udHJ1Y3RvciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0
eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+JiBs
YXN0TW9kaWZpZWQpCiAgICAgOiBCbG9iKGRlc2VyaWFsaXphdGlvbkNvbnRydWN0b3IsIGNvbnRl
eHQsIHVybCwgdHlwZSwgeyB9LCBwYXRoKQogICAgICwgbV9wYXRoKHBhdGgpCiAgICAgLCBtX25h
bWUobmFtZSkKQEAgLTc4LDcgKzc4LDcgQEAgRmlsZTo6RmlsZShEZXNlcmlhbGl6YXRpb25Db250
cnVjdG9yLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHIKIEZpbGU6
OkZpbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVmVjdG9yPEJsb2JQYXJ0VmFy
aWFudD4mJiBibG9iUGFydFZhcmlhbnRzLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBQ
cm9wZXJ0eUJhZyYgcHJvcGVydHlCYWcpCiAgICAgOiBCbG9iKGNvbnRleHQsIFdURk1vdmUoYmxv
YlBhcnRWYXJpYW50cyksIHByb3BlcnR5QmFnKQogICAgICwgbV9uYW1lKGZpbGVuYW1lKQotICAg
ICwgbV9sYXN0TW9kaWZpZWREYXRlT3ZlcnJpZGUocHJvcGVydHlCYWcubGFzdE1vZGlmaWVkLnZh
bHVlX29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygp
KSkKKyAgICAsIG1fbGFzdE1vZGlmaWVkRGF0ZU92ZXJyaWRlKHByb3BlcnR5QmFnLmxhc3RNb2Rp
ZmllZCA/IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRz
KCpwcm9wZXJ0eUJhZy5sYXN0TW9kaWZpZWQpLnZhbHVlKCkpIDogV2FsbFRpbWU6Om5vdygpKQog
ewogfQogCkBAIC05OSwyMyArOTksMjMgQEAgRmlsZTo6RmlsZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBjb25zdCBGaWxlJiBmaWxlLCBjb25zdCBTdHJpbmcmIG5hbWUKIHsKIH0K
IAotaW50NjRfdCBGaWxlOjpsYXN0TW9kaWZpZWQoKSBjb25zdAorV2FsbFRpbWUgRmlsZTo6bGFz
dE1vZGlmaWVkKCkgY29uc3QKIHsKICAgICBpZiAobV9sYXN0TW9kaWZpZWREYXRlT3ZlcnJpZGUp
CiAgICAgICAgIHJldHVybiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZS52YWx1ZSgpOwogCi0g
ICAgaW50NjRfdCByZXN1bHQ7Ci0KICAgICAvLyBGSVhNRTogVGhpcyBkb2VzIHN5bmMtaS9vIG9u
IHRoZSBtYWluIHRocmVhZCBhbmQgYWxzbyByZWNhbGN1bGF0ZXMgZXZlcnkgdGltZSB0aGUgbWV0
aG9kIGlzIGNhbGxlZC4KICAgICAvLyBUaGUgaS9vIHNob3VsZCBiZSBwZXJmb3JtZWQgb24gYSBi
YWNrZ3JvdW5kIHRocmVhZCwKICAgICAvLyBhbmQgdGhlIHJlc3VsdCBzaG91bGQgYmUgY2FjaGVk
IGFsb25nIHdpdGggYW4gYXN5bmNocm9ub3VzIG1vbml0b3IgZm9yIGNoYW5nZXMgdG8gdGhlIGZp
bGUuCi0gICAgYXV0byBtb2RpZmljYXRpb25UaW1lID0gRmlsZVN5c3RlbTo6ZmlsZU1vZGlmaWNh
dGlvblRpbWUobV9wYXRoKTsKLSAgICBpZiAobW9kaWZpY2F0aW9uVGltZSkKLSAgICAgICAgcmVz
dWx0ID0gbW9kaWZpY2F0aW9uVGltZS0+c2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHNB
czxpbnQ2NF90PigpOwotICAgIGVsc2UKLSAgICAgICAgcmVzdWx0ID0gV2FsbFRpbWU6Om5vdygp
LnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzQXM8aW50NjRfdD4oKTsKKyAgICBpZiAo
YXV0byBtb2RpZmljYXRpb25UaW1lID0gRmlsZVN5c3RlbTo6ZmlsZU1vZGlmaWNhdGlvblRpbWUo
bV9wYXRoKSkKKyAgICAgICAgcmV0dXJuICptb2RpZmljYXRpb25UaW1lOwogCi0gICAgcmV0dXJu
IHRpbWVDbGlwKHJlc3VsdCk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpub3coKTsKK30KKworaW50
NjRfdCBGaWxlOjpsYXN0TW9kaWZpZWRGb3JCaW5kaW5ncygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHRpbWVDbGlwKGxhc3RNb2RpZmllZCgpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRz
QXM8aW50NjRfdD4oKSk7CiB9CiAKIHZvaWQgRmlsZTo6Y29tcHV0ZU5hbWVBbmRDb250ZW50VHlw
ZShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgbmFtZU92ZXJyaWRlLCBTdHJpbmcm
IGVmZmVjdGl2ZU5hbWUsIFN0cmluZyYgZWZmZWN0aXZlQ29udGVudFR5cGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZS5oCmluZGV4IGM4ODAzMmI1ZWE3NzVhOGJmMjlkZGRiM2Q3M2ExY2RhNDA0NDE3MmEuLjRk
YTczNGZiNmQ4MGFlNGUxMzYxYmJiYWU3ZjhlZmE2OTQyOTQwZWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmls
ZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1
ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CisjaW5jbHVkZSA8d3Rm
L1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTUxLDcgKzUyLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gZmls
ZTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPEZpbGU+IGRlc2VyaWFsaXplKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgVVJMJiBzcmNV
UkwsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6Om9w
dGlvbmFsPGludDY0X3Q+JiBsYXN0TW9kaWZpZWQgPSBzdGQ6Om51bGxvcHQpCisgICAgc3RhdGlj
IFJlZjxGaWxlPiBkZXNlcmlhbGl6ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBTdHJpbmcmIHR5cGUs
IGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4mIGxhc3RN
b2RpZmllZCA9IHN0ZDo6bnVsbG9wdCkKICAgICB7CiAgICAgICAgIGF1dG8gZmlsZSA9IGFkb3B0
UmVmKCpuZXcgRmlsZShkZXNlcmlhbGl6YXRpb25Db250cnVjdG9yLCBjb250ZXh0LCBwYXRoLCBz
cmNVUkwsIHR5cGUsIG5hbWUsIGxhc3RNb2RpZmllZCkpOwogICAgICAgICBmaWxlLT5zdXNwZW5k
SWZOZWVkZWQoKTsKQEAgLTgwLDggKzgxLDEwIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcm
IHJlbGF0aXZlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVsYXRpdmVQYXRoOyB9CiAgICAgdm9p
ZCBzZXRSZWxhdGl2ZVBhdGgoY29uc3QgU3RyaW5nJiByZWxhdGl2ZVBhdGgpIHsgbV9yZWxhdGl2
ZVBhdGggPSByZWxhdGl2ZVBhdGg7IH0KICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7
IHJldHVybiBtX25hbWU7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQ2NF90IGxhc3RNb2RpZmll
ZCgpIGNvbnN0OyAvLyBOdW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlIEVwb2NoLgotICAgIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4mIGxhc3RNb2RpZmllZE92ZXJyaWRlKCkgY29uc3Qg
eyByZXR1cm4gbV9sYXN0TW9kaWZpZWREYXRlT3ZlcnJpZGU7IH0gLy8gTnVtYmVyIG9mIG1pbGxp
c2Vjb25kcyBzaW5jZSBFcG9jaC4KKyAgICBXYWxsVGltZSBsYXN0TW9kaWZpZWQoKSBjb25zdDsK
KyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiYgbGFzdE1vZGlmaWVkT3ZlcnJpZGUo
KSBjb25zdCB7IHJldHVybiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZTsgfQorCisgICAgV0VC
Q09SRV9FWFBPUlQgaW50NjRfdCBsYXN0TW9kaWZpZWRGb3JCaW5kaW5ncygpIGNvbnN0OyAvLyBO
dW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlIEVwb2NoLgogCiAgICAgc3RhdGljIFN0cmluZyBj
b250ZW50VHlwZUZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKTsKIApAQCAtOTgsNyArMTAxLDcg
QEAgcHJpdmF0ZToKICAgICBGaWxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBCbG9i
JiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICBGaWxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBGaWxlJiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKIAotICAgIEZpbGUoRGVzZXJpYWxp
emF0aW9uQ29udHJ1Y3RvciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYg
cGF0aCwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBzdGQ6Om9wdGlvbmFsPGludDY0X3Q+JiBsYXN0TW9kaWZpZWQpOworICAg
IEZpbGUoRGVzZXJpYWxpemF0aW9uQ29udHJ1Y3RvciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiYgbGFz
dE1vZGlmaWVkKTsKIAogICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVOYW1lQW5kQ29udGVudFR5cGUo
Y29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIG5hbWVPdmVycmlkZSwgU3RyaW5nJiBl
ZmZlY3RpdmVOYW1lLCBTdHJpbmcmIGVmZmVjdGl2ZUNvbnRlbnRUeXBlKTsKICNpZiBFTkFCTEUo
RklMRV9SRVBMQUNFTUVOVCkKQEAgLTExMiw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIFN0cmlu
ZyBtX3JlbGF0aXZlUGF0aDsKICAgICBTdHJpbmcgbV9uYW1lOwogCi0gICAgc3RkOjpvcHRpb25h
bDxpbnQ2NF90PiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZTsKKyAgICBzdGQ6Om9wdGlvbmFs
PFdhbGxUaW1lPiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZTsKICAgICBtdXRhYmxlIHN0ZDo6
b3B0aW9uYWw8Ym9vbD4gbV9pc0RpcmVjdG9yeTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2ZpbGVhcGkvRmlsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaWRs
CmluZGV4IGY1ZWI1Mzg5Y2JmMjJkMmI1NmMwZmI3OGZjYzZjOTRmNWY3YmMzOWMuLjZhMTJlYTA3
MzFhODg1YmZjNTQ3M2ZiZmU2MjUyMmMxZmM0MjAzMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvRmlsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmlk
bApAQCAtMzQsNyArMzQsNyBAQCB0eXBlZGVmIChCdWZmZXJTb3VyY2Ugb3IgQmxvYiBvciBVU1ZT
dHJpbmcpIEJsb2JQYXJ0OwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBj
b25zdHJ1Y3RvcihzZXF1ZW5jZTxCbG9iUGFydD4gZmlsZUJpdHMsIFVTVlN0cmluZyBmaWxlTmFt
ZSwgb3B0aW9uYWwgRmlsZVByb3BlcnR5QmFnIG9wdGlvbnMpOwogCiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBuYW1lOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxvbmcg
bGFzdE1vZGlmaWVkOworICAgIFtJbXBsZW1lbnRlZEFzPWxhc3RNb2RpZmllZEZvckJpbmRpbmdz
XSByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBsb25nIGxhc3RNb2RpZmllZDsKIAogICAgIC8vIGh0
dHBzOi8vd2ljZy5naXRodWIuaW8vZW50cmllcy1hcGkvI2ZpbGUtaW50ZXJmYWNlCiAgICAgW0Vu
YWJsZWRBdFJ1bnRpbWU9RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCwgSW1wbGVtZW50ZWRBcz1yZWxh
dGl2ZVBhdGhdIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgd2Via2l0UmVsYXRpdmVQYXRo
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3Bw
CmluZGV4IDU2MGE0Y2Y5NmI2OGEyMWI3ODMyODY4NDFjMDU0MDJiYzlhZDYzNGUuLjZjMzgxYWE3
MDFjOTQwNzI2NjFjZTBlMTUyZjI1OTFiNTQ3MTQ5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTEyNywxNSArMTI3LDE1IEBA
IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6fkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSgpCiAg
ICAgY2xvc2VEYXRlVGltZUNob29zZXIoKTsKIH0KIAotZG91YmxlIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAorV2FsbFRpbWUgQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHZhbHVlQXNEb3VibGUo
KTsKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29uZHM6OmZyb21NaWxs
aXNlY29uZHModmFsdWVBc0RvdWJsZSgpKS52YWx1ZSgpKTsKIH0KIAotRXhjZXB0aW9uT3I8dm9p
ZD4gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUgdmFsdWUp
IGNvbnN0CitFeGNlcHRpb25Pcjx2b2lkPiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZh
bHVlQXNEYXRlKFdhbGxUaW1lIHZhbHVlKSBjb25zdAogewogICAgIEFTU0VSVChlbGVtZW50KCkp
OwotICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUoc2VyaWFsaXplV2l0aE1pbGxpc2Vjb25kcyh2YWx1
ZSkpOworICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUoc2VyaWFsaXplV2l0aE1pbGxpc2Vjb25kcyh2
YWx1ZS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKSk7CiAgICAgcmV0dXJuIHsg
fTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
LmgKaW5kZXggYzcyOWM5MjJhYjM4YmE4ZDk0ZDQ3NDQ1NzMzYWRhMzBjNTk1ZTI3Ni4uNjg5MTA1
YjM2NTFjNjNiYjlmZmRhYTFlOWNkMDg0MWMxZDA2NDNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC0xMDIsOCArMTAyLDggQEAgcHJp
dmF0ZToKICAgICBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5n
IHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzZXRW
YWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhh
dmlvcikgZmluYWw7Ci0gICAgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoZG91YmxlKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBXYWxsVGltZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKFdhbGxUaW1lKSBjb25zdCBvdmVycmlkZTsKICAg
ICBkb3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldFZhbHVlQXNEZWNpbWFsKGNvbnN0IERlY2ltYWwmLCBUZXh0RmllbGRFdmVudEJlaGF2
aW9yKSBjb25zdCBmaW5hbDsKICAgICBEZWNpbWFsIGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNv
bnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0
VHlwZS5jcHAKaW5kZXggNTk4YThiYmRmNzRmNTdiMGY3ZmQxNWU5NzAwZGJhMzg2YmMyMTRlYS4u
ZGIxNmRhN2U0OTliMWU5YmI3ODM2OTcxMzE2YmVlOThhNmJkZTNmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCkBAIC02MiwxMyArNjIsMTMg
QEAgRGF0ZUNvbXBvbmVudHNUeXBlIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmRhdGVUeXBlKCkg
Y29uc3QKICAgICByZXR1cm4gRGF0ZUNvbXBvbmVudHNUeXBlOjpEYXRlVGltZUxvY2FsOwogfQog
Ci1kb3VibGUgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAorV2Fs
bFRpbWUgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAogewogICAg
IC8vIHZhbHVlQXNEYXRlIGRvZXNuJ3Qgd29yayBmb3IgdGhlIGRhdGV0aW1lLWxvY2FsIHR5cGUg
YWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZC4KLSAgICByZXR1cm4gRGF0ZUNvbXBvbmVudHM6Omlu
dmFsaWRNaWxsaXNlY29uZHMoKTsKKyAgICByZXR1cm4gV2FsbFRpbWU6Om5hbigpOwogfQogCi1F
eGNlcHRpb25Pcjx2b2lkPiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShk
b3VibGUgdmFsdWUpIGNvbnN0CitFeGNlcHRpb25Pcjx2b2lkPiBEYXRlVGltZUxvY2FsSW5wdXRU
eXBlOjpzZXRWYWx1ZUFzRGF0ZShXYWxsVGltZSB2YWx1ZSkgY29uc3QKIHsKICAgICAvLyB2YWx1
ZUFzRGF0ZSBkb2Vzbid0IHdvcmsgZm9yIHRoZSBkYXRldGltZS1sb2NhbCB0eXBlIGFjY29yZGlu
ZyB0byB0aGUgc3RhbmRhcmQuCiAgICAgcmV0dXJuIElucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUo
dmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaApp
bmRleCAxNjZmNTAwMDQxNmVjNDY3YTVmZTk5MzQ3YjdmYzlhMjM5MjQxMjg3Li41NjBmYjY0ZDAw
YTJiYThkMjc0MjFiZmIxMDFiNWMwYTcyNTIxZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaApAQCAtNDcsOCArNDcsOCBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IGZpbmFs
OwogICAgIERhdGVDb21wb25lbnRzVHlwZSBkYXRlVHlwZSgpIGNvbnN0IGZpbmFsOwotICAgIGRv
dWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IGZpbmFsOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNl
dFZhbHVlQXNEYXRlKGRvdWJsZSkgY29uc3QgZmluYWw7CisgICAgV2FsbFRpbWUgdmFsdWVBc0Rh
dGUoKSBjb25zdCBmaW5hbDsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0ZShX
YWxsVGltZSkgY29uc3QgZmluYWw7CiAgICAgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlT
dGVwSGFuZGxpbmcpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8RGF0ZUNvbXBvbmVu
dHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhTdHJpbmdWaWV3KSBjb25zdCBmaW5hbDsKICAgICBz
dGQ6Om9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVu
dHMoZG91YmxlKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCmluZGV4IDBiYmFmMjI0ZjJmNTFkMzY1ZDQzNWU0YTM0ZmU0YTYzYTY2NDU3YzAuLjlh
NzVhYWRkNzgyMjk5ODFiMjQ0OWY0NDJlMDJmMzgyYzdhZWU1MjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTExMSwxMiArMTExMSwxMiBAQCB2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlSW50ZXJuYWwoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRW
YWx1ZSwgVGV4dEZpZWxkRQogICAgIHVwZGF0ZVZhbGlkaXR5KCk7CiB9CiAKLWRvdWJsZSBIVE1M
SW5wdXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZSgpIGNvbnN0CitXYWxsVGltZSBIVE1MSW5wdXRFbGVt
ZW50Ojp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT52YWx1
ZUFzRGF0ZSgpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRW
YWx1ZUFzRGF0ZShkb3VibGUgdmFsdWUpCitFeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVt
ZW50OjpzZXRWYWx1ZUFzRGF0ZShXYWxsVGltZSB2YWx1ZSkKIHsKICAgICByZXR1cm4gbV9pbnB1
dFR5cGUtPnNldFZhbHVlQXNEYXRlKHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmgKaW5kZXggMTk5ODQ0Y2ZhN2M1NzM1Y2I0ZDcyMzBlYjVkM2RiOTBmYTU5M2Y1
Yi4uNzUwNmMyODY0NTQ3YWY4NWRkODkyZWJlMDEzMDcwMWIxYjZmODUwNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTE4NCw4ICsxODQsOCBAQCBwdWJsaWM6CiAg
ICAgLy8gVGhlIHZhbHVlIHdoaWNoIGlzIGRyYXduIGJ5IGEgcmVuZGVyZXIuCiAgICAgU3RyaW5n
IHZpc2libGVWYWx1ZSgpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIHZhbHVl
QXNEYXRlKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0
VmFsdWVBc0RhdGUoZG91YmxlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBXYWxsVGltZSB2YWx1ZUFz
RGF0ZSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZh
bHVlQXNEYXRlKFdhbGxUaW1lKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJsZSB2YWx1ZUFz
TnVtYmVyKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0
VmFsdWVBc051bWJlcihkb3VibGUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5v
RXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNTE3
MWI5Y2RjNzg5MzE3MWUyMWU1ZjRiZjU1MDE3ZWY5NDRhYzc5NS4uZWM4MzUxYzA5Nzc0OGIxNDlh
OTQ0MzliYWI2OTU3OGVlOTAwMWEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCkBAIC0xMTExLDExICsxMTExLDEyIEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50
OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAogICAgIHJldHVybiBj
YW5QbGF5OwogfQogCi1kb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6Z2V0U3RhcnREYXRlKCkgY29u
c3QKK1dhbGxUaW1lIEhUTUxNZWRpYUVsZW1lbnQ6OmdldFN0YXJ0RGF0ZSgpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX3BsYXllcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91
YmxlPjo6cXVpZXRfTmFOKCk7Ci0gICAgcmV0dXJuIG1fcGxheWVyLT5nZXRTdGFydERhdGUoKS50
b0RvdWJsZSgpOworICAgICAgICByZXR1cm4gV2FsbFRpbWU6Om5hbigpOworCisgICAgcmV0dXJu
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhtX3BsYXllci0+Z2V0U3RhcnREYXRlKCkudG9Eb3Vi
bGUoKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDY5NTY2OTQ5NjMxMGVmOTEwOGI5NTZmZGE0ODIx
NDMwMTQ5NzBlY2IuLjZiNDA0YWE4NzM1Mjc3N2I0NzE4MzVmMTIwZmYxNTdjZWVkODRhNjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC00Niw2ICs0Niw3IEBACiAj
aW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgog
I2luY2x1ZGUgPHd0Zi9PYnNlcnZlci5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZP
Uk0oTUFDKQpAQCAtMjQyLDcgKzI0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnJlbnRU
aW1lV2l0aFRvbGVyYW5jZShkb3VibGUsIGRvdWJsZSB0b2xlcmFuY2VCZWZvcmUsIGRvdWJsZSB0
b2xlcmFuY2VBZnRlcik7CiAgICAgZG91YmxlIGN1cnJlbnRUaW1lRm9yQmluZGluZ3MoKSBjb25z
dCB7IHJldHVybiBjdXJyZW50VGltZSgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0Q3VycmVudFRpbWVGb3JCaW5kaW5ncyhkb3VibGUpOwotICAgIFdFQkNPUkVf
RVhQT1JUIGRvdWJsZSBnZXRTdGFydERhdGUoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBX
YWxsVGltZSBnZXRTdGFydERhdGUoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUg
ZHVyYXRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHBhdXNl
ZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0UGF1c2VkKGJvb2wpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuY3BwCmluZGV4IGViMGU4NDFhZDlmYzAwYTYyYTJkOTQ2MzBjZmI3MTEwMGY0
ZTA2MjguLmNmZWM2Nzk3NDE1NjZjZTYwZmRjMzQyOWUyMmQ0Mjc2Mzg4Mzc1NTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTIwNCwxMiArMjA0LDEyIEBAIGJvb2wgSW5wdXRUeXBl
OjphcHBlbmRGb3JtRGF0YShET01Gb3JtRGF0YSYgZm9ybURhdGEpIGNvbnN0CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWRvdWJsZSBJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKK1dhbGxU
aW1lIElucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAogewotICAgIHJldHVybiBEYXRlQ29t
cG9uZW50czo6aW52YWxpZE1pbGxpc2Vjb25kcygpOworICAgIHJldHVybiBXYWxsVGltZTo6bmFu
KCk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IElucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUoZG91
YmxlKSBjb25zdAorRXhjZXB0aW9uT3I8dm9pZD4gSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShX
YWxsVGltZSkgY29uc3QKIHsKICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGRhMWRlYmNiNmI5ZmMwNTJmZDYz
YjU0Yjk2MjBjMjBhNzA0MzMyNjguLmUwZWFhODExZGRiNDE1MTdiMjg3M2FiNjZhMzc2MjJmYjY2
ODdlZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMjIwLDggKzIyMCw4IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJik7IC8vIENo
ZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRoZSB2YWx1ZSBhdHRyaWJ1
dGUuCiAgICAgdmlydHVhbCBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpIGNvbnN0OyAvLyBDaGVja2Vk
IGxhc3QsIGlmIGJvdGggaW50ZXJuYWwgc3RvcmFnZSBhbmQgdmFsdWUgYXR0cmlidXRlIGFyZSBt
aXNzaW5nLgogICAgIHZpcnR1YWwgU3RyaW5nIGRlZmF1bHRWYWx1ZSgpIGNvbnN0OyAvLyBDaGVj
a2VkIGFmdGVyIGV2ZW4gZmFsbGJhY2tWYWx1ZSwgb25seSB3aGVuIHRoZSB2YWx1ZVdpdGhEZWZh
dWx0IGZ1bmN0aW9uIGlzIGNhbGxlZC4KLSAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRGF0ZSgp
IGNvbnN0OwotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoZG91
YmxlKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdhbGxUaW1lIHZhbHVlQXNEYXRlKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0ZShXYWxsVGltZSkgY29u
c3Q7CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0OwogICAgIHZpcnR1
YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RvdWJsZShkb3VibGUsIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IpIGNvbnN0OwogICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFs
dWVBc0RlY2ltYWwoY29uc3QgRGVjaW1hbCYsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCA4OTE4ZWUxYzljNDBk
YjQwNTQ5Mjc0ZTFiZGJkMzU2NjNkNDQ0ZDI3Li4xOTgzYzQwOTk4ZjA2NTdiMTdkMWQ4MGRlYjI4
MGJkNjJlNzQ1ODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcApAQCAt
NjQsMTUgKzY0LDE1IEBAIERhdGVDb21wb25lbnRzVHlwZSBNb250aElucHV0VHlwZTo6ZGF0ZVR5
cGUoKSBjb25zdAogICAgIHJldHVybiBEYXRlQ29tcG9uZW50c1R5cGU6Ok1vbnRoOwogfQogCi1k
b3VibGUgTW9udGhJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKK1dhbGxUaW1lIE1vbnRo
SW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7
CiAgICAgYXV0byBkYXRlID0gcGFyc2VUb0RhdGVDb21wb25lbnRzKGVsZW1lbnQoKS0+dmFsdWUo
KSk7CiAgICAgaWYgKCFkYXRlKQotICAgICAgICByZXR1cm4gRGF0ZUNvbXBvbmVudHM6OmludmFs
aWRNaWxsaXNlY29uZHMoKTsKKyAgICAgICAgcmV0dXJuIFdhbGxUaW1lOjpuYW4oKTsKICAgICBk
b3VibGUgbXNlYyA9IGRhdGUtPm1pbGxpc2Vjb25kc1NpbmNlRXBvY2goKTsKICAgICBBU1NFUlQo
c3RkOjppc2Zpbml0ZShtc2VjKSk7Ci0gICAgcmV0dXJuIG1zZWM7CisgICAgcmV0dXJuIFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKG1zZWMpLnZhbHVl
KCkpOwogfQogCiBTdHJpbmcgTW9udGhJbnB1dFR5cGU6OnNlcmlhbGl6ZVdpdGhNaWxsaXNlY29u
ZHMoZG91YmxlIHZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9N
b250aElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCmlu
ZGV4IGRhNGM1YmM4YTQzZTFmMDQ2OGY2ODA2ZDk1YjRmMWY0MDc1ODI3OWMuLjU3Mjc4YjVkYTA3
Mzg1MjI0MWYxYTE4NzliMGExNjgxYTFlNDZlNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTW9udGhJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5w
dXRUeXBlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBjb25zdCBB
dG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBEYXRlQ29t
cG9uZW50c1R5cGUgZGF0ZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBkb3VibGUgdmFsdWVB
c0RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBXYWxsVGltZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIFN0cmluZyBzZXJpYWxpemVXaXRoTWlsbGlzZWNvbmRzKGRvdWJsZSkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgRGVjaW1hbCBwYXJzZVRvTnVtYmVyKGNvbnN0IFN0cmluZyYs
IGNvbnN0IERlY2ltYWwmKSBjb25zdCBvdmVycmlkZTsKICAgICBEZWNpbWFsIGRlZmF1bHRWYWx1
ZUZvclN0ZXBVcCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCA2
Mjg2YjY1MjEyNmUwZGQxMzNkMmMyNGU0N2ZjZDdjZGM3Mzc2YTczLi4zNjg3OWVmZWZjZjhmNWM2
YjhhY2NjZDZmNWQ5NWY2NTk0NjFmZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtMjgy
LDcgKzI4Miw3IEBAIHN0YXRpYyBSZWZQdHI8SURCS2V5PiBpZGJLZXlGcm9tSW5zcGVjdG9yT2Jq
ZWN0KFJlZjxKU09OOjpPYmplY3Q+JiYga2V5KQogICAgICAgICBhdXRvIGRhdGUgPSBrZXktPmdl
dERvdWJsZShQcm90b2NvbDo6SW5kZXhlZERCOjpLZXk6OmRhdGVLZXkpOwogICAgICAgICBpZiAo
IWRhdGUpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIElEQktl
eTo6Y3JlYXRlRGF0ZSgqZGF0ZSk7CisgICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZURhdGUo
V2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoKmRhdGUp
LnZhbHVlKCkpKTsKICAgICB9CiAKICAgICBjYXNlIFByb3RvY29sOjpJbmRleGVkREI6OktleTo6
VHlwZTo6QXJyYXk6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9E
T01GaWxlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUZpbGUubW0KaW5kZXgg
ZDU4ZmQwNTYzNTcxYjY1NjFiMmQ0NzZmNmEyYTBjZjQwYTlmMWQwMi4uOWFjMzMyZDdhYTA3Mjc4
ZmUyMWZhYmZjZGFmMmEwODFiZjJkM2FlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvRE9NL0RPTUZpbGUubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RP
TUZpbGUubW0KQEAgLTQ4LDcgKzQ4LDcgQEAgLSAoTlNTdHJpbmcgKiluYW1lCiAtIChsb25nIGxv
bmcpbGFzdE1vZGlmaWVkCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwotICAgIHJldHVybiBJTVBMLT5sYXN0TW9kaWZpZWQoKTsKKyAgICByZXR1cm4gSU1QTC0+
bGFzdE1vZGlmaWVkRm9yQmluZGluZ3MoKTsKIH0KIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUhUTUxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbQppbmRleCAzZjJiZWUzY2Rj
YWI5ZWQ2YjkwMzJmZjE4MDBiMzRiMzA3OWY2NjZmLi45YWUxN2NiMTUwZDk4MGVmOGI2ZmU4Mjlm
MTRjYmU1Y2M4NGE1N2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00v
RE9NSFRNTE1lZGlhRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00v
RE9NSFRNTE1lZGlhRWxlbWVudC5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW1wb3J0ICJET01I
VE1MTWVkaWFFbGVtZW50LmgiCiAKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCiAjaW1wb3J0ICJE
T01NZWRpYUVycm9ySW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgogI2lt
cG9ydCAiRE9NVGltZVJhbmdlc0ludGVybmFsLmgiCkBAIC0zMTMsNyArMzE0LDcgQEAgLSAoTlNT
dHJpbmcgKiljYW5QbGF5VHlwZTooTlNTdHJpbmcgKil0eXBlCiAtIChOU1RpbWVJbnRlcnZhbCln
ZXRTdGFydERhdGUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
Ci0gICAgcmV0dXJuIElNUEwtPmdldFN0YXJ0RGF0ZSgpOworICAgIHJldHVybiBraXQoSU1QTC0+
Z2V0U3RhcnREYXRlKCkpOwogfQogCiAtICh2b2lkKXBsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01JbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvRE9NL0RPTUludGVybmFsLmgKaW5kZXggOWU3MWM0YmQ1M2I0MmM5NmJiOGJiMDA0ZjMwM2Iw
NzIwYTBlM2Y3OC4uYmE1YjJlNjNkOWUwNjg3OTkzMzU3MWMxOTdhYjI3MWJkZDcyZGVjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFsLmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFsLmgKQEAgLTI5LDYgKzI5LDcg
QEAKICNpbXBvcnQgIkRPTU9iamVjdC5oIgogI2ltcG9ydCAiRE9NWFBhdGhOU1Jlc29sdmVyLmgi
CiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgorI2ltcG9ydCA8d3RmL1dhbGxUaW1lLmg+CiAKIG5h
bWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEpTT2JqZWN0OwpAQCAtNzcsMTIgKzc4LDEyIEBAIFdl
YkNvcmU6Ok5vZGVGaWx0ZXIqIGNvcmUoRE9NTm9kZUZpbHRlciAqKTsKIERPTU5hdGl2ZVhQYXRo
TlNSZXNvbHZlciAqa2l0KFdlYkNvcmU6OlhQYXRoTlNSZXNvbHZlciopOwogV2ViQ29yZTo6WFBh
dGhOU1Jlc29sdmVyKiBjb3JlKERPTU5hdGl2ZVhQYXRoTlNSZXNvbHZlciAqKTsKIAotaW5saW5l
IE5TVGltZUludGVydmFsIGtpdChkb3VibGUgbXNTaW5jZUVwb2NoKQoraW5saW5lIE5TVGltZUlu
dGVydmFsIGtpdChXYWxsVGltZSB0aW1lKQogewotICAgIHJldHVybiBtc1NpbmNlRXBvY2ggLyAx
MDAwLjAgLSBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MDsKKyAgICByZXR1cm4gdGltZS5zZWNvbmRz
U2luY2VFcG9jaCgpLnZhbHVlKCkgLSBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MDsKIH0KIAotaW5s
aW5lIGRvdWJsZSBjb3JlKE5TVGltZUludGVydmFsIHNlYykKK2lubGluZSBXYWxsVGltZSBjb3Jl
KE5TVGltZUludGVydmFsIHNlYykKIHsKLSAgICByZXR1cm4gc2VjICogMTAwMC4wICsgTlNUaW1l
SW50ZXJ2YWxTaW5jZTE5NzA7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhz
ZWMgKyBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MCk7CiB9Cg==
</data>
<flag name="review"
          id="471165"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445887</attachid>
            <date>2021-12-03 12:03:16 -0800</date>
            <delta_ts>2021-12-03 12:39:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>233781.diff</filename>
            <type>text/plain</type>
            <size>46501</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzYzViZDk2ZWMwMjJiNDkwYTcyN2NjYTAyZDFlZTcyNWE5ZDYyZTFiLi43
MjgzNjBmMGY3NzY0NWE5OTA2YTI1NjcyNmI4NDg3ZTgyMGY1N2Y4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsODggQEAKKzIwMjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENoYW5nZSBJREwgYERhdGVgIHRvIGJlIGJhY2tlZCBieSBgV2FsbFRpbWVg
IHRvIGF2b2lkIGNvbmZ1c2lvbiB3aGVuIGNvbnZlcnRpbmcgdG8gbmF0aXZlIGRhdGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3ODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKUyBgRGF0ZWAgaXMg
bWlsbGlzZWNvbmRzLWJhc2VkLCBidXQgc29tZSBuYXRpdmUgZGF0ZXMgKGUuZy4gYE5TRGF0ZWAp
IGFyZSBzZWNvbmRzLWJhc2VkLgorICAgICAgICBgV2FsbFRpbWVgIHdpbGwgaGVscCBhdm9pZCBj
b25mdXNpb24gc2luY2Ugbm90IGEgZ2VuZXJpYyB0eXBlIChlLmcuIGBkb3VibGVgKSBhbmQgaW5z
dGVhZAorICAgICAgICBoYXMgZXhwbGljaXRseSBkZWZpbmVkIGNvbnZlcnNpb24gbWV0aG9kcyB0
byBzZWNvbmRzLCBtaWxsaXNlY29uZHMsIGV0Yy4uCisKKyAgICAgICAgKiBiaW5kaW5ncy9JRExU
eXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6SURMRGF0ZTo6bnVsbFZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OklETERhdGU6OmlzTnVsbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklETERh
dGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0RGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udmVydGVyPElETERhdGU+Ojpj
b252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29udmVydGVyPElETERhdGU+Ojpjb252ZXJ0
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmpzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVRvRGF0ZSk6CisKKyAg
ICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TGluZUl0ZW0uaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5TGluZUl0ZW06OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW06CisgICAgICAgIChXZWJDb3Jl
Ojp0b0RhdGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oOgorICAgICAg
ICAoV2ViQ29yZTo6SURCS2V5OjpjcmVhdGVOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURC
S2V5OjpjcmVhdGVEYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleTo6ZGF0ZSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQktleTo6SURCS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleTo6Y29tcGFyZSBj
b25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oOgorICAgICAg
ICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJLZXlEYXRhOjpkYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5RGF0YTo6bWF5YmVDcmVhdGVJREJLZXkgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5RGF0YTo6aXNvbGF0ZWRDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURh
dGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpkZWNvZGUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6c2V0RGF0ZVZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQktleURhdGE6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5RGF0YTo6c2l6ZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5jb2RlS2V5
KToKKyAgICAgICAgKFdlYkNvcmU6OmRlY29kZUtleSk6CisgICAgICAgICogYmluZGluZ3MvanMv
SURCQmluZGluZ1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXQpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDbG9uZVNlcmlhbGl6ZXI6OndyaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVz
ZXJpYWxpemVyOjpyZWFkRmlsZSk6CisgICAgICAgICogZmlsZWFwaS9GaWxlLmlkbDoKKyAgICAg
ICAgKiBmaWxlYXBpL0ZpbGUuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZTo6RmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjpsYXN0TW9k
aWZpZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6bGFzdE1vZGlmaWVkRm9yQmlu
ZGluZ3MgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0
ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZh
bHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
dmFsdWVBc0RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpnZXRTdGFydERhdGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OnNldFZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNb250aElucHV0VHlwZTo6dmFsdWVBc0RhdGUgY29uc3QpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yOjppZGJLZXlGcm9tSW5zcGVjdG9yT2JqZWN0KToKKwogMjAyMS0xMi0wMiAgQWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBDcmVhdGUg
ZGlzcGxheSBib3hlcyBmb3IgZnJhZ21lbnRlZCBpbmxpbmUgYm94ZXMgb24gYmlkaSBib3VuZGFy
aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNzZhYTZhYWY4NGRlYjA4MmU0Yzg0
MzIyNDkzMzgwZDgzM2RlOTJkMS4uMWE0ZTczMjExMmY0NGQxYWNiYTI3MzNhNzE2NTkzMTExNTkw
ODIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIx
LTEyLTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDaGFu
Z2UgSURMIGBEYXRlYCB0byBiZSBiYWNrZWQgYnkgYFdhbGxUaW1lYCB0byBhdm9pZCBjb25mdXNp
b24gd2hlbiBjb252ZXJ0aW5nIHRvIG5hdGl2ZSBkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSlMgYERhdGVgIGlzIG1pbGxpc2Vjb25kcy1iYXNl
ZCwgYnV0IHNvbWUgbmF0aXZlIGRhdGVzIChlLmcuIGBOU0RhdGVgKSBhcmUgc2Vjb25kcy1iYXNl
ZC4KKyAgICAgICAgYFdhbGxUaW1lYCB3aWxsIGhlbHAgYXZvaWQgY29uZnVzaW9uIHNpbmNlIG5v
dCBhIGdlbmVyaWMgdHlwZSAoZS5nLiBgZG91YmxlYCkgYW5kIGluc3RlYWQKKyAgICAgICAgaGFz
IGV4cGxpY2l0bHkgZGVmaW5lZCBjb252ZXJzaW9uIG1ldGhvZHMgdG8gc2Vjb25kcywgbWlsbGlz
ZWNvbmRzLCBldGMuLgorCisgICAgICAgICogRE9NL0RPTUludGVybmFsLmg6CisgICAgICAgIChr
aXQpOgorICAgICAgICAoY29yZSk6CisKKyAgICAgICAgKiBET00vRE9NRmlsZS5tbToKKyAgICAg
ICAgKC1bRE9NRmlsZSBsYXN0TW9kaWZpZWRdKToKKyAgICAgICAgKiBET00vRE9NSFRNTE1lZGlh
RWxlbWVudC5tbToKKyAgICAgICAgKC1bRE9NSFRNTE1lZGlhRWxlbWVudCBnZXRTdGFydERhdGVd
KToKKwogMjAyMS0xMi0wMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgogCiAgICAgICAgIFtXZWJHUFVdIEhvb2sgdXAgbmF2aWdhdG9yLmdwdS5yZXF1ZXN0QWRhcHRl
cigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
TGluZUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5l
SXRlbS5oCmluZGV4IDk5ZWVmYmFiMTEzMzQzMWNjNWEwNzAyZmNjZDA5OGExOTNmNGM3MmIuLjZh
MzQ0MzdhNDQ4ZTg3MDBmMWViNmJhODk1ZGZiYmVjNWNlYTdiODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oCkBAIC0yOSw4ICsy
OSw4IEBACiAKICNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRUaW1pbmcuaCIKICNpbmNsdWRlICJB
cHBsZVBheVJlY3VycmluZ1BheW1lbnREYXRlVW5pdC5oIgotI2luY2x1ZGUgPGxpbWl0cz4KICNp
bmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCkBAIC01
MiwxNCArNTIsMTQgQEAgc3RydWN0IEFwcGxlUGF5TGluZUl0ZW0gZmluYWwgewogICAgIEFwcGxl
UGF5UGF5bWVudFRpbWluZyBwYXltZW50VGltaW5nIHsgQXBwbGVQYXlQYXltZW50VGltaW5nOjpJ
bW1lZGlhdGUgfTsKIAogI2lmIEVOQUJMRShBUFBMRV9QQVlfUkVDVVJSSU5HX0xJTkVfSVRFTSkK
LSAgICBkb3VibGUgcmVjdXJyaW5nUGF5bWVudFN0YXJ0RGF0ZSB7IHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKKyAgICBXYWxsVGltZSByZWN1cnJpbmdQYXltZW50
U3RhcnREYXRlIHsgV2FsbFRpbWU6Om5hbigpIH07CiAgICAgQXBwbGVQYXlSZWN1cnJpbmdQYXlt
ZW50RGF0ZVVuaXQgcmVjdXJyaW5nUGF5bWVudEludGVydmFsVW5pdCB7IEFwcGxlUGF5UmVjdXJy
aW5nUGF5bWVudERhdGVVbml0OjpNb250aCB9OwogICAgIHVuc2lnbmVkIHJlY3VycmluZ1BheW1l
bnRJbnRlcnZhbENvdW50ID0gMTsKLSAgICBkb3VibGUgcmVjdXJyaW5nUGF5bWVudEVuZERhdGUg
eyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisgICAgV2FsbFRp
bWUgcmVjdXJyaW5nUGF5bWVudEVuZERhdGUgeyBXYWxsVGltZTo6bmFuKCkgfTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKEFQUExFX1BBWV9ERUZFUlJFRF9MSU5FX0lURU0pCi0gICAgZG91YmxlIGRl
ZmVycmVkUGF5bWVudERhdGUgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05h
TigpIH07CisgICAgV2FsbFRpbWUgZGVmZXJyZWRQYXltZW50RGF0ZSB7IFdhbGxUaW1lOjpuYW4o
KSB9OwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEFwcGxlUGF5TGluZUl0ZW1BZGRpdGlvbnNfbWVt
YmVycykKQEAgLTEwNSwxMyArMTA1LDEzIEBAIHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlMaW5lSXRl
bT4gQXBwbGVQYXlMaW5lSXRlbTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgREVDT0RF
KGFtb3VudCwgU3RyaW5nKQogICAgIERFQ09ERShwYXltZW50VGltaW5nLCBBcHBsZVBheVBheW1l
bnRUaW1pbmcpCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9SRUNVUlJJTkdfTElORV9JVEVNKQotICAg
IERFQ09ERShyZWN1cnJpbmdQYXltZW50U3RhcnREYXRlLCBkb3VibGUpCisgICAgREVDT0RFKHJl
Y3VycmluZ1BheW1lbnRTdGFydERhdGUsIFdhbGxUaW1lKQogICAgIERFQ09ERShyZWN1cnJpbmdQ
YXltZW50SW50ZXJ2YWxVbml0LCBBcHBsZVBheVJlY3VycmluZ1BheW1lbnREYXRlVW5pdCkKICAg
ICBERUNPREUocmVjdXJyaW5nUGF5bWVudEludGVydmFsQ291bnQsIHVuc2lnbmVkKQotICAgIERF
Q09ERShyZWN1cnJpbmdQYXltZW50RW5kRGF0ZSwgZG91YmxlKQorICAgIERFQ09ERShyZWN1cnJp
bmdQYXltZW50RW5kRGF0ZSwgV2FsbFRpbWUpCiAjZW5kaWYKICNpZiBFTkFCTEUoQVBQTEVfUEFZ
X0RFRkVSUkVEX0xJTkVfSVRFTSkKLSAgICBERUNPREUoZGVmZXJyZWRQYXltZW50RGF0ZSwgZG91
YmxlKQorICAgIERFQ09ERShkZWZlcnJlZFBheW1lbnREYXRlLCBXYWxsVGltZSkKICNlbmRpZgog
I2lmIGRlZmluZWQoQXBwbGVQYXlMaW5lSXRlbUFkZGl0aW9uc19kZWNvZGVfbWVtYmVycykKICAg
ICBBcHBsZVBheUxpbmVJdGVtQWRkaXRpb25zX2RlY29kZV9tZW1iZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTdW1tYXJ5SXRlbXND
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1
bW1hcnlJdGVtc0NvY29hLm1tCmluZGV4IDk0MWE5ZWYxZDgwZWVlODUwNzE1NGMyMTZkNzcwMDY3
ZDc0MTBiMWEuLjVmMWMzMWI2ZTllMWU5ZWUyMzkzMGZkZDJkZTFmOTM1YmYyM2ViZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1bW1h
cnlJdGVtc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29j
b2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tCkBAIC02MCw5ICs2MCw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogI2lmIEhBVkUoUEFTU0tJVF9SRUNVUlJJTkdfU1VNTUFSWV9JVEVNKSB8
fCBIQVZFKFBBU1NLSVRfREVGRVJSRURfU1VNTUFSWV9JVEVNKQogCi1zdGF0aWMgTlNEYXRlICp0
b0RhdGUoZG91YmxlIGRhdGUpCitzdGF0aWMgTlNEYXRlICp0b0RhdGUoV2FsbFRpbWUgZGF0ZSkK
IHsKLSAgICByZXR1cm4gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDooZGF0
ZSAvIDEwMDApXTsKKyAgICByZXR1cm4gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNl
MTk3MDpkYXRlLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKV07CiB9CiAKICNlbmRpZiAvLyBI
QVZFKFBBU1NLSVRfUkVDVVJSSU5HX1NVTU1BUllfSVRFTSkgfHwgSEFWRShQQVNTS0lUX0RFRkVS
UkVEX1NVTU1BUllfSVRFTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJL
ZXkuY3BwCmluZGV4IDRmYjI2Mzg1NDgyOGI5ZjdmOGU0ZmJiYWIwN2Q0YTM0ZWY0ZjczNWQuLmYw
ZjJlMzZjZTQ3OGJmZWYxMzJmZWE0MjUyMTVjMWRlZDA4Zjk3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcApAQCAtNTgsMTMgKzU4LDIwIEBAIFJlZjxJ
REJLZXk+IElEQktleTo6Y3JlYXRlQmluYXJ5KEpTQzo6SlNBcnJheUJ1ZmZlclZpZXcmIGFycmF5
QnVmZmVyVmlldykKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJLZXkoVGhyZWFkU2FmZURh
dGFCdWZmZXI6OmNvcHlEYXRhKGJ1ZmZlclZpZXctPmRhdGEoKSwgYnVmZmVyVmlldy0+Ynl0ZUxl
bmd0aCgpKSkpOwogfQogCi1JREJLZXk6OklEQktleShJbmRleGVkREI6OktleVR5cGUgdHlwZSwg
ZG91YmxlIG51bWJlcikKLSAgICA6IG1fdHlwZSh0eXBlKQorSURCS2V5OjpJREJLZXkoZG91Ymxl
IG51bWJlcikKKyAgICA6IG1fdHlwZShJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcikKICAgICAs
IG1fdmFsdWUobnVtYmVyKQogICAgICwgbV9zaXplRXN0aW1hdGUoT3ZlcmhlYWRTaXplICsgc2l6
ZW9mKGRvdWJsZSkpCiB7CiB9CiAKK0lEQktleTo6SURCS2V5KFdhbGxUaW1lIGRhdGUpCisgICAg
OiBtX3R5cGUoSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlKQorICAgICwgbV92YWx1ZShkYXRlKQor
ICAgICwgbV9zaXplRXN0aW1hdGUoT3ZlcmhlYWRTaXplICsgc2l6ZW9mKFdhbGxUaW1lKSkKK3sK
K30KKwogSURCS2V5OjpJREJLZXkoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICA6IG1fdHlwZShJ
bmRleGVkREI6OktleVR5cGU6OlN0cmluZykKICAgICAsIG1fdmFsdWUodmFsdWUpCkBAIC0xMjYs
NyArMTMzLDExIEBAIGludCBJREJLZXk6OmNvbXBhcmUoY29uc3QgSURCS2V5JiBvdGhlcikgY29u
c3QKICAgICAgICAgcmV0dXJuIGNvbXBhcmVCaW5hcnlLZXlEYXRhKHN0ZDo6Z2V0PFRocmVhZFNh
ZmVEYXRhQnVmZmVyPihtX3ZhbHVlKSwgc3RkOjpnZXQ8VGhyZWFkU2FmZURhdGFCdWZmZXI+KG90
aGVyLm1fdmFsdWUpKTsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6U3RyaW5nOgogICAg
ICAgICByZXR1cm4gLWNvZGVQb2ludENvbXBhcmUoc3RkOjpnZXQ8U3RyaW5nPihvdGhlci5tX3Zh
bHVlKSwgc3RkOjpnZXQ8U3RyaW5nPihtX3ZhbHVlKSk7Ci0gICAgY2FzZSBJbmRleGVkREI6Oktl
eVR5cGU6OkRhdGU6CisgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6IHsKKyAgICAg
ICAgYXV0byBkYXRlID0gc3RkOjpnZXQ8V2FsbFRpbWU+KG1fdmFsdWUpOworICAgICAgICBhdXRv
IG90aGVyRGF0ZSA9IHN0ZDo6Z2V0PFdhbGxUaW1lPihvdGhlci5tX3ZhbHVlKTsKKyAgICAgICAg
cmV0dXJuIChkYXRlIDwgb3RoZXJEYXRlKSA/IC0xIDogKChkYXRlID4gb3RoZXJEYXRlKSA/IDEg
OiAwKTsKKyAgICB9CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjogewogICAg
ICAgICBhdXRvIG51bWJlciA9IHN0ZDo6Z2V0PGRvdWJsZT4obV92YWx1ZSk7CiAgICAgICAgIGF1
dG8gb3RoZXJOdW1iZXIgPSBzdGQ6OmdldDxkb3VibGU+KG90aGVyLm1fdmFsdWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaAppbmRleCBjMjhmZGNmMzViZjNkZmRi
N2IxZmRhNWU3Y2VjNTlhM2Q0MDY5Nzc0Li4xODZhOTM2ZjJmMzk1YzNmNjNhYmQ1M2MyZGFmMzYw
Zjg0ODg2MGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYv
V2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IEpTQyB7CkBAIC01MSw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBSZWY8SURCS2V5
PiBjcmVhdGVOdW1iZXIoZG91YmxlIG51bWJlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IElEQktleShJbmRleGVkREI6OktleVR5cGU6Ok51bWJlciwgbnVtYmVyKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQktleShudW1iZXIpKTsKICAgICB9CiAKICAg
ICBzdGF0aWMgUmVmPElEQktleT4gY3JlYXRlU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQpA
QCAtNTksOSArNjAsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElE
QktleShzdHJpbmcpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPElEQktleT4gY3JlYXRlRGF0
ZShkb3VibGUgZGF0ZSkKKyAgICBzdGF0aWMgUmVmPElEQktleT4gY3JlYXRlRGF0ZShXYWxsVGlt
ZSBkYXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCS2V5KEluZGV4
ZWREQjo6S2V5VHlwZTo6RGF0ZSwgZGF0ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBJREJLZXkoZGF0ZSkpOwogICAgIH0KIAogICAgIHN0YXRpYyBSZWY8SURCS2V5PiBjcmVhdGVN
dWx0aUVudHJ5QXJyYXkoY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+PiYgYXJyYXkpCkBAIC0x
MjAsMTAgKzEyMSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdGQ6OmdldDxTdHJpbmc+
KG1fdmFsdWUpOwogICAgIH0KIAotICAgIGRvdWJsZSBkYXRlKCkgY29uc3QKKyAgICBXYWxsVGlt
ZSBkYXRlKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gSW5kZXhlZERC
OjpLZXlUeXBlOjpEYXRlKTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6Z2V0PGRvdWJsZT4obV92YWx1
ZSk7CisgICAgICAgIHJldHVybiBzdGQ6OmdldDxXYWxsVGltZT4obV92YWx1ZSk7CiAgICAgfQog
CiAgICAgZG91YmxlIG51bWJlcigpIGNvbnN0CkBAIC0xNjMsMTMgKzE2NCwxNCBAQCBwcml2YXRl
OgogICAgIHsKICAgICB9CiAKLSAgICBJREJLZXkoSW5kZXhlZERCOjpLZXlUeXBlLCBkb3VibGUg
bnVtYmVyKTsKKyAgICBleHBsaWNpdCBJREJLZXkoZG91YmxlKTsKKyAgICBleHBsaWNpdCBJREJL
ZXkoV2FsbFRpbWUpOwogICAgIGV4cGxpY2l0IElEQktleShjb25zdCBTdHJpbmcmIHZhbHVlKTsK
ICAgICBJREJLZXkoY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+PiYga2V5QXJyYXksIHNpemVf
dCBhcnJheVNpemUpOwogICAgIGV4cGxpY2l0IElEQktleShjb25zdCBUaHJlYWRTYWZlRGF0YUJ1
ZmZlciYpOwogCiAgICAgY29uc3QgSW5kZXhlZERCOjpLZXlUeXBlIG1fdHlwZTsKLSAgICBzdGQ6
OnZhcmlhbnQ8VmVjdG9yPFJlZlB0cjxJREJLZXk+PiwgU3RyaW5nLCBkb3VibGUsIFRocmVhZFNh
ZmVEYXRhQnVmZmVyPiBtX3ZhbHVlOworICAgIHN0ZDo6dmFyaWFudDxWZWN0b3I8UmVmUHRyPElE
QktleT4+LCBTdHJpbmcsIFdhbGxUaW1lLCBkb3VibGUsIFRocmVhZFNhZmVEYXRhQnVmZmVyPiBt
X3ZhbHVlOwogCiAgICAgY29uc3Qgc2l6ZV90IG1fc2l6ZUVzdGltYXRlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCmluZGV4IDJhMzdjNTI4
ZWY1YmY5ZDk1NzczYTBiMTBmMDI1MjI5YmRlNWE0MTguLmU0OWZiM2U3MjhiYjM1MDM5NDhjZjk4
OTYzNjcyYjY1MjE5MGY4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQktleURhdGEuY3BwCkBAIC05MSw3ICs5MSw3IEBAIFJlZlB0cjxJREJLZXk+IElEQktl
eURhdGE6Om1heWJlQ3JlYXRlSURCS2V5KCkgY29uc3QKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5
VHlwZTo6U3RyaW5nOgogICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVTdHJpbmcoc3RkOjpn
ZXQ8U3RyaW5nPihtX3ZhbHVlKSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6
Ci0gICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZURhdGUoc3RkOjpnZXQ8ZG91YmxlPihtX3Zh
bHVlKSk7CisgICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZURhdGUoc3RkOjpnZXQ8V2FsbFRp
bWU+KG1fdmFsdWUpKTsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyOgogICAg
ICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVOdW1iZXIoc3RkOjpnZXQ8ZG91YmxlPihtX3ZhbHVl
KSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok1heDoKQEAgLTEzNiw2ICsxMzYsOCBA
QCB2b2lkIElEQktleURhdGE6Omlzb2xhdGVkQ29weShjb25zdCBJREJLZXlEYXRhJiBzb3VyY2Us
IElEQktleURhdGEmIGRlc3RpbmF0aW9uKQogICAgICAgICBkZXN0aW5hdGlvbi5tX3ZhbHVlID0g
c3RkOjpnZXQ8U3RyaW5nPihzb3VyY2UubV92YWx1ZSkuaXNvbGF0ZWRDb3B5KCk7CiAgICAgICAg
IHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAgZGVz
dGluYXRpb24ubV92YWx1ZSA9IHN0ZDo6Z2V0PFdhbGxUaW1lPihzb3VyY2UubV92YWx1ZSk7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyOgogICAg
ICAgICBkZXN0aW5hdGlvbi5tX3ZhbHVlID0gc3RkOjpnZXQ8ZG91YmxlPihzb3VyY2UubV92YWx1
ZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTE3Niw2ICsxNzgsOCBAQCB2b2lkIElEQktleURhdGE6
OmVuY29kZShLZXllZEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgICAgIGVuY29kZXIuZW5j
b2RlU3RyaW5nKCJzdHJpbmciLCBzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlOgorICAgICAgICBlbmNv
ZGVyLmVuY29kZURvdWJsZSgiZGF0ZSIsIHN0ZDo6Z2V0PFdhbGxUaW1lPihtX3ZhbHVlKS5zZWNv
bmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRl
eGVkREI6OktleVR5cGU6Ok51bWJlcjoKICAgICAgICAgZW5jb2Rlci5lbmNvZGVEb3VibGUoIm51
bWJlciIsIHN0ZDo6Z2V0PGRvdWJsZT4obV92YWx1ZSkpOwogICAgICAgICByZXR1cm47CkBAIC0y
MjIsNyArMjI2LDE2IEBAIGJvb2wgSURCS2V5RGF0YTo6ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVj
b2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVT
dHJpbmcoInN0cmluZyIsIHN0ZDo6Z2V0PFN0cmluZz4ocmVzdWx0Lm1fdmFsdWUpKTsKICAgICB9
CiAKLSAgICBpZiAocmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlciB8
fCByZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZSkgeworICAgIGlmIChy
ZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZSkgeworICAgICAgICByZXN1
bHQubV92YWx1ZSA9IFdhbGxUaW1lKCk7CisgICAgICAgIGRvdWJsZSBzZWNvbmRzOworICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlRG91YmxlKCJkYXRlIiwgc2Vjb25kcykpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKHNlY29uZHMpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBp
ZiAocmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcikgewogICAgICAg
ICByZXN1bHQubV92YWx1ZSA9IDAuMDsKICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlRG91
YmxlKCJudW1iZXIiLCBzdGQ6OmdldDxkb3VibGU+KHJlc3VsdC5tX3ZhbHVlKSk7CiAgICAgfQpA
QCAtNDA0LDcgKzQxNyw3IEBAIHZvaWQgSURCS2V5RGF0YTo6c2V0U3RyaW5nVmFsdWUoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKICAgICBtX2lzTnVsbCA9IGZhbHNlOwogfQogCi12b2lkIElEQktleURh
dGE6OnNldERhdGVWYWx1ZShkb3VibGUgdmFsdWUpCit2b2lkIElEQktleURhdGE6OnNldERhdGVW
YWx1ZShXYWxsVGltZSB2YWx1ZSkKIHsKICAgICAqdGhpcyA9IElEQktleURhdGEoKTsKICAgICBt
X3ZhbHVlID0gdmFsdWU7CkBAIC00NTAsOCArNDYzLDkgQEAgYm9vbCBJREJLZXlEYXRhOjpvcGVy
YXRvcj09KGNvbnN0IElEQktleURhdGEmIG90aGVyKSBjb25zdAogICAgIGNhc2UgSW5kZXhlZERC
OjpLZXlUeXBlOjpNaW46CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgSW5kZXhlZERC
OjpLZXlUeXBlOjpOdW1iZXI6Ci0gICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6CiAg
ICAgICAgIHJldHVybiBzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpID09IHN0ZDo6Z2V0PGRvdWJs
ZT4ob3RoZXIubV92YWx1ZSk7CisgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6Cisg
ICAgICAgIHJldHVybiBzdGQ6OmdldDxXYWxsVGltZT4obV92YWx1ZSkgPT0gc3RkOjpnZXQ8V2Fs
bFRpbWU+KG90aGVyLm1fdmFsdWUpOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpTdHJp
bmc6CiAgICAgICAgIHJldHVybiBzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpID09IHN0ZDo6Z2V0
PFN0cmluZz4ob3RoZXIubV92YWx1ZSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkJp
bmFyeToKQEAgLTQ4Miw2ICs0OTYsNyBAQCBzaXplX3QgSURCS2V5RGF0YTo6c2l6ZSgpIGNvbnN0
CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZzoKICAgICAgICAgcmV0dXJuIHN0
ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSkuc2l6ZUluQnl0ZXMoKTsKICAgICBjYXNlIEluZGV4ZWRE
Qjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAgcmV0dXJuIHNpemVvZihXYWxsVGltZSk7CiAgICAg
Y2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjoKICAgICAgICAgcmV0dXJuIHNpemVvZihk
b3VibGUpOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpNYXg6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmgKaW5kZXggNGI5Nzg1MzY5ZDE5MGE2
YjE5NjkxZDEzN2FlMTU2N2U1YzM3OTVkOS4uNWExN2U1OTEzMmNhNjVmYjJjYzE1NDI1M2JhODhi
ZDQyZTMxNTk2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCS2V5RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eURhdGEuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUg
PHZhcmlhbnQ+CiAjaW5jbHVkZSA8d3RmL1N0ZFNldC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtODEsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBcnJheVZhbHVlKGNv
bnN0IFZlY3RvcjxJREJLZXlEYXRhPiYpOwogICAgIHZvaWQgc2V0QmluYXJ5VmFsdWUoY29uc3Qg
VGhyZWFkU2FmZURhdGFCdWZmZXImKTsKICAgICB2b2lkIHNldFN0cmluZ1ZhbHVlKGNvbnN0IFN0
cmluZyYpOwotICAgIHZvaWQgc2V0RGF0ZVZhbHVlKGRvdWJsZSk7CisgICAgdm9pZCBzZXREYXRl
VmFsdWUoV2FsbFRpbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TnVtYmVyVmFsdWUo
ZG91YmxlKTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKQEAgLTEyOSw5ICsxMzAsMTEgQEAgcHVibGljOgogICAgICAgICBjYXNlIElu
ZGV4ZWREQjo6S2V5VHlwZTo6TWluOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
SW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6Ci0gICAgICAgIGNhc2UgSW5kZXhlZERCOjpLZXlU
eXBlOjpEYXRlOgogICAgICAgICAgICAgaGFzaENvZGVzLmFwcGVuZChTdHJpbmdIYXNoZXI6Omhh
c2hNZW1vcnk8c2l6ZW9mKGRvdWJsZSk+KCZzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpKSk7CiAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6
CisgICAgICAgICAgICBoYXNoQ29kZXMuYXBwZW5kKFN0cmluZ0hhc2hlcjo6aGFzaE1lbW9yeTxz
aXplb2YoV2FsbFRpbWUpPigmc3RkOjpnZXQ8V2FsbFRpbWU+KG1fdmFsdWUpKSk7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZzoKICAg
ICAgICAgICAgIGhhc2hDb2Rlcy5hcHBlbmQoU3RyaW5nSGFzaDo6aGFzaChzdGQ6OmdldDxTdHJp
bmc+KG1fdmFsdWUpKSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE1OCwxMCArMTYxLDEwIEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSk7CiAgICAg
fQogCi0gICAgZG91YmxlIGRhdGUoKSBjb25zdAorICAgIFdhbGxUaW1lIGRhdGUoKSBjb25zdAog
ICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6OkRhdGUp
OwotICAgICAgICByZXR1cm4gc3RkOjpnZXQ8ZG91YmxlPihtX3ZhbHVlKTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6Z2V0PFdhbGxUaW1lPihtX3ZhbHVlKTsKICAgICB9CiAKICAgICBkb3VibGUgbnVt
YmVyKCkgY29uc3QKQEAgLTE5Myw3ICsxOTYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc051
bGwgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0RlbGV0ZWRWYWx1ZSB7IGZhbHNlIH07CiAKLSAg
ICBzdGQ6OnZhcmlhbnQ8VmVjdG9yPElEQktleURhdGE+LCBTdHJpbmcsIGRvdWJsZSwgVGhyZWFk
U2FmZURhdGFCdWZmZXI+IG1fdmFsdWU7CisgICAgc3RkOjp2YXJpYW50PFZlY3RvcjxJREJLZXlE
YXRhPiwgU3RyaW5nLCBXYWxsVGltZSwgZG91YmxlLCBUaHJlYWRTYWZlRGF0YUJ1ZmZlcj4gbV92
YWx1ZTsKIH07CiAKIHN0cnVjdCBJREJLZXlEYXRhSGFzaCB7CkBAIC0yNDQsNiArMjQ3LDggQEAg
dm9pZCBJREJLZXlEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAgICAg
ZW5jb2RlciA8PCBzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAgZW5jb2RlciA8PCBzdGQ6
OmdldDxXYWxsVGltZT4obV92YWx1ZSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5kZXhl
ZERCOjpLZXlUeXBlOjpOdW1iZXI6CiAgICAgICAgIGVuY29kZXIgPDwgc3RkOjpnZXQ8ZG91Ymxl
PihtX3ZhbHVlKTsKICAgICAgICAgYnJlYWs7CkBAIC0yODQsNiArMjg5LDEwIEBAIHN0ZDo6b3B0
aW9uYWw8SURCS2V5RGF0YT4gSURCS2V5RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAga2V5RGF0YS5tX3ZhbHVlID0gV2Fs
bFRpbWUoKTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGQ6OmdldDxXYWxsVGltZT4o
a2V5RGF0YS5tX3ZhbHVlKSkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
ICAgICBicmVhazsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyOgogICAgICAg
ICBrZXlEYXRhLm1fdmFsdWUgPSAwLjA7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3Rk
OjpnZXQ8ZG91YmxlPihrZXlEYXRhLm1fdmFsdWUpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcApp
bmRleCAyYTJjMWZjMzI5NTgwNWQ1MmZkNTZhZjMwYjQ1NWFlMmNjY2M0ODc3Li44NzMwMWNmZTE1
MWVjNDVmN2I1YTdiNjNkZjhkOTZkZWQ5MDY2M2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VyaWFsaXphdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3Bw
CkBAIC0yNDMsNyArMjQzLDcgQEAgc3RhdGljIHZvaWQgZW5jb2RlS2V5KFZlY3Rvcjx1aW50OF90
PiYgZGF0YSwgY29uc3QgSURCS2V5RGF0YSYga2V5KQogICAgICAgICB3cml0ZURvdWJsZShkYXRh
LCBrZXkubnVtYmVyKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNJREJLZXlUeXBlOjpE
YXRlOgotICAgICAgICB3cml0ZURvdWJsZShkYXRhLCBrZXkuZGF0ZSgpKTsKKyAgICAgICAgd3Jp
dGVEb3VibGUoZGF0YSwga2V5LmRhdGUoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFNJREJLZXlUeXBlOjpTdHJpbmc6IHsKICAgICAgICAg
YXV0byBzdHJpbmcgPSBrZXkuc3RyaW5nKCk7CkBAIC0zMTMsMTEgKzMxMywxMSBAQCBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlS2V5KGNvbnN0IHVpbnQ4X3QqJiBkYXRhLCBj
b25zdCB1aW50OF90KiBlbgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgY2FzZSBT
SURCS2V5VHlwZTo6RGF0ZTogewotICAgICAgICBkb3VibGUgZDsKLSAgICAgICAgaWYgKCFyZWFk
RG91YmxlKGRhdGEsIGVuZCwgZCkpCisgICAgICAgIGRvdWJsZSBzZWNvbmRzOworICAgICAgICBp
ZiAoIXJlYWREb3VibGUoZGF0YSwgZW5kLCBzZWNvbmRzKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgICAgICByZXN1bHQuc2V0RGF0ZVZhbHVlKGQpOworICAgICAgICByZXN1bHQu
c2V0RGF0ZVZhbHVlKFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzZWNvbmRzKSk7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KICAgICBjYXNlIFNJREJLZXlUeXBlOjpTdHJpbmc6IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCmluZGV4IGZkMDk5ZjU0Mzc4YTE5OTVkM2YxNDc4ODk5
NzU4MGNjYzhlZjljNTUuLjlmNjEyYTYxZTRiOWI3NGMxMzUyYjE3YWNkYmI2N2RiNDZjOThmNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgPHd0Zi9CcmlnYW5kLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1
ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogI2lmIEVOQUJMRShX
RUJHTCkKICNpbmNsdWRlICJXZWJHTEFueS5oIgpAQCAtMjU5LDExICsyNjAsMTEgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IElETFR5cGVkQXJyYXkgOiBJRExCdWZmZXJTb3VyY2U8VD4g
eyB9OwogCiAvLyBOb24tV2ViSURMIGV4dGVuc2lvbnMKIAotc3RydWN0IElETERhdGUgOiBJRExU
eXBlPGRvdWJsZT4geyAKLSAgICB1c2luZyBOdWxsYWJsZVR5cGUgPSBkb3VibGU7Ci0gICAgc3Rh
dGljIGRvdWJsZSBudWxsVmFsdWUoKSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJs
ZT46OnF1aWV0X05hTigpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNOdWxsVmFsdWUoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBzdGQ6OmlzbmFuKHZhbHVlKTsgfQotICAgIHN0YXRpYyBkb3VibGUgZXh0
cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0KK3N0
cnVjdCBJRExEYXRlIDogSURMVHlwZTxXYWxsVGltZT4geyAKKyAgICB1c2luZyBOdWxsYWJsZVR5
cGUgPSBXYWxsVGltZTsKKyAgICBzdGF0aWMgV2FsbFRpbWUgbnVsbFZhbHVlKCkgeyByZXR1cm4g
V2FsbFRpbWU6Om5hbigpOyB9CisgICAgc3RhdGljIGJvb2wgaXNOdWxsVmFsdWUoV2FsbFRpbWUg
dmFsdWUpIHsgcmV0dXJuIHN0ZDo6aXNuYW4odmFsdWUpOyB9CisgICAgc3RhdGljIFdhbGxUaW1l
IGV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShXYWxsVGltZSB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7
IH0KIH07CiAKIHN0cnVjdCBJRExKU09OIDogSURMVHlwZTxTdHJpbmc+IHsgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCmluZGV4IDll
NTY3MjFkM2VkYWNkOGI5MGJiYjcwZDQzMTNlMWY3MDFmZTkxOTMuLmM3MjgxYThjYTEwNjAwYjJi
YjdjYTgzM2ZjNmI1NThlMTQyYmNiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyBi
b29sIGdldChKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSBvYmpl
Y3QsIGNvbnN0IFN0cmluCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAg
ICAgICBpZiAoa2V5UGF0aEVsZW1lbnQgPT0gImxhc3RNb2RpZmllZCIpIHsKLSAgICAgICAgICAg
IHJlc3VsdCA9IGpzTnVtYmVyKGpzQ2FzdDxKU0ZpbGUqPihvYmopLT53cmFwcGVkKCkubGFzdE1v
ZGlmaWVkKCkpOworICAgICAgICAgICAgcmVzdWx0ID0ganNOdW1iZXIoanNDYXN0PEpTRmlsZSo+
KG9iaiktPndyYXBwZWQoKS5sYXN0TW9kaWZpZWQoKS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxp
c2Vjb25kcygpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAg
IGlmIChrZXlQYXRoRWxlbWVudCA9PSAibGFzdE1vZGlmaWVkRGF0ZSIpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHAKaW5kZXggMTM2N2VkMjU0
NzIxMWEzN2JmNzUzODRkODM5YThmZGVhMzI1OWM3Ni4uZDgwNzBjOGMxNTVjZjJmNzJhZWY1NGQ4
MjY5ZjQ2N2M4YzUxNzM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Db252ZXJ0RGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0RGF0ZS5jcHAKQEAgLTMwLDIxICszMCwyNCBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotSlNWYWx1ZSBqc0RhdGUoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSkKK0pTVmFsdWUganNEYXRlKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBXYWxsVGltZSB2YWx1ZSkKIHsKLSAgICBy
ZXR1cm4gRGF0ZUluc3RhbmNlOjpjcmVhdGUobGV4aWNhbEdsb2JhbE9iamVjdC52bSgpLCBsZXhp
Y2FsR2xvYmFsT2JqZWN0LmRhdGVTdHJ1Y3R1cmUoKSwgdmFsdWUpOworICAgIHJldHVybiBEYXRl
SW5zdGFuY2U6OmNyZWF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCksIGxleGljYWxHbG9iYWxP
YmplY3QuZGF0ZVN0cnVjdHVyZSgpLCB2YWx1ZS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vj
b25kcygpKTsKIH0KIAotZG91YmxlIHZhbHVlVG9EYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitXYWxsVGltZSB2YWx1ZVRvRGF0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQog
eworICAgIGRvdWJsZSBtaWxsaXNlY29uZHMgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46
OnF1aWV0X05hTigpOworCiAgICAgYXV0byYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCk7
CiAgICAgaWYgKHZhbHVlLmluaGVyaXRzPERhdGVJbnN0YW5jZT4odm0pKQotICAgICAgICByZXR1
cm4ganNDYXN0PERhdGVJbnN0YW5jZSo+KHZhbHVlKS0+aW50ZXJuYWxOdW1iZXIoKTsKLSAgICBp
ZiAodmFsdWUuaXNOdW1iZXIoKSkKLSAgICAgICAgcmV0dXJuIHZhbHVlLmFzTnVtYmVyKCk7Ci0g
ICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpCi0gICAgICAgIHJldHVybiB2bS5kYXRlQ2FjaGUucGFy
c2VEYXRlKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB2bSwgdmFsdWUuZ2V0U3RyaW5nKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSk7Ci0gICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
cXVpZXRfTmFOKCk7CisgICAgICAgIG1pbGxpc2Vjb25kcyA9IGpzQ2FzdDxEYXRlSW5zdGFuY2Uq
Pih2YWx1ZSktPmludGVybmFsTnVtYmVyKCk7CisgICAgZWxzZSBpZiAodmFsdWUuaXNOdW1iZXIo
KSkKKyAgICAgICAgbWlsbGlzZWNvbmRzID0gdmFsdWUuYXNOdW1iZXIoKTsKKyAgICBlbHNlIGlm
ICh2YWx1ZS5pc1N0cmluZygpKQorICAgICAgICBtaWxsaXNlY29uZHMgPSB2bS5kYXRlQ2FjaGUu
cGFyc2VEYXRlKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB2bSwgdmFsdWUuZ2V0U3RyaW5nKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSk7CisKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobWlsbGlzZWNvbmRzKS52YWx1ZSgpKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01Db252ZXJ0RGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0RGF0ZS5oCmluZGV4IDU2MjQyOTI5ZjcyZGNjNWU0ZDQ0MDQyODExMTJlYmUwN2Fm
OGI2NzQuLmQxMjM2MWZkNmZmMWUxZTYxMGIzZjEyMThlODA2OGY4NjhjMjdjZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmgKQEAgLTI4LDE0ICsy
OCwxNSBAQAogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0QmFz
ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTR2xvYmFsT2JqZWN0Lmg+CisjaW5jbHVk
ZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNDOjpKU1ZhbHVl
IGpzRGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgZG91YmxlIHZhbHVlKTsKLWRvdWJsZSB2YWx1
ZVRvRGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlKTsgLy8gTmFOIGlmIHRo
ZSB2YWx1ZSBjYW4ndCBiZSBjb252ZXJ0ZWQgdG8gYSBkYXRlLgorSlNDOjpKU1ZhbHVlIGpzRGF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgV2FsbFRpbWUgdmFsdWUpOworV2FsbFRpbWUgdmFsdWVU
b0RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7IC8vIE5hTiBpZiB0aGUg
dmFsdWUgY2FuJ3QgYmUgY29udmVydGVkIHRvIGEgZGF0ZS4KIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
Q29udmVydGVyPElETERhdGU+IDogRGVmYXVsdENvbnZlcnRlcjxJRExEYXRlPiB7Ci0gICAgc3Rh
dGljIGRvdWJsZSBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKKyAgICBzdGF0aWMgV2FsbFRpbWUgY29udmVydChKU0M6
OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgdmFsdWUp
CiAgICAgewogICAgICAgICByZXR1cm4gdmFsdWVUb0RhdGUobGV4aWNhbEdsb2JhbE9iamVjdCwg
dmFsdWUpOwogICAgIH0KQEAgLTQ2LDcgKzQ3LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgSlNDb252
ZXJ0ZXI8SURMRGF0ZT4gewogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0dsb2JhbE9i
amVjdCA9IGZhbHNlOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHRha2luZyBhIEpT
RE9NR2xvYmFsT2JqZWN0IGFuZCBwYXNzaW5nIGl0IHRvIGpzRGF0ZS4KLSAgICBzdGF0aWMgSlND
OjpKU1ZhbHVlIGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgZG91YmxlIHZhbHVlKQorICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgY29udmVydChKU0M6OkpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBXYWxsVGltZSB2YWx1ZSkKICAgICB7
CiAgICAgICAgIHJldHVybiBqc0RhdGUobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0
VmFsdWUuY3BwCmluZGV4IDBiYWZhNzk4MzA5YzE2NTBjNjQwMmJkMDZlZWE3MzAxMTk2ZTNlMzMu
LjBhYjkxMTVjNDU1YzIyNjE0YzM1MTU0NjAzM2VlMDdmYmM5MzJiOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAt
MTYwNCw3ICsxNjA0LDEwIEBAIHByaXZhdGU6CiAgICAgICAgIHdyaXRlKGZpbGUudXJsKCkuc3Ry
aW5nKCkpOwogICAgICAgICB3cml0ZShmaWxlLnR5cGUoKSk7CiAgICAgICAgIHdyaXRlKGZpbGUu
bmFtZSgpKTsKLSAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8ZG91YmxlPihmaWxlLmxhc3RNb2Rp
ZmllZE92ZXJyaWRlKCkudmFsdWVfb3IoLTEpKSk7CisgICAgICAgIGlmIChhdXRvIGxhc3RNb2Rp
ZmllZE92ZXJyaWRlID0gZmlsZS5sYXN0TW9kaWZpZWRPdmVycmlkZSgpKQorICAgICAgICAgICAg
d3JpdGUobGFzdE1vZGlmaWVkT3ZlcnJpZGUtPnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNv
bmRzKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB3cml0ZShXYWxsVGltZSgtMV9zKSk7
CiAgICAgfQogCiAgICAgdm9pZCB3cml0ZShQcmVkZWZpbmVkQ29sb3JTcGFjZSBjb2xvclNwYWNl
KQpAQCAtMjU0OSwxMyArMjU1MiwxMyBAQCBwcml2YXRlOgogICAgICAgICBDYWNoZWRTdHJpbmdS
ZWYgbmFtZTsKICAgICAgICAgaWYgKCFyZWFkU3RyaW5nRGF0YShuYW1lKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgc3RkOjpvcHRpb25hbDxpbnQ2NF90PiBvcHRpb25hbExh
c3RNb2RpZmllZDsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gb3B0aW9uYWxMYXN0
TW9kaWZpZWQ7CiAgICAgICAgIGlmIChtX3ZlcnNpb24gPiA2KSB7CiAgICAgICAgICAgICBkb3Vi
bGUgbGFzdE1vZGlmaWVkOwogICAgICAgICAgICAgaWYgKCFyZWFkKGxhc3RNb2RpZmllZCkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKGxhc3RNb2RpZmll
ZCA+PSAwKQotICAgICAgICAgICAgICAgIG9wdGlvbmFsTGFzdE1vZGlmaWVkID0gbGFzdE1vZGlm
aWVkOworICAgICAgICAgICAgICAgIG9wdGlvbmFsTGFzdE1vZGlmaWVkID0gV2FsbFRpbWU6OmZy
b21SYXdTZWNvbmRzKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobGFzdE1vZGlmaWVkKS52YWx1
ZSgpKTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIElmIHRoZSBibG9iIFVSTCBmb3IgdGhpcyBm
aWxlIGhhcyBhbiBhc3NvY2lhdGVkIGJsb2IgZmlsZSBwYXRoLCBwcmVmZXIgdGhhdCBvbmUgb3Zl
ciB0aGUgImJ1aWx0LWluIiBwYXRoLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKaW5kZXggOTc0NGIw
MTU3YWUxMWMxMTBjZDhjMjg5ZTUyN2NiZmEwMmMxMGU5MS4uYjNmMjU4MmU2MjA5YmY3NjRjOTM4
YmViYTYxYjAyMzliMzg3Y2Y4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9G
aWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCkBAIC02Nyw3ICs2
Nyw3IEBAIEZpbGU6OkZpbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgVVJMJiYg
dXJsLCBTdHJpbmcmJiB0eXBlLCBTdHJpbmcmJiBwCiB7CiB9CiAKLUZpbGU6OkZpbGUoRGVzZXJp
YWxpemF0aW9uQ29udHJ1Y3RvciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29u
c3QgU3RyaW5nJiBwYXRoLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4mIGxhc3RNb2RpZmll
ZCkKK0ZpbGU6OkZpbGUoRGVzZXJpYWxpemF0aW9uQ29udHJ1Y3RvciwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
V2FsbFRpbWU+JiBsYXN0TW9kaWZpZWQpCiAgICAgOiBCbG9iKGRlc2VyaWFsaXphdGlvbkNvbnRy
dWN0b3IsIGNvbnRleHQsIHVybCwgdHlwZSwgeyB9LCBwYXRoKQogICAgICwgbV9wYXRoKHBhdGgp
CiAgICAgLCBtX25hbWUobmFtZSkKQEAgLTc4LDcgKzc4LDcgQEAgRmlsZTo6RmlsZShEZXNlcmlh
bGl6YXRpb25Db250cnVjdG9yLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25z
dCBTdHIKIEZpbGU6OkZpbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgVmVjdG9y
PEJsb2JQYXJ0VmFyaWFudD4mJiBibG9iUGFydFZhcmlhbnRzLCBjb25zdCBTdHJpbmcmIGZpbGVu
YW1lLCBjb25zdCBQcm9wZXJ0eUJhZyYgcHJvcGVydHlCYWcpCiAgICAgOiBCbG9iKGNvbnRleHQs
IFdURk1vdmUoYmxvYlBhcnRWYXJpYW50cyksIHByb3BlcnR5QmFnKQogICAgICwgbV9uYW1lKGZp
bGVuYW1lKQotICAgICwgbV9sYXN0TW9kaWZpZWREYXRlT3ZlcnJpZGUocHJvcGVydHlCYWcubGFz
dE1vZGlmaWVkLnZhbHVlX29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLm1p
bGxpc2Vjb25kcygpKSkKKyAgICAsIG1fbGFzdE1vZGlmaWVkRGF0ZU92ZXJyaWRlKHByb3BlcnR5
QmFnLmxhc3RNb2RpZmllZCA/IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9t
TWlsbGlzZWNvbmRzKCpwcm9wZXJ0eUJhZy5sYXN0TW9kaWZpZWQpLnZhbHVlKCkpIDogV2FsbFRp
bWU6Om5vdygpKQogewogfQogCkBAIC05OSwyMyArOTksMjMgQEAgRmlsZTo6RmlsZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBGaWxlJiBmaWxlLCBjb25zdCBTdHJpbmcm
IG5hbWUKIHsKIH0KIAotaW50NjRfdCBGaWxlOjpsYXN0TW9kaWZpZWQoKSBjb25zdAorV2FsbFRp
bWUgRmlsZTo6bGFzdE1vZGlmaWVkKCkgY29uc3QKIHsKICAgICBpZiAobV9sYXN0TW9kaWZpZWRE
YXRlT3ZlcnJpZGUpCiAgICAgICAgIHJldHVybiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZS52
YWx1ZSgpOwogCi0gICAgaW50NjRfdCByZXN1bHQ7Ci0KICAgICAvLyBGSVhNRTogVGhpcyBkb2Vz
IHN5bmMtaS9vIG9uIHRoZSBtYWluIHRocmVhZCBhbmQgYWxzbyByZWNhbGN1bGF0ZXMgZXZlcnkg
dGltZSB0aGUgbWV0aG9kIGlzIGNhbGxlZC4KICAgICAvLyBUaGUgaS9vIHNob3VsZCBiZSBwZXJm
b3JtZWQgb24gYSBiYWNrZ3JvdW5kIHRocmVhZCwKICAgICAvLyBhbmQgdGhlIHJlc3VsdCBzaG91
bGQgYmUgY2FjaGVkIGFsb25nIHdpdGggYW4gYXN5bmNocm9ub3VzIG1vbml0b3IgZm9yIGNoYW5n
ZXMgdG8gdGhlIGZpbGUuCi0gICAgYXV0byBtb2RpZmljYXRpb25UaW1lID0gRmlsZVN5c3RlbTo6
ZmlsZU1vZGlmaWNhdGlvblRpbWUobV9wYXRoKTsKLSAgICBpZiAobW9kaWZpY2F0aW9uVGltZSkK
LSAgICAgICAgcmVzdWx0ID0gbW9kaWZpY2F0aW9uVGltZS0+c2Vjb25kc1NpbmNlRXBvY2goKS5t
aWxsaXNlY29uZHNBczxpbnQ2NF90PigpOwotICAgIGVsc2UKLSAgICAgICAgcmVzdWx0ID0gV2Fs
bFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzQXM8aW50NjRfdD4o
KTsKKyAgICBpZiAoYXV0byBtb2RpZmljYXRpb25UaW1lID0gRmlsZVN5c3RlbTo6ZmlsZU1vZGlm
aWNhdGlvblRpbWUobV9wYXRoKSkKKyAgICAgICAgcmV0dXJuICptb2RpZmljYXRpb25UaW1lOwog
Ci0gICAgcmV0dXJuIHRpbWVDbGlwKHJlc3VsdCk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpub3co
KTsKK30KKworaW50NjRfdCBGaWxlOjpsYXN0TW9kaWZpZWRGb3JCaW5kaW5ncygpIGNvbnN0Cit7
CisgICAgcmV0dXJuIHRpbWVDbGlwKGxhc3RNb2RpZmllZCgpLnNlY29uZHNTaW5jZUVwb2NoKCku
bWlsbGlzZWNvbmRzQXM8aW50NjRfdD4oKSk7CiB9CiAKIHZvaWQgRmlsZTo6Y29tcHV0ZU5hbWVB
bmRDb250ZW50VHlwZShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgbmFtZU92ZXJy
aWRlLCBTdHJpbmcmIGVmZmVjdGl2ZU5hbWUsIFN0cmluZyYgZWZmZWN0aXZlQ29udGVudFR5cGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvRmlsZS5oCmluZGV4IGM4ODAzMmI1ZWE3NzVhOGJmMjlkZGRiM2Q3M2ExY2Rh
NDA0NDE3MmEuLjRkYTczNGZiNmQ4MGFlNGUxMzYxYmJiYWU3ZjhlZmE2OTQyOTQwZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Yy5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+Cisj
aW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUxLDcgKzUyLDcgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gZmlsZTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPEZpbGU+IGRlc2VyaWFsaXpl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgcGF0aCwgY29u
c3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBzdGQ6Om9wdGlvbmFsPGludDY0X3Q+JiBsYXN0TW9kaWZpZWQgPSBzdGQ6Om51bGxvcHQp
CisgICAgc3RhdGljIFJlZjxGaWxlPiBkZXNlcmlhbGl6ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFVSTCYgc3JjVVJMLCBjb25zdCBT
dHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxXYWxs
VGltZT4mIGxhc3RNb2RpZmllZCA9IHN0ZDo6bnVsbG9wdCkKICAgICB7CiAgICAgICAgIGF1dG8g
ZmlsZSA9IGFkb3B0UmVmKCpuZXcgRmlsZShkZXNlcmlhbGl6YXRpb25Db250cnVjdG9yLCBjb250
ZXh0LCBwYXRoLCBzcmNVUkwsIHR5cGUsIG5hbWUsIGxhc3RNb2RpZmllZCkpOwogICAgICAgICBm
aWxlLT5zdXNwZW5kSWZOZWVkZWQoKTsKQEAgLTgwLDggKzgxLDEwIEBAIHB1YmxpYzoKICAgICBj
b25zdCBTdHJpbmcmIHJlbGF0aXZlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVsYXRpdmVQYXRo
OyB9CiAgICAgdm9pZCBzZXRSZWxhdGl2ZVBhdGgoY29uc3QgU3RyaW5nJiByZWxhdGl2ZVBhdGgp
IHsgbV9yZWxhdGl2ZVBhdGggPSByZWxhdGl2ZVBhdGg7IH0KICAgICBjb25zdCBTdHJpbmcmIG5h
bWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCBpbnQ2NF90
IGxhc3RNb2RpZmllZCgpIGNvbnN0OyAvLyBOdW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlIEVw
b2NoLgotICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4mIGxhc3RNb2RpZmllZE92ZXJy
aWRlKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0TW9kaWZpZWREYXRlT3ZlcnJpZGU7IH0gLy8gTnVt
YmVyIG9mIG1pbGxpc2Vjb25kcyBzaW5jZSBFcG9jaC4KKyAgICBXYWxsVGltZSBsYXN0TW9kaWZp
ZWQoKSBjb25zdDsKKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiYgbGFzdE1vZGlm
aWVkT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZTsg
fQorCisgICAgV0VCQ09SRV9FWFBPUlQgaW50NjRfdCBsYXN0TW9kaWZpZWRGb3JCaW5kaW5ncygp
IGNvbnN0OyAvLyBOdW1iZXIgb2YgbWlsbGlzZWNvbmRzIHNpbmNlIEVwb2NoLgogCiAgICAgc3Rh
dGljIFN0cmluZyBjb250ZW50VHlwZUZvckZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKTsKIApAQCAt
OTgsNyArMTAxLDcgQEAgcHJpdmF0ZToKICAgICBGaWxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBCbG9iJiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICBGaWxlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBjb25zdCBGaWxlJiwgY29uc3QgU3RyaW5nJiBuYW1lKTsKIAotICAgIEZp
bGUoRGVzZXJpYWxpemF0aW9uQ29udHJ1Y3RvciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNv
bnN0IFN0cmluZyYgcGF0aCwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlwZSwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6Om9wdGlvbmFsPGludDY0X3Q+JiBsYXN0TW9k
aWZpZWQpOworICAgIEZpbGUoRGVzZXJpYWxpemF0aW9uQ29udHJ1Y3RvciwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0
IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdh
bGxUaW1lPiYgbGFzdE1vZGlmaWVkKTsKIAogICAgIHN0YXRpYyB2b2lkIGNvbXB1dGVOYW1lQW5k
Q29udGVudFR5cGUoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIG5hbWVPdmVycmlk
ZSwgU3RyaW5nJiBlZmZlY3RpdmVOYW1lLCBTdHJpbmcmIGVmZmVjdGl2ZUNvbnRlbnRUeXBlKTsK
ICNpZiBFTkFCTEUoRklMRV9SRVBMQUNFTUVOVCkKQEAgLTExMiw3ICsxMTUsNyBAQCBwcml2YXRl
OgogICAgIFN0cmluZyBtX3JlbGF0aXZlUGF0aDsKICAgICBTdHJpbmcgbV9uYW1lOwogCi0gICAg
c3RkOjpvcHRpb25hbDxpbnQ2NF90PiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZTsKKyAgICBz
dGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZTsKICAgICBt
dXRhYmxlIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9pc0RpcmVjdG9yeTsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0ZpbGUuaWRsCmluZGV4IGY1ZWI1Mzg5Y2JmMjJkMmI1NmMwZmI3OGZjYzZjOTRmNWY3YmMz
OWMuLjZhMTJlYTA3MzFhODg1YmZjNTQ3M2ZiZmU2MjUyMmMxZmM0MjAzMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9GaWxlLmlkbApAQCAtMzQsNyArMzQsNyBAQCB0eXBlZGVmIChCdWZmZXJTb3VyY2Ugb3Ig
QmxvYiBvciBVU1ZTdHJpbmcpIEJsb2JQYXJ0OwogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0XSBjb25zdHJ1Y3RvcihzZXF1ZW5jZTxCbG9iUGFydD4gZmlsZUJpdHMsIFVTVlN0
cmluZyBmaWxlTmFtZSwgb3B0aW9uYWwgRmlsZVByb3BlcnR5QmFnIG9wdGlvbnMpOwogCiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBsb25nIGxvbmcgbGFzdE1vZGlmaWVkOworICAgIFtJbXBsZW1lbnRlZEFzPWxhc3RNb2RpZmll
ZEZvckJpbmRpbmdzXSByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyBsb25nIGxhc3RNb2RpZmllZDsK
IAogICAgIC8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vZW50cmllcy1hcGkvI2ZpbGUtaW50ZXJm
YWNlCiAgICAgW0VuYWJsZWRBdFJ1bnRpbWU9RGlyZWN0b3J5VXBsb2FkRW5hYmxlZCwgSW1wbGVt
ZW50ZWRBcz1yZWxhdGl2ZVBhdGhdIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgd2Via2l0
UmVsYXRpdmVQYXRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwCmluZGV4IDU2MGE0Y2Y5NmI2OGEyMWI3ODMyODY4NDFjMDU0MDJiYzlhZDYz
NGUuLjZjMzgxYWE3MDFjOTQwNzI2NjFjZTBlMTUyZjI1OTFiNTQ3MTQ5OTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTEyNywx
NSArMTI3LDE1IEBAIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6fkJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZSgpCiAgICAgY2xvc2VEYXRlVGltZUNob29zZXIoKTsKIH0KIAotZG91YmxlIEJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAorV2FsbFRpbWUgQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHZh
bHVlQXNEb3VibGUoKTsKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29u
ZHM6OmZyb21NaWxsaXNlY29uZHModmFsdWVBc0RvdWJsZSgpKS52YWx1ZSgpKTsKIH0KIAotRXhj
ZXB0aW9uT3I8dm9pZD4gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShk
b3VibGUgdmFsdWUpIGNvbnN0CitFeGNlcHRpb25Pcjx2b2lkPiBCYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGU6OnNldFZhbHVlQXNEYXRlKFdhbGxUaW1lIHZhbHVlKSBjb25zdAogewogICAgIEFTU0VS
VChlbGVtZW50KCkpOwotICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUoc2VyaWFsaXplV2l0aE1pbGxp
c2Vjb25kcyh2YWx1ZSkpOworICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUoc2VyaWFsaXplV2l0aE1p
bGxpc2Vjb25kcyh2YWx1ZS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKSk7CiAg
ICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmgKaW5kZXggYzcyOWM5MjJhYjM4YmE4ZDk0ZDQ3NDQ1NzMzYWRhMzBjNTk1
ZTI3Ni4uNjg5MTA1YjM2NTFjNjNiYjlmZmRhYTFlOWNkMDg0MWMxZDA2NDNhMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC0xMDIsOCAr
MTAyLDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgZmluYWw7
CiAgICAgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAg
ICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZp
ZWxkRXZlbnRCZWhhdmlvcikgZmluYWw7Ci0gICAgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoZG91YmxlKSBj
b25zdCBvdmVycmlkZTsKKyAgICBXYWxsVGltZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IG92ZXJyaWRl
OworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKFdhbGxUaW1lKSBjb25zdCBv
dmVycmlkZTsKICAgICBkb3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0IGZpbmFsOwogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEZWNpbWFsKGNvbnN0IERlY2ltYWwmLCBUZXh0Rmll
bGRFdmVudEJlaGF2aW9yKSBjb25zdCBmaW5hbDsKICAgICBEZWNpbWFsIGRlZmF1bHRWYWx1ZUZv
clN0ZXBVcCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5jcHAKaW5kZXggNTk4YThiYmRmNzRmNTdiMGY3ZmQxNWU5NzAwZGJh
Mzg2YmMyMTRlYS4uZGIxNmRhN2U0OTliMWU5YmI3ODM2OTcxMzE2YmVlOThhNmJkZTNmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCkBAIC02
MiwxMyArNjIsMTMgQEAgRGF0ZUNvbXBvbmVudHNUeXBlIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6
OmRhdGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gRGF0ZUNvbXBvbmVudHNUeXBlOjpEYXRlVGlt
ZUxvY2FsOwogfQogCi1kb3VibGUgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6dmFsdWVBc0RhdGUo
KSBjb25zdAorV2FsbFRpbWUgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBj
b25zdAogewogICAgIC8vIHZhbHVlQXNEYXRlIGRvZXNuJ3Qgd29yayBmb3IgdGhlIGRhdGV0aW1l
LWxvY2FsIHR5cGUgYWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZC4KLSAgICByZXR1cm4gRGF0ZUNv
bXBvbmVudHM6OmludmFsaWRNaWxsaXNlY29uZHMoKTsKKyAgICByZXR1cm4gV2FsbFRpbWU6Om5h
bigpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRW
YWx1ZUFzRGF0ZShkb3VibGUgdmFsdWUpIGNvbnN0CitFeGNlcHRpb25Pcjx2b2lkPiBEYXRlVGlt
ZUxvY2FsSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShXYWxsVGltZSB2YWx1ZSkgY29uc3QKIHsK
ICAgICAvLyB2YWx1ZUFzRGF0ZSBkb2Vzbid0IHdvcmsgZm9yIHRoZSBkYXRldGltZS1sb2NhbCB0
eXBlIGFjY29yZGluZyB0byB0aGUgc3RhbmRhcmQuCiAgICAgcmV0dXJuIElucHV0VHlwZTo6c2V0
VmFsdWVBc0RhdGUodmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRl
VGltZUxvY2FsSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuaAppbmRleCAxNjZmNTAwMDQxNmVjNDY3YTVmZTk5MzQ3YjdmYzlhMjM5MjQxMjg3
Li41NjBmYjY0ZDAwYTJiYThkMjc0MjFiZmIxMDFiNWMwYTcyNTIxZGMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaApAQCAtNDcsOCArNDcsOCBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgp
IGNvbnN0IGZpbmFsOwogICAgIERhdGVDb21wb25lbnRzVHlwZSBkYXRlVHlwZSgpIGNvbnN0IGZp
bmFsOwotICAgIGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IGZpbmFsOwotICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKGRvdWJsZSkgY29uc3QgZmluYWw7CisgICAgV2FsbFRp
bWUgdmFsdWVBc0RhdGUoKSBjb25zdCBmaW5hbDsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRW
YWx1ZUFzRGF0ZShXYWxsVGltZSkgY29uc3QgZmluYWw7CiAgICAgU3RlcFJhbmdlIGNyZWF0ZVN0
ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8
RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhTdHJpbmdWaWV3KSBjb25zdCBm
aW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPERhdGVDb21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRv
RGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDBiYmFmMjI0ZjJmNTFkMzY1ZDQzNWU0YTM0ZmU0YTYz
YTY2NDU3YzAuLjlhNzVhYWRkNzgyMjk5ODFiMjQ0OWY0NDJlMDJmMzgyYzdhZWU1MjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTExMSwxMiArMTExMSwx
MiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlSW50ZXJuYWwoY29uc3QgU3RyaW5n
JiBzYW5pdGl6ZWRWYWx1ZSwgVGV4dEZpZWxkRQogICAgIHVwZGF0ZVZhbGlkaXR5KCk7CiB9CiAK
LWRvdWJsZSBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZSgpIGNvbnN0CitXYWxsVGltZSBI
VE1MSW5wdXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW5w
dXRUeXBlLT52YWx1ZUFzRGF0ZSgpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRF
bGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUgdmFsdWUpCitFeGNlcHRpb25Pcjx2b2lkPiBI
VE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShXYWxsVGltZSB2YWx1ZSkKIHsKICAgICBy
ZXR1cm4gbV9pbnB1dFR5cGUtPnNldFZhbHVlQXNEYXRlKHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggMTk5ODQ0Y2ZhN2M1NzM1Y2I0ZDcyMzBlYjVk
M2RiOTBmYTU5M2Y1Yi4uNzUwNmMyODY0NTQ3YWY4NWRkODkyZWJlMDEzMDcwMWIxYjZmODUwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTE4NCw4ICsxODQsOCBA
QCBwdWJsaWM6CiAgICAgLy8gVGhlIHZhbHVlIHdoaWNoIGlzIGRyYXduIGJ5IGEgcmVuZGVyZXIu
CiAgICAgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQg
ZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoZG91YmxlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBXYWxs
VGltZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFZhbHVlQXNEYXRlKFdhbGxUaW1lKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGRv
dWJsZSB2YWx1ZUFzTnVtYmVyKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0VmFsdWVBc051bWJlcihkb3VibGUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3Ig
PSBEaXNwYXRjaE5vRXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAKaW5kZXggNTE3MWI5Y2RjNzg5MzE3MWUyMWU1ZjRiZjU1MDE3ZWY5NDRhYzc5NS4uZWM4MzUx
YzA5Nzc0OGIxNDlhOTQ0MzliYWI2OTU3OGVlOTAwMWEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMTExLDExICsxMTExLDEyIEBAIFN0cmluZyBIVE1M
TWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAog
ICAgIHJldHVybiBjYW5QbGF5OwogfQogCi1kb3VibGUgSFRNTE1lZGlhRWxlbWVudDo6Z2V0U3Rh
cnREYXRlKCkgY29uc3QKK1dhbGxUaW1lIEhUTUxNZWRpYUVsZW1lbnQ6OmdldFN0YXJ0RGF0ZSgp
IGNvbnN0CiB7CiAgICAgaWYgKCFtX3BsYXllcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7Ci0gICAgcmV0dXJuIG1fcGxheWVyLT5nZXRT
dGFydERhdGUoKS50b0RvdWJsZSgpOworICAgICAgICByZXR1cm4gV2FsbFRpbWU6Om5hbigpOwor
CisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhtX3BsYXllci0+Z2V0U3RhcnRE
YXRlKCkudG9Eb3VibGUoKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZCgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IDY5NTY2OTQ5NjMxMGVmOTEw
OGI5NTZmZGE0ODIxNDMwMTQ5NzBlY2IuLjZiNDA0YWE4NzM1Mjc3N2I0NzE4MzVmMTIwZmYxNTdj
ZWVkODRhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCkBAIC00Niw2
ICs0Niw3IEBACiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dl
ckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9PYnNlcnZlci5oPgorI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKICNpZiBVU0UoQVVESU9fU0VTU0lP
TikgJiYgUExBVEZPUk0oTUFDKQpAQCAtMjQyLDcgKzI0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEN1cnJlbnRUaW1lV2l0aFRvbGVyYW5jZShkb3VibGUsIGRvdWJsZSB0b2xlcmFuY2VCZWZv
cmUsIGRvdWJsZSB0b2xlcmFuY2VBZnRlcik7CiAgICAgZG91YmxlIGN1cnJlbnRUaW1lRm9yQmlu
ZGluZ3MoKSBjb25zdCB7IHJldHVybiBjdXJyZW50VGltZSgpOyB9CiAgICAgV0VCQ09SRV9FWFBP
UlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q3VycmVudFRpbWVGb3JCaW5kaW5ncyhkb3VibGUpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJsZSBnZXRTdGFydERhdGUoKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBXYWxsVGltZSBnZXRTdGFydERhdGUoKSBjb25zdDsKICAgICBXRUJDT1JFX0VY
UE9SVCBkb3VibGUgZHVyYXRpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9S
VCBib29sIHBhdXNlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0UGF1c2VkKGJvb2wp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IGViMGU4NDFhZDlmYzAwYTYyYTJkOTQ2
MzBjZmI3MTEwMGY0ZTA2MjguLmNmZWM2Nzk3NDE1NjZjZTYwZmRjMzQyOWUyMmQ0Mjc2Mzg4Mzc1
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTIwNCwxMiArMjA0LDEyIEBAIGJv
b2wgSW5wdXRUeXBlOjphcHBlbmRGb3JtRGF0YShET01Gb3JtRGF0YSYgZm9ybURhdGEpIGNvbnN0
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWRvdWJsZSBJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKCkg
Y29uc3QKK1dhbGxUaW1lIElucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAogewotICAgIHJl
dHVybiBEYXRlQ29tcG9uZW50czo6aW52YWxpZE1pbGxpc2Vjb25kcygpOworICAgIHJldHVybiBX
YWxsVGltZTo6bmFuKCk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IElucHV0VHlwZTo6c2V0VmFs
dWVBc0RhdGUoZG91YmxlKSBjb25zdAorRXhjZXB0aW9uT3I8dm9pZD4gSW5wdXRUeXBlOjpzZXRW
YWx1ZUFzRGF0ZShXYWxsVGltZSkgY29uc3QKIHsKICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGRhMWRlYmNi
NmI5ZmMwNTJmZDYzYjU0Yjk2MjBjMjBhNzA0MzMyNjguLmUwZWFhODExZGRiNDE1MTdiMjg3M2Fi
NjZhMzc2MjJmYjY2ODdlZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMjIwLDggKzIy
MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3Ry
aW5nJik7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRoZSB2
YWx1ZSBhdHRyaWJ1dGUuCiAgICAgdmlydHVhbCBTdHJpbmcgZmFsbGJhY2tWYWx1ZSgpIGNvbnN0
OyAvLyBDaGVja2VkIGxhc3QsIGlmIGJvdGggaW50ZXJuYWwgc3RvcmFnZSBhbmQgdmFsdWUgYXR0
cmlidXRlIGFyZSBtaXNzaW5nLgogICAgIHZpcnR1YWwgU3RyaW5nIGRlZmF1bHRWYWx1ZSgpIGNv
bnN0OyAvLyBDaGVja2VkIGFmdGVyIGV2ZW4gZmFsbGJhY2tWYWx1ZSwgb25seSB3aGVuIHRoZSB2
YWx1ZVdpdGhEZWZhdWx0IGZ1bmN0aW9uIGlzIGNhbGxlZC4KLSAgICB2aXJ0dWFsIGRvdWJsZSB2
YWx1ZUFzRGF0ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFs
dWVBc0RhdGUoZG91YmxlKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdhbGxUaW1lIHZhbHVlQXNEYXRl
KCkgY29uc3Q7CisgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0ZShX
YWxsVGltZSkgY29uc3Q7CiAgICAgdmlydHVhbCBkb3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0
OwogICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RvdWJsZShkb3VibGUs
IFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGNvbnN0OwogICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0VmFsdWVBc0RlY2ltYWwoY29uc3QgRGVjaW1hbCYsIFRleHRGaWVsZEV2ZW50QmVo
YXZpb3IpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCA4
OTE4ZWUxYzljNDBkYjQwNTQ5Mjc0ZTFiZGJkMzU2NjNkNDQ0ZDI3Li4xOTgzYzQwOTk4ZjA2NTdi
MTdkMWQ4MGRlYjI4MGJkNjJlNzQ1ODExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L01vbnRoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRU
eXBlLmNwcApAQCAtNjQsMTUgKzY0LDE1IEBAIERhdGVDb21wb25lbnRzVHlwZSBNb250aElucHV0
VHlwZTo6ZGF0ZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBEYXRlQ29tcG9uZW50c1R5cGU6Ok1v
bnRoOwogfQogCi1kb3VibGUgTW9udGhJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKK1dh
bGxUaW1lIE1vbnRoSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJU
KGVsZW1lbnQoKSk7CiAgICAgYXV0byBkYXRlID0gcGFyc2VUb0RhdGVDb21wb25lbnRzKGVsZW1l
bnQoKS0+dmFsdWUoKSk7CiAgICAgaWYgKCFkYXRlKQotICAgICAgICByZXR1cm4gRGF0ZUNvbXBv
bmVudHM6OmludmFsaWRNaWxsaXNlY29uZHMoKTsKKyAgICAgICAgcmV0dXJuIFdhbGxUaW1lOjpu
YW4oKTsKICAgICBkb3VibGUgbXNlYyA9IGRhdGUtPm1pbGxpc2Vjb25kc1NpbmNlRXBvY2goKTsK
ICAgICBBU1NFUlQoc3RkOjppc2Zpbml0ZShtc2VjKSk7Ci0gICAgcmV0dXJuIG1zZWM7CisgICAg
cmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRz
KG1zZWMpLnZhbHVlKCkpOwogfQogCiBTdHJpbmcgTW9udGhJbnB1dFR5cGU6OnNlcmlhbGl6ZVdp
dGhNaWxsaXNlY29uZHMoZG91YmxlIHZhbHVlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElu
cHV0VHlwZS5oCmluZGV4IGRhNGM1YmM4YTQzZTFmMDQ2OGY2ODA2ZDk1YjRmMWY0MDc1ODI3OWMu
LjU3Mjc4YjVkYTA3Mzg1MjI0MWYxYTE4NzliMGExNjgxYTFlNDZlNTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01vbnRoSW5wdXRUeXBlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsK
ICAgICBEYXRlQ29tcG9uZW50c1R5cGUgZGF0ZVR5cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBk
b3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBXYWxsVGltZSB2YWx1ZUFz
RGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFN0cmluZyBzZXJpYWxpemVXaXRoTWlsbGlzZWNv
bmRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgRGVjaW1hbCBwYXJzZVRvTnVtYmVyKGNv
bnN0IFN0cmluZyYsIGNvbnN0IERlY2ltYWwmKSBjb25zdCBvdmVycmlkZTsKICAgICBEZWNpbWFs
IGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50
LmNwcAppbmRleCA2Mjg2YjY1MjEyNmUwZGQxMzNkMmMyNGU0N2ZjZDdjZGM3Mzc2YTczLi4zNjg3
OWVmZWZjZjhmNWM2YjhhY2NjZDZmNWQ5NWY2NTk0NjFmZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50
LmNwcApAQCAtMjgyLDcgKzI4Miw3IEBAIHN0YXRpYyBSZWZQdHI8SURCS2V5PiBpZGJLZXlGcm9t
SW5zcGVjdG9yT2JqZWN0KFJlZjxKU09OOjpPYmplY3Q+JiYga2V5KQogICAgICAgICBhdXRvIGRh
dGUgPSBrZXktPmdldERvdWJsZShQcm90b2NvbDo6SW5kZXhlZERCOjpLZXk6OmRhdGVLZXkpOwog
ICAgICAgICBpZiAoIWRhdGUpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAg
cmV0dXJuIElEQktleTo6Y3JlYXRlRGF0ZSgqZGF0ZSk7CisgICAgICAgIHJldHVybiBJREJLZXk6
OmNyZWF0ZURhdGUoV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29uZHM6OmZyb21NaWxsaXNl
Y29uZHMoKmRhdGUpLnZhbHVlKCkpKTsKICAgICB9CiAKICAgICBjYXNlIFByb3RvY29sOjpJbmRl
eGVkREI6OktleTo6VHlwZTo6QXJyYXk6IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0RPTS9ET01GaWxlLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUZp
bGUubW0KaW5kZXggZDU4ZmQwNTYzNTcxYjY1NjFiMmQ0NzZmNmEyYTBjZjQwYTlmMWQwMi4uOWFj
MzMyZDdhYTA3Mjc4ZmUyMWZhYmZjZGFmMmEwODFiZjJkM2FlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUZpbGUubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvRE9NL0RPTUZpbGUubW0KQEAgLTQ4LDcgKzQ4LDcgQEAgLSAoTlNTdHJpbmcgKiluYW1l
CiAtIChsb25nIGxvbmcpbGFzdE1vZGlmaWVkCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT5sYXN0TW9kaWZpZWQoKTsKKyAgICBy
ZXR1cm4gSU1QTC0+bGFzdE1vZGlmaWVkRm9yQmluZGluZ3MoKTsKIH0KIAogQGVuZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUhUTUxNZWRpYUVsZW1lbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbQppbmRl
eCAzZjJiZWUzY2RjYWI5ZWQ2YjkwMzJmZjE4MDBiMzRiMzA3OWY2NjZmLi45YWUxN2NiMTUwZDk4
MGVmOGI2ZmU4MjlmMTRjYmU1Y2M4NGE1N2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAj
aW1wb3J0ICJET01IVE1MTWVkaWFFbGVtZW50LmgiCiAKKyNpbXBvcnQgIkRPTUludGVybmFsLmgi
CiAjaW1wb3J0ICJET01NZWRpYUVycm9ySW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5vZGVJbnRl
cm5hbC5oIgogI2ltcG9ydCAiRE9NVGltZVJhbmdlc0ludGVybmFsLmgiCkBAIC0zMTMsNyArMzE0
LDcgQEAgLSAoTlNTdHJpbmcgKiljYW5QbGF5VHlwZTooTlNTdHJpbmcgKil0eXBlCiAtIChOU1Rp
bWVJbnRlcnZhbClnZXRTdGFydERhdGUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPmdldFN0YXJ0RGF0ZSgpOworICAgIHJldHVy
biBraXQoSU1QTC0+Z2V0U3RhcnREYXRlKCkpOwogfQogCiAtICh2b2lkKXBsYXkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01JbnRlcm5hbC5oIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFsLmgKaW5kZXggOWU3MWM0YmQ1M2I0MmM5NmJi
OGJiMDA0ZjMwM2IwNzIwYTBlM2Y3OC4uYmE1YjJlNjNkOWUwNjg3OTkzMzU3MWMxOTdhYjI3MWJk
ZDcyZGVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVy
bmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFsLmgKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkRPTU9iamVjdC5oIgogI2ltcG9ydCAiRE9NWFBhdGhO
U1Jlc29sdmVyLmgiCiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgorI2ltcG9ydCA8d3RmL1dhbGxU
aW1lLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEpTT2JqZWN0OwpAQCAtNzcsMTIg
Kzc4LDEyIEBAIFdlYkNvcmU6Ok5vZGVGaWx0ZXIqIGNvcmUoRE9NTm9kZUZpbHRlciAqKTsKIERP
TU5hdGl2ZVhQYXRoTlNSZXNvbHZlciAqa2l0KFdlYkNvcmU6OlhQYXRoTlNSZXNvbHZlciopOwog
V2ViQ29yZTo6WFBhdGhOU1Jlc29sdmVyKiBjb3JlKERPTU5hdGl2ZVhQYXRoTlNSZXNvbHZlciAq
KTsKIAotaW5saW5lIE5TVGltZUludGVydmFsIGtpdChkb3VibGUgbXNTaW5jZUVwb2NoKQoraW5s
aW5lIE5TVGltZUludGVydmFsIGtpdChXYWxsVGltZSB0aW1lKQogewotICAgIHJldHVybiBtc1Np
bmNlRXBvY2ggLyAxMDAwLjAgLSBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MDsKKyAgICByZXR1cm4g
dGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgLSBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3
MDsKIH0KIAotaW5saW5lIGRvdWJsZSBjb3JlKE5TVGltZUludGVydmFsIHNlYykKK2lubGluZSBX
YWxsVGltZSBjb3JlKE5TVGltZUludGVydmFsIHNlYykKIHsKLSAgICByZXR1cm4gc2VjICogMTAw
MC4wICsgTlNUaW1lSW50ZXJ2YWxTaW5jZTE5NzA7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9t
UmF3U2Vjb25kcyhzZWMgKyBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MCk7CiB9Cg==
</data>
<flag name="commit-queue"
          id="471180"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445889</attachid>
            <date>2021-12-03 12:39:40 -0800</date>
            <delta_ts>2021-12-03 14:00:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>233781.diff</filename>
            <type>text/plain</type>
            <size>46491</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzYzViZDk2ZWMwMjJiNDkwYTcyN2NjYTAyZDFlZTcyNWE5ZDYyZTFiLi43
MjgzNjBmMGY3NzY0NWE5OTA2YTI1NjcyNmI4NDg3ZTgyMGY1N2Y4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsODggQEAKKzIwMjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENoYW5nZSBJREwgYERhdGVgIHRvIGJlIGJhY2tlZCBieSBgV2FsbFRpbWVg
IHRvIGF2b2lkIGNvbmZ1c2lvbiB3aGVuIGNvbnZlcnRpbmcgdG8gbmF0aXZlIGRhdGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3ODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKUyBgRGF0ZWAgaXMg
bWlsbGlzZWNvbmRzLWJhc2VkLCBidXQgc29tZSBuYXRpdmUgZGF0ZXMgKGUuZy4gYE5TRGF0ZWAp
IGFyZSBzZWNvbmRzLWJhc2VkLgorICAgICAgICBgV2FsbFRpbWVgIHdpbGwgaGVscCBhdm9pZCBj
b25mdXNpb24gc2luY2Ugbm90IGEgZ2VuZXJpYyB0eXBlIChlLmcuIGBkb3VibGVgKSBhbmQgaW5z
dGVhZAorICAgICAgICBoYXMgZXhwbGljaXRseSBkZWZpbmVkIGNvbnZlcnNpb24gbWV0aG9kcyB0
byBzZWNvbmRzLCBtaWxsaXNlY29uZHMsIGV0Yy4uCisKKyAgICAgICAgKiBiaW5kaW5ncy9JRExU
eXBlcy5oOgorICAgICAgICAoV2ViQ29yZTo6SURMRGF0ZTo6bnVsbFZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OklETERhdGU6OmlzTnVsbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklETERh
dGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0RGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udmVydGVyPElETERhdGU+Ojpj
b252ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29udmVydGVyPElETERhdGU+Ojpjb252ZXJ0
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmpzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVRvRGF0ZSk6CisKKyAg
ICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TGluZUl0ZW0uaDoKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5TGluZUl0ZW06OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW06CisgICAgICAgIChXZWJDb3Jl
Ojp0b0RhdGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5oOgorICAgICAg
ICAoV2ViQ29yZTo6SURCS2V5OjpjcmVhdGVOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURC
S2V5OjpjcmVhdGVEYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleTo6ZGF0ZSBjb25zdCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQktleTo6SURCS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleTo6Y29tcGFyZSBj
b25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oOgorICAgICAg
ICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6aGFzaCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJLZXlEYXRhOjpkYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6OmVu
Y29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpkZWNvZGUpOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5RGF0YTo6bWF5YmVDcmVhdGVJREJLZXkgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5RGF0YTo6aXNvbGF0ZWRDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURh
dGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlEYXRhOjpkZWNvZGUp
OgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6c2V0RGF0ZVZhbHVlKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQktleURhdGE6Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5RGF0YTo6c2l6ZSBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZW5jb2RlS2V5
KToKKyAgICAgICAgKFdlYkNvcmU6OmRlY29kZUtleSk6CisgICAgICAgICogYmluZGluZ3MvanMv
SURCQmluZGluZ1V0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXQpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDbG9uZVNlcmlhbGl6ZXI6OndyaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNsb25lRGVz
ZXJpYWxpemVyOjpyZWFkRmlsZSk6CisgICAgICAgICogZmlsZWFwaS9GaWxlLmlkbDoKKyAgICAg
ICAgKiBmaWxlYXBpL0ZpbGUuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZTo6RmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjpsYXN0TW9k
aWZpZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6bGFzdE1vZGlmaWVkRm9yQmlu
ZGluZ3MgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0
ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZh
bHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
dmFsdWVBc0RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6
c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpnZXRTdGFydERhdGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5
cGU6OnNldFZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNb250aElucHV0VHlwZTo6dmFsdWVBc0RhdGUgY29uc3QpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yOjppZGJLZXlGcm9tSW5zcGVjdG9yT2JqZWN0KToKKwogMjAyMS0xMi0wMiAgQWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBDcmVhdGUg
ZGlzcGxheSBib3hlcyBmb3IgZnJhZ21lbnRlZCBpbmxpbmUgYm94ZXMgb24gYmlkaSBib3VuZGFy
aWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNzZhYTZhYWY4NGRlYjA4MmU0Yzg0
MzIyNDkzMzgwZDgzM2RlOTJkMS4uMWE0ZTczMjExMmY0NGQxYWNiYTI3MzNhNzE2NTkzMTExNTkw
ODIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIx
LTEyLTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDaGFu
Z2UgSURMIGBEYXRlYCB0byBiZSBiYWNrZWQgYnkgYFdhbGxUaW1lYCB0byBhdm9pZCBjb25mdXNp
b24gd2hlbiBjb252ZXJ0aW5nIHRvIG5hdGl2ZSBkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSlMgYERhdGVgIGlzIG1pbGxpc2Vjb25kcy1iYXNl
ZCwgYnV0IHNvbWUgbmF0aXZlIGRhdGVzIChlLmcuIGBOU0RhdGVgKSBhcmUgc2Vjb25kcy1iYXNl
ZC4KKyAgICAgICAgYFdhbGxUaW1lYCB3aWxsIGhlbHAgYXZvaWQgY29uZnVzaW9uIHNpbmNlIG5v
dCBhIGdlbmVyaWMgdHlwZSAoZS5nLiBgZG91YmxlYCkgYW5kIGluc3RlYWQKKyAgICAgICAgaGFz
IGV4cGxpY2l0bHkgZGVmaW5lZCBjb252ZXJzaW9uIG1ldGhvZHMgdG8gc2Vjb25kcywgbWlsbGlz
ZWNvbmRzLCBldGMuLgorCisgICAgICAgICogRE9NL0RPTUludGVybmFsLmg6CisgICAgICAgIChr
aXQpOgorICAgICAgICAoY29yZSk6CisKKyAgICAgICAgKiBET00vRE9NRmlsZS5tbToKKyAgICAg
ICAgKC1bRE9NRmlsZSBsYXN0TW9kaWZpZWRdKToKKyAgICAgICAgKiBET00vRE9NSFRNTE1lZGlh
RWxlbWVudC5tbToKKyAgICAgICAgKC1bRE9NSFRNTE1lZGlhRWxlbWVudCBnZXRTdGFydERhdGVd
KToKKwogMjAyMS0xMi0wMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgogCiAgICAgICAgIFtXZWJHUFVdIEhvb2sgdXAgbmF2aWdhdG9yLmdwdS5yZXF1ZXN0QWRhcHRl
cigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
TGluZUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5l
SXRlbS5oCmluZGV4IDk5ZWVmYmFiMTEzMzQzMWNjNWEwNzAyZmNjZDA5OGExOTNmNGM3MmIuLjZh
MzQ0MzdhNDQ4ZTg3MDBmMWViNmJhODk1ZGZiYmVjNWNlYTdiODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oCkBAIC0yOSw4ICsy
OSw4IEBACiAKICNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRUaW1pbmcuaCIKICNpbmNsdWRlICJB
cHBsZVBheVJlY3VycmluZ1BheW1lbnREYXRlVW5pdC5oIgotI2luY2x1ZGUgPGxpbWl0cz4KICNp
bmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCkBAIC01
MiwxNCArNTIsMTQgQEAgc3RydWN0IEFwcGxlUGF5TGluZUl0ZW0gZmluYWwgewogICAgIEFwcGxl
UGF5UGF5bWVudFRpbWluZyBwYXltZW50VGltaW5nIHsgQXBwbGVQYXlQYXltZW50VGltaW5nOjpJ
bW1lZGlhdGUgfTsKIAogI2lmIEVOQUJMRShBUFBMRV9QQVlfUkVDVVJSSU5HX0xJTkVfSVRFTSkK
LSAgICBkb3VibGUgcmVjdXJyaW5nUGF5bWVudFN0YXJ0RGF0ZSB7IHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKKyAgICBXYWxsVGltZSByZWN1cnJpbmdQYXltZW50
U3RhcnREYXRlIHsgV2FsbFRpbWU6Om5hbigpIH07CiAgICAgQXBwbGVQYXlSZWN1cnJpbmdQYXlt
ZW50RGF0ZVVuaXQgcmVjdXJyaW5nUGF5bWVudEludGVydmFsVW5pdCB7IEFwcGxlUGF5UmVjdXJy
aW5nUGF5bWVudERhdGVVbml0OjpNb250aCB9OwogICAgIHVuc2lnbmVkIHJlY3VycmluZ1BheW1l
bnRJbnRlcnZhbENvdW50ID0gMTsKLSAgICBkb3VibGUgcmVjdXJyaW5nUGF5bWVudEVuZERhdGUg
eyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisgICAgV2FsbFRp
bWUgcmVjdXJyaW5nUGF5bWVudEVuZERhdGUgeyBXYWxsVGltZTo6bmFuKCkgfTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKEFQUExFX1BBWV9ERUZFUlJFRF9MSU5FX0lURU0pCi0gICAgZG91YmxlIGRl
ZmVycmVkUGF5bWVudERhdGUgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05h
TigpIH07CisgICAgV2FsbFRpbWUgZGVmZXJyZWRQYXltZW50RGF0ZSB7IFdhbGxUaW1lOjpuYW4o
KSB9OwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEFwcGxlUGF5TGluZUl0ZW1BZGRpdGlvbnNfbWVt
YmVycykKQEAgLTEwNSwxMyArMTA1LDEzIEBAIHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlMaW5lSXRl
bT4gQXBwbGVQYXlMaW5lSXRlbTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgREVDT0RF
KGFtb3VudCwgU3RyaW5nKQogICAgIERFQ09ERShwYXltZW50VGltaW5nLCBBcHBsZVBheVBheW1l
bnRUaW1pbmcpCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9SRUNVUlJJTkdfTElORV9JVEVNKQotICAg
IERFQ09ERShyZWN1cnJpbmdQYXltZW50U3RhcnREYXRlLCBkb3VibGUpCisgICAgREVDT0RFKHJl
Y3VycmluZ1BheW1lbnRTdGFydERhdGUsIFdhbGxUaW1lKQogICAgIERFQ09ERShyZWN1cnJpbmdQ
YXltZW50SW50ZXJ2YWxVbml0LCBBcHBsZVBheVJlY3VycmluZ1BheW1lbnREYXRlVW5pdCkKICAg
ICBERUNPREUocmVjdXJyaW5nUGF5bWVudEludGVydmFsQ291bnQsIHVuc2lnbmVkKQotICAgIERF
Q09ERShyZWN1cnJpbmdQYXltZW50RW5kRGF0ZSwgZG91YmxlKQorICAgIERFQ09ERShyZWN1cnJp
bmdQYXltZW50RW5kRGF0ZSwgV2FsbFRpbWUpCiAjZW5kaWYKICNpZiBFTkFCTEUoQVBQTEVfUEFZ
X0RFRkVSUkVEX0xJTkVfSVRFTSkKLSAgICBERUNPREUoZGVmZXJyZWRQYXltZW50RGF0ZSwgZG91
YmxlKQorICAgIERFQ09ERShkZWZlcnJlZFBheW1lbnREYXRlLCBXYWxsVGltZSkKICNlbmRpZgog
I2lmIGRlZmluZWQoQXBwbGVQYXlMaW5lSXRlbUFkZGl0aW9uc19kZWNvZGVfbWVtYmVycykKICAg
ICBBcHBsZVBheUxpbmVJdGVtQWRkaXRpb25zX2RlY29kZV9tZW1iZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTdW1tYXJ5SXRlbXND
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1
bW1hcnlJdGVtc0NvY29hLm1tCmluZGV4IDk0MWE5ZWYxZDgwZWVlODUwNzE1NGMyMTZkNzcwMDY3
ZDc0MTBiMWEuLjVmMWMzMWI2ZTllMWU5ZWUyMzkzMGZkZDJkZTFmOTM1YmYyM2ViZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1bW1h
cnlJdGVtc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29j
b2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tCkBAIC02MCw5ICs2MCw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogI2lmIEhBVkUoUEFTU0tJVF9SRUNVUlJJTkdfU1VNTUFSWV9JVEVNKSB8
fCBIQVZFKFBBU1NLSVRfREVGRVJSRURfU1VNTUFSWV9JVEVNKQogCi1zdGF0aWMgTlNEYXRlICp0
b0RhdGUoZG91YmxlIGRhdGUpCitzdGF0aWMgTlNEYXRlICp0b0RhdGUoV2FsbFRpbWUgZGF0ZSkK
IHsKLSAgICByZXR1cm4gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDooZGF0
ZSAvIDEwMDApXTsKKyAgICByZXR1cm4gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNl
MTk3MDpkYXRlLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKV07CiB9CiAKICNlbmRpZiAvLyBI
QVZFKFBBU1NLSVRfUkVDVVJSSU5HX1NVTU1BUllfSVRFTSkgfHwgSEFWRShQQVNTS0lUX0RFRkVS
UkVEX1NVTU1BUllfSVRFTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJL
ZXkuY3BwCmluZGV4IDRmYjI2Mzg1NDgyOGI5ZjdmOGU0ZmJiYWIwN2Q0YTM0ZWY0ZjczNWQuLmYw
ZjJlMzZjZTQ3OGJmZWYxMzJmZWE0MjUyMTVjMWRlZDA4Zjk3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmNwcApAQCAtNTgsMTMgKzU4LDIwIEBAIFJlZjxJ
REJLZXk+IElEQktleTo6Y3JlYXRlQmluYXJ5KEpTQzo6SlNBcnJheUJ1ZmZlclZpZXcmIGFycmF5
QnVmZmVyVmlldykKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJLZXkoVGhyZWFkU2FmZURh
dGFCdWZmZXI6OmNvcHlEYXRhKGJ1ZmZlclZpZXctPmRhdGEoKSwgYnVmZmVyVmlldy0+Ynl0ZUxl
bmd0aCgpKSkpOwogfQogCi1JREJLZXk6OklEQktleShJbmRleGVkREI6OktleVR5cGUgdHlwZSwg
ZG91YmxlIG51bWJlcikKLSAgICA6IG1fdHlwZSh0eXBlKQorSURCS2V5OjpJREJLZXkoZG91Ymxl
IG51bWJlcikKKyAgICA6IG1fdHlwZShJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcikKICAgICAs
IG1fdmFsdWUobnVtYmVyKQogICAgICwgbV9zaXplRXN0aW1hdGUoT3ZlcmhlYWRTaXplICsgc2l6
ZW9mKGRvdWJsZSkpCiB7CiB9CiAKK0lEQktleTo6SURCS2V5KFdhbGxUaW1lIGRhdGUpCisgICAg
OiBtX3R5cGUoSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlKQorICAgICwgbV92YWx1ZShkYXRlKQor
ICAgICwgbV9zaXplRXN0aW1hdGUoT3ZlcmhlYWRTaXplICsgc2l6ZW9mKFdhbGxUaW1lKSkKK3sK
K30KKwogSURCS2V5OjpJREJLZXkoY29uc3QgU3RyaW5nJiB2YWx1ZSkKICAgICA6IG1fdHlwZShJ
bmRleGVkREI6OktleVR5cGU6OlN0cmluZykKICAgICAsIG1fdmFsdWUodmFsdWUpCkBAIC0xMjYs
NyArMTMzLDExIEBAIGludCBJREJLZXk6OmNvbXBhcmUoY29uc3QgSURCS2V5JiBvdGhlcikgY29u
c3QKICAgICAgICAgcmV0dXJuIGNvbXBhcmVCaW5hcnlLZXlEYXRhKHN0ZDo6Z2V0PFRocmVhZFNh
ZmVEYXRhQnVmZmVyPihtX3ZhbHVlKSwgc3RkOjpnZXQ8VGhyZWFkU2FmZURhdGFCdWZmZXI+KG90
aGVyLm1fdmFsdWUpKTsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6U3RyaW5nOgogICAg
ICAgICByZXR1cm4gLWNvZGVQb2ludENvbXBhcmUoc3RkOjpnZXQ8U3RyaW5nPihvdGhlci5tX3Zh
bHVlKSwgc3RkOjpnZXQ8U3RyaW5nPihtX3ZhbHVlKSk7Ci0gICAgY2FzZSBJbmRleGVkREI6Oktl
eVR5cGU6OkRhdGU6CisgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6IHsKKyAgICAg
ICAgYXV0byBkYXRlID0gc3RkOjpnZXQ8V2FsbFRpbWU+KG1fdmFsdWUpOworICAgICAgICBhdXRv
IG90aGVyRGF0ZSA9IHN0ZDo6Z2V0PFdhbGxUaW1lPihvdGhlci5tX3ZhbHVlKTsKKyAgICAgICAg
cmV0dXJuIChkYXRlIDwgb3RoZXJEYXRlKSA/IC0xIDogKChkYXRlID4gb3RoZXJEYXRlKSA/IDEg
OiAwKTsKKyAgICB9CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjogewogICAg
ICAgICBhdXRvIG51bWJlciA9IHN0ZDo6Z2V0PGRvdWJsZT4obV92YWx1ZSk7CiAgICAgICAgIGF1
dG8gb3RoZXJOdW1iZXIgPSBzdGQ6OmdldDxkb3VibGU+KG90aGVyLm1fdmFsdWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaAppbmRleCBjMjhmZGNmMzViZjNkZmRi
N2IxZmRhNWU3Y2VjNTlhM2Q0MDY5Nzc0Li4xODZhOTM2ZjJmMzk1YzNmNjNhYmQ1M2MyZGFmMzYw
Zjg0ODg2MGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXkuaApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYv
V2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IEpTQyB7CkBAIC01MSw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBSZWY8SURCS2V5
PiBjcmVhdGVOdW1iZXIoZG91YmxlIG51bWJlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IElEQktleShJbmRleGVkREI6OktleVR5cGU6Ok51bWJlciwgbnVtYmVyKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElEQktleShudW1iZXIpKTsKICAgICB9CiAKICAg
ICBzdGF0aWMgUmVmPElEQktleT4gY3JlYXRlU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQpA
QCAtNTksOSArNjAsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IElE
QktleShzdHJpbmcpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPElEQktleT4gY3JlYXRlRGF0
ZShkb3VibGUgZGF0ZSkKKyAgICBzdGF0aWMgUmVmPElEQktleT4gY3JlYXRlRGF0ZShXYWxsVGlt
ZSBkYXRlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCS2V5KEluZGV4
ZWREQjo6S2V5VHlwZTo6RGF0ZSwgZGF0ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBJREJLZXkoZGF0ZSkpOwogICAgIH0KIAogICAgIHN0YXRpYyBSZWY8SURCS2V5PiBjcmVhdGVN
dWx0aUVudHJ5QXJyYXkoY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+PiYgYXJyYXkpCkBAIC0x
MjAsMTAgKzEyMSwxMCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBzdGQ6OmdldDxTdHJpbmc+
KG1fdmFsdWUpOwogICAgIH0KIAotICAgIGRvdWJsZSBkYXRlKCkgY29uc3QKKyAgICBXYWxsVGlt
ZSBkYXRlKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gSW5kZXhlZERC
OjpLZXlUeXBlOjpEYXRlKTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6Z2V0PGRvdWJsZT4obV92YWx1
ZSk7CisgICAgICAgIHJldHVybiBzdGQ6OmdldDxXYWxsVGltZT4obV92YWx1ZSk7CiAgICAgfQog
CiAgICAgZG91YmxlIG51bWJlcigpIGNvbnN0CkBAIC0xNjMsMTMgKzE2NCwxNCBAQCBwcml2YXRl
OgogICAgIHsKICAgICB9CiAKLSAgICBJREJLZXkoSW5kZXhlZERCOjpLZXlUeXBlLCBkb3VibGUg
bnVtYmVyKTsKKyAgICBleHBsaWNpdCBJREJLZXkoZG91YmxlKTsKKyAgICBleHBsaWNpdCBJREJL
ZXkoV2FsbFRpbWUpOwogICAgIGV4cGxpY2l0IElEQktleShjb25zdCBTdHJpbmcmIHZhbHVlKTsK
ICAgICBJREJLZXkoY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+PiYga2V5QXJyYXksIHNpemVf
dCBhcnJheVNpemUpOwogICAgIGV4cGxpY2l0IElEQktleShjb25zdCBUaHJlYWRTYWZlRGF0YUJ1
ZmZlciYpOwogCiAgICAgY29uc3QgSW5kZXhlZERCOjpLZXlUeXBlIG1fdHlwZTsKLSAgICBzdGQ6
OnZhcmlhbnQ8VmVjdG9yPFJlZlB0cjxJREJLZXk+PiwgU3RyaW5nLCBkb3VibGUsIFRocmVhZFNh
ZmVEYXRhQnVmZmVyPiBtX3ZhbHVlOworICAgIHN0ZDo6dmFyaWFudDxWZWN0b3I8UmVmUHRyPElE
QktleT4+LCBTdHJpbmcsIFdhbGxUaW1lLCBkb3VibGUsIFRocmVhZFNhZmVEYXRhQnVmZmVyPiBt
X3ZhbHVlOwogCiAgICAgY29uc3Qgc2l6ZV90IG1fc2l6ZUVzdGltYXRlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCmluZGV4IDJhMzdjNTI4
ZWY1YmY5ZDk1NzczYTBiMTBmMDI1MjI5YmRlNWE0MTguLmU0OWZiM2U3MjhiYjM1MDM5NDhjZjk4
OTYzNjcyYjY1MjE5MGY4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQktleURhdGEuY3BwCkBAIC05MSw3ICs5MSw3IEBAIFJlZlB0cjxJREJLZXk+IElEQktl
eURhdGE6Om1heWJlQ3JlYXRlSURCS2V5KCkgY29uc3QKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5
VHlwZTo6U3RyaW5nOgogICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVTdHJpbmcoc3RkOjpn
ZXQ8U3RyaW5nPihtX3ZhbHVlKSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6
Ci0gICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZURhdGUoc3RkOjpnZXQ8ZG91YmxlPihtX3Zh
bHVlKSk7CisgICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZURhdGUoc3RkOjpnZXQ8V2FsbFRp
bWU+KG1fdmFsdWUpKTsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyOgogICAg
ICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVOdW1iZXIoc3RkOjpnZXQ8ZG91YmxlPihtX3ZhbHVl
KSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok1heDoKQEAgLTEzNiw2ICsxMzYsOCBA
QCB2b2lkIElEQktleURhdGE6Omlzb2xhdGVkQ29weShjb25zdCBJREJLZXlEYXRhJiBzb3VyY2Us
IElEQktleURhdGEmIGRlc3RpbmF0aW9uKQogICAgICAgICBkZXN0aW5hdGlvbi5tX3ZhbHVlID0g
c3RkOjpnZXQ8U3RyaW5nPihzb3VyY2UubV92YWx1ZSkuaXNvbGF0ZWRDb3B5KCk7CiAgICAgICAg
IHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAgZGVz
dGluYXRpb24ubV92YWx1ZSA9IHN0ZDo6Z2V0PFdhbGxUaW1lPihzb3VyY2UubV92YWx1ZSk7Cisg
ICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyOgogICAg
ICAgICBkZXN0aW5hdGlvbi5tX3ZhbHVlID0gc3RkOjpnZXQ8ZG91YmxlPihzb3VyY2UubV92YWx1
ZSk7CiAgICAgICAgIHJldHVybjsKQEAgLTE3Niw2ICsxNzgsOCBAQCB2b2lkIElEQktleURhdGE6
OmVuY29kZShLZXllZEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgICAgIGVuY29kZXIuZW5j
b2RlU3RyaW5nKCJzdHJpbmciLCBzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlOgorICAgICAgICBlbmNv
ZGVyLmVuY29kZURvdWJsZSgiZGF0ZSIsIHN0ZDo6Z2V0PFdhbGxUaW1lPihtX3ZhbHVlKS5zZWNv
bmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOworICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRl
eGVkREI6OktleVR5cGU6Ok51bWJlcjoKICAgICAgICAgZW5jb2Rlci5lbmNvZGVEb3VibGUoIm51
bWJlciIsIHN0ZDo6Z2V0PGRvdWJsZT4obV92YWx1ZSkpOwogICAgICAgICByZXR1cm47CkBAIC0y
MjIsNyArMjI2LDE2IEBAIGJvb2wgSURCS2V5RGF0YTo6ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVj
b2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVT
dHJpbmcoInN0cmluZyIsIHN0ZDo6Z2V0PFN0cmluZz4ocmVzdWx0Lm1fdmFsdWUpKTsKICAgICB9
CiAKLSAgICBpZiAocmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlciB8
fCByZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZSkgeworICAgIGlmIChy
ZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZSkgeworICAgICAgICByZXN1
bHQubV92YWx1ZSA9IFdhbGxUaW1lKCk7CisgICAgICAgIGRvdWJsZSBzZWNvbmRzOworICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlRG91YmxlKCJkYXRlIiwgc2Vjb25kcykpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKHNlY29uZHMpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBp
ZiAocmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcikgewogICAgICAg
ICByZXN1bHQubV92YWx1ZSA9IDAuMDsKICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlRG91
YmxlKCJudW1iZXIiLCBzdGQ6OmdldDxkb3VibGU+KHJlc3VsdC5tX3ZhbHVlKSk7CiAgICAgfQpA
QCAtNDA0LDcgKzQxNyw3IEBAIHZvaWQgSURCS2V5RGF0YTo6c2V0U3RyaW5nVmFsdWUoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKICAgICBtX2lzTnVsbCA9IGZhbHNlOwogfQogCi12b2lkIElEQktleURh
dGE6OnNldERhdGVWYWx1ZShkb3VibGUgdmFsdWUpCit2b2lkIElEQktleURhdGE6OnNldERhdGVW
YWx1ZShXYWxsVGltZSB2YWx1ZSkKIHsKICAgICAqdGhpcyA9IElEQktleURhdGEoKTsKICAgICBt
X3ZhbHVlID0gdmFsdWU7CkBAIC00NTAsOCArNDYzLDkgQEAgYm9vbCBJREJLZXlEYXRhOjpvcGVy
YXRvcj09KGNvbnN0IElEQktleURhdGEmIG90aGVyKSBjb25zdAogICAgIGNhc2UgSW5kZXhlZERC
OjpLZXlUeXBlOjpNaW46CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgSW5kZXhlZERC
OjpLZXlUeXBlOjpOdW1iZXI6Ci0gICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6CiAg
ICAgICAgIHJldHVybiBzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpID09IHN0ZDo6Z2V0PGRvdWJs
ZT4ob3RoZXIubV92YWx1ZSk7CisgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6Cisg
ICAgICAgIHJldHVybiBzdGQ6OmdldDxXYWxsVGltZT4obV92YWx1ZSkgPT0gc3RkOjpnZXQ8V2Fs
bFRpbWU+KG90aGVyLm1fdmFsdWUpOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpTdHJp
bmc6CiAgICAgICAgIHJldHVybiBzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpID09IHN0ZDo6Z2V0
PFN0cmluZz4ob3RoZXIubV92YWx1ZSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkJp
bmFyeToKQEAgLTQ4Miw2ICs0OTYsNyBAQCBzaXplX3QgSURCS2V5RGF0YTo6c2l6ZSgpIGNvbnN0
CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZzoKICAgICAgICAgcmV0dXJuIHN0
ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSkuc2l6ZUluQnl0ZXMoKTsKICAgICBjYXNlIEluZGV4ZWRE
Qjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAgcmV0dXJuIHNpemVvZihXYWxsVGltZSk7CiAgICAg
Y2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjoKICAgICAgICAgcmV0dXJuIHNpemVvZihk
b3VibGUpOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpNYXg6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmgKaW5kZXggNGI5Nzg1MzY5ZDE5MGE2
YjE5NjkxZDEzN2FlMTU2N2U1YzM3OTVkOS4uNWExN2U1OTEzMmNhNjVmYjJjYzE1NDI1M2JhODhi
ZDQyZTMxNTk2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCS2V5RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eURhdGEuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIklEQktleS5oIgogI2luY2x1ZGUg
PHZhcmlhbnQ+CiAjaW5jbHVkZSA8d3RmL1N0ZFNldC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtODEsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBcnJheVZhbHVlKGNv
bnN0IFZlY3RvcjxJREJLZXlEYXRhPiYpOwogICAgIHZvaWQgc2V0QmluYXJ5VmFsdWUoY29uc3Qg
VGhyZWFkU2FmZURhdGFCdWZmZXImKTsKICAgICB2b2lkIHNldFN0cmluZ1ZhbHVlKGNvbnN0IFN0
cmluZyYpOwotICAgIHZvaWQgc2V0RGF0ZVZhbHVlKGRvdWJsZSk7CisgICAgdm9pZCBzZXREYXRl
VmFsdWUoV2FsbFRpbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0TnVtYmVyVmFsdWUo
ZG91YmxlKTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKQEAgLTEyOSw5ICsxMzAsMTEgQEAgcHVibGljOgogICAgICAgICBjYXNlIElu
ZGV4ZWREQjo6S2V5VHlwZTo6TWluOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
SW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6Ci0gICAgICAgIGNhc2UgSW5kZXhlZERCOjpLZXlU
eXBlOjpEYXRlOgogICAgICAgICAgICAgaGFzaENvZGVzLmFwcGVuZChTdHJpbmdIYXNoZXI6Omhh
c2hNZW1vcnk8c2l6ZW9mKGRvdWJsZSk+KCZzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpKSk7CiAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6
CisgICAgICAgICAgICBoYXNoQ29kZXMuYXBwZW5kKFN0cmluZ0hhc2hlcjo6aGFzaE1lbW9yeTxz
aXplb2YoV2FsbFRpbWUpPigmc3RkOjpnZXQ8V2FsbFRpbWU+KG1fdmFsdWUpKSk7CisgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZzoKICAg
ICAgICAgICAgIGhhc2hDb2Rlcy5hcHBlbmQoU3RyaW5nSGFzaDo6aGFzaChzdGQ6OmdldDxTdHJp
bmc+KG1fdmFsdWUpKSk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE1OCwxMCArMTYxLDEwIEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSk7CiAgICAg
fQogCi0gICAgZG91YmxlIGRhdGUoKSBjb25zdAorICAgIFdhbGxUaW1lIGRhdGUoKSBjb25zdAog
ICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6OkRhdGUp
OwotICAgICAgICByZXR1cm4gc3RkOjpnZXQ8ZG91YmxlPihtX3ZhbHVlKTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6Z2V0PFdhbGxUaW1lPihtX3ZhbHVlKTsKICAgICB9CiAKICAgICBkb3VibGUgbnVt
YmVyKCkgY29uc3QKQEAgLTE5Myw3ICsxOTYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pc051
bGwgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0RlbGV0ZWRWYWx1ZSB7IGZhbHNlIH07CiAKLSAg
ICBzdGQ6OnZhcmlhbnQ8VmVjdG9yPElEQktleURhdGE+LCBTdHJpbmcsIGRvdWJsZSwgVGhyZWFk
U2FmZURhdGFCdWZmZXI+IG1fdmFsdWU7CisgICAgc3RkOjp2YXJpYW50PFZlY3RvcjxJREJLZXlE
YXRhPiwgU3RyaW5nLCBXYWxsVGltZSwgZG91YmxlLCBUaHJlYWRTYWZlRGF0YUJ1ZmZlcj4gbV92
YWx1ZTsKIH07CiAKIHN0cnVjdCBJREJLZXlEYXRhSGFzaCB7CkBAIC0yNDQsNiArMjQ3LDggQEAg
dm9pZCBJREJLZXlEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICAgICAg
ZW5jb2RlciA8PCBzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAgZW5jb2RlciA8PCBzdGQ6
OmdldDxXYWxsVGltZT4obV92YWx1ZSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSW5kZXhl
ZERCOjpLZXlUeXBlOjpOdW1iZXI6CiAgICAgICAgIGVuY29kZXIgPDwgc3RkOjpnZXQ8ZG91Ymxl
PihtX3ZhbHVlKTsKICAgICAgICAgYnJlYWs7CkBAIC0yODQsNiArMjg5LDEwIEBAIHN0ZDo6b3B0
aW9uYWw8SURCS2V5RGF0YT4gSURCS2V5RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICBicmVhazsKICAgICBjYXNl
IEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToKKyAgICAgICAga2V5RGF0YS5tX3ZhbHVlID0gV2Fs
bFRpbWUoKTsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGQ6OmdldDxXYWxsVGltZT4o
a2V5RGF0YS5tX3ZhbHVlKSkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
ICAgICBicmVhazsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyOgogICAgICAg
ICBrZXlEYXRhLm1fdmFsdWUgPSAwLjA7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3Rk
OjpnZXQ8ZG91YmxlPihrZXlEYXRhLm1fdmFsdWUpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcApp
bmRleCAyYTJjMWZjMzI5NTgwNWQ1MmZkNTZhZjMwYjQ1NWFlMmNjY2M0ODc3Li44NzMwMWNmZTE1
MWVjNDVmN2I1YTdiNjNkZjhkOTZkZWQ5MDY2M2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VyaWFsaXphdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3Bw
CkBAIC0yNDMsNyArMjQzLDcgQEAgc3RhdGljIHZvaWQgZW5jb2RlS2V5KFZlY3Rvcjx1aW50OF90
PiYgZGF0YSwgY29uc3QgSURCS2V5RGF0YSYga2V5KQogICAgICAgICB3cml0ZURvdWJsZShkYXRh
LCBrZXkubnVtYmVyKCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNJREJLZXlUeXBlOjpE
YXRlOgotICAgICAgICB3cml0ZURvdWJsZShkYXRhLCBrZXkuZGF0ZSgpKTsKKyAgICAgICAgd3Jp
dGVEb3VibGUoZGF0YSwga2V5LmRhdGUoKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpOwog
ICAgICAgICBicmVhazsKICAgICBjYXNlIFNJREJLZXlUeXBlOjpTdHJpbmc6IHsKICAgICAgICAg
YXV0byBzdHJpbmcgPSBrZXkuc3RyaW5nKCk7CkBAIC0zMTMsMTEgKzMxMywxMSBAQCBzdGF0aWMg
V0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlS2V5KGNvbnN0IHVpbnQ4X3QqJiBkYXRhLCBj
b25zdCB1aW50OF90KiBlbgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgY2FzZSBT
SURCS2V5VHlwZTo6RGF0ZTogewotICAgICAgICBkb3VibGUgZDsKLSAgICAgICAgaWYgKCFyZWFk
RG91YmxlKGRhdGEsIGVuZCwgZCkpCisgICAgICAgIGRvdWJsZSBzZWNvbmRzOworICAgICAgICBp
ZiAoIXJlYWREb3VibGUoZGF0YSwgZW5kLCBzZWNvbmRzKSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgICAgICByZXN1bHQuc2V0RGF0ZVZhbHVlKGQpOworICAgICAgICByZXN1bHQu
c2V0RGF0ZVZhbHVlKFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzZWNvbmRzKSk7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KICAgICBjYXNlIFNJREJLZXlUeXBlOjpTdHJpbmc6IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCmluZGV4IGZkMDk5ZjU0Mzc4YTE5OTVkM2YxNDc4ODk5
NzU4MGNjYzhlZjljNTUuLjlmNjEyYTYxZTRiOWI3NGMxMzUyYjE3YWNkYmI2N2RiNDZjOThmNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1
ZGUgPHd0Zi9CcmlnYW5kLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1
ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogI2lmIEVOQUJMRShX
RUJHTCkKICNpbmNsdWRlICJXZWJHTEFueS5oIgpAQCAtMjU5LDExICsyNjAsMTEgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IElETFR5cGVkQXJyYXkgOiBJRExCdWZmZXJTb3VyY2U8VD4g
eyB9OwogCiAvLyBOb24tV2ViSURMIGV4dGVuc2lvbnMKIAotc3RydWN0IElETERhdGUgOiBJRExU
eXBlPGRvdWJsZT4geyAKLSAgICB1c2luZyBOdWxsYWJsZVR5cGUgPSBkb3VibGU7Ci0gICAgc3Rh
dGljIGRvdWJsZSBudWxsVmFsdWUoKSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJs
ZT46OnF1aWV0X05hTigpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNOdWxsVmFsdWUoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBzdGQ6OmlzbmFuKHZhbHVlKTsgfQotICAgIHN0YXRpYyBkb3VibGUgZXh0
cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0KK3N0
cnVjdCBJRExEYXRlIDogSURMVHlwZTxXYWxsVGltZT4geyAKKyAgICB1c2luZyBOdWxsYWJsZVR5
cGUgPSBXYWxsVGltZTsKKyAgICBzdGF0aWMgV2FsbFRpbWUgbnVsbFZhbHVlKCkgeyByZXR1cm4g
V2FsbFRpbWU6Om5hbigpOyB9CisgICAgc3RhdGljIGJvb2wgaXNOdWxsVmFsdWUoV2FsbFRpbWUg
dmFsdWUpIHsgcmV0dXJuIHN0ZDo6aXNuYW4odmFsdWUpOyB9CisgICAgc3RhdGljIFdhbGxUaW1l
IGV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShXYWxsVGltZSB2YWx1ZSkgeyByZXR1cm4gdmFsdWU7
IH0KIH07CiAKIHN0cnVjdCBJRExKU09OIDogSURMVHlwZTxTdHJpbmc+IHsgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCmluZGV4IDll
NTY3MjFkM2VkYWNkOGI5MGJiYjcwZDQzMTNlMWY3MDFmZTkxOTMuLmM3MjgxYThjYTEwNjAwYjJi
YjdjYTgzM2ZjNmI1NThlMTQyYmNiOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyBi
b29sIGdldChKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSBvYmpl
Y3QsIGNvbnN0IFN0cmluCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAg
ICAgICBpZiAoa2V5UGF0aEVsZW1lbnQgPT0gImxhc3RNb2RpZmllZCIpIHsKLSAgICAgICAgICAg
IHJlc3VsdCA9IGpzTnVtYmVyKGpzQ2FzdDxKU0ZpbGUqPihvYmopLT53cmFwcGVkKCkubGFzdE1v
ZGlmaWVkKCkpOworICAgICAgICAgICAgcmVzdWx0ID0ganNOdW1iZXIoanNDYXN0PEpTRmlsZSo+
KG9iaiktPndyYXBwZWQoKS5sYXN0TW9kaWZpZWQoKS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxp
c2Vjb25kcygpKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAg
IGlmIChrZXlQYXRoRWxlbWVudCA9PSAibGFzdE1vZGlmaWVkRGF0ZSIpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHAKaW5kZXggMTM2N2VkMjU0
NzIxMWEzN2JmNzUzODRkODM5YThmZGVhMzI1OWM3Ni4uZDgwNzBjOGMxNTVjZjJmNzJhZWY1NGQ4
MjY5ZjQ2N2M4YzUxNzM1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Db252ZXJ0RGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0RGF0ZS5jcHAKQEAgLTMwLDIxICszMCwyNCBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAotSlNWYWx1ZSBqc0RhdGUoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSkKK0pTVmFsdWUganNEYXRlKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBXYWxsVGltZSB2YWx1ZSkKIHsKLSAgICBy
ZXR1cm4gRGF0ZUluc3RhbmNlOjpjcmVhdGUobGV4aWNhbEdsb2JhbE9iamVjdC52bSgpLCBsZXhp
Y2FsR2xvYmFsT2JqZWN0LmRhdGVTdHJ1Y3R1cmUoKSwgdmFsdWUpOworICAgIHJldHVybiBEYXRl
SW5zdGFuY2U6OmNyZWF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCksIGxleGljYWxHbG9iYWxP
YmplY3QuZGF0ZVN0cnVjdHVyZSgpLCB2YWx1ZS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vj
b25kcygpKTsKIH0KIAotZG91YmxlIHZhbHVlVG9EYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCitXYWxsVGltZSB2YWx1ZVRvRGF0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQog
eworICAgIGRvdWJsZSBtaWxsaXNlY29uZHMgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46
OnF1aWV0X05hTigpOworCiAgICAgYXV0byYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCk7
CiAgICAgaWYgKHZhbHVlLmluaGVyaXRzPERhdGVJbnN0YW5jZT4odm0pKQotICAgICAgICByZXR1
cm4ganNDYXN0PERhdGVJbnN0YW5jZSo+KHZhbHVlKS0+aW50ZXJuYWxOdW1iZXIoKTsKLSAgICBp
ZiAodmFsdWUuaXNOdW1iZXIoKSkKLSAgICAgICAgcmV0dXJuIHZhbHVlLmFzTnVtYmVyKCk7Ci0g
ICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpCi0gICAgICAgIHJldHVybiB2bS5kYXRlQ2FjaGUucGFy
c2VEYXRlKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB2bSwgdmFsdWUuZ2V0U3RyaW5nKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KSk7Ci0gICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
cXVpZXRfTmFOKCk7CisgICAgICAgIG1pbGxpc2Vjb25kcyA9IGpzQ2FzdDxEYXRlSW5zdGFuY2Uq
Pih2YWx1ZSktPmludGVybmFsTnVtYmVyKCk7CisgICAgZWxzZSBpZiAodmFsdWUuaXNOdW1iZXIo
KSkKKyAgICAgICAgbWlsbGlzZWNvbmRzID0gdmFsdWUuYXNOdW1iZXIoKTsKKyAgICBlbHNlIGlm
ICh2YWx1ZS5pc1N0cmluZygpKQorICAgICAgICBtaWxsaXNlY29uZHMgPSB2bS5kYXRlQ2FjaGUu
cGFyc2VEYXRlKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCB2bSwgdmFsdWUuZ2V0U3RyaW5nKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KSk7CisKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobWlsbGlzZWNvbmRzKS52YWx1ZSgpKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01Db252ZXJ0RGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0RGF0ZS5oCmluZGV4IDU2MjQyOTI5ZjcyZGNjNWU0ZDQ0MDQyODExMTJlYmUwN2Fm
OGI2NzQuLmQxMjM2MWZkNmZmMWUxZTYxMGIzZjEyMThlODA2OGY4NjhjMjdjZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmgKQEAgLTI4LDE0ICsy
OCwxNSBAQAogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0QmFz
ZS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTR2xvYmFsT2JqZWN0Lmg+CisjaW5jbHVk
ZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSlNDOjpKU1ZhbHVl
IGpzRGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgZG91YmxlIHZhbHVlKTsKLWRvdWJsZSB2YWx1
ZVRvRGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpKU1ZhbHVlKTsgLy8gTmFOIGlmIHRo
ZSB2YWx1ZSBjYW4ndCBiZSBjb252ZXJ0ZWQgdG8gYSBkYXRlLgorSlNDOjpKU1ZhbHVlIGpzRGF0
ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgV2FsbFRpbWUgdmFsdWUpOworV2FsbFRpbWUgdmFsdWVU
b0RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7IC8vIE5hTiBpZiB0aGUg
dmFsdWUgY2FuJ3QgYmUgY29udmVydGVkIHRvIGEgZGF0ZS4KIAogdGVtcGxhdGU8PiBzdHJ1Y3Qg
Q29udmVydGVyPElETERhdGU+IDogRGVmYXVsdENvbnZlcnRlcjxJRExEYXRlPiB7Ci0gICAgc3Rh
dGljIGRvdWJsZSBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKKyAgICBzdGF0aWMgV2FsbFRpbWUgY29udmVydChKU0M6
OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgdmFsdWUp
CiAgICAgewogICAgICAgICByZXR1cm4gdmFsdWVUb0RhdGUobGV4aWNhbEdsb2JhbE9iamVjdCwg
dmFsdWUpOwogICAgIH0KQEAgLTQ2LDcgKzQ3LDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgSlNDb252
ZXJ0ZXI8SURMRGF0ZT4gewogICAgIHN0YXRpYyBjb25zdGV4cHIgYm9vbCBuZWVkc0dsb2JhbE9i
amVjdCA9IGZhbHNlOwogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHRha2luZyBhIEpT
RE9NR2xvYmFsT2JqZWN0IGFuZCBwYXNzaW5nIGl0IHRvIGpzRGF0ZS4KLSAgICBzdGF0aWMgSlND
OjpKU1ZhbHVlIGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgZG91YmxlIHZhbHVlKQorICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgY29udmVydChKU0M6OkpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBXYWxsVGltZSB2YWx1ZSkKICAgICB7
CiAgICAgICAgIHJldHVybiBqc0RhdGUobGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0
VmFsdWUuY3BwCmluZGV4IDBiYWZhNzk4MzA5YzE2NTBjNjQwMmJkMDZlZWE3MzAxMTk2ZTNlMzMu
LjBhYjkxMTVjNDU1YzIyNjE0YzM1MTU0NjAzM2VlMDdmYmM5MzJiOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcApAQCAt
MTYwNCw3ICsxNjA0LDEwIEBAIHByaXZhdGU6CiAgICAgICAgIHdyaXRlKGZpbGUudXJsKCkuc3Ry
aW5nKCkpOwogICAgICAgICB3cml0ZShmaWxlLnR5cGUoKSk7CiAgICAgICAgIHdyaXRlKGZpbGUu
bmFtZSgpKTsKLSAgICAgICAgd3JpdGUoc3RhdGljX2Nhc3Q8ZG91YmxlPihmaWxlLmxhc3RNb2Rp
ZmllZE92ZXJyaWRlKCkudmFsdWVfb3IoLTEpKSk7CisgICAgICAgIGlmIChhdXRvIGxhc3RNb2Rp
ZmllZE92ZXJyaWRlID0gZmlsZS5sYXN0TW9kaWZpZWRPdmVycmlkZSgpKQorICAgICAgICAgICAg
d3JpdGUobGFzdE1vZGlmaWVkT3ZlcnJpZGUtPnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNv
bmRzKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB3cml0ZSgtMS4wKTsKICAgICB9CiAK
ICAgICB2b2lkIHdyaXRlKFByZWRlZmluZWRDb2xvclNwYWNlIGNvbG9yU3BhY2UpCkBAIC0yNTQ5
LDEzICsyNTUyLDEzIEBAIHByaXZhdGU6CiAgICAgICAgIENhY2hlZFN0cmluZ1JlZiBuYW1lOwog
ICAgICAgICBpZiAoIXJlYWRTdHJpbmdEYXRhKG5hbWUpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICBzdGQ6Om9wdGlvbmFsPGludDY0X3Q+IG9wdGlvbmFsTGFzdE1vZGlmaWVk
OworICAgICAgICBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBvcHRpb25hbExhc3RNb2RpZmllZDsK
ICAgICAgICAgaWYgKG1fdmVyc2lvbiA+IDYpIHsKICAgICAgICAgICAgIGRvdWJsZSBsYXN0TW9k
aWZpZWQ7CiAgICAgICAgICAgICBpZiAoIXJlYWQobGFzdE1vZGlmaWVkKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBpZiAobGFzdE1vZGlmaWVkID49IDApCi0g
ICAgICAgICAgICAgICAgb3B0aW9uYWxMYXN0TW9kaWZpZWQgPSBsYXN0TW9kaWZpZWQ7CisgICAg
ICAgICAgICAgICAgb3B0aW9uYWxMYXN0TW9kaWZpZWQgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29u
ZHMoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhsYXN0TW9kaWZpZWQpLnZhbHVlKCkpOwogICAg
ICAgICB9CiAKICAgICAgICAgLy8gSWYgdGhlIGJsb2IgVVJMIGZvciB0aGlzIGZpbGUgaGFzIGFu
IGFzc29jaWF0ZWQgYmxvYiBmaWxlIHBhdGgsIHByZWZlciB0aGF0IG9uZSBvdmVyIHRoZSAiYnVp
bHQtaW4iIHBhdGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcAppbmRleCA5NzQ0YjAxNTdhZTExYzEx
MGNkOGMyODllNTI3Y2JmYTAyYzEwZTkxLi5iM2YyNTgyZTYyMDliZjc2NGM5MzhiZWJhNjFiMDIz
OWIzODdjZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgRmls
ZTo6RmlsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBVUkwmJiB1cmwsIFN0cmlu
ZyYmIHR5cGUsIFN0cmluZyYmIHAKIHsKIH0KIAotRmlsZTo6RmlsZShEZXNlcmlhbGl6YXRpb25D
b250cnVjdG9yLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcm
IHBhdGgsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxpbnQ2NF90PiYgbGFzdE1vZGlmaWVkKQorRmlsZTo6
RmlsZShEZXNlcmlhbGl6YXRpb25Db250cnVjdG9yLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4m
IGxhc3RNb2RpZmllZCkKICAgICA6IEJsb2IoZGVzZXJpYWxpemF0aW9uQ29udHJ1Y3RvciwgY29u
dGV4dCwgdXJsLCB0eXBlLCB7IH0sIHBhdGgpCiAgICAgLCBtX3BhdGgocGF0aCkKICAgICAsIG1f
bmFtZShuYW1lKQpAQCAtNzgsNyArNzgsNyBAQCBGaWxlOjpGaWxlKERlc2VyaWFsaXphdGlvbkNv
bnRydWN0b3IsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cgogRmls
ZTo6RmlsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBWZWN0b3I8QmxvYlBhcnRW
YXJpYW50PiYmIGJsb2JQYXJ0VmFyaWFudHMsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0
IFByb3BlcnR5QmFnJiBwcm9wZXJ0eUJhZykKICAgICA6IEJsb2IoY29udGV4dCwgV1RGTW92ZShi
bG9iUGFydFZhcmlhbnRzKSwgcHJvcGVydHlCYWcpCiAgICAgLCBtX25hbWUoZmlsZW5hbWUpCi0g
ICAgLCBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZShwcm9wZXJ0eUJhZy5sYXN0TW9kaWZpZWQu
dmFsdWVfb3IoV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRz
KCkpKQorICAgICwgbV9sYXN0TW9kaWZpZWREYXRlT3ZlcnJpZGUocHJvcGVydHlCYWcubGFzdE1v
ZGlmaWVkID8gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29uZHM6OmZyb21NaWxsaXNlY29u
ZHMoKnByb3BlcnR5QmFnLmxhc3RNb2RpZmllZCkudmFsdWUoKSkgOiBXYWxsVGltZTo6bm93KCkp
CiB7CiB9CiAKQEAgLTk5LDIzICs5OSwyMyBAQCBGaWxlOjpGaWxlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIGNvbnN0IEZpbGUmIGZpbGUsIGNvbnN0IFN0cmluZyYgbmFtZQogewog
fQogCi1pbnQ2NF90IEZpbGU6Omxhc3RNb2RpZmllZCgpIGNvbnN0CitXYWxsVGltZSBGaWxlOjps
YXN0TW9kaWZpZWQoKSBjb25zdAogewogICAgIGlmIChtX2xhc3RNb2RpZmllZERhdGVPdmVycmlk
ZSkKICAgICAgICAgcmV0dXJuIG1fbGFzdE1vZGlmaWVkRGF0ZU92ZXJyaWRlLnZhbHVlKCk7CiAK
LSAgICBpbnQ2NF90IHJlc3VsdDsKLQogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgc3luYy1pL28g
b24gdGhlIG1haW4gdGhyZWFkIGFuZCBhbHNvIHJlY2FsY3VsYXRlcyBldmVyeSB0aW1lIHRoZSBt
ZXRob2QgaXMgY2FsbGVkLgogICAgIC8vIFRoZSBpL28gc2hvdWxkIGJlIHBlcmZvcm1lZCBvbiBh
IGJhY2tncm91bmQgdGhyZWFkLAogICAgIC8vIGFuZCB0aGUgcmVzdWx0IHNob3VsZCBiZSBjYWNo
ZWQgYWxvbmcgd2l0aCBhbiBhc3luY2hyb25vdXMgbW9uaXRvciBmb3IgY2hhbmdlcyB0byB0aGUg
ZmlsZS4KLSAgICBhdXRvIG1vZGlmaWNhdGlvblRpbWUgPSBGaWxlU3lzdGVtOjpmaWxlTW9kaWZp
Y2F0aW9uVGltZShtX3BhdGgpOwotICAgIGlmIChtb2RpZmljYXRpb25UaW1lKQotICAgICAgICBy
ZXN1bHQgPSBtb2RpZmljYXRpb25UaW1lLT5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vjb25k
c0FzPGludDY0X3Q+KCk7Ci0gICAgZWxzZQotICAgICAgICByZXN1bHQgPSBXYWxsVGltZTo6bm93
KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHNBczxpbnQ2NF90PigpOworICAgIGlm
IChhdXRvIG1vZGlmaWNhdGlvblRpbWUgPSBGaWxlU3lzdGVtOjpmaWxlTW9kaWZpY2F0aW9uVGlt
ZShtX3BhdGgpKQorICAgICAgICByZXR1cm4gKm1vZGlmaWNhdGlvblRpbWU7CiAKLSAgICByZXR1
cm4gdGltZUNsaXAocmVzdWx0KTsKKyAgICByZXR1cm4gV2FsbFRpbWU6Om5vdygpOworfQorCitp
bnQ2NF90IEZpbGU6Omxhc3RNb2RpZmllZEZvckJpbmRpbmdzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gdGltZUNsaXAobGFzdE1vZGlmaWVkKCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29u
ZHNBczxpbnQ2NF90PigpKTsKIH0KIAogdm9pZCBGaWxlOjpjb21wdXRlTmFtZUFuZENvbnRlbnRU
eXBlKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgU3RyaW5nJiBuYW1lT3ZlcnJpZGUsIFN0cmlu
ZyYgZWZmZWN0aXZlTmFtZSwgU3RyaW5nJiBlZmZlY3RpdmVDb250ZW50VHlwZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlLmgKaW5kZXggYzg4MDMyYjVlYTc3NWE4YmYyOWRkZGIzZDczYTFjZGE0MDQ0MTcyYS4u
NGRhNzM0ZmI2ZDgwYWU0ZTEzNjFiYmJhZTdmOGVmYTY5NDI5NDBlYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9G
aWxlLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KKyNpbmNsdWRlIDx3
dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNTEsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBm
aWxlOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8RmlsZT4gZGVzZXJpYWxpemUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBVUkwmIHNy
Y1VSTCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8aW50NjRfdD4mIGxhc3RNb2RpZmllZCA9IHN0ZDo6bnVsbG9wdCkKKyAgICBzdGF0
aWMgUmVmPEZpbGU+IGRlc2VyaWFsaXplKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgVVJMJiBzcmNVUkwsIGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiYgbGFz
dE1vZGlmaWVkID0gc3RkOjpudWxsb3B0KQogICAgIHsKICAgICAgICAgYXV0byBmaWxlID0gYWRv
cHRSZWYoKm5ldyBGaWxlKGRlc2VyaWFsaXphdGlvbkNvbnRydWN0b3IsIGNvbnRleHQsIHBhdGgs
IHNyY1VSTCwgdHlwZSwgbmFtZSwgbGFzdE1vZGlmaWVkKSk7CiAgICAgICAgIGZpbGUtPnN1c3Bl
bmRJZk5lZWRlZCgpOwpAQCAtODAsOCArODEsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmlu
ZyYgcmVsYXRpdmVQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9yZWxhdGl2ZVBhdGg7IH0KICAgICB2
b2lkIHNldFJlbGF0aXZlUGF0aChjb25zdCBTdHJpbmcmIHJlbGF0aXZlUGF0aCkgeyBtX3JlbGF0
aXZlUGF0aCA9IHJlbGF0aXZlUGF0aDsgfQogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbmFtZTsgfQotICAgIFdFQkNPUkVfRVhQT1JUIGludDY0X3QgbGFzdE1vZGlm
aWVkKCkgY29uc3Q7IC8vIE51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgRXBvY2guCi0gICAg
Y29uc3Qgc3RkOjpvcHRpb25hbDxpbnQ2NF90PiYgbGFzdE1vZGlmaWVkT3ZlcnJpZGUoKSBjb25z
dCB7IHJldHVybiBtX2xhc3RNb2RpZmllZERhdGVPdmVycmlkZTsgfSAvLyBOdW1iZXIgb2YgbWls
bGlzZWNvbmRzIHNpbmNlIEVwb2NoLgorICAgIFdhbGxUaW1lIGxhc3RNb2RpZmllZCgpIGNvbnN0
OworICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+JiBsYXN0TW9kaWZpZWRPdmVycmlk
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdE1vZGlmaWVkRGF0ZU92ZXJyaWRlOyB9CisKKyAgICBX
RUJDT1JFX0VYUE9SVCBpbnQ2NF90IGxhc3RNb2RpZmllZEZvckJpbmRpbmdzKCkgY29uc3Q7IC8v
IE51bWJlciBvZiBtaWxsaXNlY29uZHMgc2luY2UgRXBvY2guCiAKICAgICBzdGF0aWMgU3RyaW5n
IGNvbnRlbnRUeXBlRm9yRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpOwogCkBAIC05OCw3ICsxMDEs
NyBAQCBwcml2YXRlOgogICAgIEZpbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IEJs
b2ImLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogICAgIEZpbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCosIGNvbnN0IEZpbGUmLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogCi0gICAgRmlsZShEZXNlcmlh
bGl6YXRpb25Db250cnVjdG9yLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5n
JiBwYXRoLCBjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8aW50NjRfdD4mIGxhc3RNb2RpZmllZCk7Cisg
ICAgRmlsZShEZXNlcmlhbGl6YXRpb25Db250cnVjdG9yLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBVUkwmIHNyY1VSTCwgY29uc3QgU3RyaW5nJiB0
eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+JiBs
YXN0TW9kaWZpZWQpOwogCiAgICAgc3RhdGljIHZvaWQgY29tcHV0ZU5hbWVBbmRDb250ZW50VHlw
ZShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgbmFtZU92ZXJyaWRlLCBTdHJpbmcm
IGVmZmVjdGl2ZU5hbWUsIFN0cmluZyYgZWZmZWN0aXZlQ29udGVudFR5cGUpOwogI2lmIEVOQUJM
RShGSUxFX1JFUExBQ0VNRU5UKQpAQCAtMTEyLDcgKzExNSw3IEBAIHByaXZhdGU6CiAgICAgU3Ry
aW5nIG1fcmVsYXRpdmVQYXRoOwogICAgIFN0cmluZyBtX25hbWU7CiAKLSAgICBzdGQ6Om9wdGlv
bmFsPGludDY0X3Q+IG1fbGFzdE1vZGlmaWVkRGF0ZU92ZXJyaWRlOworICAgIHN0ZDo6b3B0aW9u
YWw8V2FsbFRpbWU+IG1fbGFzdE1vZGlmaWVkRGF0ZU92ZXJyaWRlOwogICAgIG11dGFibGUgc3Rk
OjpvcHRpb25hbDxib29sPiBtX2lzRGlyZWN0b3J5OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9GaWxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5p
ZGwKaW5kZXggZjVlYjUzODljYmYyMmQyYjU2YzBmYjc4ZmNjNmM5NGY1ZjdiYzM5Yy4uNmExMmVh
MDczMWE4ODViZmM1NDczZmJmZTYyNTIyYzFmYzQyMDMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUu
aWRsCkBAIC0zNCw3ICszNCw3IEBAIHR5cGVkZWYgKEJ1ZmZlclNvdXJjZSBvciBCbG9iIG9yIFVT
VlN0cmluZykgQmxvYlBhcnQ7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRd
IGNvbnN0cnVjdG9yKHNlcXVlbmNlPEJsb2JQYXJ0PiBmaWxlQml0cywgVVNWU3RyaW5nIGZpbGVO
YW1lLCBvcHRpb25hbCBGaWxlUHJvcGVydHlCYWcgb3B0aW9ucyk7CiAKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbG9u
ZyBsYXN0TW9kaWZpZWQ7CisgICAgW0ltcGxlbWVudGVkQXM9bGFzdE1vZGlmaWVkRm9yQmluZGlu
Z3NdIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxvbmcgbGFzdE1vZGlmaWVkOwogCiAgICAgLy8g
aHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9lbnRyaWVzLWFwaS8jZmlsZS1pbnRlcmZhY2UKICAgICBb
RW5hYmxlZEF0UnVudGltZT1EaXJlY3RvcnlVcGxvYWRFbmFibGVkLCBJbXBsZW1lbnRlZEFzPXJl
bGF0aXZlUGF0aF0gcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyB3ZWJraXRSZWxhdGl2ZVBh
dGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAKaW5kZXggNTYwYTRjZjk2YjY4YTIxYjc4MzI4Njg0MWMwNTQwMmJjOWFkNjM0ZS4uNmMzODFh
YTcwMWM5NDA3MjY2MWNlMGUxNTJmMjU5MWI1NDcxNDk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtMTI3LDE1ICsxMjcsMTUg
QEAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp+QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKCkK
ICAgICBjbG9zZURhdGVUaW1lQ2hvb3NlcigpOwogfQogCi1kb3VibGUgQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CitXYWxsVGltZSBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gdmFsdWVBc0RvdWJs
ZSgpOworICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoU2Vjb25kczo6ZnJvbU1p
bGxpc2Vjb25kcyh2YWx1ZUFzRG91YmxlKCkpLnZhbHVlKCkpOwogfQogCi1FeGNlcHRpb25Pcjx2
b2lkPiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlKGRvdWJsZSB2YWx1
ZSkgY29uc3QKK0V4Y2VwdGlvbk9yPHZvaWQ+IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6c2V0
VmFsdWVBc0RhdGUoV2FsbFRpbWUgdmFsdWUpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGVsZW1lbnQo
KSk7Ci0gICAgZWxlbWVudCgpLT5zZXRWYWx1ZShzZXJpYWxpemVXaXRoTWlsbGlzZWNvbmRzKHZh
bHVlKSk7CisgICAgZWxlbWVudCgpLT5zZXRWYWx1ZShzZXJpYWxpemVXaXRoTWlsbGlzZWNvbmRz
KHZhbHVlLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCkpKTsKICAgICByZXR1cm4g
eyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuaAppbmRleCBjNzI5YzkyMmFiMzhiYThkOTRkNDc0NDU3MzNhZGEzMGM1OTVlMjc2Li42ODkx
MDViMzY1MWM2M2JiOWZmZGFhMWU5Y2QwODQxYzFkMDY0M2ExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTEwMiw4ICsxMDIsOCBAQCBw
cml2YXRlOgogICAgIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCBmaW5hbDsKICAgICBTdHJp
bmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNl
dFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJl
aGF2aW9yKSBmaW5hbDsKLSAgICBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdCBvdmVycmlkZTsK
LSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0ZShkb3VibGUpIGNvbnN0IG92ZXJy
aWRlOworICAgIFdhbGxUaW1lIHZhbHVlQXNEYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoV2FsbFRpbWUpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGRvdWJsZSB2YWx1ZUFzRG91YmxlKCkgY29uc3QgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0VmFsdWVBc0RlY2ltYWwoY29uc3QgRGVjaW1hbCYsIFRleHRGaWVsZEV2ZW50QmVo
YXZpb3IpIGNvbnN0IGZpbmFsOwogICAgIERlY2ltYWwgZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCkg
Y29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1l
TG9jYWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5w
dXRUeXBlLmNwcAppbmRleCA1OThhOGJiZGY3NGY1N2IwZjdmZDE1ZTk3MDBkYmEzODZiYzIxNGVh
Li5kYjE2ZGE3ZTQ5OWIxZTliYjc4MzY5NzEzMTZiZWU5OGE2YmRlM2ZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTYyLDEzICs2Miwx
MyBAQCBEYXRlQ29tcG9uZW50c1R5cGUgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6ZGF0ZVR5cGUo
KSBjb25zdAogICAgIHJldHVybiBEYXRlQ29tcG9uZW50c1R5cGU6OkRhdGVUaW1lTG9jYWw7CiB9
CiAKLWRvdWJsZSBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CitX
YWxsVGltZSBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7CiAg
ICAgLy8gdmFsdWVBc0RhdGUgZG9lc24ndCB3b3JrIGZvciB0aGUgZGF0ZXRpbWUtbG9jYWwgdHlw
ZSBhY2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJkLgotICAgIHJldHVybiBEYXRlQ29tcG9uZW50czo6
aW52YWxpZE1pbGxpc2Vjb25kcygpOworICAgIHJldHVybiBXYWxsVGltZTo6bmFuKCk7CiB9CiAK
LUV4Y2VwdGlvbk9yPHZvaWQ+IERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRl
KGRvdWJsZSB2YWx1ZSkgY29uc3QKK0V4Y2VwdGlvbk9yPHZvaWQ+IERhdGVUaW1lTG9jYWxJbnB1
dFR5cGU6OnNldFZhbHVlQXNEYXRlKFdhbGxUaW1lIHZhbHVlKSBjb25zdAogewogICAgIC8vIHZh
bHVlQXNEYXRlIGRvZXNuJ3Qgd29yayBmb3IgdGhlIGRhdGV0aW1lLWxvY2FsIHR5cGUgYWNjb3Jk
aW5nIHRvIHRoZSBzdGFuZGFyZC4KICAgICByZXR1cm4gSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0
ZSh2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5o
CmluZGV4IDE2NmY1MDAwNDE2ZWM0NjdhNWZlOTkzNDdiN2ZjOWEyMzkyNDEyODcuLjU2MGZiNjRk
MDBhMmJhOGQyNzQyMWJmYjEwMWI1YzBhNzI1MjFkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCkBAIC00Nyw4ICs0Nyw4IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgY29uc3QgQXRvbVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmlu
YWw7CiAgICAgRGF0ZUNvbXBvbmVudHNUeXBlIGRhdGVUeXBlKCkgY29uc3QgZmluYWw7Ci0gICAg
ZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3QgZmluYWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0VmFsdWVBc0RhdGUoZG91YmxlKSBjb25zdCBmaW5hbDsKKyAgICBXYWxsVGltZSB2YWx1ZUFz
RGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRl
KFdhbGxUaW1lKSBjb25zdCBmaW5hbDsKICAgICBTdGVwUmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFu
eVN0ZXBIYW5kbGluZykgY29uc3QgZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxEYXRlQ29tcG9u
ZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKFN0cmluZ1ZpZXcpIGNvbnN0IGZpbmFsOwogICAg
IHN0ZDo6b3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9u
ZW50cyhkb3VibGUpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKaW5kZXggMGJiYWYyMjRmMmY1MWQzNjVkNDM1ZTRhMzRmZTRhNjNhNjY0NTdjMC4u
OWE3NWFhZGQ3ODIyOTk4MWIyNDQ5ZjQ0MmUwMmYzODJjN2FlZTUyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMTExLDEyICsxMTExLDEyIEBAIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVJbnRlcm5hbChjb25zdCBTdHJpbmcmIHNhbml0aXpl
ZFZhbHVlLCBUZXh0RmllbGRFCiAgICAgdXBkYXRlVmFsaWRpdHkoKTsKIH0KIAotZG91YmxlIEhU
TUxJbnB1dEVsZW1lbnQ6OnZhbHVlQXNEYXRlKCkgY29uc3QKK1dhbGxUaW1lIEhUTUxJbnB1dEVs
ZW1lbnQ6OnZhbHVlQXNEYXRlKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnZh
bHVlQXNEYXRlKCk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNl
dFZhbHVlQXNEYXRlKGRvdWJsZSB2YWx1ZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVs
ZW1lbnQ6OnNldFZhbHVlQXNEYXRlKFdhbGxUaW1lIHZhbHVlKQogewogICAgIHJldHVybiBtX2lu
cHV0VHlwZS0+c2V0VmFsdWVBc0RhdGUodmFsdWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaAppbmRleCAxOTk4NDRjZmE3YzU3MzVjYjRkNzIzMGViNWQzZGI5MGZhNTkz
ZjViLi43NTA2YzI4NjQ1NDdhZjg1ZGQ4OTJlYmUwMTMwNzAxYjFiNmY4NTA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMTg0LDggKzE4NCw4IEBAIHB1YmxpYzoK
ICAgICAvLyBUaGUgdmFsdWUgd2hpY2ggaXMgZHJhd24gYnkgYSByZW5kZXJlci4KICAgICBTdHJp
bmcgdmlzaWJsZVZhbHVlKCkgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgdmFs
dWVBc0RhdGUoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRWYWx1ZUFzRGF0ZShkb3VibGUpOworICAgIFdFQkNPUkVfRVhQT1JUIFdhbGxUaW1lIHZhbHVl
QXNEYXRlKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0
VmFsdWVBc0RhdGUoV2FsbFRpbWUpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIHZhbHVl
QXNOdW1iZXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciA9IERpc3BhdGNo
Tm9FdmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA1
MTcxYjljZGM3ODkzMTcxZTIxZTVmNGJmNTUwMTdlZjk0NGFjNzk1Li5lYzgzNTFjMDk3NzQ4YjE0
OWE5NDQzOWJhYjY5NTc4ZWU5MDAxYTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTExMTEsMTEgKzExMTEsMTIgQEAgU3RyaW5nIEhUTUxNZWRpYUVsZW1l
bnQ6OmNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiAgICAgcmV0dXJu
IGNhblBsYXk7CiB9CiAKLWRvdWJsZSBIVE1MTWVkaWFFbGVtZW50OjpnZXRTdGFydERhdGUoKSBj
b25zdAorV2FsbFRpbWUgSFRNTE1lZGlhRWxlbWVudDo6Z2V0U3RhcnREYXRlKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fcGxheWVyKQotICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxk
b3VibGU+OjpxdWlldF9OYU4oKTsKLSAgICByZXR1cm4gbV9wbGF5ZXItPmdldFN0YXJ0RGF0ZSgp
LnRvRG91YmxlKCk7CisgICAgICAgIHJldHVybiBXYWxsVGltZTo6bmFuKCk7CisKKyAgICByZXR1
cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKG1fcGxheWVyLT5nZXRTdGFydERhdGUoKS50b0Rv
dWJsZSgpKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggNjk1NjY5NDk2MzEwZWY5MTA4Yjk1NmZkYTQ4
MjE0MzAxNDk3MGVjYi4uNmI0MDRhYTg3MzUyNzc3YjQ3MTgzNWYxMjBmZjE1N2NlZWQ4NGE2OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTQ2LDYgKzQ2LDcgQEAK
ICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+
CiAjaW5jbHVkZSA8d3RmL09ic2VydmVyLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogI2lmIFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFU
Rk9STShNQUMpCkBAIC0yNDIsNyArMjQzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3VycmVu
dFRpbWVXaXRoVG9sZXJhbmNlKGRvdWJsZSwgZG91YmxlIHRvbGVyYW5jZUJlZm9yZSwgZG91Ymxl
IHRvbGVyYW5jZUFmdGVyKTsKICAgICBkb3VibGUgY3VycmVudFRpbWVGb3JCaW5kaW5ncygpIGNv
bnN0IHsgcmV0dXJuIGN1cnJlbnRUaW1lKCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRp
b25Pcjx2b2lkPiBzZXRDdXJyZW50VGltZUZvckJpbmRpbmdzKGRvdWJsZSk7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgZG91YmxlIGdldFN0YXJ0RGF0ZSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JU
IFdhbGxUaW1lIGdldFN0YXJ0RGF0ZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJs
ZSBkdXJhdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcGF1
c2VkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRQYXVzZWQoYm9vbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZWIwZTg0MWFkOWZjMDBhNjJhMmQ5NDYzMGNmYjcxMTAw
ZjRlMDYyOC4uY2ZlYzY3OTc0MTU2NmNlNjBmZGMzNDI5ZTIyZDQyNzYzODgzNzU1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMjA0LDEyICsyMDQsMTIgQEAgYm9vbCBJbnB1dFR5
cGU6OmFwcGVuZEZvcm1EYXRhKERPTUZvcm1EYXRhJiBmb3JtRGF0YSkgY29uc3QKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotZG91YmxlIElucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAorV2Fs
bFRpbWUgSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIERhdGVD
b21wb25lbnRzOjppbnZhbGlkTWlsbGlzZWNvbmRzKCk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpu
YW4oKTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShk
b3VibGUpIGNvbnN0CitFeGNlcHRpb25Pcjx2b2lkPiBJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRl
KFdhbGxUaW1lKSBjb25zdAogewogICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggZGExZGViY2I2YjlmYzA1MmZk
NjNiNTRiOTYyMGMyMGE3MDQzMzI2OC4uZTBlYWE4MTFkZGI0MTUxN2IyODczYWI2NmEzNzYyMmZi
NjY4N2VkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0yMjAsOCArMjIwLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKTsgLy8g
Q2hlY2tlZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0dHJp
YnV0ZS4KICAgICB2aXJ0dWFsIFN0cmluZyBmYWxsYmFja1ZhbHVlKCkgY29uc3Q7IC8vIENoZWNr
ZWQgbGFzdCwgaWYgYm90aCBpbnRlcm5hbCBzdG9yYWdlIGFuZCB2YWx1ZSBhdHRyaWJ1dGUgYXJl
IG1pc3NpbmcuCiAgICAgdmlydHVhbCBTdHJpbmcgZGVmYXVsdFZhbHVlKCkgY29uc3Q7IC8vIENo
ZWNrZWQgYWZ0ZXIgZXZlbiBmYWxsYmFja1ZhbHVlLCBvbmx5IHdoZW4gdGhlIHZhbHVlV2l0aERl
ZmF1bHQgZnVuY3Rpb24gaXMgY2FsbGVkLgotICAgIHZpcnR1YWwgZG91YmxlIHZhbHVlQXNEYXRl
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0ZShk
b3VibGUpIGNvbnN0OworICAgIHZpcnR1YWwgV2FsbFRpbWUgdmFsdWVBc0RhdGUoKSBjb25zdDsK
KyAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKFdhbGxUaW1lKSBj
b25zdDsKICAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRG91YmxlKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRG91YmxlKGRvdWJsZSwgVGV4dEZpZWxk
RXZlbnRCZWhhdmlvcikgY29uc3Q7CiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRW
YWx1ZUFzRGVjaW1hbChjb25zdCBEZWNpbWFsJiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCmluZGV4IDg5MThlZTFjOWM0
MGRiNDA1NDkyNzRlMWJkYmQzNTY2M2Q0NDRkMjcuLjE5ODNjNDA5OThmMDY1N2IxN2QxZDgwZGVi
MjgwYmQ2MmU3NDU4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCkBA
IC02NCwxNSArNjQsMTUgQEAgRGF0ZUNvbXBvbmVudHNUeXBlIE1vbnRoSW5wdXRUeXBlOjpkYXRl
VHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIERhdGVDb21wb25lbnRzVHlwZTo6TW9udGg7CiB9CiAK
LWRvdWJsZSBNb250aElucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAorV2FsbFRpbWUgTW9u
dGhJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoZWxlbWVudCgp
KTsKICAgICBhdXRvIGRhdGUgPSBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoZWxlbWVudCgpLT52YWx1
ZSgpKTsKICAgICBpZiAoIWRhdGUpCi0gICAgICAgIHJldHVybiBEYXRlQ29tcG9uZW50czo6aW52
YWxpZE1pbGxpc2Vjb25kcygpOworICAgICAgICByZXR1cm4gV2FsbFRpbWU6Om5hbigpOwogICAg
IGRvdWJsZSBtc2VjID0gZGF0ZS0+bWlsbGlzZWNvbmRzU2luY2VFcG9jaCgpOwogICAgIEFTU0VS
VChzdGQ6OmlzZmluaXRlKG1zZWMpKTsKLSAgICByZXR1cm4gbXNlYzsKKyAgICByZXR1cm4gV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobXNlYykudmFs
dWUoKSk7CiB9CiAKIFN0cmluZyBNb250aElucHV0VHlwZTo6c2VyaWFsaXplV2l0aE1pbGxpc2Vj
b25kcyhkb3VibGUgdmFsdWUpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L01vbnRoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgK
aW5kZXggZGE0YzViYzhhNDNlMWYwNDY4ZjY4MDZkOTViNGYxZjQwNzU4Mjc5Yy4uNTcyNzhiNWRh
MDczODUyMjQxZjFhMTg3OWIwYTE2ODFhMWU0NmU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb250aElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJ
bnB1dFR5cGUuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGNvbnN0
IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIERhdGVD
b21wb25lbnRzVHlwZSBkYXRlVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGRvdWJsZSB2YWx1
ZUFzRGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIFdhbGxUaW1lIHZhbHVlQXNEYXRlKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIHNlcmlhbGl6ZVdpdGhNaWxsaXNlY29uZHMoZG91Ymxl
KSBjb25zdCBvdmVycmlkZTsKICAgICBEZWNpbWFsIHBhcnNlVG9OdW1iZXIoY29uc3QgU3RyaW5n
JiwgY29uc3QgRGVjaW1hbCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIERlY2ltYWwgZGVmYXVsdFZh
bHVlRm9yU3RlcFVwKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCmluZGV4
IDYyODZiNjUyMTI2ZTBkZDEzM2QyYzI0ZTQ3ZmNkN2NkYzczNzZhNzMuLjM2ODc5ZWZlZmNmOGY1
YzZiOGFjY2NkNmY1ZDk1ZjY1OTQ2MWZlZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC0y
ODIsNyArMjgyLDcgQEAgc3RhdGljIFJlZlB0cjxJREJLZXk+IGlkYktleUZyb21JbnNwZWN0b3JP
YmplY3QoUmVmPEpTT046Ok9iamVjdD4mJiBrZXkpCiAgICAgICAgIGF1dG8gZGF0ZSA9IGtleS0+
Z2V0RG91YmxlKFByb3RvY29sOjpJbmRleGVkREI6OktleTo6ZGF0ZUtleSk7CiAgICAgICAgIGlm
ICghZGF0ZSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICByZXR1cm4gSURC
S2V5OjpjcmVhdGVEYXRlKCpkYXRlKTsKKyAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlRGF0
ZShXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcygqZGF0
ZSkudmFsdWUoKSkpOwogICAgIH0KIAogICAgIGNhc2UgUHJvdG9jb2w6OkluZGV4ZWREQjo6S2V5
OjpUeXBlOjpBcnJheTogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9N
L0RPTUZpbGUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NRmlsZS5tbQppbmRl
eCBkNThmZDA1NjM1NzFiNjU2MWIyZDQ3NmY2YTJhMGNmNDBhOWYxZDAyLi45YWMzMzJkN2FhMDcy
NzhmZTIxZmFiZmNkYWYyYTA4MWJmMmQzYWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9ET00vRE9NRmlsZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00v
RE9NRmlsZS5tbQpAQCAtNDgsNyArNDgsNyBAQCAtIChOU1N0cmluZyAqKW5hbWUKIC0gKGxvbmcg
bG9uZylsYXN0TW9kaWZpZWQKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPmxhc3RNb2RpZmllZCgpOworICAgIHJldHVybiBJTVBM
LT5sYXN0TW9kaWZpZWRGb3JCaW5kaW5ncygpOwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01IVE1MTWVkaWFFbGVtZW50Lm1tCmluZGV4IDNmMmJlZTNj
ZGNhYjllZDZiOTAzMmZmMTgwMGIzNGIzMDc5ZjY2NmYuLjlhZTE3Y2IxNTBkOTgwZWY4YjZmZTgy
OWYxNGNiZTVjYzg0YTU3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RP
TS9ET01IVE1MTWVkaWFFbGVtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RP
TS9ET01IVE1MTWVkaWFFbGVtZW50Lm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbXBvcnQgIkRP
TUhUTUxNZWRpYUVsZW1lbnQuaCIKIAorI2ltcG9ydCAiRE9NSW50ZXJuYWwuaCIKICNpbXBvcnQg
IkRPTU1lZGlhRXJyb3JJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAj
aW1wb3J0ICJET01UaW1lUmFuZ2VzSW50ZXJuYWwuaCIKQEAgLTMxMyw3ICszMTQsNyBAQCAtIChO
U1N0cmluZyAqKWNhblBsYXlUeXBlOihOU1N0cmluZyAqKXR5cGUKIC0gKE5TVGltZUludGVydmFs
KWdldFN0YXJ0RGF0ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKLSAgICByZXR1cm4gSU1QTC0+Z2V0U3RhcnREYXRlKCk7CisgICAgcmV0dXJuIGtpdChJTVBM
LT5nZXRTdGFydERhdGUoKSk7CiB9CiAKIC0gKHZvaWQpcGxheQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9ET00vRE9NSW50ZXJuYWwuaAppbmRleCA5ZTcxYzRiZDUzYjQyYzk2YmI4YmIwMDRmMzAz
YjA3MjBhMGUzZjc4Li5iYTViMmU2M2Q5ZTA2ODc5OTMzNTcxYzE5N2FiMjcxYmRkNzJkZWNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSW50ZXJuYWwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSW50ZXJuYWwuaApAQCAtMjksNiArMjks
NyBAQAogI2ltcG9ydCAiRE9NT2JqZWN0LmgiCiAjaW1wb3J0ICJET01YUGF0aE5TUmVzb2x2ZXIu
aCIKICNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+CisjaW1wb3J0IDx3dGYvV2FsbFRpbWUuaD4KIAog
bmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSlNPYmplY3Q7CkBAIC03NywxMiArNzgsMTIgQEAg
V2ViQ29yZTo6Tm9kZUZpbHRlciogY29yZShET01Ob2RlRmlsdGVyICopOwogRE9NTmF0aXZlWFBh
dGhOU1Jlc29sdmVyICpraXQoV2ViQ29yZTo6WFBhdGhOU1Jlc29sdmVyKik7CiBXZWJDb3JlOjpY
UGF0aE5TUmVzb2x2ZXIqIGNvcmUoRE9NTmF0aXZlWFBhdGhOU1Jlc29sdmVyICopOwogCi1pbmxp
bmUgTlNUaW1lSW50ZXJ2YWwga2l0KGRvdWJsZSBtc1NpbmNlRXBvY2gpCitpbmxpbmUgTlNUaW1l
SW50ZXJ2YWwga2l0KFdhbGxUaW1lIHRpbWUpCiB7Ci0gICAgcmV0dXJuIG1zU2luY2VFcG9jaCAv
IDEwMDAuMCAtIE5TVGltZUludGVydmFsU2luY2UxOTcwOworICAgIHJldHVybiB0aW1lLnNlY29u
ZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAtIE5TVGltZUludGVydmFsU2luY2UxOTcwOwogfQogCi1p
bmxpbmUgZG91YmxlIGNvcmUoTlNUaW1lSW50ZXJ2YWwgc2VjKQoraW5saW5lIFdhbGxUaW1lIGNv
cmUoTlNUaW1lSW50ZXJ2YWwgc2VjKQogewotICAgIHJldHVybiBzZWMgKiAxMDAwLjAgKyBOU1Rp
bWVJbnRlcnZhbFNpbmNlMTk3MDsKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KHNlYyArIE5TVGltZUludGVydmFsU2luY2UxOTcwKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445895</attachid>
            <date>2021-12-03 14:00:52 -0800</date>
            <delta_ts>2021-12-03 14:35:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233781-20211203150051.patch</filename>
            <type>text/plain</type>
            <size>24630</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NjgzZjkwOGQ3NGZhMTI0MDY0ZTM5YjA2ZDNmYjUzOTgxOTgwNWQzLi4y
NjFlM2QyNDFlMjE5NjUyZTI2YjAwZjJiOTAxM2Q0NTg4NjU2M2NlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTQgQEAKKzIwMjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENoYW5nZSBJREwgYERhdGVgIHRvIGJlIGJhY2tlZCBieSBgV2FsbFRpbWVg
IHRvIGF2b2lkIGNvbmZ1c2lvbiB3aGVuIGNvbnZlcnRpbmcgdG8gbmF0aXZlIGRhdGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3ODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBKUyBgRGF0ZWAgaXMgbWls
bGlzZWNvbmRzLWJhc2VkLCBidXQgc29tZSBuYXRpdmUgZGF0ZXMgKGUuZy4gYE5TRGF0ZWApIGFy
ZSBzZWNvbmRzLWJhc2VkLgorICAgICAgICBgV2FsbFRpbWVgIHdpbGwgaGVscCBhdm9pZCBjb25m
dXNpb24gc2luY2Ugbm90IGEgZ2VuZXJpYyB0eXBlIChlLmcuIGBkb3VibGVgKSBhbmQgaW5zdGVh
ZAorICAgICAgICBoYXMgZXhwbGljaXRseSBkZWZpbmVkIGNvbnZlcnNpb24gbWV0aG9kcyB0byBz
ZWNvbmRzLCBtaWxsaXNlY29uZHMsIGV0Yy4uCisKKyAgICAgICAgKiBiaW5kaW5ncy9JRExUeXBl
cy5oOgorICAgICAgICAoV2ViQ29yZTo6SURMRGF0ZTo6bnVsbFZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OklETERhdGU6OmlzTnVsbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklETERhdGU6
OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01D
b252ZXJ0RGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udmVydGVyPElETERhdGU+Ojpjb252
ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29udmVydGVyPElETERhdGU+Ojpjb252ZXJ0KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmpzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVRvRGF0ZSk6CisKKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TGluZUl0ZW0uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxlUGF5TGluZUl0ZW06OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBh
eS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjp0
b0RhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0KToKKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRWYWx1ZUFz
RGF0ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzRGF0
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNl
dFZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5
cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6dmFsdWVBc0RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpnZXRTdGFydERhdGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvSW5w
dXRUeXBlLmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1
dFR5cGU6OnNldFZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNb250aElucHV0VHlwZTo6dmFsdWVBc0RhdGUgY29uc3QpOgorCiAyMDIxLTEyLTAzICBB
bGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIFNldCB0
aGUgZmlyc3QvbGFzdCBib3ggZmxhZyBvbiB0aGUgKGJpZGkgZnJhZ21lbnRlZCkgaW5saW5lIGJv
eCB0eXBlIG9mIGRpc3BsYXkgYm94ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA3
NmFhNmFhZjg0ZGViMDgyZTRjODQzMjI0OTMzODBkODMzZGU5MmQxLi44NmViYmE0YmZlOWZhZmUx
Yjk0OTFkYmEyODVmMmJlNGI5OGMwOWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgorCisgICAgICAgIENoYW5nZSBJREwgYERhdGVgIHRvIGJlIGJhY2tlZCBieSBgV2FsbFRp
bWVgIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aGVuIGNvbnZlcnRpbmcgdG8gbmF0aXZlIGRhdGVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3ODEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBKUyBgRGF0ZWAgaXMg
bWlsbGlzZWNvbmRzLWJhc2VkLCBidXQgc29tZSBuYXRpdmUgZGF0ZXMgKGUuZy4gYE5TRGF0ZWAp
IGFyZSBzZWNvbmRzLWJhc2VkLgorICAgICAgICBgV2FsbFRpbWVgIHdpbGwgaGVscCBhdm9pZCBj
b25mdXNpb24gc2luY2Ugbm90IGEgZ2VuZXJpYyB0eXBlIChlLmcuIGBkb3VibGVgKSBhbmQgaW5z
dGVhZAorICAgICAgICBoYXMgZXhwbGljaXRseSBkZWZpbmVkIGNvbnZlcnNpb24gbWV0aG9kcyB0
byBzZWNvbmRzLCBtaWxsaXNlY29uZHMsIGV0Yy4uCisKKyAgICAgICAgKiBET00vRE9NSW50ZXJu
YWwuaDoKKyAgICAgICAgKGtpdCk6CisgICAgICAgIChjb3JlKToKKworICAgICAgICAqIERPTS9E
T01IVE1MTWVkaWFFbGVtZW50Lm1tOgorICAgICAgICAoLVtET01IVE1MTWVkaWFFbGVtZW50IGdl
dFN0YXJ0RGF0ZV0pOgorCiAyMDIxLTEyLTAyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVs
ZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gSG9vayB1cCBuYXZpZ2F0b3IuZ3B1LnJl
cXVlc3RBZGFwdGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlMaW5lSXRlbS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheUxpbmVJdGVtLmgKaW5kZXggOTllZWZiYWIxMTMzNDMxY2M1YTA3MDJmY2NkMDk4YTE5
M2Y0YzcyYi4uNmEzNDQzN2E0NDhlODcwMGYxZWI2YmE4OTVkZmJiZWM1Y2VhN2I4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUxpbmVJdGVtLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUxpbmVJdGVtLmgK
QEAgLTI5LDggKzI5LDggQEAKIAogI2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVudFRpbWluZy5oIgog
I2luY2x1ZGUgIkFwcGxlUGF5UmVjdXJyaW5nUGF5bWVudERhdGVVbml0LmgiCi0jaW5jbHVkZSA8
bGltaXRzPgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKQEAgLTUyLDE0ICs1MiwxNCBAQCBzdHJ1Y3QgQXBwbGVQYXlMaW5lSXRlbSBmaW5hbCB7
CiAgICAgQXBwbGVQYXlQYXltZW50VGltaW5nIHBheW1lbnRUaW1pbmcgeyBBcHBsZVBheVBheW1l
bnRUaW1pbmc6OkltbWVkaWF0ZSB9OwogCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9SRUNVUlJJTkdf
TElORV9JVEVNKQotICAgIGRvdWJsZSByZWN1cnJpbmdQYXltZW50U3RhcnREYXRlIHsgc3RkOjpu
dW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworICAgIFdhbGxUaW1lIHJlY3Vy
cmluZ1BheW1lbnRTdGFydERhdGUgeyBXYWxsVGltZTo6bmFuKCkgfTsKICAgICBBcHBsZVBheVJl
Y3VycmluZ1BheW1lbnREYXRlVW5pdCByZWN1cnJpbmdQYXltZW50SW50ZXJ2YWxVbml0IHsgQXBw
bGVQYXlSZWN1cnJpbmdQYXltZW50RGF0ZVVuaXQ6Ok1vbnRoIH07CiAgICAgdW5zaWduZWQgcmVj
dXJyaW5nUGF5bWVudEludGVydmFsQ291bnQgPSAxOwotICAgIGRvdWJsZSByZWN1cnJpbmdQYXlt
ZW50RW5kRGF0ZSB7IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsK
KyAgICBXYWxsVGltZSByZWN1cnJpbmdQYXltZW50RW5kRGF0ZSB7IFdhbGxUaW1lOjpuYW4oKSB9
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0RFRkVSUkVEX0xJTkVfSVRFTSkKLSAg
ICBkb3VibGUgZGVmZXJyZWRQYXltZW50RGF0ZSB7IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91Ymxl
Pjo6cXVpZXRfTmFOKCkgfTsKKyAgICBXYWxsVGltZSBkZWZlcnJlZFBheW1lbnREYXRlIHsgV2Fs
bFRpbWU6Om5hbigpIH07CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQXBwbGVQYXlMaW5lSXRlbUFk
ZGl0aW9uc19tZW1iZXJzKQpAQCAtMTA1LDEzICsxMDUsMTMgQEAgc3RkOjpvcHRpb25hbDxBcHBs
ZVBheUxpbmVJdGVtPiBBcHBsZVBheUxpbmVJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
ICAgICBERUNPREUoYW1vdW50LCBTdHJpbmcpCiAgICAgREVDT0RFKHBheW1lbnRUaW1pbmcsIEFw
cGxlUGF5UGF5bWVudFRpbWluZykKICNpZiBFTkFCTEUoQVBQTEVfUEFZX1JFQ1VSUklOR19MSU5F
X0lURU0pCi0gICAgREVDT0RFKHJlY3VycmluZ1BheW1lbnRTdGFydERhdGUsIGRvdWJsZSkKKyAg
ICBERUNPREUocmVjdXJyaW5nUGF5bWVudFN0YXJ0RGF0ZSwgV2FsbFRpbWUpCiAgICAgREVDT0RF
KHJlY3VycmluZ1BheW1lbnRJbnRlcnZhbFVuaXQsIEFwcGxlUGF5UmVjdXJyaW5nUGF5bWVudERh
dGVVbml0KQogICAgIERFQ09ERShyZWN1cnJpbmdQYXltZW50SW50ZXJ2YWxDb3VudCwgdW5zaWdu
ZWQpCi0gICAgREVDT0RFKHJlY3VycmluZ1BheW1lbnRFbmREYXRlLCBkb3VibGUpCisgICAgREVD
T0RFKHJlY3VycmluZ1BheW1lbnRFbmREYXRlLCBXYWxsVGltZSkKICNlbmRpZgogI2lmIEVOQUJM
RShBUFBMRV9QQVlfREVGRVJSRURfTElORV9JVEVNKQotICAgIERFQ09ERShkZWZlcnJlZFBheW1l
bnREYXRlLCBkb3VibGUpCisgICAgREVDT0RFKGRlZmVycmVkUGF5bWVudERhdGUsIFdhbGxUaW1l
KQogI2VuZGlmCiAjaWYgZGVmaW5lZChBcHBsZVBheUxpbmVJdGVtQWRkaXRpb25zX2RlY29kZV9t
ZW1iZXJzKQogICAgIEFwcGxlUGF5TGluZUl0ZW1BZGRpdGlvbnNfZGVjb2RlX21lbWJlcnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1
bW1hcnlJdGVtc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2Nv
YS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KaW5kZXggOTQxYTllZjFkODBlZWU4NTA3MTU0
YzIxNmQ3NzAwNjdkNzQxMGIxYS4uNWYxYzMxYjZlOWUxZTllZTIzOTMwZmRkMmRlMWY5MzViZjIz
ZWJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9Q
YXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KQEAgLTYwLDkgKzYwLDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgSEFWRShQQVNTS0lUX1JFQ1VSUklOR19TVU1N
QVJZX0lURU0pIHx8IEhBVkUoUEFTU0tJVF9ERUZFUlJFRF9TVU1NQVJZX0lURU0pCiAKLXN0YXRp
YyBOU0RhdGUgKnRvRGF0ZShkb3VibGUgZGF0ZSkKK3N0YXRpYyBOU0RhdGUgKnRvRGF0ZShXYWxs
VGltZSBkYXRlKQogewotICAgIHJldHVybiBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2lu
Y2UxOTcwOihkYXRlIC8gMTAwMCldOworICAgIHJldHVybiBbTlNEYXRlIGRhdGVXaXRoVGltZUlu
dGVydmFsU2luY2UxOTcwOmRhdGUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpXTsKIH0KIAog
I2VuZGlmIC8vIEhBVkUoUEFTU0tJVF9SRUNVUlJJTkdfU1VNTUFSWV9JVEVNKSB8fCBIQVZFKFBB
U1NLSVRfREVGRVJSRURfU1VNTUFSWV9JVEVNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvSURMVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgK
aW5kZXggZmQwOTlmNTQzNzhhMTk5NWQzZjE0Nzg4OTk3NTgwY2NjOGVmOWM1NS4uOWY2MTJhNjFl
NGI5Yjc0YzEzNTJiMTdhY2RiYjY3ZGI0NmM5OGY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvSURMVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExU
eXBlcy5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8d3RmL0JyaWdhbmQuaD4KICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUg
PHd0Zi9XYWxsVGltZS5oPgogCiAjaWYgRU5BQkxFKFdFQkdMKQogI2luY2x1ZGUgIldlYkdMQW55
LmgiCkBAIC0yNTksMTEgKzI2MCwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgSURM
VHlwZWRBcnJheSA6IElETEJ1ZmZlclNvdXJjZTxUPiB7IH07CiAKIC8vIE5vbi1XZWJJREwgZXh0
ZW5zaW9ucwogCi1zdHJ1Y3QgSURMRGF0ZSA6IElETFR5cGU8ZG91YmxlPiB7IAotICAgIHVzaW5n
IE51bGxhYmxlVHlwZSA9IGRvdWJsZTsKLSAgICBzdGF0aWMgZG91YmxlIG51bGxWYWx1ZSgpIHsg
cmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7IH0KLSAgICBz
dGF0aWMgYm9vbCBpc051bGxWYWx1ZShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIHN0ZDo6aXNuYW4o
dmFsdWUpOyB9Ci0gICAgc3RhdGljIGRvdWJsZSBleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUoZG91
YmxlIHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfQorc3RydWN0IElETERhdGUgOiBJRExUeXBlPFdh
bGxUaW1lPiB7IAorICAgIHVzaW5nIE51bGxhYmxlVHlwZSA9IFdhbGxUaW1lOworICAgIHN0YXRp
YyBXYWxsVGltZSBudWxsVmFsdWUoKSB7IHJldHVybiBXYWxsVGltZTo6bmFuKCk7IH0KKyAgICBz
dGF0aWMgYm9vbCBpc051bGxWYWx1ZShXYWxsVGltZSB2YWx1ZSkgeyByZXR1cm4gc3RkOjppc25h
bih2YWx1ZSk7IH0KKyAgICBzdGF0aWMgV2FsbFRpbWUgZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxl
KFdhbGxUaW1lIHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfQogfTsKIAogc3RydWN0IElETEpTT04g
OiBJRExUeXBlPFN0cmluZz4geyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SURCQmluZGluZ1V0aWxpdGllcy5jcHAKaW5kZXggOWU1NjcyMWQzZWRhY2Q4YjkwYmJiNzBkNDMx
M2UxZjcwMWZlOTE5My4uODkzMjk4OTZlNjYyZDNiYjIzZDExOTBiMDUzMGViNTU5ZGM0ODgyMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGll
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGll
cy5jcHAKQEAgLTE3Nyw3ICsxNzcsNyBAQCBKU1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsCiAgICAgY2Fz
ZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBwcm9iYWJseSBiZSB0b0pTPElETERhdGU+KC4uLikgYXMgcGVyOgogICAgICAgICAvLyBodHRw
Oi8vdzNjLmdpdGh1Yi5pby9JbmRleGVkREIvI3JlcXVlc3QtY29udmVydC1hLWtleS10by1hLXZh
bHVlCi0gICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgdG9KUzxJRExOdWxsYWJsZTxJ
RExEYXRlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwga2V5LT5kYXRlKCkpKTsKKyAgICAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCB0b0pTPElETE51bGxhYmxlPElETERhdGU+PihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoU2Vjb25kczo6ZnJvbU1pbGxp
c2Vjb25kcyhrZXktPmRhdGUoKSkpKSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51
bWJlcjoKICAgICAgICAgcmV0dXJuIGpzTnVtYmVyKGtleS0+bnVtYmVyKCkpOwogICAgIGNhc2Ug
SW5kZXhlZERCOjpLZXlUeXBlOjpNaW46CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQ29udmVydERhdGUuY3BwCmluZGV4IDEzNjdlZDI1NDcyMTFhMzdiZjc1Mzg0ZDgzOWE4
ZmRlYTMyNTljNzYuLmQ4MDcwYzhjMTU1Y2YyZjcyYWVmNTRkODI2OWY0NjdjOGM1MTczNTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3BwCkBA
IC0zMCwyMSArMzAsMjQgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBK
U0M7CiAKLUpTVmFsdWUganNEYXRlKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBkb3VibGUgdmFsdWUpCitKU1ZhbHVlIGpzRGF0ZShKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgV2FsbFRpbWUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIERhdGVJbnN0YW5jZTo6
Y3JlYXRlKGxleGljYWxHbG9iYWxPYmplY3Qudm0oKSwgbGV4aWNhbEdsb2JhbE9iamVjdC5kYXRl
U3RydWN0dXJlKCksIHZhbHVlKTsKKyAgICByZXR1cm4gRGF0ZUluc3RhbmNlOjpjcmVhdGUobGV4
aWNhbEdsb2JhbE9iamVjdC52bSgpLCBsZXhpY2FsR2xvYmFsT2JqZWN0LmRhdGVTdHJ1Y3R1cmUo
KSwgdmFsdWUuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKSk7CiB9CiAKLWRvdWJs
ZSB2YWx1ZVRvRGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKQorV2FsbFRpbWUgdmFsdWVUb0RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKKyAgICBkb3VibGUgbWlsbGlz
ZWNvbmRzID0gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKwogICAg
IGF1dG8mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC52bSgpOwogICAgIGlmICh2YWx1ZS5pbmhl
cml0czxEYXRlSW5zdGFuY2U+KHZtKSkKLSAgICAgICAgcmV0dXJuIGpzQ2FzdDxEYXRlSW5zdGFu
Y2UqPih2YWx1ZSktPmludGVybmFsTnVtYmVyKCk7Ci0gICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkp
Ci0gICAgICAgIHJldHVybiB2YWx1ZS5hc051bWJlcigpOwotICAgIGlmICh2YWx1ZS5pc1N0cmlu
ZygpKQotICAgICAgICByZXR1cm4gdm0uZGF0ZUNhY2hlLnBhcnNlRGF0ZSgmbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdm0sIHZhbHVlLmdldFN0cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCkpOwotICAg
IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgICAg
ICBtaWxsaXNlY29uZHMgPSBqc0Nhc3Q8RGF0ZUluc3RhbmNlKj4odmFsdWUpLT5pbnRlcm5hbE51
bWJlcigpOworICAgIGVsc2UgaWYgKHZhbHVlLmlzTnVtYmVyKCkpCisgICAgICAgIG1pbGxpc2Vj
b25kcyA9IHZhbHVlLmFzTnVtYmVyKCk7CisgICAgZWxzZSBpZiAodmFsdWUuaXNTdHJpbmcoKSkK
KyAgICAgICAgbWlsbGlzZWNvbmRzID0gdm0uZGF0ZUNhY2hlLnBhcnNlRGF0ZSgmbGV4aWNhbEds
b2JhbE9iamVjdCwgdm0sIHZhbHVlLmdldFN0cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCkpOwor
CisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlz
ZWNvbmRzKG1pbGxpc2Vjb25kcykudmFsdWUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuaAppbmRl
eCA1NjI0MjkyOWY3MmRjYzVlNGQ0NDA0MjgxMTEyZWJlMDdhZjhiNjc0Li5kMTIzNjFmZDZmZjFl
MWU2MTBiM2YxMjE4ZTgwNjhmODY4YzI3Y2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01Db252ZXJ0RGF0ZS5oCkBAIC0yOCwxNCArMjgsMTUgQEAKICNpbmNsdWRlICJJ
RExUeXBlcy5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydEJhc2UuaCIKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU0dsb2JhbE9iamVjdC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUpTQzo6SlNWYWx1ZSBqc0RhdGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCYsIGRvdWJsZSB2YWx1ZSk7Ci1kb3VibGUgdmFsdWVUb0RhdGUoSlNDOjpKU0dsb2Jh
bE9iamVjdCYsIEpTQzo6SlNWYWx1ZSk7IC8vIE5hTiBpZiB0aGUgdmFsdWUgY2FuJ3QgYmUgY29u
dmVydGVkIHRvIGEgZGF0ZS4KK0pTQzo6SlNWYWx1ZSBqc0RhdGUoSlNDOjpKU0dsb2JhbE9iamVj
dCYsIFdhbGxUaW1lIHZhbHVlKTsKK1dhbGxUaW1lIHZhbHVlVG9EYXRlKEpTQzo6SlNHbG9iYWxP
YmplY3QmLCBKU0M6OkpTVmFsdWUpOyAvLyBOYU4gaWYgdGhlIHZhbHVlIGNhbid0IGJlIGNvbnZl
cnRlZCB0byBhIGRhdGUuCiAKIHRlbXBsYXRlPD4gc3RydWN0IENvbnZlcnRlcjxJRExEYXRlPiA6
IERlZmF1bHRDb252ZXJ0ZXI8SURMRGF0ZT4gewotICAgIHN0YXRpYyBkb3VibGUgY29udmVydChK
U0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgdmFs
dWUpCisgICAgc3RhdGljIFdhbGxUaW1lIGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0
dXJuIHZhbHVlVG9EYXRlKGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICB9CkBAIC00
Niw3ICs0Nyw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IEpTQ29udmVydGVyPElETERhdGU+IHsKICAg
ICBzdGF0aWMgY29uc3RleHByIGJvb2wgbmVlZHNHbG9iYWxPYmplY3QgPSBmYWxzZTsKIAogICAg
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0YWtpbmcgYSBKU0RPTUdsb2JhbE9iamVjdCBhbmQg
cGFzc2luZyBpdCB0byBqc0RhdGUuCi0gICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBjb252ZXJ0KEpT
Qzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSkKKyAg
ICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgV2FsbFRpbWUgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4ganNE
YXRlKGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggNTYwYTRjZjk2YjY4
YTIxYjc4MzI4Njg0MWMwNTQwMmJjOWFkNjM0ZS4uNmMzODFhYTcwMWM5NDA3MjY2MWNlMGUxNTJm
MjU5MWI1NDcxNDk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcApAQCAtMTI3LDE1ICsxMjcsMTUgQEAgQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlOjp+QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKCkKICAgICBjbG9zZURhdGVUaW1lQ2hv
b3NlcigpOwogfQogCi1kb3VibGUgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzRGF0
ZSgpIGNvbnN0CitXYWxsVGltZSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlQXNEYXRl
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gdmFsdWVBc0RvdWJsZSgpOworICAgIHJldHVybiBXYWxs
VGltZTo6ZnJvbVJhd1NlY29uZHMoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh2YWx1ZUFzRG91
YmxlKCkpLnZhbHVlKCkpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlKGRvdWJsZSB2YWx1ZSkgY29uc3QKK0V4Y2VwdGlvbk9y
PHZvaWQ+IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUoV2FsbFRpbWUg
dmFsdWUpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7Ci0gICAgZWxlbWVudCgpLT5z
ZXRWYWx1ZShzZXJpYWxpemVXaXRoTWlsbGlzZWNvbmRzKHZhbHVlKSk7CisgICAgZWxlbWVudCgp
LT5zZXRWYWx1ZShzZXJpYWxpemVXaXRoTWlsbGlzZWNvbmRzKHZhbHVlLnNlY29uZHNTaW5jZUVw
b2NoKCkubWlsbGlzZWNvbmRzKCkpKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAppbmRleCBjNzI5YzkyMmFi
MzhiYThkOTRkNDc0NDU3MzNhZGEzMGM1OTVlMjc2Li42ODkxMDViMzY1MWM2M2JiOWZmZGFhMWU5
Y2QwODQxYzFkMDY0M2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRl
QW5kVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmgKQEAgLTEwMiw4ICsxMDIsOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyB2
aXNpYmxlVmFsdWUoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25z
dCBTdHJpbmcmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYs
IGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBmaW5hbDsKLSAgICBk
b3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRWYWx1ZUFzRGF0ZShkb3VibGUpIGNvbnN0IG92ZXJyaWRlOworICAgIFdhbGxUaW1lIHZh
bHVlQXNEYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFs
dWVBc0RhdGUoV2FsbFRpbWUpIGNvbnN0IG92ZXJyaWRlOwogICAgIGRvdWJsZSB2YWx1ZUFzRG91
YmxlKCkgY29uc3QgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RlY2lt
YWwoY29uc3QgRGVjaW1hbCYsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGNvbnN0IGZpbmFsOwog
ICAgIERlY2ltYWwgZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRleCA1OThh
OGJiZGY3NGY1N2IwZjdmZDE1ZTk3MDBkYmEzODZiYzIxNGVhLi5kYjE2ZGE3ZTQ5OWIxZTliYjc4
MzY5NzEzMTZiZWU5OGE2YmRlM2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Rh
dGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTYyLDEzICs2MiwxMyBAQCBEYXRlQ29tcG9uZW50c1R5
cGUgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6ZGF0ZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBE
YXRlQ29tcG9uZW50c1R5cGU6OkRhdGVUaW1lTG9jYWw7CiB9CiAKLWRvdWJsZSBEYXRlVGltZUxv
Y2FsSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CitXYWxsVGltZSBEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7CiAgICAgLy8gdmFsdWVBc0RhdGUgZG9l
c24ndCB3b3JrIGZvciB0aGUgZGF0ZXRpbWUtbG9jYWwgdHlwZSBhY2NvcmRpbmcgdG8gdGhlIHN0
YW5kYXJkLgotICAgIHJldHVybiBEYXRlQ29tcG9uZW50czo6aW52YWxpZE1pbGxpc2Vjb25kcygp
OworICAgIHJldHVybiBXYWxsVGltZTo6bmFuKCk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IERh
dGVUaW1lTG9jYWxJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlKGRvdWJsZSB2YWx1ZSkgY29uc3QK
K0V4Y2VwdGlvbk9yPHZvaWQ+IERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRl
KFdhbGxUaW1lIHZhbHVlKSBjb25zdAogewogICAgIC8vIHZhbHVlQXNEYXRlIGRvZXNuJ3Qgd29y
ayBmb3IgdGhlIGRhdGV0aW1lLWxvY2FsIHR5cGUgYWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZC4K
ICAgICByZXR1cm4gSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZSh2YWx1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCmluZGV4IDE2NmY1MDAwNDE2ZWM0
NjdhNWZlOTkzNDdiN2ZjOWEyMzkyNDEyODcuLjU2MGZiNjRkMDBhMmJhOGQyNzQyMWJmYjEwMWI1
YzBhNzI1MjFkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0
VHlwZS5oCkBAIC00Nyw4ICs0Nyw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgY29uc3QgQXRv
bVN0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7CiAgICAgRGF0ZUNvbXBvbmVu
dHNUeXBlIGRhdGVUeXBlKCkgY29uc3QgZmluYWw7Ci0gICAgZG91YmxlIHZhbHVlQXNEYXRlKCkg
Y29uc3QgZmluYWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoZG91Ymxl
KSBjb25zdCBmaW5hbDsKKyAgICBXYWxsVGltZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IGZpbmFsOwor
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKFdhbGxUaW1lKSBjb25zdCBmaW5h
bDsKICAgICBTdGVwUmFuZ2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3Qg
ZmluYWw7CiAgICAgc3RkOjpvcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21w
b25lbnRzKFN0cmluZ1ZpZXcpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8RGF0ZUNv
bXBvbmVudHM+IHNldE1pbGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0IGZp
bmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggMzg2MDIy
YTA3Mzg4NWRjZDYwZjc0ZWI3ZDc5ODBlYmNjMDgzMGY0Yy4uMWNjZDIzMjE1YWQ5NzlkOGZiZmVm
NDJkZjFlOTI1ZTNlNDg4NDFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCkBAIC0xMTA4LDEyICsxMTA4LDEyIEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0
VmFsdWVJbnRlcm5hbChjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBUZXh0RmllbGRFCiAg
ICAgdXBkYXRlVmFsaWRpdHkoKTsKIH0KIAotZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVl
QXNEYXRlKCkgY29uc3QKK1dhbGxUaW1lIEhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVlQXNEYXRlKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnZhbHVlQXNEYXRlKCk7CiB9CiAKLUV4
Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGRvdWJsZSB2
YWx1ZSkKK0V4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRl
KFdhbGxUaW1lIHZhbHVlKQogewogICAgIHJldHVybiBtX2lucHV0VHlwZS0+c2V0VmFsdWVBc0Rh
dGUodmFsdWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCAx
OTk4NDRjZmE3YzU3MzVjYjRkNzIzMGViNWQzZGI5MGZhNTkzZjViLi43NTA2YzI4NjQ1NDdhZjg1
ZGQ4OTJlYmUwMTMwNzAxYjFiNmY4NTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaApAQCAtMTg0LDggKzE4NCw4IEBAIHB1YmxpYzoKICAgICAvLyBUaGUgdmFsdWUgd2hp
Y2ggaXMgZHJhd24gYnkgYSByZW5kZXJlci4KICAgICBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29u
c3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdDsKLSAg
ICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0ZShkb3VibGUp
OworICAgIFdFQkNPUkVfRVhQT1JUIFdhbGxUaW1lIHZhbHVlQXNEYXRlKCkgY29uc3Q7CisgICAg
V0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoV2FsbFRpbWUp
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIHZhbHVlQXNOdW1iZXIoKSBjb25zdDsKICAg
ICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzTnVtYmVyKGRvdWJs
ZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA1MTcxYjljZGM3ODkzMTcxZTIxZTVm
NGJmNTUwMTdlZjk0NGFjNzk1Li5lYzgzNTFjMDk3NzQ4YjE0OWE5NDQzOWJhYjY5NTc4ZWU5MDAx
YTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTExMTEs
MTEgKzExMTEsMTIgQEAgU3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUpIGNvbnN0CiAgICAgcmV0dXJuIGNhblBsYXk7CiB9CiAKLWRvdWJs
ZSBIVE1MTWVkaWFFbGVtZW50OjpnZXRTdGFydERhdGUoKSBjb25zdAorV2FsbFRpbWUgSFRNTE1l
ZGlhRWxlbWVudDo6Z2V0U3RhcnREYXRlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGxheWVyKQot
ICAgICAgICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsK
LSAgICByZXR1cm4gbV9wbGF5ZXItPmdldFN0YXJ0RGF0ZSgpLnRvRG91YmxlKCk7CisgICAgICAg
IHJldHVybiBXYWxsVGltZTo6bmFuKCk7CisKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdT
ZWNvbmRzKG1fcGxheWVyLT5nZXRTdGFydERhdGUoKS50b0RvdWJsZSgpKTsKIH0KIAogdm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojpsb2FkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmgKaW5kZXggNjk1NjY5NDk2MzEwZWY5MTA4Yjk1NmZkYTQ4MjE0MzAxNDk3MGVjYi4uNmI0MDRh
YTg3MzUyNzc3YjQ3MTgzNWYxMjBmZjE1N2NlZWQ4NGE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTWVkaWFFbGVtZW50LmgKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDx3dGYvRnVuY3Rp
b24uaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL09ic2Vy
dmVyLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KIAogI2lmIFVTRShBVURJT19TRVNTSU9OKSAmJiBQTEFURk9STShNQUMpCkBAIC0yNDIsNyAr
MjQzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q3VycmVudFRpbWVXaXRoVG9sZXJhbmNlKGRv
dWJsZSwgZG91YmxlIHRvbGVyYW5jZUJlZm9yZSwgZG91YmxlIHRvbGVyYW5jZUFmdGVyKTsKICAg
ICBkb3VibGUgY3VycmVudFRpbWVGb3JCaW5kaW5ncygpIGNvbnN0IHsgcmV0dXJuIGN1cnJlbnRU
aW1lKCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDdXJyZW50
VGltZUZvckJpbmRpbmdzKGRvdWJsZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIGdldFN0
YXJ0RGF0ZSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFdhbGxUaW1lIGdldFN0YXJ0RGF0
ZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0IG92
ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcGF1c2VkKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdm9pZCBzZXRQYXVzZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5k
ZXggZWIwZTg0MWFkOWZjMDBhNjJhMmQ5NDYzMGNmYjcxMTAwZjRlMDYyOC4uY2ZlYzY3OTc0MTU2
NmNlNjBmZGMzNDI5ZTIyZDQyNzYzODgzNzU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNw
cApAQCAtMjA0LDEyICsyMDQsMTIgQEAgYm9vbCBJbnB1dFR5cGU6OmFwcGVuZEZvcm1EYXRhKERP
TUZvcm1EYXRhJiBmb3JtRGF0YSkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotZG91Ymxl
IElucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAorV2FsbFRpbWUgSW5wdXRUeXBlOjp2YWx1
ZUFzRGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIERhdGVDb21wb25lbnRzOjppbnZhbGlkTWls
bGlzZWNvbmRzKCk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpuYW4oKTsKIH0KIAotRXhjZXB0aW9u
T3I8dm9pZD4gSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUpIGNvbnN0CitFeGNlcHRp
b25Pcjx2b2lkPiBJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlKFdhbGxUaW1lKSBjb25zdAogewog
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmgKaW5kZXggZGExZGViY2I2YjlmYzA1MmZkNjNiNTRiOTYyMGMyMGE3MDQzMzI2
OC4uZTBlYWE4MTFkZGI0MTUxN2IyODczYWI2NmEzNzYyMmZiNjY4N2VkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5oCkBAIC0yMjAsOCArMjIwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmKTsgLy8gQ2hlY2tlZCBmaXJzdCwgYmVmb3Jl
IGludGVybmFsIHN0b3JhZ2Ugb3IgdGhlIHZhbHVlIGF0dHJpYnV0ZS4KICAgICB2aXJ0dWFsIFN0
cmluZyBmYWxsYmFja1ZhbHVlKCkgY29uc3Q7IC8vIENoZWNrZWQgbGFzdCwgaWYgYm90aCBpbnRl
cm5hbCBzdG9yYWdlIGFuZCB2YWx1ZSBhdHRyaWJ1dGUgYXJlIG1pc3NpbmcuCiAgICAgdmlydHVh
bCBTdHJpbmcgZGVmYXVsdFZhbHVlKCkgY29uc3Q7IC8vIENoZWNrZWQgYWZ0ZXIgZXZlbiBmYWxs
YmFja1ZhbHVlLCBvbmx5IHdoZW4gdGhlIHZhbHVlV2l0aERlZmF1bHQgZnVuY3Rpb24gaXMgY2Fs
bGVkLgotICAgIHZpcnR1YWwgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Q7Ci0gICAgdmlydHVh
bCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0ZShkb3VibGUpIGNvbnN0OworICAgIHZp
cnR1YWwgV2FsbFRpbWUgdmFsdWVBc0RhdGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKFdhbGxUaW1lKSBjb25zdDsKICAgICB2aXJ0dWFsIGRv
dWJsZSB2YWx1ZUFzRG91YmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRWYWx1ZUFzRG91YmxlKGRvdWJsZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgY29uc3Q7
CiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGVjaW1hbChjb25zdCBE
ZWNpbWFsJiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TW9udGhJbnB1dFR5cGUuY3BwCmluZGV4IDg5MThlZTFjOWM0MGRiNDA1NDkyNzRlMWJkYmQzNTY2
M2Q0NDRkMjcuLjE5ODNjNDA5OThmMDY1N2IxN2QxZDgwZGViMjgwYmQ2MmU3NDU4MTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCkBAIC02NCwxNSArNjQsMTUgQEAgRGF0
ZUNvbXBvbmVudHNUeXBlIE1vbnRoSW5wdXRUeXBlOjpkYXRlVHlwZSgpIGNvbnN0CiAgICAgcmV0
dXJuIERhdGVDb21wb25lbnRzVHlwZTo6TW9udGg7CiB9CiAKLWRvdWJsZSBNb250aElucHV0VHlw
ZTo6dmFsdWVBc0RhdGUoKSBjb25zdAorV2FsbFRpbWUgTW9udGhJbnB1dFR5cGU6OnZhbHVlQXNE
YXRlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBhdXRvIGRhdGUgPSBw
YXJzZVRvRGF0ZUNvbXBvbmVudHMoZWxlbWVudCgpLT52YWx1ZSgpKTsKICAgICBpZiAoIWRhdGUp
Ci0gICAgICAgIHJldHVybiBEYXRlQ29tcG9uZW50czo6aW52YWxpZE1pbGxpc2Vjb25kcygpOwor
ICAgICAgICByZXR1cm4gV2FsbFRpbWU6Om5hbigpOwogICAgIGRvdWJsZSBtc2VjID0gZGF0ZS0+
bWlsbGlzZWNvbmRzU2luY2VFcG9jaCgpOwogICAgIEFTU0VSVChzdGQ6OmlzZmluaXRlKG1zZWMp
KTsKLSAgICByZXR1cm4gbXNlYzsKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRz
KFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMobXNlYykudmFsdWUoKSk7CiB9CiAKIFN0cmluZyBN
b250aElucHV0VHlwZTo6c2VyaWFsaXplV2l0aE1pbGxpc2Vjb25kcyhkb3VibGUgdmFsdWUpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKaW5kZXggZGE0YzViYzhhNDNlMWYw
NDY4ZjY4MDZkOTViNGYxZjQwNzU4Mjc5Yy4uNTcyNzhiNWRhMDczODUyMjQxZjFhMTg3OWIwYTE2
ODFhMWU0NmU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNDcsNyAr
NDcsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250
cm9sVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIERhdGVDb21wb25lbnRzVHlwZSBkYXRlVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIFdhbGxUaW1lIHZhbHVlQXNEYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3Ry
aW5nIHNlcmlhbGl6ZVdpdGhNaWxsaXNlY29uZHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAg
ICBEZWNpbWFsIHBhcnNlVG9OdW1iZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgRGVjaW1hbCYpIGNv
bnN0IG92ZXJyaWRlOwogICAgIERlY2ltYWwgZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCkgY29uc3Qg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRN
TE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01IVE1MTWVk
aWFFbGVtZW50Lm1tCmluZGV4IDNmMmJlZTNjZGNhYjllZDZiOTAzMmZmMTgwMGIzNGIzMDc5ZjY2
NmYuLjlhZTE3Y2IxNTBkOTgwZWY4YjZmZTgyOWYxNGNiZTVjYzg0YTU3ZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01IVE1MTWVkaWFFbGVtZW50Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01IVE1MTWVkaWFFbGVtZW50Lm1tCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpbXBvcnQgIkRPTUhUTUxNZWRpYUVsZW1lbnQuaCIKIAorI2ltcG9y
dCAiRE9NSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU1lZGlhRXJyb3JJbnRlcm5hbC5oIgogI2lt
cG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01UaW1lUmFuZ2VzSW50ZXJuYWwu
aCIKQEAgLTMxMyw3ICszMTQsNyBAQCAtIChOU1N0cmluZyAqKWNhblBsYXlUeXBlOihOU1N0cmlu
ZyAqKXR5cGUKIC0gKE5TVGltZUludGVydmFsKWdldFN0YXJ0RGF0ZQogewogICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+Z2V0U3RhcnRE
YXRlKCk7CisgICAgcmV0dXJuIGtpdChJTVBMLT5nZXRTdGFydERhdGUoKSk7CiB9CiAKIC0gKHZv
aWQpcGxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVy
bmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSW50ZXJuYWwuaAppbmRleCA5
ZTcxYzRiZDUzYjQyYzk2YmI4YmIwMDRmMzAzYjA3MjBhMGUzZjc4Li5iYTViMmU2M2Q5ZTA2ODc5
OTMzNTcxYzE5N2FiMjcxYmRkNzJkZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9ET00vRE9NSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00v
RE9NSW50ZXJuYWwuaApAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiRE9NT2JqZWN0LmgiCiAj
aW1wb3J0ICJET01YUGF0aE5TUmVzb2x2ZXIuaCIKICNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+Cisj
aW1wb3J0IDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSlNP
YmplY3Q7CkBAIC03NywxMiArNzgsMTIgQEAgV2ViQ29yZTo6Tm9kZUZpbHRlciogY29yZShET01O
b2RlRmlsdGVyICopOwogRE9NTmF0aXZlWFBhdGhOU1Jlc29sdmVyICpraXQoV2ViQ29yZTo6WFBh
dGhOU1Jlc29sdmVyKik7CiBXZWJDb3JlOjpYUGF0aE5TUmVzb2x2ZXIqIGNvcmUoRE9NTmF0aXZl
WFBhdGhOU1Jlc29sdmVyICopOwogCi1pbmxpbmUgTlNUaW1lSW50ZXJ2YWwga2l0KGRvdWJsZSBt
c1NpbmNlRXBvY2gpCitpbmxpbmUgTlNUaW1lSW50ZXJ2YWwga2l0KFdhbGxUaW1lIHRpbWUpCiB7
Ci0gICAgcmV0dXJuIG1zU2luY2VFcG9jaCAvIDEwMDAuMCAtIE5TVGltZUludGVydmFsU2luY2Ux
OTcwOworICAgIHJldHVybiB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAtIE5TVGlt
ZUludGVydmFsU2luY2UxOTcwOwogfQogCi1pbmxpbmUgZG91YmxlIGNvcmUoTlNUaW1lSW50ZXJ2
YWwgc2VjKQoraW5saW5lIFdhbGxUaW1lIGNvcmUoTlNUaW1lSW50ZXJ2YWwgc2VjKQogewotICAg
IHJldHVybiBzZWMgKiAxMDAwLjAgKyBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MDsKKyAgICByZXR1
cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHNlYyArIE5TVGltZUludGVydmFsU2luY2UxOTcw
KTsKIH0K
</data>
<flag name="commit-queue"
          id="471191"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445900</attachid>
            <date>2021-12-03 14:35:21 -0800</date>
            <delta_ts>2021-12-03 14:54:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>233781.diff</filename>
            <type>text/plain</type>
            <size>24843</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NjgzZjkwOGQ3NGZhMTI0MDY0ZTM5YjA2ZDNmYjUzOTgxOTgwNWQzLi4y
NjFlM2QyNDFlMjE5NjUyZTI2YjAwZjJiOTAxM2Q0NTg4NjU2M2NlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTcgQEAKKzIwMjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENoYW5nZSBJREwgYERhdGVgIHRvIGJlIGJhY2tlZCBieSBgV2FsbFRpbWVg
IHRvIGF2b2lkIGNvbmZ1c2lvbiB3aGVuIGNvbnZlcnRpbmcgdG8gbmF0aXZlIGRhdGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3ODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBKUyBgRGF0ZWAgaXMgbWls
bGlzZWNvbmRzLWJhc2VkLCBidXQgc29tZSBuYXRpdmUgZGF0ZXMgKGUuZy4gYE5TRGF0ZWApIGFy
ZSBzZWNvbmRzLWJhc2VkLgorICAgICAgICBgV2FsbFRpbWVgIHdpbGwgaGVscCBhdm9pZCBjb25m
dXNpb24gc2luY2Ugbm90IGEgZ2VuZXJpYyB0eXBlIChlLmcuIGBkb3VibGVgKSBhbmQgaW5zdGVh
ZAorICAgICAgICBoYXMgZXhwbGljaXRseSBkZWZpbmVkIGNvbnZlcnNpb24gbWV0aG9kcyB0byBz
ZWNvbmRzLCBtaWxsaXNlY29uZHMsIGV0Yy4uCisKKyAgICAgICAgKiBiaW5kaW5ncy9JRExUeXBl
cy5oOgorICAgICAgICAoV2ViQ29yZTo6SURMRGF0ZTo6bnVsbFZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OklETERhdGU6OmlzTnVsbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklETERhdGU6
OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01D
b252ZXJ0RGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udmVydGVyPElETERhdGU+Ojpjb252
ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29udmVydGVyPElETERhdGU+Ojpjb252ZXJ0KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmpzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVRvRGF0ZSk6CisKKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TGluZUl0ZW0uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxlUGF5TGluZUl0ZW06OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBh
eS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjp0
b0RhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0KToKKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRWYWx1ZUFz
RGF0ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzRGF0
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNl
dFZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5
cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6dmFsdWVBc0RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAg
ICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjp2YWx1
ZUFzRGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnNldFZhbHVlQXNE
YXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmg6CisgICAgICAgICog
aHRtbC9Nb250aElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlw
ZTo6dmFsdWVBc0RhdGUgY29uc3QpOgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmdldFN0YXJ0RGF0ZSBjb25zdCk6CisgICAgICAgIFRoaXMg
YWxzbyBmaXhlcyBhbiBhcHBhcmVudGx5IGxvbmdzdGFuZGluZyBidWcgaW4gdGhhdCBgTWVkaWFU
aW1lOjp0b0RvdWJsZWAgaXMgYXBwYXJlbnRseSBhCisgICAgICAgIHNlY29uZHMtYmFzZWQgdmFs
dWUsIHNvIHRoaXMgaXMgdGhlIG9uZSBjYXNlIHRoYXQgZG9lc24ndCBuZWVkIGBTZWNvbmRzOjpm
cm9tTWlsbGlzZWNvbmRzYC4KKwogMjAyMS0xMi0wMyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBTZXQgdGhlIGZpcnN0L2xhc3QgYm94IGZsYWcg
b24gdGhlIChiaWRpIGZyYWdtZW50ZWQpIGlubGluZSBib3ggdHlwZSBvZiBkaXNwbGF5IGJveGVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNzZhYTZhYWY4NGRlYjA4MmU0Yzg0MzIy
NDkzMzgwZDgzM2RlOTJkMS4uODZlYmJhNGJmZTlmYWZlMWI5NDkxZGJhMjg1ZjJiZTRiOThjMDli
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEy
LTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBDaGFuZ2Ug
SURMIGBEYXRlYCB0byBiZSBiYWNrZWQgYnkgYFdhbGxUaW1lYCB0byBhdm9pZCBjb25mdXNpb24g
d2hlbiBjb252ZXJ0aW5nIHRvIG5hdGl2ZSBkYXRlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgSlMgYERhdGVgIGlzIG1pbGxpc2Vjb25kcy1iYXNlZCwgYnV0
IHNvbWUgbmF0aXZlIGRhdGVzIChlLmcuIGBOU0RhdGVgKSBhcmUgc2Vjb25kcy1iYXNlZC4KKyAg
ICAgICAgYFdhbGxUaW1lYCB3aWxsIGhlbHAgYXZvaWQgY29uZnVzaW9uIHNpbmNlIG5vdCBhIGdl
bmVyaWMgdHlwZSAoZS5nLiBgZG91YmxlYCkgYW5kIGluc3RlYWQKKyAgICAgICAgaGFzIGV4cGxp
Y2l0bHkgZGVmaW5lZCBjb252ZXJzaW9uIG1ldGhvZHMgdG8gc2Vjb25kcywgbWlsbGlzZWNvbmRz
LCBldGMuLgorCisgICAgICAgICogRE9NL0RPTUludGVybmFsLmg6CisgICAgICAgIChraXQpOgor
ICAgICAgICAoY29yZSk6CisKKyAgICAgICAgKiBET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbToK
KyAgICAgICAgKC1bRE9NSFRNTE1lZGlhRWxlbWVudCBnZXRTdGFydERhdGVdKToKKwogMjAyMS0x
Mi0wMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAg
IFtXZWJHUFVdIEhvb2sgdXAgbmF2aWdhdG9yLmdwdS5yZXF1ZXN0QWRhcHRlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TGluZUl0ZW0uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oCmluZGV4
IDk5ZWVmYmFiMTEzMzQzMWNjNWEwNzAyZmNjZDA5OGExOTNmNGM3MmIuLjZhMzQ0MzdhNDQ4ZTg3
MDBmMWViNmJhODk1ZGZiYmVjNWNlYTdiODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oCkBAIC0yOSw4ICsyOSw4IEBACiAKICNp
bmNsdWRlICJBcHBsZVBheVBheW1lbnRUaW1pbmcuaCIKICNpbmNsdWRlICJBcHBsZVBheVJlY3Vy
cmluZ1BheW1lbnREYXRlVW5pdC5oIgotI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxvcHRp
b25hbD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCkBAIC01MiwxNCArNTIsMTQg
QEAgc3RydWN0IEFwcGxlUGF5TGluZUl0ZW0gZmluYWwgewogICAgIEFwcGxlUGF5UGF5bWVudFRp
bWluZyBwYXltZW50VGltaW5nIHsgQXBwbGVQYXlQYXltZW50VGltaW5nOjpJbW1lZGlhdGUgfTsK
IAogI2lmIEVOQUJMRShBUFBMRV9QQVlfUkVDVVJSSU5HX0xJTkVfSVRFTSkKLSAgICBkb3VibGUg
cmVjdXJyaW5nUGF5bWVudFN0YXJ0RGF0ZSB7IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
cXVpZXRfTmFOKCkgfTsKKyAgICBXYWxsVGltZSByZWN1cnJpbmdQYXltZW50U3RhcnREYXRlIHsg
V2FsbFRpbWU6Om5hbigpIH07CiAgICAgQXBwbGVQYXlSZWN1cnJpbmdQYXltZW50RGF0ZVVuaXQg
cmVjdXJyaW5nUGF5bWVudEludGVydmFsVW5pdCB7IEFwcGxlUGF5UmVjdXJyaW5nUGF5bWVudERh
dGVVbml0OjpNb250aCB9OwogICAgIHVuc2lnbmVkIHJlY3VycmluZ1BheW1lbnRJbnRlcnZhbENv
dW50ID0gMTsKLSAgICBkb3VibGUgcmVjdXJyaW5nUGF5bWVudEVuZERhdGUgeyBzdGQ6Om51bWVy
aWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisgICAgV2FsbFRpbWUgcmVjdXJyaW5n
UGF5bWVudEVuZERhdGUgeyBXYWxsVGltZTo6bmFuKCkgfTsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KEFQUExFX1BBWV9ERUZFUlJFRF9MSU5FX0lURU0pCi0gICAgZG91YmxlIGRlZmVycmVkUGF5bWVu
dERhdGUgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisgICAg
V2FsbFRpbWUgZGVmZXJyZWRQYXltZW50RGF0ZSB7IFdhbGxUaW1lOjpuYW4oKSB9OwogI2VuZGlm
CiAKICNpZiBkZWZpbmVkKEFwcGxlUGF5TGluZUl0ZW1BZGRpdGlvbnNfbWVtYmVycykKQEAgLTEw
NSwxMyArMTA1LDEzIEBAIHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlMaW5lSXRlbT4gQXBwbGVQYXlM
aW5lSXRlbTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgREVDT0RFKGFtb3VudCwgU3Ry
aW5nKQogICAgIERFQ09ERShwYXltZW50VGltaW5nLCBBcHBsZVBheVBheW1lbnRUaW1pbmcpCiAj
aWYgRU5BQkxFKEFQUExFX1BBWV9SRUNVUlJJTkdfTElORV9JVEVNKQotICAgIERFQ09ERShyZWN1
cnJpbmdQYXltZW50U3RhcnREYXRlLCBkb3VibGUpCisgICAgREVDT0RFKHJlY3VycmluZ1BheW1l
bnRTdGFydERhdGUsIFdhbGxUaW1lKQogICAgIERFQ09ERShyZWN1cnJpbmdQYXltZW50SW50ZXJ2
YWxVbml0LCBBcHBsZVBheVJlY3VycmluZ1BheW1lbnREYXRlVW5pdCkKICAgICBERUNPREUocmVj
dXJyaW5nUGF5bWVudEludGVydmFsQ291bnQsIHVuc2lnbmVkKQotICAgIERFQ09ERShyZWN1cnJp
bmdQYXltZW50RW5kRGF0ZSwgZG91YmxlKQorICAgIERFQ09ERShyZWN1cnJpbmdQYXltZW50RW5k
RGF0ZSwgV2FsbFRpbWUpCiAjZW5kaWYKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0RFRkVSUkVEX0xJ
TkVfSVRFTSkKLSAgICBERUNPREUoZGVmZXJyZWRQYXltZW50RGF0ZSwgZG91YmxlKQorICAgIERF
Q09ERShkZWZlcnJlZFBheW1lbnREYXRlLCBXYWxsVGltZSkKICNlbmRpZgogI2lmIGRlZmluZWQo
QXBwbGVQYXlMaW5lSXRlbUFkZGl0aW9uc19kZWNvZGVfbWVtYmVycykKICAgICBBcHBsZVBheUxp
bmVJdGVtQWRkaXRpb25zX2RlY29kZV9tZW1iZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTdW1tYXJ5SXRlbXNDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1bW1hcnlJdGVtc0Nv
Y29hLm1tCmluZGV4IDk0MWE5ZWYxZDgwZWVlODUwNzE1NGMyMTZkNzcwMDY3ZDc0MTBiMWEuLjVm
MWMzMWI2ZTllMWU5ZWUyMzkzMGZkZDJkZTFmOTM1YmYyM2ViZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1
bW1hcnlJdGVtc0NvY29hLm1tCkBAIC02MCw5ICs2MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogI2lmIEhBVkUoUEFTU0tJVF9SRUNVUlJJTkdfU1VNTUFSWV9JVEVNKSB8fCBIQVZFKFBBU1NL
SVRfREVGRVJSRURfU1VNTUFSWV9JVEVNKQogCi1zdGF0aWMgTlNEYXRlICp0b0RhdGUoZG91Ymxl
IGRhdGUpCitzdGF0aWMgTlNEYXRlICp0b0RhdGUoV2FsbFRpbWUgZGF0ZSkKIHsKLSAgICByZXR1
cm4gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDooZGF0ZSAvIDEwMDApXTsK
KyAgICByZXR1cm4gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDpkYXRlLnNl
Y29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKV07CiB9CiAKICNlbmRpZiAvLyBIQVZFKFBBU1NLSVRf
UkVDVVJSSU5HX1NVTU1BUllfSVRFTSkgfHwgSEFWRShQQVNTS0lUX0RFRkVSUkVEX1NVTU1BUllf
SVRFTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCmluZGV4IGZkMDk5ZjU0Mzc4YTE5OTVk
M2YxNDc4ODk5NzU4MGNjYzhlZjljNTUuLjlmNjEyYTYxZTRiOWI3NGMxMzUyYjE3YWNkYmI2N2Ri
NDZjOThmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgPHd0Zi9CcmlnYW5kLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogI2lm
IEVOQUJMRShXRUJHTCkKICNpbmNsdWRlICJXZWJHTEFueS5oIgpAQCAtMjU5LDExICsyNjAsMTEg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElETFR5cGVkQXJyYXkgOiBJRExCdWZmZXJT
b3VyY2U8VD4geyB9OwogCiAvLyBOb24tV2ViSURMIGV4dGVuc2lvbnMKIAotc3RydWN0IElETERh
dGUgOiBJRExUeXBlPGRvdWJsZT4geyAKLSAgICB1c2luZyBOdWxsYWJsZVR5cGUgPSBkb3VibGU7
Ci0gICAgc3RhdGljIGRvdWJsZSBudWxsVmFsdWUoKSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGlt
aXRzPGRvdWJsZT46OnF1aWV0X05hTigpOyB9Ci0gICAgc3RhdGljIGJvb2wgaXNOdWxsVmFsdWUo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBzdGQ6OmlzbmFuKHZhbHVlKTsgfQotICAgIHN0YXRpYyBk
b3VibGUgZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gdmFs
dWU7IH0KK3N0cnVjdCBJRExEYXRlIDogSURMVHlwZTxXYWxsVGltZT4geyAKKyAgICB1c2luZyBO
dWxsYWJsZVR5cGUgPSBXYWxsVGltZTsKKyAgICBzdGF0aWMgV2FsbFRpbWUgbnVsbFZhbHVlKCkg
eyByZXR1cm4gV2FsbFRpbWU6Om5hbigpOyB9CisgICAgc3RhdGljIGJvb2wgaXNOdWxsVmFsdWUo
V2FsbFRpbWUgdmFsdWUpIHsgcmV0dXJuIHN0ZDo6aXNuYW4odmFsdWUpOyB9CisgICAgc3RhdGlj
IFdhbGxUaW1lIGV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShXYWxsVGltZSB2YWx1ZSkgeyByZXR1
cm4gdmFsdWU7IH0KIH07CiAKIHN0cnVjdCBJRExKU09OIDogSURMVHlwZTxTdHJpbmc+IHsgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3Bw
CmluZGV4IDllNTY3MjFkM2VkYWNkOGI5MGJiYjcwZDQzMTNlMWY3MDFmZTkxOTMuLjg5MzI5ODk2
ZTY2MmQzYmIyM2QxMTkwYjA1MzBlYjU1OWRjNDg4MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC0xNzcsNyArMTc3LDcg
QEAgSlNWYWx1ZSB0b0pTKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0ds
b2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LAogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpE
YXRlOgogICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgdG9KUzxJRExE
YXRlPiguLi4pIGFzIHBlcjoKICAgICAgICAgLy8gaHR0cDovL3czYy5naXRodWIuaW8vSW5kZXhl
ZERCLyNyZXF1ZXN0LWNvbnZlcnQtYS1rZXktdG8tYS12YWx1ZQotICAgICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIHRvSlM8SURMTnVsbGFibGU8SURMRGF0ZT4+KGxleGljYWxHbG9iYWxP
YmplY3QsIGtleS0+ZGF0ZSgpKSk7CisgICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwg
dG9KUzxJRExOdWxsYWJsZTxJRExEYXRlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwgV2FsbFRpbWU6
OmZyb21SYXdTZWNvbmRzKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoa2V5LT5kYXRlKCkpLnZh
bHVlKCkpKSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjoKICAgICAgICAg
cmV0dXJuIGpzTnVtYmVyKGtleS0+bnVtYmVyKCkpOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlU
eXBlOjpNaW46CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNv
bnZlcnREYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERh
dGUuY3BwCmluZGV4IDEzNjdlZDI1NDcyMTFhMzdiZjc1Mzg0ZDgzOWE4ZmRlYTMyNTljNzYuLmQ4
MDcwYzhjMTU1Y2YyZjcyYWVmNTRkODI2OWY0NjdjOGM1MTczNTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuY3BwCkBAIC0zMCwyMSArMzAsMjQg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKLUpTVmFsdWUg
anNEYXRlKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUp
CitKU1ZhbHVlIGpzRGF0ZShKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgV2Fs
bFRpbWUgdmFsdWUpCiB7Ci0gICAgcmV0dXJuIERhdGVJbnN0YW5jZTo6Y3JlYXRlKGxleGljYWxH
bG9iYWxPYmplY3Qudm0oKSwgbGV4aWNhbEdsb2JhbE9iamVjdC5kYXRlU3RydWN0dXJlKCksIHZh
bHVlKTsKKyAgICByZXR1cm4gRGF0ZUluc3RhbmNlOjpjcmVhdGUobGV4aWNhbEdsb2JhbE9iamVj
dC52bSgpLCBsZXhpY2FsR2xvYmFsT2JqZWN0LmRhdGVTdHJ1Y3R1cmUoKSwgdmFsdWUuc2Vjb25k
c1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKSk7CiB9CiAKLWRvdWJsZSB2YWx1ZVRvRGF0ZShK
U0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQor
V2FsbFRpbWUgdmFsdWVUb0RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9i
amVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKKyAgICBkb3VibGUgbWlsbGlzZWNvbmRzID0gc3RkOjpu
dW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKwogICAgIGF1dG8mIHZtID0gbGV4
aWNhbEdsb2JhbE9iamVjdC52bSgpOwogICAgIGlmICh2YWx1ZS5pbmhlcml0czxEYXRlSW5zdGFu
Y2U+KHZtKSkKLSAgICAgICAgcmV0dXJuIGpzQ2FzdDxEYXRlSW5zdGFuY2UqPih2YWx1ZSktPmlu
dGVybmFsTnVtYmVyKCk7Ci0gICAgaWYgKHZhbHVlLmlzTnVtYmVyKCkpCi0gICAgICAgIHJldHVy
biB2YWx1ZS5hc051bWJlcigpOwotICAgIGlmICh2YWx1ZS5pc1N0cmluZygpKQotICAgICAgICBy
ZXR1cm4gdm0uZGF0ZUNhY2hlLnBhcnNlRGF0ZSgmbGV4aWNhbEdsb2JhbE9iamVjdCwgdm0sIHZh
bHVlLmdldFN0cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCkpOwotICAgIHJldHVybiBzdGQ6Om51
bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgICAgICBtaWxsaXNlY29uZHMg
PSBqc0Nhc3Q8RGF0ZUluc3RhbmNlKj4odmFsdWUpLT5pbnRlcm5hbE51bWJlcigpOworICAgIGVs
c2UgaWYgKHZhbHVlLmlzTnVtYmVyKCkpCisgICAgICAgIG1pbGxpc2Vjb25kcyA9IHZhbHVlLmFz
TnVtYmVyKCk7CisgICAgZWxzZSBpZiAodmFsdWUuaXNTdHJpbmcoKSkKKyAgICAgICAgbWlsbGlz
ZWNvbmRzID0gdm0uZGF0ZUNhY2hlLnBhcnNlRGF0ZSgmbGV4aWNhbEdsb2JhbE9iamVjdCwgdm0s
IHZhbHVlLmdldFN0cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCkpOworCisgICAgcmV0dXJuIFdh
bGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKG1pbGxpc2Vj
b25kcykudmFsdWUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydERhdGUuaAppbmRleCA1NjI0MjkyOWY3MmRj
YzVlNGQ0NDA0MjgxMTEyZWJlMDdhZjhiNjc0Li5kMTIzNjFmZDZmZjFlMWU2MTBiM2YxMjE4ZTgw
NjhmODY4YzI3Y2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUNvbnZlcnREYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252
ZXJ0RGF0ZS5oCkBAIC0yOCwxNCArMjgsMTUgQEAKICNpbmNsdWRlICJJRExUeXBlcy5oIgogI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydEJhc2UuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0ds
b2JhbE9iamVjdC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLUpTQzo6SlNWYWx1ZSBqc0RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIGRvdWJs
ZSB2YWx1ZSk7Ci1kb3VibGUgdmFsdWVUb0RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6
SlNWYWx1ZSk7IC8vIE5hTiBpZiB0aGUgdmFsdWUgY2FuJ3QgYmUgY29udmVydGVkIHRvIGEgZGF0
ZS4KK0pTQzo6SlNWYWx1ZSBqc0RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYsIFdhbGxUaW1lIHZh
bHVlKTsKK1dhbGxUaW1lIHZhbHVlVG9EYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OkpT
VmFsdWUpOyAvLyBOYU4gaWYgdGhlIHZhbHVlIGNhbid0IGJlIGNvbnZlcnRlZCB0byBhIGRhdGUu
CiAKIHRlbXBsYXRlPD4gc3RydWN0IENvbnZlcnRlcjxJRExEYXRlPiA6IERlZmF1bHRDb252ZXJ0
ZXI8SURMRGF0ZT4gewotICAgIHN0YXRpYyBkb3VibGUgY29udmVydChKU0M6OkpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgdmFsdWUpCisgICAgc3RhdGlj
IFdhbGxUaW1lIGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNDOjpKU1ZhbHVlIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIHZhbHVlVG9EYXRl
KGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICB9CkBAIC00Niw3ICs0Nyw3IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEpTQ29udmVydGVyPElETERhdGU+IHsKICAgICBzdGF0aWMgY29uc3Rl
eHByIGJvb2wgbmVlZHNHbG9iYWxPYmplY3QgPSBmYWxzZTsKIAogICAgIC8vIEZJWE1FOiBUaGlz
IHNob3VsZCBiZSB0YWtpbmcgYSBKU0RPTUdsb2JhbE9iamVjdCBhbmQgcGFzc2luZyBpdCB0byBq
c0RhdGUuCi0gICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIGRvdWJsZSB2YWx1ZSkKKyAgICBzdGF0aWMgSlNDOjpK
U1ZhbHVlIGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
V2FsbFRpbWUgdmFsdWUpCiAgICAgewogICAgICAgICByZXR1cm4ganNEYXRlKGxleGljYWxHbG9i
YWxPYmplY3QsIHZhbHVlKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggNTYwYTRjZjk2YjY4YTIxYjc4MzI4Njg0MWMw
NTQwMmJjOWFkNjM0ZS4uNmMzODFhYTcwMWM5NDA3MjY2MWNlMGUxNTJmMjU5MWI1NDcxNDk5MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cApAQCAtMTI3LDE1ICsxMjcsMTUgQEAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp+QmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlKCkKICAgICBjbG9zZURhdGVUaW1lQ2hvb3NlcigpOwogfQogCi1k
b3VibGUgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0CitXYWxs
VGltZSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gdmFsdWVBc0RvdWJsZSgpOworICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1Nl
Y29uZHMoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyh2YWx1ZUFzRG91YmxlKCkpLnZhbHVlKCkp
OwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZh
bHVlQXNEYXRlKGRvdWJsZSB2YWx1ZSkgY29uc3QKK0V4Y2VwdGlvbk9yPHZvaWQ+IEJhc2VEYXRl
QW5kVGltZUlucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUoV2FsbFRpbWUgdmFsdWUpIGNvbnN0CiB7
CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7Ci0gICAgZWxlbWVudCgpLT5zZXRWYWx1ZShzZXJpYWxp
emVXaXRoTWlsbGlzZWNvbmRzKHZhbHVlKSk7CisgICAgZWxlbWVudCgpLT5zZXRWYWx1ZShzZXJp
YWxpemVXaXRoTWlsbGlzZWNvbmRzKHZhbHVlLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNv
bmRzKCkpKTsKICAgICByZXR1cm4geyB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAppbmRleCBjNzI5YzkyMmFiMzhiYThkOTRkNDc0NDU3
MzNhZGEzMGM1OTVlMjc2Li42ODkxMDViMzY1MWM2M2JiOWZmZGFhMWU5Y2QwODQxYzFkMDY0M2Ex
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgK
QEAgLTEwMiw4ICsxMDIsOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBj
b25zdCBmaW5hbDsKICAgICBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25z
dCBmaW5hbDsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFu
Z2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBmaW5hbDsKLSAgICBkb3VibGUgdmFsdWVBc0Rh
dGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0
ZShkb3VibGUpIGNvbnN0IG92ZXJyaWRlOworICAgIFdhbGxUaW1lIHZhbHVlQXNEYXRlKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoV2FsbFRp
bWUpIGNvbnN0IG92ZXJyaWRlOwogICAgIGRvdWJsZSB2YWx1ZUFzRG91YmxlKCkgY29uc3QgZmlu
YWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RlY2ltYWwoY29uc3QgRGVjaW1h
bCYsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGNvbnN0IGZpbmFsOwogICAgIERlY2ltYWwgZGVm
YXVsdFZhbHVlRm9yU3RlcFVwKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRleCA1OThhOGJiZGY3NGY1N2IwZjdm
ZDE1ZTk3MDBkYmEzODZiYzIxNGVhLi5kYjE2ZGE3ZTQ5OWIxZTliYjc4MzY5NzEzMTZiZWU5OGE2
YmRlM2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZS5jcHAKQEAgLTYyLDEzICs2MiwxMyBAQCBEYXRlQ29tcG9uZW50c1R5cGUgRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZTo6ZGF0ZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBEYXRlQ29tcG9uZW50c1R5
cGU6OkRhdGVUaW1lTG9jYWw7CiB9CiAKLWRvdWJsZSBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjp2
YWx1ZUFzRGF0ZSgpIGNvbnN0CitXYWxsVGltZSBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjp2YWx1
ZUFzRGF0ZSgpIGNvbnN0CiB7CiAgICAgLy8gdmFsdWVBc0RhdGUgZG9lc24ndCB3b3JrIGZvciB0
aGUgZGF0ZXRpbWUtbG9jYWwgdHlwZSBhY2NvcmRpbmcgdG8gdGhlIHN0YW5kYXJkLgotICAgIHJl
dHVybiBEYXRlQ29tcG9uZW50czo6aW52YWxpZE1pbGxpc2Vjb25kcygpOworICAgIHJldHVybiBX
YWxsVGltZTo6bmFuKCk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IERhdGVUaW1lTG9jYWxJbnB1
dFR5cGU6OnNldFZhbHVlQXNEYXRlKGRvdWJsZSB2YWx1ZSkgY29uc3QKK0V4Y2VwdGlvbk9yPHZv
aWQ+IERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlKFdhbGxUaW1lIHZhbHVl
KSBjb25zdAogewogICAgIC8vIHZhbHVlQXNEYXRlIGRvZXNuJ3Qgd29yayBmb3IgdGhlIGRhdGV0
aW1lLWxvY2FsIHR5cGUgYWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZC4KICAgICByZXR1cm4gSW5w
dXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZSh2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0
ZVRpbWVMb2NhbElucHV0VHlwZS5oCmluZGV4IDE2NmY1MDAwNDE2ZWM0NjdhNWZlOTkzNDdiN2Zj
OWEyMzkyNDEyODcuLjU2MGZiNjRkMDBhMmJhOGQyNzQyMWJmYjEwMWI1YzBhNzI1MjFkYzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCkBAIC00Nyw4
ICs0Nyw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgY29uc3QgQXRvbVN0cmluZyYgZm9ybUNv
bnRyb2xUeXBlKCkgY29uc3QgZmluYWw7CiAgICAgRGF0ZUNvbXBvbmVudHNUeXBlIGRhdGVUeXBl
KCkgY29uc3QgZmluYWw7Ci0gICAgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3QgZmluYWw7Ci0g
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoZG91YmxlKSBjb25zdCBmaW5hbDsK
KyAgICBXYWxsVGltZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IGZpbmFsOworICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldFZhbHVlQXNEYXRlKFdhbGxUaW1lKSBjb25zdCBmaW5hbDsKICAgICBTdGVwUmFu
Z2UgY3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3QgZmluYWw7CiAgICAgc3Rk
OjpvcHRpb25hbDxEYXRlQ29tcG9uZW50cz4gcGFyc2VUb0RhdGVDb21wb25lbnRzKFN0cmluZ1Zp
ZXcpIGNvbnN0IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHNldE1p
bGxpc2Vjb25kVG9EYXRlQ29tcG9uZW50cyhkb3VibGUpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggMzg2MDIyYTA3Mzg4NWRjZDYwZjc0
ZWI3ZDc5ODBlYmNjMDgzMGY0Yy4uMWNjZDIzMjE1YWQ5NzlkOGZiZmVmNDJkZjFlOTI1ZTNlNDg4
NDFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMTA4
LDEyICsxMTA4LDEyIEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWVJbnRlcm5hbChj
b25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBUZXh0RmllbGRFCiAgICAgdXBkYXRlVmFsaWRp
dHkoKTsKIH0KIAotZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVlQXNEYXRlKCkgY29uc3QK
K1dhbGxUaW1lIEhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVlQXNEYXRlKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9pbnB1dFR5cGUtPnZhbHVlQXNEYXRlKCk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+
IEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGRvdWJsZSB2YWx1ZSkKK0V4Y2VwdGlv
bk9yPHZvaWQ+IEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKFdhbGxUaW1lIHZhbHVl
KQogewogICAgIHJldHVybiBtX2lucHV0VHlwZS0+c2V0VmFsdWVBc0RhdGUodmFsdWUpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCAxOTk4NDRjZmE3YzU3MzVj
YjRkNzIzMGViNWQzZGI5MGZhNTkzZjViLi43NTA2YzI4NjQ1NDdhZjg1ZGQ4OTJlYmUwMTMwNzAx
YjFiNmY4NTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMTg0
LDggKzE4NCw4IEBAIHB1YmxpYzoKICAgICAvLyBUaGUgdmFsdWUgd2hpY2ggaXMgZHJhd24gYnkg
YSByZW5kZXJlci4KICAgICBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3Q7CiAKLSAgICBXRUJD
T1JFX0VYUE9SVCBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9S
VCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0ZShkb3VibGUpOworICAgIFdFQkNPUkVf
RVhQT1JUIFdhbGxUaW1lIHZhbHVlQXNEYXRlKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoV2FsbFRpbWUpOwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgZG91YmxlIHZhbHVlQXNOdW1iZXIoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzTnVtYmVyKGRvdWJsZSwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAppbmRleCA1MTcxYjljZGM3ODkzMTcxZTIxZTVmNGJmNTUwMTdlZjk0NGFj
Nzk1Li5lYzgzNTFjMDk3NzQ4YjE0OWE5NDQzOWJhYjY5NTc4ZWU5MDAxYTBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTExMTEsMTEgKzExMTEsMTIgQEAg
U3RyaW5nIEhUTUxNZWRpYUVsZW1lbnQ6OmNhblBsYXlUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpIGNvbnN0CiAgICAgcmV0dXJuIGNhblBsYXk7CiB9CiAKLWRvdWJsZSBIVE1MTWVkaWFFbGVt
ZW50OjpnZXRTdGFydERhdGUoKSBjb25zdAorV2FsbFRpbWUgSFRNTE1lZGlhRWxlbWVudDo6Z2V0
U3RhcnREYXRlKCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGxheWVyKQotICAgICAgICByZXR1cm4g
c3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKLSAgICByZXR1cm4gbV9w
bGF5ZXItPmdldFN0YXJ0RGF0ZSgpLnRvRG91YmxlKCk7CisgICAgICAgIHJldHVybiBXYWxsVGlt
ZTo6bmFuKCk7CisKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKG1fcGxheWVy
LT5nZXRTdGFydERhdGUoKS50b0RvdWJsZSgpKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojpsb2FkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXggNjk1NjY5
NDk2MzEwZWY5MTA4Yjk1NmZkYTQ4MjE0MzAxNDk3MGVjYi4uNmI0MDRhYTg3MzUyNzc3YjQ3MTgz
NWYxMjBmZjE1N2NlZWQ4NGE2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmgKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRl
IDx3dGYvTG9nZ2VySGVscGVyLmg+CiAjaW5jbHVkZSA8d3RmL09ic2VydmVyLmg+CisjaW5jbHVk
ZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogI2lmIFVTRShB
VURJT19TRVNTSU9OKSAmJiBQTEFURk9STShNQUMpCkBAIC0yNDIsNyArMjQzLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0Q3VycmVudFRpbWVXaXRoVG9sZXJhbmNlKGRvdWJsZSwgZG91YmxlIHRv
bGVyYW5jZUJlZm9yZSwgZG91YmxlIHRvbGVyYW5jZUFmdGVyKTsKICAgICBkb3VibGUgY3VycmVu
dFRpbWVGb3JCaW5kaW5ncygpIGNvbnN0IHsgcmV0dXJuIGN1cnJlbnRUaW1lKCk7IH0KICAgICBX
RUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRDdXJyZW50VGltZUZvckJpbmRpbmdz
KGRvdWJsZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIGdldFN0YXJ0RGF0ZSgpIGNvbnN0
OworICAgIFdFQkNPUkVfRVhQT1JUIFdhbGxUaW1lIGdldFN0YXJ0RGF0ZSgpIGNvbnN0OwogICAg
IFdFQkNPUkVfRVhQT1JUIGRvdWJsZSBkdXJhdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgcGF1c2VkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRQ
YXVzZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZWIwZTg0MWFkOWZj
MDBhNjJhMmQ5NDYzMGNmYjcxMTAwZjRlMDYyOC4uY2ZlYzY3OTc0MTU2NmNlNjBmZGMzNDI5ZTIy
ZDQyNzYzODgzNzU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMjA0LDEyICsy
MDQsMTIgQEAgYm9vbCBJbnB1dFR5cGU6OmFwcGVuZEZvcm1EYXRhKERPTUZvcm1EYXRhJiBmb3Jt
RGF0YSkgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotZG91YmxlIElucHV0VHlwZTo6dmFs
dWVBc0RhdGUoKSBjb25zdAorV2FsbFRpbWUgSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIERhdGVDb21wb25lbnRzOjppbnZhbGlkTWlsbGlzZWNvbmRzKCk7Cisg
ICAgcmV0dXJuIFdhbGxUaW1lOjpuYW4oKTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gSW5wdXRU
eXBlOjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUpIGNvbnN0CitFeGNlcHRpb25Pcjx2b2lkPiBJbnB1
dFR5cGU6OnNldFZhbHVlQXNEYXRlKFdhbGxUaW1lKSBjb25zdAogewogICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5k
ZXggZGExZGViY2I2YjlmYzA1MmZkNjNiNTRiOTYyMGMyMGE3MDQzMzI2OC4uZTBlYWE4MTFkZGI0
MTUxN2IyODczYWI2NmEzNzYyMmZiNjY4N2VkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBA
IC0yMjAsOCArMjIwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRUeXBlU3BlY2lm
aWNWYWx1ZShTdHJpbmcmKTsgLy8gQ2hlY2tlZCBmaXJzdCwgYmVmb3JlIGludGVybmFsIHN0b3Jh
Z2Ugb3IgdGhlIHZhbHVlIGF0dHJpYnV0ZS4KICAgICB2aXJ0dWFsIFN0cmluZyBmYWxsYmFja1Zh
bHVlKCkgY29uc3Q7IC8vIENoZWNrZWQgbGFzdCwgaWYgYm90aCBpbnRlcm5hbCBzdG9yYWdlIGFu
ZCB2YWx1ZSBhdHRyaWJ1dGUgYXJlIG1pc3NpbmcuCiAgICAgdmlydHVhbCBTdHJpbmcgZGVmYXVs
dFZhbHVlKCkgY29uc3Q7IC8vIENoZWNrZWQgYWZ0ZXIgZXZlbiBmYWxsYmFja1ZhbHVlLCBvbmx5
IHdoZW4gdGhlIHZhbHVlV2l0aERlZmF1bHQgZnVuY3Rpb24gaXMgY2FsbGVkLgotICAgIHZpcnR1
YWwgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2
b2lkPiBzZXRWYWx1ZUFzRGF0ZShkb3VibGUpIGNvbnN0OworICAgIHZpcnR1YWwgV2FsbFRpbWUg
dmFsdWVBc0RhdGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZh
bHVlQXNEYXRlKFdhbGxUaW1lKSBjb25zdDsKICAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRG91
YmxlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRG91
YmxlKGRvdWJsZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgY29uc3Q7CiAgICAgdmlydHVhbCBF
eGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGVjaW1hbChjb25zdCBEZWNpbWFsJiwgVGV4dEZp
ZWxkRXZlbnRCZWhhdmlvcikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L01vbnRoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUu
Y3BwCmluZGV4IDg5MThlZTFjOWM0MGRiNDA1NDkyNzRlMWJkYmQzNTY2M2Q0NDRkMjcuLjE5ODNj
NDA5OThmMDY1N2IxN2QxZDgwZGViMjgwYmQ2MmU3NDU4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TW9udGhJbnB1dFR5cGUuY3BwCkBAIC02NCwxNSArNjQsMTUgQEAgRGF0ZUNvbXBvbmVudHNUeXBl
IE1vbnRoSW5wdXRUeXBlOjpkYXRlVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIERhdGVDb21wb25l
bnRzVHlwZTo6TW9udGg7CiB9CiAKLWRvdWJsZSBNb250aElucHV0VHlwZTo6dmFsdWVBc0RhdGUo
KSBjb25zdAorV2FsbFRpbWUgTW9udGhJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKIHsK
ICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBhdXRvIGRhdGUgPSBwYXJzZVRvRGF0ZUNvbXBv
bmVudHMoZWxlbWVudCgpLT52YWx1ZSgpKTsKICAgICBpZiAoIWRhdGUpCi0gICAgICAgIHJldHVy
biBEYXRlQ29tcG9uZW50czo6aW52YWxpZE1pbGxpc2Vjb25kcygpOworICAgICAgICByZXR1cm4g
V2FsbFRpbWU6Om5hbigpOwogICAgIGRvdWJsZSBtc2VjID0gZGF0ZS0+bWlsbGlzZWNvbmRzU2lu
Y2VFcG9jaCgpOwogICAgIEFTU0VSVChzdGQ6OmlzZmluaXRlKG1zZWMpKTsKLSAgICByZXR1cm4g
bXNlYzsKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29uZHM6OmZyb21N
aWxsaXNlY29uZHMobXNlYykudmFsdWUoKSk7CiB9CiAKIFN0cmluZyBNb250aElucHV0VHlwZTo6
c2VyaWFsaXplV2l0aE1pbGxpc2Vjb25kcyhkb3VibGUgdmFsdWUpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01vbnRoSW5wdXRUeXBlLmgKaW5kZXggZGE0YzViYzhhNDNlMWYwNDY4ZjY4MDZkOTViNGYx
ZjQwNzU4Mjc5Yy4uNTcyNzhiNWRhMDczODUyMjQxZjFhMTg3OWIwYTE2ODFhMWU0NmU1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIERhdGVDb21wb25lbnRzVHlwZSBkYXRlVHlwZSgpIGNvbnN0IG92ZXJy
aWRlOwotICAgIGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIFdhbGxU
aW1lIHZhbHVlQXNEYXRlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIHNlcmlhbGl6ZVdp
dGhNaWxsaXNlY29uZHMoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKICAgICBEZWNpbWFsIHBhcnNl
VG9OdW1iZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgRGVjaW1hbCYpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIERlY2ltYWwgZGVmYXVsdFZhbHVlRm9yU3RlcFVwKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01IVE1MTWVkaWFFbGVtZW50Lm1tCmlu
ZGV4IDNmMmJlZTNjZGNhYjllZDZiOTAzMmZmMTgwMGIzNGIzMDc5ZjY2NmYuLjlhZTE3Y2IxNTBk
OTgwZWY4YjZmZTgyOWYxNGNiZTVjYzg0YTU3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0RPTS9ET01IVE1MTWVkaWFFbGVtZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0RPTS9ET01IVE1MTWVkaWFFbGVtZW50Lm1tCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbXBvcnQgIkRPTUhUTUxNZWRpYUVsZW1lbnQuaCIKIAorI2ltcG9ydCAiRE9NSW50ZXJuYWwu
aCIKICNpbXBvcnQgIkRPTU1lZGlhRXJyb3JJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NTm9kZUlu
dGVybmFsLmgiCiAjaW1wb3J0ICJET01UaW1lUmFuZ2VzSW50ZXJuYWwuaCIKQEAgLTMxMyw3ICsz
MTQsNyBAQCAtIChOU1N0cmluZyAqKWNhblBsYXlUeXBlOihOU1N0cmluZyAqKXR5cGUKIC0gKE5T
VGltZUludGVydmFsKWdldFN0YXJ0RGF0ZQogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+Z2V0U3RhcnREYXRlKCk7CisgICAgcmV0
dXJuIGtpdChJTVBMLT5nZXRTdGFydERhdGUoKSk7CiB9CiAKIC0gKHZvaWQpcGxheQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFsLmggYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSW50ZXJuYWwuaAppbmRleCA5ZTcxYzRiZDUzYjQyYzk2
YmI4YmIwMDRmMzAzYjA3MjBhMGUzZjc4Li5iYTViMmU2M2Q5ZTA2ODc5OTMzNTcxYzE5N2FiMjcx
YmRkNzJkZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSW50ZXJuYWwuaApA
QCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiRE9NT2JqZWN0LmgiCiAjaW1wb3J0ICJET01YUGF0
aE5TUmVzb2x2ZXIuaCIKICNpbXBvcnQgPHd0Zi9Gb3J3YXJkLmg+CisjaW1wb3J0IDx3dGYvV2Fs
bFRpbWUuaD4KIAogbmFtZXNwYWNlIEpTQyB7CiAgICAgY2xhc3MgSlNPYmplY3Q7CkBAIC03Nywx
MiArNzgsMTIgQEAgV2ViQ29yZTo6Tm9kZUZpbHRlciogY29yZShET01Ob2RlRmlsdGVyICopOwog
RE9NTmF0aXZlWFBhdGhOU1Jlc29sdmVyICpraXQoV2ViQ29yZTo6WFBhdGhOU1Jlc29sdmVyKik7
CiBXZWJDb3JlOjpYUGF0aE5TUmVzb2x2ZXIqIGNvcmUoRE9NTmF0aXZlWFBhdGhOU1Jlc29sdmVy
ICopOwogCi1pbmxpbmUgTlNUaW1lSW50ZXJ2YWwga2l0KGRvdWJsZSBtc1NpbmNlRXBvY2gpCitp
bmxpbmUgTlNUaW1lSW50ZXJ2YWwga2l0KFdhbGxUaW1lIHRpbWUpCiB7Ci0gICAgcmV0dXJuIG1z
U2luY2VFcG9jaCAvIDEwMDAuMCAtIE5TVGltZUludGVydmFsU2luY2UxOTcwOworICAgIHJldHVy
biB0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSAtIE5TVGltZUludGVydmFsU2luY2Ux
OTcwOwogfQogCi1pbmxpbmUgZG91YmxlIGNvcmUoTlNUaW1lSW50ZXJ2YWwgc2VjKQoraW5saW5l
IFdhbGxUaW1lIGNvcmUoTlNUaW1lSW50ZXJ2YWwgc2VjKQogewotICAgIHJldHVybiBzZWMgKiAx
MDAwLjAgKyBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MDsKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZy
b21SYXdTZWNvbmRzKHNlYyArIE5TVGltZUludGVydmFsU2luY2UxOTcwKTsKIH0K
</data>
<flag name="commit-queue"
          id="471202"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445904</attachid>
            <date>2021-12-03 14:45:32 -0800</date>
            <delta_ts>2021-12-03 15:07:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233781-20211203154531.patch</filename>
            <type>text/plain</type>
            <size>25363</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NjgzZjkwOGQ3NGZhMTI0MDY0ZTM5YjA2ZDNmYjUzOTgxOTgwNWQzLi43
MDVmZjYxNzJhMThjOGM5YTUzYzZhZWNkYzMxMzQwNzQ4ZDk5YzZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTggQEAKKzIwMjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENoYW5nZSBJREwgYERhdGVgIHRvIGJlIGJhY2tlZCBieSBgV2FsbFRpbWVg
IHRvIGF2b2lkIGNvbmZ1c2lvbiB3aGVuIGNvbnZlcnRpbmcgdG8gbmF0aXZlIGRhdGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3ODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBKUyBgRGF0ZWAgaXMgbWls
bGlzZWNvbmRzLWJhc2VkLCBidXQgc29tZSBuYXRpdmUgZGF0ZXMgKGUuZy4gYE5TRGF0ZWApIGFy
ZSBzZWNvbmRzLWJhc2VkLgorICAgICAgICBgV2FsbFRpbWVgIHdpbGwgaGVscCBhdm9pZCBjb25m
dXNpb24gc2luY2Ugbm90IGEgZ2VuZXJpYyB0eXBlIChlLmcuIGBkb3VibGVgKSBhbmQgaW5zdGVh
ZAorICAgICAgICBoYXMgZXhwbGljaXRseSBkZWZpbmVkIGNvbnZlcnNpb24gbWV0aG9kcyB0byBz
ZWNvbmRzLCBtaWxsaXNlY29uZHMsIGV0Yy4uCisKKyAgICAgICAgKiBiaW5kaW5ncy9JRExUeXBl
cy5oOgorICAgICAgICAoV2ViQ29yZTo6SURMRGF0ZTo6bnVsbFZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OklETERhdGU6OmlzTnVsbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklETERhdGU6
OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01D
b252ZXJ0RGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udmVydGVyPElETERhdGU+Ojpjb252
ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29udmVydGVyPElETERhdGU+Ojpjb252ZXJ0KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmpzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVRvRGF0ZSk6CisKKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TGluZUl0ZW0uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxlUGF5TGluZUl0ZW06OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBh
eS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjp0
b0RhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAg
ICAqIGh0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9EYXRl
VGltZUxvY2FsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJ
bnB1dFR5cGU6OnZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
TG9jYWxJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0Jh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OnZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUgY29uc3QpOgorICAgICAgICAq
IGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgICog
aHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnB1dFR5cGU6OnZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUgY29uc3QpOgorICAgICAgICAqIGh0bWwvTW9u
dGhJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSBjb25zdCk6CisKKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Z2V0U3RhcnRE
YXRlIGNvbnN0KToKKyAgICAgICAgVGhpcyBhbHNvIGZpeGVzIGFuIGFwcGFyZW50bHkgbG9uZ3N0
YW5kaW5nIGJ1ZyBpbiB0aGF0IGBNZWRpYVRpbWU6OnRvRG91YmxlYCBpcyBhcHBhcmVudGx5IGEK
KyAgICAgICAgc2Vjb25kcy1iYXNlZCB2YWx1ZSwgc28gdGhpcyBpcyB0aGUgb25lIGNhc2UgdGhh
dCBkb2Vzbid0IG5lZWQgYFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHNgLgorCiAyMDIxLTEyLTAz
ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIFNl
dCB0aGUgZmlyc3QvbGFzdCBib3ggZmxhZyBvbiB0aGUgKGJpZGkgZnJhZ21lbnRlZCkgaW5saW5l
IGJveCB0eXBlIG9mIGRpc3BsYXkgYm94ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCA3NmFhNmFhZjg0ZGViMDgyZTRjODQzMjI0OTMzODBkODMzZGU5MmQxLi44NmViYmE0YmZlOWZh
ZmUxYjk0OTFkYmEyODVmMmJlNGI5OGMwOWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBw
bGUuY29tPgorCisgICAgICAgIENoYW5nZSBJREwgYERhdGVgIHRvIGJlIGJhY2tlZCBieSBgV2Fs
bFRpbWVgIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aGVuIGNvbnZlcnRpbmcgdG8gbmF0aXZlIGRhdGVz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3ODEK
KworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBKUyBgRGF0ZWAg
aXMgbWlsbGlzZWNvbmRzLWJhc2VkLCBidXQgc29tZSBuYXRpdmUgZGF0ZXMgKGUuZy4gYE5TRGF0
ZWApIGFyZSBzZWNvbmRzLWJhc2VkLgorICAgICAgICBgV2FsbFRpbWVgIHdpbGwgaGVscCBhdm9p
ZCBjb25mdXNpb24gc2luY2Ugbm90IGEgZ2VuZXJpYyB0eXBlIChlLmcuIGBkb3VibGVgKSBhbmQg
aW5zdGVhZAorICAgICAgICBoYXMgZXhwbGljaXRseSBkZWZpbmVkIGNvbnZlcnNpb24gbWV0aG9k
cyB0byBzZWNvbmRzLCBtaWxsaXNlY29uZHMsIGV0Yy4uCisKKyAgICAgICAgKiBET00vRE9NSW50
ZXJuYWwuaDoKKyAgICAgICAgKGtpdCk6CisgICAgICAgIChjb3JlKToKKworICAgICAgICAqIERP
TS9ET01IVE1MTWVkaWFFbGVtZW50Lm1tOgorICAgICAgICAoLVtET01IVE1MTWVkaWFFbGVtZW50
IGdldFN0YXJ0RGF0ZV0pOgorCiAyMDIxLTEyLTAyICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhm
aWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gSG9vayB1cCBuYXZpZ2F0b3IuZ3B1
LnJlcXVlc3RBZGFwdGVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheUxpbmVJdGVtLmgKaW5kZXggOTllZWZiYWIxMTMzNDMxY2M1YTA3MDJmY2NkMDk4
YTE5M2Y0YzcyYi4uNmEzNDQzN2E0NDhlODcwMGYxZWI2YmE4OTVkZmJiZWM1Y2VhN2I4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUxpbmVJdGVt
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUxpbmVJdGVt
LmgKQEAgLTI5LDggKzI5LDggQEAKIAogI2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVudFRpbWluZy5o
IgogI2luY2x1ZGUgIkFwcGxlUGF5UmVjdXJyaW5nUGF5bWVudERhdGVVbml0LmgiCi0jaW5jbHVk
ZSA8bGltaXRzPgogI2luY2x1ZGUgPG9wdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKQEAgLTUyLDE0ICs1MiwxNCBAQCBzdHJ1Y3QgQXBwbGVQYXlMaW5lSXRlbSBmaW5h
bCB7CiAgICAgQXBwbGVQYXlQYXltZW50VGltaW5nIHBheW1lbnRUaW1pbmcgeyBBcHBsZVBheVBh
eW1lbnRUaW1pbmc6OkltbWVkaWF0ZSB9OwogCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9SRUNVUlJJ
TkdfTElORV9JVEVNKQotICAgIGRvdWJsZSByZWN1cnJpbmdQYXltZW50U3RhcnREYXRlIHsgc3Rk
OjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKSB9OworICAgIFdhbGxUaW1lIHJl
Y3VycmluZ1BheW1lbnRTdGFydERhdGUgeyBXYWxsVGltZTo6bmFuKCkgfTsKICAgICBBcHBsZVBh
eVJlY3VycmluZ1BheW1lbnREYXRlVW5pdCByZWN1cnJpbmdQYXltZW50SW50ZXJ2YWxVbml0IHsg
QXBwbGVQYXlSZWN1cnJpbmdQYXltZW50RGF0ZVVuaXQ6Ok1vbnRoIH07CiAgICAgdW5zaWduZWQg
cmVjdXJyaW5nUGF5bWVudEludGVydmFsQ291bnQgPSAxOwotICAgIGRvdWJsZSByZWN1cnJpbmdQ
YXltZW50RW5kRGF0ZSB7IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkg
fTsKKyAgICBXYWxsVGltZSByZWN1cnJpbmdQYXltZW50RW5kRGF0ZSB7IFdhbGxUaW1lOjpuYW4o
KSB9OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0RFRkVSUkVEX0xJTkVfSVRFTSkK
LSAgICBkb3VibGUgZGVmZXJyZWRQYXltZW50RGF0ZSB7IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91
YmxlPjo6cXVpZXRfTmFOKCkgfTsKKyAgICBXYWxsVGltZSBkZWZlcnJlZFBheW1lbnREYXRlIHsg
V2FsbFRpbWU6Om5hbigpIH07CiAjZW5kaWYKIAogI2lmIGRlZmluZWQoQXBwbGVQYXlMaW5lSXRl
bUFkZGl0aW9uc19tZW1iZXJzKQpAQCAtMTA1LDEzICsxMDUsMTMgQEAgc3RkOjpvcHRpb25hbDxB
cHBsZVBheUxpbmVJdGVtPiBBcHBsZVBheUxpbmVJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKICAgICBERUNPREUoYW1vdW50LCBTdHJpbmcpCiAgICAgREVDT0RFKHBheW1lbnRUaW1pbmcs
IEFwcGxlUGF5UGF5bWVudFRpbWluZykKICNpZiBFTkFCTEUoQVBQTEVfUEFZX1JFQ1VSUklOR19M
SU5FX0lURU0pCi0gICAgREVDT0RFKHJlY3VycmluZ1BheW1lbnRTdGFydERhdGUsIGRvdWJsZSkK
KyAgICBERUNPREUocmVjdXJyaW5nUGF5bWVudFN0YXJ0RGF0ZSwgV2FsbFRpbWUpCiAgICAgREVD
T0RFKHJlY3VycmluZ1BheW1lbnRJbnRlcnZhbFVuaXQsIEFwcGxlUGF5UmVjdXJyaW5nUGF5bWVu
dERhdGVVbml0KQogICAgIERFQ09ERShyZWN1cnJpbmdQYXltZW50SW50ZXJ2YWxDb3VudCwgdW5z
aWduZWQpCi0gICAgREVDT0RFKHJlY3VycmluZ1BheW1lbnRFbmREYXRlLCBkb3VibGUpCisgICAg
REVDT0RFKHJlY3VycmluZ1BheW1lbnRFbmREYXRlLCBXYWxsVGltZSkKICNlbmRpZgogI2lmIEVO
QUJMRShBUFBMRV9QQVlfREVGRVJSRURfTElORV9JVEVNKQotICAgIERFQ09ERShkZWZlcnJlZFBh
eW1lbnREYXRlLCBkb3VibGUpCisgICAgREVDT0RFKGRlZmVycmVkUGF5bWVudERhdGUsIFdhbGxU
aW1lKQogI2VuZGlmCiAjaWYgZGVmaW5lZChBcHBsZVBheUxpbmVJdGVtQWRkaXRpb25zX2RlY29k
ZV9tZW1iZXJzKQogICAgIEFwcGxlUGF5TGluZUl0ZW1BZGRpdGlvbnNfZGVjb2RlX21lbWJlcnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVu
dFN1bW1hcnlJdGVtc0NvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9j
b2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KaW5kZXggOTQxYTllZjFkODBlZWU4NTA3
MTU0YzIxNmQ3NzAwNjdkNzQxMGIxYS4uNWYxYzMxYjZlOWUxZTllZTIzOTMwZmRkMmRlMWY5MzVi
ZjIzZWJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2Nv
YS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KQEAgLTYwLDkgKzYw
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWYgSEFWRShQQVNTS0lUX1JFQ1VSUklOR19T
VU1NQVJZX0lURU0pIHx8IEhBVkUoUEFTU0tJVF9ERUZFUlJFRF9TVU1NQVJZX0lURU0pCiAKLXN0
YXRpYyBOU0RhdGUgKnRvRGF0ZShkb3VibGUgZGF0ZSkKK3N0YXRpYyBOU0RhdGUgKnRvRGF0ZShX
YWxsVGltZSBkYXRlKQogewotICAgIHJldHVybiBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFs
U2luY2UxOTcwOihkYXRlIC8gMTAwMCldOworICAgIHJldHVybiBbTlNEYXRlIGRhdGVXaXRoVGlt
ZUludGVydmFsU2luY2UxOTcwOmRhdGUuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpXTsKIH0K
IAogI2VuZGlmIC8vIEhBVkUoUEFTU0tJVF9SRUNVUlJJTkdfU1VNTUFSWV9JVEVNKSB8fCBIQVZF
KFBBU1NLSVRfREVGRVJSRURfU1VNTUFSWV9JVEVNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvSURMVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVz
LmgKaW5kZXggZmQwOTlmNTQzNzhhMTk5NWQzZjE0Nzg4OTk3NTgwY2NjOGVmOWM1NS4uOWY2MTJh
NjFlNGI5Yjc0YzEzNTJiMTdhY2RiYjY3ZGI0NmM5OGY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9J
RExUeXBlcy5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8d3RmL0JyaWdhbmQuaD4KICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1
ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiAjaWYgRU5BQkxFKFdFQkdMKQogI2luY2x1ZGUgIldlYkdM
QW55LmgiCkBAIC0yNTksMTEgKzI2MCwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3Qg
SURMVHlwZWRBcnJheSA6IElETEJ1ZmZlclNvdXJjZTxUPiB7IH07CiAKIC8vIE5vbi1XZWJJREwg
ZXh0ZW5zaW9ucwogCi1zdHJ1Y3QgSURMRGF0ZSA6IElETFR5cGU8ZG91YmxlPiB7IAotICAgIHVz
aW5nIE51bGxhYmxlVHlwZSA9IGRvdWJsZTsKLSAgICBzdGF0aWMgZG91YmxlIG51bGxWYWx1ZSgp
IHsgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7IH0KLSAg
ICBzdGF0aWMgYm9vbCBpc051bGxWYWx1ZShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIHN0ZDo6aXNu
YW4odmFsdWUpOyB9Ci0gICAgc3RhdGljIGRvdWJsZSBleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfQorc3RydWN0IElETERhdGUgOiBJRExUeXBl
PFdhbGxUaW1lPiB7IAorICAgIHVzaW5nIE51bGxhYmxlVHlwZSA9IFdhbGxUaW1lOworICAgIHN0
YXRpYyBXYWxsVGltZSBudWxsVmFsdWUoKSB7IHJldHVybiBXYWxsVGltZTo6bmFuKCk7IH0KKyAg
ICBzdGF0aWMgYm9vbCBpc051bGxWYWx1ZShXYWxsVGltZSB2YWx1ZSkgeyByZXR1cm4gc3RkOjpp
c25hbih2YWx1ZSk7IH0KKyAgICBzdGF0aWMgV2FsbFRpbWUgZXh0cmFjdFZhbHVlRnJvbU51bGxh
YmxlKFdhbGxUaW1lIHZhbHVlKSB7IHJldHVybiB2YWx1ZTsgfQogfTsKIAogc3RydWN0IElETEpT
T04gOiBJRExUeXBlPFN0cmluZz4geyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKaW5kZXggOWU1NjcyMWQzZWRhY2Q4YjkwYmJiNzBk
NDMxM2UxZjcwMWZlOTE5My4uYmIzNDI5ZGEyYWZkZWE0MDllN2ZlZWQzOGY0ZWUxZDQ5Nzc3YzUw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxp
dGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxp
dGllcy5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgYm9vbCBnZXQoSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgb2JqZWN0LCBjb25zdCBTdHJpbgogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGtleVBhdGhFbGVt
ZW50ID09ICJsYXN0TW9kaWZpZWREYXRlIikgewotICAgICAgICAgICAgcmVzdWx0ID0ganNEYXRl
KGxleGljYWxHbG9iYWxPYmplY3QsIGpzQ2FzdDxKU0ZpbGUqPihvYmopLT53cmFwcGVkKCkubGFz
dE1vZGlmaWVkKCkpOworICAgICAgICAgICAgcmVzdWx0ID0ganNEYXRlKGxleGljYWxHbG9iYWxP
YmplY3QsIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRz
KGpzQ2FzdDxKU0ZpbGUqPihvYmopLT53cmFwcGVkKCkubGFzdE1vZGlmaWVkKCkpLnZhbHVlKCkp
KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAtMTc3LDcg
KzE3Nyw3IEBAIEpTVmFsdWUgdG9KUyhKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5
VHlwZTo6RGF0ZToKICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHRv
SlM8SURMRGF0ZT4oLi4uKSBhcyBwZXI6CiAgICAgICAgIC8vIGh0dHA6Ly93M2MuZ2l0aHViLmlv
L0luZGV4ZWREQi8jcmVxdWVzdC1jb252ZXJ0LWEta2V5LXRvLWEtdmFsdWUKLSAgICAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCB0b0pTPElETE51bGxhYmxlPElETERhdGU+PihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBrZXktPmRhdGUoKSkpOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIHRvSlM8SURMTnVsbGFibGU8SURMRGF0ZT4+KGxleGljYWxHbG9iYWxPYmplY3QsIFdh
bGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKGtleS0+ZGF0
ZSgpKS52YWx1ZSgpKSkpOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6CiAg
ICAgICAgIHJldHVybiBqc051bWJlcihrZXktPm51bWJlcigpKTsKICAgICBjYXNlIEluZGV4ZWRE
Qjo6S2V5VHlwZTo6TWluOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Db252ZXJ0RGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNv
bnZlcnREYXRlLmNwcAppbmRleCAxMzY3ZWQyNTQ3MjExYTM3YmY3NTM4NGQ4MzlhOGZkZWEzMjU5
Yzc2Li5kODA3MGM4YzE1NWNmMmY3MmFlZjU0ZDgyNjlmNDY3YzhjNTE3MzUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcApAQCAtMzAsMjEg
KzMwLDI0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgSlNDOwogCi1K
U1ZhbHVlIGpzRGF0ZShKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgZG91Ymxl
IHZhbHVlKQorSlNWYWx1ZSBqc0RhdGUoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmpl
Y3QsIFdhbGxUaW1lIHZhbHVlKQogewotICAgIHJldHVybiBEYXRlSW5zdGFuY2U6OmNyZWF0ZShs
ZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCksIGxleGljYWxHbG9iYWxPYmplY3QuZGF0ZVN0cnVjdHVy
ZSgpLCB2YWx1ZSk7CisgICAgcmV0dXJuIERhdGVJbnN0YW5jZTo6Y3JlYXRlKGxleGljYWxHbG9i
YWxPYmplY3Qudm0oKSwgbGV4aWNhbEdsb2JhbE9iamVjdC5kYXRlU3RydWN0dXJlKCksIHZhbHVl
LnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCkpOwogfQogCi1kb3VibGUgdmFsdWVU
b0RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2
YWx1ZSkKK1dhbGxUaW1lIHZhbHVlVG9EYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CisgICAgZG91YmxlIG1pbGxpc2Vjb25kcyA9
IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisKICAgICBhdXRvJiB2
bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKICAgICBpZiAodmFsdWUuaW5oZXJpdHM8RGF0
ZUluc3RhbmNlPih2bSkpCi0gICAgICAgIHJldHVybiBqc0Nhc3Q8RGF0ZUluc3RhbmNlKj4odmFs
dWUpLT5pbnRlcm5hbE51bWJlcigpOwotICAgIGlmICh2YWx1ZS5pc051bWJlcigpKQotICAgICAg
ICByZXR1cm4gdmFsdWUuYXNOdW1iZXIoKTsKLSAgICBpZiAodmFsdWUuaXNTdHJpbmcoKSkKLSAg
ICAgICAgcmV0dXJuIHZtLmRhdGVDYWNoZS5wYXJzZURhdGUoJmxleGljYWxHbG9iYWxPYmplY3Qs
IHZtLCB2YWx1ZS5nZXRTdHJpbmcoJmxleGljYWxHbG9iYWxPYmplY3QpKTsKLSAgICByZXR1cm4g
c3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICAgICAgbWlsbGlz
ZWNvbmRzID0ganNDYXN0PERhdGVJbnN0YW5jZSo+KHZhbHVlKS0+aW50ZXJuYWxOdW1iZXIoKTsK
KyAgICBlbHNlIGlmICh2YWx1ZS5pc051bWJlcigpKQorICAgICAgICBtaWxsaXNlY29uZHMgPSB2
YWx1ZS5hc051bWJlcigpOworICAgIGVsc2UgaWYgKHZhbHVlLmlzU3RyaW5nKCkpCisgICAgICAg
IG1pbGxpc2Vjb25kcyA9IHZtLmRhdGVDYWNoZS5wYXJzZURhdGUoJmxleGljYWxHbG9iYWxPYmpl
Y3QsIHZtLCB2YWx1ZS5nZXRTdHJpbmcoJmxleGljYWxHbG9iYWxPYmplY3QpKTsKKworICAgIHJl
dHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyht
aWxsaXNlY29uZHMpLnZhbHVlKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmgKaW5kZXggNTYyNDI5
MjlmNzJkY2M1ZTRkNDQwNDI4MTExMmViZTA3YWY4YjY3NC4uZDEyMzYxZmQ2ZmYxZTFlNjEwYjNm
MTIxOGU4MDY4Zjg2OGMyN2NkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01Db252ZXJ0RGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQ29udmVydERhdGUuaApAQCAtMjgsMTQgKzI4LDE1IEBACiAjaW5jbHVkZSAiSURMVHlwZXMu
aCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRCYXNlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNHbG9iYWxPYmplY3QuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1KU0M6OkpTVmFsdWUganNEYXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qm
LCBkb3VibGUgdmFsdWUpOwotZG91YmxlIHZhbHVlVG9EYXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qm
LCBKU0M6OkpTVmFsdWUpOyAvLyBOYU4gaWYgdGhlIHZhbHVlIGNhbid0IGJlIGNvbnZlcnRlZCB0
byBhIGRhdGUuCitKU0M6OkpTVmFsdWUganNEYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBXYWxs
VGltZSB2YWx1ZSk7CitXYWxsVGltZSB2YWx1ZVRvRGF0ZShKU0M6OkpTR2xvYmFsT2JqZWN0Jiwg
SlNDOjpKU1ZhbHVlKTsgLy8gTmFOIGlmIHRoZSB2YWx1ZSBjYW4ndCBiZSBjb252ZXJ0ZWQgdG8g
YSBkYXRlLgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDb252ZXJ0ZXI8SURMRGF0ZT4gOiBEZWZhdWx0
Q29udmVydGVyPElETERhdGU+IHsKLSAgICBzdGF0aWMgZG91YmxlIGNvbnZlcnQoSlNDOjpKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHZhbHVlKQorICAg
IHN0YXRpYyBXYWxsVGltZSBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJldHVybiB2YWx1
ZVRvRGF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgfQpAQCAtNDYsNyArNDcs
NyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBKU0NvbnZlcnRlcjxJRExEYXRlPiB7CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBib29sIG5lZWRzR2xvYmFsT2JqZWN0ID0gZmFsc2U7CiAKICAgICAvLyBGSVhN
RTogVGhpcyBzaG91bGQgYmUgdGFraW5nIGEgSlNET01HbG9iYWxPYmplY3QgYW5kIHBhc3Npbmcg
aXQgdG8ganNEYXRlLgotICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgY29udmVydChKU0M6OkpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUpCisgICAgc3RhdGlj
IEpTQzo6SlNWYWx1ZSBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIFdhbGxUaW1lIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGpzRGF0ZShsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDU2MGE0Y2Y5NmI2OGEyMWI3ODMy
ODY4NDFjMDU0MDJiYzlhZDYzNGUuLjZjMzgxYWE3MDFjOTQwNzI2NjFjZTBlMTUyZjI1OTFiNTQ3
MTQ5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5jcHAKQEAgLTEyNywxNSArMTI3LDE1IEBAIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6
fkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSgpCiAgICAgY2xvc2VEYXRlVGltZUNob29zZXIoKTsK
IH0KIAotZG91YmxlIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25z
dAorV2FsbFRpbWUgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHZhbHVlQXNEb3VibGUoKTsKKyAgICByZXR1cm4gV2FsbFRpbWU6OmZy
b21SYXdTZWNvbmRzKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModmFsdWVBc0RvdWJsZSgpKS52
YWx1ZSgpKTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
OjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUgdmFsdWUpIGNvbnN0CitFeGNlcHRpb25Pcjx2b2lkPiBC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlKFdhbGxUaW1lIHZhbHVlKSBj
b25zdAogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwotICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUo
c2VyaWFsaXplV2l0aE1pbGxpc2Vjb25kcyh2YWx1ZSkpOworICAgIGVsZW1lbnQoKS0+c2V0VmFs
dWUoc2VyaWFsaXplV2l0aE1pbGxpc2Vjb25kcyh2YWx1ZS5zZWNvbmRzU2luY2VFcG9jaCgpLm1p
bGxpc2Vjb25kcygpKSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggYzcyOWM5MjJhYjM4YmE4ZDk0
ZDQ3NDQ1NzMzYWRhMzBjNTk1ZTI3Ni4uNjg5MTA1YjM2NTFjNjNiYjlmZmRhYTFlOWNkMDg0MWMx
ZDA2NDNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5oCkBAIC0xMDIsOCArMTAyLDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgdmlzaWJsZVZh
bHVlKCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5n
JikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZh
bHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgZmluYWw7Ci0gICAgZG91YmxlIHZh
bHVlQXNEYXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFs
dWVBc0RhdGUoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKKyAgICBXYWxsVGltZSB2YWx1ZUFzRGF0
ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRl
KFdhbGxUaW1lKSBjb25zdCBvdmVycmlkZTsKICAgICBkb3VibGUgdmFsdWVBc0RvdWJsZSgpIGNv
bnN0IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEZWNpbWFsKGNvbnN0
IERlY2ltYWwmLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBjb25zdCBmaW5hbDsKICAgICBEZWNp
bWFsIGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKaW5kZXggNTk4YThiYmRmNzRm
NTdiMGY3ZmQxNWU5NzAwZGJhMzg2YmMyMTRlYS4uZGIxNmRhN2U0OTliMWU5YmI3ODM2OTcxMzE2
YmVlOThhNmJkZTNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuY3BwCkBAIC02MiwxMyArNjIsMTMgQEAgRGF0ZUNvbXBvbmVudHNUeXBlIERhdGVU
aW1lTG9jYWxJbnB1dFR5cGU6OmRhdGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4gRGF0ZUNvbXBv
bmVudHNUeXBlOjpEYXRlVGltZUxvY2FsOwogfQogCi1kb3VibGUgRGF0ZVRpbWVMb2NhbElucHV0
VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAorV2FsbFRpbWUgRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZTo6dmFsdWVBc0RhdGUoKSBjb25zdAogewogICAgIC8vIHZhbHVlQXNEYXRlIGRvZXNuJ3Qgd29y
ayBmb3IgdGhlIGRhdGV0aW1lLWxvY2FsIHR5cGUgYWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZC4K
LSAgICByZXR1cm4gRGF0ZUNvbXBvbmVudHM6OmludmFsaWRNaWxsaXNlY29uZHMoKTsKKyAgICBy
ZXR1cm4gV2FsbFRpbWU6Om5hbigpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBEYXRlVGltZUxv
Y2FsSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUgdmFsdWUpIGNvbnN0CitFeGNlcHRp
b25Pcjx2b2lkPiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShXYWxsVGlt
ZSB2YWx1ZSkgY29uc3QKIHsKICAgICAvLyB2YWx1ZUFzRGF0ZSBkb2Vzbid0IHdvcmsgZm9yIHRo
ZSBkYXRldGltZS1sb2NhbCB0eXBlIGFjY29yZGluZyB0byB0aGUgc3RhbmRhcmQuCiAgICAgcmV0
dXJuIElucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUodmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaAppbmRleCAxNjZmNTAwMDQxNmVjNDY3YTVmZTk5
MzQ3YjdmYzlhMjM5MjQxMjg3Li41NjBmYjY0ZDAwYTJiYThkMjc0MjFiZmIxMDFiNWMwYTcyNTIx
ZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaApA
QCAtNDcsOCArNDcsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGNvbnN0IEF0b21TdHJpbmcm
IGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IGZpbmFsOwogICAgIERhdGVDb21wb25lbnRzVHlwZSBk
YXRlVHlwZSgpIGNvbnN0IGZpbmFsOwotICAgIGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IGZp
bmFsOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKGRvdWJsZSkgY29uc3Qg
ZmluYWw7CisgICAgV2FsbFRpbWUgdmFsdWVBc0RhdGUoKSBjb25zdCBmaW5hbDsKKyAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0ZShXYWxsVGltZSkgY29uc3QgZmluYWw7CiAgICAg
U3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0IGZpbmFsOwog
ICAgIHN0ZDo6b3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29tcG9uZW50cyhT
dHJpbmdWaWV3KSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPERhdGVDb21wb25lbnRz
PiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDM4NjAyMmEwNzM4ODVk
Y2Q2MGY3NGViN2Q3OTgwZWJjYzA4MzBmNGMuLjFjY2QyMzIxNWFkOTc5ZDhmYmZlZjQyZGYxZTky
NWUzZTQ4ODQxYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApA
QCAtMTEwOCwxMiArMTEwOCwxMiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlSW50
ZXJuYWwoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgVGV4dEZpZWxkRQogICAgIHVwZGF0
ZVZhbGlkaXR5KCk7CiB9CiAKLWRvdWJsZSBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZSgp
IGNvbnN0CitXYWxsVGltZSBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT52YWx1ZUFzRGF0ZSgpOwogfQogCi1FeGNlcHRpb25P
cjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUgdmFsdWUpCitF
eGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShXYWxsVGlt
ZSB2YWx1ZSkKIHsKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnNldFZhbHVlQXNEYXRlKHZhbHVl
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggMTk5ODQ0Y2Zh
N2M1NzM1Y2I0ZDcyMzBlYjVkM2RiOTBmYTU5M2Y1Yi4uNzUwNmMyODY0NTQ3YWY4NWRkODkyZWJl
MDEzMDcwMWIxYjZmODUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
QEAgLTE4NCw4ICsxODQsOCBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIHZhbHVlIHdoaWNoIGlzIGRy
YXduIGJ5IGEgcmVuZGVyZXIuCiAgICAgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Q7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoZG91YmxlKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBXYWxsVGltZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0OworICAgIFdFQkNPUkVf
RVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKFdhbGxUaW1lKTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIGRvdWJsZSB2YWx1ZUFzTnVtYmVyKCkgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc051bWJlcihkb3VibGUsIFRleHRG
aWVsZEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNTE3MWI5Y2RjNzg5MzE3MWUyMWU1ZjRiZjU1MDE3
ZWY5NDRhYzc5NS4uZWM4MzUxYzA5Nzc0OGIxNDlhOTQ0MzliYWI2OTU3OGVlOTAwMWEwZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMTExLDExICsxMTEx
LDEyIEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25zdCBTdHJpbmcm
IG1pbWVUeXBlKSBjb25zdAogICAgIHJldHVybiBjYW5QbGF5OwogfQogCi1kb3VibGUgSFRNTE1l
ZGlhRWxlbWVudDo6Z2V0U3RhcnREYXRlKCkgY29uc3QKK1dhbGxUaW1lIEhUTUxNZWRpYUVsZW1l
bnQ6OmdldFN0YXJ0RGF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BsYXllcikKLSAgICAgICAg
cmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7Ci0gICAgcmV0
dXJuIG1fcGxheWVyLT5nZXRTdGFydERhdGUoKS50b0RvdWJsZSgpOworICAgICAgICByZXR1cm4g
V2FsbFRpbWU6Om5hbigpOworCisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyht
X3BsYXllci0+Z2V0U3RhcnREYXRlKCkudG9Eb3VibGUoKSk7CiB9CiAKIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6bG9hZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4
IDY5NTY2OTQ5NjMxMGVmOTEwOGI5NTZmZGE0ODIxNDMwMTQ5NzBlY2IuLjZiNDA0YWE4NzM1Mjc3
N2I0NzE4MzVmMTIwZmYxNTdjZWVkODRhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAj
aW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9PYnNlcnZlci5oPgor
I2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKICNp
ZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oTUFDKQpAQCAtMjQyLDcgKzI0Myw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnJlbnRUaW1lV2l0aFRvbGVyYW5jZShkb3VibGUsIGRv
dWJsZSB0b2xlcmFuY2VCZWZvcmUsIGRvdWJsZSB0b2xlcmFuY2VBZnRlcik7CiAgICAgZG91Ymxl
IGN1cnJlbnRUaW1lRm9yQmluZGluZ3MoKSBjb25zdCB7IHJldHVybiBjdXJyZW50VGltZSgpOyB9
CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q3VycmVudFRpbWVGb3JC
aW5kaW5ncyhkb3VibGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJsZSBnZXRTdGFydERhdGUo
KSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBXYWxsVGltZSBnZXRTdGFydERhdGUoKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgZHVyYXRpb24oKSBjb25zdCBvdmVycmlkZTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHBhdXNlZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZv
aWQgc2V0UGF1c2VkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IGViMGU4
NDFhZDlmYzAwYTYyYTJkOTQ2MzBjZmI3MTEwMGY0ZTA2MjguLmNmZWM2Nzk3NDE1NjZjZTYwZmRj
MzQyOWUyMmQ0Mjc2Mzg4Mzc1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTIw
NCwxMiArMjA0LDEyIEBAIGJvb2wgSW5wdXRUeXBlOjphcHBlbmRGb3JtRGF0YShET01Gb3JtRGF0
YSYgZm9ybURhdGEpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWRvdWJsZSBJbnB1dFR5
cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKK1dhbGxUaW1lIElucHV0VHlwZTo6dmFsdWVBc0RhdGUo
KSBjb25zdAogewotICAgIHJldHVybiBEYXRlQ29tcG9uZW50czo6aW52YWxpZE1pbGxpc2Vjb25k
cygpOworICAgIHJldHVybiBXYWxsVGltZTo6bmFuKCk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+
IElucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUoZG91YmxlKSBjb25zdAorRXhjZXB0aW9uT3I8dm9p
ZD4gSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShXYWxsVGltZSkgY29uc3QKIHsKICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5oCmluZGV4IGRhMWRlYmNiNmI5ZmMwNTJmZDYzYjU0Yjk2MjBjMjBhNzA0MzMyNjguLmUwZWFh
ODExZGRiNDE1MTdiMjg3M2FiNjZhMzc2MjJmYjY2ODdlZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuaApAQCAtMjIwLDggKzIyMCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgZ2V0VHlw
ZVNwZWNpZmljVmFsdWUoU3RyaW5nJik7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9yZSBpbnRlcm5h
bCBzdG9yYWdlIG9yIHRoZSB2YWx1ZSBhdHRyaWJ1dGUuCiAgICAgdmlydHVhbCBTdHJpbmcgZmFs
bGJhY2tWYWx1ZSgpIGNvbnN0OyAvLyBDaGVja2VkIGxhc3QsIGlmIGJvdGggaW50ZXJuYWwgc3Rv
cmFnZSBhbmQgdmFsdWUgYXR0cmlidXRlIGFyZSBtaXNzaW5nLgogICAgIHZpcnR1YWwgU3RyaW5n
IGRlZmF1bHRWYWx1ZSgpIGNvbnN0OyAvLyBDaGVja2VkIGFmdGVyIGV2ZW4gZmFsbGJhY2tWYWx1
ZSwgb25seSB3aGVuIHRoZSB2YWx1ZVdpdGhEZWZhdWx0IGZ1bmN0aW9uIGlzIGNhbGxlZC4KLSAg
ICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgRXhjZXB0
aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoZG91YmxlKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdh
bGxUaW1lIHZhbHVlQXNEYXRlKCkgY29uc3Q7CisgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lk
PiBzZXRWYWx1ZUFzRGF0ZShXYWxsVGltZSkgY29uc3Q7CiAgICAgdmlydHVhbCBkb3VibGUgdmFs
dWVBc0RvdWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFs
dWVBc0RvdWJsZShkb3VibGUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGNvbnN0OwogICAgIHZp
cnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RlY2ltYWwoY29uc3QgRGVjaW1hbCYs
IFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5w
dXRUeXBlLmNwcAppbmRleCA4OTE4ZWUxYzljNDBkYjQwNTQ5Mjc0ZTFiZGJkMzU2NjNkNDQ0ZDI3
Li4xOTgzYzQwOTk4ZjA2NTdiMTdkMWQ4MGRlYjI4MGJkNjJlNzQ1ODExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcApAQCAtNjQsMTUgKzY0LDE1IEBAIERhdGVDb21wb25l
bnRzVHlwZSBNb250aElucHV0VHlwZTo6ZGF0ZVR5cGUoKSBjb25zdAogICAgIHJldHVybiBEYXRl
Q29tcG9uZW50c1R5cGU6Ok1vbnRoOwogfQogCi1kb3VibGUgTW9udGhJbnB1dFR5cGU6OnZhbHVl
QXNEYXRlKCkgY29uc3QKK1dhbGxUaW1lIE1vbnRoSW5wdXRUeXBlOjp2YWx1ZUFzRGF0ZSgpIGNv
bnN0CiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgYXV0byBkYXRlID0gcGFyc2VUb0Rh
dGVDb21wb25lbnRzKGVsZW1lbnQoKS0+dmFsdWUoKSk7CiAgICAgaWYgKCFkYXRlKQotICAgICAg
ICByZXR1cm4gRGF0ZUNvbXBvbmVudHM6OmludmFsaWRNaWxsaXNlY29uZHMoKTsKKyAgICAgICAg
cmV0dXJuIFdhbGxUaW1lOjpuYW4oKTsKICAgICBkb3VibGUgbXNlYyA9IGRhdGUtPm1pbGxpc2Vj
b25kc1NpbmNlRXBvY2goKTsKICAgICBBU1NFUlQoc3RkOjppc2Zpbml0ZShtc2VjKSk7Ci0gICAg
cmV0dXJuIG1zZWM7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhTZWNvbmRz
Ojpmcm9tTWlsbGlzZWNvbmRzKG1zZWMpLnZhbHVlKCkpOwogfQogCiBTdHJpbmcgTW9udGhJbnB1
dFR5cGU6OnNlcmlhbGl6ZVdpdGhNaWxsaXNlY29uZHMoZG91YmxlIHZhbHVlKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCmluZGV4IGRhNGM1YmM4YTQzZTFmMDQ2OGY2ODA2
ZDk1YjRmMWY0MDc1ODI3OWMuLjU3Mjc4YjVkYTA3Mzg1MjI0MWYxYTE4NzliMGExNjgxYTFlNDZl
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKQEAgLTQ3LDcgKzQ3LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUo
KSBjb25zdCBvdmVycmlkZTsKICAgICBEYXRlQ29tcG9uZW50c1R5cGUgZGF0ZVR5cGUoKSBjb25z
dCBvdmVycmlkZTsKLSAgICBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAg
ICBXYWxsVGltZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFN0cmluZyBzZXJp
YWxpemVXaXRoTWlsbGlzZWNvbmRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgRGVjaW1h
bCBwYXJzZVRvTnVtYmVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IERlY2ltYWwmKSBjb25zdCBvdmVy
cmlkZTsKICAgICBEZWNpbWFsIGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0IG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUhUTUxNZWRpYUVs
ZW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVu
dC5tbQppbmRleCAzZjJiZWUzY2RjYWI5ZWQ2YjkwMzJmZjE4MDBiMzRiMzA3OWY2NjZmLi45YWUx
N2NiMTUwZDk4MGVmOGI2ZmU4MjlmMTRjYmU1Y2M4NGE1N2VkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbQpAQCAtMjgsNiArMjgs
NyBAQAogCiAjaW1wb3J0ICJET01IVE1MTWVkaWFFbGVtZW50LmgiCiAKKyNpbXBvcnQgIkRPTUlu
dGVybmFsLmgiCiAjaW1wb3J0ICJET01NZWRpYUVycm9ySW50ZXJuYWwuaCIKICNpbXBvcnQgIkRP
TU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NVGltZVJhbmdlc0ludGVybmFsLmgiCkBAIC0z
MTMsNyArMzE0LDcgQEAgLSAoTlNTdHJpbmcgKiljYW5QbGF5VHlwZTooTlNTdHJpbmcgKil0eXBl
CiAtIChOU1RpbWVJbnRlcnZhbClnZXRTdGFydERhdGUKIHsKICAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPmdldFN0YXJ0RGF0ZSgpOwor
ICAgIHJldHVybiBraXQoSU1QTC0+Z2V0U3RhcnREYXRlKCkpOwogfQogCiAtICh2b2lkKXBsYXkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01JbnRlcm5hbC5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFsLmgKaW5kZXggOWU3MWM0YmQ1
M2I0MmM5NmJiOGJiMDA0ZjMwM2IwNzIwYTBlM2Y3OC4uYmE1YjJlNjNkOWUwNjg3OTkzMzU3MWMx
OTdhYjI3MWJkZDcyZGVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9N
L0RPTUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVy
bmFsLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkRPTU9iamVjdC5oIgogI2ltcG9ydCAi
RE9NWFBhdGhOU1Jlc29sdmVyLmgiCiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgorI2ltcG9ydCA8
d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEpTT2JqZWN0OwpA
QCAtNzcsMTIgKzc4LDEyIEBAIFdlYkNvcmU6Ok5vZGVGaWx0ZXIqIGNvcmUoRE9NTm9kZUZpbHRl
ciAqKTsKIERPTU5hdGl2ZVhQYXRoTlNSZXNvbHZlciAqa2l0KFdlYkNvcmU6OlhQYXRoTlNSZXNv
bHZlciopOwogV2ViQ29yZTo6WFBhdGhOU1Jlc29sdmVyKiBjb3JlKERPTU5hdGl2ZVhQYXRoTlNS
ZXNvbHZlciAqKTsKIAotaW5saW5lIE5TVGltZUludGVydmFsIGtpdChkb3VibGUgbXNTaW5jZUVw
b2NoKQoraW5saW5lIE5TVGltZUludGVydmFsIGtpdChXYWxsVGltZSB0aW1lKQogewotICAgIHJl
dHVybiBtc1NpbmNlRXBvY2ggLyAxMDAwLjAgLSBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MDsKKyAg
ICByZXR1cm4gdGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgLSBOU1RpbWVJbnRlcnZh
bFNpbmNlMTk3MDsKIH0KIAotaW5saW5lIGRvdWJsZSBjb3JlKE5TVGltZUludGVydmFsIHNlYykK
K2lubGluZSBXYWxsVGltZSBjb3JlKE5TVGltZUludGVydmFsIHNlYykKIHsKLSAgICByZXR1cm4g
c2VjICogMTAwMC4wICsgTlNUaW1lSW50ZXJ2YWxTaW5jZTE5NzA7CisgICAgcmV0dXJuIFdhbGxU
aW1lOjpmcm9tUmF3U2Vjb25kcyhzZWMgKyBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3MCk7CiB9Cg==
</data>
<flag name="commit-queue"
          id="471206"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445906</attachid>
            <date>2021-12-03 14:58:10 -0800</date>
            <delta_ts>2021-12-06 12:04:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233781-20211203155809.patch</filename>
            <type>text/plain</type>
            <size>25828</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NjgzZjkwOGQ3NGZhMTI0MDY0ZTM5YjA2ZDNmYjUzOTgxOTgwNWQzLi43
MzJkNTQ5ZmMyY2RiMjM4MTM0ZjBmY2MxMjUxZTM0ZmZmNTk2ZGZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTkgQEAKKzIwMjEtMTItMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIENoYW5nZSBJREwgYERhdGVgIHRvIGJlIGJhY2tlZCBieSBgV2FsbFRpbWVg
IHRvIGF2b2lkIGNvbmZ1c2lvbiB3aGVuIGNvbnZlcnRpbmcgdG8gbmF0aXZlIGRhdGVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM3ODEKKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBKUyBgRGF0ZWAgaXMgbWls
bGlzZWNvbmRzLWJhc2VkLCBidXQgc29tZSBuYXRpdmUgZGF0ZXMgKGUuZy4gYE5TRGF0ZWApIGFy
ZSBzZWNvbmRzLWJhc2VkLgorICAgICAgICBgV2FsbFRpbWVgIHdpbGwgaGVscCBhdm9pZCBjb25m
dXNpb24gc2luY2Ugbm90IGEgZ2VuZXJpYyB0eXBlIChlLmcuIGBkb3VibGVgKSBhbmQgaW5zdGVh
ZAorICAgICAgICBoYXMgZXhwbGljaXRseSBkZWZpbmVkIGNvbnZlcnNpb24gbWV0aG9kcyB0byBz
ZWNvbmRzLCBtaWxsaXNlY29uZHMsIGV0Yy4uCisKKyAgICAgICAgKiBiaW5kaW5ncy9JRExUeXBl
cy5oOgorICAgICAgICAoV2ViQ29yZTo6SURMRGF0ZTo6bnVsbFZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OklETERhdGU6OmlzTnVsbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklETERhdGU6
OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01D
b252ZXJ0RGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udmVydGVyPElETERhdGU+Ojpjb252
ZXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ29udmVydGVyPElETERhdGU+Ojpjb252ZXJ0KToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmpzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVRvRGF0ZSk6CisKKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TGluZUl0ZW0uaDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxlUGF5TGluZUl0ZW06OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBh
eS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjp0
b0RhdGUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAg
ICAoV2ViQ29yZTo6Y3JlYXRlSURCS2V5RnJvbVZhbHVlKToKKyAgICAgICAgKiBodG1sL0Jhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjp2YWx1
ZUFzRGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBl
OjpzZXRWYWx1ZUFzRGF0ZSBjb25zdCk6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
Ojp2YWx1ZUFzRGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1l
TG9jYWxJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6dmFsdWVBc0RhdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBl
Lmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5w
dXRUeXBlOjp2YWx1ZUFzRGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6
OnNldFZhbHVlQXNEYXRlIGNvbnN0KToKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmg6
CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpN
b250aElucHV0VHlwZTo6dmFsdWVBc0RhdGUgY29uc3QpOgorCisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmdldFN0YXJ0RGF0ZSBjb25zdCk6Cisg
ICAgICAgIFRoaXMgYWxzbyBmaXhlcyBhbiBhcHBhcmVudGx5IGxvbmdzdGFuZGluZyBidWcgaW4g
dGhhdCBgTWVkaWFUaW1lOjp0b0RvdWJsZWAgaXMgYXBwYXJlbnRseSBhCisgICAgICAgIHNlY29u
ZHMtYmFzZWQgdmFsdWUsIHNvIHRoaXMgaXMgdGhlIG9uZSBjYXNlIHRoYXQgZG9lc24ndCBuZWVk
IGBTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzYC4KKwogMjAyMS0xMi0wMyAgQWxhbiBCdWp0YXMg
IDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBTZXQgdGhlIGZpcnN0L2xh
c3QgYm94IGZsYWcgb24gdGhlIChiaWRpIGZyYWdtZW50ZWQpIGlubGluZSBib3ggdHlwZSBvZiBk
aXNwbGF5IGJveGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggNzZhYTZhYWY4NGRl
YjA4MmU0Yzg0MzIyNDkzMzgwZDgzM2RlOTJkMS4uODZlYmJhNGJmZTlmYWZlMWI5NDkxZGJhMjg1
ZjJiZTRiOThjMDliYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDIxLTEyLTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAg
ICAgICBDaGFuZ2UgSURMIGBEYXRlYCB0byBiZSBiYWNrZWQgYnkgYFdhbGxUaW1lYCB0byBhdm9p
ZCBjb25mdXNpb24gd2hlbiBjb252ZXJ0aW5nIHRvIG5hdGl2ZSBkYXRlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNzgxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgSlMgYERhdGVgIGlzIG1pbGxpc2Vjb25k
cy1iYXNlZCwgYnV0IHNvbWUgbmF0aXZlIGRhdGVzIChlLmcuIGBOU0RhdGVgKSBhcmUgc2Vjb25k
cy1iYXNlZC4KKyAgICAgICAgYFdhbGxUaW1lYCB3aWxsIGhlbHAgYXZvaWQgY29uZnVzaW9uIHNp
bmNlIG5vdCBhIGdlbmVyaWMgdHlwZSAoZS5nLiBgZG91YmxlYCkgYW5kIGluc3RlYWQKKyAgICAg
ICAgaGFzIGV4cGxpY2l0bHkgZGVmaW5lZCBjb252ZXJzaW9uIG1ldGhvZHMgdG8gc2Vjb25kcywg
bWlsbGlzZWNvbmRzLCBldGMuLgorCisgICAgICAgICogRE9NL0RPTUludGVybmFsLmg6CisgICAg
ICAgIChraXQpOgorICAgICAgICAoY29yZSk6CisKKyAgICAgICAgKiBET00vRE9NSFRNTE1lZGlh
RWxlbWVudC5tbToKKyAgICAgICAgKC1bRE9NSFRNTE1lZGlhRWxlbWVudCBnZXRTdGFydERhdGVd
KToKKwogMjAyMS0xMi0wMiAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29t
PgogCiAgICAgICAgIFtXZWJHUFVdIEhvb2sgdXAgbmF2aWdhdG9yLmdwdS5yZXF1ZXN0QWRhcHRl
cigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
TGluZUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5l
SXRlbS5oCmluZGV4IDk5ZWVmYmFiMTEzMzQzMWNjNWEwNzAyZmNjZDA5OGExOTNmNGM3MmIuLjZh
MzQ0MzdhNDQ4ZTg3MDBmMWViNmJhODk1ZGZiYmVjNWNlYTdiODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlMaW5lSXRlbS5oCkBAIC0yOSw4ICsy
OSw4IEBACiAKICNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRUaW1pbmcuaCIKICNpbmNsdWRlICJB
cHBsZVBheVJlY3VycmluZ1BheW1lbnREYXRlVW5pdC5oIgotI2luY2x1ZGUgPGxpbWl0cz4KICNp
bmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCkBAIC01
MiwxNCArNTIsMTQgQEAgc3RydWN0IEFwcGxlUGF5TGluZUl0ZW0gZmluYWwgewogICAgIEFwcGxl
UGF5UGF5bWVudFRpbWluZyBwYXltZW50VGltaW5nIHsgQXBwbGVQYXlQYXltZW50VGltaW5nOjpJ
bW1lZGlhdGUgfTsKIAogI2lmIEVOQUJMRShBUFBMRV9QQVlfUkVDVVJSSU5HX0xJTkVfSVRFTSkK
LSAgICBkb3VibGUgcmVjdXJyaW5nUGF5bWVudFN0YXJ0RGF0ZSB7IHN0ZDo6bnVtZXJpY19saW1p
dHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkgfTsKKyAgICBXYWxsVGltZSByZWN1cnJpbmdQYXltZW50
U3RhcnREYXRlIHsgV2FsbFRpbWU6Om5hbigpIH07CiAgICAgQXBwbGVQYXlSZWN1cnJpbmdQYXlt
ZW50RGF0ZVVuaXQgcmVjdXJyaW5nUGF5bWVudEludGVydmFsVW5pdCB7IEFwcGxlUGF5UmVjdXJy
aW5nUGF5bWVudERhdGVVbml0OjpNb250aCB9OwogICAgIHVuc2lnbmVkIHJlY3VycmluZ1BheW1l
bnRJbnRlcnZhbENvdW50ID0gMTsKLSAgICBkb3VibGUgcmVjdXJyaW5nUGF5bWVudEVuZERhdGUg
eyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpIH07CisgICAgV2FsbFRp
bWUgcmVjdXJyaW5nUGF5bWVudEVuZERhdGUgeyBXYWxsVGltZTo6bmFuKCkgfTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKEFQUExFX1BBWV9ERUZFUlJFRF9MSU5FX0lURU0pCi0gICAgZG91YmxlIGRl
ZmVycmVkUGF5bWVudERhdGUgeyBzdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05h
TigpIH07CisgICAgV2FsbFRpbWUgZGVmZXJyZWRQYXltZW50RGF0ZSB7IFdhbGxUaW1lOjpuYW4o
KSB9OwogI2VuZGlmCiAKICNpZiBkZWZpbmVkKEFwcGxlUGF5TGluZUl0ZW1BZGRpdGlvbnNfbWVt
YmVycykKQEAgLTEwNSwxMyArMTA1LDEzIEBAIHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlMaW5lSXRl
bT4gQXBwbGVQYXlMaW5lSXRlbTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgREVDT0RF
KGFtb3VudCwgU3RyaW5nKQogICAgIERFQ09ERShwYXltZW50VGltaW5nLCBBcHBsZVBheVBheW1l
bnRUaW1pbmcpCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9SRUNVUlJJTkdfTElORV9JVEVNKQotICAg
IERFQ09ERShyZWN1cnJpbmdQYXltZW50U3RhcnREYXRlLCBkb3VibGUpCisgICAgREVDT0RFKHJl
Y3VycmluZ1BheW1lbnRTdGFydERhdGUsIFdhbGxUaW1lKQogICAgIERFQ09ERShyZWN1cnJpbmdQ
YXltZW50SW50ZXJ2YWxVbml0LCBBcHBsZVBheVJlY3VycmluZ1BheW1lbnREYXRlVW5pdCkKICAg
ICBERUNPREUocmVjdXJyaW5nUGF5bWVudEludGVydmFsQ291bnQsIHVuc2lnbmVkKQotICAgIERF
Q09ERShyZWN1cnJpbmdQYXltZW50RW5kRGF0ZSwgZG91YmxlKQorICAgIERFQ09ERShyZWN1cnJp
bmdQYXltZW50RW5kRGF0ZSwgV2FsbFRpbWUpCiAjZW5kaWYKICNpZiBFTkFCTEUoQVBQTEVfUEFZ
X0RFRkVSUkVEX0xJTkVfSVRFTSkKLSAgICBERUNPREUoZGVmZXJyZWRQYXltZW50RGF0ZSwgZG91
YmxlKQorICAgIERFQ09ERShkZWZlcnJlZFBheW1lbnREYXRlLCBXYWxsVGltZSkKICNlbmRpZgog
I2lmIGRlZmluZWQoQXBwbGVQYXlMaW5lSXRlbUFkZGl0aW9uc19kZWNvZGVfbWVtYmVycykKICAg
ICBBcHBsZVBheUxpbmVJdGVtQWRkaXRpb25zX2RlY29kZV9tZW1iZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTdW1tYXJ5SXRlbXND
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1
bW1hcnlJdGVtc0NvY29hLm1tCmluZGV4IDk0MWE5ZWYxZDgwZWVlODUwNzE1NGMyMTZkNzcwMDY3
ZDc0MTBiMWEuLjVmMWMzMWI2ZTllMWU5ZWUyMzkzMGZkZDJkZTFmOTM1YmYyM2ViZDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1bW1h
cnlJdGVtc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29j
b2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tCkBAIC02MCw5ICs2MCw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogI2lmIEhBVkUoUEFTU0tJVF9SRUNVUlJJTkdfU1VNTUFSWV9JVEVNKSB8
fCBIQVZFKFBBU1NLSVRfREVGRVJSRURfU1VNTUFSWV9JVEVNKQogCi1zdGF0aWMgTlNEYXRlICp0
b0RhdGUoZG91YmxlIGRhdGUpCitzdGF0aWMgTlNEYXRlICp0b0RhdGUoV2FsbFRpbWUgZGF0ZSkK
IHsKLSAgICByZXR1cm4gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDooZGF0
ZSAvIDEwMDApXTsKKyAgICByZXR1cm4gW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNl
MTk3MDpkYXRlLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKV07CiB9CiAKICNlbmRpZiAvLyBI
QVZFKFBBU1NLSVRfUkVDVVJSSU5HX1NVTU1BUllfSVRFTSkgfHwgSEFWRShQQVNTS0lUX0RFRkVS
UkVEX1NVTU1BUllfSVRFTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lE
TFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCmluZGV4IGZkMDk5
ZjU0Mzc4YTE5OTVkM2YxNDc4ODk5NzU4MGNjYzhlZjljNTUuLjlmNjEyYTYxZTRiOWI3NGMxMzUy
YjE3YWNkYmI2N2RiNDZjOThmNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L0lETFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlwZXMuaApAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9CcmlnYW5kLmg+CiAjaW5jbHVkZSA8d3RmL1N0
ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRp
bWUuaD4KIAogI2lmIEVOQUJMRShXRUJHTCkKICNpbmNsdWRlICJXZWJHTEFueS5oIgpAQCAtMjU5
LDExICsyNjAsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RydWN0IElETFR5cGVkQXJyYXkg
OiBJRExCdWZmZXJTb3VyY2U8VD4geyB9OwogCiAvLyBOb24tV2ViSURMIGV4dGVuc2lvbnMKIAot
c3RydWN0IElETERhdGUgOiBJRExUeXBlPGRvdWJsZT4geyAKLSAgICB1c2luZyBOdWxsYWJsZVR5
cGUgPSBkb3VibGU7Ci0gICAgc3RhdGljIGRvdWJsZSBudWxsVmFsdWUoKSB7IHJldHVybiBzdGQ6
Om51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOyB9Ci0gICAgc3RhdGljIGJvb2wg
aXNOdWxsVmFsdWUoZG91YmxlIHZhbHVlKSB7IHJldHVybiBzdGQ6OmlzbmFuKHZhbHVlKTsgfQot
ICAgIHN0YXRpYyBkb3VibGUgZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gdmFsdWU7IH0KK3N0cnVjdCBJRExEYXRlIDogSURMVHlwZTxXYWxsVGltZT4geyAK
KyAgICB1c2luZyBOdWxsYWJsZVR5cGUgPSBXYWxsVGltZTsKKyAgICBzdGF0aWMgV2FsbFRpbWUg
bnVsbFZhbHVlKCkgeyByZXR1cm4gV2FsbFRpbWU6Om5hbigpOyB9CisgICAgc3RhdGljIGJvb2wg
aXNOdWxsVmFsdWUoV2FsbFRpbWUgdmFsdWUpIHsgcmV0dXJuIHN0ZDo6aXNuYW4odmFsdWUpOyB9
CisgICAgc3RhdGljIFdhbGxUaW1lIGV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShXYWxsVGltZSB2
YWx1ZSkgeyByZXR1cm4gdmFsdWU7IH0KIH07CiAKIHN0cnVjdCBJRExKU09OIDogSURMVHlwZTxT
dHJpbmc+IHsgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5k
aW5nVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdV
dGlsaXRpZXMuY3BwCmluZGV4IDllNTY3MjFkM2VkYWNkOGI5MGJiYjcwZDQzMTNlMWY3MDFmZTkx
OTMuLjFjYTBkNjU3MzIxMGJmMWE4MGQ4OTJhYTJiNzE4ZTY1YWVjNjA0NmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC0x
MDEsNyArMTAxLDcgQEAgc3RhdGljIGJvb2wgZ2V0KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBKU1ZhbHVlIG9iamVjdCwgY29uc3QgU3RyaW4KICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGlmIChrZXlQYXRoRWxlbWVudCA9PSAibGFzdE1v
ZGlmaWVkRGF0ZSIpIHsKLSAgICAgICAgICAgIHJlc3VsdCA9IGpzRGF0ZShsZXhpY2FsR2xvYmFs
T2JqZWN0LCBqc0Nhc3Q8SlNGaWxlKj4ob2JqKS0+d3JhcHBlZCgpLmxhc3RNb2RpZmllZCgpKTsK
KyAgICAgICAgICAgIHJlc3VsdCA9IGpzRGF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBXYWxsVGlt
ZTo6ZnJvbVJhd1NlY29uZHMoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhqc0Nhc3Q8SlNGaWxl
Kj4ob2JqKS0+d3JhcHBlZCgpLmxhc3RNb2RpZmllZCgpKS52YWx1ZSgpKSk7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTE3Nyw3ICsxNzcsNyBAQCBKU1Zh
bHVlIHRvSlMoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QsCiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6CiAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBwcm9iYWJseSBiZSB0b0pTPElETERhdGU+KC4u
LikgYXMgcGVyOgogICAgICAgICAvLyBodHRwOi8vdzNjLmdpdGh1Yi5pby9JbmRleGVkREIvI3Jl
cXVlc3QtY29udmVydC1hLWtleS10by1hLXZhbHVlCi0gICAgICAgIFJFTEVBU0VfQU5EX1JFVFVS
TihzY29wZSwgdG9KUzxJRExOdWxsYWJsZTxJRExEYXRlPj4obGV4aWNhbEdsb2JhbE9iamVjdCwg
a2V5LT5kYXRlKCkpKTsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCB0b0pTPElE
TE51bGxhYmxlPElETERhdGU+PihsZXhpY2FsR2xvYmFsT2JqZWN0LCBXYWxsVGltZTo6ZnJvbVJh
d1NlY29uZHMoU2Vjb25kczo6ZnJvbU1pbGxpc2Vjb25kcyhrZXktPmRhdGUoKSkudmFsdWUoKSkp
KTsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyOgogICAgICAgICByZXR1cm4g
anNOdW1iZXIoa2V5LT5udW1iZXIoKSk7CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok1p
bjoKQEAgLTIxMSw3ICsyMTEsNyBAQCBzdGF0aWMgUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5
RnJvbVZhbHVlKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogICAgICAgICBh
dXRvIGRhdGVWYWx1ZSA9IHZhbHVlVG9EYXRlKGxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsK
ICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICAgICAgaWYgKCFz
dGQ6OmlzbmFuKGRhdGVWYWx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVE
YXRlKGRhdGVWYWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVEYXRlKGRh
dGVWYWx1ZS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKICAgICB9CiAKICAg
ICBpZiAodmFsdWUuaXNPYmplY3QoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUNvbnZlcnREYXRlLmNwcAppbmRleCAxMzY3ZWQyNTQ3MjExYTM3YmY3NTM4NGQ4Mzlh
OGZkZWEzMjU5Yzc2Li5kODA3MGM4YzE1NWNmMmY3MmFlZjU0ZDgyNjlmNDY3YzhjNTE3MzUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmNwcApA
QCAtMzAsMjEgKzMwLDI0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwogCi1KU1ZhbHVlIGpzRGF0ZShKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgZG91YmxlIHZhbHVlKQorSlNWYWx1ZSBqc0RhdGUoSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIFdhbGxUaW1lIHZhbHVlKQogewotICAgIHJldHVybiBEYXRlSW5zdGFuY2U6
OmNyZWF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCksIGxleGljYWxHbG9iYWxPYmplY3QuZGF0
ZVN0cnVjdHVyZSgpLCB2YWx1ZSk7CisgICAgcmV0dXJuIERhdGVJbnN0YW5jZTo6Y3JlYXRlKGxl
eGljYWxHbG9iYWxPYmplY3Qudm0oKSwgbGV4aWNhbEdsb2JhbE9iamVjdC5kYXRlU3RydWN0dXJl
KCksIHZhbHVlLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCkpOwogfQogCi1kb3Vi
bGUgdmFsdWVUb0RhdGUoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKK1dhbGxUaW1lIHZhbHVlVG9EYXRlKEpTQzo6SlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CisgICAgZG91YmxlIG1pbGxp
c2Vjb25kcyA9IHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisKICAg
ICBhdXRvJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKICAgICBpZiAodmFsdWUuaW5o
ZXJpdHM8RGF0ZUluc3RhbmNlPih2bSkpCi0gICAgICAgIHJldHVybiBqc0Nhc3Q8RGF0ZUluc3Rh
bmNlKj4odmFsdWUpLT5pbnRlcm5hbE51bWJlcigpOwotICAgIGlmICh2YWx1ZS5pc051bWJlcigp
KQotICAgICAgICByZXR1cm4gdmFsdWUuYXNOdW1iZXIoKTsKLSAgICBpZiAodmFsdWUuaXNTdHJp
bmcoKSkKLSAgICAgICAgcmV0dXJuIHZtLmRhdGVDYWNoZS5wYXJzZURhdGUoJmxleGljYWxHbG9i
YWxPYmplY3QsIHZtLCB2YWx1ZS5nZXRTdHJpbmcoJmxleGljYWxHbG9iYWxPYmplY3QpKTsKLSAg
ICByZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICAg
ICAgbWlsbGlzZWNvbmRzID0ganNDYXN0PERhdGVJbnN0YW5jZSo+KHZhbHVlKS0+aW50ZXJuYWxO
dW1iZXIoKTsKKyAgICBlbHNlIGlmICh2YWx1ZS5pc051bWJlcigpKQorICAgICAgICBtaWxsaXNl
Y29uZHMgPSB2YWx1ZS5hc051bWJlcigpOworICAgIGVsc2UgaWYgKHZhbHVlLmlzU3RyaW5nKCkp
CisgICAgICAgIG1pbGxpc2Vjb25kcyA9IHZtLmRhdGVDYWNoZS5wYXJzZURhdGUoJmxleGljYWxH
bG9iYWxPYmplY3QsIHZtLCB2YWx1ZS5nZXRTdHJpbmcoJmxleGljYWxHbG9iYWxPYmplY3QpKTsK
KworICAgIHJldHVybiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoU2Vjb25kczo6ZnJvbU1pbGxp
c2Vjb25kcyhtaWxsaXNlY29uZHMpLnZhbHVlKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRE
YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnREYXRlLmgKaW5k
ZXggNTYyNDI5MjlmNzJkY2M1ZTRkNDQwNDI4MTExMmViZTA3YWY4YjY3NC4uZDEyMzYxZmQ2ZmYx
ZTFlNjEwYjNmMTIxOGU4MDY4Zjg2OGMyN2NkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01Db252ZXJ0RGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQ29udmVydERhdGUuaApAQCAtMjgsMTQgKzI4LDE1IEBACiAjaW5jbHVkZSAi
SURMVHlwZXMuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnRCYXNlLmgiCiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNHbG9iYWxPYmplY3QuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1KU0M6OkpTVmFsdWUganNEYXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QmLCBkb3VibGUgdmFsdWUpOwotZG91YmxlIHZhbHVlVG9EYXRlKEpTQzo6SlNHbG9i
YWxPYmplY3QmLCBKU0M6OkpTVmFsdWUpOyAvLyBOYU4gaWYgdGhlIHZhbHVlIGNhbid0IGJlIGNv
bnZlcnRlZCB0byBhIGRhdGUuCitKU0M6OkpTVmFsdWUganNEYXRlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QmLCBXYWxsVGltZSB2YWx1ZSk7CitXYWxsVGltZSB2YWx1ZVRvRGF0ZShKU0M6OkpTR2xvYmFs
T2JqZWN0JiwgSlNDOjpKU1ZhbHVlKTsgLy8gTmFOIGlmIHRoZSB2YWx1ZSBjYW4ndCBiZSBjb252
ZXJ0ZWQgdG8gYSBkYXRlLgogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBDb252ZXJ0ZXI8SURMRGF0ZT4g
OiBEZWZhdWx0Q29udmVydGVyPElETERhdGU+IHsKLSAgICBzdGF0aWMgZG91YmxlIGNvbnZlcnQo
SlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHZh
bHVlKQorICAgIHN0YXRpYyBXYWxsVGltZSBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxl
eGljYWxHbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKICAgICB7CiAgICAgICAgIHJl
dHVybiB2YWx1ZVRvRGF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgfQpAQCAt
NDYsNyArNDcsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBKU0NvbnZlcnRlcjxJRExEYXRlPiB7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBib29sIG5lZWRzR2xvYmFsT2JqZWN0ID0gZmFsc2U7CiAKICAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgdGFraW5nIGEgSlNET01HbG9iYWxPYmplY3QgYW5k
IHBhc3NpbmcgaXQgdG8ganNEYXRlLgotICAgIHN0YXRpYyBKU0M6OkpTVmFsdWUgY29udmVydChK
U0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBkb3VibGUgdmFsdWUpCisg
ICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBjb252ZXJ0KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIFdhbGxUaW1lIHZhbHVlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGpz
RGF0ZShsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDU2MGE0Y2Y5NmI2
OGEyMWI3ODMyODY4NDFjMDU0MDJiYzlhZDYzNGUuLjZjMzgxYWE3MDFjOTQwNzI2NjFjZTBlMTUy
ZjI1OTFiNTQ3MTQ5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAKQEAgLTEyNywxNSArMTI3LDE1IEBAIEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZTo6fkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSgpCiAgICAgY2xvc2VEYXRlVGltZUNo
b29zZXIoKTsKIH0KIAotZG91YmxlIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6dmFsdWVBc0Rh
dGUoKSBjb25zdAorV2FsbFRpbWUgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjp2YWx1ZUFzRGF0
ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHZhbHVlQXNEb3VibGUoKTsKKyAgICByZXR1cm4gV2Fs
bFRpbWU6OmZyb21SYXdTZWNvbmRzKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHModmFsdWVBc0Rv
dWJsZSgpKS52YWx1ZSgpKTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUgdmFsdWUpIGNvbnN0CitFeGNlcHRpb25P
cjx2b2lkPiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlQXNEYXRlKFdhbGxUaW1l
IHZhbHVlKSBjb25zdAogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwotICAgIGVsZW1lbnQoKS0+
c2V0VmFsdWUoc2VyaWFsaXplV2l0aE1pbGxpc2Vjb25kcyh2YWx1ZSkpOworICAgIGVsZW1lbnQo
KS0+c2V0VmFsdWUoc2VyaWFsaXplV2l0aE1pbGxpc2Vjb25kcyh2YWx1ZS5zZWNvbmRzU2luY2VF
cG9jaCgpLm1pbGxpc2Vjb25kcygpKSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggYzcyOWM5MjJh
YjM4YmE4ZDk0ZDQ3NDQ1NzMzYWRhMzBjNTk1ZTI3Ni4uNjg5MTA1YjM2NTFjNjNiYjlmZmRhYTFl
OWNkMDg0MWMxZDA2NDNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5oCkBAIC0xMDIsOCArMTAyLDggQEAgcHJpdmF0ZToKICAgICBTdHJpbmcg
dmlzaWJsZVZhbHVlKCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIHNhbml0aXplVmFsdWUoY29u
c3QgU3RyaW5nJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcm
LCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgZmluYWw7Ci0gICAg
ZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0VmFsdWVBc0RhdGUoZG91YmxlKSBjb25zdCBvdmVycmlkZTsKKyAgICBXYWxsVGltZSB2
YWx1ZUFzRGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZh
bHVlQXNEYXRlKFdhbGxUaW1lKSBjb25zdCBvdmVycmlkZTsKICAgICBkb3VibGUgdmFsdWVBc0Rv
dWJsZSgpIGNvbnN0IGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEZWNp
bWFsKGNvbnN0IERlY2ltYWwmLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBjb25zdCBmaW5hbDsK
ICAgICBEZWNpbWFsIGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0IG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKaW5kZXggNTk4
YThiYmRmNzRmNTdiMGY3ZmQxNWU5NzAwZGJhMzg2YmMyMTRlYS4uZGIxNmRhN2U0OTliMWU5YmI3
ODM2OTcxMzE2YmVlOThhNmJkZTNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuY3BwCkBAIC02MiwxMyArNjIsMTMgQEAgRGF0ZUNvbXBvbmVudHNU
eXBlIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmRhdGVUeXBlKCkgY29uc3QKICAgICByZXR1cm4g
RGF0ZUNvbXBvbmVudHNUeXBlOjpEYXRlVGltZUxvY2FsOwogfQogCi1kb3VibGUgRGF0ZVRpbWVM
b2NhbElucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAorV2FsbFRpbWUgRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZTo6dmFsdWVBc0RhdGUoKSBjb25zdAogewogICAgIC8vIHZhbHVlQXNEYXRlIGRv
ZXNuJ3Qgd29yayBmb3IgdGhlIGRhdGV0aW1lLWxvY2FsIHR5cGUgYWNjb3JkaW5nIHRvIHRoZSBz
dGFuZGFyZC4KLSAgICByZXR1cm4gRGF0ZUNvbXBvbmVudHM6OmludmFsaWRNaWxsaXNlY29uZHMo
KTsKKyAgICByZXR1cm4gV2FsbFRpbWU6Om5hbigpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBE
YXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUgdmFsdWUpIGNvbnN0
CitFeGNlcHRpb25Pcjx2b2lkPiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0
ZShXYWxsVGltZSB2YWx1ZSkgY29uc3QKIHsKICAgICAvLyB2YWx1ZUFzRGF0ZSBkb2Vzbid0IHdv
cmsgZm9yIHRoZSBkYXRldGltZS1sb2NhbCB0eXBlIGFjY29yZGluZyB0byB0aGUgc3RhbmRhcmQu
CiAgICAgcmV0dXJuIElucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUodmFsdWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaAppbmRleCAxNjZmNTAwMDQxNmVj
NDY3YTVmZTk5MzQ3YjdmYzlhMjM5MjQxMjg3Li41NjBmYjY0ZDAwYTJiYThkMjc0MjFiZmIxMDFi
NWMwYTcyNTIxZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9j
YWxJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1
dFR5cGUuaApAQCAtNDcsOCArNDcsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGNvbnN0IEF0
b21TdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IGZpbmFsOwogICAgIERhdGVDb21wb25l
bnRzVHlwZSBkYXRlVHlwZSgpIGNvbnN0IGZpbmFsOwotICAgIGRvdWJsZSB2YWx1ZUFzRGF0ZSgp
IGNvbnN0IGZpbmFsOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKGRvdWJs
ZSkgY29uc3QgZmluYWw7CisgICAgV2FsbFRpbWUgdmFsdWVBc0RhdGUoKSBjb25zdCBmaW5hbDsK
KyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0ZShXYWxsVGltZSkgY29uc3QgZmlu
YWw7CiAgICAgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcpIGNvbnN0
IGZpbmFsOwogICAgIHN0ZDo6b3B0aW9uYWw8RGF0ZUNvbXBvbmVudHM+IHBhcnNlVG9EYXRlQ29t
cG9uZW50cyhTdHJpbmdWaWV3KSBjb25zdCBmaW5hbDsKICAgICBzdGQ6Om9wdGlvbmFsPERhdGVD
b21wb25lbnRzPiBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlKSBjb25zdCBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDM4NjAy
MmEwNzM4ODVkY2Q2MGY3NGViN2Q3OTgwZWJjYzA4MzBmNGMuLjFjY2QyMzIxNWFkOTc5ZDhmYmZl
ZjQyZGYxZTkyNWUzZTQ4ODQxYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcApAQCAtMTEwOCwxMiArMTEwOCwxMiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNl
dFZhbHVlSW50ZXJuYWwoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgVGV4dEZpZWxkRQog
ICAgIHVwZGF0ZVZhbGlkaXR5KCk7CiB9CiAKLWRvdWJsZSBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1
ZUFzRGF0ZSgpIGNvbnN0CitXYWxsVGltZSBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT52YWx1ZUFzRGF0ZSgpOwogfQogCi1F
eGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZShkb3VibGUg
dmFsdWUpCitFeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0
ZShXYWxsVGltZSB2YWx1ZSkKIHsKICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnNldFZhbHVlQXNE
YXRlKHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXgg
MTk5ODQ0Y2ZhN2M1NzM1Y2I0ZDcyMzBlYjVkM2RiOTBmYTU5M2Y1Yi4uNzUwNmMyODY0NTQ3YWY4
NWRkODkyZWJlMDEzMDcwMWIxYjZmODUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmgKQEAgLTE4NCw4ICsxODQsOCBAQCBwdWJsaWM6CiAgICAgLy8gVGhlIHZhbHVlIHdo
aWNoIGlzIGRyYXduIGJ5IGEgcmVuZGVyZXIuCiAgICAgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNv
bnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgZG91YmxlIHZhbHVlQXNEYXRlKCkgY29uc3Q7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoZG91Ymxl
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBXYWxsVGltZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKFdhbGxUaW1l
KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJsZSB2YWx1ZUFzTnVtYmVyKCkgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc051bWJlcihkb3Vi
bGUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggNTE3MWI5Y2RjNzg5MzE3MWUyMWU1
ZjRiZjU1MDE3ZWY5NDRhYzc5NS4uZWM4MzUxYzA5Nzc0OGIxNDlhOTQ0MzliYWI2OTU3OGVlOTAw
MWEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMTEx
LDExICsxMTExLDEyIEBAIFN0cmluZyBIVE1MTWVkaWFFbGVtZW50OjpjYW5QbGF5VHlwZShjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKSBjb25zdAogICAgIHJldHVybiBjYW5QbGF5OwogfQogCi1kb3Vi
bGUgSFRNTE1lZGlhRWxlbWVudDo6Z2V0U3RhcnREYXRlKCkgY29uc3QKK1dhbGxUaW1lIEhUTUxN
ZWRpYUVsZW1lbnQ6OmdldFN0YXJ0RGF0ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BsYXllcikK
LSAgICAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7
Ci0gICAgcmV0dXJuIG1fcGxheWVyLT5nZXRTdGFydERhdGUoKS50b0RvdWJsZSgpOworICAgICAg
ICByZXR1cm4gV2FsbFRpbWU6Om5hbigpOworCisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3
U2Vjb25kcyhtX3BsYXllci0+Z2V0U3RhcnREYXRlKCkudG9Eb3VibGUoKSk7CiB9CiAKIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6bG9hZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5oCmluZGV4IDY5NTY2OTQ5NjMxMGVmOTEwOGI5NTZmZGE0ODIxNDMwMTQ5NzBlY2IuLjZiNDA0
YWE4NzM1Mjc3N2I0NzE4MzVmMTIwZmYxNTdjZWVkODRhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8d3RmL0Z1bmN0
aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dlckhlbHBlci5oPgogI2luY2x1ZGUgPHd0Zi9PYnNl
cnZlci5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKICNpZiBVU0UoQVVESU9fU0VTU0lPTikgJiYgUExBVEZPUk0oTUFDKQpAQCAtMjQyLDcg
KzI0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEN1cnJlbnRUaW1lV2l0aFRvbGVyYW5jZShk
b3VibGUsIGRvdWJsZSB0b2xlcmFuY2VCZWZvcmUsIGRvdWJsZSB0b2xlcmFuY2VBZnRlcik7CiAg
ICAgZG91YmxlIGN1cnJlbnRUaW1lRm9yQmluZGluZ3MoKSBjb25zdCB7IHJldHVybiBjdXJyZW50
VGltZSgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q3VycmVu
dFRpbWVGb3JCaW5kaW5ncyhkb3VibGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIGRvdWJsZSBnZXRT
dGFydERhdGUoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBXYWxsVGltZSBnZXRTdGFydERh
dGUoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBkb3VibGUgZHVyYXRpb24oKSBjb25zdCBv
dmVycmlkZTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHBhdXNlZCgpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZvaWQgc2V0UGF1c2VkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCmlu
ZGV4IGViMGU4NDFhZDlmYzAwYTYyYTJkOTQ2MzBjZmI3MTEwMGY0ZTA2MjguLmNmZWM2Nzk3NDE1
NjZjZTYwZmRjMzQyOWUyMmQ0Mjc2Mzg4Mzc1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5j
cHAKQEAgLTIwNCwxMiArMjA0LDEyIEBAIGJvb2wgSW5wdXRUeXBlOjphcHBlbmRGb3JtRGF0YShE
T01Gb3JtRGF0YSYgZm9ybURhdGEpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWRvdWJs
ZSBJbnB1dFR5cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKK1dhbGxUaW1lIElucHV0VHlwZTo6dmFs
dWVBc0RhdGUoKSBjb25zdAogewotICAgIHJldHVybiBEYXRlQ29tcG9uZW50czo6aW52YWxpZE1p
bGxpc2Vjb25kcygpOworICAgIHJldHVybiBXYWxsVGltZTo6bmFuKCk7CiB9CiAKLUV4Y2VwdGlv
bk9yPHZvaWQ+IElucHV0VHlwZTo6c2V0VmFsdWVBc0RhdGUoZG91YmxlKSBjb25zdAorRXhjZXB0
aW9uT3I8dm9pZD4gSW5wdXRUeXBlOjpzZXRWYWx1ZUFzRGF0ZShXYWxsVGltZSkgY29uc3QKIHsK
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5oCmluZGV4IGRhMWRlYmNiNmI5ZmMwNTJmZDYzYjU0Yjk2MjBjMjBhNzA0MzMy
NjguLmUwZWFhODExZGRiNDE1MTdiMjg3M2FiNjZhMzc2MjJmYjY2ODdlZGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuaApAQCAtMjIwLDggKzIyMCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJv
b2wgZ2V0VHlwZVNwZWNpZmljVmFsdWUoU3RyaW5nJik7IC8vIENoZWNrZWQgZmlyc3QsIGJlZm9y
ZSBpbnRlcm5hbCBzdG9yYWdlIG9yIHRoZSB2YWx1ZSBhdHRyaWJ1dGUuCiAgICAgdmlydHVhbCBT
dHJpbmcgZmFsbGJhY2tWYWx1ZSgpIGNvbnN0OyAvLyBDaGVja2VkIGxhc3QsIGlmIGJvdGggaW50
ZXJuYWwgc3RvcmFnZSBhbmQgdmFsdWUgYXR0cmlidXRlIGFyZSBtaXNzaW5nLgogICAgIHZpcnR1
YWwgU3RyaW5nIGRlZmF1bHRWYWx1ZSgpIGNvbnN0OyAvLyBDaGVja2VkIGFmdGVyIGV2ZW4gZmFs
bGJhY2tWYWx1ZSwgb25seSB3aGVuIHRoZSB2YWx1ZVdpdGhEZWZhdWx0IGZ1bmN0aW9uIGlzIGNh
bGxlZC4KLSAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0OwotICAgIHZpcnR1
YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RhdGUoZG91YmxlKSBjb25zdDsKKyAgICB2
aXJ0dWFsIFdhbGxUaW1lIHZhbHVlQXNEYXRlKCkgY29uc3Q7CisgICAgdmlydHVhbCBFeGNlcHRp
b25Pcjx2b2lkPiBzZXRWYWx1ZUFzRGF0ZShXYWxsVGltZSkgY29uc3Q7CiAgICAgdmlydHVhbCBk
b3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0VmFsdWVBc0RvdWJsZShkb3VibGUsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGNvbnN0
OwogICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RlY2ltYWwoY29uc3Qg
RGVjaW1hbCYsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCA4OTE4ZWUxYzljNDBkYjQwNTQ5Mjc0ZTFiZGJkMzU2
NjNkNDQ0ZDI3Li4xOTgzYzQwOTk4ZjA2NTdiMTdkMWQ4MGRlYjI4MGJkNjJlNzQ1ODExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcApAQCAtNjQsMTUgKzY0LDE1IEBAIERh
dGVDb21wb25lbnRzVHlwZSBNb250aElucHV0VHlwZTo6ZGF0ZVR5cGUoKSBjb25zdAogICAgIHJl
dHVybiBEYXRlQ29tcG9uZW50c1R5cGU6Ok1vbnRoOwogfQogCi1kb3VibGUgTW9udGhJbnB1dFR5
cGU6OnZhbHVlQXNEYXRlKCkgY29uc3QKK1dhbGxUaW1lIE1vbnRoSW5wdXRUeXBlOjp2YWx1ZUFz
RGF0ZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgYXV0byBkYXRlID0g
cGFyc2VUb0RhdGVDb21wb25lbnRzKGVsZW1lbnQoKS0+dmFsdWUoKSk7CiAgICAgaWYgKCFkYXRl
KQotICAgICAgICByZXR1cm4gRGF0ZUNvbXBvbmVudHM6OmludmFsaWRNaWxsaXNlY29uZHMoKTsK
KyAgICAgICAgcmV0dXJuIFdhbGxUaW1lOjpuYW4oKTsKICAgICBkb3VibGUgbXNlYyA9IGRhdGUt
Pm1pbGxpc2Vjb25kc1NpbmNlRXBvY2goKTsKICAgICBBU1NFUlQoc3RkOjppc2Zpbml0ZShtc2Vj
KSk7Ci0gICAgcmV0dXJuIG1zZWM7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25k
cyhTZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKG1zZWMpLnZhbHVlKCkpOwogfQogCiBTdHJpbmcg
TW9udGhJbnB1dFR5cGU6OnNlcmlhbGl6ZVdpdGhNaWxsaXNlY29uZHMoZG91YmxlIHZhbHVlKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCmluZGV4IGRhNGM1YmM4YTQzZTFm
MDQ2OGY2ODA2ZDk1YjRmMWY0MDc1ODI3OWMuLjU3Mjc4YjVkYTA3Mzg1MjI0MWYxYTE4NzliMGEx
NjgxYTFlNDZlNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKQEAgLTQ3LDcg
KzQ3LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBjb25zdCBBdG9tU3RyaW5nJiBmb3JtQ29u
dHJvbFR5cGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBEYXRlQ29tcG9uZW50c1R5cGUgZGF0ZVR5
cGUoKSBjb25zdCBvdmVycmlkZTsKLSAgICBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBXYWxsVGltZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFN0
cmluZyBzZXJpYWxpemVXaXRoTWlsbGlzZWNvbmRzKGRvdWJsZSkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgRGVjaW1hbCBwYXJzZVRvTnVtYmVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IERlY2ltYWwmKSBj
b25zdCBvdmVycmlkZTsKICAgICBEZWNpbWFsIGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUhU
TUxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTE1l
ZGlhRWxlbWVudC5tbQppbmRleCAzZjJiZWUzY2RjYWI5ZWQ2YjkwMzJmZjE4MDBiMzRiMzA3OWY2
NjZmLi45YWUxN2NiMTUwZDk4MGVmOGI2ZmU4MjlmMTRjYmU1Y2M4NGE1N2VkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9ET00vRE9NSFRNTE1lZGlhRWxlbWVudC5tbQpAQCAt
MjgsNiArMjgsNyBAQAogCiAjaW1wb3J0ICJET01IVE1MTWVkaWFFbGVtZW50LmgiCiAKKyNpbXBv
cnQgIkRPTUludGVybmFsLmgiCiAjaW1wb3J0ICJET01NZWRpYUVycm9ySW50ZXJuYWwuaCIKICNp
bXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NVGltZVJhbmdlc0ludGVybmFs
LmgiCkBAIC0zMTMsNyArMzE0LDcgQEAgLSAoTlNTdHJpbmcgKiljYW5QbGF5VHlwZTooTlNTdHJp
bmcgKil0eXBlCiAtIChOU1RpbWVJbnRlcnZhbClnZXRTdGFydERhdGUKIHsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPmdldFN0YXJ0
RGF0ZSgpOworICAgIHJldHVybiBraXQoSU1QTC0+Z2V0U3RhcnREYXRlKCkpOwogfQogCiAtICh2
b2lkKXBsYXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0RPTS9ET01JbnRl
cm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9NL0RPTUludGVybmFsLmgKaW5kZXgg
OWU3MWM0YmQ1M2I0MmM5NmJiOGJiMDA0ZjMwM2IwNzIwYTBlM2Y3OC4uYmE1YjJlNjNkOWUwNjg3
OTkzMzU3MWMxOTdhYjI3MWJkZDcyZGVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvRE9NL0RPTUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvRE9N
L0RPTUludGVybmFsLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQgIkRPTU9iamVjdC5oIgog
I2ltcG9ydCAiRE9NWFBhdGhOU1Jlc29sdmVyLmgiCiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgor
I2ltcG9ydCA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBKU0MgewogICAgIGNsYXNzIEpT
T2JqZWN0OwpAQCAtNzcsMTIgKzc4LDEyIEBAIFdlYkNvcmU6Ok5vZGVGaWx0ZXIqIGNvcmUoRE9N
Tm9kZUZpbHRlciAqKTsKIERPTU5hdGl2ZVhQYXRoTlNSZXNvbHZlciAqa2l0KFdlYkNvcmU6OlhQ
YXRoTlNSZXNvbHZlciopOwogV2ViQ29yZTo6WFBhdGhOU1Jlc29sdmVyKiBjb3JlKERPTU5hdGl2
ZVhQYXRoTlNSZXNvbHZlciAqKTsKIAotaW5saW5lIE5TVGltZUludGVydmFsIGtpdChkb3VibGUg
bXNTaW5jZUVwb2NoKQoraW5saW5lIE5TVGltZUludGVydmFsIGtpdChXYWxsVGltZSB0aW1lKQog
ewotICAgIHJldHVybiBtc1NpbmNlRXBvY2ggLyAxMDAwLjAgLSBOU1RpbWVJbnRlcnZhbFNpbmNl
MTk3MDsKKyAgICByZXR1cm4gdGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgLSBOU1Rp
bWVJbnRlcnZhbFNpbmNlMTk3MDsKIH0KIAotaW5saW5lIGRvdWJsZSBjb3JlKE5TVGltZUludGVy
dmFsIHNlYykKK2lubGluZSBXYWxsVGltZSBjb3JlKE5TVGltZUludGVydmFsIHNlYykKIHsKLSAg
ICByZXR1cm4gc2VjICogMTAwMC4wICsgTlNUaW1lSW50ZXJ2YWxTaW5jZTE5NzA7CisgICAgcmV0
dXJuIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzZWMgKyBOU1RpbWVJbnRlcnZhbFNpbmNlMTk3
MCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>