<?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>45664</bug_id>
          
          <creation_ts>2010-09-13 06:10:23 -0700</creation_ts>
          <short_desc>Web Inspector: [Resources panel] Timing accuracy.</short_desc>
          <delta_ts>2010-09-16 02:31:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>45816</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>abarth</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>sullivan</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>278162</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-13 06:10:23 -0700</bug_when>
    <thetext>I set up a test page with two images followed by a JavaScript block which executes a script for 5 seconds in a tight loop. In Firebug, the images are correctly shown loading in parallel. In Chrome, the first image stop load time and the second image start show as after the tight loop finishes. It seems that long-running JavaScript code makes the timings in the resources panel inaccurate. Firebug used to have similar problems, but they were fixed. See this blog post for more information: http://www.softwareishard.com/blog/firebug/firebug-http-time-monitor/.

See images attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278216</commentid>
    <comment_count>1</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-13 08:09:39 -0700</bug_when>
    <thetext>&lt;&lt; Previous post was a report from user &gt;&gt;

&lt;&lt; Below is a clarification note from Steve &gt;&gt;

A note from Steve with A more complete description of the problem:

Web Inspector appears to be displaying incorrect network timing info that&apos;s thrown off by JS execution in the page. Here&apos;s an example page:

    http://stevesouders.com/cuzillion/?c0=bj2hfff1_5_f&amp;c1=bi2hfff2_0_f

There are two resources. Both start downloading at about the same time. The script finishes downloading around 1 second. The image finishes downloading around 2 seconds. This is in fact the behavior shown by HttpWatch and Firebug Net Panel. 

However, when viewed in Web Inspector in Chrome the image is shown as taking ~6 seconds to download. That&apos;s because the script has a 5 second tight loop. This is likely blocking the Web Inspector from determining the correct timing for the image download. (I verified the true image download time by watching my server logs.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278218</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-13 08:11:16 -0700</bug_when>
    <thetext>The reason is that we mark resource finish time after the JS execution callback. I&apos;ll look into it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278249</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-13 09:28:31 -0700</bug_when>
    <thetext>Investigation note:

To problems here:

1) Sync script processing is happening before we measure resource finish time (easy to fix)

2) Resource timing is measured from within WebCore dispatch events that are by definition synchronous. As a result, async network events are serialized and then measured (and hence are bogus). The way to fix it is to rely upon the network stack timers reported as a part of ResourceLoadTiming struct. Two missing pieces here:
 - resource finish time is currently not a part of load timing, need to extend it
 - not all of the WebKit platforms will be able to provide resource load timing, hence we will need to fall back to the existing behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278948</commentid>
    <comment_count>4</comment_count>
      <attachid>67561</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-14 09:11:55 -0700</bug_when>
    <thetext>Created attachment 67561
[PATCH] Proposed change.

With this change, platforms have a way to report proper resource load finish time to the WebCore. Rest of the timers can already be pushed by means of ResourceLoadTiming. Resource finish is a bit different since it is not available on didReceiveResponse. Hence it should be reported as a part of didFinishLoad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278955</commentid>
    <comment_count>5</comment_count>
      <attachid>67563</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-14 09:14:28 -0700</bug_when>
    <thetext>Created attachment 67563
[PATCH] Same with the chromium agent call fixed.

Chromium bots will still fail compile since they need coordinated landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278968</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-14 09:28:37 -0700</bug_when>
    <thetext>Attachment 67561 did not build on mac:
Build output: http://queues.webkit.org/results/4047007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278972</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-14 09:30:36 -0700</bug_when>
    <thetext>Attachment 67561 did not build on gtk:
Build output: http://queues.webkit.org/results/4004010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278977</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-14 09:39:47 -0700</bug_when>
    <thetext>Attachment 67561 did not build on chromium:
Build output: http://queues.webkit.org/results/3996012</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278978</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-14 09:42:07 -0700</bug_when>
    <thetext>Attachment 67563 did not build on mac:
Build output: http://queues.webkit.org/results/4054006</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278979</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-14 09:47:42 -0700</bug_when>
    <thetext>Attachment 67563 did not build on gtk:
Build output: http://queues.webkit.org/results/4005011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278986</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-14 09:54:31 -0700</bug_when>
    <thetext>Attachment 67563 did not build on chromium:
Build output: http://queues.webkit.org/results/4070005</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278992</commentid>
    <comment_count>12</comment_count>
      <attachid>67572</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-14 10:08:07 -0700</bug_when>
    <thetext>Created attachment 67572
[PATCH] More work for bots, no default values this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279004</commentid>
    <comment_count>13</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-09-14 10:21:48 -0700</bug_when>
    <thetext>Attachment 67572 did not build on qt:
Build output: http://queues.webkit.org/results/4063009</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279010</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-14 10:28:11 -0700</bug_when>
    <thetext>Attachment 67572 did not build on mac:
Build output: http://queues.webkit.org/results/4071008</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279016</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-14 10:33:40 -0700</bug_when>
    <thetext>Attachment 67572 did not build on gtk:
Build output: http://queues.webkit.org/results/4001010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279022</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-14 10:45:26 -0700</bug_when>
    <thetext>Attachment 67572 did not build on chromium:
Build output: http://queues.webkit.org/results/4051011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279056</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-14 11:47:27 -0700</bug_when>
    <thetext>Attachment 67572 did not build on win:
Build output: http://queues.webkit.org/results/4026010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279452</commentid>
    <comment_count>18</comment_count>
      <attachid>67653</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-15 01:11:30 -0700</bug_when>
    <thetext>Created attachment 67653
[PATCH] Rebaselined. Bots, jump in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279463</commentid>
    <comment_count>19</comment_count>
      <attachid>67653</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-09-15 01:38:10 -0700</bug_when>
    <thetext>Comment on attachment 67653
[PATCH] Rebaselined. Bots, jump in.

Please address the comments before landing.


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

&gt; WebCore/inspector/InspectorController.cpp:1060
&gt; +    resource-&gt;endTiming(0);
It might make sense to pass real time here. The timing may be useful in a scenario where the user checks whether the resource is available and takes further decision based on its availability.

&gt; WebCore/platform/network/ResourceHandleClient.h:76
&gt; +        virtual void didFinishLoading(ResourceHandle*, double) { }
Please specify name for the second parameter.

&gt; WebKit/chromium/public/WebURLLoaderClient.h:67
&gt; +    virtual void didFinishLoading(WebURLLoader*, double finishTime) { }
You will get &quot;unused parameter&quot; warning here.

&gt; WebKit/chromium/public/WebURLLoaderClient.h:70
&gt; +    void didFinishLoading(WebURLLoader* loader) { didFinishLoading(loader, 0); }
This should be virtual, otherwise Chromium may break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279470</commentid>
    <comment_count>20</comment_count>
      <attachid>67658</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-15 02:06:55 -0700</bug_when>
    <thetext>Created attachment 67658
[PATCH] Review comments addressed (for try bots).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279475</commentid>
    <comment_count>21</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-15 02:28:41 -0700</bug_when>
    <thetext>Attachment 67658 did not build on mac:
Build output: http://queues.webkit.org/results/4021024</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279481</commentid>
    <comment_count>22</comment_count>
      <attachid>67660</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-15 02:48:06 -0700</bug_when>
    <thetext>Created attachment 67660
[PATCH] More rebaselines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279486</commentid>
    <comment_count>23</comment_count>
      <attachid>67661</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-15 03:05:59 -0700</bug_when>
    <thetext>Created attachment 67661
[PATCH] More rebaselines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279509</commentid>
    <comment_count>24</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-15 05:13:40 -0700</bug_when>
    <thetext>        M       WebCore/ChangeLog
        M       WebCore/inspector/InspectorController.cpp
        M       WebCore/inspector/InspectorController.h
        M       WebCore/inspector/InspectorResource.cpp
        M       WebCore/inspector/InspectorResource.h
        M       WebCore/loader/DocumentLoader.cpp
        M       WebCore/loader/MainResourceLoader.cpp
        M       WebCore/loader/MainResourceLoader.h
        M       WebCore/loader/NetscapePlugInStreamLoader.cpp
        M       WebCore/loader/PingLoader.h
        M       WebCore/loader/ResourceLoadNotifier.cpp
        M       WebCore/loader/ResourceLoadNotifier.h
        M       WebCore/loader/ResourceLoader.cpp
        M       WebCore/loader/ResourceLoader.h
        M       WebCore/loader/SubresourceLoader.cpp
        M       WebCore/loader/SubresourceLoader.h
        M       WebCore/loader/appcache/ApplicationCacheGroup.cpp
        M       WebCore/loader/appcache/ApplicationCacheGroup.h
        M       WebCore/loader/icon/IconFetcher.cpp
        M       WebCore/loader/icon/IconFetcher.h
        M       WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp
        M       WebCore/platform/network/BlobResourceHandle.cpp
        M       WebCore/platform/network/ResourceHandleClient.h
        M       WebCore/platform/network/cf/ResourceHandleCFNet.cpp
        M       WebCore/platform/network/curl/ResourceHandleCurl.cpp
        M       WebCore/platform/network/curl/ResourceHandleManager.cpp
        M       WebCore/platform/network/mac/ResourceHandleMac.mm
        M       WebCore/platform/network/qt/QNetworkReplyHandler.cpp
        M       WebCore/platform/network/qt/ResourceHandleQt.cpp
        M       WebCore/platform/network/soup/ResourceHandleSoup.cpp
        M       WebCore/platform/network/win/ResourceHandleWin.cpp
        M       WebKit/chromium/ChangeLog
        M       WebKit/chromium/public/WebURLLoaderClient.h
        M       WebKit/chromium/src/ResourceHandle.cpp
        M       WebKit/chromium/src/WebDevToolsAgentImpl.cpp
        M       WebKit/gtk/ChangeLog
        M       WebKit/gtk/webkit/webkitdownload.cpp
Committed r67551</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279510</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-15 05:29:28 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67551 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279971</commentid>
    <comment_count>26</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-16 01:24:54 -0700</bug_when>
    <thetext>Could this be causing the image load failure seen in bug 45875?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279986</commentid>
    <comment_count>27</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-16 02:31:08 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; Could this be causing the image load failure seen in bug 45875?

I don&apos;t think so. This change only added parameter to the didFinishLoading. Did not change behavior.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67561</attachid>
            <date>2010-09-14 09:11:55 -0700</date>
            <delta_ts>2010-09-14 09:14:28 -0700</delta_ts>
            <desc>[PATCH] Proposed change.</desc>
            <filename>finish_time</filename>
            <type>text/plain</type>
            <size>28453</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWRhY2E4Mi4uY2MyZjA5ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxMC0wOS0xNCAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92aWRlIG5ldHdvcmstYmFzZWQg
bG9hZCB0aW1pbmcuCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgaW5zcGVjdG9yIHVzZWQg
dGltZXJzIHRha2VuIGZyb20KKyAgICAgICAgd2l0aGluIFdlYkNvcmUgbm90aWZpY2F0aW9ucyAo
dGhhdCBhcmUgYnkgZGVmaW5pdGlvbgorICAgICAgICBzeW5jaHJvbm91cyBhbmQgc2VyaWFsaXpl
ZCkuIEFzIGEgcmVzdWx0LCB0aW1pbmcgd2FzCisgICAgICAgIGFmZmVjdGVkIGJ5IHRoZSByb3V0
aW5lcyBydW5uaW5nIG9uIHRoZSBtYWluIHRocmVhZAorICAgICAgICAoSmF2YVNjcmlwdCBhbmQg
c3VjaCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NTY2NAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZpbmlzaExvYWRpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlOjplbmRUaW1pbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZS5oOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpQaW5nTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkTm90aWZp
ZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hM
b2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oOgorICAgICAgICAqIGxvYWRl
ci9pY29uL0ljb25GZXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25GZXRjaGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeUZpbmlzaCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFRpbWluZzo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRUaW1pbmc6OlJlc291cmNlTG9hZFRpbWluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpZEZpbmlz
aExvYWRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlTWFu
YWdlcjo6ZG93bmxvYWRUaW1lckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRGF0
YVVybCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMu
bW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlv
bkRpZEZpbmlzaExvYWRpbmc6XSk6CisgICAgICAgIChXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJD
bGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQv
UU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBs
eUhhbmRsZXI6OmZpbmlzaCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRl
cjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25v
dXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyOjpkaWRGYWlsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dp
bi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6Om9uUmVxdWVzdENvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpmaWxlTG9hZFRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpjYW5jZWwpOgorCiAyMDEwLTA5LTEzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA4Njk1NzU4Li5lNzZjMTVjIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtOTU5LDcgKzk1
OSw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1CiAgICAgICAgIC8vIFJlZGlyZWN0IG1heSBo
YXZlIGVtcHR5IFVSTCBhbmQgd2UnZCBsaWtlIHRvIG5vdCBjcmFzaCB3aXRoIGludmFsaWQgSGFz
aE1hcCBlbnRyeS4KICAgICAgICAgLy8gU2VlIGh0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVx
dWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QuaHRtbAogICAgICAgICBpZiAoIXJlcXVlc3Qu
dXJsKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICByZXNvdXJjZS0+ZW5kVGltaW5nKCk7Cisg
ICAgICAgICAgICByZXNvdXJjZS0+ZW5kVGltaW5nKGN1cnJlbnRUaW1lKCkpOwogICAgICAgICAg
ICAgcmVzb3VyY2UtPnVwZGF0ZVJlc3BvbnNlKHJlZGlyZWN0UmVzcG9uc2UpOwogCiAgICAgICAg
ICAgICAvLyBXZSBhbHdheXMgc3RvcmUgbGFzdCByZWRpcmVjdCBieSB0aGUgb3JpZ2luYWwgaWQg
a2V5LiBSZXN0IG9mIHRoZSByZWRpcmVjdHMgYXJlIHN0b3JlZCB3aXRoaW4gdGhlIGxhc3Qgb25l
LgpAQCAtMTAxNiw3ICsxMDE2LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRSZWNl
aXZlQ29udGVudExlbmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludAogICAgICAgICBy
ZXNvdXJjZS0+dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkpOwogfQogCi12b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyKQordm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRGaW5pc2hMb2FkaW5nKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAgICAgaWYgKCFlbmFi
bGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwMjgsNyArMTAyOCw3IEBAIHZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIp
CiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcmVzb3VyY2UtPmVu
ZFRpbWluZygpOworICAgIHJlc291cmNlLT5lbmRUaW1pbmcoZmluaXNoVGltZSk7CiAKICAgICAv
LyBObyBuZWVkIHRvIG11dGUgdGhpcyBldmVudCBmb3IgbWFpbiByZXNvdXJjZSBzaW5jZSBpdCBo
YXBwZW5zIGFmdGVyIGRpZCBjb21taXQgbG9hZC4KICAgICBpZiAobV9mcm9udGVuZCkKQEAgLTEw
NTMsNyArMTA1Myw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmco
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjCiAgICAgICAgIHJldHVybjsK
IAogICAgIHJlc291cmNlLT5tYXJrRmFpbGVkKCk7Ci0gICAgcmVzb3VyY2UtPmVuZFRpbWluZygp
OworICAgIHJlc291cmNlLT5lbmRUaW1pbmcoY3VycmVudFRpbWUoKSk7CiAKICAgICAvLyBObyBu
ZWVkIHRvIG11dGUgdGhpcyBldmVudCBmb3IgbWFpbiByZXNvdXJjZSBzaW5jZSBpdCBoYXBwZW5z
IGFmdGVyIGRpZCBjb21taXQgbG9hZC4KICAgICBpZiAobV9mcm9udGVuZCkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCA0MDA5OWM2Li5mYzFkZjVhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0xNjAsNyArMTYwLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25z
ZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlQ29udGVudExl
bmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAg
dm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CisgICAgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlz
aFRpbWUpOwogICAgIHZvaWQgZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgdm9pZCByZXNvdXJjZVJldHJpZXZlZEJ5WE1M
SHR0cFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTY3JpcHRTdHJpbmcm
IHNvdXJjZVN0cmluZywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwg
dW5zaWduZWQgc2VuZExpbmVOdW1iZXIpOwogICAgIHZvaWQgc2NyaXB0SW1wb3J0ZWQodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZyk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKaW5kZXggYmU3NzgyNy4uNDdjZjE3ZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcApAQCAtMzcyLDkgKzM3Miw5IEBA
IHZvaWQgSW5zcGVjdG9yUmVzb3VyY2U6OnN0YXJ0VGltaW5nKCkKICAgICBtX2NoYW5nZXMuc2V0
KFRpbWluZ0NoYW5nZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUmVzb3VyY2U6OmVuZFRpbWluZygp
Cit2b2lkIEluc3BlY3RvclJlc291cmNlOjplbmRUaW1pbmcoZG91YmxlIGFjdHVhbEVuZFRpbWUp
CiB7Ci0gICAgbV9lbmRUaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICBtX2VuZFRpbWUgPSBhY3R1
YWxFbmRUaW1lOwogICAgIG1fZmluaXNoZWQgPSB0cnVlOwogICAgIG1fY2hhbmdlcy5zZXQoVGlt
aW5nQ2hhbmdlKTsKICAgICBtX2NoYW5nZXMuc2V0KENvbXBsZXRpb25DaGFuZ2UpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuaCBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlLmgKaW5kZXggNDAwNDE0Mi4uYzYwMTlmNSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuaAorKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5oCkBAIC0xMDIsNyArMTAyLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHN0YXJ0VGltaW5nKCk7CiAgICAgICAgIHZvaWQg
bWFya0xvYWRFdmVudFRpbWUoKTsKICAgICAgICAgdm9pZCBtYXJrRE9NQ29udGVudEV2ZW50VGlt
ZSgpOwotICAgICAgICB2b2lkIGVuZFRpbWluZygpOworICAgICAgICB2b2lkIGVuZFRpbWluZyhk
b3VibGUgYWN0dWFsRW5kVGltZSA9IGN1cnJlbnRUaW1lKCkpOwogCiAgICAgICAgIHZvaWQgbWFy
a0ZhaWxlZCgpOwogICAgICAgICB2b2lkIGFkZExlbmd0aChpbnQgbGVuZ3RoUmVjZWl2ZWQpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIv
UGluZ0xvYWRlci5oCmluZGV4IDFkOGEyZDguLmUyNmE5YzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL1BpbmdMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKQEAg
LTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgZGVsZXRlIHRoaXM7IH0K
ICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGlu
dCkgeyBkZWxldGUgdGhpczsgfQotICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhh
bmRsZSopIHsgZGVsZXRlIHRoaXM7IH0KKyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3Vy
Y2VIYW5kbGUqLCBkb3VibGUpIHsgZGVsZXRlIHRoaXM7IH0KICAgICB2b2lkIGRpZEZhaWwoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgeyBkZWxldGUgdGhpczsgfQogCiAg
ICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBtX2hhbmRsZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZE5vdGlmaWVyLmNwcAppbmRleCBkMjI1Y2I4Li41Yzg3YmI3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCkBAIC0xNTMsMTEgKzE1Myw2IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRM
b2FkZXIqIGxvYWRlCiB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaERpZEZpbmlz
aExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
KQogewogICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRGaW5pc2hM
b2FkaW5nKGxvYWRlciwgaWRlbnRpZmllcik7Ci0KLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAg
IGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5pbnNwZWN0
b3JDb250cm9sbGVyKCktPmRpZEZpbmlzaExvYWRpbmcoaWRlbnRpZmllcik7Ci0jZW5kaWYKIH0K
IAogdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6c2VuZFJlbWFpbmluZ0RlbGVnYXRlTWVzc2Fn
ZXMoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgaW50IGxlbmd0aCwgY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5j
cHAgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTFkMzMxZS4uNTEx
NjQwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBi
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtNDQwLDggKzQ0MSwxMiBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEs
IGludCBsZW5ndAogI2VuZGlmCiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExv
YWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9h
ZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSBmaW5pc2hUaW1lKQogeworI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAg
IHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZGlkRmluaXNoTG9hZGluZyhtX2lkZW50aWZp
ZXIsIGZpbmlzaFRpbWUpOworI2VuZGlmCiAgICAgZGlkRmluaXNoTG9hZGluZygpOwogfQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oIGIvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRleCA5NTEzZmRiLi5iODMyNGFlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmgKQEAgLTk5LDcgKzk5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkgeyBkaWRSZWNlaXZlQ2FjaGVkTWV0
YWRhdGEoZGF0YSwgbGVuZ3RoKTsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9h
ZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9h
ZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICAgICAgdmlydHVh
bCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCB3YXNCbG9ja2VkKFJlc291cmNlSGFuZGxlKik7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBjYW5ub3RTaG93VVJMKFJlc291cmNlSGFuZGxlKik7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCA5Mjcy
M2M0Li5kODlmODE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTYwMiwxMSArNjAyLDExIEBAIHZvaWQgQXBwbGljYXRpb25D
YWNoZUdyb3VwOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBj
aGFyKiBkCiAgICAgbV9sb2FkZWRTaXplICs9IGxlbmd0aDsKIH0KIAotdm9pZCBBcHBsaWNhdGlv
bkNhY2hlR3JvdXA6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKK3Zv
aWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
KiBoYW5kbGUsIGRvdWJsZSBmaW5pc2hUaW1lKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmluc3Bl
Y3RvckNvbnRyb2xsZXIoKS0+ZGlkRmluaXNoTG9hZGluZyhtX2N1cnJlbnRSZXNvdXJjZUlkZW50
aWZpZXIpOworICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRpZEZpbmlzaExv
YWRpbmcobV9jdXJyZW50UmVzb3VyY2VJZGVudGlmaWVyLCBmaW5pc2hUaW1lKTsKICNlbmRpZgog
CiAgICAgaWYgKGhhbmRsZSA9PSBtX21hbmlmZXN0SGFuZGxlKSB7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBiL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oCmluZGV4IGI1Y2RmN2IuLjk5YWI3
MWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91
cC5oCkBAIC0xMTMsNyArMTEzLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciosIGludCBsZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSBmaW5pc2hUaW1lKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNl
RXJyb3ImKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1hbmlmZXN0UmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0
Y2hlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVyLmNwcAppbmRleCBiMzMx
MjJhLi5mNmI4MGZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVy
LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVyLmNwcApAQCAtMjAyLDcg
KzIwMiw3IEBAIHZvaWQgSWNvbkZldGNoZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxl
KiBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsCiAgICAgbV9lbnRyaWVzW21fY3VycmVu
dEVudHJ5XS5idWZmZXIoKS0+YXBwZW5kKGRhdGEsIGxlbmd0aCk7CiB9CiAKLXZvaWQgSWNvbkZl
dGNoZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKK3ZvaWQgSWNv
bkZldGNoZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgZG91Ymxl
KQogewogICAgIEFTU0VSVF9VTlVTRUQoaGFuZGxlLCBtX2hhbmRsZSA9PSBoYW5kbGUpOwogICAg
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5oIGIvV2ViQ29y
ZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5oCmluZGV4IDUzMjc2OTMuLjUzNjk1ZDMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuaAorKysgYi9XZWJDb3JlL2xv
YWRlci9pY29uL0ljb25GZXRjaGVyLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShS
ZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZp
bmlzaFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgCiAgICAgRnJhbWUqIG1fZnJhbWU7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VH
U3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0
V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCAwNjFmYTg1Li40ZTU3MTkzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgU3RyZWFtaW5n
Q2xpZW50IDogcHVibGljIE5vbmNvcHlhYmxlLCBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQg
ewogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQpOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVz
b3VyY2VFcnJvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhh
bmRsZSopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRs
ZSopOwpAQCAtNzY2LDcgKzc2Niw3IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZl
RGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpCiAgICAgICAg
IEdTVF9FTEVNRU5UX0VSUk9SKG1fc3JjLCBDT1JFLCBGQUlMRUQsICgwKSwgKDApKTsKIH0KIAot
dm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQor
dm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBk
b3VibGUpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IG1fc3JjLT5wcml2Owog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxl
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCmlu
ZGV4IDg3NjdiNTUuLmQ4MWViNWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9C
bG9iUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IC8qbGVuZ3RoUmVjZWl2ZWQqLyk7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlz
aFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZUVycm9yJik7CiAKIHByaXZhdGU6CkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBC
bG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBjaGFyKiwKIHsKIH0KIAotdm9pZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xv
YWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2b2lkIEJsb2JSZXNvdXJj
ZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91
YmxlKQogewogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVDbGllbnQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUNsaWVudC5oCmluZGV4IDk3YzBmNTQuLmY0NjdhYWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZu
ZGVmIFJlc291cmNlSGFuZGxlQ2xpZW50X2gKICNkZWZpbmUgUmVzb3VyY2VIYW5kbGVDbGllbnRf
aAogCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKQEAgLTcyLDcgKzczLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50
LCBpbnQgLypsZW5ndGhSZWNlaXZlZCovKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVDYWNoZWRNZXRhZGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQpIHsg
fQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSop
IHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRs
ZSosIGRvdWJsZSBmaW5pc2hUaW1lID0gY3VycmVudFRpbWUoKSkgeyB9CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIHsg
fQogICAgICAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopIHsgfQog
ICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopIHsgfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZO
ZXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQu
Y3BwCmluZGV4IDc2MzU1MWYuLjI4ZjFhYTAgMTAwNzU1Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCAvKmxlbmd0aFJlY2VpdmVkKi8pOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKik7CisgICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5p
c2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgYm9vbCBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHM7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZUN1cmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVD
dXJsLmNwcAppbmRleCA4YTMyMmI0Li4wNTJhYzU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTQ3LDcgKzQ3LDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgbGVuZ3Ro
UmVjZWl2ZWQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFu
ZGxlKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUq
LCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgUmVzb3VyY2VSZXNwb25z
ZSByZXNvdXJjZVJlc3BvbnNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZTsgfQpAQCAtNzQs
NyArNzQsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLAogICAgIG1fZGF0YS5hcHBlbmQoZGF0
YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlz
aExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6
OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0g
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmluZGV4
IDZkYjkzNTAuLjU2ZDI3MmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMTE1LDcgKzExNSw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBjaGFyKiwgaW50LCBpbnQgLypsZW5ndGhSZWNlaXZlZCovKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgIHZpcnR1YWwgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNl
RXJyb3ImKTsKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAgIHZp
cnR1YWwgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJik7CkBAIC0xMDU5LDcgKzEwNTksNyBAQCB2
b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKgogICAgIFttX2RhdGEgYXBwZW5kQnl0ZXM6ZGF0YSBsZW5n
dGg6bGVuZ3RoXTsKIH0KIAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmRp
ZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNM
b2FkZXJDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7
CiAgICAgbV9pc0RvbmUgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKaW5kZXggMjg5ODMwMy4uYjU5YmNiOSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5k
bGVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhh
bmRsZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8UU5ldHdvcmtDb29raWU+CiAj
aW5jbHVkZSA8cXdlYmZyYW1lLmg+CiAjaW5jbHVkZSA8cXdlYnBhZ2UuaD4KKwogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2luY2x1ZGUgPFFEZWJ1Zz4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcAppbmRleCA4YTI0ZDBmLi5h
NWFjNGMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VI
YW5kbGVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFu
ZGxlUXQuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciosIGludCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3Im
KTsKIAogICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVzcG9uc2U7IH0KQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBXZWJDb3JlU3luY2hyb25v
dXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0
YSwKICAgICBtX2RhdGEuYXBwZW5kKGRhdGEsIGxlbmd0aCk7CiB9CiAKLXZvaWQgV2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKikKK3ZvaWQg
V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
KiwgZG91YmxlKQogewogICAgIG1fZXZlbnRMb29wLmV4aXQoKTsKIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDEy
NDZjMjIuLjMxMmZjYWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNv
dXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlz
aFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZUVycm9yJik7CiAKICAgICB2b2lkIHJ1bigpOwpAQCAtMTAyLDcgKzEwMiw3IEBA
IHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsCiAgICAgbV9kYXRhLmFwcGVuZChkYXRhLCBsZW5ndGgp
OwogfQogCi12b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhS
ZXNvdXJjZUhhbmRsZSopCit2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNo
TG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkKIHsKICAgICBnX21haW5fbG9vcF9xdWl0
KG1fbWFpbkxvb3ApOwogICAgIG1fZmluaXNoZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAppbmRleCA2MDBmOGNhLi5l
ZjNlYzlmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxl
V2luLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlSW5zdGFuY2VIYW5k
bGUuaCIKKwogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3aW5kb3dz
Lmg+CiAjaW5jbHVkZSA8d2luaW5ldC5oPgpAQCAtMTQ0LDcgKzE0NSw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmlu
aXNoVGltZSovKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IFJlc291cmNlRXJyb3ImKTsKIAogcHJpdmF0ZToKQEAgLTE3MCw3ICsxNzEsNyBAQCB2b2lk
IFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBjaGFyKiBkYXRhLAogICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKIH0K
IAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3Vy
Y2VIYW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRp
bmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDUzYzE2
YzguLjMxNmZiMTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEwLTA5LTE0ICBQ
YXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByb3ZpZGUgbmV0
d29yay1iYXNlZCBsb2FkIHRpbWluZy4KKyAgICAgICAgQmVmb3JlIHRoaXMgY2hhbmdlLCBpbnNw
ZWN0b3IgdXNlZCB0aW1lcnMgdGFrZW4gZnJvbQorICAgICAgICB3aXRoaW4gV2ViQ29yZSBub3Rp
ZmljYXRpb25zICh0aGF0IGFyZSBieSBkZWZpbml0aW9uCisgICAgICAgIHN5bmNocm9ub3VzIGFu
ZCBzZXJpYWxpemVkKS4gQXMgYSByZXN1bHQsIHRpbWluZyB3YXMKKyAgICAgICAgYWZmZWN0ZWQg
YnkgdGhlIHJvdXRpbmVzIHJ1bm5pbmcgb24gdGhlIG1haW4gdGhyZWFkCisgICAgICAgIChKYXZh
U2NyaXB0IGFuZCBzdWNoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ1NjY0CisKKyAgICAgICAgKiBwdWJsaWMvV2ViVVJMTG9hZFRpbWluZy5oOgor
ICAgICAgICAqIHB1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVVJMTG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBzcmMvUmVz
b3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5h
bDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZEZpbmlzaExv
YWRpbmcpOgorICAgICAgICAqIHNyYy9XZWJVUkxMb2FkVGltaW5nLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVVJMTG9hZFRpbWluZzo6cmVjZWl2ZUhlYWRlcnNTdGFydCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnNldFJlY2VpdmVIZWFkZXJzU3RhcnQpOgorCiAyMDEw
LTA5LTEzICBKb25hdGhhbiBEaXhvbiAgPGpvdGhAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJVUkxMb2FkZXJDbGllbnQuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMTG9h
ZGVyQ2xpZW50LmgKaW5kZXggYzcxNmU1ZC4uODdkMTAwZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaAorKysgYi9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlVSTExvYWRlckNsaWVudC5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExvYWRlciosIGNv
bnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKSB7IH0KIAogICAgIC8vIENhbGxlZCB3aGVu
IHRoZSBsb2FkIGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkuCi0gICAgdmlydHVhbCB2b2lkIGRpZEZp
bmlzaExvYWRpbmcoV2ViVVJMTG9hZGVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlz
aExvYWRpbmcoV2ViVVJMTG9hZGVyKiwgZG91YmxlIGZpbmlzaFRpbWUpIHsgfQogCiAgICAgLy8g
Q2FsbGVkIHdoZW4gdGhlIGxvYWQgY29tcGxldGVzIHdpdGggYW4gZXJyb3IuCiAgICAgdmlydHVh
bCB2b2lkIGRpZEZhaWwoV2ViVVJMTG9hZGVyKiwgY29uc3QgV2ViVVJMRXJyb3ImKSB7IH0KZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggMjdiZmU3Zi4uODNlMDAxNyAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViVVJMTG9hZGVy
KiwgY29uc3QgV2ViVVJMUmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURh
dGEoV2ViVVJMTG9hZGVyKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoV2ViVVJMTG9hZGVyKiwgY29u
c3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKFdlYlVSTExvYWRlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKFdlYlVSTExvYWRlciosIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmFpbChXZWJVUkxMb2FkZXIqLCBjb25zdCBXZWJVUkxFcnJvciYpOwogCiAgICAgZW51bSBD
b25uZWN0aW9uU3RhdGUgewpAQCAtMTgyLDEzICsxODIsMTMgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZUludGVybmFsOjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoV2ViVVJMTG9hZGVyKiwgY29uc3Qg
Y2hhcioKICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKG1fb3duZXIsIGRh
dGEsIGRhdGFMZW5ndGgpOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZEZp
bmlzaExvYWRpbmcoV2ViVVJMTG9hZGVyKikKK3ZvaWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6
ZGlkRmluaXNoTG9hZGluZyhXZWJVUkxMb2FkZXIqLCBkb3VibGUgZmluaXNoVGltZSkKIHsKICAg
ICBBU1NFUlQobV9jbGllbnQpOwogICAgIGlmIChtX3N0YXRlICE9IENvbm5lY3Rpb25TdGF0ZVJl
Y2VpdmVkUmVzcG9uc2UgJiYgbV9zdGF0ZSAhPSBDb25uZWN0aW9uU3RhdGVSZWNlaXZpbmdEYXRh
KQogICAgICAgICBDUkFTSCgpOwogICAgIG1fc3RhdGUgPSBDb25uZWN0aW9uU3RhdGVGaW5pc2hl
ZExvYWRpbmc7Ci0gICAgbV9jbGllbnQtPmRpZEZpbmlzaExvYWRpbmcobV9vd25lcik7CisgICAg
bV9jbGllbnQtPmRpZEZpbmlzaExvYWRpbmcobV9vd25lciwgZmluaXNoVGltZSk7CiB9CiAKIHZv
aWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkRmFpbChXZWJVUkxMb2FkZXIqLCBjb25zdCBX
ZWJVUkxFcnJvciYgZXJyb3IpCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGE3N2IyZDQuLjczNTZmMWEgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMTAtMDktMTQgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogUHJvdmlkZSBuZXR3b3JrLWJhc2VkIGxvYWQgdGltaW5nLgorICAgICAgICBCZWZv
cmUgdGhpcyBjaGFuZ2UsIGluc3BlY3RvciB1c2VkIHRpbWVycyB0YWtlbiBmcm9tCisgICAgICAg
IHdpdGhpbiBXZWJDb3JlIG5vdGlmaWNhdGlvbnMgKHRoYXQgYXJlIGJ5IGRlZmluaXRpb24KKyAg
ICAgICAgc3luY2hyb25vdXMgYW5kIHNlcmlhbGl6ZWQpLiBBcyBhIHJlc3VsdCwgdGltaW5nIHdh
cworICAgICAgICBhZmZlY3RlZCBieSB0aGUgcm91dGluZXMgcnVubmluZyBvbiB0aGUgbWFpbiB0
aHJlYWQKKyAgICAgICAgKEphdmFTY3JpcHQgYW5kIHN1Y2gpLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU2NjQKKworICAgICAgICAqIHdlYmtpdC93
ZWJraXRkb3dubG9hZC5jcHA6CisgICAgICAgIChEb3dubG9hZENsaWVudDo6ZGlkRmluaXNoTG9h
ZGluZyk6CisKIDIwMTAtMDktMTMgIE1hcmlvIFNhbmNoZXogUHJhZGEgIDxtc2FuY2hlekBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAtLWdp
dCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcCBiL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdGRvd25sb2FkLmNwcAppbmRleCAyMGNhYzJiLi4xZTQ1MjUwIDEwMDY0NAotLS0g
YS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKKysrIGIvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCkBAIC02MCw3ICs2MCw3IEBAIGNsYXNzIERvd25sb2Fk
Q2xpZW50IDogcHVibGljIE5vbmNvcHlhYmxlLCBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQg
ewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCk7Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKik7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91Ymxl
KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBS
ZXNvdXJjZUVycm9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3YXNCbG9ja2VkKFJlc291cmNl
SGFuZGxlKik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYW5ub3RTaG93VVJMKFJlc291cmNlSGFu
ZGxlKik7CkBAIC05MzAsNyArOTMwLDcgQEAgdm9pZCBEb3dubG9hZENsaWVudDo6ZGlkUmVjZWl2
ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3QKICAgICB3
ZWJraXRfZG93bmxvYWRfcmVjZWl2ZWRfZGF0YShtX2Rvd25sb2FkLCBkYXRhLCBsZW5ndGgpOwog
fQogCi12b2lkIERvd25sb2FkQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
KikKK3ZvaWQgRG93bmxvYWRDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUq
LCBkb3VibGUpCiB7CiAgICAgd2Via2l0X2Rvd25sb2FkX2ZpbmlzaGVkX2xvYWRpbmcobV9kb3du
bG9hZCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67563</attachid>
            <date>2010-09-14 09:14:28 -0700</date>
            <delta_ts>2010-09-14 10:08:07 -0700</delta_ts>
            <desc>[PATCH] Same with the chromium agent call fixed.</desc>
            <filename>finish_time</filename>
            <type>text/plain</type>
            <size>29312</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWRhY2E4Mi4uY2MyZjA5ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxMC0wOS0xNCAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92aWRlIG5ldHdvcmstYmFzZWQg
bG9hZCB0aW1pbmcuCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgaW5zcGVjdG9yIHVzZWQg
dGltZXJzIHRha2VuIGZyb20KKyAgICAgICAgd2l0aGluIFdlYkNvcmUgbm90aWZpY2F0aW9ucyAo
dGhhdCBhcmUgYnkgZGVmaW5pdGlvbgorICAgICAgICBzeW5jaHJvbm91cyBhbmQgc2VyaWFsaXpl
ZCkuIEFzIGEgcmVzdWx0LCB0aW1pbmcgd2FzCisgICAgICAgIGFmZmVjdGVkIGJ5IHRoZSByb3V0
aW5lcyBydW5uaW5nIG9uIHRoZSBtYWluIHRocmVhZAorICAgICAgICAoSmF2YVNjcmlwdCBhbmQg
c3VjaCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NTY2NAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZpbmlzaExvYWRpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlOjplbmRUaW1pbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZS5oOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpQaW5nTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkTm90aWZp
ZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hM
b2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oOgorICAgICAgICAqIGxvYWRl
ci9pY29uL0ljb25GZXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25GZXRjaGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeUZpbmlzaCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFRpbWluZzo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRUaW1pbmc6OlJlc291cmNlTG9hZFRpbWluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpZEZpbmlz
aExvYWRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlTWFu
YWdlcjo6ZG93bmxvYWRUaW1lckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRGF0
YVVybCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMu
bW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlv
bkRpZEZpbmlzaExvYWRpbmc6XSk6CisgICAgICAgIChXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJD
bGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQv
UU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBs
eUhhbmRsZXI6OmZpbmlzaCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRl
cjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25v
dXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyOjpkaWRGYWlsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dp
bi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6Om9uUmVxdWVzdENvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpmaWxlTG9hZFRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpjYW5jZWwpOgorCiAyMDEwLTA5LTEzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA4Njk1NzU4Li5lNzZjMTVjIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtOTU5LDcgKzk1
OSw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1CiAgICAgICAgIC8vIFJlZGlyZWN0IG1heSBo
YXZlIGVtcHR5IFVSTCBhbmQgd2UnZCBsaWtlIHRvIG5vdCBjcmFzaCB3aXRoIGludmFsaWQgSGFz
aE1hcCBlbnRyeS4KICAgICAgICAgLy8gU2VlIGh0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVx
dWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QuaHRtbAogICAgICAgICBpZiAoIXJlcXVlc3Qu
dXJsKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICByZXNvdXJjZS0+ZW5kVGltaW5nKCk7Cisg
ICAgICAgICAgICByZXNvdXJjZS0+ZW5kVGltaW5nKGN1cnJlbnRUaW1lKCkpOwogICAgICAgICAg
ICAgcmVzb3VyY2UtPnVwZGF0ZVJlc3BvbnNlKHJlZGlyZWN0UmVzcG9uc2UpOwogCiAgICAgICAg
ICAgICAvLyBXZSBhbHdheXMgc3RvcmUgbGFzdCByZWRpcmVjdCBieSB0aGUgb3JpZ2luYWwgaWQg
a2V5LiBSZXN0IG9mIHRoZSByZWRpcmVjdHMgYXJlIHN0b3JlZCB3aXRoaW4gdGhlIGxhc3Qgb25l
LgpAQCAtMTAxNiw3ICsxMDE2LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRSZWNl
aXZlQ29udGVudExlbmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludAogICAgICAgICBy
ZXNvdXJjZS0+dXBkYXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkpOwogfQogCi12b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyKQordm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRGaW5pc2hMb2FkaW5nKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAgICAgaWYgKCFlbmFi
bGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTEwMjgsNyArMTAyOCw3IEBAIHZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIp
CiAgICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcmVzb3VyY2UtPmVu
ZFRpbWluZygpOworICAgIHJlc291cmNlLT5lbmRUaW1pbmcoZmluaXNoVGltZSk7CiAKICAgICAv
LyBObyBuZWVkIHRvIG11dGUgdGhpcyBldmVudCBmb3IgbWFpbiByZXNvdXJjZSBzaW5jZSBpdCBo
YXBwZW5zIGFmdGVyIGRpZCBjb21taXQgbG9hZC4KICAgICBpZiAobV9mcm9udGVuZCkKQEAgLTEw
NTMsNyArMTA1Myw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmco
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjCiAgICAgICAgIHJldHVybjsK
IAogICAgIHJlc291cmNlLT5tYXJrRmFpbGVkKCk7Ci0gICAgcmVzb3VyY2UtPmVuZFRpbWluZygp
OworICAgIHJlc291cmNlLT5lbmRUaW1pbmcoY3VycmVudFRpbWUoKSk7CiAKICAgICAvLyBObyBu
ZWVkIHRvIG11dGUgdGhpcyBldmVudCBmb3IgbWFpbiByZXNvdXJjZSBzaW5jZSBpdCBoYXBwZW5z
IGFmdGVyIGRpZCBjb21taXQgbG9hZC4KICAgICBpZiAobV9mcm9udGVuZCkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCA0MDA5OWM2Li5mYzFkZjVhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0xNjAsNyArMTYwLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25z
ZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9pZCBkaWRSZWNlaXZlQ29udGVudExl
bmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAg
dm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CisgICAgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlz
aFRpbWUpOwogICAgIHZvaWQgZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgdm9pZCByZXNvdXJjZVJldHJpZXZlZEJ5WE1M
SHR0cFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTY3JpcHRTdHJpbmcm
IHNvdXJjZVN0cmluZywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwg
dW5zaWduZWQgc2VuZExpbmVOdW1iZXIpOwogICAgIHZvaWQgc2NyaXB0SW1wb3J0ZWQodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0cmluZyk7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKaW5kZXggYmU3NzgyNy4uNDdjZjE3ZiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCisrKyBiL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcApAQCAtMzcyLDkgKzM3Miw5IEBA
IHZvaWQgSW5zcGVjdG9yUmVzb3VyY2U6OnN0YXJ0VGltaW5nKCkKICAgICBtX2NoYW5nZXMuc2V0
KFRpbWluZ0NoYW5nZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUmVzb3VyY2U6OmVuZFRpbWluZygp
Cit2b2lkIEluc3BlY3RvclJlc291cmNlOjplbmRUaW1pbmcoZG91YmxlIGFjdHVhbEVuZFRpbWUp
CiB7Ci0gICAgbV9lbmRUaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICBtX2VuZFRpbWUgPSBhY3R1
YWxFbmRUaW1lOwogICAgIG1fZmluaXNoZWQgPSB0cnVlOwogICAgIG1fY2hhbmdlcy5zZXQoVGlt
aW5nQ2hhbmdlKTsKICAgICBtX2NoYW5nZXMuc2V0KENvbXBsZXRpb25DaGFuZ2UpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuaCBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlLmgKaW5kZXggNDAwNDE0Mi4uYzYwMTlmNSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuaAorKysgYi9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5oCkBAIC0xMDIsNyArMTAyLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHN0YXJ0VGltaW5nKCk7CiAgICAgICAgIHZvaWQg
bWFya0xvYWRFdmVudFRpbWUoKTsKICAgICAgICAgdm9pZCBtYXJrRE9NQ29udGVudEV2ZW50VGlt
ZSgpOwotICAgICAgICB2b2lkIGVuZFRpbWluZygpOworICAgICAgICB2b2lkIGVuZFRpbWluZyhk
b3VibGUgYWN0dWFsRW5kVGltZSA9IGN1cnJlbnRUaW1lKCkpOwogCiAgICAgICAgIHZvaWQgbWFy
a0ZhaWxlZCgpOwogICAgICAgICB2b2lkIGFkZExlbmd0aChpbnQgbGVuZ3RoUmVjZWl2ZWQpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIv
UGluZ0xvYWRlci5oCmluZGV4IDFkOGEyZDguLmUyNmE5YzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL1BpbmdMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKQEAg
LTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgZGVsZXRlIHRoaXM7IH0K
ICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGlu
dCkgeyBkZWxldGUgdGhpczsgfQotICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhh
bmRsZSopIHsgZGVsZXRlIHRoaXM7IH0KKyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3Vy
Y2VIYW5kbGUqLCBkb3VibGUpIHsgZGVsZXRlIHRoaXM7IH0KICAgICB2b2lkIGRpZEZhaWwoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJikgeyBkZWxldGUgdGhpczsgfQogCiAg
ICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBtX2hhbmRsZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZE5vdGlmaWVyLmNwcAppbmRleCBkMjI1Y2I4Li41Yzg3YmI3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCkBAIC0xNTMsMTEgKzE1Myw2IEBAIHZvaWQgUmVzb3Vy
Y2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRM
b2FkZXIqIGxvYWRlCiB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaERpZEZpbmlz
aExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
KQogewogICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRGaW5pc2hM
b2FkaW5nKGxvYWRlciwgaWRlbnRpZmllcik7Ci0KLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAg
IGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5pbnNwZWN0
b3JDb250cm9sbGVyKCktPmRpZEZpbmlzaExvYWRpbmcoaWRlbnRpZmllcik7Ci0jZW5kaWYKIH0K
IAogdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6c2VuZFJlbWFpbmluZ0RlbGVnYXRlTWVzc2Fn
ZXMoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgaW50IGxlbmd0aCwgY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5j
cHAgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTFkMzMxZS4uNTEx
NjQwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBi
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIkluc3BlY3RvckNvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlByb2dyZXNzVHJhY2tlci5oIgpAQCAtNDQwLDggKzQ0MSwxMiBAQCB2b2lkIFJlc291cmNl
TG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEs
IGludCBsZW5ndAogI2VuZGlmCiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExv
YWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9h
ZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSBmaW5pc2hUaW1lKQogeworI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCisgICAgICAg
IHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZGlkRmluaXNoTG9hZGluZyhtX2lkZW50aWZp
ZXIsIGZpbmlzaFRpbWUpOworI2VuZGlmCiAgICAgZGlkRmluaXNoTG9hZGluZygpOwogfQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oIGIvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRleCA5NTEzZmRiLi5iODMyNGFlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmgKQEAgLTk5LDcgKzk5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkgeyBkaWRSZWNlaXZlQ2FjaGVkTWV0
YWRhdGEoZGF0YSwgbGVuZ3RoKTsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9h
ZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9h
ZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICAgICAgdmlydHVh
bCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCB3YXNCbG9ja2VkKFJlc291cmNlSGFuZGxlKik7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBjYW5ub3RTaG93VVJMKFJlc291cmNlSGFuZGxlKik7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCA5Mjcy
M2M0Li5kODlmODE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTYwMiwxMSArNjAyLDExIEBAIHZvaWQgQXBwbGljYXRpb25D
YWNoZUdyb3VwOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBj
aGFyKiBkCiAgICAgbV9sb2FkZWRTaXplICs9IGxlbmd0aDsKIH0KIAotdm9pZCBBcHBsaWNhdGlv
bkNhY2hlR3JvdXA6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKK3Zv
aWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
KiBoYW5kbGUsIGRvdWJsZSBmaW5pc2hUaW1lKQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmluc3Bl
Y3RvckNvbnRyb2xsZXIoKS0+ZGlkRmluaXNoTG9hZGluZyhtX2N1cnJlbnRSZXNvdXJjZUlkZW50
aWZpZXIpOworICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRpZEZpbmlzaExv
YWRpbmcobV9jdXJyZW50UmVzb3VyY2VJZGVudGlmaWVyLCBmaW5pc2hUaW1lKTsKICNlbmRpZgog
CiAgICAgaWYgKGhhbmRsZSA9PSBtX21hbmlmZXN0SGFuZGxlKSB7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBiL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oCmluZGV4IGI1Y2RmN2IuLjk5YWI3
MWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91
cC5oCkBAIC0xMTMsNyArMTEzLDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciosIGludCBsZW5ndGgsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSBmaW5pc2hUaW1lKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNl
RXJyb3ImKTsKIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1hbmlmZXN0UmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0
Y2hlci5jcHAgYi9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVyLmNwcAppbmRleCBiMzMx
MjJhLi5mNmI4MGZhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVy
LmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVyLmNwcApAQCAtMjAyLDcg
KzIwMiw3IEBAIHZvaWQgSWNvbkZldGNoZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxl
KiBoYW5kbGUsIGNvbnN0IGNoYXIqIGRhdGEsIGludCBsCiAgICAgbV9lbnRyaWVzW21fY3VycmVu
dEVudHJ5XS5idWZmZXIoKS0+YXBwZW5kKGRhdGEsIGxlbmd0aCk7CiB9CiAKLXZvaWQgSWNvbkZl
dGNoZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSkKK3ZvaWQgSWNv
bkZldGNoZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgZG91Ymxl
KQogewogICAgIEFTU0VSVF9VTlVTRUQoaGFuZGxlLCBtX2hhbmRsZSA9PSBoYW5kbGUpOwogICAg
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5oIGIvV2ViQ29y
ZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5oCmluZGV4IDUzMjc2OTMuLjUzNjk1ZDMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuaAorKysgYi9XZWJDb3JlL2xv
YWRlci9pY29uL0ljb25GZXRjaGVyLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShS
ZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0g
ICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZp
bmlzaFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgCiAgICAgRnJhbWUqIG1fZnJhbWU7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VH
U3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0
V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCAwNjFmYTg1Li40ZTU3MTkzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgU3RyZWFtaW5n
Q2xpZW50IDogcHVibGljIE5vbmNvcHlhYmxlLCBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQg
ewogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQpOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVz
b3VyY2VFcnJvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhh
bmRsZSopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRs
ZSopOwpAQCAtNzY2LDcgKzc2Niw3IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZl
RGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpCiAgICAgICAg
IEdTVF9FTEVNRU5UX0VSUk9SKG1fc3JjLCBDT1JFLCBGQUlMRUQsICgwKSwgKDApKTsKIH0KIAot
dm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQor
dm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBk
b3VibGUpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IG1fc3JjLT5wcml2Owog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxl
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCmlu
ZGV4IDg3NjdiNTUuLmQ4MWViNWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9C
bG9iUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IC8qbGVuZ3RoUmVjZWl2ZWQqLyk7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlz
aFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZUVycm9yJik7CiAKIHByaXZhdGU6CkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBC
bG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBjaGFyKiwKIHsKIH0KIAotdm9pZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xv
YWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2b2lkIEJsb2JSZXNvdXJj
ZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91
YmxlKQogewogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVDbGllbnQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUNsaWVudC5oCmluZGV4IDk3YzBmNTQuLmY0NjdhYWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZu
ZGVmIFJlc291cmNlSGFuZGxlQ2xpZW50X2gKICNkZWZpbmUgUmVzb3VyY2VIYW5kbGVDbGllbnRf
aAogCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKQEAgLTcyLDcgKzczLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50
LCBpbnQgLypsZW5ndGhSZWNlaXZlZCovKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVDYWNoZWRNZXRhZGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQpIHsg
fQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSop
IHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRs
ZSosIGRvdWJsZSBmaW5pc2hUaW1lID0gY3VycmVudFRpbWUoKSkgeyB9CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIHsg
fQogICAgICAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopIHsgfQog
ICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopIHsgfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZO
ZXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQu
Y3BwCmluZGV4IDc2MzU1MWYuLjI4ZjFhYTAgMTAwNzU1Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCAvKmxlbmd0aFJlY2VpdmVkKi8pOwotICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKik7CisgICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5p
c2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgYm9vbCBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHM7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZUN1cmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVD
dXJsLmNwcAppbmRleCA4YTMyMmI0Li4wNTJhYzU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTQ3LDcgKzQ3LDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgbGVuZ3Ro
UmVjZWl2ZWQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFu
ZGxlKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUq
LCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgUmVzb3VyY2VSZXNwb25z
ZSByZXNvdXJjZVJlc3BvbnNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZTsgfQpAQCAtNzQs
NyArNzQsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLAogICAgIG1fZGF0YS5hcHBlbmQoZGF0
YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlz
aExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6
OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0g
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmluZGV4
IDZkYjkzNTAuLjU2ZDI3MmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMTE1LDcgKzExNSw3IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJik7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBjaGFyKiwgaW50LCBpbnQgLypsZW5ndGhSZWNlaXZlZCovKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgIHZpcnR1YWwgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNl
RXJyb3ImKTsKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNLKQogICAgIHZp
cnR1YWwgYm9vbCBjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlvblNwYWNlKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUHJvdGVjdGlvblNwYWNlJik7CkBAIC0xMDU5LDcgKzEwNTksNyBAQCB2
b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKgogICAgIFttX2RhdGEgYXBwZW5kQnl0ZXM6ZGF0YSBsZW5n
dGg6bGVuZ3RoXTsKIH0KIAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmRp
ZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNM
b2FkZXJDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7
CiAgICAgbV9pc0RvbmUgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKaW5kZXggMjg5ODMwMy4uYjU5YmNiOSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5k
bGVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhh
bmRsZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8UU5ldHdvcmtDb29raWU+CiAj
aW5jbHVkZSA8cXdlYmZyYW1lLmg+CiAjaW5jbHVkZSA8cXdlYnBhZ2UuaD4KKwogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogI2luY2x1ZGUgPFFEZWJ1Zz4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcAppbmRleCA4YTI0ZDBmLi5h
NWFjNGMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VI
YW5kbGVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFu
ZGxlUXQuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciosIGludCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3Im
KTsKIAogICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZSgpIGNvbnN0IHsgcmV0
dXJuIG1fcmVzcG9uc2U7IH0KQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBXZWJDb3JlU3luY2hyb25v
dXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0
YSwKICAgICBtX2RhdGEuYXBwZW5kKGRhdGEsIGxlbmd0aCk7CiB9CiAKLXZvaWQgV2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKikKK3ZvaWQg
V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
KiwgZG91YmxlKQogewogICAgIG1fZXZlbnRMb29wLmV4aXQoKTsKIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDEy
NDZjMjIuLjMxMmZjYWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNv
dXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlz
aFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZUVycm9yJik7CiAKICAgICB2b2lkIHJ1bigpOwpAQCAtMTAyLDcgKzEwMiw3IEBA
IHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsCiAgICAgbV9kYXRhLmFwcGVuZChkYXRhLCBsZW5ndGgp
OwogfQogCi12b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhS
ZXNvdXJjZUhhbmRsZSopCit2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNo
TG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkKIHsKICAgICBnX21haW5fbG9vcF9xdWl0
KG1fbWFpbkxvb3ApOwogICAgIG1fZmluaXNoZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAppbmRleCA2MDBmOGNhLi5l
ZjNlYzlmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxl
V2luLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlSW5zdGFuY2VIYW5k
bGUuaCIKKwogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3aW5kb3dz
Lmg+CiAjaW5jbHVkZSA8d2luaW5ldC5oPgpAQCAtMTQ0LDcgKzE0NSw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmlu
aXNoVGltZSovKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IFJlc291cmNlRXJyb3ImKTsKIAogcHJpdmF0ZToKQEAgLTE3MCw3ICsxNzEsNyBAQCB2b2lk
IFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBjaGFyKiBkYXRhLAogICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKIH0K
IAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3Vy
Y2VIYW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRp
bmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDUzYzE2
YzguLjMxNmZiMTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEwLTA5LTE0ICBQ
YXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByb3ZpZGUgbmV0
d29yay1iYXNlZCBsb2FkIHRpbWluZy4KKyAgICAgICAgQmVmb3JlIHRoaXMgY2hhbmdlLCBpbnNw
ZWN0b3IgdXNlZCB0aW1lcnMgdGFrZW4gZnJvbQorICAgICAgICB3aXRoaW4gV2ViQ29yZSBub3Rp
ZmljYXRpb25zICh0aGF0IGFyZSBieSBkZWZpbml0aW9uCisgICAgICAgIHN5bmNocm9ub3VzIGFu
ZCBzZXJpYWxpemVkKS4gQXMgYSByZXN1bHQsIHRpbWluZyB3YXMKKyAgICAgICAgYWZmZWN0ZWQg
YnkgdGhlIHJvdXRpbmVzIHJ1bm5pbmcgb24gdGhlIG1haW4gdGhyZWFkCisgICAgICAgIChKYXZh
U2NyaXB0IGFuZCBzdWNoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ1NjY0CisKKyAgICAgICAgKiBwdWJsaWMvV2ViVVJMTG9hZFRpbWluZy5oOgor
ICAgICAgICAqIHB1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVVJMTG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBzcmMvUmVz
b3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5h
bDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZEZpbmlzaExv
YWRpbmcpOgorICAgICAgICAqIHNyYy9XZWJVUkxMb2FkVGltaW5nLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVVJMTG9hZFRpbWluZzo6cmVjZWl2ZUhlYWRlcnNTdGFydCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnNldFJlY2VpdmVIZWFkZXJzU3RhcnQpOgorCiAyMDEw
LTA5LTEzICBKb25hdGhhbiBEaXhvbiAgPGpvdGhAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJVUkxMb2FkZXJDbGllbnQuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMTG9h
ZGVyQ2xpZW50LmgKaW5kZXggYzcxNmU1ZC4uODdkMTAwZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaAorKysgYi9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlVSTExvYWRlckNsaWVudC5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExvYWRlciosIGNv
bnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKSB7IH0KIAogICAgIC8vIENhbGxlZCB3aGVu
IHRoZSBsb2FkIGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkuCi0gICAgdmlydHVhbCB2b2lkIGRpZEZp
bmlzaExvYWRpbmcoV2ViVVJMTG9hZGVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlz
aExvYWRpbmcoV2ViVVJMTG9hZGVyKiwgZG91YmxlIGZpbmlzaFRpbWUpIHsgfQogCiAgICAgLy8g
Q2FsbGVkIHdoZW4gdGhlIGxvYWQgY29tcGxldGVzIHdpdGggYW4gZXJyb3IuCiAgICAgdmlydHVh
bCB2b2lkIGRpZEZhaWwoV2ViVVJMTG9hZGVyKiwgY29uc3QgV2ViVVJMRXJyb3ImKSB7IH0KZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggMjdiZmU3Zi4uODNlMDAxNyAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViVVJMTG9hZGVy
KiwgY29uc3QgV2ViVVJMUmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURh
dGEoV2ViVVJMTG9hZGVyKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoV2ViVVJMTG9hZGVyKiwgY29u
c3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKFdlYlVSTExvYWRlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKFdlYlVSTExvYWRlciosIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmFpbChXZWJVUkxMb2FkZXIqLCBjb25zdCBXZWJVUkxFcnJvciYpOwogCiAgICAgZW51bSBD
b25uZWN0aW9uU3RhdGUgewpAQCAtMTgyLDEzICsxODIsMTMgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZUludGVybmFsOjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoV2ViVVJMTG9hZGVyKiwgY29uc3Qg
Y2hhcioKICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKG1fb3duZXIsIGRh
dGEsIGRhdGFMZW5ndGgpOwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZEZp
bmlzaExvYWRpbmcoV2ViVVJMTG9hZGVyKikKK3ZvaWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6
ZGlkRmluaXNoTG9hZGluZyhXZWJVUkxMb2FkZXIqLCBkb3VibGUgZmluaXNoVGltZSkKIHsKICAg
ICBBU1NFUlQobV9jbGllbnQpOwogICAgIGlmIChtX3N0YXRlICE9IENvbm5lY3Rpb25TdGF0ZVJl
Y2VpdmVkUmVzcG9uc2UgJiYgbV9zdGF0ZSAhPSBDb25uZWN0aW9uU3RhdGVSZWNlaXZpbmdEYXRh
KQogICAgICAgICBDUkFTSCgpOwogICAgIG1fc3RhdGUgPSBDb25uZWN0aW9uU3RhdGVGaW5pc2hl
ZExvYWRpbmc7Ci0gICAgbV9jbGllbnQtPmRpZEZpbmlzaExvYWRpbmcobV9vd25lcik7CisgICAg
bV9jbGllbnQtPmRpZEZpbmlzaExvYWRpbmcobV9vd25lciwgZmluaXNoVGltZSk7CiB9CiAKIHZv
aWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkRmFpbChXZWJVUkxMb2FkZXIqLCBjb25zdCBX
ZWJVUkxFcnJvciYgZXJyb3IpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRl
dlRvb2xzQWdlbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2Vu
dEltcGwuY3BwCmluZGV4IDk3MWMyOTAuLjNjNjk4YTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAi
V2ViVVJMUmVzcG9uc2UuaCIKICNpbmNsdWRlICJXZWJWaWV3Q2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViVmlld0ltcGwuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKQEAgLTMzNiw3ICsz
MzcsNyBAQCB2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5z
aWduZWQgbG9uZyByZXNvdXJjZUlkLCBjb25zdCBXZQogdm9pZCBXZWJEZXZUb29sc0FnZW50SW1w
bDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlc291cmNlSWQpCiB7CiAgICAgaWYg
KEluc3BlY3RvckNvbnRyb2xsZXIqIGljID0gaW5zcGVjdG9yQ29udHJvbGxlcigpKQotICAgICAg
ICBpYy0+ZGlkRmluaXNoTG9hZGluZyhyZXNvdXJjZUlkKTsKKyAgICAgICAgaWMtPmRpZEZpbmlz
aExvYWRpbmcocmVzb3VyY2VJZCwgY3VycmVudFRpbWUoKSk7CiB9CiAKIHZvaWQgV2ViRGV2VG9v
bHNBZ2VudEltcGw6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VJZCwgY29u
c3QgV2ViVVJMRXJyb3ImIGVycm9yKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cg
Yi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBhNzdiMmQ0Li43MzU2ZjFhIDEwMDY0NAotLS0g
YS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDEwLTA5LTE0ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFByb3ZpZGUgbmV0d29yay1iYXNlZCBsb2FkIHRpbWluZy4KKyAgICAgICAg
QmVmb3JlIHRoaXMgY2hhbmdlLCBpbnNwZWN0b3IgdXNlZCB0aW1lcnMgdGFrZW4gZnJvbQorICAg
ICAgICB3aXRoaW4gV2ViQ29yZSBub3RpZmljYXRpb25zICh0aGF0IGFyZSBieSBkZWZpbml0aW9u
CisgICAgICAgIHN5bmNocm9ub3VzIGFuZCBzZXJpYWxpemVkKS4gQXMgYSByZXN1bHQsIHRpbWlu
ZyB3YXMKKyAgICAgICAgYWZmZWN0ZWQgYnkgdGhlIHJvdXRpbmVzIHJ1bm5pbmcgb24gdGhlIG1h
aW4gdGhyZWFkCisgICAgICAgIChKYXZhU2NyaXB0IGFuZCBzdWNoKS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NjY0CisKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0ZG93bmxvYWQuY3BwOgorICAgICAgICAoRG93bmxvYWRDbGllbnQ6OmRpZEZpbmlz
aExvYWRpbmcpOgorCiAyMDEwLTA5LTEzICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpA
aWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYg
LS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAgYi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKaW5kZXggMjBjYWMyYi4uMWU0NTI1MCAxMDA2NDQK
LS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCisrKyBiL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcApAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBEb3du
bG9hZENsaWVudCA6IHB1YmxpYyBOb25jb3B5YWJsZSwgcHVibGljIFJlc291cmNlSGFuZGxlQ2xp
ZW50IHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQpOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOwor
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRv
dWJsZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgUmVzb3VyY2VFcnJvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNv
dXJjZUhhbmRsZSopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJj
ZUhhbmRsZSopOwpAQCAtOTMwLDcgKzkzMCw3IEBAIHZvaWQgRG93bmxvYWRDbGllbnQ6OmRpZFJl
Y2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0CiAg
ICAgd2Via2l0X2Rvd25sb2FkX3JlY2VpdmVkX2RhdGEobV9kb3dubG9hZCwgZGF0YSwgbGVuZ3Ro
KTsKIH0KIAotdm9pZCBEb3dubG9hZENsaWVudDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhh
bmRsZSopCit2b2lkIERvd25sb2FkQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFu
ZGxlKiwgZG91YmxlKQogewogICAgIHdlYmtpdF9kb3dubG9hZF9maW5pc2hlZF9sb2FkaW5nKG1f
ZG93bmxvYWQpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67572</attachid>
            <date>2010-09-14 10:08:07 -0700</date>
            <delta_ts>2010-09-15 01:11:30 -0700</delta_ts>
            <desc>[PATCH] More work for bots, no default values this time.</desc>
            <filename>finish_resource</filename>
            <type>text/plain</type>
            <size>34643</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZWRhY2E4Mi4uY2MyZjA5ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxMC0wOS0xNCAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92aWRlIG5ldHdvcmstYmFzZWQg
bG9hZCB0aW1pbmcuCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgaW5zcGVjdG9yIHVzZWQg
dGltZXJzIHRha2VuIGZyb20KKyAgICAgICAgd2l0aGluIFdlYkNvcmUgbm90aWZpY2F0aW9ucyAo
dGhhdCBhcmUgYnkgZGVmaW5pdGlvbgorICAgICAgICBzeW5jaHJvbm91cyBhbmQgc2VyaWFsaXpl
ZCkuIEFzIGEgcmVzdWx0LCB0aW1pbmcgd2FzCisgICAgICAgIGFmZmVjdGVkIGJ5IHRoZSByb3V0
aW5lcyBydW5uaW5nIG9uIHRoZSBtYWluIHRocmVhZAorICAgICAgICAoSmF2YVNjcmlwdCBhbmQg
c3VjaCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NTY2NAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZpbmlzaExvYWRpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlOjplbmRUaW1pbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZS5oOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpQaW5nTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkTm90aWZp
ZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hM
b2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oOgorICAgICAgICAqIGxvYWRl
ci9pY29uL0ljb25GZXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25GZXRjaGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeUZpbmlzaCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFRpbWluZzo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRUaW1pbmc6OlJlc291cmNlTG9hZFRpbWluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpZEZpbmlz
aExvYWRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlTWFu
YWdlcjo6ZG93bmxvYWRUaW1lckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRGF0
YVVybCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMu
bW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlv
bkRpZEZpbmlzaExvYWRpbmc6XSk6CisgICAgICAgIChXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJD
bGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQv
UU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBs
eUhhbmRsZXI6OmZpbmlzaCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRl
cjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25v
dXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyOjpkaWRGYWlsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dp
bi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6Om9uUmVxdWVzdENvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpmaWxlTG9hZFRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpjYW5jZWwpOgorCiAyMDEwLTA5LTEzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdh
bGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCA4Njk1NzU4Li5hZTI1YmM2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtOTU5LDcgKzk1
OSw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1CiAgICAgICAgIC8vIFJlZGlyZWN0IG1heSBo
YXZlIGVtcHR5IFVSTCBhbmQgd2UnZCBsaWtlIHRvIG5vdCBjcmFzaCB3aXRoIGludmFsaWQgSGFz
aE1hcCBlbnRyeS4KICAgICAgICAgLy8gU2VlIGh0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQtcmVx
dWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QuaHRtbAogICAgICAgICBpZiAoIXJlcXVlc3Qu
dXJsKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICByZXNvdXJjZS0+ZW5kVGltaW5nKCk7Cisg
ICAgICAgICAgICByZXNvdXJjZS0+ZW5kVGltaW5nKDApOwogICAgICAgICAgICAgcmVzb3VyY2Ut
PnVwZGF0ZVJlc3BvbnNlKHJlZGlyZWN0UmVzcG9uc2UpOwogCiAgICAgICAgICAgICAvLyBXZSBh
bHdheXMgc3RvcmUgbGFzdCByZWRpcmVjdCBieSB0aGUgb3JpZ2luYWwgaWQga2V5LiBSZXN0IG9m
IHRoZSByZWRpcmVjdHMgYXJlIHN0b3JlZCB3aXRoaW4gdGhlIGxhc3Qgb25lLgpAQCAtMTAxNiw3
ICsxMDE2LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRSZWNlaXZlQ29udGVudExl
bmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludAogICAgICAgICByZXNvdXJjZS0+dXBk
YXRlU2NyaXB0T2JqZWN0KG1fZnJvbnRlbmQuZ2V0KCkpOwogfQogCi12b2lkIEluc3BlY3RvckNv
bnRyb2xsZXI6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQordm9p
ZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAgICAgaWYgKCFlbmFibGVkKCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTEwMjgsNyArMTAyOCw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCiAgICAgaWYgKCFy
ZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcmVzb3VyY2UtPmVuZFRpbWluZygpOwor
ICAgIHJlc291cmNlLT5lbmRUaW1pbmcoZmluaXNoVGltZSk7CiAKICAgICAvLyBObyBuZWVkIHRv
IG11dGUgdGhpcyBldmVudCBmb3IgbWFpbiByZXNvdXJjZSBzaW5jZSBpdCBoYXBwZW5zIGFmdGVy
IGRpZCBjb21taXQgbG9hZC4KICAgICBpZiAobV9mcm9udGVuZCkKQEAgLTEwNTMsNyArMTA1Myw3
IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjCiAgICAgICAgIHJldHVybjsKIAogICAgIHJlc291
cmNlLT5tYXJrRmFpbGVkKCk7Ci0gICAgcmVzb3VyY2UtPmVuZFRpbWluZygpOworICAgIHJlc291
cmNlLT5lbmRUaW1pbmcoMCk7CiAKICAgICAvLyBObyBuZWVkIHRvIG11dGUgdGhpcyBldmVudCBm
b3IgbWFpbiByZXNvdXJjZSBzaW5jZSBpdCBoYXBwZW5zIGFmdGVyIGRpZCBjb21taXQgbG9hZC4K
ICAgICBpZiAobV9mcm9udGVuZCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIu
aAppbmRleCA0MDA5OWM2Li5mYzFkZjVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5oCkBAIC0xNjAsNyArMTYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbFNlbmRS
ZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZl
UmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7CiAgICAgdm9pZCBkaWRSZWNlaXZlQ29udGVudExlbmd0aCh1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZvaWQgZGlkRmFp
bExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJik7
CiAgICAgdm9pZCByZXNvdXJjZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBjb25zdCBTY3JpcHRTdHJpbmcmIHNvdXJjZVN0cmluZywgY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIp
OwogICAgIHZvaWQgc2NyaXB0SW1wb3J0ZWQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVN0cmluZyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JSZXNvdXJjZS5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJj
ZS5jcHAKaW5kZXggYmU3NzgyNy4uZTY0YTAxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlLmNwcApAQCAtMzcyLDkgKzM3Miw5IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2U6
OnN0YXJ0VGltaW5nKCkKICAgICBtX2NoYW5nZXMuc2V0KFRpbWluZ0NoYW5nZSk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yUmVzb3VyY2U6OmVuZFRpbWluZygpCit2b2lkIEluc3BlY3RvclJlc291cmNl
OjplbmRUaW1pbmcoZG91YmxlIGFjdHVhbEVuZFRpbWUpCiB7Ci0gICAgbV9lbmRUaW1lID0gY3Vy
cmVudFRpbWUoKTsKKyAgICBtX2VuZFRpbWUgPSBhY3R1YWxFbmRUaW1lID8gYWN0dWFsRW5kVGlt
ZSA6IGN1cnJlbnRUaW1lKCk7CiAgICAgbV9maW5pc2hlZCA9IHRydWU7CiAgICAgbV9jaGFuZ2Vz
LnNldChUaW1pbmdDaGFuZ2UpOwogICAgIG1fY2hhbmdlcy5zZXQoQ29tcGxldGlvbkNoYW5nZSk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5oIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuaAppbmRleCA0MDA0MTQyLi5lZWQzMTMx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5oCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmgKQEAgLTEwMiw3ICsxMDIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc3RhcnRUaW1pbmcoKTsKICAgICAg
ICAgdm9pZCBtYXJrTG9hZEV2ZW50VGltZSgpOwogICAgICAgICB2b2lkIG1hcmtET01Db250ZW50
RXZlbnRUaW1lKCk7Ci0gICAgICAgIHZvaWQgZW5kVGltaW5nKCk7CisgICAgICAgIHZvaWQgZW5k
VGltaW5nKGRvdWJsZSBhY3R1YWxFbmRUaW1lKTsKIAogICAgICAgICB2b2lkIG1hcmtGYWlsZWQo
KTsKICAgICAgICAgdm9pZCBhZGRMZW5ndGgoaW50IGxlbmd0aFJlY2VpdmVkKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2Fk
ZXIuaAppbmRleCAxZDhhMmQ4Li5lMjZhOWM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Q
aW5nTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCkBAIC02MCw3ICs2
MCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSB7IGRlbGV0ZSB0aGlzOyB9CiAgICAgdm9p
ZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQpIHsgZGVs
ZXRlIHRoaXM7IH0KLSAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKSB7
IGRlbGV0ZSB0aGlzOyB9CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
KiwgZG91YmxlKSB7IGRlbGV0ZSB0aGlzOyB9CiAgICAgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIHsgZGVsZXRlIHRoaXM7IH0KIAogICAgIFJlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWROb3RpZmllci5jcHAgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3Rp
Zmllci5jcHAKaW5kZXggZDIyNWNiOC4uNWM4N2JiNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZE5vdGlmaWVyLmNwcApAQCAtMTUzLDExICsxNTMsNiBAQCB2b2lkIFJlc291cmNlTG9hZE5v
dGlmaWVyOjpkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiBs
b2FkZQogdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5n
KERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKIHsKICAg
ICBtX2ZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhs
b2FkZXIsIGlkZW50aWZpZXIpOwotCi0jaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICBpZiAoUGFn
ZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLT5kaWRGaW5pc2hMb2FkaW5nKGlkZW50aWZpZXIpOwotI2VuZGlmCiB9CiAKIHZvaWQg
UmVzb3VyY2VMb2FkTm90aWZpZXI6OnNlbmRSZW1haW5pbmdEZWxlZ2F0ZU1lc3NhZ2VzKERvY3Vt
ZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UsIGludCBsZW5ndGgsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2Vi
Q29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGUxZDMzMWUuLjUxMTY0MGYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJD
bGllbnQuaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQcm9n
cmVzc1RyYWNrZXIuaCIKQEAgLTQ0MCw4ICs0NDEsMTIgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6
ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVu
Z3QKICNlbmRpZgogfQogCi12b2lkIFJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJl
c291cmNlSGFuZGxlKikKK3ZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVz
b3VyY2VIYW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSkKIHsKKyNpZiBFTkFCTEUoSU5TUEVDVE9S
KQorICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQorICAgICAgICBwYWdlLT5p
bnNwZWN0b3JDb250cm9sbGVyKCktPmRpZEZpbmlzaExvYWRpbmcobV9pZGVudGlmaWVyLCBmaW5p
c2hUaW1lKTsKKyNlbmRpZgogICAgIGRpZEZpbmlzaExvYWRpbmcoKTsKIH0KIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmgKaW5kZXggOTUxM2ZkYi4uYjgzMjRhZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5oCkBAIC05OSw3ICs5OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpIHsgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKGRh
dGEsIGxlbmd0aCk7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVz
b3VyY2VIYW5kbGUqKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVz
b3VyY2VIYW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
aWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggOTI3MjNjNC4uZDg5
ZjgxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
R3JvdXAuY3BwCkBAIC02MDIsMTEgKzYwMiwxMSBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91
cDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hhciogZAog
ICAgIG1fbG9hZGVkU2l6ZSArPSBsZW5ndGg7CiB9CiAKLXZvaWQgQXBwbGljYXRpb25DYWNoZUdy
b3VwOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCit2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBkb3VibGUgZmluaXNoVGltZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlmIChQ
YWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250
cm9sbGVyKCktPmRpZEZpbmlzaExvYWRpbmcobV9jdXJyZW50UmVzb3VyY2VJZGVudGlmaWVyKTsK
KyAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaWRGaW5pc2hMb2FkaW5nKG1f
Y3VycmVudFJlc291cmNlSWRlbnRpZmllciwgZmluaXNoVGltZSk7CiAjZW5kaWYKIAogICAgIGlm
IChoYW5kbGUgPT0gbV9tYW5pZmVzdEhhbmRsZSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmggYi9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAppbmRleCBiNWNkZjdiLi45OWFiNzFhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAor
KysgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaApAQCAt
MTEzLDcgKzExMyw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNo
YXIqLCBpbnQgbGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZp
bmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgdmly
dHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7
CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNYW5pZmVzdFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3Bw
IGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKaW5kZXggYjMzMTIyYS4uZjZi
ODBmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKKysr
IGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKQEAgLTIwMiw3ICsyMDIsNyBA
QCB2b2lkIEljb25GZXRjaGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbAogICAgIG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0u
YnVmZmVyKCktPmFwcGVuZChkYXRhLCBsZW5ndGgpOwogfQogCi12b2lkIEljb25GZXRjaGVyOjpk
aWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCit2b2lkIEljb25GZXRjaGVy
OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGRvdWJsZSkKIHsKICAg
ICBBU1NFUlRfVU5VU0VEKGhhbmRsZSwgbV9oYW5kbGUgPT0gaGFuZGxlKTsKICAgICAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuaCBiL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkZldGNoZXIuaAppbmRleCA1MzI3NjkzLi4zODdlMWMzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRmV0Y2hlci5oCkBAIC02MiwxMiArNjIsMTIgQEAgcHJpdmF0ZToKICAgICAKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRp
bWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBS
ZXNvdXJjZUVycm9yJik7Ci0gICAgCisKICAgICBGcmFtZSogbV9mcmFtZTsKICAgICBJY29uRmV0
Y2hlckNsaWVudCogbV9jbGllbnQ7Ci0gICAgCisKICAgICB1bnNpZ25lZCBtX2N1cnJlbnRFbnRy
eTsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG1faGFuZGxlOwogICAgIFZlY3RvcjxJY29u
TGlua0VudHJ5PiBtX2VudHJpZXM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRl
eCAwNjFmYTg1Li40ZTU3MTkzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAg
LTQ0LDcgKzQ0LDcgQEAgY2xhc3MgU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIE5vbmNvcHlhYmxl
LCBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFNlbmRSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50
LCBpbnQpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhh
bmRsZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhh
bmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRG
YWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopOwpAQCAtNzY2LDcgKzc2Niw3IEBAIHZv
aWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBjb25zdCBjaGFyKiBkYXRhLCBpCiAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKG1fc3JjLCBD
T1JFLCBGQUlMRUQsICgwKSwgKDApKTsKIH0KIAotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZp
bmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZp
bmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiAgICAgV2ViS2l0V2ViU3Jj
UHJpdmF0ZSogcHJpdiA9IG1fc3JjLT5wcml2OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDg3NjdiNTUuLjQ4YWMyYzAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC04
MCw3ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwg
aW50IC8qbGVuZ3RoUmVjZWl2ZWQqLyk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRp
bmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhS
ZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lk
IGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKIHByaXZh
dGU6CkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRl
cjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwKIHsKIH0KIAot
dm9pZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNv
dXJjZUhhbmRsZSopCit2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5p
c2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKQogewogfQogCkBAIC01ODEsNyArNTgx
LDcgQEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeUZhaWwoaW50IGVycm9yQ29kZSkK
IHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlGaW5pc2goKQogewogICAgIGlmIChjbGll
bnQoKSkKLSAgICAgICAgY2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcyk7CisgICAgICAg
IGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMsIDApOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGVDbGllbnQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNs
aWVudC5oCmluZGV4IDk3YzBmNTQuLjUyOWFiZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVm
IFJlc291cmNlSGFuZGxlQ2xpZW50X2gKICNkZWZpbmUgUmVzb3VyY2VIYW5kbGVDbGllbnRfaAog
CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKQEAgLTcyLDcgKzczLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQogICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBp
bnQgLypsZW5ndGhSZWNlaXZlZCovKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVDYWNoZWRNZXRhZGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQpIHsgfQot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopIHsg
fQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSos
IGRvdWJsZSkgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxl
KiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgd2FzQmxv
Y2tlZChSZXNvdXJjZUhhbmRsZSopIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hv
d1VSTChSZXNvdXJjZUhhbmRsZSopIHsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDc2MzU1MWYuLjEzNDEyYzEgMTAw
NzU1Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5l
dC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGlu
dCAvKmxlbmd0aFJlY2VpdmVkKi8pOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5n
KFJlc291cmNlSGFuZGxlKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVz
b3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgYm9v
bCBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHM7CkBAIC0yNDEsNyArMjQxLDcgQEAgdm9pZCBkaWRG
aW5pc2hMb2FkaW5nKENGVVJMQ29ubmVjdGlvblJlZiBjb25uLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQogICAgIExPRyhOZXR3b3JrLCAiQ0ZOZXQgLSBkaWRGaW5pc2hMb2FkaW5nKGNvbm49JXAs
IGhhbmRsZT0lcCkgKCVzKSIsIGNvbm4sIGhhbmRsZSwgaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51
cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIGlmIChoYW5kbGUtPmNsaWVudCgp
KQotICAgICAgICBoYW5kbGUtPmNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSk7Cisg
ICAgICAgIGhhbmRsZS0+Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLCAwKTsKIH0K
IAogdm9pZCBkaWRGYWlsKENGVVJMQ29ubmVjdGlvblJlZiBjb25uLCBDRkVycm9yUmVmIGVycm9y
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKSAKQEAgLTc0MSw3ICs3NDEsNyBAQCB2b2lkIFdlYkNv
cmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBjaGFyKgogICAgIENGRGF0YUFwcGVuZEJ5dGVzKG1fZGF0YS5nZXQoKSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBVSW50OCo+KGRhdGEpLCBsZW5ndGgpOwogfQogCi12b2lkIFdlYkNv
cmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRs
ZSopCit2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkRmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkKIHsKICAgICBtX2lzRG9uZSA9IHRydWU7CiB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1
cmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJs
LmNwcAppbmRleCA4YTMyMmI0Li4wNTJhYzU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgbGVuZ3RoUmVj
ZWl2ZWQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
Kik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBk
b3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgUmVzb3VyY2VSZXNwb25zZSBy
ZXNvdXJjZVJlc3BvbnNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZTsgfQpAQCAtNzQsNyAr
NzQsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLAogICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwg
bGVuZ3RoKTsKIH0KIAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExv
YWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRp
ZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIu
Y3BwCmluZGV4IDhkMmExYmYuLmE0ZDcxZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcApAQCAtMzk3LDcgKzM5
Nyw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpkb3dubG9hZFRpbWVyQ2FsbGJhY2so
VGltZXI8UmVzb3VyY2VIYW5kbGVNYW5hZ2VyPioKICAgICAgICAgICAgIH0KIAogICAgICAgICAg
ICAgaWYgKGQtPmNsaWVudCgpKQotICAgICAgICAgICAgICAgIGQtPmNsaWVudCgpLT5kaWRGaW5p
c2hMb2FkaW5nKGpvYik7CisgICAgICAgICAgICAgICAgZC0+Y2xpZW50KCktPmRpZEZpbmlzaExv
YWRpbmcoam9iLCAwKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGNoYXIqIHVybCA9
IDA7CiAgICAgICAgICAgICBjdXJsX2Vhc3lfZ2V0aW5mbyhkLT5tX2hhbmRsZSwgQ1VSTElORk9f
RUZGRUNUSVZFX1VSTCwgJnVybCk7CkBAIC02MjQsNyArNjI0LDcgQEAgc3RhdGljIHZvaWQgcGFy
c2VEYXRhVXJsKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgICAgICAgICBjbGllbnQtPmRp
ZFJlY2VpdmVEYXRhKGhhbmRsZSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5j
aGFyYWN0ZXJzKCkpLCBkYXRhLmxlbmd0aCgpICogc2l6ZW9mKFVDaGFyKSwgMCk7CiAgICAgfQog
Ci0gICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSk7CisgICAgY2xpZW50LT5kaWRG
aW5pc2hMb2FkaW5nKGhhbmRsZSwgMCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2Vy
OjpkaXNwYXRjaFN5bmNocm9ub3VzSm9iKFJlc291cmNlSGFuZGxlKiBqb2IpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCA2ZGI5
MzUwLi5kYWVjMzY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jl
c291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVz
b3VyY2VIYW5kbGVNYWMubW0KQEAgLTExNSw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciosIGludCwgaW50IC8qbGVuZ3RoUmVjZWl2ZWQqLyk7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9y
Jik7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICB2aXJ0dWFs
IGJvb2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpOwpAQCAtOTE3LDcgKzkxNyw3IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJiBjaGFsbGVuCiAgICAgaWYgKCFSZXNvdXJjZUhhbmRsZTo6ZGlkU2VuZEJvZHlEYXRh
RGVsZWdhdGVFeGlzdHMoKSkKICAgICAgICAgZGlzYXNzb2NpYXRlU3RyZWFtV2l0aFJlc291cmNl
SGFuZGxlKFttX2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KCkgSFRUUEJvZHlT
dHJlYW1dKTsKIAotICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyhtX2hh
bmRsZSk7CisgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKG1faGFuZGxl
LCAwKTsKIH0KIAogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0
aW9uIGRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgpAQCAtMTA1OSw3ICsxMDU5LDcg
QEAgdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgY2hhcioKICAgICBbbV9kYXRhIGFwcGVuZEJ5dGVzOmRhdGEg
bGVuZ3RoOmxlbmd0aF07CiB9CiAKLXZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xpZW50
OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKikKK3ZvaWQgV2ViQ29yZVN5bmNocm9u
b3VzTG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91Ymxl
KQogewogICAgIG1faXNEb25lID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCmluZGV4IDI4OTgzMDMuLjMwZjcw
MTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5
SGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVw
bHlIYW5kbGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFFOZXR3b3JrQ29va2ll
PgogI2luY2x1ZGUgPHF3ZWJmcmFtZS5oPgogI2luY2x1ZGUgPHF3ZWJwYWdlLmg+CisKICNpbmNs
dWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpbmNsdWRlIDxRRGVidWc+CkBAIC0yNjIsNyAr
MjYzLDcgQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6ZmluaXNoKCkKICAgICAgICAgcmVz
ZXRTdGF0ZSgpOwogICAgICAgICBzdGFydCgpOwogICAgIH0gZWxzZSBpZiAoIW1fcmVwbHktPmVy
cm9yKCkgfHwgaWdub3JlSHR0cEVycm9yKG1fcmVwbHksIG1fcmVzcG9uc2VEYXRhU2VudCkpIHsK
LSAgICAgICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKG1fcmVzb3VyY2VIYW5kbGUpOworICAg
ICAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcobV9yZXNvdXJjZUhhbmRsZSwgMCk7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgUVVybCB1cmwgPSBtX3JlcGx5LT51cmwoKTsKICAgICAgICAgaW50
IGh0dHBTdGF0dXNDb2RlID0gbV9yZXBseS0+YXR0cmlidXRlKFFOZXR3b3JrUmVxdWVzdDo6SHR0
cFN0YXR1c0NvZGVBdHRyaWJ1dGUpLnRvSW50KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKaW5kZXggOGEyNGQwZi4uYTVhYzRjMyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcApA
QCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJl
c3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBp
bnQsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRp
bmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhS
ZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lk
IGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKICAgICBS
ZXNvdXJjZVJlc3BvbnNlIHJlc291cmNlUmVzcG9uc2UoKSBjb25zdCB7IHJldHVybiBtX3Jlc3Bv
bnNlOyB9CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpk
aWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsCiAgICAgbV9k
YXRhLmFwcGVuZChkYXRhLCBsZW5ndGgpOwogfQogCi12b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xv
YWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2b2lkIFdlYkNvcmVTeW5j
aHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkK
IHsKICAgICBtX2V2ZW50TG9vcC5leGl0KCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCAxMjQ2YzIyLi4wMDA5
ZTM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhh
bmRsZVNvdXAuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBjaGFyKiwgaW50LCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwotICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKik7CisgICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VF
cnJvciYpOwogCiAgICAgdm9pZCBydW4oKTsKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIFdlYkNv
cmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBjaGFyKiBkYXRhLAogICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9p
ZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5k
bGUqKQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVz
b3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiAgICAgZ19tYWluX2xvb3BfcXVpdChtX21haW5Mb29w
KTsKICAgICBtX2ZpbmlzaGVkID0gdHJ1ZTsKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIFdlYkNv
cmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCiB2
b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmFpbChSZXNvdXJjZUhhbmRsZSogaGFu
ZGxlLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBtX2Vycm9yID0gZXJyb3I7
Ci0gICAgZGlkRmluaXNoTG9hZGluZyhoYW5kbGUpOworICAgIGRpZEZpbmlzaExvYWRpbmcoaGFu
ZGxlLCAwKTsKIH0KIAogdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OnJ1bigpCkBAIC0z
MzYsNyArMzM2LDcgQEAgc3RhdGljIHZvaWQgZmluaXNoZWRDYWxsYmFjayhTb3VwU2Vzc2lvbiAq
c2Vzc2lvbiwgU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGEKICAgICAgICAgICAgIGNsaWVu
dC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLmdldCgpLCBtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEs
IG1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoLCB0cnVlKTsKICAgICB9CiAKLSAgICBjbGllbnQt
PmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLmdldCgpKTsKKyAgICBjbGllbnQtPmRpZEZpbmlzaExv
YWRpbmcoaGFuZGxlLmdldCgpLCAwKTsKIH0KIAogLy8gcGFyc2VEYXRhVXJsKCkgaXMgdGFrZW4g
ZnJvbSB0aGUgQ1VSTCBodHRwIGJhY2tlbmQuCkBAIC00MTUsNyArNDE1LDcgQEAgc3RhdGljIGdi
b29sZWFuIHBhcnNlRGF0YVVybChncG9pbnRlciBjYWxsYmFja0RhdGEpCiAgICAgaWYgKGQtPm1f
Y2FuY2VsbGVkIHx8ICFoYW5kbGUtPmNsaWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlKTsKKyAgICBjbGllbnQtPmRpZEZp
bmlzaExvYWRpbmcoaGFuZGxlLCAwKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTcxNyw3
ICs3MTcsNyBAQCBzdGF0aWMgdm9pZCBjbG9zZUNhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0Fz
eW5jUmVzdWx0KiByZXMsIGdwb2ludGVyKQogICAgIGlmIChkLT5tX2NhbmNlbGxlZCB8fCAhY2xp
ZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFu
ZGxlLmdldCgpKTsKKyAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLmdldCgpLCAw
KTsKIH0KIAogc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5j
UmVzdWx0KiByZXMsIGdwb2ludGVyKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
d2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAppbmRleCA2MDBmOGNhLi44MzJhOGUyIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcApA
QCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlV2luLmgiCiAjaW5jbHVk
ZSAiVGltZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlSW5zdGFuY2VIYW5kbGUuaCIKKwogI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8
d2luaW5ldC5oPgpAQCAtMTQ0LDcgKzE0NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciosIGludCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgIHZpcnR1YWwgdm9pZCBkaWRG
aW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKTsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJy
b3ImKTsKIAogcHJpdmF0ZToKQEAgLTE3MCw3ICsxNzEsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJv
bm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBk
YXRhLAogICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBXZWJDb3Jl
U3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9p
ZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5k
bGUqLCBkb3VibGUpCiB7CiB9CiAKQEAgLTM0OSw3ICszNTAsNyBAQCB2b2lkIFJlc291cmNlSGFu
ZGxlOjpvblJlcXVlc3RDb21wbGV0ZShMUEFSQU0gbFBhcmFtKQogICAgICAgICBJbnRlcm5ldENs
b3NlSGFuZGxlKGQtPm1fc2Vjb25kYXJ5SGFuZGxlKTsKICAgICBJbnRlcm5ldENsb3NlSGFuZGxl
KGQtPm1fcmVzb3VyY2VIYW5kbGUpOwogCi0gICAgY2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmco
dGhpcyk7CisgICAgY2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcywgMCk7CiAgICAgZGVs
ZXRlIHRoaXM7CiB9CiAKQEAgLTUxMSw3ICs1MTIsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpm
aWxlTG9hZFRpbWVyKFRpbWVyPFJlc291cmNlSGFuZGxlPiopCiAKICAgICBDbG9zZUhhbmRsZShm
aWxlSGFuZGxlKTsKIAotICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMpOworICAg
IGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMsIDApOwogfQogCiB2b2lkIFJlc291cmNl
SGFuZGxlOjpjYW5jZWwoKQpAQCAtNTIxLDcgKzUyMiw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6
OmNhbmNlbCgpCiAgICAgZWxzZQogICAgICAgICBkLT5tX2ZpbGVMb2FkVGltZXIuc3RvcCgpOwog
Ci0gICAgY2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcyk7IAorICAgIGNsaWVudCgpLT5k
aWRGaW5pc2hMb2FkaW5nKHRoaXMsIDApOyAKIAogICAgIGlmICghZC0+bV9yZXNvdXJjZUhhbmRs
ZSkKICAgICAgICAgLy8gQXN5bmMgbG9hZCBjYW5jZWxlZCBiZWZvcmUgd2UgaGF2ZSBhIGhhbmRs
ZSAtLSBtYXJrIG91cnNlbHZlcyBhcyBpbiBlcnJvciwgdG8gYmUgZGVsZXRlZCBsYXRlci4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDUzYzE2YzguLjMxNmZiMTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2
IEBACisyMDEwLTA5LTE0ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IFByb3ZpZGUgbmV0d29yay1iYXNlZCBsb2FkIHRpbWluZy4KKyAgICAgICAgQmVmb3Jl
IHRoaXMgY2hhbmdlLCBpbnNwZWN0b3IgdXNlZCB0aW1lcnMgdGFrZW4gZnJvbQorICAgICAgICB3
aXRoaW4gV2ViQ29yZSBub3RpZmljYXRpb25zICh0aGF0IGFyZSBieSBkZWZpbml0aW9uCisgICAg
ICAgIHN5bmNocm9ub3VzIGFuZCBzZXJpYWxpemVkKS4gQXMgYSByZXN1bHQsIHRpbWluZyB3YXMK
KyAgICAgICAgYWZmZWN0ZWQgYnkgdGhlIHJvdXRpbmVzIHJ1bm5pbmcgb24gdGhlIG1haW4gdGhy
ZWFkCisgICAgICAgIChKYXZhU2NyaXB0IGFuZCBzdWNoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NjY0CisKKyAgICAgICAgKiBwdWJsaWMvV2Vi
VVJMTG9hZFRpbWluZy5oOgorICAgICAgICAqIHB1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToK
KyAgICAgICAgKiBzcmMvUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogc3JjL1dl
YkRldlRvb2xzQWdlbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2Vu
dEltcGw6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHNyYy9XZWJVUkxMb2FkVGltaW5n
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6cmVjZWl2ZUhlYWRlcnNT
dGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnNldFJlY2VpdmVIZWFk
ZXJzU3RhcnQpOgorCiAyMDEwLTA5LTEzICBKb25hdGhhbiBEaXhvbiAgPGpvdGhAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaCBiL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVVJMTG9hZGVyQ2xpZW50LmgKaW5kZXggYzcxNmU1ZC4uMjU5MTU2MCAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRlckNsaWVudC5oCkBAIC02NCw3ICs2
NCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0
YShXZWJVUkxMb2FkZXIqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkgeyB9CiAK
ICAgICAvLyBDYWxsZWQgd2hlbiB0aGUgbG9hZCBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5LgotICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciopIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciosIGRvdWJsZSBmaW5pc2hU
aW1lKSB7IH0KKworICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyBvbmNlIGNsaWVudHMgYXJlIHVw
ZGF0ZWQuCisgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciogbG9hZGVyKSB7
IGRpZEZpbmlzaExvYWRpbmcobG9hZGVyLCAwKTsgfQogCiAgICAgLy8gQ2FsbGVkIHdoZW4gdGhl
IGxvYWQgY29tcGxldGVzIHdpdGggYW4gZXJyb3IuCiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwo
V2ViVVJMTG9hZGVyKiwgY29uc3QgV2ViVVJMRXJyb3ImKSB7IH0KZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9S
ZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggMjdiZmU3Zi4uODNlMDAxNyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViVVJMTG9hZGVyKiwgY29uc3QgV2ViVVJM
UmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoV2ViVVJMTG9hZGVy
KiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgpOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoV2ViVVJMTG9hZGVyKiwgY29uc3QgY2hhciogZGF0YSwg
aW50IGRhdGFMZW5ndGgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFdlYlVS
TExvYWRlciopOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRl
ciosIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChXZWJVUkxM
b2FkZXIqLCBjb25zdCBXZWJVUkxFcnJvciYpOwogCiAgICAgZW51bSBDb25uZWN0aW9uU3RhdGUg
ewpAQCAtMTgyLDEzICsxODIsMTMgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZUludGVybmFsOjpkaWRS
ZWNlaXZlQ2FjaGVkTWV0YWRhdGEoV2ViVVJMTG9hZGVyKiwgY29uc3QgY2hhcioKICAgICBtX2Ns
aWVudC0+ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKG1fb3duZXIsIGRhdGEsIGRhdGFMZW5ndGgp
OwogfQogCi12b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZEZpbmlzaExvYWRpbmcoV2Vi
VVJMTG9hZGVyKikKK3ZvaWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkRmluaXNoTG9hZGlu
ZyhXZWJVUkxMb2FkZXIqLCBkb3VibGUgZmluaXNoVGltZSkKIHsKICAgICBBU1NFUlQobV9jbGll
bnQpOwogICAgIGlmIChtX3N0YXRlICE9IENvbm5lY3Rpb25TdGF0ZVJlY2VpdmVkUmVzcG9uc2Ug
JiYgbV9zdGF0ZSAhPSBDb25uZWN0aW9uU3RhdGVSZWNlaXZpbmdEYXRhKQogICAgICAgICBDUkFT
SCgpOwogICAgIG1fc3RhdGUgPSBDb25uZWN0aW9uU3RhdGVGaW5pc2hlZExvYWRpbmc7Ci0gICAg
bV9jbGllbnQtPmRpZEZpbmlzaExvYWRpbmcobV9vd25lcik7CisgICAgbV9jbGllbnQtPmRpZEZp
bmlzaExvYWRpbmcobV9vd25lciwgZmluaXNoVGltZSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbDo6ZGlkRmFpbChXZWJVUkxMb2FkZXIqLCBjb25zdCBXZWJVUkxFcnJvciYgZXJy
b3IpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBs
LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCmluZGV4
IDk3MWMyOTAuLjgzNGQzNTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2
VG9vbHNBZ2VudEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNB
Z2VudEltcGwuY3BwCkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiV2ViVVJMUmVzcG9uc2Uu
aCIKICNpbmNsdWRlICJXZWJWaWV3Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIK
KyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKQEAgLTMzNiw3ICszMzcsNyBAQCB2b2lkIFdl
YkRldlRvb2xzQWdlbnRJbXBsOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyByZXNv
dXJjZUlkLCBjb25zdCBXZQogdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6ZGlkRmluaXNoTG9h
ZGluZyh1bnNpZ25lZCBsb25nIHJlc291cmNlSWQpCiB7CiAgICAgaWYgKEluc3BlY3RvckNvbnRy
b2xsZXIqIGljID0gaW5zcGVjdG9yQ29udHJvbGxlcigpKQotICAgICAgICBpYy0+ZGlkRmluaXNo
TG9hZGluZyhyZXNvdXJjZUlkKTsKKyAgICAgICAgaWMtPmRpZEZpbmlzaExvYWRpbmcocmVzb3Vy
Y2VJZCwgMCk7CiB9CiAKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZEZhaWxMb2FkaW5n
KHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VJZCwgY29uc3QgV2ViVVJMRXJyb3ImIGVycm9yKQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRl
eCBhNzdiMmQ0Li43MzU2ZjFhIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysg
Yi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA5LTE0ICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByb3ZpZGUgbmV0d29y
ay1iYXNlZCBsb2FkIHRpbWluZy4KKyAgICAgICAgQmVmb3JlIHRoaXMgY2hhbmdlLCBpbnNwZWN0
b3IgdXNlZCB0aW1lcnMgdGFrZW4gZnJvbQorICAgICAgICB3aXRoaW4gV2ViQ29yZSBub3RpZmlj
YXRpb25zICh0aGF0IGFyZSBieSBkZWZpbml0aW9uCisgICAgICAgIHN5bmNocm9ub3VzIGFuZCBz
ZXJpYWxpemVkKS4gQXMgYSByZXN1bHQsIHRpbWluZyB3YXMKKyAgICAgICAgYWZmZWN0ZWQgYnkg
dGhlIHJvdXRpbmVzIHJ1bm5pbmcgb24gdGhlIG1haW4gdGhyZWFkCisgICAgICAgIChKYXZhU2Ny
aXB0IGFuZCBzdWNoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ1NjY0CisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwOgorICAg
ICAgICAoRG93bmxvYWRDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorCiAyMDEwLTA5LTEzICBN
YXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRkb3dubG9hZC5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAK
aW5kZXggMjBjYWMyYi4uMWU0NTI1MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0ZG93bmxvYWQuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNw
cApAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBEb3dubG9hZENsaWVudCA6IHB1YmxpYyBOb25jb3B5
YWJsZSwgcHVibGljIFJlc291cmNlSGFuZGxlQ2xpZW50IHsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSk7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopOwpAQCAtOTMwLDcgKzkzMCw3
IEBAIHZvaWQgRG93bmxvYWRDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0CiAgICAgd2Via2l0X2Rvd25sb2FkX3JlY2VpdmVk
X2RhdGEobV9kb3dubG9hZCwgZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBEb3dubG9hZENsaWVu
dDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2b2lkIERvd25sb2FkQ2xpZW50
OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKQogewogICAgIHdlYmtp
dF9kb3dubG9hZF9maW5pc2hlZF9sb2FkaW5nKG1fZG93bmxvYWQpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67653</attachid>
            <date>2010-09-15 01:11:30 -0700</date>
            <delta_ts>2010-09-15 02:06:55 -0700</delta_ts>
            <desc>[PATCH] Rebaselined. Bots, jump in.</desc>
            <filename>finish_time</filename>
            <type>text/plain</type>
            <size>34903</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDc5MDFiMy4uZDU4OGIxNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxMC0wOS0xNCAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92aWRlIG5ldHdvcmstYmFzZWQg
bG9hZCB0aW1pbmcuCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgaW5zcGVjdG9yIHVzZWQg
dGltZXJzIHRha2VuIGZyb20KKyAgICAgICAgd2l0aGluIFdlYkNvcmUgbm90aWZpY2F0aW9ucyAo
dGhhdCBhcmUgYnkgZGVmaW5pdGlvbgorICAgICAgICBzeW5jaHJvbm91cyBhbmQgc2VyaWFsaXpl
ZCkuIEFzIGEgcmVzdWx0LCB0aW1pbmcgd2FzCisgICAgICAgIGFmZmVjdGVkIGJ5IHRoZSByb3V0
aW5lcyBydW5uaW5nIG9uIHRoZSBtYWluIHRocmVhZAorICAgICAgICAoSmF2YVNjcmlwdCBhbmQg
c3VjaCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NTY2NAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZpbmlzaExvYWRpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlOjplbmRUaW1pbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZS5oOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpQaW5nTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkTm90aWZp
ZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hM
b2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oOgorICAgICAgICAqIGxvYWRl
ci9pY29uL0ljb25GZXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25GZXRjaGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeUZpbmlzaCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFRpbWluZzo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRUaW1pbmc6OlJlc291cmNlTG9hZFRpbWluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpZEZpbmlz
aExvYWRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlTWFu
YWdlcjo6ZG93bmxvYWRUaW1lckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRGF0
YVVybCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMu
bW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlv
bkRpZEZpbmlzaExvYWRpbmc6XSk6CisgICAgICAgIChXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJD
bGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQv
UU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBs
eUhhbmRsZXI6OmZpbmlzaCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRl
cjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25v
dXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyOjpkaWRGYWlsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dp
bi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6Om9uUmVxdWVzdENvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpmaWxlTG9hZFRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpjYW5jZWwpOgorCiAyMDEwLTA5LTE0ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IGNocm9taXVtIGNvbXBpbGUuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDkwZWYzNDQuLjFlYzMwYTYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC05NjMsNyArOTYz
LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBSZXNvdXJjZVJlcXUKICAgICAgICAgLy8gUmVkaXJlY3QgbWF5IGhh
dmUgZW1wdHkgVVJMIGFuZCB3ZSdkIGxpa2UgdG8gbm90IGNyYXNoIHdpdGggaW52YWxpZCBIYXNo
TWFwIGVudHJ5LgogICAgICAgICAvLyBTZWUgaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1
ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC5odG1sCiAgICAgICAgIGlmICghcmVxdWVzdC51
cmwoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHJlc291cmNlLT5lbmRUaW1pbmcoKTsKKyAg
ICAgICAgICAgIHJlc291cmNlLT5lbmRUaW1pbmcoMCk7CiAgICAgICAgICAgICByZXNvdXJjZS0+
dXBkYXRlUmVzcG9uc2UocmVkaXJlY3RSZXNwb25zZSk7CiAKICAgICAgICAgICAgIC8vIFdlIGFs
d2F5cyBzdG9yZSBsYXN0IHJlZGlyZWN0IGJ5IHRoZSBvcmlnaW5hbCBpZCBrZXkuIFJlc3Qgb2Yg
dGhlIHJlZGlyZWN0cyBhcmUgc3RvcmVkIHdpdGhpbiB0aGUgbGFzdCBvbmUuCkBAIC0xMDIwLDcg
KzEwMjAsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFJlY2VpdmVDb250ZW50TGVu
Z3RoKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50CiAgICAgICAgIHJlc291cmNlLT51cGRh
dGVTY3JpcHRPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCit2b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSkKIHsKICAgICBpZiAoIWVuYWJsZWQoKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTAzMiw3ICsxMDMyLDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKICAgICBpZiAoIXJl
c291cmNlKQogICAgICAgICByZXR1cm47CiAKLSAgICByZXNvdXJjZS0+ZW5kVGltaW5nKCk7Cisg
ICAgcmVzb3VyY2UtPmVuZFRpbWluZyhmaW5pc2hUaW1lKTsKIAogICAgIC8vIE5vIG5lZWQgdG8g
bXV0ZSB0aGlzIGV2ZW50IGZvciBtYWluIHJlc291cmNlIHNpbmNlIGl0IGhhcHBlbnMgYWZ0ZXIg
ZGlkIGNvbW1pdCBsb2FkLgogICAgIGlmIChtX2Zyb250ZW5kKQpAQCAtMTA1Nyw3ICsxMDU3LDcg
QEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmMKICAgICAgICAgcmV0dXJuOwogCiAgICAgcmVzb3Vy
Y2UtPm1hcmtGYWlsZWQoKTsKLSAgICByZXNvdXJjZS0+ZW5kVGltaW5nKCk7CisgICAgcmVzb3Vy
Y2UtPmVuZFRpbWluZygwKTsKIAogICAgIC8vIE5vIG5lZWQgdG8gbXV0ZSB0aGlzIGV2ZW50IGZv
ciBtYWluIHJlc291cmNlIHNpbmNlIGl0IGhhcHBlbnMgYWZ0ZXIgZGlkIGNvbW1pdCBsb2FkLgog
ICAgIGlmIChtX2Zyb250ZW5kKQpAQCAtMTQ5Miw3ICsxNDkyLDcgQEAgdm9pZCBJbnNwZWN0b3JD
b250cm9sbGVyOjpkaWRDbG9zZVdlYlNvY2tldCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCiAg
ICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcmVzb3VyY2UtPmVuZFRp
bWluZygpOworICAgIHJlc291cmNlLT5lbmRUaW1pbmcoMCk7CiAgICAgaWYgKG1fZnJvbnRlbmQp
CiAgICAgICAgIHJlc291cmNlLT51cGRhdGVTY3JpcHRPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7
CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggMDc5Y2Y1NS4u
MzQzZThlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMTY1
LDcgKzE2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZvaWQgZGlk
UmVjZWl2ZUNvbnRlbnRMZW5ndGgodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3Ro
UmVjZWl2ZWQpOwotICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICB2b2lkIGRpZEZhaWxMb2FkaW5nKHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgIHZvaWQgcmVzb3Vy
Y2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgU2NyaXB0U3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBT
dHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKTsKICAgICB2b2lkIHNjcmlw
dEltcG9ydGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VT
dHJpbmcpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2Uu
Y3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCmluZGV4IDliYzAx
YzguLjJkMjRjNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKQEAg
LTQ1NSw5ICs0NTUsOSBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlOjpzdGFydFRpbWluZygpCiAg
ICAgbV9jaGFuZ2VzLnNldChUaW1pbmdDaGFuZ2UpOwogfQogCi12b2lkIEluc3BlY3RvclJlc291
cmNlOjplbmRUaW1pbmcoKQordm9pZCBJbnNwZWN0b3JSZXNvdXJjZTo6ZW5kVGltaW5nKGRvdWJs
ZSBhY3R1YWxFbmRUaW1lKQogewotICAgIG1fZW5kVGltZSA9IGN1cnJlbnRUaW1lKCk7CisgICAg
bV9lbmRUaW1lID0gYWN0dWFsRW5kVGltZSA/IGFjdHVhbEVuZFRpbWUgOiBjdXJyZW50VGltZSgp
OwogICAgIG1fZmluaXNoZWQgPSB0cnVlOwogICAgIG1fY2hhbmdlcy5zZXQoVGltaW5nQ2hhbmdl
KTsKICAgICBtX2NoYW5nZXMuc2V0KENvbXBsZXRpb25DaGFuZ2UpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclJlc291cmNlLmgKaW5kZXggM2ZkNWE2OS4uOGEyMDdiMCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JSZXNvdXJjZS5oCkBAIC0xMTcsNyArMTE3LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIHN0YXJ0VGltaW5nKCk7CiAgICAgICAgIHZvaWQgbWFya0xvYWRF
dmVudFRpbWUoKTsKICAgICAgICAgdm9pZCBtYXJrRE9NQ29udGVudEV2ZW50VGltZSgpOwotICAg
ICAgICB2b2lkIGVuZFRpbWluZygpOworICAgICAgICB2b2lkIGVuZFRpbWluZyhkb3VibGUgYWN0
dWFsRW5kVGltZSk7CiAKICAgICAgICAgdm9pZCBtYXJrRmFpbGVkKCk7CiAgICAgICAgIHZvaWQg
YWRkTGVuZ3RoKGludCBsZW5ndGhSZWNlaXZlZCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRl
ci9QaW5nTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKaW5kZXggMWQ4YTJk
OC4uZTI2YTljOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCisrKyBi
L1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJikgeyBkZWxldGUgdGhpczsgfQogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50KSB7IGRlbGV0ZSB0aGlzOyB9Ci0gICAg
dm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKikgeyBkZWxldGUgdGhpczsgfQor
ICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkgeyBkZWxl
dGUgdGhpczsgfQogICAgIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlRXJyb3ImKSB7IGRlbGV0ZSB0aGlzOyB9CiAKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+
IG1faGFuZGxlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZp
ZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCmluZGV4IGQy
MjVjYjguLjVjODdiYjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5v
dGlmaWVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAK
QEAgLTE1MywxMSArMTUzLDYgQEAgdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hE
aWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1bWVudExvYWRlciogbG9hZGUKIHZvaWQgUmVzb3Vy
Y2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhEb2N1bWVudExvYWRlciog
bG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCiB7CiAgICAgbV9mcmFtZS0+bG9hZGVy
KCktPmNsaWVudCgpLT5kaXNwYXRjaERpZEZpbmlzaExvYWRpbmcobG9hZGVyLCBpZGVudGlmaWVy
KTsKLQotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1l
LT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZGlkRmluaXNo
TG9hZGluZyhpZGVudGlmaWVyKTsKLSNlbmRpZgogfQogCiB2b2lkIFJlc291cmNlTG9hZE5vdGlm
aWVyOjpzZW5kUmVtYWluaW5nRGVsZWdhdGVNZXNzYWdlcyhEb2N1bWVudExvYWRlciogbG9hZGVy
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBpbnQgbGVuZ3RoLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcAppbmRleCBlMWQzMzFlLi41MTE2NDBmIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVk
ZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdl
bnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCkBA
IC00NDAsOCArNDQxLDEyIEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0CiAjZW5kaWYKIH0KIAot
dm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2
b2lkIFJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91
YmxlIGZpbmlzaFRpbWUpCiB7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBpZiAoUGFnZSog
cGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxl
cigpLT5kaWRGaW5pc2hMb2FkaW5nKG1faWRlbnRpZmllciwgZmluaXNoVGltZSk7CisjZW5kaWYK
ICAgICBkaWRGaW5pc2hMb2FkaW5nKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4
IDk1MTNmZGIuLmI4MzI0YWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaApAQCAtOTksNyArOTks
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
UmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNo
YXIqLCBpbnQsIGludCBsZW5ndGhSZWNlaXZlZCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlQ2FjaGVkTWV0YWRhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCBp
bnQgbGVuZ3RoKSB7IGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShkYXRhLCBsZW5ndGgpOyB9Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKik7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91
YmxlIGZpbmlzaFRpbWUpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHdhc0Js
b2NrZWQoUmVzb3VyY2VIYW5kbGUqKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNhbm5vdFNob3dV
UkwoUmVzb3VyY2VIYW5kbGUqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDkyNzIzYzQuLmQ4OWY4MTkgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKKysrIGIv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNjAy
LDExICs2MDIsMTEgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmRpZFJlY2VpdmVEYXRh
KFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IGNoYXIqIGQKICAgICBtX2xvYWRlZFNpemUg
Kz0gbGVuZ3RoOwogfQogCi12b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9h
ZGluZyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQordm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6
OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgZG91YmxlIGZpbmlzaFRp
bWUpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJh
bWUtPnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaWRGaW5p
c2hMb2FkaW5nKG1fY3VycmVudFJlc291cmNlSWRlbnRpZmllcik7CisgICAgICAgIHBhZ2UtPmlu
c3BlY3RvckNvbnRyb2xsZXIoKS0+ZGlkRmluaXNoTG9hZGluZyhtX2N1cnJlbnRSZXNvdXJjZUlk
ZW50aWZpZXIsIGZpbmlzaFRpbWUpOwogI2VuZGlmCiAKICAgICBpZiAoaGFuZGxlID09IG1fbWFu
aWZlc3RIYW5kbGUpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVHcm91cC5oIGIvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUdyb3VwLmgKaW5kZXggYjVjZGY3Yi4uOTlhYjcxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgKKysrIGIvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgKQEAgLTExMyw3ICsxMTMsNyBAQCBw
cml2YXRlOgogI2VuZGlmCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNv
dXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50IGxlbmd0aCwg
aW50IGxlbmd0aFJlY2VpdmVkKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhS
ZXNvdXJjZUhhbmRsZSopOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291
cmNlSGFuZGxlKiwgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWls
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgdm9pZCBkaWRS
ZWNlaXZlTWFuaWZlc3RSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkZldGNoZXIuY3BwCmluZGV4IGIzMzEyMmEuLmY2YjgwZmEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkZldGNoZXIuY3BwCkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBJY29uRmV0Y2hl
cjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hhciogZGF0
YSwgaW50IGwKICAgICBtX2VudHJpZXNbbV9jdXJyZW50RW50cnldLmJ1ZmZlcigpLT5hcHBlbmQo
ZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBJY29uRmV0Y2hlcjo6ZGlkRmluaXNoTG9hZGluZyhS
ZXNvdXJjZUhhbmRsZSogaGFuZGxlKQordm9pZCBJY29uRmV0Y2hlcjo6ZGlkRmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBkb3VibGUpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCho
YW5kbGUsIG1faGFuZGxlID09IGhhbmRsZSk7CiAgICAgCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xv
YWRlci9pY29uL0ljb25GZXRjaGVyLmggYi9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVy
LmgKaW5kZXggNTMyNzY5My4uMzg3ZTFjMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRmV0Y2hlci5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuaApA
QCAtNjIsMTIgKzYyLDEyIEBAIHByaXZhdGU6CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBj
aGFyKiwgaW50LCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwot
ICAgIAorCiAgICAgRnJhbWUqIG1fZnJhbWU7CiAgICAgSWNvbkZldGNoZXJDbGllbnQqIG1fY2xp
ZW50OwotICAgIAorCiAgICAgdW5zaWduZWQgbV9jdXJyZW50RW50cnk7CiAgICAgUmVmUHRyPFJl
c291cmNlSGFuZGxlPiBtX2hhbmRsZTsKICAgICBWZWN0b3I8SWNvbkxpbmtFbnRyeT4gbV9lbnRy
aWVzOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2Vi
S2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKaW5kZXggMDYxZmE4NS4uNGU1NzE5
MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0
V2ViU291cmNlR1N0cmVhbWVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCkBAIC00NCw3ICs0NCw3IEBAIGNs
YXNzIFN0cmVhbWluZ0NsaWVudCA6IHB1YmxpYyBOb25jb3B5YWJsZSwgcHVibGljIFJlc291cmNl
SGFuZGxlQ2xpZW50IHsKICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNv
dXJjZUhhbmRsZSosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50KTsKLSAgICAgICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICAgICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypm
aW5pc2hUaW1lKi8pOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHdhc0Jsb2Nr
ZWQoUmVzb3VyY2VIYW5kbGUqKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNhbm5vdFNob3dVUkwo
UmVzb3VyY2VIYW5kbGUqKTsKQEAgLTc2Niw3ICs3NjYsNyBAQCB2b2lkIFN0cmVhbWluZ0NsaWVu
dDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hhciogZGF0
YSwgaQogICAgICAgICBHU1RfRUxFTUVOVF9FUlJPUihtX3NyYywgQ09SRSwgRkFJTEVELCAoMCks
ICgwKSk7CiB9CiAKLXZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291
cmNlSGFuZGxlKikKK3ZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291
cmNlSGFuZGxlKiwgZG91YmxlKQogewogICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBt
X3NyYy0+cHJpdjsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JS
ZXNvdXJjZUhhbmRsZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNl
SGFuZGxlLmNwcAppbmRleCA4NzY3YjU1Li40OGFjMmMwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcApAQCAtODAsNyArODAsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxl
KiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
RGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCAvKmxlbmd0aFJlY2Vp
dmVkKi8pOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
Kik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBk
b3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiBwcml2YXRlOgpAQCAtMTE2LDcgKzEx
Niw3IEBAIHZvaWQgQmxvYlJlc291cmNlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRh
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosCiB7CiB9CiAKLXZvaWQgQmxvYlJlc291cmNl
U3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9p
ZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJj
ZUhhbmRsZSosIGRvdWJsZSkKIHsKIH0KIApAQCAtNTgxLDcgKzU4MSw3IEBAIHZvaWQgQmxvYlJl
c291cmNlSGFuZGxlOjpub3RpZnlGYWlsKGludCBlcnJvckNvZGUpCiB2b2lkIEJsb2JSZXNvdXJj
ZUhhbmRsZTo6bm90aWZ5RmluaXNoKCkKIHsKICAgICBpZiAoY2xpZW50KCkpCi0gICAgICAgIGNs
aWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMpOworICAgICAgICBjbGllbnQoKS0+ZGlkRmlu
aXNoTG9hZGluZyh0aGlzLCAwKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlQ2xpZW50LmggYi9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaAppbmRleCA5N2Mw
ZjU0Li41MjlhYmY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VIYW5kbGVDbGllbnQuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGVDbGllbnQuaApAQCAtMjYsNiArMjYsNyBAQAogI2lmbmRlZiBSZXNvdXJjZUhhbmRsZUNs
aWVudF9oCiAjZGVmaW5lIFJlc291cmNlSGFuZGxlQ2xpZW50X2gKIAorI2luY2x1ZGUgPHd0Zi9D
dXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCkBAIC03Miw3ICs3Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVE
YXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IC8qbGVuZ3RoUmVjZWl2
ZWQqLykgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50KSB7IH0KLSAgICAgICAgdmlydHVhbCB2
b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKSB7IH0KKyAgICAgICAgdmlydHVh
bCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpIHsgfQogICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNl
RXJyb3ImKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5k
bGUqKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGNhbm5vdFNob3dVUkwoUmVzb3VyY2VIYW5k
bGUqKSB7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZUhhbmRsZUNGTmV0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhh
bmRsZUNGTmV0LmNwcAppbmRleCA3NjM1NTFmLi4xMzQxMmMxIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC05Miw3ICs5
Miw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURh
dGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgLypsZW5ndGhSZWNlaXZl
ZCovKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSop
OworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91
YmxlIC8qZmluaXNoVGltZSovKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKIAogICAgIGJvb2wgbV9hbGxvd1N0b3JlZENy
ZWRlbnRpYWxzOwpAQCAtMjQxLDcgKzI0MSw3IEBAIHZvaWQgZGlkRmluaXNoTG9hZGluZyhDRlVS
TENvbm5lY3Rpb25SZWYgY29ubiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKICAgICBMT0coTmV0
d29yaywgIkNGTmV0IC0gZGlkRmluaXNoTG9hZGluZyhjb25uPSVwLCBoYW5kbGU9JXApICglcyki
LCBjb25uLCBoYW5kbGUsIGhhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudXJsKCkuc3RyaW5nKCkudXRm
OCgpLmRhdGEoKSk7CiAKICAgICBpZiAoaGFuZGxlLT5jbGllbnQoKSkKLSAgICAgICAgaGFuZGxl
LT5jbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyhoYW5kbGUpOworICAgICAgICBoYW5kbGUtPmNs
aWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSwgMCk7CiB9CiAKIHZvaWQgZGlkRmFpbChD
RlVSTENvbm5lY3Rpb25SZWYgY29ubiwgQ0ZFcnJvclJlZiBlcnJvciwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykgCkBAIC03NDEsNyArNzQxLDcgQEAgdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2Fk
ZXJDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhcioKICAg
ICBDRkRhdGFBcHBlbmRCeXRlcyhtX2RhdGEuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
VUludDgqPihkYXRhKSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2Fk
ZXJDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBXZWJDb3Jl
U3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUq
LCBkb3VibGUpCiB7CiAgICAgbV9pc0RvbmUgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKaW5kZXggOGEzMjJi
NC4uMDUyYWM1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVz
b3VyY2VIYW5kbGVDdXJsLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgIHZpcnR1YWwg
dm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGlt
ZSovKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJl
c291cmNlRXJyb3ImKTsKIAogICAgIFJlc291cmNlUmVzcG9uc2UgcmVzb3VyY2VSZXNwb25zZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2U7IH0KQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBXZWJD
b3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciogZGF0YSwKICAgICBtX2RhdGEuYXBwZW5kKGRhdGEsIGxlbmd0aCk7CiB9CiAKLXZv
aWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFu
ZGxlKikKK3ZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJl
c291cmNlSGFuZGxlKiwgZG91YmxlKQogewogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAppbmRleCA4ZDJhMWJm
Li5hNGQ3MWUwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNv
dXJjZUhhbmRsZU1hbmFnZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKQEAgLTM5Nyw3ICszOTcsNyBAQCB2b2lkIFJlc291
cmNlSGFuZGxlTWFuYWdlcjo6ZG93bmxvYWRUaW1lckNhbGxiYWNrKFRpbWVyPFJlc291cmNlSGFu
ZGxlTWFuYWdlcj4qCiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChkLT5jbGllbnQo
KSkKLSAgICAgICAgICAgICAgICBkLT5jbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyhqb2IpOwor
ICAgICAgICAgICAgICAgIGQtPmNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKGpvYiwgMCk7CiAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBjaGFyKiB1cmwgPSAwOwogICAgICAgICAgICAg
Y3VybF9lYXN5X2dldGluZm8oZC0+bV9oYW5kbGUsIENVUkxJTkZPX0VGRkVDVElWRV9VUkwsICZ1
cmwpOwpAQCAtNjI0LDcgKzYyNCw3IEBAIHN0YXRpYyB2b2lkIHBhcnNlRGF0YVVybChSZXNvdXJj
ZUhhbmRsZSogaGFuZGxlKQogICAgICAgICAgICAgY2xpZW50LT5kaWRSZWNlaXZlRGF0YShoYW5k
bGUsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGRhdGEuY2hhcmFjdGVycygpKSwgZGF0
YS5sZW5ndGgoKSAqIHNpemVvZihVQ2hhciksIDApOwogICAgIH0KIAotICAgIGNsaWVudC0+ZGlk
RmluaXNoTG9hZGluZyhoYW5kbGUpOworICAgIGNsaWVudC0+ZGlkRmluaXNoTG9hZGluZyhoYW5k
bGUsIDApOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6ZGlzcGF0Y2hTeW5jaHJv
bm91c0pvYihSZXNvdXJjZUhhbmRsZSogam9iKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggNmRiOTM1MC4uZGFlYzM2NiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5t
bQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1t
CkBAIC0xMTUsNyArMTE1LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCAv
Kmxlbmd0aFJlY2VpdmVkKi8pOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJl
c291cmNlSGFuZGxlKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3Vy
Y2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRG
YWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogI2lmIFVTRShQUk9U
RUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJBQ0spCiAgICAgdmlydHVhbCBib29sIGNhbkF1dGhlbnRp
Y2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBQcm90ZWN0
aW9uU3BhY2UmKTsKQEAgLTkxNyw3ICs5MTcsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNl
aXZlZENhbmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbgog
ICAgIGlmICghUmVzb3VyY2VIYW5kbGU6OmRpZFNlbmRCb2R5RGF0YURlbGVnYXRlRXhpc3RzKCkp
CiAgICAgICAgIGRpc2Fzc29jaWF0ZVN0cmVhbVdpdGhSZXNvdXJjZUhhbmRsZShbbV9oYW5kbGUt
PmZpcnN0UmVxdWVzdCgpLm5zVVJMUmVxdWVzdCgpIEhUVFBCb2R5U3RyZWFtXSk7CiAKLSAgICBt
X2hhbmRsZS0+Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcobV9oYW5kbGUpOworICAgIG1faGFu
ZGxlLT5jbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyhtX2hhbmRsZSwgMCk7CiB9CiAKIC0gKHZv
aWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRGYWlsV2l0aEVy
cm9yOihOU0Vycm9yICopZXJyb3IKQEAgLTEwNTksNyArMTA1OSw3IEBAIHZvaWQgV2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IGNoYXIqCiAgICAgW21fZGF0YSBhcHBlbmRCeXRlczpkYXRhIGxlbmd0aDpsZW5ndGhdOwog
fQogCi12b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkRmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUhhbmRsZSopCit2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6
ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkKIHsKICAgICBtX2lzRG9u
ZSA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5l
dHdvcmtSZXBseUhhbmRsZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3
b3JrUmVwbHlIYW5kbGVyLmNwcAppbmRleCAyODk4MzAzLi4zMGY3MDExIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxRTmV0d29ya0Nvb2tpZT4KICNpbmNsdWRlIDxxd2Vi
ZnJhbWUuaD4KICNpbmNsdWRlIDxxd2VicGFnZS5oPgorCiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogCiAjaW5jbHVkZSA8UURlYnVnPgpAQCAtMjYyLDcgKzI2Myw3IEBAIHZvaWQgUU5l
dHdvcmtSZXBseUhhbmRsZXI6OmZpbmlzaCgpCiAgICAgICAgIHJlc2V0U3RhdGUoKTsKICAgICAg
ICAgc3RhcnQoKTsKICAgICB9IGVsc2UgaWYgKCFtX3JlcGx5LT5lcnJvcigpIHx8IGlnbm9yZUh0
dHBFcnJvcihtX3JlcGx5LCBtX3Jlc3BvbnNlRGF0YVNlbnQpKSB7Ci0gICAgICAgIGNsaWVudC0+
ZGlkRmluaXNoTG9hZGluZyhtX3Jlc291cmNlSGFuZGxlKTsKKyAgICAgICAgY2xpZW50LT5kaWRG
aW5pc2hMb2FkaW5nKG1fcmVzb3VyY2VIYW5kbGUsIDApOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IFFVcmwgdXJsID0gbV9yZXBseS0+dXJsKCk7CiAgICAgICAgIGludCBodHRwU3RhdHVzQ29kZSA9
IG1fcmVwbHktPmF0dHJpYnV0ZShRTmV0d29ya1JlcXVlc3Q6Okh0dHBTdGF0dXNDb2RlQXR0cmli
dXRlKS50b0ludCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jl
c291cmNlSGFuZGxlUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNl
SGFuZGxlUXQuY3BwCmluZGV4IDhhMjRkMGYuLmE1YWM0YzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgbGVuZ3RoUmVj
ZWl2ZWQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
Kik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBk
b3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgUmVzb3VyY2VSZXNwb25zZSBy
ZXNvdXJjZVJlc3BvbnNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZTsgfQpAQCAtOTAsNyAr
OTAsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLAogICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwg
bGVuZ3RoKTsKIH0KIAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExv
YWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRp
ZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiAgICAgbV9ldmVudExv
b3AuZXhpdCgpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggMTI0NmMyMi4uMDAwOWUzNiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBA
IC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGlu
dCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUhhbmRsZSopOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJl
c291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKIAogICAgIHZv
aWQgcnVuKCk7CkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2Fk
ZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwKICAg
ICBtX2RhdGEuYXBwZW5kKGRhdGEsIGxlbmd0aCk7CiB9CiAKLXZvaWQgV2ViQ29yZVN5bmNocm9u
b3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKikKK3ZvaWQgV2ViQ29y
ZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91
YmxlKQogewogICAgIGdfbWFpbl9sb29wX3F1aXQobV9tYWluTG9vcCk7CiAgICAgbV9maW5pc2hl
ZCA9IHRydWU7CkBAIC0xMTEsNyArMTExLDcgQEAgdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2Fk
ZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQogdm9pZCBXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXI6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYgZXJyb3IpCiB7CiAgICAgbV9lcnJvciA9IGVycm9yOwotICAgIGRpZEZpbmlzaExv
YWRpbmcoaGFuZGxlKTsKKyAgICBkaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSwgMCk7CiB9CiAKIHZv
aWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpydW4oKQpAQCAtMzM2LDcgKzMzNiw3IEBAIHN0
YXRpYyB2b2lkIGZpbmlzaGVkQ2FsbGJhY2soU291cFNlc3Npb24gKnNlc3Npb24sIFNvdXBNZXNz
YWdlKiBtc2csIGdwb2ludGVyIGRhCiAgICAgICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRh
KGhhbmRsZS5nZXQoKSwgbXNnLT5yZXNwb25zZV9ib2R5LT5kYXRhLCBtc2ctPnJlc3BvbnNlX2Jv
ZHktPmxlbmd0aCwgdHJ1ZSk7CiAgICAgfQogCi0gICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5n
KGhhbmRsZS5nZXQoKSk7CisgICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZS5nZXQo
KSwgMCk7CiB9CiAKIC8vIHBhcnNlRGF0YVVybCgpIGlzIHRha2VuIGZyb20gdGhlIENVUkwgaHR0
cCBiYWNrZW5kLgpAQCAtNDE1LDcgKzQxNSw3IEBAIHN0YXRpYyBnYm9vbGVhbiBwYXJzZURhdGFV
cmwoZ3BvaW50ZXIgY2FsbGJhY2tEYXRhKQogICAgIGlmIChkLT5tX2NhbmNlbGxlZCB8fCAhaGFu
ZGxlLT5jbGllbnQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgY2xpZW50LT5kaWRG
aW5pc2hMb2FkaW5nKGhhbmRsZSk7CisgICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRs
ZSwgMCk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC03MTcsNyArNzE3LDcgQEAgc3RhdGlj
IHZvaWQgY2xvc2VDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBn
cG9pbnRlcikKICAgICBpZiAoZC0+bV9jYW5jZWxsZWQgfHwgIWNsaWVudCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZS5nZXQoKSk7CisgICAg
Y2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZS5nZXQoKSwgMCk7CiB9CiAKIHN0YXRpYyB2
b2lkIHJlYWRDYWxsYmFjayhHT2JqZWN0KiBzb3VyY2UsIEdBc3luY1Jlc3VsdCogcmVzLCBncG9p
bnRlcikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VI
YW5kbGVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRs
ZVdpbi5jcHAKaW5kZXggNjAwZjhjYS4uODMyYThlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKQEAgLTM4LDYgKzM4LDcgQEAK
ICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZVdpbi5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5j
bHVkZSAiV2ViQ29yZUluc3RhbmNlSGFuZGxlLmgiCisKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAjaW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPHdpbmluZXQuaD4KQEAgLTE0
NCw3ICsxNDUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3Bv
bnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQs
IGludCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmco
UmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNv
dXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKIHByaXZhdGU6
CkBAIC0xNzAsNyArMTcxLDcgQEAgdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZFJl
Y2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwKICAgICBtX2RhdGEu
YXBwZW5kKGRhdGEsIGxlbmd0aCk7CiB9CiAKLXZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVy
OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKikKK3ZvaWQgV2ViQ29yZVN5bmNocm9u
b3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKQogewog
fQogCkBAIC0zNDksNyArMzUwLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6b25SZXF1ZXN0Q29t
cGxldGUoTFBBUkFNIGxQYXJhbSkKICAgICAgICAgSW50ZXJuZXRDbG9zZUhhbmRsZShkLT5tX3Nl
Y29uZGFyeUhhbmRsZSk7CiAgICAgSW50ZXJuZXRDbG9zZUhhbmRsZShkLT5tX3Jlc291cmNlSGFu
ZGxlKTsKIAotICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMpOworICAgIGNsaWVu
dCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMsIDApOwogICAgIGRlbGV0ZSB0aGlzOwogfQogCkBA
IC01MTEsNyArNTEyLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZmlsZUxvYWRUaW1lcihUaW1l
cjxSZXNvdXJjZUhhbmRsZT4qKQogCiAgICAgQ2xvc2VIYW5kbGUoZmlsZUhhbmRsZSk7CiAKLSAg
ICBjbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyh0aGlzKTsKKyAgICBjbGllbnQoKS0+ZGlkRmlu
aXNoTG9hZGluZyh0aGlzLCAwKTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y2FuY2VsKCkK
QEAgLTUyMSw3ICs1MjIsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjYW5jZWwoKQogICAgIGVs
c2UKICAgICAgICAgZC0+bV9maWxlTG9hZFRpbWVyLnN0b3AoKTsKIAotICAgIGNsaWVudCgpLT5k
aWRGaW5pc2hMb2FkaW5nKHRoaXMpOyAKKyAgICBjbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyh0
aGlzLCAwKTsgCiAKICAgICBpZiAoIWQtPm1fcmVzb3VyY2VIYW5kbGUpCiAgICAgICAgIC8vIEFz
eW5jIGxvYWQgY2FuY2VsZWQgYmVmb3JlIHdlIGhhdmUgYSBoYW5kbGUgLS0gbWFyayBvdXJzZWx2
ZXMgYXMgaW4gZXJyb3IsIHRvIGJlIGRlbGV0ZWQgbGF0ZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwZTc1
YTMxLi5kMzk4MGU3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0wOS0xNCAg
UGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92aWRlIG5l
dHdvcmstYmFzZWQgbG9hZCB0aW1pbmcuCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgaW5z
cGVjdG9yIHVzZWQgdGltZXJzIHRha2VuIGZyb20KKyAgICAgICAgd2l0aGluIFdlYkNvcmUgbm90
aWZpY2F0aW9ucyAodGhhdCBhcmUgYnkgZGVmaW5pdGlvbgorICAgICAgICBzeW5jaHJvbm91cyBh
bmQgc2VyaWFsaXplZCkuIEFzIGEgcmVzdWx0LCB0aW1pbmcgd2FzCisgICAgICAgIGFmZmVjdGVk
IGJ5IHRoZSByb3V0aW5lcyBydW5uaW5nIG9uIHRoZSBtYWluIHRocmVhZAorICAgICAgICAoSmF2
YVNjcmlwdCBhbmQgc3VjaCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00NTY2NAorCisgICAgICAgICogcHVibGljL1dlYlVSTExvYWRUaW1pbmcuaDoK
KyAgICAgICAgKiBwdWJsaWMvV2ViVVJMTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6
OldlYlVSTExvYWRlckNsaWVudDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogc3JjL1Jl
c291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJu
YWw6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBsOjpkaWRGaW5pc2hM
b2FkaW5nKToKKyAgICAgICAgKiBzcmMvV2ViVVJMTG9hZFRpbWluZy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnJlY2VpdmVIZWFkZXJzU3RhcnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJVUkxMb2FkVGltaW5nOjpzZXRSZWNlaXZlSGVhZGVyc1N0YXJ0KToKKwogMjAx
MC0wOS0xNCAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
VVJMTG9hZGVyQ2xpZW50LmgKaW5kZXggYzcxNmU1ZC4uMjU5MTU2MCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaAorKysgYi9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlVSTExvYWRlckNsaWVudC5oCkBAIC02NCw3ICs2NCwxMCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShXZWJVUkxMb2Fk
ZXIqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkgeyB9CiAKICAgICAvLyBDYWxs
ZWQgd2hlbiB0aGUgbG9hZCBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5LgotICAgIHZpcnR1YWwgdm9p
ZCBkaWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciosIGRvdWJsZSBmaW5pc2hUaW1lKSB7IH0KKwor
ICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyBvbmNlIGNsaWVudHMgYXJlIHVwZGF0ZWQuCisgICAg
dm9pZCBkaWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciogbG9hZGVyKSB7IGRpZEZpbmlzaExv
YWRpbmcobG9hZGVyLCAwKTsgfQogCiAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIGxvYWQgY29tcGxl
dGVzIHdpdGggYW4gZXJyb3IuCiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoV2ViVVJMTG9hZGVy
KiwgY29uc3QgV2ViVVJMRXJyb3ImKSB7IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvUmVzb3VyY2VIYW5kbGUuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJjZUhhbmRs
ZS5jcHAKaW5kZXggMjdiZmU3Zi4uODNlMDAxNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9SZXNvdXJj
ZUhhbmRsZS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlUmVzcG9uc2UoV2ViVVJMTG9hZGVyKiwgY29uc3QgV2ViVVJMUmVzcG9uc2UmKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoV2ViVVJMTG9hZGVyKiwgY29uc3QgY2hh
ciogZGF0YSwgaW50IGRhdGFMZW5ndGgpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQ2Fj
aGVkTWV0YWRhdGEoV2ViVVJMTG9hZGVyKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5n
dGgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciopOwor
ICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciosIGRvdWJsZSBm
aW5pc2hUaW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChXZWJVUkxMb2FkZXIqLCBjb25z
dCBXZWJVUkxFcnJvciYpOwogCiAgICAgZW51bSBDb25uZWN0aW9uU3RhdGUgewpAQCAtMTgyLDEz
ICsxODIsMTMgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZUludGVybmFsOjpkaWRSZWNlaXZlQ2FjaGVk
TWV0YWRhdGEoV2ViVVJMTG9hZGVyKiwgY29uc3QgY2hhcioKICAgICBtX2NsaWVudC0+ZGlkUmVj
ZWl2ZUNhY2hlZE1ldGFkYXRhKG1fb3duZXIsIGRhdGEsIGRhdGFMZW5ndGgpOwogfQogCi12b2lk
IFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZEZpbmlzaExvYWRpbmcoV2ViVVJMTG9hZGVyKikK
K3ZvaWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkRmluaXNoTG9hZGluZyhXZWJVUkxMb2Fk
ZXIqLCBkb3VibGUgZmluaXNoVGltZSkKIHsKICAgICBBU1NFUlQobV9jbGllbnQpOwogICAgIGlm
IChtX3N0YXRlICE9IENvbm5lY3Rpb25TdGF0ZVJlY2VpdmVkUmVzcG9uc2UgJiYgbV9zdGF0ZSAh
PSBDb25uZWN0aW9uU3RhdGVSZWNlaXZpbmdEYXRhKQogICAgICAgICBDUkFTSCgpOwogICAgIG1f
c3RhdGUgPSBDb25uZWN0aW9uU3RhdGVGaW5pc2hlZExvYWRpbmc7Ci0gICAgbV9jbGllbnQtPmRp
ZEZpbmlzaExvYWRpbmcobV9vd25lcik7CisgICAgbV9jbGllbnQtPmRpZEZpbmlzaExvYWRpbmco
bV9vd25lciwgZmluaXNoVGltZSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6
ZGlkRmFpbChXZWJVUkxMb2FkZXIqLCBjb25zdCBXZWJVUkxFcnJvciYgZXJyb3IpCmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCmluZGV4IDk3MWMyOTAuLjgz
NGQzNTIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudElt
cGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3Bw
CkBAIC01OCw2ICs1OCw3IEBACiAjaW5jbHVkZSAiV2ViVVJMUmVzcG9uc2UuaCIKICNpbmNsdWRl
ICJXZWJWaWV3Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVmlld0ltcGwuaCIKKyNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRl
IDx3dGYvT3duUHRyLmg+CiAKQEAgLTMzNiw3ICszMzcsNyBAQCB2b2lkIFdlYkRldlRvb2xzQWdl
bnRJbXBsOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyByZXNvdXJjZUlkLCBjb25z
dCBXZQogdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25l
ZCBsb25nIHJlc291cmNlSWQpCiB7CiAgICAgaWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGljID0g
aW5zcGVjdG9yQ29udHJvbGxlcigpKQotICAgICAgICBpYy0+ZGlkRmluaXNoTG9hZGluZyhyZXNv
dXJjZUlkKTsKKyAgICAgICAgaWMtPmRpZEZpbmlzaExvYWRpbmcocmVzb3VyY2VJZCwgMCk7CiB9
CiAKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxv
bmcgcmVzb3VyY2VJZCwgY29uc3QgV2ViVVJMRXJyb3ImIGVycm9yKQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cgYi9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA5MzcxNTIzLi4w
ZTZmODkzIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA5LTE0ICBQYXZlbCBGZWxkbWFuICA8
cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByb3ZpZGUgbmV0d29yay1iYXNlZCBsb2Fk
IHRpbWluZy4KKyAgICAgICAgQmVmb3JlIHRoaXMgY2hhbmdlLCBpbnNwZWN0b3IgdXNlZCB0aW1l
cnMgdGFrZW4gZnJvbQorICAgICAgICB3aXRoaW4gV2ViQ29yZSBub3RpZmljYXRpb25zICh0aGF0
IGFyZSBieSBkZWZpbml0aW9uCisgICAgICAgIHN5bmNocm9ub3VzIGFuZCBzZXJpYWxpemVkKS4g
QXMgYSByZXN1bHQsIHRpbWluZyB3YXMKKyAgICAgICAgYWZmZWN0ZWQgYnkgdGhlIHJvdXRpbmVz
IHJ1bm5pbmcgb24gdGhlIG1haW4gdGhyZWFkCisgICAgICAgIChKYXZhU2NyaXB0IGFuZCBzdWNo
KS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NjY0
CisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwOgorICAgICAgICAoRG93bmxv
YWRDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorCiAyMDEwLTA5LTEzICBFbnJpY2EgQ2FzdWNj
aSAgPGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcCBiL1dlYktp
dC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcAppbmRleCAyMGNhYzJiLi4xZTQ1MjUwIDEw
MDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKKysrIGIvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCkBAIC02MCw3ICs2MCw3IEBAIGNsYXNz
IERvd25sb2FkQ2xpZW50IDogcHVibGljIE5vbmNvcHlhYmxlLCBwdWJsaWMgUmVzb3VyY2VIYW5k
bGVDbGllbnQgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGlu
dCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
Kik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
KiwgZG91YmxlKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB3YXNCbG9ja2Vk
KFJlc291cmNlSGFuZGxlKik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjYW5ub3RTaG93VVJMKFJl
c291cmNlSGFuZGxlKik7CkBAIC05MzAsNyArOTMwLDcgQEAgdm9pZCBEb3dubG9hZENsaWVudDo6
ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVu
Z3QKICAgICB3ZWJraXRfZG93bmxvYWRfcmVjZWl2ZWRfZGF0YShtX2Rvd25sb2FkLCBkYXRhLCBs
ZW5ndGgpOwogfQogCi12b2lkIERvd25sb2FkQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291
cmNlSGFuZGxlKikKK3ZvaWQgRG93bmxvYWRDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3Vy
Y2VIYW5kbGUqLCBkb3VibGUpCiB7CiAgICAgd2Via2l0X2Rvd25sb2FkX2ZpbmlzaGVkX2xvYWRp
bmcobV9kb3dubG9hZCk7CiB9Cg==
</data>
<flag name="review"
          id="57017"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67658</attachid>
            <date>2010-09-15 02:06:55 -0700</date>
            <delta_ts>2010-09-15 02:48:06 -0700</delta_ts>
            <desc>[PATCH] Review comments addressed (for try bots).</desc>
            <filename>finish_time</filename>
            <type>text/plain</type>
            <size>37736</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDc5MDFiMy4uZDU4OGIxNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxMC0wOS0xNCAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92aWRlIG5ldHdvcmstYmFzZWQg
bG9hZCB0aW1pbmcuCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgaW5zcGVjdG9yIHVzZWQg
dGltZXJzIHRha2VuIGZyb20KKyAgICAgICAgd2l0aGluIFdlYkNvcmUgbm90aWZpY2F0aW9ucyAo
dGhhdCBhcmUgYnkgZGVmaW5pdGlvbgorICAgICAgICBzeW5jaHJvbm91cyBhbmQgc2VyaWFsaXpl
ZCkuIEFzIGEgcmVzdWx0LCB0aW1pbmcgd2FzCisgICAgICAgIGFmZmVjdGVkIGJ5IHRoZSByb3V0
aW5lcyBydW5uaW5nIG9uIHRoZSBtYWluIHRocmVhZAorICAgICAgICAoSmF2YVNjcmlwdCBhbmQg
c3VjaCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NTY2NAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZpbmlzaExvYWRpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlOjplbmRUaW1pbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZS5oOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpQaW5nTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkTm90aWZp
ZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hM
b2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oOgorICAgICAgICAqIGxvYWRl
ci9pY29uL0ljb25GZXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25GZXRjaGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeUZpbmlzaCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFRpbWluZzo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRUaW1pbmc6OlJlc291cmNlTG9hZFRpbWluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpZEZpbmlz
aExvYWRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlTWFu
YWdlcjo6ZG93bmxvYWRUaW1lckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRGF0
YVVybCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMu
bW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlv
bkRpZEZpbmlzaExvYWRpbmc6XSk6CisgICAgICAgIChXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJD
bGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQv
UU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBs
eUhhbmRsZXI6OmZpbmlzaCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRl
cjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25v
dXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyOjpkaWRGYWlsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dp
bi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6Om9uUmVxdWVzdENvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpmaWxlTG9hZFRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpjYW5jZWwpOgorCiAyMDEwLTA5LTE0ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IGNocm9taXVtIGNvbXBpbGUuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDkwZWYzNDQuLjFlYzMwYTYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC05NjMsNyArOTYz
LDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBSZXNvdXJjZVJlcXUKICAgICAgICAgLy8gUmVkaXJlY3QgbWF5IGhh
dmUgZW1wdHkgVVJMIGFuZCB3ZSdkIGxpa2UgdG8gbm90IGNyYXNoIHdpdGggaW52YWxpZCBIYXNo
TWFwIGVudHJ5LgogICAgICAgICAvLyBTZWUgaHR0cC90ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1
ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC5odG1sCiAgICAgICAgIGlmICghcmVxdWVzdC51
cmwoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHJlc291cmNlLT5lbmRUaW1pbmcoKTsKKyAg
ICAgICAgICAgIHJlc291cmNlLT5lbmRUaW1pbmcoMCk7CiAgICAgICAgICAgICByZXNvdXJjZS0+
dXBkYXRlUmVzcG9uc2UocmVkaXJlY3RSZXNwb25zZSk7CiAKICAgICAgICAgICAgIC8vIFdlIGFs
d2F5cyBzdG9yZSBsYXN0IHJlZGlyZWN0IGJ5IHRoZSBvcmlnaW5hbCBpZCBrZXkuIFJlc3Qgb2Yg
dGhlIHJlZGlyZWN0cyBhcmUgc3RvcmVkIHdpdGhpbiB0aGUgbGFzdCBvbmUuCkBAIC0xMDIwLDcg
KzEwMjAsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFJlY2VpdmVDb250ZW50TGVu
Z3RoKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgaW50CiAgICAgICAgIHJlc291cmNlLT51cGRh
dGVTY3JpcHRPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCit2b2lk
IEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBkb3VibGUgZmluaXNoVGltZSkKIHsKICAgICBpZiAoIWVuYWJsZWQoKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTAzMiw3ICsxMDMyLDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKICAgICBpZiAoIXJl
c291cmNlKQogICAgICAgICByZXR1cm47CiAKLSAgICByZXNvdXJjZS0+ZW5kVGltaW5nKCk7Cisg
ICAgcmVzb3VyY2UtPmVuZFRpbWluZyhmaW5pc2hUaW1lKTsKIAogICAgIC8vIE5vIG5lZWQgdG8g
bXV0ZSB0aGlzIGV2ZW50IGZvciBtYWluIHJlc291cmNlIHNpbmNlIGl0IGhhcHBlbnMgYWZ0ZXIg
ZGlkIGNvbW1pdCBsb2FkLgogICAgIGlmIChtX2Zyb250ZW5kKQpAQCAtMTA1Nyw3ICsxMDU3LDcg
QEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmMKICAgICAgICAgcmV0dXJuOwogCiAgICAgcmVzb3Vy
Y2UtPm1hcmtGYWlsZWQoKTsKLSAgICByZXNvdXJjZS0+ZW5kVGltaW5nKCk7CisgICAgcmVzb3Vy
Y2UtPmVuZFRpbWluZygwKTsKIAogICAgIC8vIE5vIG5lZWQgdG8gbXV0ZSB0aGlzIGV2ZW50IGZv
ciBtYWluIHJlc291cmNlIHNpbmNlIGl0IGhhcHBlbnMgYWZ0ZXIgZGlkIGNvbW1pdCBsb2FkLgog
ICAgIGlmIChtX2Zyb250ZW5kKQpAQCAtMTQ5Miw3ICsxNDkyLDcgQEAgdm9pZCBJbnNwZWN0b3JD
b250cm9sbGVyOjpkaWRDbG9zZVdlYlNvY2tldCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCiAg
ICAgaWYgKCFyZXNvdXJjZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcmVzb3VyY2UtPmVuZFRp
bWluZygpOworICAgIHJlc291cmNlLT5lbmRUaW1pbmcoMCk7CiAgICAgaWYgKG1fZnJvbnRlbmQp
CiAgICAgICAgIHJlc291cmNlLT51cGRhdGVTY3JpcHRPYmplY3QobV9mcm9udGVuZC5nZXQoKSk7
CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKaW5kZXggMDc5Y2Y1NS4u
MzQzZThlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxl
ci5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMTY1
LDcgKzE2NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZvaWQgZGlk
UmVjZWl2ZUNvbnRlbnRMZW5ndGgodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQgbGVuZ3Ro
UmVjZWl2ZWQpOwotICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIpOworICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICB2b2lkIGRpZEZhaWxMb2FkaW5nKHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgIHZvaWQgcmVzb3Vy
Y2VSZXRyaWV2ZWRCeVhNTEh0dHBSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgU2NyaXB0U3RyaW5nJiBzb3VyY2VTdHJpbmcsIGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBT
dHJpbmcmIHNlbmRVUkwsIHVuc2lnbmVkIHNlbmRMaW5lTnVtYmVyKTsKICAgICB2b2lkIHNjcmlw
dEltcG9ydGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VT
dHJpbmcpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2Uu
Y3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCmluZGV4IDliYzAx
YzguLjJkMjRjNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKQEAg
LTQ1NSw5ICs0NTUsOSBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlOjpzdGFydFRpbWluZygpCiAg
ICAgbV9jaGFuZ2VzLnNldChUaW1pbmdDaGFuZ2UpOwogfQogCi12b2lkIEluc3BlY3RvclJlc291
cmNlOjplbmRUaW1pbmcoKQordm9pZCBJbnNwZWN0b3JSZXNvdXJjZTo6ZW5kVGltaW5nKGRvdWJs
ZSBhY3R1YWxFbmRUaW1lKQogewotICAgIG1fZW5kVGltZSA9IGN1cnJlbnRUaW1lKCk7CisgICAg
bV9lbmRUaW1lID0gYWN0dWFsRW5kVGltZSA/IGFjdHVhbEVuZFRpbWUgOiBjdXJyZW50VGltZSgp
OwogICAgIG1fZmluaXNoZWQgPSB0cnVlOwogICAgIG1fY2hhbmdlcy5zZXQoVGltaW5nQ2hhbmdl
KTsKICAgICBtX2NoYW5nZXMuc2V0KENvbXBsZXRpb25DaGFuZ2UpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuaCBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclJlc291cmNlLmgKaW5kZXggM2ZkNWE2OS4uOGEyMDdiMCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuaAorKysgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JSZXNvdXJjZS5oCkBAIC0xMTcsNyArMTE3LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICB2b2lkIHN0YXJ0VGltaW5nKCk7CiAgICAgICAgIHZvaWQgbWFya0xvYWRF
dmVudFRpbWUoKTsKICAgICAgICAgdm9pZCBtYXJrRE9NQ29udGVudEV2ZW50VGltZSgpOwotICAg
ICAgICB2b2lkIGVuZFRpbWluZygpOworICAgICAgICB2b2lkIGVuZFRpbWluZyhkb3VibGUgYWN0
dWFsRW5kVGltZSk7CiAKICAgICAgICAgdm9pZCBtYXJrRmFpbGVkKCk7CiAgICAgICAgIHZvaWQg
YWRkTGVuZ3RoKGludCBsZW5ndGhSZWNlaXZlZCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRl
ci9QaW5nTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKaW5kZXggMWQ4YTJk
OC4uZTI2YTljOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCisrKyBi
L1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJikgeyBkZWxldGUgdGhpczsgfQogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50KSB7IGRlbGV0ZSB0aGlzOyB9Ci0gICAg
dm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKikgeyBkZWxldGUgdGhpczsgfQor
ICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkgeyBkZWxl
dGUgdGhpczsgfQogICAgIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlRXJyb3ImKSB7IGRlbGV0ZSB0aGlzOyB9CiAKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+
IG1faGFuZGxlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZp
ZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCmluZGV4IGQy
MjVjYjguLmM0M2ExZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5v
dGlmaWVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAK
QEAgLTgyLDExICs4MiwxMSBAQCB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRSZWNlaXZl
RGF0YShSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBjaGFyKiBkYQogICAgIGRpc3BhdGNo
RGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgobG9hZGVyLT5kb2N1bWVudExvYWRlcigpLCBsb2FkZXIt
PmlkZW50aWZpZXIoKSwgbGVuZ3RoUmVjZWl2ZWQpOwogfQogCi12b2lkIFJlc291cmNlTG9hZE5v
dGlmaWVyOjpkaWRGaW5pc2hMb2FkKFJlc291cmNlTG9hZGVyKiBsb2FkZXIpCit2b2lkIFJlc291
cmNlTG9hZE5vdGlmaWVyOjpkaWRGaW5pc2hMb2FkKFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIGRv
dWJsZSBmaW5pc2hUaW1lKQogeyAgICAKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBh
Z2UoKSkKICAgICAgICAgcGFnZS0+cHJvZ3Jlc3MoKS0+Y29tcGxldGVQcm9ncmVzcyhsb2FkZXIt
PmlkZW50aWZpZXIoKSk7Ci0gICAgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKGxvYWRlci0+ZG9j
dW1lbnRMb2FkZXIoKSwgbG9hZGVyLT5pZGVudGlmaWVyKCkpOworICAgIGRpc3BhdGNoRGlkRmlu
aXNoTG9hZGluZyhsb2FkZXItPmRvY3VtZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigp
LCBmaW5pc2hUaW1lKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlkRmFpbFRv
TG9hZChSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikK
QEAgLTE1MCwxMyArMTUwLDEzIEBAIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpc3BhdGNo
RGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqIGxvYWRlCiAjZW5kaWYKIH0K
IAotdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKK3ZvaWQgUmVz
b3VyY2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhEb2N1bWVudExvYWRl
ciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQog
ewogICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRGaW5pc2hMb2Fk
aW5nKGxvYWRlciwgaWRlbnRpZmllcik7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlm
IChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5pbnNwZWN0b3JD
b250cm9sbGVyKCktPmRpZEZpbmlzaExvYWRpbmcoaWRlbnRpZmllcik7CisgICAgICAgIHBhZ2Ut
Pmluc3BlY3RvckNvbnRyb2xsZXIoKS0+ZGlkRmluaXNoTG9hZGluZyhpZGVudGlmaWVyLCBmaW5p
c2hUaW1lKTsKICNlbmRpZgogfQogCkBAIC0xNjksNyArMTY5LDcgQEAgdm9pZCBSZXNvdXJjZUxv
YWROb3RpZmllcjo6c2VuZFJlbWFpbmluZ0RlbGVnYXRlTWVzc2FnZXMoRG9jdW1lbnRMb2FkZXIq
IGxvYWRlciwKICAgICAgICAgZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVudExlbmd0aChsb2FkZXIs
IGlkZW50aWZpZXIsIGxlbmd0aCk7CiAKICAgICBpZiAoZXJyb3IuaXNOdWxsKCkpCi0gICAgICAg
IGRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhsb2FkZXIsIGlkZW50aWZpZXIpOworICAgICAgICBk
aXNwYXRjaERpZEZpbmlzaExvYWRpbmcobG9hZGVyLCBpZGVudGlmaWVyLCAwKTsKICAgICBlbHNl
CiAgICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLT5jbGllbnQoKS0+ZGlzcGF0Y2hEaWRGYWlsTG9h
ZGluZyhsb2FkZXIsIGlkZW50aWZpZXIsIGVycm9yKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmggYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWROb3RpZmllci5oCmluZGV4IGIwYTVjYmYuLjc1OGU0MTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
bG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuaApAQCAtNTMsMTQgKzUzLDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHdp
bGxTZW5kUmVxdWVzdChSZXNvdXJjZUxvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJl
c3BvbnNlKFJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZv
aWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQg
bGVuZ3RoUmVjZWl2ZWQpOwotICAgIHZvaWQgZGlkRmluaXNoTG9hZChSZXNvdXJjZUxvYWRlciop
OworICAgIHZvaWQgZGlkRmluaXNoTG9hZChSZXNvdXJjZUxvYWRlciosIGRvdWJsZSBmaW5pc2hU
aW1lKTsKICAgICB2b2lkIGRpZEZhaWxUb0xvYWQoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBSZXNv
dXJjZUVycm9yJik7CiAKICAgICB2b2lkIGFzc2lnbklkZW50aWZpZXJUb0luaXRpYWxSZXF1ZXN0
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmKTsKICAgICB2b2lkIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50TG9h
ZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB2b2lkIGRpc3BhdGNoRGlk
UmVjZWl2ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVD
b250ZW50TGVuZ3RoKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBp
bnQgbGVuZ3RoKTsKLSAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhEb2N1bWVudExv
YWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CisgICAgdm9pZCBkaXNwYXRjaERpZEZp
bmlzaExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGRv
dWJsZSBmaW5pc2hUaW1lKTsKIAogICAgIHZvaWQgc2VuZFJlbWFpbmluZ0RlbGVnYXRlTWVzc2Fn
ZXMoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmLCBpbnQgbGVuZ3RoLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCBlMWQzMzFlLi4zZjZiOGMwIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisj
aW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVs
aW5lQWdlbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2Vy
LmgiCkBAIC0yOTgsNyArMjk5LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9h
ZGluZ09uZVBhcnQoKQogICAgICAgICByZXR1cm47CiAgICAgbV9jYWxsZWREaWRGaW5pc2hMb2Fk
ID0gdHJ1ZTsKICAgICBpZiAobV9zZW5kUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKQotICAgICAgICBm
cmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5kaWRGaW5pc2hMb2FkKHRoaXMpOworICAgICAgICBm
cmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5kaWRGaW5pc2hMb2FkKHRoaXMsIDApOwogfQogCiB2
b2lkIFJlc291cmNlTG9hZGVyOjpkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQpA
QCAtNDQwLDcgKzQ0MSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0CiAjZW5kaWYKIH0KIAot
dm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2
b2lkIFJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91
YmxlIGZpbmlzaFRpbWUpCiB7CiAgICAgZGlkRmluaXNoTG9hZGluZygpOwogfQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmgKaW5kZXggOTUxM2ZkYi4uYjgzMjRhZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5oCkBAIC05OSw3ICs5OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKICAgICAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpIHsgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKGRh
dGEsIGxlbmd0aCk7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVz
b3VyY2VIYW5kbGUqKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVz
b3VyY2VIYW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBk
aWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggOTI3MjNjNC4uZDg5
ZjgxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
R3JvdXAuY3BwCkBAIC02MDIsMTEgKzYwMiwxMSBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91
cDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hhciogZAog
ICAgIG1fbG9hZGVkU2l6ZSArPSBsZW5ndGg7CiB9CiAKLXZvaWQgQXBwbGljYXRpb25DYWNoZUdy
b3VwOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCit2b2lkIEFwcGxp
Y2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBkb3VibGUgZmluaXNoVGltZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlmIChQ
YWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250
cm9sbGVyKCktPmRpZEZpbmlzaExvYWRpbmcobV9jdXJyZW50UmVzb3VyY2VJZGVudGlmaWVyKTsK
KyAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaWRGaW5pc2hMb2FkaW5nKG1f
Y3VycmVudFJlc291cmNlSWRlbnRpZmllciwgZmluaXNoVGltZSk7CiAjZW5kaWYKIAogICAgIGlm
IChoYW5kbGUgPT0gbV9tYW5pZmVzdEhhbmRsZSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmggYi9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAppbmRleCBiNWNkZjdiLi45OWFiNzFhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAor
KysgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaApAQCAt
MTEzLDcgKzExMyw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNo
YXIqLCBpbnQgbGVuZ3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZp
bmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgdmly
dHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7
CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNYW5pZmVzdFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3Bw
IGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKaW5kZXggYjMzMTIyYS4uZjZi
ODBmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKKysr
IGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKQEAgLTIwMiw3ICsyMDIsNyBA
QCB2b2lkIEljb25GZXRjaGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbAogICAgIG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0u
YnVmZmVyKCktPmFwcGVuZChkYXRhLCBsZW5ndGgpOwogfQogCi12b2lkIEljb25GZXRjaGVyOjpk
aWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCit2b2lkIEljb25GZXRjaGVy
OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGRvdWJsZSkKIHsKICAg
ICBBU1NFUlRfVU5VU0VEKGhhbmRsZSwgbV9oYW5kbGUgPT0gaGFuZGxlKTsKICAgICAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuaCBiL1dlYkNvcmUvbG9hZGVy
L2ljb24vSWNvbkZldGNoZXIuaAppbmRleCA1MzI3NjkzLi4zODdlMWMzIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvaWNv
bi9JY29uRmV0Y2hlci5oCkBAIC02MiwxMiArNjIsMTIgQEAgcHJpdmF0ZToKICAgICAKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRp
bWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBS
ZXNvdXJjZUVycm9yJik7Ci0gICAgCisKICAgICBGcmFtZSogbV9mcmFtZTsKICAgICBJY29uRmV0
Y2hlckNsaWVudCogbV9jbGllbnQ7Ci0gICAgCisKICAgICB1bnNpZ25lZCBtX2N1cnJlbnRFbnRy
eTsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG1faGFuZGxlOwogICAgIFZlY3RvcjxJY29u
TGlua0VudHJ5PiBtX2VudHJpZXM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRl
eCAwNjFmYTg1Li40ZTU3MTkzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAg
LTQ0LDcgKzQ0LDcgQEAgY2xhc3MgU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIE5vbmNvcHlhYmxl
LCBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFNlbmRSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50
LCBpbnQpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhh
bmRsZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhh
bmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRG
YWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopOwpAQCAtNzY2LDcgKzc2Niw3IEBAIHZv
aWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxl
LCBjb25zdCBjaGFyKiBkYXRhLCBpCiAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKG1fc3JjLCBD
T1JFLCBGQUlMRUQsICgwKSwgKDApKTsKIH0KIAotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZp
bmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZp
bmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiAgICAgV2ViS2l0V2ViU3Jj
UHJpdmF0ZSogcHJpdiA9IG1fc3JjLT5wcml2OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDg3NjdiNTUuLjQ4YWMyYzAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC04
MCw3ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwg
aW50IC8qbGVuZ3RoUmVjZWl2ZWQqLyk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRp
bmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhS
ZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lk
IGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKIHByaXZh
dGU6CkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRl
cjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwKIHsKIH0KIAot
dm9pZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNv
dXJjZUhhbmRsZSopCit2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5p
c2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKQogewogfQogCkBAIC01ODEsNyArNTgx
LDcgQEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeUZhaWwoaW50IGVycm9yQ29kZSkK
IHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlGaW5pc2goKQogewogICAgIGlmIChjbGll
bnQoKSkKLSAgICAgICAgY2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcyk7CisgICAgICAg
IGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMsIDApOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGVDbGllbnQuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNs
aWVudC5oCmluZGV4IDk3YzBmNTQuLmQ5MzUwZWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVm
IFJlc291cmNlSGFuZGxlQ2xpZW50X2gKICNkZWZpbmUgUmVzb3VyY2VIYW5kbGVDbGllbnRfaAog
CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKQEAgLTcyLDcgKzczLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQogICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBp
bnQgLypsZW5ndGhSZWNlaXZlZCovKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVDYWNoZWRNZXRhZGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQpIHsgfQot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopIHsg
fQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSos
IGRvdWJsZSAvKmZpbmlzaFRpbWUqLykgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWls
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIHsgfQogICAgICAgICB2aXJ0
dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopIHsgfQogICAgICAgICB2aXJ0dWFs
IHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopIHsgfQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDc2MzU1
MWYuLjEzNDEyYzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGTmV0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlSGFuZGxl
KiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0
IGNoYXIqLCBpbnQsIGludCAvKmxlbmd0aFJlY2VpdmVkKi8pOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZp
bmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJv
ciYpOwogCiAgICAgYm9vbCBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHM7CkBAIC0yNDEsNyArMjQx
LDcgQEAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKENGVVJMQ29ubmVjdGlvblJlZiBjb25uLCBjb25z
dCB2b2lkKiBjbGllbnRJbmZvKQogICAgIExPRyhOZXR3b3JrLCAiQ0ZOZXQgLSBkaWRGaW5pc2hM
b2FkaW5nKGNvbm49JXAsIGhhbmRsZT0lcCkgKCVzKSIsIGNvbm4sIGhhbmRsZSwgaGFuZGxlLT5m
aXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIGlmICho
YW5kbGUtPmNsaWVudCgpKQotICAgICAgICBoYW5kbGUtPmNsaWVudCgpLT5kaWRGaW5pc2hMb2Fk
aW5nKGhhbmRsZSk7CisgICAgICAgIGhhbmRsZS0+Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmco
aGFuZGxlLCAwKTsKIH0KIAogdm9pZCBkaWRGYWlsKENGVVJMQ29ubmVjdGlvblJlZiBjb25uLCBD
RkVycm9yUmVmIGVycm9yLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKSAKQEAgLTc0MSw3ICs3NDEs
NyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKgogICAgIENGRGF0YUFwcGVuZEJ5dGVzKG1fZGF0
YS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBVSW50OCo+KGRhdGEpLCBsZW5ndGgpOwog
fQogCi12b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkRmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUhhbmRsZSopCit2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6
ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkKIHsKICAgICBtX2lzRG9u
ZSA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZUN1cmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVz
b3VyY2VIYW5kbGVDdXJsLmNwcAppbmRleCA4YTMyMmI0Li4wNTJhYzU2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAg
LTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNw
b25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50
LCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5n
KFJlc291cmNlSGFuZGxlKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVz
b3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgUmVz
b3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25z
ZTsgfQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlk
UmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLAogICAgIG1fZGF0
YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2Fk
ZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNl
SGFuZGxlTWFuYWdlci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZU1hbmFnZXIuY3BwCmluZGV4IDhkMmExYmYuLmE0ZDcxZTAgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNw
cApAQCAtMzk3LDcgKzM5Nyw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpkb3dubG9h
ZFRpbWVyQ2FsbGJhY2soVGltZXI8UmVzb3VyY2VIYW5kbGVNYW5hZ2VyPioKICAgICAgICAgICAg
IH0KIAogICAgICAgICAgICAgaWYgKGQtPmNsaWVudCgpKQotICAgICAgICAgICAgICAgIGQtPmNs
aWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKGpvYik7CisgICAgICAgICAgICAgICAgZC0+Y2xpZW50
KCktPmRpZEZpbmlzaExvYWRpbmcoam9iLCAwKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgIGNoYXIqIHVybCA9IDA7CiAgICAgICAgICAgICBjdXJsX2Vhc3lfZ2V0aW5mbyhkLT5tX2hh
bmRsZSwgQ1VSTElORk9fRUZGRUNUSVZFX1VSTCwgJnVybCk7CkBAIC02MjQsNyArNjI0LDcgQEAg
c3RhdGljIHZvaWQgcGFyc2VEYXRhVXJsKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgICAg
ICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhhbmRsZSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBjaGFyKj4oZGF0YS5jaGFyYWN0ZXJzKCkpLCBkYXRhLmxlbmd0aCgpICogc2l6ZW9mKFVDaGFy
KSwgMCk7CiAgICAgfQogCi0gICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSk7Cisg
ICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSwgMCk7CiB9CiAKIHZvaWQgUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyOjpkaXNwYXRjaFN5bmNocm9ub3VzSm9iKFJlc291cmNlSGFuZGxlKiBq
b2IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFu
ZGxlTWFjLm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1h
Yy5tbQppbmRleCA2ZGI5MzUwLi5kYWVjMzY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KQEAgLTExNSw3ICsxMTUsNyBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IC8qbGVuZ3RoUmVjZWl2ZWQqLyk7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlz
aFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZUVycm9yJik7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFD
SykKICAgICB2aXJ0dWFsIGJvb2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFj
ZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpOwpAQCAtOTE3LDcgKzkx
Nyw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuCiAgICAgaWYgKCFSZXNvdXJjZUhhbmRsZTo6
ZGlkU2VuZEJvZHlEYXRhRGVsZWdhdGVFeGlzdHMoKSkKICAgICAgICAgZGlzYXNzb2NpYXRlU3Ry
ZWFtV2l0aFJlc291cmNlSGFuZGxlKFttX2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkubnNVUkxSZXF1
ZXN0KCkgSFRUUEJvZHlTdHJlYW1dKTsKIAotICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkRmlu
aXNoTG9hZGluZyhtX2hhbmRsZSk7CisgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRGaW5pc2hM
b2FkaW5nKG1faGFuZGxlLCAwKTsKIH0KIAogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5l
Y3Rpb24gKiljb25uZWN0aW9uIGRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgpAQCAt
MTA1OSw3ICsxMDU5LDcgQEAgdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmRp
ZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhcioKICAgICBbbV9kYXRhIGFw
cGVuZEJ5dGVzOmRhdGEgbGVuZ3RoOmxlbmd0aF07CiB9CiAKLXZvaWQgV2ViQ29yZVN5bmNocm9u
b3VzTG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKikKK3ZvaWQg
V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNl
SGFuZGxlKiwgZG91YmxlKQogewogICAgIG1faXNEb25lID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCmluZGV4
IDI4OTgzMDMuLjMwZjcwMTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
PFFOZXR3b3JrQ29va2llPgogI2luY2x1ZGUgPHF3ZWJmcmFtZS5oPgogI2luY2x1ZGUgPHF3ZWJw
YWdlLmg+CisKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpbmNsdWRlIDxRRGVi
dWc+CkBAIC0yNjIsNyArMjYzLDcgQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6ZmluaXNo
KCkKICAgICAgICAgcmVzZXRTdGF0ZSgpOwogICAgICAgICBzdGFydCgpOwogICAgIH0gZWxzZSBp
ZiAoIW1fcmVwbHktPmVycm9yKCkgfHwgaWdub3JlSHR0cEVycm9yKG1fcmVwbHksIG1fcmVzcG9u
c2VEYXRhU2VudCkpIHsKLSAgICAgICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKG1fcmVzb3Vy
Y2VIYW5kbGUpOworICAgICAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcobV9yZXNvdXJjZUhh
bmRsZSwgMCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgUVVybCB1cmwgPSBtX3JlcGx5LT51cmwo
KTsKICAgICAgICAgaW50IGh0dHBTdGF0dXNDb2RlID0gbV9yZXBseS0+YXR0cmlidXRlKFFOZXR3
b3JrUmVxdWVzdDo6SHR0cFN0YXR1c0NvZGVBdHRyaWJ1dGUpLnRvSW50KCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKaW5kZXggOGEyNGQw
Zi4uYTVhYzRjMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlSGFuZGxlUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSos
IGNvbnN0IGNoYXIqLCBpbnQsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVy
cm9yJik7CiAKICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc291cmNlUmVzcG9uc2UoKSBjb25zdCB7
IHJldHVybiBtX3Jlc3BvbnNlOyB9CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgV2ViQ29yZVN5bmNo
cm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIq
IGRhdGEsCiAgICAgbV9kYXRhLmFwcGVuZChkYXRhLCBsZW5ndGgpOwogfQogCi12b2lkIFdlYkNv
cmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2
b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhh
bmRsZSosIGRvdWJsZSkKIHsKICAgICBtX2V2ZW50TG9vcC5leGl0KCk7CiB9CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRl
eCAxMjQ2YzIyLi4wMDA5ZTM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKik7CisgICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypm
aW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgdm9pZCBydW4oKTsKQEAgLTEwMiw3ICsxMDIs
NyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLAogICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwgbGVu
Z3RoKTsKIH0KIAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRp
bmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiAgICAgZ19tYWluX2xvb3Bf
cXVpdChtX21haW5Mb29wKTsKICAgICBtX2ZpbmlzaGVkID0gdHJ1ZTsKQEAgLTExMSw3ICsxMTEs
NyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNv
dXJjZUhhbmRsZSopCiB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmFpbChSZXNv
dXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBt
X2Vycm9yID0gZXJyb3I7Ci0gICAgZGlkRmluaXNoTG9hZGluZyhoYW5kbGUpOworICAgIGRpZEZp
bmlzaExvYWRpbmcoaGFuZGxlLCAwKTsKIH0KIAogdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2Fk
ZXI6OnJ1bigpCkBAIC0zMzYsNyArMzM2LDcgQEAgc3RhdGljIHZvaWQgZmluaXNoZWRDYWxsYmFj
ayhTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwgU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGEKICAg
ICAgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLmdldCgpLCBtc2ctPnJlc3Bv
bnNlX2JvZHktPmRhdGEsIG1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoLCB0cnVlKTsKICAgICB9
CiAKLSAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLmdldCgpKTsKKyAgICBjbGll
bnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLmdldCgpLCAwKTsKIH0KIAogLy8gcGFyc2VEYXRh
VXJsKCkgaXMgdGFrZW4gZnJvbSB0aGUgQ1VSTCBodHRwIGJhY2tlbmQuCkBAIC00MTUsNyArNDE1
LDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlRGF0YVVybChncG9pbnRlciBjYWxsYmFja0RhdGEp
CiAgICAgaWYgKGQtPm1fY2FuY2VsbGVkIHx8ICFoYW5kbGUtPmNsaWVudCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKLSAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlKTsKKyAg
ICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLCAwKTsKIAogICAgIHJldHVybiBmYWxz
ZTsKIH0KQEAgLTcxNyw3ICs3MTcsNyBAQCBzdGF0aWMgdm9pZCBjbG9zZUNhbGxiYWNrKEdPYmpl
Y3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyKQogICAgIGlmIChkLT5tX2Nh
bmNlbGxlZCB8fCAhY2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBjbGllbnQtPmRpZEZp
bmlzaExvYWRpbmcoaGFuZGxlLmdldCgpKTsKKyAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmco
aGFuZGxlLmdldCgpLCAwKTsKIH0KIAogc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3Qq
IHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAppbmRleCA2MDBmOGNhLi44
MzJhOGUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxl
V2luLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlSW5zdGFuY2VIYW5k
bGUuaCIKKwogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3aW5kb3dz
Lmg+CiAjaW5jbHVkZSA8d2luaW5ldC5oPgpAQCAtMTQ0LDcgKzE0NSw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmlu
aXNoVGltZSovKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IFJlc291cmNlRXJyb3ImKTsKIAogcHJpdmF0ZToKQEAgLTE3MCw3ICsxNzEsNyBAQCB2b2lk
IFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUq
LCBjb25zdCBjaGFyKiBkYXRhLAogICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKIH0K
IAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3Vy
Y2VIYW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRp
bmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiB9CiAKQEAgLTM0OSw3ICszNTAsNyBAQCB2
b2lkIFJlc291cmNlSGFuZGxlOjpvblJlcXVlc3RDb21wbGV0ZShMUEFSQU0gbFBhcmFtKQogICAg
ICAgICBJbnRlcm5ldENsb3NlSGFuZGxlKGQtPm1fc2Vjb25kYXJ5SGFuZGxlKTsKICAgICBJbnRl
cm5ldENsb3NlSGFuZGxlKGQtPm1fcmVzb3VyY2VIYW5kbGUpOwogCi0gICAgY2xpZW50KCktPmRp
ZEZpbmlzaExvYWRpbmcodGhpcyk7CisgICAgY2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhp
cywgMCk7CiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKQEAgLTUxMSw3ICs1MTIsNyBAQCB2b2lkIFJl
c291cmNlSGFuZGxlOjpmaWxlTG9hZFRpbWVyKFRpbWVyPFJlc291cmNlSGFuZGxlPiopCiAKICAg
ICBDbG9zZUhhbmRsZShmaWxlSGFuZGxlKTsKIAotICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2Fk
aW5nKHRoaXMpOworICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMsIDApOwogfQog
CiB2b2lkIFJlc291cmNlSGFuZGxlOjpjYW5jZWwoKQpAQCAtNTIxLDcgKzUyMiw3IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpCiAgICAgZWxzZQogICAgICAgICBkLT5tX2ZpbGVMb2Fk
VGltZXIuc3RvcCgpOwogCi0gICAgY2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcyk7IAor
ICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMsIDApOyAKIAogICAgIGlmICghZC0+
bV9yZXNvdXJjZUhhbmRsZSkKICAgICAgICAgLy8gQXN5bmMgbG9hZCBjYW5jZWxlZCBiZWZvcmUg
d2UgaGF2ZSBhIGhhbmRsZSAtLSBtYXJrIG91cnNlbHZlcyBhcyBpbiBlcnJvciwgdG8gYmUgZGVs
ZXRlZCBsYXRlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDBlNzVhMzEuLmQzOTgwZTcgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI2IEBACisyMDEwLTA5LTE0ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5A
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFByb3ZpZGUgbmV0d29yay1iYXNlZCBsb2FkIHRpbWluZy4K
KyAgICAgICAgQmVmb3JlIHRoaXMgY2hhbmdlLCBpbnNwZWN0b3IgdXNlZCB0aW1lcnMgdGFrZW4g
ZnJvbQorICAgICAgICB3aXRoaW4gV2ViQ29yZSBub3RpZmljYXRpb25zICh0aGF0IGFyZSBieSBk
ZWZpbml0aW9uCisgICAgICAgIHN5bmNocm9ub3VzIGFuZCBzZXJpYWxpemVkKS4gQXMgYSByZXN1
bHQsIHRpbWluZyB3YXMKKyAgICAgICAgYWZmZWN0ZWQgYnkgdGhlIHJvdXRpbmVzIHJ1bm5pbmcg
b24gdGhlIG1haW4gdGhyZWFkCisgICAgICAgIChKYXZhU2NyaXB0IGFuZCBzdWNoKS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NjY0CisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViVVJMTG9hZFRpbWluZy5oOgorICAgICAgICAqIHB1YmxpYy9XZWJVUkxM
b2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZGVyQ2xpZW50OjpkaWRG
aW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBzcmMvUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkRmluaXNoTG9hZGluZyk6Cisg
ICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHNyYy9X
ZWJVUkxMb2FkVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6
cmVjZWl2ZUhlYWRlcnNTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6
OnNldFJlY2VpdmVIZWFkZXJzU3RhcnQpOgorCiAyMDEwLTA5LTE0ICBZdXJ5IFNlbWlraGF0c2t5
ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xp
bmcuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRlckNsaWVu
dC5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaAppbmRleCBj
NzE2ZTVkLi43NjE0ZWEzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVS
TExvYWRlckNsaWVudC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMTG9hZGVy
Q2xpZW50LmgKQEAgLTY0LDcgKzY0LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGlu
dCBkYXRhTGVuZ3RoKSB7IH0KIAogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBsb2FkIGNvbXBsZXRl
cyBzdWNjZXNzZnVsbHkuCi0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoV2ViVVJM
TG9hZGVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoV2ViVVJMTG9h
ZGVyKiwgZG91YmxlIGZpbmlzaFRpbWUpIHsgfQorCisgICAgLy8gRklYTUU6IHJlbW92ZSB0aGlz
IG9uY2UgY2xpZW50cyBhcmUgdXBkYXRlZC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9h
ZGluZyhXZWJVUkxMb2FkZXIqIGxvYWRlcikgeyBkaWRGaW5pc2hMb2FkaW5nKGxvYWRlciwgMCk7
IH0KIAogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBsb2FkIGNvbXBsZXRlcyB3aXRoIGFuIGVycm9y
LgogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFdlYlVSTExvYWRlciosIGNvbnN0IFdlYlVSTEVy
cm9yJikgeyB9CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxl
LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDI3YmZl
N2YuLjgzZTAwMTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5k
bGUuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC03
NCw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KFdlYlVSTExvYWRlciosIGNvbnN0IFdlYlVSTFJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVEYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRh
TGVuZ3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVS
TExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkRmluaXNoTG9hZGluZyhXZWJVUkxMb2FkZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZGluZyhXZWJVUkxMb2FkZXIqLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEZhaWwoV2ViVVJMTG9hZGVyKiwgY29uc3QgV2ViVVJMRXJyb3ImKTsK
IAogICAgIGVudW0gQ29ubmVjdGlvblN0YXRlIHsKQEAgLTE4MiwxMyArMTgyLDEzIEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExv
YWRlciosIGNvbnN0IGNoYXIqCiAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0
YShtX293bmVyLCBkYXRhLCBkYXRhTGVuZ3RoKTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZUlu
dGVybmFsOjpkaWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciopCit2b2lkIFJlc291cmNlSGFu
ZGxlSW50ZXJuYWw6OmRpZEZpbmlzaExvYWRpbmcoV2ViVVJMTG9hZGVyKiwgZG91YmxlIGZpbmlz
aFRpbWUpCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKICAgICBpZiAobV9zdGF0ZSAhPSBDb25u
ZWN0aW9uU3RhdGVSZWNlaXZlZFJlc3BvbnNlICYmIG1fc3RhdGUgIT0gQ29ubmVjdGlvblN0YXRl
UmVjZWl2aW5nRGF0YSkKICAgICAgICAgQ1JBU0goKTsKICAgICBtX3N0YXRlID0gQ29ubmVjdGlv
blN0YXRlRmluaXNoZWRMb2FkaW5nOwotICAgIG1fY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKG1f
b3duZXIpOworICAgIG1fY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKG1fb3duZXIsIGZpbmlzaFRp
bWUpOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZEZhaWwoV2ViVVJMTG9h
ZGVyKiwgY29uc3QgV2ViVVJMRXJyb3ImIGVycm9yKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCA5NzFjMjkwLi44MzRkMzUyIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApAQCAtNTgsNiArNTgsNyBA
QAogI2luY2x1ZGUgIldlYlVSTFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5o
IgogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgog
CkBAIC0zMzYsNyArMzM3LDcgQEAgdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VJZCwgY29uc3QgV2UKIHZvaWQgV2ViRGV2
VG9vbHNBZ2VudEltcGw6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyByZXNvdXJjZUlk
KQogewogICAgIGlmIChJbnNwZWN0b3JDb250cm9sbGVyKiBpYyA9IGluc3BlY3RvckNvbnRyb2xs
ZXIoKSkKLSAgICAgICAgaWMtPmRpZEZpbmlzaExvYWRpbmcocmVzb3VyY2VJZCk7CisgICAgICAg
IGljLT5kaWRGaW5pc2hMb2FkaW5nKHJlc291cmNlSWQsIDApOwogfQogCiB2b2lkIFdlYkRldlRv
b2xzQWdlbnRJbXBsOjpkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlc291cmNlSWQsIGNv
bnN0IFdlYlVSTEVycm9yJiBlcnJvcikKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9n
IGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggOTM3MTUyMy4uMGU2Zjg5MyAxMDA2NDQKLS0t
IGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxMC0wOS0xNCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBQcm92aWRlIG5ldHdvcmstYmFzZWQgbG9hZCB0aW1pbmcuCisgICAgICAg
IEJlZm9yZSB0aGlzIGNoYW5nZSwgaW5zcGVjdG9yIHVzZWQgdGltZXJzIHRha2VuIGZyb20KKyAg
ICAgICAgd2l0aGluIFdlYkNvcmUgbm90aWZpY2F0aW9ucyAodGhhdCBhcmUgYnkgZGVmaW5pdGlv
bgorICAgICAgICBzeW5jaHJvbm91cyBhbmQgc2VyaWFsaXplZCkuIEFzIGEgcmVzdWx0LCB0aW1p
bmcgd2FzCisgICAgICAgIGFmZmVjdGVkIGJ5IHRoZSByb3V0aW5lcyBydW5uaW5nIG9uIHRoZSBt
YWluIHRocmVhZAorICAgICAgICAoSmF2YVNjcmlwdCBhbmQgc3VjaCkuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTY2NAorCisgICAgICAgICogd2Vi
a2l0L3dlYmtpdGRvd25sb2FkLmNwcDoKKyAgICAgICAgKERvd25sb2FkQ2xpZW50OjpkaWRGaW5p
c2hMb2FkaW5nKToKKwogMjAxMC0wOS0xMyAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXRkb3dubG9hZC5jcHAKaW5kZXggMjBjYWMyYi4uMWU0NTI1MCAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dl
YmtpdGRvd25sb2FkLmNwcApAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBEb3dubG9hZENsaWVudCA6
IHB1YmxpYyBOb25jb3B5YWJsZSwgcHVibGljIFJlc291cmNlSGFuZGxlQ2xpZW50IHsKIAogICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURh
dGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQpOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSk7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VF
cnJvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSop
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopOwpA
QCAtOTMwLDcgKzkzMCw3IEBAIHZvaWQgRG93bmxvYWRDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJl
c291cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0CiAgICAgd2Via2l0X2Rv
d25sb2FkX3JlY2VpdmVkX2RhdGEobV9kb3dubG9hZCwgZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9p
ZCBEb3dubG9hZENsaWVudDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2b2lk
IERvd25sb2FkQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91Ymxl
KQogewogICAgIHdlYmtpdF9kb3dubG9hZF9maW5pc2hlZF9sb2FkaW5nKG1fZG93bmxvYWQpOwog
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67660</attachid>
            <date>2010-09-15 02:48:06 -0700</date>
            <delta_ts>2010-09-15 03:05:59 -0700</delta_ts>
            <desc>[PATCH] More rebaselines.</desc>
            <filename>finish_time</filename>
            <type>text/plain</type>
            <size>37733</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
M2JjNTY0ZC4uNDRjMGQzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxMC0wOS0xNCAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92aWRlIG5ldHdvcmstYmFzZWQg
bG9hZCB0aW1pbmcuCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgaW5zcGVjdG9yIHVzZWQg
dGltZXJzIHRha2VuIGZyb20KKyAgICAgICAgd2l0aGluIFdlYkNvcmUgbm90aWZpY2F0aW9ucyAo
dGhhdCBhcmUgYnkgZGVmaW5pdGlvbgorICAgICAgICBzeW5jaHJvbm91cyBhbmQgc2VyaWFsaXpl
ZCkuIEFzIGEgcmVzdWx0LCB0aW1pbmcgd2FzCisgICAgICAgIGFmZmVjdGVkIGJ5IHRoZSByb3V0
aW5lcyBydW5uaW5nIG9uIHRoZSBtYWluIHRocmVhZAorICAgICAgICAoSmF2YVNjcmlwdCBhbmQg
c3VjaCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NTY2NAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZpbmlzaExvYWRpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlOjplbmRUaW1pbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZS5oOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpQaW5nTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkTm90aWZp
ZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hM
b2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oOgorICAgICAgICAqIGxvYWRl
ci9pY29uL0ljb25GZXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25GZXRjaGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeUZpbmlzaCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFRpbWluZzo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRUaW1pbmc6OlJlc291cmNlTG9hZFRpbWluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpZEZpbmlz
aExvYWRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlTWFu
YWdlcjo6ZG93bmxvYWRUaW1lckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRGF0
YVVybCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMu
bW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlv
bkRpZEZpbmlzaExvYWRpbmc6XSk6CisgICAgICAgIChXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJD
bGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQv
UU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBs
eUhhbmRsZXI6OmZpbmlzaCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRl
cjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25v
dXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyOjpkaWRGYWlsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dp
bi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6Om9uUmVxdWVzdENvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpmaWxlTG9hZFRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpjYW5jZWwpOgorCiAyMDEwLTA5LTE1ICBSZW5hdGEgSG9kb3ZhbiAgPHJlbmlAaW5mLnUtc3pl
Z2VkLmh1PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggOTBlZjM0NC4uMWVjMzBhNiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTk2Myw3ICs5NjMs
NyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdQogICAgICAgICAvLyBSZWRpcmVjdCBtYXkgaGF2
ZSBlbXB0eSBVUkwgYW5kIHdlJ2QgbGlrZSB0byBub3QgY3Jhc2ggd2l0aCBpbnZhbGlkIEhhc2hN
YXAgZW50cnkuCiAgICAgICAgIC8vIFNlZSBodHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVl
c3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0Lmh0bWwKICAgICAgICAgaWYgKCFyZXF1ZXN0LnVy
bCgpLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgcmVzb3VyY2UtPmVuZFRpbWluZygpOworICAg
ICAgICAgICAgcmVzb3VyY2UtPmVuZFRpbWluZygwKTsKICAgICAgICAgICAgIHJlc291cmNlLT51
cGRhdGVSZXNwb25zZShyZWRpcmVjdFJlc3BvbnNlKTsKIAogICAgICAgICAgICAgLy8gV2UgYWx3
YXlzIHN0b3JlIGxhc3QgcmVkaXJlY3QgYnkgdGhlIG9yaWdpbmFsIGlkIGtleS4gUmVzdCBvZiB0
aGUgcmVkaXJlY3RzIGFyZSBzdG9yZWQgd2l0aGluIHRoZSBsYXN0IG9uZS4KQEAgLTEwMjAsNyAr
MTAyMCw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5n
dGgodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQKICAgICAgICAgcmVzb3VyY2UtPnVwZGF0
ZVNjcmlwdE9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKK3ZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQogewogICAgIGlmICghZW5hYmxlZCgpKQogICAgICAg
ICByZXR1cm47CkBAIC0xMDMyLDcgKzEwMzIsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQogICAgIGlmICghcmVz
b3VyY2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlc291cmNlLT5lbmRUaW1pbmcoKTsKKyAg
ICByZXNvdXJjZS0+ZW5kVGltaW5nKGZpbmlzaFRpbWUpOwogCiAgICAgLy8gTm8gbmVlZCB0byBt
dXRlIHRoaXMgZXZlbnQgZm9yIG1haW4gcmVzb3VyY2Ugc2luY2UgaXQgaGFwcGVucyBhZnRlciBk
aWQgY29tbWl0IGxvYWQuCiAgICAgaWYgKG1fZnJvbnRlbmQpCkBAIC0xMDU3LDcgKzEwNTcsNyBA
QCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29uc3QgUmVzb3VyYwogICAgICAgICByZXR1cm47CiAKICAgICByZXNvdXJj
ZS0+bWFya0ZhaWxlZCgpOwotICAgIHJlc291cmNlLT5lbmRUaW1pbmcoKTsKKyAgICByZXNvdXJj
ZS0+ZW5kVGltaW5nKDApOwogCiAgICAgLy8gTm8gbmVlZCB0byBtdXRlIHRoaXMgZXZlbnQgZm9y
IG1haW4gcmVzb3VyY2Ugc2luY2UgaXQgaGFwcGVucyBhZnRlciBkaWQgY29tbWl0IGxvYWQuCiAg
ICAgaWYgKG1fZnJvbnRlbmQpCkBAIC0xNDkyLDcgKzE0OTIsNyBAQCB2b2lkIEluc3BlY3RvckNv
bnRyb2xsZXI6OmRpZENsb3NlV2ViU29ja2V0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKICAg
ICBpZiAoIXJlc291cmNlKQogICAgICAgICByZXR1cm47CiAKLSAgICByZXNvdXJjZS0+ZW5kVGlt
aW5nKCk7CisgICAgcmVzb3VyY2UtPmVuZFRpbWluZygwKTsKICAgICBpZiAobV9mcm9udGVuZCkK
ICAgICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsK
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCAwNzljZjU1Li4z
NDNlOGUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0xNjUs
NyArMTY1LDcgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9pZCBkaWRS
ZWNlaXZlQ29udGVudExlbmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGhS
ZWNlaXZlZCk7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRp
Zmllcik7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZvaWQgZGlkRmFpbExvYWRpbmcodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgdm9pZCByZXNvdXJj
ZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBTY3JpcHRTdHJpbmcmIHNvdXJjZVN0cmluZywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0
cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpOwogICAgIHZvaWQgc2NyaXB0
SW1wb3J0ZWQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0
cmluZyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5j
cHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKaW5kZXggOWJjMDFj
OC4uMmQyNGM0ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2UuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcApAQCAt
NDU1LDkgKzQ1NSw5IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2U6OnN0YXJ0VGltaW5nKCkKICAg
ICBtX2NoYW5nZXMuc2V0KFRpbWluZ0NoYW5nZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUmVzb3Vy
Y2U6OmVuZFRpbWluZygpCit2b2lkIEluc3BlY3RvclJlc291cmNlOjplbmRUaW1pbmcoZG91Ymxl
IGFjdHVhbEVuZFRpbWUpCiB7Ci0gICAgbV9lbmRUaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICBt
X2VuZFRpbWUgPSBhY3R1YWxFbmRUaW1lID8gYWN0dWFsRW5kVGltZSA6IGN1cnJlbnRUaW1lKCk7
CiAgICAgbV9maW5pc2hlZCA9IHRydWU7CiAgICAgbV9jaGFuZ2VzLnNldChUaW1pbmdDaGFuZ2Up
OwogICAgIG1fY2hhbmdlcy5zZXQoQ29tcGxldGlvbkNoYW5nZSk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2UuaAppbmRleCAzZmQ1YTY5Li44YTIwN2IwIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlLmgKQEAgLTExNyw3ICsxMTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZvaWQgc3RhcnRUaW1pbmcoKTsKICAgICAgICAgdm9pZCBtYXJrTG9hZEV2
ZW50VGltZSgpOwogICAgICAgICB2b2lkIG1hcmtET01Db250ZW50RXZlbnRUaW1lKCk7Ci0gICAg
ICAgIHZvaWQgZW5kVGltaW5nKCk7CisgICAgICAgIHZvaWQgZW5kVGltaW5nKGRvdWJsZSBhY3R1
YWxFbmRUaW1lKTsKIAogICAgICAgICB2b2lkIG1hcmtGYWlsZWQoKTsKICAgICAgICAgdm9pZCBh
ZGRMZW5ndGgoaW50IGxlbmd0aFJlY2VpdmVkKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVy
L1BpbmdMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaAppbmRleCAxZDhhMmQ4
Li5lMjZhOWM5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKKysrIGIv
V2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5oCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKSB7IGRlbGV0ZSB0aGlzOyB9CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShS
ZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQpIHsgZGVsZXRlIHRoaXM7IH0KLSAgICB2
b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKSB7IGRlbGV0ZSB0aGlzOyB9Cisg
ICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKSB7IGRlbGV0
ZSB0aGlzOyB9CiAgICAgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYpIHsgZGVsZXRlIHRoaXM7IH0KIAogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
bV9oYW5kbGU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmll
ci5jcHAgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAKaW5kZXggZDIy
NWNiOC4uYzQzYTFkYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90
aWZpZXIuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcApA
QCAtODIsMTEgKzgyLDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZFJlY2VpdmVE
YXRhKFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIGNvbnN0IGNoYXIqIGRhCiAgICAgZGlzcGF0Y2hE
aWRSZWNlaXZlQ29udGVudExlbmd0aChsb2FkZXItPmRvY3VtZW50TG9hZGVyKCksIGxvYWRlci0+
aWRlbnRpZmllcigpLCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkTm90
aWZpZXI6OmRpZEZpbmlzaExvYWQoUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKK3ZvaWQgUmVzb3Vy
Y2VMb2FkTm90aWZpZXI6OmRpZEZpbmlzaExvYWQoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgZG91
YmxlIGZpbmlzaFRpbWUpCiB7ICAgIAogICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFn
ZSgpKQogICAgICAgICBwYWdlLT5wcm9ncmVzcygpLT5jb21wbGV0ZVByb2dyZXNzKGxvYWRlci0+
aWRlbnRpZmllcigpKTsKLSAgICBkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcobG9hZGVyLT5kb2N1
bWVudExvYWRlcigpLCBsb2FkZXItPmlkZW50aWZpZXIoKSk7CisgICAgZGlzcGF0Y2hEaWRGaW5p
c2hMb2FkaW5nKGxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKSwgbG9hZGVyLT5pZGVudGlmaWVyKCks
IGZpbmlzaFRpbWUpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRGYWlsVG9M
b2FkKFJlc291cmNlTG9hZGVyKiBsb2FkZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQpA
QCAtMTUwLDEzICsxNTAsMTMgQEAgdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hE
aWRSZWNlaXZlQ29udGVudExlbmd0aChEb2N1bWVudExvYWRlciogbG9hZGUKICNlbmRpZgogfQog
Ci12b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoRG9j
dW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQordm9pZCBSZXNv
dXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKERvY3VtZW50TG9hZGVy
KiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpCiB7
CiAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZEZpbmlzaExvYWRp
bmcobG9hZGVyLCBpZGVudGlmaWVyKTsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYg
KFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmluc3BlY3RvckNv
bnRyb2xsZXIoKS0+ZGlkRmluaXNoTG9hZGluZyhpZGVudGlmaWVyKTsKKyAgICAgICAgcGFnZS0+
aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaWRGaW5pc2hMb2FkaW5nKGlkZW50aWZpZXIsIGZpbmlz
aFRpbWUpOwogI2VuZGlmCiB9CiAKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIFJlc291cmNlTG9h
ZE5vdGlmaWVyOjpzZW5kUmVtYWluaW5nRGVsZWdhdGVNZXNzYWdlcyhEb2N1bWVudExvYWRlciog
bG9hZGVyLAogICAgICAgICBkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGxvYWRlciwg
aWRlbnRpZmllciwgbGVuZ3RoKTsKIAogICAgIGlmIChlcnJvci5pc051bGwoKSkKLSAgICAgICAg
ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKGxvYWRlciwgaWRlbnRpZmllcik7CisgICAgICAgIGRp
c3BhdGNoRGlkRmluaXNoTG9hZGluZyhsb2FkZXIsIGlkZW50aWZpZXIsIDApOwogICAgIGVsc2UK
ICAgICAgICAgbV9mcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZEZhaWxMb2Fk
aW5nKGxvYWRlciwgaWRlbnRpZmllciwgZXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaCBiL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZE5vdGlmaWVyLmgKaW5kZXggYjBhNWNiZi4uNzU4ZTQxNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJj
ZUxvYWROb3RpZmllci5oCkBAIC01MywxNCArNTMsMTQgQEAgcHVibGljOgogICAgIHZvaWQgd2ls
bFNlbmRSZXF1ZXN0KFJlc291cmNlTG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUxvYWRlciosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBs
ZW5ndGhSZWNlaXZlZCk7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkKFJlc291cmNlTG9hZGVyKik7
CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkKFJlc291cmNlTG9hZGVyKiwgZG91YmxlIGZpbmlzaFRp
bWUpOwogICAgIHZvaWQgZGlkRmFpbFRvTG9hZChSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291
cmNlRXJyb3ImKTsKIAogICAgIHZvaWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3Qo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYpOwogICAgIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRS
ZWNlaXZlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNv
bnRlbnRMZW5ndGgoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGlu
dCBsZW5ndGgpOwotICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKERvY3VtZW50TG9h
ZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpc3BhdGNoRGlkRmlu
aXNoTG9hZGluZyhEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91
YmxlIGZpbmlzaFRpbWUpOwogCiAgICAgdm9pZCBzZW5kUmVtYWluaW5nRGVsZWdhdGVNZXNzYWdl
cyhEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYsIGludCBsZW5ndGgsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGUxZDMzMWUuLjJhMjNjOTQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNp
bmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIu
aCIKQEAgLTI5OCw3ICsyOTksNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2Fk
aW5nT25lUGFydCgpCiAgICAgICAgIHJldHVybjsKICAgICBtX2NhbGxlZERpZEZpbmlzaExvYWQg
PSB0cnVlOwogICAgIGlmIChtX3NlbmRSZXNvdXJjZUxvYWRDYWxsYmFja3MpCi0gICAgICAgIGZy
YW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmRpZEZpbmlzaExvYWQodGhpcyk7CisgICAgICAgIGZy
YW1lTG9hZGVyKCktPm5vdGlmaWVyKCktPmRpZEZpbmlzaExvYWQodGhpcywgMCk7CiB9CiAKIHZv
aWQgUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCkBA
IC00NDAsNyArNDQxLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3QKICNlbmRpZgogfQogCi12
b2lkIFJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKikKK3Zv
aWQgUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3Vi
bGUpCiB7CiAgICAgZGlkRmluaXNoTG9hZGluZygpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaCBiL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgK
aW5kZXggOTUxM2ZkYi4uYjgzMjRhZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCkBAIC05OSw3
ICs5OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciosIGludCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRh
dGEsIGludCBsZW5ndGgpIHsgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKGRhdGEsIGxlbmd0aCk7
IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUq
KTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUq
LCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
d2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90
U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggOTI3MjNjNC4uZDg5ZjgxOSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAor
KysgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBA
IC02MDIsMTEgKzYwMiwxMSBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2
ZURhdGEoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgY2hhciogZAogICAgIG1fbG9hZGVk
U2l6ZSArPSBsZW5ndGg7CiB9CiAKLXZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRGaW5p
c2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCit2b2lkIEFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBkb3VibGUgZmlu
aXNoVGltZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlmIChQYWdlKiBwYWdlID0g
bV9mcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRp
ZEZpbmlzaExvYWRpbmcobV9jdXJyZW50UmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgcGFn
ZS0+aW5zcGVjdG9yQ29udHJvbGxlcigpLT5kaWRGaW5pc2hMb2FkaW5nKG1fY3VycmVudFJlc291
cmNlSWRlbnRpZmllciwgZmluaXNoVGltZSk7CiAjZW5kaWYKIAogICAgIGlmIChoYW5kbGUgPT0g
bV9tYW5pZmVzdEhhbmRsZSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZUdyb3VwLmggYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlR3JvdXAuaAppbmRleCBiNWNkZjdiLi45OWFiNzFhIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAorKysgYi9XZWJDb3Jl
L2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaApAQCAtMTEzLDcgKzExMyw3
IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQgbGVu
Z3RoLCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKFJlc291cmNlSGFuZGxlKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmco
UmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKICAgICB2b2lk
IGRpZFJlY2VpdmVNYW5pZmVzdFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwIGIvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKaW5kZXggYjMzMTIyYS4uZjZiODBmYSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKKysrIGIvV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIEljb25G
ZXRjaGVyOjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBjaGFy
KiBkYXRhLCBpbnQgbAogICAgIG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0uYnVmZmVyKCktPmFw
cGVuZChkYXRhLCBsZW5ndGgpOwogfQogCi12b2lkIEljb25GZXRjaGVyOjpkaWRGaW5pc2hMb2Fk
aW5nKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCit2b2lkIEljb25GZXRjaGVyOjpkaWRGaW5pc2hM
b2FkaW5nKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGRvdWJsZSkKIHsKICAgICBBU1NFUlRfVU5V
U0VEKGhhbmRsZSwgbV9oYW5kbGUgPT0gaGFuZGxlKTsKICAgICAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuaCBiL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZl
dGNoZXIuaAppbmRleCA1MzI3NjkzLi4zODdlMWMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRl
ci9pY29uL0ljb25GZXRjaGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hl
ci5oCkBAIC02MiwxMiArNjIsMTIgQEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IGNoYXIqLCBpbnQsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAg
dmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9y
Jik7Ci0gICAgCisKICAgICBGcmFtZSogbV9mcmFtZTsKICAgICBJY29uRmV0Y2hlckNsaWVudCog
bV9jbGllbnQ7Ci0gICAgCisKICAgICB1bnNpZ25lZCBtX2N1cnJlbnRFbnRyeTsKICAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IG1faGFuZGxlOwogICAgIFZlY3RvcjxJY29uTGlua0VudHJ5PiBt
X2VudHJpZXM7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvV2ViS2l0V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCAwNjFmYTg1Li40
ZTU3MTkzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9X
ZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTQ0LDcgKzQ0LDcg
QEAgY2xhc3MgU3RyZWFtaW5nQ2xpZW50IDogcHVibGljIE5vbmNvcHlhYmxlLCBwdWJsaWMgUmVz
b3VyY2VIYW5kbGVDbGllbnQgewogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0
KFJlc291cmNlSGFuZGxlKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQpOwotICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJs
ZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2Fz
QmxvY2tlZChSZXNvdXJjZUhhbmRsZSopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hv
d1VSTChSZXNvdXJjZUhhbmRsZSopOwpAQCAtNzY2LDcgKzc2Niw3IEBAIHZvaWQgU3RyZWFtaW5n
Q2xpZW50OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBjaGFy
KiBkYXRhLCBpCiAgICAgICAgIEdTVF9FTEVNRU5UX0VSUk9SKG1fc3JjLCBDT1JFLCBGQUlMRUQs
ICgwKSwgKDApKTsKIH0KIAotdm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmco
UmVzb3VyY2VIYW5kbGUqKQordm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmco
UmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJp
diA9IG1fc3JjLT5wcml2OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
QmxvYlJlc291cmNlSGFuZGxlLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVz
b3VyY2VIYW5kbGUuY3BwCmluZGV4IDg3NjdiNTUuLjQ4YWMyYzAgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC04MCw3ICs4MCw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VI
YW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IC8qbGVuZ3Ro
UmVjZWl2ZWQqLyk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VI
YW5kbGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRs
ZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVz
b3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKIHByaXZhdGU6CkBAIC0xMTYs
NyArMTE2LDcgQEAgdm9pZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2
ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwKIHsKIH0KIAotdm9pZCBCbG9iUmVz
b3VyY2VTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSop
Cit2b2lkIEJsb2JSZXNvdXJjZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJl
c291cmNlSGFuZGxlKiwgZG91YmxlKQogewogfQogCkBAIC01ODEsNyArNTgxLDcgQEAgdm9pZCBC
bG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeUZhaWwoaW50IGVycm9yQ29kZSkKIHZvaWQgQmxvYlJl
c291cmNlSGFuZGxlOjpub3RpZnlGaW5pc2goKQogewogICAgIGlmIChjbGllbnQoKSkKLSAgICAg
ICAgY2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcyk7CisgICAgICAgIGNsaWVudCgpLT5k
aWRGaW5pc2hMb2FkaW5nKHRoaXMsIDApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQu
aCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCmluZGV4
IDk3YzBmNTQuLmQ5MzUwZWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUNsaWVudC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZUNsaWVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFJlc291cmNlSGFu
ZGxlQ2xpZW50X2gKICNkZWZpbmUgUmVzb3VyY2VIYW5kbGVDbGllbnRfaAogCisjaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAKQEAgLTcyLDcgKzczLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgLypsZW5ndGhS
ZWNlaXZlZCovKSB7IH0KICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRh
ZGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQpIHsgfQotICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopIHsgfQorICAgICAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZp
bmlzaFRpbWUqLykgeyB9CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFu
ZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgd2Fz
QmxvY2tlZChSZXNvdXJjZUhhbmRsZSopIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90
U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopIHsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDc2MzU1MWYuLjEzNDEyYzEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNG
TmV0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
Rk5ldC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3Bv
bnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQs
IGludCAvKmxlbmd0aFJlY2VpdmVkKi8pOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKFJlc291cmNlSGFuZGxlKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmco
UmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAg
Ym9vbCBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHM7CkBAIC0yNDEsNyArMjQxLDcgQEAgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKENGVVJMQ29ubmVjdGlvblJlZiBjb25uLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQogICAgIExPRyhOZXR3b3JrLCAiQ0ZOZXQgLSBkaWRGaW5pc2hMb2FkaW5nKGNvbm49
JXAsIGhhbmRsZT0lcCkgKCVzKSIsIGNvbm4sIGhhbmRsZSwgaGFuZGxlLT5maXJzdFJlcXVlc3Qo
KS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIGlmIChoYW5kbGUtPmNsaWVu
dCgpKQotICAgICAgICBoYW5kbGUtPmNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSk7
CisgICAgICAgIGhhbmRsZS0+Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLCAwKTsK
IH0KIAogdm9pZCBkaWRGYWlsKENGVVJMQ29ubmVjdGlvblJlZiBjb25uLCBDRkVycm9yUmVmIGVy
cm9yLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKSAKQEAgLTc0MSw3ICs3NDEsNyBAQCB2b2lkIFdl
YkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBjaGFyKgogICAgIENGRGF0YUFwcGVuZEJ5dGVzKG1fZGF0YS5nZXQoKSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBVSW50OCo+KGRhdGEpLCBsZW5ndGgpOwogfQogCi12b2lkIFdl
YkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhh
bmRsZSopCit2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkRmluaXNoTG9h
ZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkKIHsKICAgICBtX2lzRG9uZSA9IHRydWU7CiB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZUN1cmwuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVD
dXJsLmNwcAppbmRleCA4YTMyMmI0Li4wNTJhYzU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTQ3LDcgKzQ3LDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgbGVuZ3Ro
UmVjZWl2ZWQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFu
ZGxlKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUq
LCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgUmVzb3VyY2VSZXNwb25z
ZSByZXNvdXJjZVJlc3BvbnNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZTsgfQpAQCAtNzQs
NyArNzQsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLAogICAgIG1fZGF0YS5hcHBlbmQoZGF0
YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlz
aExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6
OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdl
ci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFn
ZXIuY3BwCmluZGV4IDhkMmExYmYuLmE0ZDcxZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcApAQCAtMzk3LDcg
KzM5Nyw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpkb3dubG9hZFRpbWVyQ2FsbGJh
Y2soVGltZXI8UmVzb3VyY2VIYW5kbGVNYW5hZ2VyPioKICAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgaWYgKGQtPmNsaWVudCgpKQotICAgICAgICAgICAgICAgIGQtPmNsaWVudCgpLT5kaWRG
aW5pc2hMb2FkaW5nKGpvYik7CisgICAgICAgICAgICAgICAgZC0+Y2xpZW50KCktPmRpZEZpbmlz
aExvYWRpbmcoam9iLCAwKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGNoYXIqIHVy
bCA9IDA7CiAgICAgICAgICAgICBjdXJsX2Vhc3lfZ2V0aW5mbyhkLT5tX2hhbmRsZSwgQ1VSTElO
Rk9fRUZGRUNUSVZFX1VSTCwgJnVybCk7CkBAIC02MjQsNyArNjI0LDcgQEAgc3RhdGljIHZvaWQg
cGFyc2VEYXRhVXJsKFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgICAgICAgICBjbGllbnQt
PmRpZFJlY2VpdmVEYXRhKGhhbmRsZSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0
YS5jaGFyYWN0ZXJzKCkpLCBkYXRhLmxlbmd0aCgpICogc2l6ZW9mKFVDaGFyKSwgMCk7CiAgICAg
fQogCi0gICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSk7CisgICAgY2xpZW50LT5k
aWRGaW5pc2hMb2FkaW5nKGhhbmRsZSwgMCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVNYW5h
Z2VyOjpkaXNwYXRjaFN5bmNocm9ub3VzSm9iKFJlc291cmNlSGFuZGxlKiBqb2IpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCA2
ZGI5MzUwLi5kYWVjMzY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0KQEAgLTExNSw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
Jik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29u
c3QgY2hhciosIGludCwgaW50IC8qbGVuZ3RoUmVjZWl2ZWQqLyk7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVy
cm9yJik7CiAjaWYgVVNFKFBST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICB2aXJ0
dWFsIGJvb2wgY2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShSZXNvdXJjZUhh
bmRsZSosIGNvbnN0IFByb3RlY3Rpb25TcGFjZSYpOwpAQCAtOTE3LDcgKzkxNyw3IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJiBjaGFsbGVuCiAgICAgaWYgKCFSZXNvdXJjZUhhbmRsZTo6ZGlkU2VuZEJvZHlE
YXRhRGVsZWdhdGVFeGlzdHMoKSkKICAgICAgICAgZGlzYXNzb2NpYXRlU3RyZWFtV2l0aFJlc291
cmNlSGFuZGxlKFttX2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KCkgSFRUUEJv
ZHlTdHJlYW1dKTsKIAotICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyht
X2hhbmRsZSk7CisgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKG1faGFu
ZGxlLCAwKTsKIH0KIAogLSAodm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25u
ZWN0aW9uIGRpZEZhaWxXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgpAQCAtMTA1OSw3ICsxMDU5
LDcgQEAgdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVEYXRh
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhcioKICAgICBbbV9kYXRhIGFwcGVuZEJ5dGVzOmRh
dGEgbGVuZ3RoOmxlbmd0aF07CiB9CiAKLXZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xp
ZW50OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKikKK3ZvaWQgV2ViQ29yZVN5bmNo
cm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91
YmxlKQogewogICAgIG1faXNEb25lID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCmluZGV4IDI4OTgzMDMuLjMw
ZjcwMTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1Jl
cGx5SGFuZGxlci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3Jr
UmVwbHlIYW5kbGVyLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFFOZXR3b3JrQ29v
a2llPgogI2luY2x1ZGUgPHF3ZWJmcmFtZS5oPgogI2luY2x1ZGUgPHF3ZWJwYWdlLmg+CisKICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKICNpbmNsdWRlIDxRRGVidWc+CkBAIC0yNjIs
NyArMjYzLDcgQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6ZmluaXNoKCkKICAgICAgICAg
cmVzZXRTdGF0ZSgpOwogICAgICAgICBzdGFydCgpOwogICAgIH0gZWxzZSBpZiAoIW1fcmVwbHkt
PmVycm9yKCkgfHwgaWdub3JlSHR0cEVycm9yKG1fcmVwbHksIG1fcmVzcG9uc2VEYXRhU2VudCkp
IHsKLSAgICAgICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKG1fcmVzb3VyY2VIYW5kbGUpOwor
ICAgICAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcobV9yZXNvdXJjZUhhbmRsZSwgMCk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgUVVybCB1cmwgPSBtX3JlcGx5LT51cmwoKTsKICAgICAgICAg
aW50IGh0dHBTdGF0dXNDb2RlID0gbV9yZXBseS0+YXR0cmlidXRlKFFOZXR3b3JrUmVxdWVzdDo6
SHR0cFN0YXR1c0NvZGVBdHRyaWJ1dGUpLnRvSW50KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKaW5kZXggOGEyNGQwZi4uYTVhYzRjMyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNw
cApAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIq
LCBpbnQsIGludCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExv
YWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgdmlydHVhbCB2
b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKICAg
ICBSZXNvdXJjZVJlc3BvbnNlIHJlc291cmNlUmVzcG9uc2UoKSBjb25zdCB7IHJldHVybiBtX3Jl
c3BvbnNlOyB9CkBAIC05MCw3ICs5MCw3IEBAIHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVy
OjpkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsCiAgICAg
bV9kYXRhLmFwcGVuZChkYXRhLCBsZW5ndGgpOwogfQogCi12b2lkIFdlYkNvcmVTeW5jaHJvbm91
c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2b2lkIFdlYkNvcmVT
eW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJs
ZSkKIHsKICAgICBtX2V2ZW50TG9vcC5leGl0KCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCAxMjQ2YzIyLi4w
MDA5ZTM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlSGFuZGxlU291cC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNl
UmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKik7CisgICAgdmlydHVhbCB2b2lk
IGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8p
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYpOwogCiAgICAgdm9pZCBydW4oKTsKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIFdl
YkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBjaGFyKiBkYXRhLAogICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKIH0KIAot
dm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VI
YW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmco
UmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiAgICAgZ19tYWluX2xvb3BfcXVpdChtX21haW5M
b29wKTsKICAgICBtX2ZpbmlzaGVkID0gdHJ1ZTsKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIFdl
YkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSop
CiB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmFpbChSZXNvdXJjZUhhbmRsZSog
aGFuZGxlLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBtX2Vycm9yID0gZXJy
b3I7Ci0gICAgZGlkRmluaXNoTG9hZGluZyhoYW5kbGUpOworICAgIGRpZEZpbmlzaExvYWRpbmco
aGFuZGxlLCAwKTsKIH0KIAogdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OnJ1bigpCkBA
IC0zMzYsNyArMzM2LDcgQEAgc3RhdGljIHZvaWQgZmluaXNoZWRDYWxsYmFjayhTb3VwU2Vzc2lv
biAqc2Vzc2lvbiwgU291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGEKICAgICAgICAgICAgIGNs
aWVudC0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLmdldCgpLCBtc2ctPnJlc3BvbnNlX2JvZHktPmRh
dGEsIG1zZy0+cmVzcG9uc2VfYm9keS0+bGVuZ3RoLCB0cnVlKTsKICAgICB9CiAKLSAgICBjbGll
bnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLmdldCgpKTsKKyAgICBjbGllbnQtPmRpZEZpbmlz
aExvYWRpbmcoaGFuZGxlLmdldCgpLCAwKTsKIH0KIAogLy8gcGFyc2VEYXRhVXJsKCkgaXMgdGFr
ZW4gZnJvbSB0aGUgQ1VSTCBodHRwIGJhY2tlbmQuCkBAIC00MTUsNyArNDE1LDcgQEAgc3RhdGlj
IGdib29sZWFuIHBhcnNlRGF0YVVybChncG9pbnRlciBjYWxsYmFja0RhdGEpCiAgICAgaWYgKGQt
Pm1fY2FuY2VsbGVkIHx8ICFoYW5kbGUtPmNsaWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlKTsKKyAgICBjbGllbnQtPmRp
ZEZpbmlzaExvYWRpbmcoaGFuZGxlLCAwKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTcx
Nyw3ICs3MTcsNyBAQCBzdGF0aWMgdm9pZCBjbG9zZUNhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwg
R0FzeW5jUmVzdWx0KiByZXMsIGdwb2ludGVyKQogICAgIGlmIChkLT5tX2NhbmNlbGxlZCB8fCAh
Y2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmco
aGFuZGxlLmdldCgpKTsKKyAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLmdldCgp
LCAwKTsKIH0KIAogc3RhdGljIHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0Fz
eW5jUmVzdWx0KiByZXMsIGdwb2ludGVyKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAppbmRleCA2MDBmOGNhLi44MzJhOGUyIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNw
cApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlV2luLmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJXZWJDb3JlSW5zdGFuY2VIYW5kbGUuaCIKKwogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVk
ZSA8d2luaW5ldC5oPgpAQCAtMTQ0LDcgKzE0NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxl
KiwgY29uc3QgY2hhciosIGludCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgIHZpcnR1YWwgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNl
RXJyb3ImKTsKIAogcHJpdmF0ZToKQEAgLTE3MCw3ICsxNzEsNyBAQCB2b2lkIFdlYkNvcmVTeW5j
aHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFy
KiBkYXRhLAogICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBXZWJD
b3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQor
dm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VI
YW5kbGUqLCBkb3VibGUpCiB7CiB9CiAKQEAgLTM0OSw3ICszNTAsNyBAQCB2b2lkIFJlc291cmNl
SGFuZGxlOjpvblJlcXVlc3RDb21wbGV0ZShMUEFSQU0gbFBhcmFtKQogICAgICAgICBJbnRlcm5l
dENsb3NlSGFuZGxlKGQtPm1fc2Vjb25kYXJ5SGFuZGxlKTsKICAgICBJbnRlcm5ldENsb3NlSGFu
ZGxlKGQtPm1fcmVzb3VyY2VIYW5kbGUpOwogCi0gICAgY2xpZW50KCktPmRpZEZpbmlzaExvYWRp
bmcodGhpcyk7CisgICAgY2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcywgMCk7CiAgICAg
ZGVsZXRlIHRoaXM7CiB9CiAKQEAgLTUxMSw3ICs1MTIsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpmaWxlTG9hZFRpbWVyKFRpbWVyPFJlc291cmNlSGFuZGxlPiopCiAKICAgICBDbG9zZUhhbmRs
ZShmaWxlSGFuZGxlKTsKIAotICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMpOwor
ICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMsIDApOwogfQogCiB2b2lkIFJlc291
cmNlSGFuZGxlOjpjYW5jZWwoKQpAQCAtNTIxLDcgKzUyMiw3IEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OmNhbmNlbCgpCiAgICAgZWxzZQogICAgICAgICBkLT5tX2ZpbGVMb2FkVGltZXIuc3RvcCgp
OwogCi0gICAgY2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcyk7IAorICAgIGNsaWVudCgp
LT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMsIDApOyAKIAogICAgIGlmICghZC0+bV9yZXNvdXJjZUhh
bmRsZSkKICAgICAgICAgLy8gQXN5bmMgbG9hZCBjYW5jZWxlZCBiZWZvcmUgd2UgaGF2ZSBhIGhh
bmRsZSAtLSBtYXJrIG91cnNlbHZlcyBhcyBpbiBlcnJvciwgdG8gYmUgZGVsZXRlZCBsYXRlci4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGIyYjkyMTQuLjkxZDg5NWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI2IEBACisyMDEwLTA5LTE0ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJ
bnNwZWN0b3I6IFByb3ZpZGUgbmV0d29yay1iYXNlZCBsb2FkIHRpbWluZy4KKyAgICAgICAgQmVm
b3JlIHRoaXMgY2hhbmdlLCBpbnNwZWN0b3IgdXNlZCB0aW1lcnMgdGFrZW4gZnJvbQorICAgICAg
ICB3aXRoaW4gV2ViQ29yZSBub3RpZmljYXRpb25zICh0aGF0IGFyZSBieSBkZWZpbml0aW9uCisg
ICAgICAgIHN5bmNocm9ub3VzIGFuZCBzZXJpYWxpemVkKS4gQXMgYSByZXN1bHQsIHRpbWluZyB3
YXMKKyAgICAgICAgYWZmZWN0ZWQgYnkgdGhlIHJvdXRpbmVzIHJ1bm5pbmcgb24gdGhlIG1haW4g
dGhyZWFkCisgICAgICAgIChKYXZhU2NyaXB0IGFuZCBzdWNoKS4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1NjY0CisKKyAgICAgICAgKiBwdWJsaWMv
V2ViVVJMTG9hZFRpbWluZy5oOgorICAgICAgICAqIHB1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5n
KToKKyAgICAgICAgKiBzcmMvUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogc3Jj
L1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNB
Z2VudEltcGw6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHNyYy9XZWJVUkxMb2FkVGlt
aW5nLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6cmVjZWl2ZUhlYWRl
cnNTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnNldFJlY2VpdmVI
ZWFkZXJzU3RhcnQpOgorCiAyMDEwLTA5LTE0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjc1MDMu
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRlckNsaWVudC5o
IGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaAppbmRleCBjNzE2
ZTVkLi43NjE0ZWEzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExv
YWRlckNsaWVudC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMTG9hZGVyQ2xp
ZW50LmgKQEAgLTY0LDcgKzY0LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBk
YXRhTGVuZ3RoKSB7IH0KIAogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBsb2FkIGNvbXBsZXRlcyBz
dWNjZXNzZnVsbHkuCi0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoV2ViVVJMTG9h
ZGVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoV2ViVVJMTG9hZGVy
KiwgZG91YmxlIGZpbmlzaFRpbWUpIHsgfQorCisgICAgLy8gRklYTUU6IHJlbW92ZSB0aGlzIG9u
Y2UgY2xpZW50cyBhcmUgdXBkYXRlZC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGlu
ZyhXZWJVUkxMb2FkZXIqIGxvYWRlcikgeyBkaWRGaW5pc2hMb2FkaW5nKGxvYWRlciwgMCk7IH0K
IAogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBsb2FkIGNvbXBsZXRlcyB3aXRoIGFuIGVycm9yLgog
ICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFdlYlVSTExvYWRlciosIGNvbnN0IFdlYlVSTEVycm9y
JikgeyB9CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNw
cCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDI3YmZlN2Yu
LjgzZTAwMTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUu
Y3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC03NCw3
ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdl
YlVSTExvYWRlciosIGNvbnN0IFdlYlVSTFJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVEYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVu
Z3RoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExv
YWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZGluZyhXZWJVUkxMb2FkZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoTG9hZGluZyhXZWJVUkxMb2FkZXIqLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgdmly
dHVhbCB2b2lkIGRpZEZhaWwoV2ViVVJMTG9hZGVyKiwgY29uc3QgV2ViVVJMRXJyb3ImKTsKIAog
ICAgIGVudW0gQ29ubmVjdGlvblN0YXRlIHsKQEAgLTE4MiwxMyArMTgyLDEzIEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbDo6ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExvYWRl
ciosIGNvbnN0IGNoYXIqCiAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YSht
X293bmVyLCBkYXRhLCBkYXRhTGVuZ3RoKTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZUludGVy
bmFsOjpkaWRGaW5pc2hMb2FkaW5nKFdlYlVSTExvYWRlciopCit2b2lkIFJlc291cmNlSGFuZGxl
SW50ZXJuYWw6OmRpZEZpbmlzaExvYWRpbmcoV2ViVVJMTG9hZGVyKiwgZG91YmxlIGZpbmlzaFRp
bWUpCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKICAgICBpZiAobV9zdGF0ZSAhPSBDb25uZWN0
aW9uU3RhdGVSZWNlaXZlZFJlc3BvbnNlICYmIG1fc3RhdGUgIT0gQ29ubmVjdGlvblN0YXRlUmVj
ZWl2aW5nRGF0YSkKICAgICAgICAgQ1JBU0goKTsKICAgICBtX3N0YXRlID0gQ29ubmVjdGlvblN0
YXRlRmluaXNoZWRMb2FkaW5nOwotICAgIG1fY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKG1fb3du
ZXIpOworICAgIG1fY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKG1fb3duZXIsIGZpbmlzaFRpbWUp
OwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZEZhaWwoV2ViVVJMTG9hZGVy
KiwgY29uc3QgV2ViVVJMRXJyb3ImIGVycm9yKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRl
dlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCA5NzFjMjkwLi44MzRkMzUyIDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApAQCAtNTgsNiArNTgsNyBAQAog
I2luY2x1ZGUgIldlYlVSTFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgog
I2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCkBA
IC0zMzYsNyArMzM3LDcgQEAgdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VJZCwgY29uc3QgV2UKIHZvaWQgV2ViRGV2VG9v
bHNBZ2VudEltcGw6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyByZXNvdXJjZUlkKQog
ewogICAgIGlmIChJbnNwZWN0b3JDb250cm9sbGVyKiBpYyA9IGluc3BlY3RvckNvbnRyb2xsZXIo
KSkKLSAgICAgICAgaWMtPmRpZEZpbmlzaExvYWRpbmcocmVzb3VyY2VJZCk7CisgICAgICAgIGlj
LT5kaWRGaW5pc2hMb2FkaW5nKHJlc291cmNlSWQsIDApOwogfQogCiB2b2lkIFdlYkRldlRvb2xz
QWdlbnRJbXBsOjpkaWRGYWlsTG9hZGluZyh1bnNpZ25lZCBsb25nIHJlc291cmNlSWQsIGNvbnN0
IFdlYlVSTEVycm9yJiBlcnJvcikKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggOTM3MTUyMy4uMGU2Zjg5MyAxMDA2NDQKLS0tIGEv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOCBAQAorMjAxMC0wOS0xNCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBQcm92aWRlIG5ldHdvcmstYmFzZWQgbG9hZCB0aW1pbmcuCisgICAgICAgIEJl
Zm9yZSB0aGlzIGNoYW5nZSwgaW5zcGVjdG9yIHVzZWQgdGltZXJzIHRha2VuIGZyb20KKyAgICAg
ICAgd2l0aGluIFdlYkNvcmUgbm90aWZpY2F0aW9ucyAodGhhdCBhcmUgYnkgZGVmaW5pdGlvbgor
ICAgICAgICBzeW5jaHJvbm91cyBhbmQgc2VyaWFsaXplZCkuIEFzIGEgcmVzdWx0LCB0aW1pbmcg
d2FzCisgICAgICAgIGFmZmVjdGVkIGJ5IHRoZSByb3V0aW5lcyBydW5uaW5nIG9uIHRoZSBtYWlu
IHRocmVhZAorICAgICAgICAoSmF2YVNjcmlwdCBhbmQgc3VjaCkuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTY2NAorCisgICAgICAgICogd2Via2l0
L3dlYmtpdGRvd25sb2FkLmNwcDoKKyAgICAgICAgKERvd25sb2FkQ2xpZW50OjpkaWRGaW5pc2hM
b2FkaW5nKToKKwogMjAxMC0wOS0xMyAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRk
b3dubG9hZC5jcHAKaW5kZXggMjBjYWMyYi4uMWU0NTI1MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0ZG93bmxvYWQuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dGRvd25sb2FkLmNwcApAQCAtNjAsNyArNjAsNyBAQCBjbGFzcyBEb3dubG9hZENsaWVudCA6IHB1
YmxpYyBOb25jb3B5YWJsZSwgcHVibGljIFJlc291cmNlSGFuZGxlQ2xpZW50IHsKIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQpOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgICAgICB2aXJ0dWFs
IHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSk7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJv
ciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopOwpAQCAt
OTMwLDcgKzkzMCw3IEBAIHZvaWQgRG93bmxvYWRDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlc291
cmNlSGFuZGxlKiwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0CiAgICAgd2Via2l0X2Rvd25s
b2FkX3JlY2VpdmVkX2RhdGEobV9kb3dubG9hZCwgZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBE
b3dubG9hZENsaWVudDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2b2lkIERv
d25sb2FkQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKQog
ewogICAgIHdlYmtpdF9kb3dubG9hZF9maW5pc2hlZF9sb2FkaW5nKG1fZG93bmxvYWQpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67661</attachid>
            <date>2010-09-15 03:05:59 -0700</date>
            <delta_ts>2010-09-15 05:13:50 -0700</delta_ts>
            <desc>[PATCH] More rebaselines.</desc>
            <filename>finish_resource</filename>
            <type>text/plain</type>
            <size>45125</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
M2JjNTY0ZC4uNDRjMGQzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxMC0wOS0xNCAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92aWRlIG5ldHdvcmstYmFzZWQg
bG9hZCB0aW1pbmcuCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwgaW5zcGVjdG9yIHVzZWQg
dGltZXJzIHRha2VuIGZyb20KKyAgICAgICAgd2l0aGluIFdlYkNvcmUgbm90aWZpY2F0aW9ucyAo
dGhhdCBhcmUgYnkgZGVmaW5pdGlvbgorICAgICAgICBzeW5jaHJvbm91cyBhbmQgc2VyaWFsaXpl
ZCkuIEFzIGEgcmVzdWx0LCB0aW1pbmcgd2FzCisgICAgICAgIGFmZmVjdGVkIGJ5IHRoZSByb3V0
aW5lcyBydW5uaW5nIG9uIHRoZSBtYWluIHRocmVhZAorICAgICAgICAoSmF2YVNjcmlwdCBhbmQg
c3VjaCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NTY2NAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZpbmlzaExvYWRpbmcpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmFpbExvYWRpbmcpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clJlc291cmNlOjplbmRUaW1pbmcpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNv
dXJjZS5oOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3Jl
OjpQaW5nTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkTm90aWZp
ZXI6OmRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hM
b2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBs
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oOgorICAgICAgICAqIGxvYWRl
ci9pY29uL0ljb25GZXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okljb25GZXRjaGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBsb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwOgorICAgICAgICAoU3RyZWFtaW5nQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6Om5vdGlmeUZpbmlzaCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGVDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VMb2FkVGltaW5nLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRUaW1pbmc6OmRlZXBDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFRpbWluZzo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRUaW1pbmc6OlJlc291cmNlTG9hZFRpbWluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRpZEZpbmlz
aExvYWRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlTWFu
YWdlcjo6ZG93bmxvYWRUaW1lckNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlRGF0
YVVybCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMu
bW06CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlv
bkRpZEZpbmlzaExvYWRpbmc6XSk6CisgICAgICAgIChXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJD
bGllbnQ6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQv
UU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBs
eUhhbmRsZXI6OmZpbmlzaCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkNvcmVTeW5jaHJvbm91c0xvYWRl
cjo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlSGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hyb25v
dXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyOjpkaWRGYWlsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dp
bi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6Om9uUmVxdWVzdENvbXBsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpmaWxlTG9hZFRpbWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpjYW5jZWwpOgorCiAyMDEwLTA5LTE1ICBSZW5hdGEgSG9kb3ZhbiAgPHJlbmlAaW5mLnUtc3pl
Z2VkLmh1PgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKaW5kZXggOTBlZjM0NC4uMWVjMzBhNiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTk2Myw3ICs5NjMs
NyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdQogICAgICAgICAvLyBSZWRpcmVjdCBtYXkgaGF2
ZSBlbXB0eSBVUkwgYW5kIHdlJ2QgbGlrZSB0byBub3QgY3Jhc2ggd2l0aCBpbnZhbGlkIEhhc2hN
YXAgZW50cnkuCiAgICAgICAgIC8vIFNlZSBodHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVl
c3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0Lmh0bWwKICAgICAgICAgaWYgKCFyZXF1ZXN0LnVy
bCgpLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgcmVzb3VyY2UtPmVuZFRpbWluZygpOworICAg
ICAgICAgICAgcmVzb3VyY2UtPmVuZFRpbWluZygwKTsKICAgICAgICAgICAgIHJlc291cmNlLT51
cGRhdGVSZXNwb25zZShyZWRpcmVjdFJlc3BvbnNlKTsKIAogICAgICAgICAgICAgLy8gV2UgYWx3
YXlzIHN0b3JlIGxhc3QgcmVkaXJlY3QgYnkgdGhlIG9yaWdpbmFsIGlkIGtleS4gUmVzdCBvZiB0
aGUgcmVkaXJlY3RzIGFyZSBzdG9yZWQgd2l0aGluIHRoZSBsYXN0IG9uZS4KQEAgLTEwMjAsNyAr
MTAyMCw3IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkUmVjZWl2ZUNvbnRlbnRMZW5n
dGgodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBpbnQKICAgICAgICAgcmVzb3VyY2UtPnVwZGF0
ZVNjcmlwdE9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKK3ZvaWQg
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQogewogICAgIGlmICghZW5hYmxlZCgpKQogICAgICAg
ICByZXR1cm47CkBAIC0xMDMyLDcgKzEwMzIsNyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQogICAgIGlmICghcmVz
b3VyY2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHJlc291cmNlLT5lbmRUaW1pbmcoKTsKKyAg
ICByZXNvdXJjZS0+ZW5kVGltaW5nKGZpbmlzaFRpbWUpOwogCiAgICAgLy8gTm8gbmVlZCB0byBt
dXRlIHRoaXMgZXZlbnQgZm9yIG1haW4gcmVzb3VyY2Ugc2luY2UgaXQgaGFwcGVucyBhZnRlciBk
aWQgY29tbWl0IGxvYWQuCiAgICAgaWYgKG1fZnJvbnRlbmQpCkBAIC0xMDU3LDcgKzEwNTcsNyBA
QCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEZhaWxMb2FkaW5nKHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgY29uc3QgUmVzb3VyYwogICAgICAgICByZXR1cm47CiAKICAgICByZXNvdXJj
ZS0+bWFya0ZhaWxlZCgpOwotICAgIHJlc291cmNlLT5lbmRUaW1pbmcoKTsKKyAgICByZXNvdXJj
ZS0+ZW5kVGltaW5nKDApOwogCiAgICAgLy8gTm8gbmVlZCB0byBtdXRlIHRoaXMgZXZlbnQgZm9y
IG1haW4gcmVzb3VyY2Ugc2luY2UgaXQgaGFwcGVucyBhZnRlciBkaWQgY29tbWl0IGxvYWQuCiAg
ICAgaWYgKG1fZnJvbnRlbmQpCkBAIC0xNDkyLDcgKzE0OTIsNyBAQCB2b2lkIEluc3BlY3RvckNv
bnRyb2xsZXI6OmRpZENsb3NlV2ViU29ja2V0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikKICAg
ICBpZiAoIXJlc291cmNlKQogICAgICAgICByZXR1cm47CiAKLSAgICByZXNvdXJjZS0+ZW5kVGlt
aW5nKCk7CisgICAgcmVzb3VyY2UtPmVuZFRpbWluZygwKTsKICAgICBpZiAobV9mcm9udGVuZCkK
ICAgICAgICAgcmVzb3VyY2UtPnVwZGF0ZVNjcmlwdE9iamVjdChtX2Zyb250ZW5kLmdldCgpKTsK
IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaCBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAppbmRleCAwNzljZjU1Li4z
NDNlOGUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCkBAIC0xNjUs
NyArMTY1LDcgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9pZCBkaWRS
ZWNlaXZlQ29udGVudExlbmd0aCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGhS
ZWNlaXZlZCk7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRp
Zmllcik7CisgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZvaWQgZGlkRmFpbExvYWRpbmcodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAgICAgdm9pZCByZXNvdXJj
ZVJldHJpZXZlZEJ5WE1MSHR0cFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBTY3JpcHRTdHJpbmcmIHNvdXJjZVN0cmluZywgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0
cmluZyYgc2VuZFVSTCwgdW5zaWduZWQgc2VuZExpbmVOdW1iZXIpOwogICAgIHZvaWQgc2NyaXB0
SW1wb3J0ZWQodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVN0
cmluZyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5j
cHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKaW5kZXggOWJjMDFj
OC4uMmQyNGM0ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3Vy
Y2UuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcApAQCAt
NDU1LDkgKzQ1NSw5IEBAIHZvaWQgSW5zcGVjdG9yUmVzb3VyY2U6OnN0YXJ0VGltaW5nKCkKICAg
ICBtX2NoYW5nZXMuc2V0KFRpbWluZ0NoYW5nZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yUmVzb3Vy
Y2U6OmVuZFRpbWluZygpCit2b2lkIEluc3BlY3RvclJlc291cmNlOjplbmRUaW1pbmcoZG91Ymxl
IGFjdHVhbEVuZFRpbWUpCiB7Ci0gICAgbV9lbmRUaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICBt
X2VuZFRpbWUgPSBhY3R1YWxFbmRUaW1lID8gYWN0dWFsRW5kVGltZSA6IGN1cnJlbnRUaW1lKCk7
CiAgICAgbV9maW5pc2hlZCA9IHRydWU7CiAgICAgbV9jaGFuZ2VzLnNldChUaW1pbmdDaGFuZ2Up
OwogICAgIG1fY2hhbmdlcy5zZXQoQ29tcGxldGlvbkNoYW5nZSk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUmVzb3VyY2UuaAppbmRleCAzZmQ1YTY5Li44YTIwN2IwIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5oCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclJlc291cmNlLmgKQEAgLTExNyw3ICsxMTcsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIHZvaWQgc3RhcnRUaW1pbmcoKTsKICAgICAgICAgdm9pZCBtYXJrTG9hZEV2
ZW50VGltZSgpOwogICAgICAgICB2b2lkIG1hcmtET01Db250ZW50RXZlbnRUaW1lKCk7Ci0gICAg
ICAgIHZvaWQgZW5kVGltaW5nKCk7CisgICAgICAgIHZvaWQgZW5kVGltaW5nKGRvdWJsZSBhY3R1
YWxFbmRUaW1lKTsKIAogICAgICAgICB2b2lkIG1hcmtGYWlsZWQoKTsKICAgICAgICAgdm9pZCBh
ZGRMZW5ndGgoaW50IGxlbmd0aFJlY2VpdmVkKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVy
L0RvY3VtZW50TG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApp
bmRleCBiODhjODllLi5jZjk1NDFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC01
NTksNyArNTU5LDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6c3Vic3RpdHV0ZVJlc291cmNlRGVs
aXZlcnlUaW1lckZpcmVkKFRpbWVyPERvY3VtZW50TG9hZGVyPioKICAgICAgICAgCiAgICAgICAg
ICAgICBsb2FkZXItPmRpZFJlY2VpdmVSZXNwb25zZShyZXNvdXJjZS0+cmVzcG9uc2UoKSk7CiAg
ICAgICAgICAgICBsb2FkZXItPmRpZFJlY2VpdmVEYXRhKGRhdGEtPmRhdGEoKSwgZGF0YS0+c2l6
ZSgpLCBkYXRhLT5zaXplKCksIHRydWUpOwotICAgICAgICAgICAgbG9hZGVyLT5kaWRGaW5pc2hM
b2FkaW5nKCk7CisgICAgICAgICAgICBsb2FkZXItPmRpZEZpbmlzaExvYWRpbmcoMCk7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBBIG51bGwgcmVzb3VyY2UgbWVhbnMgdGhhdCB3
ZSBzaG91bGQgZmFpbCB0aGUgbG9hZC4KICAgICAgICAgICAgIC8vIEZJWE1FOiBNYXliZSB3ZSBz
aG91bGQgdXNlIGFub3RoZXIgZXJyb3IgaGVyZSAtIHNvbWV0aGluZyBsaWtlICJub3QgaW4gY2Fj
aGUiLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcCBi
L1dlYkNvcmUvbG9hZGVyL01haW5SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggNmE4MjFjYS4uZDk3
Njg0MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmNwcAor
KysgYi9XZWJDb3JlL2xvYWRlci9NYWluUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0yNzUsOSArMjc1
LDkgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlQWZ0ZXJDb250ZW50UG9saWN5
KFBvbGljeUFjdGlvbiBjb250ZW50UG9saWN5LAogICAgICAgICAgICAgaWYgKG1fc3Vic3RpdHV0
ZURhdGEuY29udGVudCgpLT5zaXplKCkpCiAgICAgICAgICAgICAgICAgZGlkUmVjZWl2ZURhdGEo
bV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPmRhdGEoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250
ZW50KCktPnNpemUoKSwgbV9zdWJzdGl0dXRlRGF0YS5jb250ZW50KCktPnNpemUoKSwgdHJ1ZSk7
CiAgICAgICAgICAgICBpZiAoZnJhbWVMb2FkZXIoKSAmJiAhZnJhbWVMb2FkZXIoKS0+aXNTdG9w
cGluZygpKSAKLSAgICAgICAgICAgICAgICBkaWRGaW5pc2hMb2FkaW5nKCk7CisgICAgICAgICAg
ICAgICAgZGlkRmluaXNoTG9hZGluZygwKTsKICAgICAgICAgfSBlbHNlIGlmIChzaG91bGRMb2Fk
QXNFbXB0eURvY3VtZW50KHVybCkgfHwgZnJhbWVMb2FkZXIoKS0+cmVwcmVzZW50YXRpb25FeGlz
dHNGb3JVUkxTY2hlbWUodXJsLnByb3RvY29sKCkpKQotICAgICAgICAgICAgZGlkRmluaXNoTG9h
ZGluZygpOworICAgICAgICAgICAgZGlkRmluaXNoTG9hZGluZygwKTsKICAgICB9CiB9CiAKQEAg
LTQyMCw3ICs0MjAsNyBAQCB2b2lkIE1haW5SZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEo
Y29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCwgbG9uZyBsb25nCiAgICAgUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJlY2VpdmVEYXRhKGRhdGEsIGxlbmd0aCwgbGVuZ3RoUmVjZWl2ZWQsIGFsbEF0T25j
ZSk7CiB9CiAKLXZvaWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKCkKK3Zv
aWQgTWFpblJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1l
KQogewogICAgIC8vIFRoZXJlIGlzIGEgYnVnIGluIENGTmV0d29yayB3aGVyZSBjYWxsYmFja3Mg
Y2FuIGJlIGRpc3BhdGNoZWQgZXZlbiB3aGVuIGxvYWRzIGFyZSBkZWZlcnJlZC4KICAgICAvLyBT
ZWUgPHJkYXI6Ly9wcm9ibGVtLzYzMDQ2MDA+IGZvciBtb3JlIGRldGFpbHMuCkBAIC00MzksNyAr
NDM5LDcgQEAgdm9pZCBNYWluUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoKQogICAg
IEFTU0VSVCghZG9jdW1lbnRMb2FkZXIoKS0+dGltaW5nKCktPnJlc3BvbnNlRW5kKTsKICAgICBk
b2N1bWVudExvYWRlcigpLT50aW1pbmcoKS0+cmVzcG9uc2VFbmQgPSBtX3RpbWVPZkxhc3REYXRh
UmVjZWl2ZWQ7CiAgICAgZnJhbWVMb2FkZXIoKS0+ZmluaXNoZWRMb2FkaW5nKCk7Ci0gICAgUmVz
b3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoKTsKKyAgICBSZXNvdXJjZUxvYWRlcjo6ZGlk
RmluaXNoTG9hZGluZyhmaW5pc2hUaW1lKTsKICAgICAKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJf
QVBQTElDQVRJT05TKQogICAgIGRsLT5hcHBsaWNhdGlvbkNhY2hlSG9zdCgpLT5maW5pc2hlZExv
YWRpbmdNYWluUmVzb3VyY2UoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL01haW5SZXNv
dXJjZUxvYWRlci5oIGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgKaW5kZXgg
ZTJkMDc1Yy4uMzVlYWIyZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNl
TG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvTWFpblJlc291cmNlTG9hZGVyLmgKQEAgLTU4
LDcgKzU4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgd2ls
bFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
ZGlyZWN0UmVzcG9uc2UpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVEYXRhKGNvbnN0IGNoYXIqLCBpbnQsIGxvbmcgbG9uZyBsZW5ndGhSZWNlaXZlZCwgYm9vbCBh
bGxBdE9uY2UpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZygpOworICAg
ICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhkb3VibGUgZmluaXNoVGltZSk7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImKTsKIAogI2lm
IEhBVkUoUlVOTE9PUF9USU1FUikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyLmNwcAppbmRleCA5ZDBlODFiLi42MWExMzQyIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2Fk
ZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCkBAIC0xMDEsNyArMTAxLDcgQEAgdm9p
ZCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZygpCiAKICAgICBt
X2RvY3VtZW50TG9hZGVyLT5yZW1vdmVQbHVnSW5TdHJlYW1Mb2FkZXIodGhpcyk7CiAgICAgbV9j
bGllbnQtPmRpZEZpbmlzaExvYWRpbmcodGhpcyk7Ci0gICAgUmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcoKTsKKyAgICBSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZygwKTsK
IH0KIAogdm9pZCBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6ZGlkRmFpbChjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIu
aCBiL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuaAppbmRleCAxZDhhMmQ4Li5lMjZhOWM5IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2Fk
ZXIvUGluZ0xvYWRlci5oCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRp
ZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
KSB7IGRlbGV0ZSB0aGlzOyB9CiAgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IGNoYXIqLCBpbnQpIHsgZGVsZXRlIHRoaXM7IH0KLSAgICB2b2lkIGRpZEZpbmlz
aExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKSB7IGRlbGV0ZSB0aGlzOyB9CisgICAgdm9pZCBkaWRG
aW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKSB7IGRlbGV0ZSB0aGlzOyB9CiAg
ICAgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIHsg
ZGVsZXRlIHRoaXM7IH0KIAogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbV9oYW5kbGU7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAgYi9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAKaW5kZXggZDIyNWNiOC4uYzQzYTFk
YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCisr
KyBiL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcApAQCAtODIsMTEgKzgy
LDExIEBAIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNl
TG9hZGVyKiBsb2FkZXIsIGNvbnN0IGNoYXIqIGRhCiAgICAgZGlzcGF0Y2hEaWRSZWNlaXZlQ29u
dGVudExlbmd0aChsb2FkZXItPmRvY3VtZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigp
LCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZEZp
bmlzaExvYWQoUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKK3ZvaWQgUmVzb3VyY2VMb2FkTm90aWZp
ZXI6OmRpZEZpbmlzaExvYWQoUmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgZG91YmxlIGZpbmlzaFRp
bWUpCiB7ICAgIAogICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQogICAgICAg
ICBwYWdlLT5wcm9ncmVzcygpLT5jb21wbGV0ZVByb2dyZXNzKGxvYWRlci0+aWRlbnRpZmllcigp
KTsKLSAgICBkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcobG9hZGVyLT5kb2N1bWVudExvYWRlcigp
LCBsb2FkZXItPmlkZW50aWZpZXIoKSk7CisgICAgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKGxv
YWRlci0+ZG9jdW1lbnRMb2FkZXIoKSwgbG9hZGVyLT5pZGVudGlmaWVyKCksIGZpbmlzaFRpbWUp
OwogfQogCiB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRGYWlsVG9Mb2FkKFJlc291cmNl
TG9hZGVyKiBsb2FkZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQpAQCAtMTUwLDEzICsx
NTAsMTMgQEAgdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hEaWRSZWNlaXZlQ29u
dGVudExlbmd0aChEb2N1bWVudExvYWRlciogbG9hZGUKICNlbmRpZgogfQogCi12b2lkIFJlc291
cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaERpZEZpbmlzaExvYWRpbmcoRG9jdW1lbnRMb2FkZXIq
IGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQordm9pZCBSZXNvdXJjZUxvYWROb3Rp
Zmllcjo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAgICAgbV9mcmFt
ZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZEZpbmlzaExvYWRpbmcobG9hZGVyLCBp
ZGVudGlmaWVyKTsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgaWYgKFBhZ2UqIHBhZ2Ug
PSBtX2ZyYW1lLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+
ZGlkRmluaXNoTG9hZGluZyhpZGVudGlmaWVyKTsKKyAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLT5kaWRGaW5pc2hMb2FkaW5nKGlkZW50aWZpZXIsIGZpbmlzaFRpbWUpOwogI2Vu
ZGlmCiB9CiAKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpz
ZW5kUmVtYWluaW5nRGVsZWdhdGVNZXNzYWdlcyhEb2N1bWVudExvYWRlciogbG9hZGVyLAogICAg
ICAgICBkaXNwYXRjaERpZFJlY2VpdmVDb250ZW50TGVuZ3RoKGxvYWRlciwgaWRlbnRpZmllciwg
bGVuZ3RoKTsKIAogICAgIGlmIChlcnJvci5pc051bGwoKSkKLSAgICAgICAgZGlzcGF0Y2hEaWRG
aW5pc2hMb2FkaW5nKGxvYWRlciwgaWRlbnRpZmllcik7CisgICAgICAgIGRpc3BhdGNoRGlkRmlu
aXNoTG9hZGluZyhsb2FkZXIsIGlkZW50aWZpZXIsIDApOwogICAgIGVsc2UKICAgICAgICAgbV9m
cmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5kaXNwYXRjaERpZEZhaWxMb2FkaW5nKGxvYWRlciwg
aWRlbnRpZmllciwgZXJyb3IpOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuaCBiL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmgK
aW5kZXggYjBhNWNiZi4uNzU4ZTQxNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuaAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmll
ci5oCkBAIC01MywxNCArNTMsMTQgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0
KFJlc291cmNlTG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3Vy
Y2VMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9pZCBkaWRSZWNlaXZl
RGF0YShSZXNvdXJjZUxvYWRlciosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBsZW5ndGhSZWNlaXZl
ZCk7Ci0gICAgdm9pZCBkaWRGaW5pc2hMb2FkKFJlc291cmNlTG9hZGVyKik7CisgICAgdm9pZCBk
aWRGaW5pc2hMb2FkKFJlc291cmNlTG9hZGVyKiwgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgIHZv
aWQgZGlkRmFpbFRvTG9hZChSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsK
IAogICAgIHZvaWQgYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwog
ICAgIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlZGlyZWN0UmVzcG9uc2UpOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9u
c2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUNvbnRlbnRMZW5ndGgo
RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGludCBsZW5ndGgpOwot
ICAgIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkaW5nKERvY3VtZW50TG9hZGVyKiwgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZGluZyhE
b2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgZG91YmxlIGZpbmlzaFRp
bWUpOwogCiAgICAgdm9pZCBzZW5kUmVtYWluaW5nRGVsZWdhdGVNZXNzYWdlcyhEb2N1bWVudExv
YWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYs
IGludCBsZW5ndGgsIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2Fk
ZXIuY3BwCmluZGV4IGUxZDMzMWUuLjQ5MGJjMzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJJbnNw
ZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKQEAgLTI3Niw3
ICsyNzcsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoY29u
c3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKICAgICBtX3Jlc291cmNlRGF0YSA9IFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKGRhdGEsIGxlbmd0aCk7CiB9CiAKLXZvaWQgUmVzb3VyY2VMb2FkZXI6OmRp
ZEZpbmlzaExvYWRpbmcoKQordm9pZCBSZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhk
b3VibGUgZmluaXNoVGltZSkKIHsKICAgICAvLyBJZiBsb2FkIGhhcyBiZWVuIGNhbmNlbGxlZCBh
ZnRlciBmaW5pc2hpbmcgKHdoaWNoIGNvdWxkIGhhcHBlbiB3aXRoIGEgCiAgICAgLy8gSmF2YVNj
cmlwdCB0aGF0IGNoYW5nZXMgdGhlIHdpbmRvdyBsb2NhdGlvbiksIGRvIG5vdGhpbmcuCkBAIC0y
ODQsMTEgKzI4NSwxMSBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKCkK
ICAgICAgICAgcmV0dXJuOwogICAgIEFTU0VSVCghbV9yZWFjaGVkVGVybWluYWxTdGF0ZSk7CiAK
LSAgICBkaWRGaW5pc2hMb2FkaW5nT25lUGFydCgpOworICAgIGRpZEZpbmlzaExvYWRpbmdPbmVQ
YXJ0KGZpbmlzaFRpbWUpOwogICAgIHJlbGVhc2VSZXNvdXJjZXMoKTsKIH0KIAotdm9pZCBSZXNv
dXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZ09uZVBhcnQoKQordm9pZCBSZXNvdXJjZUxvYWRl
cjo6ZGlkRmluaXNoTG9hZGluZ09uZVBhcnQoZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAgICAgaWYg
KG1fY2FuY2VsbGVkKQogICAgICAgICByZXR1cm47CkBAIC0yOTgsNyArMjk5LDcgQEAgdm9pZCBS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZ09uZVBhcnQoKQogICAgICAgICByZXR1cm47
CiAgICAgbV9jYWxsZWREaWRGaW5pc2hMb2FkID0gdHJ1ZTsKICAgICBpZiAobV9zZW5kUmVzb3Vy
Y2VMb2FkQ2FsbGJhY2tzKQotICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5kaWRG
aW5pc2hMb2FkKHRoaXMpOworICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLT5kaWRG
aW5pc2hMb2FkKHRoaXMsIGZpbmlzaFRpbWUpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZGVyOjpk
aWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQpAQCAtNDQwLDkgKzQ0MSw5IEBAIHZv
aWQgUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciogZGF0YSwgaW50IGxlbmd0CiAjZW5kaWYKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWRlcjo6
ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2b2lkIFJlc291cmNlTG9hZGVyOjpk
aWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlIGZpbmlzaFRpbWUpCiB7Ci0g
ICAgZGlkRmluaXNoTG9hZGluZygpOworICAgIGRpZEZpbmlzaExvYWRpbmcoZmluaXNoVGltZSk7
CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkZXI6OmRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZUVycm9yJiBlcnJvcikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oCmluZGV4IDk1MTNm
ZGIuLjkyMGUzYzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgK
KysrIGIvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaApAQCAtODIsNyArODIsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShj
b25zdCBjaGFyKiwgaW50LCBsb25nIGxvbmcgbGVuZ3RoUmVjZWl2ZWQsIGJvb2wgYWxsQXRPbmNl
KTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShjb25zdCBj
aGFyKiwgaW50KSB7IH0KICAgICAgICAgdm9pZCB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGEoY29uc3Qg
Y2hhciosIGludCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCk7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKTsK
ICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSgpOwpAQCAtOTks
NyArOTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNv
bnN0IGNoYXIqLCBpbnQsIGludCBsZW5ndGhSZWNlaXZlZCk7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBk
YXRhLCBpbnQgbGVuZ3RoKSB7IGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShkYXRhLCBsZW5ndGgp
OyB9Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
Kik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
KiwgZG91YmxlIGZpbmlzaFRpbWUpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChSZXNv
dXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IHdhc0Jsb2NrZWQoUmVzb3VyY2VIYW5kbGUqKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGNhbm5v
dFNob3dVUkwoUmVzb3VyY2VIYW5kbGUqKTsKQEAgLTEzNSw3ICsxMzUsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAjZW5kaWYKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsKGNvbnN0
IFJlc291cmNlRXJyb3ImKTsKLSAgICAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nT25lUGFydCgp
OworICAgICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmdPbmVQYXJ0KGRvdWJsZSBmaW5pc2hUaW1l
KTsKIAogICAgICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBjb25zdCB7IHJl
dHVybiBtX3JlcXVlc3Q7IH0KICAgICAgICAgYm9vbCByZWFjaGVkVGVybWluYWxTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcmVhY2hlZFRlcm1pbmFsU3RhdGU7IH0KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBiL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291
cmNlTG9hZGVyLmNwcAppbmRleCBlNWNlYzg4Li43ZTFlYThiIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvU3VicmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0xNDAsNyArMTQwLDcgQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRl
cjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHIpCiAgICAgICAg
IAogICAgICAgICAvLyBBZnRlciB0aGUgZmlyc3QgbXVsdGlwYXJ0IHNlY3Rpb24gaXMgY29tcGxl
dGUsIHNpZ25hbCB0byBkZWxlZ2F0ZXMgdGhhdCB0aGlzIGxvYWQgaXMgImZpbmlzaGVkIiAKICAg
ICAgICAgbV9kb2N1bWVudExvYWRlci0+c3VicmVzb3VyY2VMb2FkZXJGaW5pc2hlZExvYWRpbmdP
bmVQYXJ0KHRoaXMpOwotICAgICAgICBkaWRGaW5pc2hMb2FkaW5nT25lUGFydCgpOworICAgICAg
ICBkaWRGaW5pc2hMb2FkaW5nT25lUGFydCgwKTsKICAgICB9CiB9CiAKQEAgLTE2OCw3ICsxNjgs
NyBAQCB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoY29u
c3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVD
YWNoZWRNZXRhZGF0YSh0aGlzLCBkYXRhLCBsZW5ndGgpOwogfQogCi12b2lkIFN1YnJlc291cmNl
TG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKCkKK3ZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmRpZEZp
bmlzaExvYWRpbmcoZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAgICAgaWYgKGNhbmNlbGxlZCgpKQog
ICAgICAgICByZXR1cm47CkBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBTdWJyZXNvdXJjZUxvYWRl
cjo6ZGlkRmluaXNoTG9hZGluZygpCiAgICAgaWYgKGNhbmNlbGxlZCgpKQogICAgICAgICByZXR1
cm47CiAgICAgbV9kb2N1bWVudExvYWRlci0+cmVtb3ZlU3VicmVzb3VyY2VMb2FkZXIodGhpcyk7
Ci0gICAgUmVzb3VyY2VMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoKTsKKyAgICBSZXNvdXJjZUxv
YWRlcjo6ZGlkRmluaXNoTG9hZGluZyhmaW5pc2hUaW1lKTsKIH0KIAogdm9pZCBTdWJyZXNvdXJj
ZUxvYWRlcjo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmggYi9XZWJDb3JlL2xvYWRlci9TdWJy
ZXNvdXJjZUxvYWRlci5oCmluZGV4IDRhNTgzNDUuLmNiN2VkODEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvU3VicmVz
b3VyY2VMb2FkZXIuaApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIGlu
dCwgbG9uZyBsb25nIGxlbmd0aFJlY2VpdmVkLCBib29sIGFsbEF0T25jZSk7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEoY29uc3QgY2hhciosIGludCk7Ci0g
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCk7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBkaWRGaW5pc2hMb2FkaW5nKGRvdWJsZSBmaW5pc2hUaW1lKTsKICAgICAgICAgdmlydHVh
bCB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUdyb3VwLmNwcCBiL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKaW5kZXggOTI3MjNjNC4uZDg5ZjgxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC02MDIsMTEgKzYwMiwxMSBA
QCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5k
bGUqIGhhbmRsZSwgY29uc3QgY2hhciogZAogICAgIG1fbG9hZGVkU2l6ZSArPSBsZW5ndGg7CiB9
CiAKLXZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNl
SGFuZGxlKiBoYW5kbGUpCit2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6ZGlkRmluaXNoTG9h
ZGluZyhSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBkb3VibGUgZmluaXNoVGltZSkKIHsKICNpZiBF
TkFCTEUoSU5TUEVDVE9SKQogICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQot
ICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRpZEZpbmlzaExvYWRpbmcobV9j
dXJyZW50UmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICAgICAgcGFnZS0+aW5zcGVjdG9yQ29udHJv
bGxlcigpLT5kaWRGaW5pc2hMb2FkaW5nKG1fY3VycmVudFJlc291cmNlSWRlbnRpZmllciwgZmlu
aXNoVGltZSk7CiAjZW5kaWYKIAogICAgIGlmIChoYW5kbGUgPT0gbV9tYW5pZmVzdEhhbmRsZSkg
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdy
b3VwLmggYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaApp
bmRleCBiNWNkZjdiLi45OWFiNzFhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAorKysgYi9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlR3JvdXAuaApAQCAtMTEzLDcgKzExMyw3IEBAIHByaXZhdGU6CiAjZW5k
aWYKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0
YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQgbGVuZ3RoLCBpbnQgbGVuZ3RoUmVj
ZWl2ZWQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
Kik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBk
b3VibGUgZmluaXNoVGltZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNYW5pZmVz
dFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL2ljb24vSWNvbkZldGNoZXIuY3BwIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0
Y2hlci5jcHAKaW5kZXggYjMzMTIyYS4uZjZiODBmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2Fk
ZXIvaWNvbi9JY29uRmV0Y2hlci5jcHAKKysrIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0
Y2hlci5jcHAKQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIEljb25GZXRjaGVyOjpkaWRSZWNlaXZl
RGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbAogICAg
IG1fZW50cmllc1ttX2N1cnJlbnRFbnRyeV0uYnVmZmVyKCktPmFwcGVuZChkYXRhLCBsZW5ndGgp
OwogfQogCi12b2lkIEljb25GZXRjaGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
KiBoYW5kbGUpCit2b2lkIEljb25GZXRjaGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFu
ZGxlKiBoYW5kbGUsIGRvdWJsZSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGhhbmRsZSwgbV9oYW5k
bGUgPT0gaGFuZGxlKTsKICAgICAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNv
bkZldGNoZXIuaCBiL1dlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkZldGNoZXIuaAppbmRleCA1MzI3
NjkzLi4zODdlMWMzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9pY29uL0ljb25GZXRjaGVy
LmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRmV0Y2hlci5oCkBAIC02MiwxMiArNjIs
MTIgQEAgcHJpdmF0ZToKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGlu
dCBsZW5ndGhSZWNlaXZlZCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVz
b3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJj
ZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZh
aWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7Ci0gICAgCisKICAgICBG
cmFtZSogbV9mcmFtZTsKICAgICBJY29uRmV0Y2hlckNsaWVudCogbV9jbGllbnQ7Ci0gICAgCisK
ICAgICB1bnNpZ25lZCBtX2N1cnJlbnRFbnRyeTsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+
IG1faGFuZGxlOwogICAgIFZlY3RvcjxJY29uTGlua0VudHJ5PiBtX2VudHJpZXM7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VH
U3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0
V2ViU291cmNlR1N0cmVhbWVyLmNwcAppbmRleCAwNjFmYTg1Li40ZTU3MTkzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3Ry
ZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktp
dFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgU3RyZWFtaW5n
Q2xpZW50IDogcHVibGljIE5vbmNvcHlhYmxlLCBwdWJsaWMgUmVzb3VyY2VIYW5kbGVDbGllbnQg
ewogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlSGFuZGxlKiwg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQpOwotICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVz
b3VyY2VFcnJvciYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhh
bmRsZSopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRs
ZSopOwpAQCAtNzY2LDcgKzc2Niw3IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpkaWRSZWNlaXZl
RGF0YShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpCiAgICAgICAg
IEdTVF9FTEVNRU5UX0VSUk9SKG1fc3JjLCBDT1JFLCBGQUlMRUQsICgwKSwgKDApKTsKIH0KIAot
dm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQor
dm9pZCBTdHJlYW1pbmdDbGllbnQ6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBk
b3VibGUpCiB7CiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSogcHJpdiA9IG1fc3JjLT5wcml2Owog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxl
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCmlu
ZGV4IDg3NjdiNTUuLjQ4YWMyYzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9C
bG9iUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNv
dXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50IC8qbGVuZ3RoUmVjZWl2ZWQqLyk7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlz
aFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZUVycm9yJik7CiAKIHByaXZhdGU6CkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBC
bG9iUmVzb3VyY2VTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5k
bGUqLCBjb25zdCBjaGFyKiwKIHsKIH0KIAotdm9pZCBCbG9iUmVzb3VyY2VTeW5jaHJvbm91c0xv
YWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2b2lkIEJsb2JSZXNvdXJj
ZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91
YmxlKQogewogfQogCkBAIC01ODEsNyArNTgxLDcgQEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6
Om5vdGlmeUZhaWwoaW50IGVycm9yQ29kZSkKIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3Rp
ZnlGaW5pc2goKQogewogICAgIGlmIChjbGllbnQoKSkKLSAgICAgICAgY2xpZW50KCktPmRpZEZp
bmlzaExvYWRpbmcodGhpcyk7CisgICAgICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRo
aXMsIDApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVDbGllbnQuaCBiL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5oCmluZGV4IDk3YzBmNTQuLmQ5MzUwZWUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVu
dC5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUNsaWVudC5o
CkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIFJlc291cmNlSGFuZGxlQ2xpZW50X2gKICNkZWZp
bmUgUmVzb3VyY2VIYW5kbGVDbGllbnRfaAogCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAK
QEAgLTcyLDcgKzczLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VI
YW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgLypsZW5ndGhSZWNlaXZlZCovKSB7IH0KICAg
ICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShSZXNvdXJjZUhhbmRs
ZSosIGNvbnN0IGNoYXIqLCBpbnQpIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNo
TG9hZGluZyhSZXNvdXJjZUhhbmRsZSopIHsgfQorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmlu
aXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLykgeyB9CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3Vy
Y2VFcnJvciYpIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhh
bmRsZSopIHsgfQogICAgICAgICB2aXJ0dWFsIHZvaWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhh
bmRsZSopIHsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291
cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNl
SGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDc2MzU1MWYuLjEzNDEyYzEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTkyLDcg
KzkyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxl
KiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZl
RGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCAvKmxlbmd0aFJlY2Vp
dmVkKi8pOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxl
Kik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBk
b3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgYm9vbCBtX2FsbG93U3RvcmVk
Q3JlZGVudGlhbHM7CkBAIC0yNDEsNyArMjQxLDcgQEAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKENG
VVJMQ29ubmVjdGlvblJlZiBjb25uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogICAgIExPRyhO
ZXR3b3JrLCAiQ0ZOZXQgLSBkaWRGaW5pc2hMb2FkaW5nKGNvbm49JXAsIGhhbmRsZT0lcCkgKCVz
KSIsIGNvbm4sIGhhbmRsZSwgaGFuZGxlLT5maXJzdFJlcXVlc3QoKS51cmwoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKIAogICAgIGlmIChoYW5kbGUtPmNsaWVudCgpKQotICAgICAgICBoYW5k
bGUtPmNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKGhhbmRsZSk7CisgICAgICAgIGhhbmRsZS0+
Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLCAwKTsKIH0KIAogdm9pZCBkaWRGYWls
KENGVVJMQ29ubmVjdGlvblJlZiBjb25uLCBDRkVycm9yUmVmIGVycm9yLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKSAKQEAgLTc0MSw3ICs3NDEsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xv
YWRlckNsaWVudDo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKgog
ICAgIENGRGF0YUFwcGVuZEJ5dGVzKG1fZGF0YS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBVSW50OCo+KGRhdGEpLCBsZW5ndGgpOwogfQogCi12b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xv
YWRlckNsaWVudDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2b2lkIFdlYkNv
cmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRs
ZSosIGRvdWJsZSkKIHsKICAgICBtX2lzRG9uZSA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAppbmRleCA4YTMy
MmI0Li4wNTJhYzU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJs
L1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBjaGFyKiwgaW50LCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKik7CisgICAgdmlydHVh
bCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hU
aW1lKi8pOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
UmVzb3VyY2VFcnJvciYpOwogCiAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNl
KCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZTsgfQpAQCAtNzQsNyArNzQsNyBAQCB2b2lkIFdl
YkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBjaGFyKiBkYXRhLAogICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKIH0KIAot
dm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VI
YW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmco
UmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlTWFuYWdlci5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZU1hbmFnZXIuY3BwCmluZGV4IDhkMmEx
YmYuLmE0ZDcxZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlTWFuYWdlci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcApAQCAtMzk3LDcgKzM5Nyw3IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGVNYW5hZ2VyOjpkb3dubG9hZFRpbWVyQ2FsbGJhY2soVGltZXI8UmVzb3VyY2VI
YW5kbGVNYW5hZ2VyPioKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKGQtPmNsaWVu
dCgpKQotICAgICAgICAgICAgICAgIGQtPmNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKGpvYik7
CisgICAgICAgICAgICAgICAgZC0+Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcoam9iLCAwKTsK
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGNoYXIqIHVybCA9IDA7CiAgICAgICAgICAg
ICBjdXJsX2Vhc3lfZ2V0aW5mbyhkLT5tX2hhbmRsZSwgQ1VSTElORk9fRUZGRUNUSVZFX1VSTCwg
JnVybCk7CkBAIC02MjQsNyArNjI0LDcgQEAgc3RhdGljIHZvaWQgcGFyc2VEYXRhVXJsKFJlc291
cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgICAgICAgICBjbGllbnQtPmRpZFJlY2VpdmVEYXRhKGhh
bmRsZSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oZGF0YS5jaGFyYWN0ZXJzKCkpLCBk
YXRhLmxlbmd0aCgpICogc2l6ZW9mKFVDaGFyKSwgMCk7CiAgICAgfQogCi0gICAgY2xpZW50LT5k
aWRGaW5pc2hMb2FkaW5nKGhhbmRsZSk7CisgICAgY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKGhh
bmRsZSwgMCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpkaXNwYXRjaFN5bmNo
cm9ub3VzSm9iKFJlc291cmNlSGFuZGxlKiBqb2IpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCA2ZGI5MzUwLi5kYWVjMzY2IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFj
Lm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMu
bW0KQEAgLTExNSw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2Uo
UmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGludCwgaW50
IC8qbGVuZ3RoUmVjZWl2ZWQqLyk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmco
UmVzb3VyY2VIYW5kbGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNv
dXJjZUhhbmRsZSosIGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEZhaWwoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAjaWYgVVNFKFBS
T1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSykKICAgICB2aXJ0dWFsIGJvb2wgY2FuQXV0aGVu
dGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFByb3Rl
Y3Rpb25TcGFjZSYpOwpAQCAtOTE3LDcgKzkxNyw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJl
Y2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVu
CiAgICAgaWYgKCFSZXNvdXJjZUhhbmRsZTo6ZGlkU2VuZEJvZHlEYXRhRGVsZWdhdGVFeGlzdHMo
KSkKICAgICAgICAgZGlzYXNzb2NpYXRlU3RyZWFtV2l0aFJlc291cmNlSGFuZGxlKFttX2hhbmRs
ZS0+Zmlyc3RSZXF1ZXN0KCkubnNVUkxSZXF1ZXN0KCkgSFRUUEJvZHlTdHJlYW1dKTsKIAotICAg
IG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkRmluaXNoTG9hZGluZyhtX2hhbmRsZSk7CisgICAgbV9o
YW5kbGUtPmNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKG1faGFuZGxlLCAwKTsKIH0KIAogLSAo
dm9pZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZEZhaWxXaXRo
RXJyb3I6KE5TRXJyb3IgKillcnJvcgpAQCAtMTA1OSw3ICsxMDU5LDcgQEAgdm9pZCBXZWJDb3Jl
U3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwg
Y29uc3QgY2hhcioKICAgICBbbV9kYXRhIGFwcGVuZEJ5dGVzOmRhdGEgbGVuZ3RoOmxlbmd0aF07
CiB9CiAKLXZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2Fk
aW5nKFJlc291cmNlSGFuZGxlKikKK3ZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xpZW50
OjpkaWRGaW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKQogewogICAgIG1faXNE
b25lID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9R
TmV0d29ya1JlcGx5SGFuZGxlci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5l
dHdvcmtSZXBseUhhbmRsZXIuY3BwCmluZGV4IDI4OTgzMDMuLjMwZjcwMTEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApA
QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFFOZXR3b3JrQ29va2llPgogI2luY2x1ZGUgPHF3
ZWJmcmFtZS5oPgogI2luY2x1ZGUgPHF3ZWJwYWdlLmg+CisKICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAKICNpbmNsdWRlIDxRRGVidWc+CkBAIC0yNjIsNyArMjYzLDcgQEAgdm9pZCBR
TmV0d29ya1JlcGx5SGFuZGxlcjo6ZmluaXNoKCkKICAgICAgICAgcmVzZXRTdGF0ZSgpOwogICAg
ICAgICBzdGFydCgpOwogICAgIH0gZWxzZSBpZiAoIW1fcmVwbHktPmVycm9yKCkgfHwgaWdub3Jl
SHR0cEVycm9yKG1fcmVwbHksIG1fcmVzcG9uc2VEYXRhU2VudCkpIHsKLSAgICAgICAgY2xpZW50
LT5kaWRGaW5pc2hMb2FkaW5nKG1fcmVzb3VyY2VIYW5kbGUpOworICAgICAgICBjbGllbnQtPmRp
ZEZpbmlzaExvYWRpbmcobV9yZXNvdXJjZUhhbmRsZSwgMCk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgUVVybCB1cmwgPSBtX3JlcGx5LT51cmwoKTsKICAgICAgICAgaW50IGh0dHBTdGF0dXNDb2Rl
ID0gbV9yZXBseS0+YXR0cmlidXRlKFFOZXR3b3JrUmVxdWVzdDo6SHR0cFN0YXR1c0NvZGVBdHRy
aWJ1dGUpLnRvSW50KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQv
UmVzb3VyY2VIYW5kbGVRdC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3Vy
Y2VIYW5kbGVRdC5jcHAKaW5kZXggOGEyNGQwZi4uYTVhYzRjMyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcApAQCAtNjIsNyArNjIsNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNl
SGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlRGF0YShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqLCBpbnQsIGludCBsZW5ndGhS
ZWNlaXZlZCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5k
bGUqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSos
IGRvdWJsZSAvKmZpbmlzaFRpbWUqLyk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwoUmVzb3Vy
Y2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKICAgICBSZXNvdXJjZVJlc3BvbnNl
IHJlc291cmNlUmVzcG9uc2UoKSBjb25zdCB7IHJldHVybiBtX3Jlc3BvbnNlOyB9CkBAIC05MCw3
ICs5MCw3IEBAIHZvaWQgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyOjpkaWRSZWNlaXZlRGF0YShS
ZXNvdXJjZUhhbmRsZSosIGNvbnN0IGNoYXIqIGRhdGEsCiAgICAgbV9kYXRhLmFwcGVuZChkYXRh
LCBsZW5ndGgpOwogfQogCi12b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlkRmluaXNo
TG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6
ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSkKIHsKICAgICBtX2V2ZW50
TG9vcC5leGl0KCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291
cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCAxMjQ2YzIyLi4wMDA5ZTM2IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAK
QEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVS
ZXNwb25zZShSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiwg
aW50LCBpbnQgbGVuZ3RoUmVjZWl2ZWQpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKFJlc291cmNlSGFuZGxlKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmco
UmVzb3VyY2VIYW5kbGUqLCBkb3VibGUgLypmaW5pc2hUaW1lKi8pOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAg
dm9pZCBydW4oKTsKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xv
YWRlcjo6ZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLAog
ICAgIG1fZGF0YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBXZWJD
b3JlU3luY2hyb25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBk
b3VibGUpCiB7CiAgICAgZ19tYWluX2xvb3BfcXVpdChtX21haW5Mb29wKTsKICAgICBtX2Zpbmlz
aGVkID0gdHJ1ZTsKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xv
YWRlcjo6ZGlkRmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCiB2b2lkIFdlYkNvcmVTeW5j
aHJvbm91c0xvYWRlcjo6ZGlkRmFpbChSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKIHsKICAgICBtX2Vycm9yID0gZXJyb3I7Ci0gICAgZGlkRmluaXNo
TG9hZGluZyhoYW5kbGUpOworICAgIGRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLCAwKTsKIH0KIAog
dm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXI6OnJ1bigpCkBAIC0zMzYsNyArMzM2LDcgQEAg
c3RhdGljIHZvaWQgZmluaXNoZWRDYWxsYmFjayhTb3VwU2Vzc2lvbiAqc2Vzc2lvbiwgU291cE1l
c3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGEKICAgICAgICAgICAgIGNsaWVudC0+ZGlkUmVjZWl2ZURh
dGEoaGFuZGxlLmdldCgpLCBtc2ctPnJlc3BvbnNlX2JvZHktPmRhdGEsIG1zZy0+cmVzcG9uc2Vf
Ym9keS0+bGVuZ3RoLCB0cnVlKTsKICAgICB9CiAKLSAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRp
bmcoaGFuZGxlLmdldCgpKTsKKyAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLmdl
dCgpLCAwKTsKIH0KIAogLy8gcGFyc2VEYXRhVXJsKCkgaXMgdGFrZW4gZnJvbSB0aGUgQ1VSTCBo
dHRwIGJhY2tlbmQuCkBAIC00MTUsNyArNDE1LDcgQEAgc3RhdGljIGdib29sZWFuIHBhcnNlRGF0
YVVybChncG9pbnRlciBjYWxsYmFja0RhdGEpCiAgICAgaWYgKGQtPm1fY2FuY2VsbGVkIHx8ICFo
YW5kbGUtPmNsaWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjbGllbnQtPmRp
ZEZpbmlzaExvYWRpbmcoaGFuZGxlKTsKKyAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFu
ZGxlLCAwKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTcxNyw3ICs3MTcsNyBAQCBzdGF0
aWMgdm9pZCBjbG9zZUNhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMs
IGdwb2ludGVyKQogICAgIGlmIChkLT5tX2NhbmNlbGxlZCB8fCAhY2xpZW50KQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLmdldCgpKTsKKyAg
ICBjbGllbnQtPmRpZEZpbmlzaExvYWRpbmcoaGFuZGxlLmdldCgpLCAwKTsKIH0KIAogc3RhdGlj
IHZvaWQgcmVhZENhbGxiYWNrKEdPYmplY3QqIHNvdXJjZSwgR0FzeW5jUmVzdWx0KiByZXMsIGdw
b2ludGVyKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJj
ZUhhbmRsZVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFu
ZGxlV2luLmNwcAppbmRleCA2MDBmOGNhLi44MzJhOGUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAorKysgYi9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcApAQCAtMzgsNiArMzgsNyBA
QAogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlV2luLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlICJXZWJDb3JlSW5zdGFuY2VIYW5kbGUuaCIKKwogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d2luaW5ldC5oPgpAQCAt
MTQ0LDcgKzE0NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2UoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3QgY2hhciosIGlu
dCwgaW50IGxlbmd0aFJlY2VpdmVkKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGlu
ZyhSZXNvdXJjZUhhbmRsZSopOworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKFJl
c291cmNlSGFuZGxlKiwgZG91YmxlIC8qZmluaXNoVGltZSovKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmFpbChSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKIAogcHJpdmF0
ZToKQEAgLTE3MCw3ICsxNzEsNyBAQCB2b2lkIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlcjo6ZGlk
UmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBjb25zdCBjaGFyKiBkYXRhLAogICAgIG1fZGF0
YS5hcHBlbmQoZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBXZWJDb3JlU3luY2hyb25vdXNMb2Fk
ZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqKQordm9pZCBXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqLCBkb3VibGUpCiB7
CiB9CiAKQEAgLTM0OSw3ICszNTAsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpvblJlcXVlc3RD
b21wbGV0ZShMUEFSQU0gbFBhcmFtKQogICAgICAgICBJbnRlcm5ldENsb3NlSGFuZGxlKGQtPm1f
c2Vjb25kYXJ5SGFuZGxlKTsKICAgICBJbnRlcm5ldENsb3NlSGFuZGxlKGQtPm1fcmVzb3VyY2VI
YW5kbGUpOwogCi0gICAgY2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcyk7CisgICAgY2xp
ZW50KCktPmRpZEZpbmlzaExvYWRpbmcodGhpcywgMCk7CiAgICAgZGVsZXRlIHRoaXM7CiB9CiAK
QEAgLTUxMSw3ICs1MTIsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpmaWxlTG9hZFRpbWVyKFRp
bWVyPFJlc291cmNlSGFuZGxlPiopCiAKICAgICBDbG9zZUhhbmRsZShmaWxlSGFuZGxlKTsKIAot
ICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKHRoaXMpOworICAgIGNsaWVudCgpLT5kaWRG
aW5pc2hMb2FkaW5nKHRoaXMsIDApOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpjYW5jZWwo
KQpAQCAtNTIxLDcgKzUyMiw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNhbmNlbCgpCiAgICAg
ZWxzZQogICAgICAgICBkLT5tX2ZpbGVMb2FkVGltZXIuc3RvcCgpOwogCi0gICAgY2xpZW50KCkt
PmRpZEZpbmlzaExvYWRpbmcodGhpcyk7IAorICAgIGNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5n
KHRoaXMsIDApOyAKIAogICAgIGlmICghZC0+bV9yZXNvdXJjZUhhbmRsZSkKICAgICAgICAgLy8g
QXN5bmMgbG9hZCBjYW5jZWxlZCBiZWZvcmUgd2UgaGF2ZSBhIGhhbmRsZSAtLSBtYXJrIG91cnNl
bHZlcyBhcyBpbiBlcnJvciwgdG8gYmUgZGVsZXRlZCBsYXRlci4KZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGIy
YjkyMTQuLjkxZDg5NWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEwLTA5LTE0
ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFByb3ZpZGUg
bmV0d29yay1iYXNlZCBsb2FkIHRpbWluZy4KKyAgICAgICAgQmVmb3JlIHRoaXMgY2hhbmdlLCBp
bnNwZWN0b3IgdXNlZCB0aW1lcnMgdGFrZW4gZnJvbQorICAgICAgICB3aXRoaW4gV2ViQ29yZSBu
b3RpZmljYXRpb25zICh0aGF0IGFyZSBieSBkZWZpbml0aW9uCisgICAgICAgIHN5bmNocm9ub3Vz
IGFuZCBzZXJpYWxpemVkKS4gQXMgYSByZXN1bHQsIHRpbWluZyB3YXMKKyAgICAgICAgYWZmZWN0
ZWQgYnkgdGhlIHJvdXRpbmVzIHJ1bm5pbmcgb24gdGhlIG1haW4gdGhyZWFkCisgICAgICAgIChK
YXZhU2NyaXB0IGFuZCBzdWNoKS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ1NjY0CisKKyAgICAgICAgKiBwdWJsaWMvV2ViVVJMTG9hZFRpbWluZy5o
OgorICAgICAgICAqIHB1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVVJMTG9hZGVyQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKiBzcmMv
UmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRl
cm5hbDo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgICogc3JjL1dlYkRldlRvb2xzQWdlbnRJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZEZpbmlz
aExvYWRpbmcpOgorICAgICAgICAqIHNyYy9XZWJVUkxMb2FkVGltaW5nLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViVVJMTG9hZFRpbWluZzo6cmVjZWl2ZUhlYWRlcnNTdGFydCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlVSTExvYWRUaW1pbmc6OnNldFJlY2VpdmVIZWFkZXJzU3RhcnQpOgorCiAy
MDEwLTA5LTE0ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAog
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjc1MDMuCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRlckNsaWVudC5oIGIvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJVUkxMb2FkZXJDbGllbnQuaAppbmRleCBjNzE2ZTVkLi43NjE0ZWEzIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTExvYWRlckNsaWVudC5oCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMTG9hZGVyQ2xpZW50LmgKQEAgLTY0LDcgKzY0
LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRh
KFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKSB7IH0KIAog
ICAgIC8vIENhbGxlZCB3aGVuIHRoZSBsb2FkIGNvbXBsZXRlcyBzdWNjZXNzZnVsbHkuCi0gICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoV2ViVVJMTG9hZGVyKikgeyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZEZpbmlzaExvYWRpbmcoV2ViVVJMTG9hZGVyKiwgZG91YmxlIGZpbmlzaFRp
bWUpIHsgfQorCisgICAgLy8gRklYTUU6IHJlbW92ZSB0aGlzIG9uY2UgY2xpZW50cyBhcmUgdXBk
YXRlZC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhXZWJVUkxMb2FkZXIqIGxv
YWRlcikgeyBkaWRGaW5pc2hMb2FkaW5nKGxvYWRlciwgMCk7IH0KIAogICAgIC8vIENhbGxlZCB3
aGVuIHRoZSBsb2FkIGNvbXBsZXRlcyB3aXRoIGFuIGVycm9yLgogICAgIHZpcnR1YWwgdm9pZCBk
aWRGYWlsKFdlYlVSTExvYWRlciosIGNvbnN0IFdlYlVSTEVycm9yJikgeyB9CmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1Jlc291cmNlSGFuZGxlLmNwcCBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDI3YmZlN2YuLjgzZTAwMTcgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYlVSTExvYWRlciosIGNvbnN0
IFdlYlVSTFJlc3BvbnNlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVEYXRhKFdlYlVS
TExvYWRlciosIGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIq
IGRhdGEsIGludCBkYXRhTGVuZ3RoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGlu
ZyhXZWJVUkxMb2FkZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZyhXZWJV
UkxMb2FkZXIqLCBkb3VibGUgZmluaXNoVGltZSk7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWwo
V2ViVVJMTG9hZGVyKiwgY29uc3QgV2ViVVJMRXJyb3ImKTsKIAogICAgIGVudW0gQ29ubmVjdGlv
blN0YXRlIHsKQEAgLTE4MiwxMyArMTgyLDEzIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bDo6ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKFdlYlVSTExvYWRlciosIGNvbnN0IGNoYXIqCiAg
ICAgbV9jbGllbnQtPmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShtX293bmVyLCBkYXRhLCBkYXRh
TGVuZ3RoKTsKIH0KIAotdm9pZCBSZXNvdXJjZUhhbmRsZUludGVybmFsOjpkaWRGaW5pc2hMb2Fk
aW5nKFdlYlVSTExvYWRlciopCit2b2lkIFJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmRpZEZpbmlz
aExvYWRpbmcoV2ViVVJMTG9hZGVyKiwgZG91YmxlIGZpbmlzaFRpbWUpCiB7CiAgICAgQVNTRVJU
KG1fY2xpZW50KTsKICAgICBpZiAobV9zdGF0ZSAhPSBDb25uZWN0aW9uU3RhdGVSZWNlaXZlZFJl
c3BvbnNlICYmIG1fc3RhdGUgIT0gQ29ubmVjdGlvblN0YXRlUmVjZWl2aW5nRGF0YSkKICAgICAg
ICAgQ1JBU0goKTsKICAgICBtX3N0YXRlID0gQ29ubmVjdGlvblN0YXRlRmluaXNoZWRMb2FkaW5n
OwotICAgIG1fY2xpZW50LT5kaWRGaW5pc2hMb2FkaW5nKG1fb3duZXIpOworICAgIG1fY2xpZW50
LT5kaWRGaW5pc2hMb2FkaW5nKG1fb3duZXIsIGZpbmlzaFRpbWUpOwogfQogCiB2b2lkIFJlc291
cmNlSGFuZGxlSW50ZXJuYWw6OmRpZEZhaWwoV2ViVVJMTG9hZGVyKiwgY29uc3QgV2ViVVJMRXJy
b3ImIGVycm9yKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0Fn
ZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNw
cAppbmRleCA5NzFjMjkwLi44MzRkMzUyIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRl
dlRvb2xzQWdlbnRJbXBsLmNwcApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIldlYlVSTFJl
c3BvbnNlLmgiCiAjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlZpZXdJ
bXBsLmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCkBAIC0zMzYsNyArMzM3LDcgQEAg
dm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxv
bmcgcmVzb3VyY2VJZCwgY29uc3QgV2UKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZEZp
bmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyByZXNvdXJjZUlkKQogewogICAgIGlmIChJbnNwZWN0
b3JDb250cm9sbGVyKiBpYyA9IGluc3BlY3RvckNvbnRyb2xsZXIoKSkKLSAgICAgICAgaWMtPmRp
ZEZpbmlzaExvYWRpbmcocmVzb3VyY2VJZCk7CisgICAgICAgIGljLT5kaWRGaW5pc2hMb2FkaW5n
KHJlc291cmNlSWQsIDApOwogfQogCiB2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpkaWRGYWls
TG9hZGluZyh1bnNpZ25lZCBsb25nIHJlc291cmNlSWQsIGNvbnN0IFdlYlVSTEVycm9yJiBlcnJv
cikKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKaW5kZXggOTM3MTUyMy4uMGU2Zjg5MyAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wOS0x
NCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm92aWRl
IG5ldHdvcmstYmFzZWQgbG9hZCB0aW1pbmcuCisgICAgICAgIEJlZm9yZSB0aGlzIGNoYW5nZSwg
aW5zcGVjdG9yIHVzZWQgdGltZXJzIHRha2VuIGZyb20KKyAgICAgICAgd2l0aGluIFdlYkNvcmUg
bm90aWZpY2F0aW9ucyAodGhhdCBhcmUgYnkgZGVmaW5pdGlvbgorICAgICAgICBzeW5jaHJvbm91
cyBhbmQgc2VyaWFsaXplZCkuIEFzIGEgcmVzdWx0LCB0aW1pbmcgd2FzCisgICAgICAgIGFmZmVj
dGVkIGJ5IHRoZSByb3V0aW5lcyBydW5uaW5nIG9uIHRoZSBtYWluIHRocmVhZAorICAgICAgICAo
SmF2YVNjcmlwdCBhbmQgc3VjaCkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NTY2NAorCisgICAgICAgICogd2Via2l0L3dlYmtpdGRvd25sb2FkLmNw
cDoKKyAgICAgICAgKERvd25sb2FkQ2xpZW50OjpkaWRGaW5pc2hMb2FkaW5nKToKKwogMjAxMC0w
OS0xMyAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRk
b3dubG9hZC5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRkb3dubG9hZC5jcHAKaW5kZXgg
MjBjYWMyYi4uMWU0NTI1MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0ZG93
bmxvYWQuY3BwCisrKyBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdGRvd25sb2FkLmNwcApAQCAt
NjAsNyArNjAsNyBAQCBjbGFzcyBEb3dubG9hZENsaWVudCA6IHB1YmxpYyBOb25jb3B5YWJsZSwg
cHVibGljIFJlc291cmNlSGFuZGxlQ2xpZW50IHsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVzb3VyY2VIYW5kbGUqLCBj
b25zdCBjaGFyKiwgaW50LCBpbnQpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9h
ZGluZyhSZXNvdXJjZUhhbmRsZSopOworICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9h
ZGluZyhSZXNvdXJjZUhhbmRsZSosIGRvdWJsZSk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRG
YWlsKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgd2FzQmxvY2tlZChSZXNvdXJjZUhhbmRsZSopOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgY2Fubm90U2hvd1VSTChSZXNvdXJjZUhhbmRsZSopOwpAQCAtOTMwLDcgKzkzMCw3IEBAIHZv
aWQgRG93bmxvYWRDbGllbnQ6OmRpZFJlY2VpdmVEYXRhKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
Y2hhciogZGF0YSwgaW50IGxlbmd0CiAgICAgd2Via2l0X2Rvd25sb2FkX3JlY2VpdmVkX2RhdGEo
bV9kb3dubG9hZCwgZGF0YSwgbGVuZ3RoKTsKIH0KIAotdm9pZCBEb3dubG9hZENsaWVudDo6ZGlk
RmluaXNoTG9hZGluZyhSZXNvdXJjZUhhbmRsZSopCit2b2lkIERvd25sb2FkQ2xpZW50OjpkaWRG
aW5pc2hMb2FkaW5nKFJlc291cmNlSGFuZGxlKiwgZG91YmxlKQogewogICAgIHdlYmtpdF9kb3du
bG9hZF9maW5pc2hlZF9sb2FkaW5nKG1fZG93bmxvYWQpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>