<?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>46092</bug_id>
          
          <creation_ts>2010-09-20 08:02:05 -0700</creation_ts>
          <short_desc>Web Inspector: display headers actually used by network stack in Resources tab</short_desc>
          <delta_ts>2010-09-30 23:50:52 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>281548</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-09-20 08:02:05 -0700</bug_when>
    <thetext>Currently, the request and response headers Web Inspector displays in resource tab do not match those actually send over wire:
- for request headers, headers added by the platform network stack are missing. This includes Cookie:, Accept-*: and Cache-Control: headers;
- for response, this includes Set-Cookie header.
It is suggested to provide a way for network stack to return raw headers as part of ResouceResponse, conditionally on a flag set in request.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281591</commentid>
    <comment_count>1</comment_count>
      <attachid>68093</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-09-20 09:13:14 -0700</bug_when>
    <thetext>Created attachment 68093
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281594</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-20 09:18:45 -0700</bug_when>
    <thetext>Attachment 68093 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/chromium/public/WebResourceRawHeaders.h:38:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebKit/chromium/public/WebResourceRawHeaders.h:38:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebKit/chromium/public/WebResourceRawHeaders.h:39:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
WebKit/chromium/public/WebResourceRawHeaders.h:80:  Could not find a newline character at the end of the file.  [whitespace/ending_newline] [5]
Total errors found: 4 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281601</commentid>
    <comment_count>3</comment_count>
      <attachid>68093</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-09-20 09:26:10 -0700</bug_when>
    <thetext>Comment on attachment 68093
proposed patch

If this is Chromium only, please file a bug about it needed to be implemeneted for other ports. Or find a way to make it work for everyone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281604</commentid>
    <comment_count>4</comment_count>
      <attachid>68096</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-09-20 09:32:30 -0700</bug_when>
    <thetext>Created attachment 68096
patch

Fixed style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281607</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-20 09:33:54 -0700</bug_when>
    <thetext>Attachment 68096 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/chromium/public/WebResourceRawHeaders.h:38:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281608</commentid>
    <comment_count>6</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2010-09-20 09:34:52 -0700</bug_when>
    <thetext>&gt; WebCore/ChangeLog:8
&gt; +        No new tests. (OOPS!)

nit: please delete this line.

&gt; WebKit/chromium/src/WebResourceRawHeaders.cpp:49
&gt; +    delete m_requestHeaders;
&gt; +    delete m_responseHeaders;

It&apos;d be better to use OwnPtr for these members.

&gt; WebKit/chromium/src/WebResourceRawHeaders.cpp:76
&gt; +    pair&lt;HTTPHeaderMap::iterator, bool&gt; result =
&gt; +        m_private-&gt;add(name, value);

Line wrapping doesn&apos;t necessary here.

&gt; WebKit/chromium/src/WebURLResponsePrivate.h:60
&gt; +        delete m_resourceRawHeaders;

Can we use OwnPtr here too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281628</commentid>
    <comment_count>7</comment_count>
      <attachid>68104</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-09-20 10:13:05 -0700</bug_when>
    <thetext>Created attachment 68104
patch

- Fixed style again
- Switched to OwnPtr in WebURLResponsePrivate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281631</commentid>
    <comment_count>8</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-09-20 10:14:48 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; WebCore/ChangeLog:8
&gt; &gt; +        No new tests. (OOPS!)
&gt; 
&gt; nit: please delete this line.

Done.

&gt; &gt; WebKit/chromium/src/WebResourceRawHeaders.cpp:49
&gt; &gt; +    delete m_requestHeaders;
&gt; &gt; +    delete m_responseHeaders;
&gt; 
&gt; It&apos;d be better to use OwnPtr for these members.

Can&apos;t do it here -- the WebResourceRawHeaders belongs to WebKit public interface, we can&apos;t expose internal WebCore types there.
&gt; 
&gt; &gt; WebKit/chromium/src/WebResourceRawHeaders.cpp:76
&gt; &gt; +    pair&lt;HTTPHeaderMap::iterator, bool&gt; result =
&gt; &gt; +        m_private-&gt;add(name, value);
&gt; 
&gt; Line wrapping doesn&apos;t necessary here.

Fixed.

&gt; 
&gt; &gt; WebKit/chromium/src/WebURLResponsePrivate.h:60
&gt; &gt; +        delete m_resourceRawHeaders;
&gt; 
&gt; Can we use OwnPtr here too?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281701</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-20 11:35:15 -0700</bug_when>
    <thetext>Attachment 68093 did not build on chromium:
Build output: http://queues.webkit.org/results/4054090</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282114</commentid>
    <comment_count>10</comment_count>
      <attachid>68104</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-20 23:23:24 -0700</bug_when>
    <thetext>Comment on attachment 68104
patch

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

A bunch of nits, otherwise looks good.

&gt; WebCore/inspector/InspectorResource.cpp:180
&gt; +        m_responseHeaderFields = headers-&gt;responseHeaders;

Either mark request as changed here or modify WebInspector.updateResource to re-read request headers from the payload upon response change.

&gt; WebCore/platform/network/ResourceResponseBase.h:117
&gt; +    PassRefPtr&lt;ResourceRawHeaders&gt; resourceRawHeaders() const;

There is a number of header-related methods (get / set individual headers) that are not going to affect raw headers. So we add a bit of confusion here. Maybe we should push raw headers straight into the inspector controller. Did you track usages of these methods?

&gt; WebKit/chromium/public/WebResourceRawHeaders.h:47
&gt; +class WebResourceRawHeaders {

1. We should do WebResourceHeadersMap I guess and have separate setters in the WebURLRequest
2. Interestingly, we are using headers visitors in the rest of the places. We should talk to the authors of that code to find out why. Are we hesitant copying those for the performance reasons?

&gt; WebKit/chromium/public/WebResourceRawHeaders.h:58
&gt; +        WebCore::HTTPHeaderMap* m_private;

You should use WebPrivatePtr when wrapping WebCore. See the pattern in WebURLLoadTiming.

&gt; WebKit/chromium/public/WebURLResponse.h:86
&gt; +    WEBKIT_API WebResourceRawHeaders* resourceRawHeaders();

Must have a setter here.

&gt; WebKit/chromium/src/WebDevToolsAgentImpl.cpp:328
&gt; +        if (ic-&gt;hasFrontend() &amp;&amp; request.reportLoadTiming())

I think ic-&gt;willSendRequest will do this for you.

&gt; WebKit/chromium/src/WebURLResponsePrivate.h:49
&gt; +    OwnPtr&lt;WebResourceRawHeaders&gt; m_resourceRawHeaders;

Why hiding public WebKit API field here? In fact, we don&apos;t need it at all. You should serve both getter and a setter against corresponding ResourceResponse&apos;s fields.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286820</commentid>
    <comment_count>11</comment_count>
      <attachid>69186</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-09-29 06:18:40 -0700</bug_when>
    <thetext>Created attachment 69186
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286823</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-29 06:21:52 -0700</bug_when>
    <thetext>Attachment 69186 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/chromium/public/WebResourceRawHeaders.h:52:  One or more unexpected \r (^M) found; better to use only a \n  [whitespace/carriage_return] [1]
Suppressing further [whitespace/carriage_return] reports for this file.
WebKit/chromium/src/WebResourceRawHeaders.cpp:83:  One or more unexpected \r (^M) found; better to use only a \n  [whitespace/carriage_return] [1]
Suppressing further [whitespace/carriage_return] reports for this file.
WebKit/chromium/src/WebResourceRawHeaders.cpp:36:  Alphabetical sorting problem.  [build/include_order] [4]
WebKit/chromium/src/WebResourceRawHeaders.cpp:42:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 11 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286827</commentid>
    <comment_count>13</comment_count>
      <attachid>69186</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-29 06:42:05 -0700</bug_when>
    <thetext>Comment on attachment 69186
patch

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

&gt; WebKit/chromium/public/WebResourceRawHeaders.h:37
&gt; +namespace WebCore {

#if WEBKIT_IMPLEMENTATION

&gt; WebKit/chromium/public/WebResourceRawHeaders.h:62
&gt; +        WebCore::HTTPHeaderMap* m_private;

Please use generic WebPrivatePtr instead.

&gt; WebKit/chromium/public/WebURLResponse.h:87
&gt; +    WEBKIT_API WebResourceRawHeaders* resourceRawHeaders();

setter, please

&gt; WebKit/chromium/public/WebURLResponse.h:176
&gt; +    WebPrivateOwnPtr&lt;WebResourceRawHeaders&gt; m_resourceRawHeaders;

WebPrivateOwnPtr is used to map to WebCore, you are simply pointing to public WebKit api class here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286910</commentid>
    <comment_count>14</comment_count>
      <attachid>69201</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-09-29 09:23:52 -0700</bug_when>
    <thetext>Created attachment 69201
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286916</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-29 09:29:32 -0700</bug_when>
    <thetext>Attachment 69201 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKit/chromium/src/WebResourceRawHeaders.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286949</commentid>
    <comment_count>16</comment_count>
      <attachid>69201</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2010-09-29 10:18:17 -0700</bug_when>
    <thetext>Comment on attachment 69201
patch

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

&gt; WebCore/WebCore.vcproj/WebCore.vcproj:27431
&gt; +					RelativePath=&quot;..\platform\network\ResourceRawHeaders.h&quot;

You should add new files to Xcode project.

&gt; WebKit/chromium/public/WebResourceRawHeaders.h:38
&gt; +class ResourceResponse;

mind import order.

&gt; WebKit/chromium/public/WebResourceRawHeaders.h:50
&gt; +    class HeadersMap {

Having addRequestHeader and addResponseHeader would look much more elegant.

&gt; WebKit/chromium/public/WebResourceRawHeaders.h:62
&gt; +    private:

remove this line.

&gt; WebKit/chromium/src/WebResourceRawHeaders.cpp:79
&gt; +    m_private-&gt;responseHeaders = *(const WebCore::HTTPHeaderMap*)value;

Can you do static cast here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287017</commentid>
    <comment_count>17</comment_count>
      <attachid>69230</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-09-29 11:28:17 -0700</bug_when>
    <thetext>Created attachment 69230
patch to land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287470</commentid>
    <comment_count>18</comment_count>
      <attachid>69201</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-30 03:21:54 -0700</bug_when>
    <thetext>Comment on attachment 69201
patch

Cleared Pavel Feldman&apos;s review+ from obsolete attachment 69201 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288083</commentid>
    <comment_count>19</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2010-09-30 23:50:52 -0700</bug_when>
    <thetext>Committed manually as r68781: http://trac.webkit.org/changeset/68781
Committed build fix as r68783: http://trac.webkit.org/changeset/68783</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68093</attachid>
            <date>2010-09-20 09:13:14 -0700</date>
            <delta_ts>2010-09-20 09:32:30 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>raw-headers.patch</filename>
            <type>text/plain</type>
            <size>20363</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTM4M2UyNy4uZDNkMjNiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wOS0yMCAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgaGVhZGVycyBhY3R1YWxs
eSB1c2VkIGJ5IG5ldHdvcmsgc3RhY2sgaW4gUmVzb3VyY2VzIHRhYgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYwOTIKKworICAgICAgICBObyBuZXcg
dGVzdHMuIChPT1BTISkKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxTZW5kUmVx
dWVzdCk6IEVuYWJsZSByYXcgaGVhZGVycyB3aGVuIGZyb250LWVuZCBpcyBlbmFibGVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JSZXNvdXJjZTo6dXBkYXRlUmVzcG9uc2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0QmFzZTo6cmVwb3J0UmF3SGVhZGVycyk6IEFkZGVkIGZsYWcgdG8gZW5hYmxlIHJh
dyBoZWFkZXJzLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6c2V0UmVw
b3J0UmF3SGVhZGVycyk6IAorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6
UmVzb3VyY2VSZXF1ZXN0QmFzZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlc3BvbnNlQmFzZS5jcHA6IEFkZGVkIHJhdyBoZWFkZXJzLgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZUJhc2U6OnJlc291cmNlUmF3SGVhZGVycyk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2V0UmVzb3VyY2VSYXdIZWFkZXJzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmg6CisKIDIwMTAtMDkt
MjAgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBOaWtvbGFzIFppbW1lcm1hbm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCmluZGV4IDczMTI2ZDcuLjVkMjE5ZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCkBAIC05ODAsNiArOTgwLDEwIEBAIHZvaWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3Vy
Y2VSZXF1CiAgICAgICAgIHJldHVybjsKIAogICAgIHJlcXVlc3Quc2V0UmVwb3J0TG9hZFRpbWlu
Zyh0cnVlKTsKKyAgICAvLyBPbmx5IGVuYWJsZSByYXcgaGVhZGVycyBpZiBmcm9udC1lbmQgaXMg
YXR0YWNoZWQsIGFzIG90aGVyd2lzZSB3ZSBtYXkgbGFjaworICAgIC8vIHBlcm1pc3Npb25zIHRv
IGZldGNoIHRoZSBoZWFkZXJzLgorICAgIGlmIChtX2Zyb250ZW5kKQorICAgICAgICByZXF1ZXN0
LnNldFJlcG9ydFJhd0hlYWRlcnModHJ1ZSk7CiAKICAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2Uu
aXNOdWxsKCkpIHsKICAgICAgICAgLy8gUmVkaXJlY3QgbWF5IGhhdmUgZW1wdHkgVVJMIGFuZCB3
ZSdkIGxpa2UgdG8gbm90IGNyYXNoIHdpdGggaW52YWxpZCBIYXNoTWFwIGVudHJ5LgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCmluZGV4IGFjMmM5YTAuLmMwYmFkYzkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcAorKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKQEAgLTE3NSw3ICsxNzUsMTEg
QEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZTo6dXBkYXRlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgICAgIGlmIChjYWNoZWRSZXNvdXJjZSkKICAgICAgICAg
ICAgIG1fbWltZVR5cGUgPSBjYWNoZWRSZXNvdXJjZS0+cmVzcG9uc2UoKS5taW1lVHlwZSgpOwog
ICAgIH0KLSAgICBtX3Jlc3BvbnNlSGVhZGVyRmllbGRzID0gcmVzcG9uc2UuaHR0cEhlYWRlckZp
ZWxkcygpOworICAgIGlmIChSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJhd0hlYWRlcnMqIGhl
YWRlcnMgPSByZXNwb25zZS5yZXNvdXJjZVJhd0hlYWRlcnMoKS5nZXQoKSkgeworICAgICAgICBt
X3JlcXVlc3RIZWFkZXJGaWVsZHMgPSBoZWFkZXJzLT5yZXF1ZXN0SGVhZGVyczsKKyAgICAgICAg
bV9yZXNwb25zZUhlYWRlckZpZWxkcyA9IGhlYWRlcnMtPnJlc3BvbnNlSGVhZGVyczsKKyAgICB9
IGVsc2UKKyAgICAgICAgbV9yZXNwb25zZUhlYWRlckZpZWxkcyA9IHJlc3BvbnNlLmh0dHBIZWFk
ZXJGaWVsZHMoKTsKICAgICBtX3Jlc3BvbnNlU3RhdHVzQ29kZSA9IHJlc3BvbnNlLmh0dHBTdGF0
dXNDb2RlKCk7CiAgICAgbV9yZXNwb25zZVN0YXR1c1RleHQgPSByZXNwb25zZS5odHRwU3RhdHVz
VGV4dCgpOwogICAgIG1fc3VnZ2VzdGVkRmlsZW5hbWUgPSByZXNwb25zZS5zdWdnZXN0ZWRGaWxl
bmFtZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVx
dWVzdEJhc2UuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNl
LmgKaW5kZXggMTYyMmNkZC4uNTgzZDFhZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCkBAIC0xMzYsNiArMTM2LDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgYm9vbCByZXBvcnRMb2FkVGltaW5nKCkgY29uc3QgeyByZXR1cm4g
bV9yZXBvcnRMb2FkVGltaW5nOyB9CiAgICAgICAgIHZvaWQgc2V0UmVwb3J0TG9hZFRpbWluZyhi
b29sIHJlcG9ydExvYWRUaW1pbmcpIHsgbV9yZXBvcnRMb2FkVGltaW5nID0gcmVwb3J0TG9hZFRp
bWluZzsgfQogCisgICAgICAgIC8vIFdoZXRoZXIgYWN0dWFsIGhlYWRlcnMgYmVpbmcgc2VudC9y
ZWNlaXZlZCBzaG91bGQgYmUgY29sbGVjdGVkIGFuZCByZXBvcnRlZCBmb3IgdGhlIHJlcXVlc3Qu
CisgICAgICAgIGJvb2wgcmVwb3J0UmF3SGVhZGVycygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0
UmF3SGVhZGVyczsgfQorICAgICAgICB2b2lkIHNldFJlcG9ydFJhd0hlYWRlcnMoYm9vbCByZXBv
cnRSYXdIZWFkZXJzKSB7IG1fcmVwb3J0UmF3SGVhZGVycyA9IHJlcG9ydFJhd0hlYWRlcnM7IH0K
KwogICAgICAgICAvLyBXaGF0IHRoaXMgcmVxdWVzdCBpcyBmb3IuCiAgICAgICAgIFRhcmdldFR5
cGUgdGFyZ2V0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0VHlwZTsgfQogICAgICAgICB2
b2lkIHNldFRhcmdldFR5cGUoVGFyZ2V0VHlwZSB0eXBlKSB7IG1fdGFyZ2V0VHlwZSA9IHR5cGU7
IH0KQEAgLTE0Nyw2ICsxNTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAs
IG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCh0cnVlKQogICAgICAgICAgICAgLCBtX3JlcG9ydFVw
bG9hZFByb2dyZXNzKGZhbHNlKQogICAgICAgICAgICAgLCBtX3JlcG9ydExvYWRUaW1pbmcoZmFs
c2UpCisgICAgICAgICAgICAsIG1fcmVwb3J0UmF3SGVhZGVycyhmYWxzZSkKICAgICAgICAgICAg
ICwgbV90YXJnZXRUeXBlKFRhcmdldElzU3VicmVzb3VyY2UpCiAgICAgICAgIHsKICAgICAgICAg
fQpAQCAtMTYxLDYgKzE2Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICwg
bV9wbGF0Zm9ybVJlcXVlc3RVcGRhdGVkKGZhbHNlKQogICAgICAgICAgICAgLCBtX3JlcG9ydFVw
bG9hZFByb2dyZXNzKGZhbHNlKQogICAgICAgICAgICAgLCBtX3JlcG9ydExvYWRUaW1pbmcoZmFs
c2UpCisgICAgICAgICAgICAsIG1fcmVwb3J0UmF3SGVhZGVycyhmYWxzZSkKICAgICAgICAgICAg
ICwgbV90YXJnZXRUeXBlKFRhcmdldElzU3VicmVzb3VyY2UpCiAgICAgICAgIHsKICAgICAgICAg
fQpAQCAtMTgyLDYgKzE4OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJs
ZSBib29sIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZDsKICAgICAgICAgYm9vbCBtX3JlcG9ydFVw
bG9hZFByb2dyZXNzOwogICAgICAgICBib29sIG1fcmVwb3J0TG9hZFRpbWluZzsKKyAgICAgICAg
Ym9vbCBtX3JlcG9ydFJhd0hlYWRlcnM7CiAgICAgICAgIFRhcmdldFR5cGUgbV90YXJnZXRUeXBl
OwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuY3BwCmluZGV4IGUyMzE2NTIuLmY5NzhhNGYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcApAQCAtNTE1LDYg
KzUxNSwyMCBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjpzZXRSZXNvdXJjZUxvYWRUaW1p
bmcoUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+CiAgICAgbV9yZXNvdXJjZUxvYWRUaW1p
bmcgPSByZXNvdXJjZUxvYWRUaW1pbmc7CiB9CiAKK1Bhc3NSZWZQdHI8UmVzb3VyY2VSZXNwb25z
ZUJhc2U6OlJlc291cmNlUmF3SGVhZGVycz4gUmVzb3VyY2VSZXNwb25zZUJhc2U6OnJlc291cmNl
UmF3SGVhZGVycygpIGNvbnN0Cit7CisgICAgbGF6eUluaXQoKTsKKworICAgIHJldHVybiBtX3Jl
c291cmNlUmF3SGVhZGVycy5nZXQoKTsKK30KKwordm9pZCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6
c2V0UmVzb3VyY2VSYXdIZWFkZXJzKFBhc3NSZWZQdHI8UmVzb3VyY2VSZXNwb25zZUJhc2U6OlJl
c291cmNlUmF3SGVhZGVycz4gaGVhZGVycykKK3sKKyAgICBsYXp5SW5pdCgpOworCisgICAgbV9y
ZXNvdXJjZVJhd0hlYWRlcnMgPSBoZWFkZXJzOworfQorCiB2b2lkIFJlc291cmNlUmVzcG9uc2VC
YXNlOjpsYXp5SW5pdCgpIGNvbnN0CiB7CiAgICAgY29uc3RfY2FzdDxSZXNvdXJjZVJlc3BvbnNl
Kj4oc3RhdGljX2Nhc3Q8Y29uc3QgUmVzb3VyY2VSZXNwb25zZSo+KHRoaXMpKS0+cGxhdGZvcm1M
YXp5SW5pdCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVzcG9uc2VCYXNlLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25z
ZUJhc2UuaAppbmRleCA2NWUyNGFkLi45N2RmNDdkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaApAQCAtNDIsNiArNDIsMTEgQEAgc3RydWN0
IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE7CiAvLyBEbyBub3QgdXNlIHRoaXMgY2xh
c3MgZGlyZWN0bHksIHVzZSB0aGUgY2xhc3MgUmVzcG9uc2VSZXNwb25zZSBpbnN0ZWFkCiBjbGFz
cyBSZXNvdXJjZVJlc3BvbnNlQmFzZSA6IHB1YmxpYyBGYXN0QWxsb2NCYXNlIHsKIHB1YmxpYzoK
KyAgICBzdHJ1Y3QgUmVzb3VyY2VSYXdIZWFkZXJzIDogUmVmQ291bnRlZDxSZXNvdXJjZVJhd0hl
YWRlcnM+IHsKKyAgICAgICAgSFRUUEhlYWRlck1hcCByZXF1ZXN0SGVhZGVyczsKKyAgICAgICAg
SFRUUEhlYWRlck1hcCByZXNwb25zZUhlYWRlcnM7CisgICAgfTsKKwogICAgIHN0YXRpYyBQYXNz
T3duUHRyPFJlc291cmNlUmVzcG9uc2U+IGFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNv
dXJjZVJlc3BvbnNlRGF0YT4pOwogCiAgICAgLy8gR2V0cyBhIGNvcHkgb2YgdGhlIGRhdGEgc3Vp
dGFibGUgZm9yIHBhc3NpbmcgdG8gYW5vdGhlciB0aHJlYWQuCkBAIC0xMDksNiArMTE0LDkgQEAg
cHVibGljOgogICAgIFJlc291cmNlTG9hZFRpbWluZyogcmVzb3VyY2VMb2FkVGltaW5nKCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRUaW1pbmcoUGFzc1JlZlB0cjxSZXNvdXJjZUxv
YWRUaW1pbmc+KTsKIAorICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VSYXdIZWFkZXJzPiByZXNvdXJj
ZVJhd0hlYWRlcnMoKSBjb25zdDsKKyAgICB2b2lkIHNldFJlc291cmNlUmF3SGVhZGVycyhQYXNz
UmVmUHRyPFJlc291cmNlUmF3SGVhZGVycz4pOworCiAgICAgLy8gVGhlIFJlc291cmNlUmVzcG9u
c2Ugc3ViY2xhc3MgbWF5ICJzaGFkb3ciIHRoaXMgbWV0aG9kIHRvIHByb3ZpZGUgcGxhdGZvcm0t
c3BlY2lmaWMgbWVtb3J5IHVzYWdlIGluZm9ybWF0aW9uCiAgICAgdW5zaWduZWQgbWVtb3J5VXNh
Z2UoKSBjb25zdAogICAgIHsKQEAgLTE0Myw2ICsxNTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdW5z
aWduZWQgbV9jb25uZWN0aW9uSUQ7CiAgICAgYm9vbCBtX2Nvbm5lY3Rpb25SZXVzZWQgOiAxOwog
ICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IG1fcmVzb3VyY2VMb2FkVGltaW5nOworICAg
IFJlZlB0cjxSZXNvdXJjZVJhd0hlYWRlcnM+IG1fcmVzb3VyY2VSYXdIZWFkZXJzOwogCiAgICAg
Ym9vbCBtX2lzTnVsbCA6IDE7CiAgICAgCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0N2IwZTYzLi5hZjEwMDJl
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0wOS0yMCAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgaGVhZGVycyBhY3R1YWxs
eSB1c2VkIGJ5IG5ldHdvcmsgc3RhY2sgaW4gUmVzb3VyY2VzIHRhYgorICAgICAgICBQbHVtYmlu
ZyByYXcgaGVhZGVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2MDkyCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9X
ZWJSZXNvdXJjZVJhd0hlYWRlcnMuaDogQWRkZWQuCisgICAgICAgICogcHVibGljL1dlYlVSTFJl
cXVlc3QuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViVVJMUmVzcG9uc2UuaDoKKyAgICAgICAgKiBz
cmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29s
c0FnZW50SW1wbDo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBzcmMvV2ViUmVzb3VyY2VS
YXdIZWFkZXJzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlUmF3SGVh
ZGVyczo6SGVhZGVyc01hcDo6SGVhZGVyc01hcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlUmF3SGVhZGVyczo6fldlYlJlc291cmNlUmF3SGVhZGVycyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlUmF3SGVhZGVyczo6cmVxdWVzdEhlYWRlcnMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OnJlc3BvbnNlSGVhZGVycyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlc291cmNlUmF3SGVhZGVyczo6V2ViUmVzb3VyY2VSYXdIZWFkZXJzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpIZWFkZXJzTWFwOjphZGQpOgorICAg
ICAgICAqIHNyYy9XZWJVUkxSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVx
dWVzdDo6c2V0UmVwb3J0UmF3SGVhZGVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFJlcXVl
c3Q6OnJlcG9ydFJhd0hlYWRlcnMpOgorICAgICAgICAqIHNyYy9XZWJVUkxSZXNwb25zZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFJlc3BvbnNlOjpyZXNvdXJjZVJhd0hlYWRlcnMpOgor
ICAgICAgICAqIHNyYy9XZWJVUkxSZXNwb25zZVByaXZhdGUuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVVJMUmVzcG9uc2VQcml2YXRlOjpXZWJVUkxSZXNwb25zZVByaXZhdGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJVUkxSZXNwb25zZVByaXZhdGU6On5XZWJVUkxSZXNwb25zZVByaXZhdGUpOgor
CiAyMDEwLTA5LTE5ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjc3NDkuCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmlu
ZGV4IDM1MjNmMjEuLjM4ODM0ZmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0yMjksNiArMjI5LDcgQEAK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYlJhbmdlLmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViUmVjdC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlJlZ3VsYXJFeHBy
ZXNzaW9uLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUmVzb3VyY2VSYXdIZWFkZXJz
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViU2Nyb2xsYmFyLmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViU2Nyb2xsYmFyQ2xpZW50LmgnLApAQCAtNDk1LDYgKzQ5Niw3IEBACiAgICAgICAg
ICAgICAgICAgJ3NyYy9XZWJQb3B1cE1lbnVJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMv
V2ViUmFuZ2UuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlJlZ3VsYXJFeHByZXNzaW9u
LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJSZXNvdXJjZVJhd0hlYWRlcnMuY3BwJywK
ICAgICAgICAgICAgICAgICAnc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAnLAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViU2NyaXB0Q29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViU2Nyb2xsYmFySW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJSZXNvdXJjZVJhd0hlYWRlcnMuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
UmVzb3VyY2VSYXdIZWFkZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
N2IxNzcxYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUmVz
b3VyY2VSYXdIZWFkZXJzLmgKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUmVzb3VyY2VSYXdI
ZWFkZXJzX2gKKyNkZWZpbmUgV2ViUmVzb3VyY2VSYXdIZWFkZXJzX2gKKworI2luY2x1ZGUgIldl
YkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeyAKKyAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKKyAgY2xhc3MgSFRUUEhlYWRlck1hcDsK
K30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlJlc291cmNlUmF3SGVhZGVyc1By
aXZhdGU7CitjbGFzcyBXZWJTdHJpbmc7CisKK2NsYXNzIFdlYlJlc291cmNlUmF3SGVhZGVycyB7
CitwdWJsaWM6CisgICAgY2xhc3MgSGVhZGVyc01hcCB7CisgICAgcHVibGljOgorICAgICAgICB2
b2lkIGFkZChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgdmFsdWUpOwor
CisgICAgcHJvdGVjdGVkOgorICAgIGZyaWVuZCBjbGFzcyBXZWJSZXNvdXJjZVJhd0hlYWRlcnM7
CisgICAgSGVhZGVyc01hcChXZWJDb3JlOjpIVFRQSGVhZGVyTWFwKik7CisKKyAgICBwcml2YXRl
OgorICAgICAgICBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwKiBtX3ByaXZhdGU7CisgICAgfTsKKwor
ICAgIH5XZWJSZXNvdXJjZVJhd0hlYWRlcnMoKTsKKworICAgIEhlYWRlcnNNYXAqIHJlcXVlc3RI
ZWFkZXJzKCkgY29uc3Q7CisgICAgSGVhZGVyc01hcCogcmVzcG9uc2VIZWFkZXJzKCkgY29uc3Q7
CisKK3Byb3RlY3RlZDoKKyAgICBmcmllbmQgY2xhc3MgV2ViVVJMUmVzcG9uc2U7CisgICAgV2Vi
UmVzb3VyY2VSYXdIZWFkZXJzKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UqKTsKKworcHJpdmF0
ZToKKyAgICBXZWJSZXNvdXJjZVJhd0hlYWRlcnMoY29uc3QgV2ViUmVzb3VyY2VSYXdIZWFkZXJz
Jik7CisgICAgV2ViUmVzb3VyY2VSYXdIZWFkZXJzJiBvcGVyYXRvciA9KGNvbnN0IFdlYlJlc291
cmNlUmF3SGVhZGVycyYpOworCisgICAgSGVhZGVyc01hcCogbV9yZXF1ZXN0SGVhZGVyczsKKyAg
ICBIZWFkZXJzTWFwKiBtX3Jlc3BvbnNlSGVhZGVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVlc3QuaCBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVVJMUmVxdWVzdC5oCmluZGV4IDM2ZDY3OTEuLmU2NGNlODAgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oCkBAIC0xMzQsNiArMTM0LDExIEBAIHB1YmxpYzoK
ICAgICBXRUJLSVRfQVBJIGJvb2wgcmVwb3J0TG9hZFRpbWluZygpIGNvbnN0OwogICAgIFdFQktJ
VF9BUEkgdm9pZCBzZXRSZXBvcnRMb2FkVGltaW5nKGJvb2wpOwogCisgICAgLy8gQ29udHJvbHMg
d2hldGhlciBhY3R1YWwgaGVhZGVycyBzZW50IGFuZCByZWNlaXZlZCBmb3IgcmVxdWVzdCBhcmUK
KyAgICAvLyBjb2xsZWN0ZWQgYW5kIHJlcG9ydGVkLgorICAgIFdFQktJVF9BUEkgYm9vbCByZXBv
cnRSYXdIZWFkZXJzKCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlcG9ydFJhd0hl
YWRlcnMoYm9vbCk7CisKICAgICBXRUJLSVRfQVBJIFRhcmdldFR5cGUgdGFyZ2V0VHlwZSgpIGNv
bnN0OwogICAgIFdFQktJVF9BUEkgdm9pZCBzZXRUYXJnZXRUeXBlKFRhcmdldFR5cGUpOwogCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJlc3BvbnNlLmggYi9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJlc3BvbnNlLmgKaW5kZXggYWM3NWQ0Yy4uYzhhZjU2
YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXNwb25zZS5oCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVzcG9uc2UuaApAQCAtNDEsNiArNDEs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ1N0cmluZzsKIGNsYXNzIFdlYkhU
VFBIZWFkZXJWaXNpdG9yOworY2xhc3MgV2ViUmVzb3VyY2VSYXdIZWFkZXJzOwogY2xhc3MgV2Vi
U3RyaW5nOwogY2xhc3MgV2ViVVJMOwogY2xhc3MgV2ViVVJMTG9hZFRpbWluZzsKQEAgLTgyLDYg
KzgzLDggQEAgcHVibGljOgogICAgIFdFQktJVF9BUEkgV2ViVVJMTG9hZFRpbWluZyBsb2FkVGlt
aW5nKCk7CiAgICAgV0VCS0lUX0FQSSB2b2lkIHNldExvYWRUaW1pbmcoY29uc3QgV2ViVVJMTG9h
ZFRpbWluZyYpOwogCisgICAgV0VCS0lUX0FQSSBXZWJSZXNvdXJjZVJhd0hlYWRlcnMqIHJlc291
cmNlUmF3SGVhZGVycygpOworCiAgICAgV0VCS0lUX0FQSSBkb3VibGUgcmVzcG9uc2VUaW1lKCkg
Y29uc3Q7CiAgICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlc3BvbnNlVGltZShkb3VibGUpOwogCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCmluZGV4IDliYTYz
ZWMuLmVmMWZmZGMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNB
Z2VudEltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudElt
cGwuY3BwCkBAIC0zMjMsOCArMzIzLDExIEBAIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6Omlk
ZW50aWZpZXJGb3JJbml0aWFsUmVxdWVzdCgKIAogdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6
d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VJZCwgV2ViVVJMUmVxdWVzdCYg
cmVxdWVzdCkKIHsKLSAgICBpZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaWMgPSBpbnNwZWN0b3JD
b250cm9sbGVyKCkpCisgICAgaWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGljID0gaW5zcGVjdG9y
Q29udHJvbGxlcigpKSB7CiAgICAgICAgIGljLT53aWxsU2VuZFJlcXVlc3QocmVzb3VyY2VJZCwg
cmVxdWVzdC50b011dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgUmVzb3VyY2VSZXNwb25zZSgpKTsK
KyAgICAgICAgaWYgKGljLT53aW5kb3dWaXNpYmxlKCkgJiYgcmVxdWVzdC5yZXBvcnRMb2FkVGlt
aW5nKCkpCisgICAgICAgICAgICByZXF1ZXN0LnNldFJlcG9ydFJhd0hlYWRlcnModHJ1ZSk7Cisg
ICAgfQogfQogCiB2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjpkaWRSZWNlaXZlRGF0YSh1bnNp
Z25lZCBsb25nIHJlc291cmNlSWQsIGludCBsZW5ndGgpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlJlc291cmNlUmF3SGVhZGVycy5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlJlc291cmNlUmF3SGVhZGVycy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYjM3NWNlYwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UmVzb3VyY2VSYXdIZWFkZXJzLmNwcApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYlJlc291cmNlUmF3SGVhZGVycy5oIgorCisjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXNwb25zZS5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlJlc291cmNlUmF3SGVhZGVyczo6
SGVhZGVyc01hcDo6SGVhZGVyc01hcChXZWJDb3JlOjpIVFRQSGVhZGVyTWFwICpoZWFkZXJzKQor
eworICAgIG1fcHJpdmF0ZSA9IGhlYWRlcnM7Cit9CisKK1dlYlJlc291cmNlUmF3SGVhZGVyczo6
fldlYlJlc291cmNlUmF3SGVhZGVycygpCit7CisgICAgZGVsZXRlIG1fcmVxdWVzdEhlYWRlcnM7
CisgICAgZGVsZXRlIG1fcmVzcG9uc2VIZWFkZXJzOworfQorCitXZWJSZXNvdXJjZVJhd0hlYWRl
cnM6OkhlYWRlcnNNYXAqIFdlYlJlc291cmNlUmF3SGVhZGVyczo6cmVxdWVzdEhlYWRlcnMoKSBj
b25zdAoreworICAgIHJldHVybiBtX3JlcXVlc3RIZWFkZXJzOyAgICAKK30KKworV2ViUmVzb3Vy
Y2VSYXdIZWFkZXJzOjpIZWFkZXJzTWFwKiBXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OnJlc3BvbnNl
SGVhZGVycygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVzcG9uc2VIZWFkZXJzOyAgICAKK30K
KworV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpXZWJSZXNvdXJjZVJhd0hlYWRlcnMoUmVzb3VyY2VS
ZXNwb25zZSAqcmVzcG9uc2UpCit7CisgICAgUmVmUHRyPFJlc291cmNlUmVzcG9uc2U6OlJlc291
cmNlUmF3SGVhZGVycz4gaGVhZGVycyA9IHJlc3BvbnNlLT5yZXNvdXJjZVJhd0hlYWRlcnMoKTsK
KyAgICBpZiAoIWhlYWRlcnMuZ2V0KCkpIHsKKyAgICAgICAgaGVhZGVycyA9IGFkb3B0UmVmKG5l
dyBSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJhd0hlYWRlcnMoKSk7CisgICAgICAgIHJlc3Bv
bnNlLT5zZXRSZXNvdXJjZVJhd0hlYWRlcnMoaGVhZGVycyk7CisgICAgfQorICAgIG1fcmVxdWVz
dEhlYWRlcnMgPSBuZXcgSGVhZGVyc01hcCgmaGVhZGVycy0+cmVxdWVzdEhlYWRlcnMpOworICAg
IG1fcmVzcG9uc2VIZWFkZXJzID0gbmV3IEhlYWRlcnNNYXAoJmhlYWRlcnMtPnJlc3BvbnNlSGVh
ZGVycyk7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpIZWFkZXJzTWFwOjphZGQo
Y29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIHZhbHVlKQoreworICAgIHBh
aXI8SFRUUEhlYWRlck1hcDo6aXRlcmF0b3IsIGJvb2w+IHJlc3VsdCA9CisgICAgICAgIG1fcHJp
dmF0ZS0+YWRkKG5hbWUsIHZhbHVlKTsKKyAgICBpZiAoIXJlc3VsdC5zZWNvbmQpCisgICAgICAg
IHJlc3VsdC5maXJzdC0+c2Vjb25kICs9IFN0cmluZygiLCAiKSArIHZhbHVlOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJM
UmVxdWVzdC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlcXVlc3QuY3BwCmluZGV4
IDI5NTAwNzYuLmIyNDM0MjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJM
UmVxdWVzdC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0LmNwcApA
QCAtMjAxLDYgKzIwMSwxNiBAQCBib29sIFdlYlVSTFJlcXVlc3Q6OnJlcG9ydExvYWRUaW1pbmco
KSBjb25zdAogICAgIHJldHVybiBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXF1ZXN0LT5yZXBvcnRM
b2FkVGltaW5nKCk7CiB9CiAKK3ZvaWQgV2ViVVJMUmVxdWVzdDo6c2V0UmVwb3J0UmF3SGVhZGVy
cyhib29sIHJlcG9ydFJhd0hlYWRlcnMpCit7CisgICAgbV9wcml2YXRlLT5tX3Jlc291cmNlUmVx
dWVzdC0+c2V0UmVwb3J0UmF3SGVhZGVycyhyZXBvcnRSYXdIZWFkZXJzKTsKK30KKworYm9vbCBX
ZWJVUkxSZXF1ZXN0OjpyZXBvcnRSYXdIZWFkZXJzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9w
cml2YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+cmVwb3J0UmF3SGVhZGVycygpOworfQorCiB2b2lk
IFdlYlVSTFJlcXVlc3Q6OnNldFJlcG9ydExvYWRUaW1pbmcoYm9vbCByZXBvcnRMb2FkVGltaW5n
KQogewogICAgIG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlcXVlc3QtPnNldFJlcG9ydExvYWRUaW1p
bmcocmVwb3J0TG9hZFRpbWluZyk7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlVSTFJlc3BvbnNlLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVzcG9uc2UuY3Bw
CmluZGV4IGFhZTQxM2MuLmI4MTUwNDAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVVJMUmVzcG9uc2UuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVzcG9u
c2UuY3BwCkBAIC0xMjksNiArMTI5LDEzIEBAIHZvaWQgV2ViVVJMUmVzcG9uc2U6OnNldExvYWRU
aW1pbmcoY29uc3QgV2ViVVJMTG9hZFRpbWluZyYgdGltaW5nKQogICAgIG1fcHJpdmF0ZS0+bV9y
ZXNvdXJjZVJlc3BvbnNlLT5zZXRSZXNvdXJjZUxvYWRUaW1pbmcobG9hZFRpbWluZy5yZWxlYXNl
KCkpOwogfQogCitXZWJSZXNvdXJjZVJhd0hlYWRlcnMqIFdlYlVSTFJlc3BvbnNlOjpyZXNvdXJj
ZVJhd0hlYWRlcnMoKQoreworICAgIGlmICghbV9wcml2YXRlLT5tX3Jlc291cmNlUmF3SGVhZGVy
cykKKyAgICAgICAgbV9wcml2YXRlLT5tX3Jlc291cmNlUmF3SGVhZGVycyA9IG5ldyBXZWJSZXNv
dXJjZVJhd0hlYWRlcnMobV9wcml2YXRlLT5tX3Jlc291cmNlUmVzcG9uc2UpOworICAgIHJldHVy
biBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSYXdIZWFkZXJzOworfQorCiBkb3VibGUgV2ViVVJMUmVz
cG9uc2U6OnJlc3BvbnNlVGltZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bV9y
ZXNvdXJjZVJlc3BvbnNlLT5yZXNwb25zZVRpbWUoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVVJMUmVzcG9uc2VQcml2YXRlLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlVSTFJlc3BvbnNlUHJpdmF0ZS5oCmluZGV4IGRjNWNlMjIuLjljY2JhNzQgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVzcG9uc2VQcml2YXRlLmgKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZVByaXZhdGUuaApAQCAtMzEsNiArMzEsNyBAQAog
I2lmbmRlZiBXZWJVUkxSZXNwb25zZVByaXZhdGVfaAogI2RlZmluZSBXZWJVUkxSZXNwb25zZVBy
aXZhdGVfaAogCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmgiCiAjaW5jbHVkZSAi
V2ViU3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgUmVzb3VyY2VSZXNwb25z
ZTsgfQpAQCAtMzksMTUgKzQwLDI1IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJV
UkxSZXNwb25zZVByaXZhdGUgewogcHVibGljOgotICAgIFdlYlVSTFJlc3BvbnNlUHJpdmF0ZSgp
IDogbV9yZXNvdXJjZVJlc3BvbnNlKDApIHsgfQorICAgIFdlYlVSTFJlc3BvbnNlUHJpdmF0ZSgp
IAorICAgICAgOiBtX3Jlc291cmNlUmVzcG9uc2UoMCkKKyAgICAgICwgbV9yZXNvdXJjZVJhd0hl
YWRlcnMoMCkKKyAgICB7CisgICAgfQogCiAgICAgLy8gQ2FsbGVkIGJ5IFdlYlVSTFJlc3BvbnNl
IHdoZW4gaXQgbm8gbG9uZ2VyIG5lZWRzIHRoaXMgb2JqZWN0LgogICAgIHZpcnR1YWwgdm9pZCBk
aXNwb3NlKCkgPSAwOwogCiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSogbV9yZXNvdXJj
ZVJlc3BvbnNlOworICAgIFdlYlJlc291cmNlUmF3SGVhZGVycyogbV9yZXNvdXJjZVJhd0hlYWRl
cnM7CiAKICAgICAvLyBGSVhNRTogTW92ZSB0aGlzIHRvIFJlc291cmNlUmVzcG9uc2Ugb25jZSB3
ZSBoYXZlIGFuIGludGVybmFsIGNvbnN1bWVyLgogICAgIFdlYlN0cmluZyBtX2Rvd25sb2FkRmls
ZVBhdGg7CisKKyAgICB2aXJ0dWFsIH5XZWJVUkxSZXNwb25zZVByaXZhdGUoKQorICAgIHsKKyAg
ICAgICAgZGVsZXRlIG1fcmVzb3VyY2VSYXdIZWFkZXJzOworICAgIH0KIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68096</attachid>
            <date>2010-09-20 09:32:30 -0700</date>
            <delta_ts>2010-09-20 10:13:05 -0700</delta_ts>
            <desc>patch</desc>
            <filename>raw-headers.patch</filename>
            <type>text/plain</type>
            <size>20332</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTM4M2UyNy4uZDNkMjNiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMC0wOS0yMCAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgaGVhZGVycyBhY3R1YWxs
eSB1c2VkIGJ5IG5ldHdvcmsgc3RhY2sgaW4gUmVzb3VyY2VzIHRhYgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYwOTIKKworICAgICAgICBObyBuZXcg
dGVzdHMuIChPT1BTISkKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxTZW5kUmVx
dWVzdCk6IEVuYWJsZSByYXcgaGVhZGVycyB3aGVuIGZyb250LWVuZCBpcyBlbmFibGVkLgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JSZXNvdXJjZTo6dXBkYXRlUmVzcG9uc2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0QmFzZTo6cmVwb3J0UmF3SGVhZGVycyk6IEFkZGVkIGZsYWcgdG8gZW5hYmxlIHJh
dyBoZWFkZXJzLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6c2V0UmVw
b3J0UmF3SGVhZGVycyk6IAorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6
UmVzb3VyY2VSZXF1ZXN0QmFzZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlc3BvbnNlQmFzZS5jcHA6IEFkZGVkIHJhdyBoZWFkZXJzLgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZUJhc2U6OnJlc291cmNlUmF3SGVhZGVycyk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2V0UmVzb3VyY2VSYXdIZWFkZXJzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmg6CisKIDIwMTAtMDkt
MjAgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBOaWtvbGFzIFppbW1lcm1hbm4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuY3BwCmluZGV4IDczMTI2ZDcuLjVkMjE5ZmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNvbnRyb2xsZXIuY3BwCkBAIC05ODAsNiArOTgwLDEwIEBAIHZvaWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3Vy
Y2VSZXF1CiAgICAgICAgIHJldHVybjsKIAogICAgIHJlcXVlc3Quc2V0UmVwb3J0TG9hZFRpbWlu
Zyh0cnVlKTsKKyAgICAvLyBPbmx5IGVuYWJsZSByYXcgaGVhZGVycyBpZiBmcm9udC1lbmQgaXMg
YXR0YWNoZWQsIGFzIG90aGVyd2lzZSB3ZSBtYXkgbGFjaworICAgIC8vIHBlcm1pc3Npb25zIHRv
IGZldGNoIHRoZSBoZWFkZXJzLgorICAgIGlmIChtX2Zyb250ZW5kKQorICAgICAgICByZXF1ZXN0
LnNldFJlcG9ydFJhd0hlYWRlcnModHJ1ZSk7CiAKICAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2Uu
aXNOdWxsKCkpIHsKICAgICAgICAgLy8gUmVkaXJlY3QgbWF5IGhhdmUgZW1wdHkgVVJMIGFuZCB3
ZSdkIGxpa2UgdG8gbm90IGNyYXNoIHdpdGggaW52YWxpZCBIYXNoTWFwIGVudHJ5LgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCmluZGV4IGFjMmM5YTAuLmMwYmFkYzkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcAorKysgYi9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKQEAgLTE3NSw3ICsxNzUsMTEg
QEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZTo6dXBkYXRlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgICAgIGlmIChjYWNoZWRSZXNvdXJjZSkKICAgICAgICAg
ICAgIG1fbWltZVR5cGUgPSBjYWNoZWRSZXNvdXJjZS0+cmVzcG9uc2UoKS5taW1lVHlwZSgpOwog
ICAgIH0KLSAgICBtX3Jlc3BvbnNlSGVhZGVyRmllbGRzID0gcmVzcG9uc2UuaHR0cEhlYWRlckZp
ZWxkcygpOworICAgIGlmIChSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJhd0hlYWRlcnMqIGhl
YWRlcnMgPSByZXNwb25zZS5yZXNvdXJjZVJhd0hlYWRlcnMoKS5nZXQoKSkgeworICAgICAgICBt
X3JlcXVlc3RIZWFkZXJGaWVsZHMgPSBoZWFkZXJzLT5yZXF1ZXN0SGVhZGVyczsKKyAgICAgICAg
bV9yZXNwb25zZUhlYWRlckZpZWxkcyA9IGhlYWRlcnMtPnJlc3BvbnNlSGVhZGVyczsKKyAgICB9
IGVsc2UKKyAgICAgICAgbV9yZXNwb25zZUhlYWRlckZpZWxkcyA9IHJlc3BvbnNlLmh0dHBIZWFk
ZXJGaWVsZHMoKTsKICAgICBtX3Jlc3BvbnNlU3RhdHVzQ29kZSA9IHJlc3BvbnNlLmh0dHBTdGF0
dXNDb2RlKCk7CiAgICAgbV9yZXNwb25zZVN0YXR1c1RleHQgPSByZXNwb25zZS5odHRwU3RhdHVz
VGV4dCgpOwogICAgIG1fc3VnZ2VzdGVkRmlsZW5hbWUgPSByZXNwb25zZS5zdWdnZXN0ZWRGaWxl
bmFtZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVx
dWVzdEJhc2UuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNl
LmgKaW5kZXggMTYyMmNkZC4uNTgzZDFhZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCkBAIC0xMzYsNiArMTM2LDEwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgYm9vbCByZXBvcnRMb2FkVGltaW5nKCkgY29uc3QgeyByZXR1cm4g
bV9yZXBvcnRMb2FkVGltaW5nOyB9CiAgICAgICAgIHZvaWQgc2V0UmVwb3J0TG9hZFRpbWluZyhi
b29sIHJlcG9ydExvYWRUaW1pbmcpIHsgbV9yZXBvcnRMb2FkVGltaW5nID0gcmVwb3J0TG9hZFRp
bWluZzsgfQogCisgICAgICAgIC8vIFdoZXRoZXIgYWN0dWFsIGhlYWRlcnMgYmVpbmcgc2VudC9y
ZWNlaXZlZCBzaG91bGQgYmUgY29sbGVjdGVkIGFuZCByZXBvcnRlZCBmb3IgdGhlIHJlcXVlc3Qu
CisgICAgICAgIGJvb2wgcmVwb3J0UmF3SGVhZGVycygpIGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0
UmF3SGVhZGVyczsgfQorICAgICAgICB2b2lkIHNldFJlcG9ydFJhd0hlYWRlcnMoYm9vbCByZXBv
cnRSYXdIZWFkZXJzKSB7IG1fcmVwb3J0UmF3SGVhZGVycyA9IHJlcG9ydFJhd0hlYWRlcnM7IH0K
KwogICAgICAgICAvLyBXaGF0IHRoaXMgcmVxdWVzdCBpcyBmb3IuCiAgICAgICAgIFRhcmdldFR5
cGUgdGFyZ2V0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0VHlwZTsgfQogICAgICAgICB2
b2lkIHNldFRhcmdldFR5cGUoVGFyZ2V0VHlwZSB0eXBlKSB7IG1fdGFyZ2V0VHlwZSA9IHR5cGU7
IH0KQEAgLTE0Nyw2ICsxNTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAs
IG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCh0cnVlKQogICAgICAgICAgICAgLCBtX3JlcG9ydFVw
bG9hZFByb2dyZXNzKGZhbHNlKQogICAgICAgICAgICAgLCBtX3JlcG9ydExvYWRUaW1pbmcoZmFs
c2UpCisgICAgICAgICAgICAsIG1fcmVwb3J0UmF3SGVhZGVycyhmYWxzZSkKICAgICAgICAgICAg
ICwgbV90YXJnZXRUeXBlKFRhcmdldElzU3VicmVzb3VyY2UpCiAgICAgICAgIHsKICAgICAgICAg
fQpAQCAtMTYxLDYgKzE2Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICwg
bV9wbGF0Zm9ybVJlcXVlc3RVcGRhdGVkKGZhbHNlKQogICAgICAgICAgICAgLCBtX3JlcG9ydFVw
bG9hZFByb2dyZXNzKGZhbHNlKQogICAgICAgICAgICAgLCBtX3JlcG9ydExvYWRUaW1pbmcoZmFs
c2UpCisgICAgICAgICAgICAsIG1fcmVwb3J0UmF3SGVhZGVycyhmYWxzZSkKICAgICAgICAgICAg
ICwgbV90YXJnZXRUeXBlKFRhcmdldElzU3VicmVzb3VyY2UpCiAgICAgICAgIHsKICAgICAgICAg
fQpAQCAtMTgyLDYgKzE4OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgbXV0YWJs
ZSBib29sIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZDsKICAgICAgICAgYm9vbCBtX3JlcG9ydFVw
bG9hZFByb2dyZXNzOwogICAgICAgICBib29sIG1fcmVwb3J0TG9hZFRpbWluZzsKKyAgICAgICAg
Ym9vbCBtX3JlcG9ydFJhd0hlYWRlcnM7CiAgICAgICAgIFRhcmdldFR5cGUgbV90YXJnZXRUeXBl
OwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuY3BwCmluZGV4IGUyMzE2NTIuLmY5NzhhNGYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcApAQCAtNTE1LDYg
KzUxNSwyMCBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjpzZXRSZXNvdXJjZUxvYWRUaW1p
bmcoUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+CiAgICAgbV9yZXNvdXJjZUxvYWRUaW1p
bmcgPSByZXNvdXJjZUxvYWRUaW1pbmc7CiB9CiAKK1Bhc3NSZWZQdHI8UmVzb3VyY2VSZXNwb25z
ZUJhc2U6OlJlc291cmNlUmF3SGVhZGVycz4gUmVzb3VyY2VSZXNwb25zZUJhc2U6OnJlc291cmNl
UmF3SGVhZGVycygpIGNvbnN0Cit7CisgICAgbGF6eUluaXQoKTsKKworICAgIHJldHVybiBtX3Jl
c291cmNlUmF3SGVhZGVycy5nZXQoKTsKK30KKwordm9pZCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6
c2V0UmVzb3VyY2VSYXdIZWFkZXJzKFBhc3NSZWZQdHI8UmVzb3VyY2VSZXNwb25zZUJhc2U6OlJl
c291cmNlUmF3SGVhZGVycz4gaGVhZGVycykKK3sKKyAgICBsYXp5SW5pdCgpOworCisgICAgbV9y
ZXNvdXJjZVJhd0hlYWRlcnMgPSBoZWFkZXJzOworfQorCiB2b2lkIFJlc291cmNlUmVzcG9uc2VC
YXNlOjpsYXp5SW5pdCgpIGNvbnN0CiB7CiAgICAgY29uc3RfY2FzdDxSZXNvdXJjZVJlc3BvbnNl
Kj4oc3RhdGljX2Nhc3Q8Y29uc3QgUmVzb3VyY2VSZXNwb25zZSo+KHRoaXMpKS0+cGxhdGZvcm1M
YXp5SW5pdCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVzcG9uc2VCYXNlLmggYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25z
ZUJhc2UuaAppbmRleCA2NWUyNGFkLi45N2RmNDdkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaApAQCAtNDIsNiArNDIsMTEgQEAgc3RydWN0
IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE7CiAvLyBEbyBub3QgdXNlIHRoaXMgY2xh
c3MgZGlyZWN0bHksIHVzZSB0aGUgY2xhc3MgUmVzcG9uc2VSZXNwb25zZSBpbnN0ZWFkCiBjbGFz
cyBSZXNvdXJjZVJlc3BvbnNlQmFzZSA6IHB1YmxpYyBGYXN0QWxsb2NCYXNlIHsKIHB1YmxpYzoK
KyAgICBzdHJ1Y3QgUmVzb3VyY2VSYXdIZWFkZXJzIDogUmVmQ291bnRlZDxSZXNvdXJjZVJhd0hl
YWRlcnM+IHsKKyAgICAgICAgSFRUUEhlYWRlck1hcCByZXF1ZXN0SGVhZGVyczsKKyAgICAgICAg
SFRUUEhlYWRlck1hcCByZXNwb25zZUhlYWRlcnM7CisgICAgfTsKKwogICAgIHN0YXRpYyBQYXNz
T3duUHRyPFJlc291cmNlUmVzcG9uc2U+IGFkb3B0KFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNv
dXJjZVJlc3BvbnNlRGF0YT4pOwogCiAgICAgLy8gR2V0cyBhIGNvcHkgb2YgdGhlIGRhdGEgc3Vp
dGFibGUgZm9yIHBhc3NpbmcgdG8gYW5vdGhlciB0aHJlYWQuCkBAIC0xMDksNiArMTE0LDkgQEAg
cHVibGljOgogICAgIFJlc291cmNlTG9hZFRpbWluZyogcmVzb3VyY2VMb2FkVGltaW5nKCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRUaW1pbmcoUGFzc1JlZlB0cjxSZXNvdXJjZUxv
YWRUaW1pbmc+KTsKIAorICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VSYXdIZWFkZXJzPiByZXNvdXJj
ZVJhd0hlYWRlcnMoKSBjb25zdDsKKyAgICB2b2lkIHNldFJlc291cmNlUmF3SGVhZGVycyhQYXNz
UmVmUHRyPFJlc291cmNlUmF3SGVhZGVycz4pOworCiAgICAgLy8gVGhlIFJlc291cmNlUmVzcG9u
c2Ugc3ViY2xhc3MgbWF5ICJzaGFkb3ciIHRoaXMgbWV0aG9kIHRvIHByb3ZpZGUgcGxhdGZvcm0t
c3BlY2lmaWMgbWVtb3J5IHVzYWdlIGluZm9ybWF0aW9uCiAgICAgdW5zaWduZWQgbWVtb3J5VXNh
Z2UoKSBjb25zdAogICAgIHsKQEAgLTE0Myw2ICsxNTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdW5z
aWduZWQgbV9jb25uZWN0aW9uSUQ7CiAgICAgYm9vbCBtX2Nvbm5lY3Rpb25SZXVzZWQgOiAxOwog
ICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IG1fcmVzb3VyY2VMb2FkVGltaW5nOworICAg
IFJlZlB0cjxSZXNvdXJjZVJhd0hlYWRlcnM+IG1fcmVzb3VyY2VSYXdIZWFkZXJzOwogCiAgICAg
Ym9vbCBtX2lzTnVsbCA6IDE7CiAgICAgCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0N2IwZTYzLi5hZjEwMDJl
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0wOS0yMCAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgaGVhZGVycyBhY3R1YWxs
eSB1c2VkIGJ5IG5ldHdvcmsgc3RhY2sgaW4gUmVzb3VyY2VzIHRhYgorICAgICAgICBQbHVtYmlu
ZyByYXcgaGVhZGVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ2MDkyCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9X
ZWJSZXNvdXJjZVJhd0hlYWRlcnMuaDogQWRkZWQuCisgICAgICAgICogcHVibGljL1dlYlVSTFJl
cXVlc3QuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViVVJMUmVzcG9uc2UuaDoKKyAgICAgICAgKiBz
cmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29s
c0FnZW50SW1wbDo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBzcmMvV2ViUmVzb3VyY2VS
YXdIZWFkZXJzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlUmF3SGVh
ZGVyczo6SGVhZGVyc01hcDo6SGVhZGVyc01hcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291
cmNlUmF3SGVhZGVyczo6fldlYlJlc291cmNlUmF3SGVhZGVycyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlUmF3SGVhZGVyczo6cmVxdWVzdEhlYWRlcnMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OnJlc3BvbnNlSGVhZGVycyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlc291cmNlUmF3SGVhZGVyczo6V2ViUmVzb3VyY2VSYXdIZWFkZXJzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpIZWFkZXJzTWFwOjphZGQpOgorICAg
ICAgICAqIHNyYy9XZWJVUkxSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVx
dWVzdDo6c2V0UmVwb3J0UmF3SGVhZGVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFJlcXVl
c3Q6OnJlcG9ydFJhd0hlYWRlcnMpOgorICAgICAgICAqIHNyYy9XZWJVUkxSZXNwb25zZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFJlc3BvbnNlOjpyZXNvdXJjZVJhd0hlYWRlcnMpOgor
ICAgICAgICAqIHNyYy9XZWJVUkxSZXNwb25zZVByaXZhdGUuaDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVVJMUmVzcG9uc2VQcml2YXRlOjpXZWJVUkxSZXNwb25zZVByaXZhdGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJVUkxSZXNwb25zZVByaXZhdGU6On5XZWJVUkxSZXNwb25zZVByaXZhdGUpOgor
CiAyMDEwLTA5LTE5ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjc3NDkuCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmlu
ZGV4IDM1MjNmMjEuLjM4ODM0ZmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0yMjksNiArMjI5LDcgQEAK
ICAgICAgICAgICAgICAgICAncHVibGljL1dlYlJhbmdlLmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViUmVjdC5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlJlZ3VsYXJFeHBy
ZXNzaW9uLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUmVzb3VyY2VSYXdIZWFkZXJz
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViU2Nyb2xsYmFyLmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViU2Nyb2xsYmFyQ2xpZW50LmgnLApAQCAtNDk1LDYgKzQ5Niw3IEBACiAgICAgICAg
ICAgICAgICAgJ3NyYy9XZWJQb3B1cE1lbnVJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMv
V2ViUmFuZ2UuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlJlZ3VsYXJFeHByZXNzaW9u
LmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJSZXNvdXJjZVJhd0hlYWRlcnMuY3BwJywK
ICAgICAgICAgICAgICAgICAnc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAnLAogICAgICAgICAg
ICAgICAgICdzcmMvV2ViU2NyaXB0Q29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAgICAgICdz
cmMvV2ViU2Nyb2xsYmFySW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJSZXNvdXJjZVJhd0hlYWRlcnMuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
UmVzb3VyY2VSYXdIZWFkZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MzQ1NjAxOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUmVz
b3VyY2VSYXdIZWFkZXJzLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViUmVzb3VyY2VSYXdI
ZWFkZXJzX2gKKyNkZWZpbmUgV2ViUmVzb3VyY2VSYXdIZWFkZXJzX2gKKworI2luY2x1ZGUgIldl
YkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgCit7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworY2xhc3MgSFRUUEhlYWRlck1hcDsKK30K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlJlc291cmNlUmF3SGVhZGVyc1ByaXZh
dGU7CitjbGFzcyBXZWJTdHJpbmc7CisKK2NsYXNzIFdlYlJlc291cmNlUmF3SGVhZGVycyB7Citw
dWJsaWM6CisgICAgY2xhc3MgSGVhZGVyc01hcCB7CisgICAgcHVibGljOgorICAgICAgICB2b2lk
IGFkZChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYgdmFsdWUpOworCisg
ICAgcHJvdGVjdGVkOgorICAgIGZyaWVuZCBjbGFzcyBXZWJSZXNvdXJjZVJhd0hlYWRlcnM7Cisg
ICAgSGVhZGVyc01hcChXZWJDb3JlOjpIVFRQSGVhZGVyTWFwKik7CisKKyAgICBwcml2YXRlOgor
ICAgICAgICBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwKiBtX3ByaXZhdGU7CisgICAgfTsKKworICAg
IH5XZWJSZXNvdXJjZVJhd0hlYWRlcnMoKTsKKworICAgIEhlYWRlcnNNYXAqIHJlcXVlc3RIZWFk
ZXJzKCkgY29uc3Q7CisgICAgSGVhZGVyc01hcCogcmVzcG9uc2VIZWFkZXJzKCkgY29uc3Q7CisK
K3Byb3RlY3RlZDoKKyAgICBmcmllbmQgY2xhc3MgV2ViVVJMUmVzcG9uc2U7CisgICAgV2ViUmVz
b3VyY2VSYXdIZWFkZXJzKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UqKTsKKworcHJpdmF0ZToK
KyAgICBXZWJSZXNvdXJjZVJhd0hlYWRlcnMoY29uc3QgV2ViUmVzb3VyY2VSYXdIZWFkZXJzJik7
CisgICAgV2ViUmVzb3VyY2VSYXdIZWFkZXJzJiBvcGVyYXRvciA9KGNvbnN0IFdlYlJlc291cmNl
UmF3SGVhZGVycyYpOworCisgICAgSGVhZGVyc01hcCogbV9yZXF1ZXN0SGVhZGVyczsKKyAgICBI
ZWFkZXJzTWFwKiBtX3Jlc3BvbnNlSGVhZGVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVx
dWVzdC5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmgKaW5kZXggMzZk
Njc5MS4uZTY0Y2U4MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxS
ZXF1ZXN0LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmgKQEAg
LTEzNCw2ICsxMzQsMTEgQEAgcHVibGljOgogICAgIFdFQktJVF9BUEkgYm9vbCByZXBvcnRMb2Fk
VGltaW5nKCkgY29uc3Q7CiAgICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlcG9ydExvYWRUaW1pbmco
Ym9vbCk7CiAKKyAgICAvLyBDb250cm9scyB3aGV0aGVyIGFjdHVhbCBoZWFkZXJzIHNlbnQgYW5k
IHJlY2VpdmVkIGZvciByZXF1ZXN0IGFyZQorICAgIC8vIGNvbGxlY3RlZCBhbmQgcmVwb3J0ZWQu
CisgICAgV0VCS0lUX0FQSSBib29sIHJlcG9ydFJhd0hlYWRlcnMoKSBjb25zdDsKKyAgICBXRUJL
SVRfQVBJIHZvaWQgc2V0UmVwb3J0UmF3SGVhZGVycyhib29sKTsKKwogICAgIFdFQktJVF9BUEkg
VGFyZ2V0VHlwZSB0YXJnZXRUeXBlKCkgY29uc3Q7CiAgICAgV0VCS0lUX0FQSSB2b2lkIHNldFRh
cmdldFR5cGUoVGFyZ2V0VHlwZSk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVVJMUmVzcG9uc2UuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVzcG9u
c2UuaAppbmRleCBhYzc1ZDRjLi5jOGFmNTZhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlVSTFJlc3BvbnNlLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJV
UkxSZXNwb25zZS5oCkBAIC00MSw2ICs0MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBXZWJDU3RyaW5nOwogY2xhc3MgV2ViSFRUUEhlYWRlclZpc2l0b3I7CitjbGFzcyBXZWJSZXNv
dXJjZVJhd0hlYWRlcnM7CiBjbGFzcyBXZWJTdHJpbmc7CiBjbGFzcyBXZWJVUkw7CiBjbGFzcyBX
ZWJVUkxMb2FkVGltaW5nOwpAQCAtODIsNiArODMsOCBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0FQ
SSBXZWJVUkxMb2FkVGltaW5nIGxvYWRUaW1pbmcoKTsKICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0
TG9hZFRpbWluZyhjb25zdCBXZWJVUkxMb2FkVGltaW5nJik7CiAKKyAgICBXRUJLSVRfQVBJIFdl
YlJlc291cmNlUmF3SGVhZGVycyogcmVzb3VyY2VSYXdIZWFkZXJzKCk7CisKICAgICBXRUJLSVRf
QVBJIGRvdWJsZSByZXNwb25zZVRpbWUoKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0
UmVzcG9uc2VUaW1lKGRvdWJsZSk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29s
c0FnZW50SW1wbC5jcHAKaW5kZXggOWJhNjNlYy4uZWYxZmZkYyAxMDA2NDQKLS0tIGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAKQEAgLTMyMyw4ICszMjMsMTEgQEAgdm9p
ZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6aWRlbnRpZmllckZvckluaXRpYWxSZXF1ZXN0KAogCiB2
b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjp3aWxsU2VuZFJlcXVlc3QodW5zaWduZWQgbG9uZyBy
ZXNvdXJjZUlkLCBXZWJVUkxSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIGlmIChJbnNwZWN0b3JD
b250cm9sbGVyKiBpYyA9IGluc3BlY3RvckNvbnRyb2xsZXIoKSkKKyAgICBpZiAoSW5zcGVjdG9y
Q29udHJvbGxlciogaWMgPSBpbnNwZWN0b3JDb250cm9sbGVyKCkpIHsKICAgICAgICAgaWMtPndp
bGxTZW5kUmVxdWVzdChyZXNvdXJjZUlkLCByZXF1ZXN0LnRvTXV0YWJsZVJlc291cmNlUmVxdWVz
dCgpLCBSZXNvdXJjZVJlc3BvbnNlKCkpOworICAgICAgICBpZiAoaWMtPndpbmRvd1Zpc2libGUo
KSAmJiByZXF1ZXN0LnJlcG9ydExvYWRUaW1pbmcoKSkKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0
UmVwb3J0UmF3SGVhZGVycyh0cnVlKTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViRGV2VG9vbHNBZ2Vu
dEltcGw6OmRpZFJlY2VpdmVEYXRhKHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VJZCwgaW50IGxlbmd0
aCkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUmVzb3VyY2VSYXdIZWFkZXJz
LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMzc1Y2VjCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSZXNvdXJjZVJhd0hlYWRlcnMuY3BwCkBAIC0wLDAg
KzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VSYXdIZWFk
ZXJzLmgiCisKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCisjaW5jbHVkZSAiV2ViU3Ry
aW5nLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpIZWFkZXJzTWFwOjpIZWFkZXJzTWFwKFdlYkNvcmU6
OkhUVFBIZWFkZXJNYXAgKmhlYWRlcnMpCit7CisgICAgbV9wcml2YXRlID0gaGVhZGVyczsKK30K
KworV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjp+V2ViUmVzb3VyY2VSYXdIZWFkZXJzKCkKK3sKKyAg
ICBkZWxldGUgbV9yZXF1ZXN0SGVhZGVyczsKKyAgICBkZWxldGUgbV9yZXNwb25zZUhlYWRlcnM7
Cit9CisKK1dlYlJlc291cmNlUmF3SGVhZGVyczo6SGVhZGVyc01hcCogV2ViUmVzb3VyY2VSYXdI
ZWFkZXJzOjpyZXF1ZXN0SGVhZGVycygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcmVxdWVzdEhl
YWRlcnM7ICAgIAorfQorCitXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OkhlYWRlcnNNYXAqIFdlYlJl
c291cmNlUmF3SGVhZGVyczo6cmVzcG9uc2VIZWFkZXJzKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9yZXNwb25zZUhlYWRlcnM7ICAgIAorfQorCitXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OldlYlJl
c291cmNlUmF3SGVhZGVycyhSZXNvdXJjZVJlc3BvbnNlICpyZXNwb25zZSkKK3sKKyAgICBSZWZQ
dHI8UmVzb3VyY2VSZXNwb25zZTo6UmVzb3VyY2VSYXdIZWFkZXJzPiBoZWFkZXJzID0gcmVzcG9u
c2UtPnJlc291cmNlUmF3SGVhZGVycygpOworICAgIGlmICghaGVhZGVycy5nZXQoKSkgeworICAg
ICAgICBoZWFkZXJzID0gYWRvcHRSZWYobmV3IFJlc291cmNlUmVzcG9uc2U6OlJlc291cmNlUmF3
SGVhZGVycygpKTsKKyAgICAgICAgcmVzcG9uc2UtPnNldFJlc291cmNlUmF3SGVhZGVycyhoZWFk
ZXJzKTsKKyAgICB9CisgICAgbV9yZXF1ZXN0SGVhZGVycyA9IG5ldyBIZWFkZXJzTWFwKCZoZWFk
ZXJzLT5yZXF1ZXN0SGVhZGVycyk7CisgICAgbV9yZXNwb25zZUhlYWRlcnMgPSBuZXcgSGVhZGVy
c01hcCgmaGVhZGVycy0+cmVzcG9uc2VIZWFkZXJzKTsKK30KKwordm9pZCBXZWJSZXNvdXJjZVJh
d0hlYWRlcnM6OkhlYWRlcnNNYXA6OmFkZChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdl
YlN0cmluZyYgdmFsdWUpCit7CisgICAgcGFpcjxIVFRQSGVhZGVyTWFwOjppdGVyYXRvciwgYm9v
bD4gcmVzdWx0ID0KKyAgICAgICAgbV9wcml2YXRlLT5hZGQobmFtZSwgdmFsdWUpOworICAgIGlm
ICghcmVzdWx0LnNlY29uZCkKKyAgICAgICAgcmVzdWx0LmZpcnN0LT5zZWNvbmQgKz0gU3RyaW5n
KCIsICIpICsgdmFsdWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVVJMUmVxdWVzdC5jcHAKaW5kZXggMjk1MDA3Ni4uYjI0MzQyMCAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0LmNwcAorKysgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlVSTFJlcXVlc3QuY3BwCkBAIC0yMDEsNiArMjAxLDE2IEBAIGJvb2wgV2ViVVJM
UmVxdWVzdDo6cmVwb3J0TG9hZFRpbWluZygpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+
bV9yZXNvdXJjZVJlcXVlc3QtPnJlcG9ydExvYWRUaW1pbmcoKTsKIH0KIAordm9pZCBXZWJVUkxS
ZXF1ZXN0OjpzZXRSZXBvcnRSYXdIZWFkZXJzKGJvb2wgcmVwb3J0UmF3SGVhZGVycykKK3sKKyAg
ICBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXF1ZXN0LT5zZXRSZXBvcnRSYXdIZWFkZXJzKHJlcG9y
dFJhd0hlYWRlcnMpOworfQorCitib29sIFdlYlVSTFJlcXVlc3Q6OnJlcG9ydFJhd0hlYWRlcnMo
KSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXF1ZXN0LT5yZXBv
cnRSYXdIZWFkZXJzKCk7Cit9CisKIHZvaWQgV2ViVVJMUmVxdWVzdDo6c2V0UmVwb3J0TG9hZFRp
bWluZyhib29sIHJlcG9ydExvYWRUaW1pbmcpCiB7CiAgICAgbV9wcml2YXRlLT5tX3Jlc291cmNl
UmVxdWVzdC0+c2V0UmVwb3J0TG9hZFRpbWluZyhyZXBvcnRMb2FkVGltaW5nKTsKZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVzcG9uc2UuY3BwIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJVUkxSZXNwb25zZS5jcHAKaW5kZXggYWFlNDEzYy4uYjgxNTA0MCAxMDA2NDQK
LS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZS5jcHAKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZS5jcHAKQEAgLTEyOSw2ICsxMjksMTMgQEAgdm9p
ZCBXZWJVUkxSZXNwb25zZTo6c2V0TG9hZFRpbWluZyhjb25zdCBXZWJVUkxMb2FkVGltaW5nJiB0
aW1pbmcpCiAgICAgbV9wcml2YXRlLT5tX3Jlc291cmNlUmVzcG9uc2UtPnNldFJlc291cmNlTG9h
ZFRpbWluZyhsb2FkVGltaW5nLnJlbGVhc2UoKSk7CiB9CiAKK1dlYlJlc291cmNlUmF3SGVhZGVy
cyogV2ViVVJMUmVzcG9uc2U6OnJlc291cmNlUmF3SGVhZGVycygpCit7CisgICAgaWYgKCFtX3By
aXZhdGUtPm1fcmVzb3VyY2VSYXdIZWFkZXJzKQorICAgICAgICBtX3ByaXZhdGUtPm1fcmVzb3Vy
Y2VSYXdIZWFkZXJzID0gbmV3IFdlYlJlc291cmNlUmF3SGVhZGVycyhtX3ByaXZhdGUtPm1fcmVz
b3VyY2VSZXNwb25zZSk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJhd0hlYWRl
cnM7Cit9CisKIGRvdWJsZSBXZWJVUkxSZXNwb25zZTo6cmVzcG9uc2VUaW1lKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9wcml2YXRlLT5tX3Jlc291cmNlUmVzcG9uc2UtPnJlc3BvbnNlVGltZSgp
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZVByaXZhdGUu
aCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVzcG9uc2VQcml2YXRlLmgKaW5kZXggZGM1
Y2UyMi4uOWNjYmE3NCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNw
b25zZVByaXZhdGUuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlUHJp
dmF0ZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIFdlYlVSTFJlc3BvbnNlUHJpdmF0ZV9o
CiAjZGVmaW5lIFdlYlVSTFJlc3BvbnNlUHJpdmF0ZV9oCiAKKyNpbmNsdWRlICJXZWJSZXNvdXJj
ZVJhd0hlYWRlcnMuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgeyBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOyB9CkBAIC0zOSwxNSArNDAsMjUgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlVSTFJlc3BvbnNlUHJpdmF0ZSB7CiBwdWJsaWM6Ci0g
ICAgV2ViVVJMUmVzcG9uc2VQcml2YXRlKCkgOiBtX3Jlc291cmNlUmVzcG9uc2UoMCkgeyB9Cisg
ICAgV2ViVVJMUmVzcG9uc2VQcml2YXRlKCkgCisgICAgICA6IG1fcmVzb3VyY2VSZXNwb25zZSgw
KQorICAgICAgLCBtX3Jlc291cmNlUmF3SGVhZGVycygwKQorICAgIHsKKyAgICB9CiAKICAgICAv
LyBDYWxsZWQgYnkgV2ViVVJMUmVzcG9uc2Ugd2hlbiBpdCBubyBsb25nZXIgbmVlZHMgdGhpcyBv
YmplY3QuCiAgICAgdmlydHVhbCB2b2lkIGRpc3Bvc2UoKSA9IDA7CiAKICAgICBXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlKiBtX3Jlc291cmNlUmVzcG9uc2U7CisgICAgV2ViUmVzb3VyY2VSYXdI
ZWFkZXJzKiBtX3Jlc291cmNlUmF3SGVhZGVyczsKIAogICAgIC8vIEZJWE1FOiBNb3ZlIHRoaXMg
dG8gUmVzb3VyY2VSZXNwb25zZSBvbmNlIHdlIGhhdmUgYW4gaW50ZXJuYWwgY29uc3VtZXIuCiAg
ICAgV2ViU3RyaW5nIG1fZG93bmxvYWRGaWxlUGF0aDsKKworICAgIHZpcnR1YWwgfldlYlVSTFJl
c3BvbnNlUHJpdmF0ZSgpCisgICAgeworICAgICAgICBkZWxldGUgbV9yZXNvdXJjZVJhd0hlYWRl
cnM7CisgICAgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68104</attachid>
            <date>2010-09-20 10:13:05 -0700</date>
            <delta_ts>2010-09-29 06:18:40 -0700</delta_ts>
            <desc>patch</desc>
            <filename>raw-headers.patch</filename>
            <type>text/plain</type>
            <size>19902</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTM4M2UyNy4uNTlkMjY0NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wOS0yMCAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgaGVhZGVycyBhY3R1YWxs
eSB1c2VkIGJ5IG5ldHdvcmsgc3RhY2sgaW4gUmVzb3VyY2VzIHRhYgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYwOTIKKworICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNvbnRyb2xsZXI6OndpbGxTZW5kUmVxdWVzdCk6IEVuYWJsZSByYXcgaGVhZGVycyB3aGVuIGZy
b250LWVuZCBpcyBlbmFibGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJj
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZTo6dXBkYXRlUmVzcG9u
c2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6cmVwb3J0UmF3SGVhZGVycyk6
IEFkZGVkIGZsYWcgdG8gZW5hYmxlIHJhdyBoZWFkZXJzLgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0QmFzZTo6c2V0UmVwb3J0UmF3SGVhZGVycyk6IAorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZSk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHA6IEFkZGVkIHJhdyBoZWFk
ZXJzLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZUJhc2U6OnJlc291cmNlUmF3
SGVhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2V0UmVz
b3VyY2VSYXdIZWFkZXJzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVz
cG9uc2VCYXNlLmg6CisKIDIwMTAtMDktMjAgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOaWtvbGFzIFppbW1lcm1hbm4uCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IDczMTI2ZDcuLjVkMjE5ZmMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBi
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC05ODAsNiArOTgw
LDEwIEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1CiAgICAgICAgIHJldHVybjsKIAogICAgIHJl
cXVlc3Quc2V0UmVwb3J0TG9hZFRpbWluZyh0cnVlKTsKKyAgICAvLyBPbmx5IGVuYWJsZSByYXcg
aGVhZGVycyBpZiBmcm9udC1lbmQgaXMgYXR0YWNoZWQsIGFzIG90aGVyd2lzZSB3ZSBtYXkgbGFj
aworICAgIC8vIHBlcm1pc3Npb25zIHRvIGZldGNoIHRoZSBoZWFkZXJzLgorICAgIGlmIChtX2Zy
b250ZW5kKQorICAgICAgICByZXF1ZXN0LnNldFJlcG9ydFJhd0hlYWRlcnModHJ1ZSk7CiAKICAg
ICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkpIHsKICAgICAgICAgLy8gUmVkaXJlY3Qg
bWF5IGhhdmUgZW1wdHkgVVJMIGFuZCB3ZSdkIGxpa2UgdG8gbm90IGNyYXNoIHdpdGggaW52YWxp
ZCBIYXNoTWFwIGVudHJ5LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
UmVzb3VyY2UuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCmlu
ZGV4IGFjMmM5YTAuLmMwYmFkYzkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJj
ZS5jcHAKQEAgLTE3NSw3ICsxNzUsMTEgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZTo6dXBkYXRl
UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgICAgIGlmIChj
YWNoZWRSZXNvdXJjZSkKICAgICAgICAgICAgIG1fbWltZVR5cGUgPSBjYWNoZWRSZXNvdXJjZS0+
cmVzcG9uc2UoKS5taW1lVHlwZSgpOwogICAgIH0KLSAgICBtX3Jlc3BvbnNlSGVhZGVyRmllbGRz
ID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkcygpOworICAgIGlmIChSZXNvdXJjZVJlc3BvbnNl
OjpSZXNvdXJjZVJhd0hlYWRlcnMqIGhlYWRlcnMgPSByZXNwb25zZS5yZXNvdXJjZVJhd0hlYWRl
cnMoKS5nZXQoKSkgeworICAgICAgICBtX3JlcXVlc3RIZWFkZXJGaWVsZHMgPSBoZWFkZXJzLT5y
ZXF1ZXN0SGVhZGVyczsKKyAgICAgICAgbV9yZXNwb25zZUhlYWRlckZpZWxkcyA9IGhlYWRlcnMt
PnJlc3BvbnNlSGVhZGVyczsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9yZXNwb25zZUhlYWRlckZp
ZWxkcyA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZHMoKTsKICAgICBtX3Jlc3BvbnNlU3RhdHVz
Q29kZSA9IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCk7CiAgICAgbV9yZXNwb25zZVN0YXR1c1Rl
eHQgPSByZXNwb25zZS5odHRwU3RhdHVzVGV4dCgpOwogICAgIG1fc3VnZ2VzdGVkRmlsZW5hbWUg
PSByZXNwb25zZS5zdWdnZXN0ZWRGaWxlbmFtZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgKaW5kZXggMTYyMmNkZC4uNTgzZDFhZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCkBAIC0xMzYs
NiArMTM2LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCByZXBvcnRMb2Fk
VGltaW5nKCkgY29uc3QgeyByZXR1cm4gbV9yZXBvcnRMb2FkVGltaW5nOyB9CiAgICAgICAgIHZv
aWQgc2V0UmVwb3J0TG9hZFRpbWluZyhib29sIHJlcG9ydExvYWRUaW1pbmcpIHsgbV9yZXBvcnRM
b2FkVGltaW5nID0gcmVwb3J0TG9hZFRpbWluZzsgfQogCisgICAgICAgIC8vIFdoZXRoZXIgYWN0
dWFsIGhlYWRlcnMgYmVpbmcgc2VudC9yZWNlaXZlZCBzaG91bGQgYmUgY29sbGVjdGVkIGFuZCBy
ZXBvcnRlZCBmb3IgdGhlIHJlcXVlc3QuCisgICAgICAgIGJvb2wgcmVwb3J0UmF3SGVhZGVycygp
IGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0UmF3SGVhZGVyczsgfQorICAgICAgICB2b2lkIHNldFJl
cG9ydFJhd0hlYWRlcnMoYm9vbCByZXBvcnRSYXdIZWFkZXJzKSB7IG1fcmVwb3J0UmF3SGVhZGVy
cyA9IHJlcG9ydFJhd0hlYWRlcnM7IH0KKwogICAgICAgICAvLyBXaGF0IHRoaXMgcmVxdWVzdCBp
cyBmb3IuCiAgICAgICAgIFRhcmdldFR5cGUgdGFyZ2V0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGFyZ2V0VHlwZTsgfQogICAgICAgICB2b2lkIHNldFRhcmdldFR5cGUoVGFyZ2V0VHlwZSB0eXBl
KSB7IG1fdGFyZ2V0VHlwZSA9IHR5cGU7IH0KQEAgLTE0Nyw2ICsxNTEsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCh0cnVlKQog
ICAgICAgICAgICAgLCBtX3JlcG9ydFVwbG9hZFByb2dyZXNzKGZhbHNlKQogICAgICAgICAgICAg
LCBtX3JlcG9ydExvYWRUaW1pbmcoZmFsc2UpCisgICAgICAgICAgICAsIG1fcmVwb3J0UmF3SGVh
ZGVycyhmYWxzZSkKICAgICAgICAgICAgICwgbV90YXJnZXRUeXBlKFRhcmdldElzU3VicmVzb3Vy
Y2UpCiAgICAgICAgIHsKICAgICAgICAgfQpAQCAtMTYxLDYgKzE2Niw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgICAgICwgbV9wbGF0Zm9ybVJlcXVlc3RVcGRhdGVkKGZhbHNlKQog
ICAgICAgICAgICAgLCBtX3JlcG9ydFVwbG9hZFByb2dyZXNzKGZhbHNlKQogICAgICAgICAgICAg
LCBtX3JlcG9ydExvYWRUaW1pbmcoZmFsc2UpCisgICAgICAgICAgICAsIG1fcmVwb3J0UmF3SGVh
ZGVycyhmYWxzZSkKICAgICAgICAgICAgICwgbV90YXJnZXRUeXBlKFRhcmdldElzU3VicmVzb3Vy
Y2UpCiAgICAgICAgIHsKICAgICAgICAgfQpAQCAtMTgyLDYgKzE4OCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBib29sIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZDsK
ICAgICAgICAgYm9vbCBtX3JlcG9ydFVwbG9hZFByb2dyZXNzOwogICAgICAgICBib29sIG1fcmVw
b3J0TG9hZFRpbWluZzsKKyAgICAgICAgYm9vbCBtX3JlcG9ydFJhd0hlYWRlcnM7CiAgICAgICAg
IFRhcmdldFR5cGUgbV90YXJnZXRUeXBlOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCmluZGV4IGUyMzE2NTIu
LmY5NzhhNGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
c3BvbnNlQmFzZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVz
cG9uc2VCYXNlLmNwcApAQCAtNTE1LDYgKzUxNSwyMCBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2VC
YXNlOjpzZXRSZXNvdXJjZUxvYWRUaW1pbmcoUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+
CiAgICAgbV9yZXNvdXJjZUxvYWRUaW1pbmcgPSByZXNvdXJjZUxvYWRUaW1pbmc7CiB9CiAKK1Bh
c3NSZWZQdHI8UmVzb3VyY2VSZXNwb25zZUJhc2U6OlJlc291cmNlUmF3SGVhZGVycz4gUmVzb3Vy
Y2VSZXNwb25zZUJhc2U6OnJlc291cmNlUmF3SGVhZGVycygpIGNvbnN0Cit7CisgICAgbGF6eUlu
aXQoKTsKKworICAgIHJldHVybiBtX3Jlc291cmNlUmF3SGVhZGVycy5nZXQoKTsKK30KKwordm9p
ZCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2V0UmVzb3VyY2VSYXdIZWFkZXJzKFBhc3NSZWZQdHI8
UmVzb3VyY2VSZXNwb25zZUJhc2U6OlJlc291cmNlUmF3SGVhZGVycz4gaGVhZGVycykKK3sKKyAg
ICBsYXp5SW5pdCgpOworCisgICAgbV9yZXNvdXJjZVJhd0hlYWRlcnMgPSBoZWFkZXJzOworfQor
CiB2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjpsYXp5SW5pdCgpIGNvbnN0CiB7CiAgICAgY29u
c3RfY2FzdDxSZXNvdXJjZVJlc3BvbnNlKj4oc3RhdGljX2Nhc3Q8Y29uc3QgUmVzb3VyY2VSZXNw
b25zZSo+KHRoaXMpKS0+cGxhdGZvcm1MYXp5SW5pdCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmggYi9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAppbmRleCA2NWUyNGFkLi45N2RmNDdkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2Uu
aAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaApA
QCAtNDIsNiArNDIsMTEgQEAgc3RydWN0IENyb3NzVGhyZWFkUmVzb3VyY2VSZXNwb25zZURhdGE7
CiAvLyBEbyBub3QgdXNlIHRoaXMgY2xhc3MgZGlyZWN0bHksIHVzZSB0aGUgY2xhc3MgUmVzcG9u
c2VSZXNwb25zZSBpbnN0ZWFkCiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlQmFzZSA6IHB1YmxpYyBG
YXN0QWxsb2NCYXNlIHsKIHB1YmxpYzoKKyAgICBzdHJ1Y3QgUmVzb3VyY2VSYXdIZWFkZXJzIDog
UmVmQ291bnRlZDxSZXNvdXJjZVJhd0hlYWRlcnM+IHsKKyAgICAgICAgSFRUUEhlYWRlck1hcCBy
ZXF1ZXN0SGVhZGVyczsKKyAgICAgICAgSFRUUEhlYWRlck1hcCByZXNwb25zZUhlYWRlcnM7Cisg
ICAgfTsKKwogICAgIHN0YXRpYyBQYXNzT3duUHRyPFJlc291cmNlUmVzcG9uc2U+IGFkb3B0KFBh
c3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4pOwogCiAgICAgLy8gR2V0
cyBhIGNvcHkgb2YgdGhlIGRhdGEgc3VpdGFibGUgZm9yIHBhc3NpbmcgdG8gYW5vdGhlciB0aHJl
YWQuCkBAIC0xMDksNiArMTE0LDkgQEAgcHVibGljOgogICAgIFJlc291cmNlTG9hZFRpbWluZyog
cmVzb3VyY2VMb2FkVGltaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRUaW1p
bmcoUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+KTsKIAorICAgIFBhc3NSZWZQdHI8UmVz
b3VyY2VSYXdIZWFkZXJzPiByZXNvdXJjZVJhd0hlYWRlcnMoKSBjb25zdDsKKyAgICB2b2lkIHNl
dFJlc291cmNlUmF3SGVhZGVycyhQYXNzUmVmUHRyPFJlc291cmNlUmF3SGVhZGVycz4pOworCiAg
ICAgLy8gVGhlIFJlc291cmNlUmVzcG9uc2Ugc3ViY2xhc3MgbWF5ICJzaGFkb3ciIHRoaXMgbWV0
aG9kIHRvIHByb3ZpZGUgcGxhdGZvcm0tc3BlY2lmaWMgbWVtb3J5IHVzYWdlIGluZm9ybWF0aW9u
CiAgICAgdW5zaWduZWQgbWVtb3J5VXNhZ2UoKSBjb25zdAogICAgIHsKQEAgLTE0Myw2ICsxNTEs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgdW5zaWduZWQgbV9jb25uZWN0aW9uSUQ7CiAgICAgYm9vbCBt
X2Nvbm5lY3Rpb25SZXVzZWQgOiAxOwogICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+IG1f
cmVzb3VyY2VMb2FkVGltaW5nOworICAgIFJlZlB0cjxSZXNvdXJjZVJhd0hlYWRlcnM+IG1fcmVz
b3VyY2VSYXdIZWFkZXJzOwogCiAgICAgYm9vbCBtX2lzTnVsbCA6IDE7CiAgICAgCmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCA0N2IwZTYzLi5hZjEwMDJlIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAor
MjAxMC0wOS0yMCAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6
IGRpc3BsYXkgaGVhZGVycyBhY3R1YWxseSB1c2VkIGJ5IG5ldHdvcmsgc3RhY2sgaW4gUmVzb3Vy
Y2VzIHRhYgorICAgICAgICBQbHVtYmluZyByYXcgaGVhZGVycy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MDkyCisKKyAgICAgICAgKiBXZWJLaXQu
Z3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJSZXNvdXJjZVJhd0hlYWRlcnMuaDogQWRkZWQuCisg
ICAgICAgICogcHVibGljL1dlYlVSTFJlcXVlc3QuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViVVJM
UmVzcG9uc2UuaDoKKyAgICAgICAgKiBzcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJEZXZUb29sc0FnZW50SW1wbDo6d2lsbFNlbmRSZXF1ZXN0KToKKyAg
ICAgICAgKiBzcmMvV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYlJlc291cmNlUmF3SGVhZGVyczo6SGVhZGVyc01hcDo6SGVhZGVyc01hcCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlUmF3SGVhZGVyczo6fldlYlJlc291cmNlUmF3SGVh
ZGVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlUmF3SGVhZGVyczo6cmVxdWVzdEhl
YWRlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OnJlc3BvbnNl
SGVhZGVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlUmF3SGVhZGVyczo6V2ViUmVz
b3VyY2VSYXdIZWFkZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VSYXdIZWFkZXJz
OjpIZWFkZXJzTWFwOjphZGQpOgorICAgICAgICAqIHNyYy9XZWJVUkxSZXF1ZXN0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViVVJMUmVxdWVzdDo6c2V0UmVwb3J0UmF3SGVhZGVycyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlVSTFJlcXVlc3Q6OnJlcG9ydFJhd0hlYWRlcnMpOgorICAgICAgICAq
IHNyYy9XZWJVUkxSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFJlc3BvbnNl
OjpyZXNvdXJjZVJhd0hlYWRlcnMpOgorICAgICAgICAqIHNyYy9XZWJVUkxSZXNwb25zZVByaXZh
dGUuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVzcG9uc2VQcml2YXRlOjpXZWJVUkxSZXNw
b25zZVByaXZhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXNwb25zZVByaXZhdGU6On5X
ZWJVUkxSZXNwb25zZVByaXZhdGUpOgorCiAyMDEwLTA5LTE5ICBTaGVyaWZmIEJvdCAgPHdlYmtp
dC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByNjc3NDkuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4IDM1MjNmMjEuLjM4ODM0ZmIgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwCkBAIC0yMjksNiArMjI5LDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlJhbmdl
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUmVjdC5oJywKICAgICAgICAgICAgICAg
ICAncHVibGljL1dlYlJlZ3VsYXJFeHByZXNzaW9uLmgnLAorICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
UnVudGltZUZlYXR1cmVzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU2Nyb2xsYmFy
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU2Nyb2xsYmFyQ2xpZW50LmgnLApAQCAt
NDk1LDYgKzQ5Niw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJQb3B1cE1lbnVJbXBsLmgn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViUmFuZ2UuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL1dlYlJlZ3VsYXJFeHByZXNzaW9uLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJS
ZXNvdXJjZVJhd0hlYWRlcnMuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlJ1bnRpbWVG
ZWF0dXJlcy5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU2NyaXB0Q29udHJvbGxlci5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU2Nyb2xsYmFySW1wbC5jcHAnLApkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSZXNvdXJjZVJhd0hlYWRlcnMuaCBiL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWU0MTdjYQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmgKQEAgLTAsMCArMSw4MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV2ViUmVzb3VyY2VSYXdIZWFkZXJzX2gKKyNkZWZpbmUgV2ViUmVzb3VyY2VSYXdI
ZWFkZXJzX2gKKworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQ
dHIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK2Ns
YXNzIEhUVFBIZWFkZXJNYXA7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJS
ZXNvdXJjZVJhd0hlYWRlcnNQcml2YXRlOworY2xhc3MgV2ViU3RyaW5nOworCitjbGFzcyBXZWJS
ZXNvdXJjZVJhd0hlYWRlcnMgeworcHVibGljOgorICAgIGNsYXNzIEhlYWRlcnNNYXAgeworICAg
IHB1YmxpYzoKKyAgICAgICAgdm9pZCBhZGQoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBX
ZWJTdHJpbmcmIHZhbHVlKTsKKworICAgIHByb3RlY3RlZDoKKyAgICBmcmllbmQgY2xhc3MgV2Vi
UmVzb3VyY2VSYXdIZWFkZXJzOworICAgIEhlYWRlcnNNYXAoV2ViQ29yZTo6SFRUUEhlYWRlck1h
cCopOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCogbV9w
cml2YXRlOworICAgIH07CisKKyAgICB+V2ViUmVzb3VyY2VSYXdIZWFkZXJzKCk7CisKKyAgICBI
ZWFkZXJzTWFwKiByZXF1ZXN0SGVhZGVycygpIGNvbnN0OworICAgIEhlYWRlcnNNYXAqIHJlc3Bv
bnNlSGVhZGVycygpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgICAgZnJpZW5kIGNsYXNzIFdlYlVS
TFJlc3BvbnNlOworICAgIFdlYlJlc291cmNlUmF3SGVhZGVycyhXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlKik7CisKK3ByaXZhdGU6CisgICAgV2ViUmVzb3VyY2VSYXdIZWFkZXJzKGNvbnN0IFdl
YlJlc291cmNlUmF3SGVhZGVycyYpOworICAgIFdlYlJlc291cmNlUmF3SGVhZGVycyYgb3BlcmF0
b3IgPShjb25zdCBXZWJSZXNvdXJjZVJhd0hlYWRlcnMmKTsKKworICAgIEhlYWRlcnNNYXAqIG1f
cmVxdWVzdEhlYWRlcnM7CisgICAgSGVhZGVyc01hcCogbV9yZXNwb25zZUhlYWRlcnM7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlVSTFJlcXVlc3QuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
VVJMUmVxdWVzdC5oCmluZGV4IDM2ZDY3OTEuLmU2NGNlODAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVVJMUmVxdWVzdC5oCkBAIC0xMzQsNiArMTM0LDExIEBAIHB1YmxpYzoKICAgICBXRUJL
SVRfQVBJIGJvb2wgcmVwb3J0TG9hZFRpbWluZygpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgdm9p
ZCBzZXRSZXBvcnRMb2FkVGltaW5nKGJvb2wpOwogCisgICAgLy8gQ29udHJvbHMgd2hldGhlciBh
Y3R1YWwgaGVhZGVycyBzZW50IGFuZCByZWNlaXZlZCBmb3IgcmVxdWVzdCBhcmUKKyAgICAvLyBj
b2xsZWN0ZWQgYW5kIHJlcG9ydGVkLgorICAgIFdFQktJVF9BUEkgYm9vbCByZXBvcnRSYXdIZWFk
ZXJzKCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlcG9ydFJhd0hlYWRlcnMoYm9v
bCk7CisKICAgICBXRUJLSVRfQVBJIFRhcmdldFR5cGUgdGFyZ2V0VHlwZSgpIGNvbnN0OwogICAg
IFdFQktJVF9BUEkgdm9pZCBzZXRUYXJnZXRUeXBlKFRhcmdldFR5cGUpOwogCmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJlc3BvbnNlLmggYi9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlVSTFJlc3BvbnNlLmgKaW5kZXggYWM3NWQ0Yy4uYzhhZjU2YSAxMDA2NDQK
LS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXNwb25zZS5oCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVzcG9uc2UuaApAQCAtNDEsNiArNDEsNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ1N0cmluZzsKIGNsYXNzIFdlYkhUVFBIZWFkZXJW
aXNpdG9yOworY2xhc3MgV2ViUmVzb3VyY2VSYXdIZWFkZXJzOwogY2xhc3MgV2ViU3RyaW5nOwog
Y2xhc3MgV2ViVVJMOwogY2xhc3MgV2ViVVJMTG9hZFRpbWluZzsKQEAgLTgyLDYgKzgzLDggQEAg
cHVibGljOgogICAgIFdFQktJVF9BUEkgV2ViVVJMTG9hZFRpbWluZyBsb2FkVGltaW5nKCk7CiAg
ICAgV0VCS0lUX0FQSSB2b2lkIHNldExvYWRUaW1pbmcoY29uc3QgV2ViVVJMTG9hZFRpbWluZyYp
OwogCisgICAgV0VCS0lUX0FQSSBXZWJSZXNvdXJjZVJhd0hlYWRlcnMqIHJlc291cmNlUmF3SGVh
ZGVycygpOworCiAgICAgV0VCS0lUX0FQSSBkb3VibGUgcmVzcG9uc2VUaW1lKCkgY29uc3Q7CiAg
ICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlc3BvbnNlVGltZShkb3VibGUpOwogCmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCmluZGV4IDliYTYzZWMuLmQ4MWYy
NjMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwu
Y3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBA
IC0zMjMsOCArMzIzLDExIEBAIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmlkZW50aWZpZXJG
b3JJbml0aWFsUmVxdWVzdCgKIAogdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6d2lsbFNlbmRS
ZXF1ZXN0KHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VJZCwgV2ViVVJMUmVxdWVzdCYgcmVxdWVzdCkK
IHsKLSAgICBpZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaWMgPSBpbnNwZWN0b3JDb250cm9sbGVy
KCkpCisgICAgaWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGljID0gaW5zcGVjdG9yQ29udHJvbGxl
cigpKSB7CiAgICAgICAgIGljLT53aWxsU2VuZFJlcXVlc3QocmVzb3VyY2VJZCwgcmVxdWVzdC50
b011dGFibGVSZXNvdXJjZVJlcXVlc3QoKSwgUmVzb3VyY2VSZXNwb25zZSgpKTsKKyAgICAgICAg
aWYgKGljLT5oYXNGcm9udGVuZCgpICYmIHJlcXVlc3QucmVwb3J0TG9hZFRpbWluZygpKQorICAg
ICAgICAgICAgcmVxdWVzdC5zZXRSZXBvcnRSYXdIZWFkZXJzKHRydWUpOworICAgIH0KIH0KIAog
dm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6ZGlkUmVjZWl2ZURhdGEodW5zaWduZWQgbG9uZyBy
ZXNvdXJjZUlkLCBpbnQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJSZXNvdXJjZVJhd0hlYWRlcnMuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSZXNvdXJj
ZVJhd0hlYWRlcnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU1Yjg4
ODEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJlc291cmNlUmF3
SGVhZGVycy5jcHAKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJSZXNvdXJjZVJhd0hlYWRlcnMuaCIKKworI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2Uu
aCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OkhlYWRlcnNNYXA6
OkhlYWRlcnNNYXAoV2ViQ29yZTo6SFRUUEhlYWRlck1hcCAqaGVhZGVycykKK3sKKyAgICBtX3By
aXZhdGUgPSBoZWFkZXJzOworfQorCitXZWJSZXNvdXJjZVJhd0hlYWRlcnM6On5XZWJSZXNvdXJj
ZVJhd0hlYWRlcnMoKQoreworICAgIGRlbGV0ZSBtX3JlcXVlc3RIZWFkZXJzOworICAgIGRlbGV0
ZSBtX3Jlc3BvbnNlSGVhZGVyczsKK30KKworV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpIZWFkZXJz
TWFwKiBXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OnJlcXVlc3RIZWFkZXJzKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9yZXF1ZXN0SGVhZGVyczsgICAgCit9CisKK1dlYlJlc291cmNlUmF3SGVhZGVy
czo6SGVhZGVyc01hcCogV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpyZXNwb25zZUhlYWRlcnMoKSBj
b25zdAoreworICAgIHJldHVybiBtX3Jlc3BvbnNlSGVhZGVyczsgICAgCit9CisKK1dlYlJlc291
cmNlUmF3SGVhZGVyczo6V2ViUmVzb3VyY2VSYXdIZWFkZXJzKFJlc291cmNlUmVzcG9uc2UgKnJl
c3BvbnNlKQoreworICAgIFJlZlB0cjxSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJhd0hlYWRl
cnM+IGhlYWRlcnMgPSByZXNwb25zZS0+cmVzb3VyY2VSYXdIZWFkZXJzKCk7CisgICAgaWYgKCFo
ZWFkZXJzLmdldCgpKSB7CisgICAgICAgIGhlYWRlcnMgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VS
ZXNwb25zZTo6UmVzb3VyY2VSYXdIZWFkZXJzKCkpOworICAgICAgICByZXNwb25zZS0+c2V0UmVz
b3VyY2VSYXdIZWFkZXJzKGhlYWRlcnMpOworICAgIH0KKyAgICBtX3JlcXVlc3RIZWFkZXJzID0g
bmV3IEhlYWRlcnNNYXAoJmhlYWRlcnMtPnJlcXVlc3RIZWFkZXJzKTsKKyAgICBtX3Jlc3BvbnNl
SGVhZGVycyA9IG5ldyBIZWFkZXJzTWFwKCZoZWFkZXJzLT5yZXNwb25zZUhlYWRlcnMpOworfQor
Cit2b2lkIFdlYlJlc291cmNlUmF3SGVhZGVyczo6SGVhZGVyc01hcDo6YWRkKGNvbnN0IFdlYlN0
cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBwYWlyPEhUVFBIZWFk
ZXJNYXA6Oml0ZXJhdG9yLCBib29sPiByZXN1bHQgPSBtX3ByaXZhdGUtPmFkZChuYW1lLCB2YWx1
ZSk7CisgICAgaWYgKCFyZXN1bHQuc2Vjb25kKQorICAgICAgICByZXN1bHQuZmlyc3QtPnNlY29u
ZCArPSBTdHJpbmcoIiwgIikgKyB2YWx1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlcXVlc3QuY3BwIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0LmNwcAppbmRleCAyOTUwMDc2Li5iMjQzNDIwIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlcXVlc3QuY3BwCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVxdWVzdC5jcHAKQEAgLTIwMSw2ICsyMDEsMTYgQEAg
Ym9vbCBXZWJVUkxSZXF1ZXN0OjpyZXBvcnRMb2FkVGltaW5nKCkgY29uc3QKICAgICByZXR1cm4g
bV9wcml2YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+cmVwb3J0TG9hZFRpbWluZygpOwogfQogCit2
b2lkIFdlYlVSTFJlcXVlc3Q6OnNldFJlcG9ydFJhd0hlYWRlcnMoYm9vbCByZXBvcnRSYXdIZWFk
ZXJzKQoreworICAgIG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlcXVlc3QtPnNldFJlcG9ydFJhd0hl
YWRlcnMocmVwb3J0UmF3SGVhZGVycyk7Cit9CisKK2Jvb2wgV2ViVVJMUmVxdWVzdDo6cmVwb3J0
UmF3SGVhZGVycygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJl
cXVlc3QtPnJlcG9ydFJhd0hlYWRlcnMoKTsKK30KKwogdm9pZCBXZWJVUkxSZXF1ZXN0OjpzZXRS
ZXBvcnRMb2FkVGltaW5nKGJvb2wgcmVwb3J0TG9hZFRpbWluZykKIHsKICAgICBtX3ByaXZhdGUt
Pm1fcmVzb3VyY2VSZXF1ZXN0LT5zZXRSZXBvcnRMb2FkVGltaW5nKHJlcG9ydExvYWRUaW1pbmcp
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZS5jcHAgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlLmNwcAppbmRleCBhYWU0MTNjLi5iY2Ew
YjE3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlLmNwcAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlLmNwcApAQCAtMTI5LDYgKzEy
OSwxMyBAQCB2b2lkIFdlYlVSTFJlc3BvbnNlOjpzZXRMb2FkVGltaW5nKGNvbnN0IFdlYlVSTExv
YWRUaW1pbmcmIHRpbWluZykKICAgICBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXNwb25zZS0+c2V0
UmVzb3VyY2VMb2FkVGltaW5nKGxvYWRUaW1pbmcucmVsZWFzZSgpKTsKIH0KIAorV2ViUmVzb3Vy
Y2VSYXdIZWFkZXJzKiBXZWJVUkxSZXNwb25zZTo6cmVzb3VyY2VSYXdIZWFkZXJzKCkKK3sKKyAg
ICBpZiAoIW1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJhd0hlYWRlcnMuZ2V0KCkpCisgICAgICAgIG1f
cHJpdmF0ZS0+bV9yZXNvdXJjZVJhd0hlYWRlcnMgPSBhZG9wdFB0cihuZXcgV2ViUmVzb3VyY2VS
YXdIZWFkZXJzKG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlc3BvbnNlKSk7CisgICAgcmV0dXJuIG1f
cHJpdmF0ZS0+bV9yZXNvdXJjZVJhd0hlYWRlcnMuZ2V0KCk7Cit9CisKIGRvdWJsZSBXZWJVUkxS
ZXNwb25zZTo6cmVzcG9uc2VUaW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5t
X3Jlc291cmNlUmVzcG9uc2UtPnJlc3BvbnNlVGltZSgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZVByaXZhdGUuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVVJMUmVzcG9uc2VQcml2YXRlLmgKaW5kZXggZGM1Y2UyMi4uYTczNWFjYyAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZVByaXZhdGUuaAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlUHJpdmF0ZS5oCkBAIC0zMSw2ICszMSw3IEBA
CiAjaWZuZGVmIFdlYlVSTFJlc3BvbnNlUHJpdmF0ZV9oCiAjZGVmaW5lIFdlYlVSTFJlc3BvbnNl
UHJpdmF0ZV9oCiAKKyNpbmNsdWRlICJXZWJSZXNvdXJjZVJhd0hlYWRlcnMuaCIKICNpbmNsdWRl
ICJXZWJTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBSZXNvdXJjZVJlc3Bv
bnNlOyB9CkBAIC00NSw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzcG9z
ZSgpID0gMDsKIAogICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UqIG1fcmVzb3VyY2VSZXNw
b25zZTsKKyAgICBPd25QdHI8V2ViUmVzb3VyY2VSYXdIZWFkZXJzPiBtX3Jlc291cmNlUmF3SGVh
ZGVyczsKIAogICAgIC8vIEZJWE1FOiBNb3ZlIHRoaXMgdG8gUmVzb3VyY2VSZXNwb25zZSBvbmNl
IHdlIGhhdmUgYW4gaW50ZXJuYWwgY29uc3VtZXIuCiAgICAgV2ViU3RyaW5nIG1fZG93bmxvYWRG
aWxlUGF0aDsK
</data>
<flag name="review"
          id="57551"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69186</attachid>
            <date>2010-09-29 06:18:40 -0700</date>
            <delta_ts>2010-09-29 09:23:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>raw-headers.patch</filename>
            <type>text/plain</type>
            <size>20664</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzNjYWYxZS4uMzcwZmQwYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMC0wOS0yOSAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgaGVhZGVycyBhY3R1YWxs
eSB1c2VkIGJ5IG5ldHdvcmsgc3RhY2sgaW4gUmVzb3VyY2VzIHRhYgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYwOTIKKworICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNvbnRyb2xsZXI6OndpbGxTZW5kUmVxdWVzdCk6IGVuYWJsZSByYXcgaGVhZGVycyByZXBvcnRp
bmcgaWYgZnJvbnQtZW5kIGlzIHZpc2libGUuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlOjp1cGRh
dGVSZXNwb25zZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RC
YXNlLmg6IEFkZGVkIGZsYWcgdG8gZW5hYmxlIHJhdyBoZWFkZXJzIHJlcG9ydGluZy4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OnJlcG9ydFJhd0hlYWRlcnMpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6c2V0UmVwb3J0UmF3SGVhZGVycyk6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpSZXNvdXJjZVJlcXVlc3RC
YXNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNw
cDogQWRkZWQgc3VwcG9ydCBmb3IgcmF3IGhlYWRlcnMuCisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlQmFzZTo6cmVzb3VyY2VSYXdIZWFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlUmVzcG9uc2VCYXNlOjpzZXRSZXNvdXJjZVJhd0hlYWRlcnMpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaDoKKwogMjAxMC0wOS0yOSAg
TU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbQ2hyb21pdW1d
IGZhaWxlZCB0byBidWlsZCB3aXRob3V0IEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcCBiL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCmluZGV4IGYyZWUyYzEuLjg0NjNjMWMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCisr
KyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCkBAIC0xMDEwLDYg
KzEwMTAsMTAgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsU2VuZFJlcXVlc3QodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBSZXNvdXJjZVJlcXUKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgcmVxdWVzdC5zZXRSZXBvcnRMb2FkVGltaW5nKHRydWUpOworICAgIC8vIE9ubHkgZW5hYmxl
IHJhdyBoZWFkZXJzIGlmIGZyb250LWVuZCBpcyBhdHRhY2hlZCwgYXMgb3RoZXJ3aXNlIHdlIG1h
eSBsYWNrCisgICAgLy8gcGVybWlzc2lvbnMgdG8gZmV0Y2ggdGhlIGhlYWRlcnMuCisgICAgaWYg
KG1fZnJvbnRlbmQpCisgICAgICAgIHJlcXVlc3Quc2V0UmVwb3J0UmF3SGVhZGVycyh0cnVlKTsK
IAogICAgIGlmICghcmVkaXJlY3RSZXNwb25zZS5pc051bGwoKSkgewogICAgICAgICAvLyBSZWRp
cmVjdCBtYXkgaGF2ZSBlbXB0eSBVUkwgYW5kIHdlJ2QgbGlrZSB0byBub3QgY3Jhc2ggd2l0aCBp
bnZhbGlkIEhhc2hNYXAgZW50cnkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZS5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5j
cHAKaW5kZXggYWMyYzlhMC4uYzBiYWRjOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yUmVzb3VyY2UuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlLmNwcApAQCAtMTc1LDcgKzE3NSwxMSBAQCB2b2lkIEluc3BlY3RvclJlc291cmNlOjp1
cGRhdGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICAgICAg
aWYgKGNhY2hlZFJlc291cmNlKQogICAgICAgICAgICAgbV9taW1lVHlwZSA9IGNhY2hlZFJlc291
cmNlLT5yZXNwb25zZSgpLm1pbWVUeXBlKCk7CiAgICAgfQotICAgIG1fcmVzcG9uc2VIZWFkZXJG
aWVsZHMgPSByZXNwb25zZS5odHRwSGVhZGVyRmllbGRzKCk7CisgICAgaWYgKFJlc291cmNlUmVz
cG9uc2U6OlJlc291cmNlUmF3SGVhZGVycyogaGVhZGVycyA9IHJlc3BvbnNlLnJlc291cmNlUmF3
SGVhZGVycygpLmdldCgpKSB7CisgICAgICAgIG1fcmVxdWVzdEhlYWRlckZpZWxkcyA9IGhlYWRl
cnMtPnJlcXVlc3RIZWFkZXJzOworICAgICAgICBtX3Jlc3BvbnNlSGVhZGVyRmllbGRzID0gaGVh
ZGVycy0+cmVzcG9uc2VIZWFkZXJzOworICAgIH0gZWxzZQorICAgICAgICBtX3Jlc3BvbnNlSGVh
ZGVyRmllbGRzID0gcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkcygpOwogICAgIG1fcmVzcG9uc2VT
dGF0dXNDb2RlID0gcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKTsKICAgICBtX3Jlc3BvbnNlU3Rh
dHVzVGV4dCA9IHJlc3BvbnNlLmh0dHBTdGF0dXNUZXh0KCk7CiAgICAgbV9zdWdnZXN0ZWRGaWxl
bmFtZSA9IHJlc3BvbnNlLnN1Z2dlc3RlZEZpbGVuYW1lKCk7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oIGIvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAppbmRleCAxNjIyY2RkLi41ODNkMWFmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgKQEAg
LTEzNiw2ICsxMzYsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIHJlcG9y
dExvYWRUaW1pbmcoKSBjb25zdCB7IHJldHVybiBtX3JlcG9ydExvYWRUaW1pbmc7IH0KICAgICAg
ICAgdm9pZCBzZXRSZXBvcnRMb2FkVGltaW5nKGJvb2wgcmVwb3J0TG9hZFRpbWluZykgeyBtX3Jl
cG9ydExvYWRUaW1pbmcgPSByZXBvcnRMb2FkVGltaW5nOyB9CiAKKyAgICAgICAgLy8gV2hldGhl
ciBhY3R1YWwgaGVhZGVycyBiZWluZyBzZW50L3JlY2VpdmVkIHNob3VsZCBiZSBjb2xsZWN0ZWQg
YW5kIHJlcG9ydGVkIGZvciB0aGUgcmVxdWVzdC4KKyAgICAgICAgYm9vbCByZXBvcnRSYXdIZWFk
ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9yZXBvcnRSYXdIZWFkZXJzOyB9CisgICAgICAgIHZvaWQg
c2V0UmVwb3J0UmF3SGVhZGVycyhib29sIHJlcG9ydFJhd0hlYWRlcnMpIHsgbV9yZXBvcnRSYXdI
ZWFkZXJzID0gcmVwb3J0UmF3SGVhZGVyczsgfQorCiAgICAgICAgIC8vIFdoYXQgdGhpcyByZXF1
ZXN0IGlzIGZvci4KICAgICAgICAgVGFyZ2V0VHlwZSB0YXJnZXRUeXBlKCkgY29uc3QgeyByZXR1
cm4gbV90YXJnZXRUeXBlOyB9CiAgICAgICAgIHZvaWQgc2V0VGFyZ2V0VHlwZShUYXJnZXRUeXBl
IHR5cGUpIHsgbV90YXJnZXRUeXBlID0gdHlwZTsgfQpAQCAtMTQ3LDYgKzE1MSw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICwgbV9wbGF0Zm9ybVJlcXVlc3RVcGRhdGVkKHRy
dWUpCiAgICAgICAgICAgICAsIG1fcmVwb3J0VXBsb2FkUHJvZ3Jlc3MoZmFsc2UpCiAgICAgICAg
ICAgICAsIG1fcmVwb3J0TG9hZFRpbWluZyhmYWxzZSkKKyAgICAgICAgICAgICwgbV9yZXBvcnRS
YXdIZWFkZXJzKGZhbHNlKQogICAgICAgICAgICAgLCBtX3RhcmdldFR5cGUoVGFyZ2V0SXNTdWJy
ZXNvdXJjZSkKICAgICAgICAgewogICAgICAgICB9CkBAIC0xNjEsNiArMTY2LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICAgICAgLCBtX3BsYXRmb3JtUmVxdWVzdFVwZGF0ZWQoZmFs
c2UpCiAgICAgICAgICAgICAsIG1fcmVwb3J0VXBsb2FkUHJvZ3Jlc3MoZmFsc2UpCiAgICAgICAg
ICAgICAsIG1fcmVwb3J0TG9hZFRpbWluZyhmYWxzZSkKKyAgICAgICAgICAgICwgbV9yZXBvcnRS
YXdIZWFkZXJzKGZhbHNlKQogICAgICAgICAgICAgLCBtX3RhcmdldFR5cGUoVGFyZ2V0SXNTdWJy
ZXNvdXJjZSkKICAgICAgICAgewogICAgICAgICB9CkBAIC0xODIsNiArMTg4LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICBtdXRhYmxlIGJvb2wgbV9wbGF0Zm9ybVJlcXVlc3RVcGRh
dGVkOwogICAgICAgICBib29sIG1fcmVwb3J0VXBsb2FkUHJvZ3Jlc3M7CiAgICAgICAgIGJvb2wg
bV9yZXBvcnRMb2FkVGltaW5nOworICAgICAgICBib29sIG1fcmVwb3J0UmF3SGVhZGVyczsKICAg
ICAgICAgVGFyZ2V0VHlwZSBtX3RhcmdldFR5cGU7CiAKICAgICBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAKaW5kZXggZTIz
MTY1Mi4uZjk3OGE0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlUmVzcG9uc2VCYXNlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuY3BwCkBAIC01MTUsNiArNTE1LDIwIEBAIHZvaWQgUmVzb3VyY2VSZXNw
b25zZUJhc2U6OnNldFJlc291cmNlTG9hZFRpbWluZyhQYXNzUmVmUHRyPFJlc291cmNlTG9hZFRp
bWluZz4KICAgICBtX3Jlc291cmNlTG9hZFRpbWluZyA9IHJlc291cmNlTG9hZFRpbWluZzsKIH0K
IAorUGFzc1JlZlB0cjxSZXNvdXJjZVJlc3BvbnNlQmFzZTo6UmVzb3VyY2VSYXdIZWFkZXJzPiBS
ZXNvdXJjZVJlc3BvbnNlQmFzZTo6cmVzb3VyY2VSYXdIZWFkZXJzKCkgY29uc3QKK3sKKyAgICBs
YXp5SW5pdCgpOworCisgICAgcmV0dXJuIG1fcmVzb3VyY2VSYXdIZWFkZXJzLmdldCgpOworfQor
Cit2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjpzZXRSZXNvdXJjZVJhd0hlYWRlcnMoUGFzc1Jl
ZlB0cjxSZXNvdXJjZVJlc3BvbnNlQmFzZTo6UmVzb3VyY2VSYXdIZWFkZXJzPiBoZWFkZXJzKQor
eworICAgIGxhenlJbml0KCk7CisKKyAgICBtX3Jlc291cmNlUmF3SGVhZGVycyA9IGhlYWRlcnM7
Cit9CisKIHZvaWQgUmVzb3VyY2VSZXNwb25zZUJhc2U6OmxhenlJbml0KCkgY29uc3QKIHsKICAg
ICBjb25zdF9jYXN0PFJlc291cmNlUmVzcG9uc2UqPihzdGF0aWNfY2FzdDxjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlKj4odGhpcykpLT5wbGF0Zm9ybUxhenlJbml0KCk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaCBiL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oCmluZGV4IDY1ZTI0YWQuLjk3ZGY0
N2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNl
QmFzZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFz
ZS5oCkBAIC00Miw2ICs0MiwxMSBAQCBzdHJ1Y3QgQ3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNl
RGF0YTsKIC8vIERvIG5vdCB1c2UgdGhpcyBjbGFzcyBkaXJlY3RseSwgdXNlIHRoZSBjbGFzcyBS
ZXNwb25zZVJlc3BvbnNlIGluc3RlYWQKIGNsYXNzIFJlc291cmNlUmVzcG9uc2VCYXNlIDogcHVi
bGljIEZhc3RBbGxvY0Jhc2UgewogcHVibGljOgorICAgIHN0cnVjdCBSZXNvdXJjZVJhd0hlYWRl
cnMgOiBSZWZDb3VudGVkPFJlc291cmNlUmF3SGVhZGVycz4geworICAgICAgICBIVFRQSGVhZGVy
TWFwIHJlcXVlc3RIZWFkZXJzOworICAgICAgICBIVFRQSGVhZGVyTWFwIHJlc3BvbnNlSGVhZGVy
czsKKyAgICB9OworCiAgICAgc3RhdGljIFBhc3NPd25QdHI8UmVzb3VyY2VSZXNwb25zZT4gYWRv
cHQoUGFzc093blB0cjxDcm9zc1RocmVhZFJlc291cmNlUmVzcG9uc2VEYXRhPik7CiAKICAgICAv
LyBHZXRzIGEgY29weSBvZiB0aGUgZGF0YSBzdWl0YWJsZSBmb3IgcGFzc2luZyB0byBhbm90aGVy
IHRocmVhZC4KQEAgLTEwOSw2ICsxMTQsOSBAQCBwdWJsaWM6CiAgICAgUmVzb3VyY2VMb2FkVGlt
aW5nKiByZXNvdXJjZUxvYWRUaW1pbmcoKSBjb25zdDsKICAgICB2b2lkIHNldFJlc291cmNlTG9h
ZFRpbWluZyhQYXNzUmVmUHRyPFJlc291cmNlTG9hZFRpbWluZz4pOwogCisgICAgUGFzc1JlZlB0
cjxSZXNvdXJjZVJhd0hlYWRlcnM+IHJlc291cmNlUmF3SGVhZGVycygpIGNvbnN0OworICAgIHZv
aWQgc2V0UmVzb3VyY2VSYXdIZWFkZXJzKFBhc3NSZWZQdHI8UmVzb3VyY2VSYXdIZWFkZXJzPik7
CisKICAgICAvLyBUaGUgUmVzb3VyY2VSZXNwb25zZSBzdWJjbGFzcyBtYXkgInNoYWRvdyIgdGhp
cyBtZXRob2QgdG8gcHJvdmlkZSBwbGF0Zm9ybS1zcGVjaWZpYyBtZW1vcnkgdXNhZ2UgaW5mb3Jt
YXRpb24KICAgICB1bnNpZ25lZCBtZW1vcnlVc2FnZSgpIGNvbnN0CiAgICAgewpAQCAtMTQzLDYg
KzE1MSw3IEBAIHByb3RlY3RlZDoKICAgICB1bnNpZ25lZCBtX2Nvbm5lY3Rpb25JRDsKICAgICBi
b29sIG1fY29ubmVjdGlvblJldXNlZCA6IDE7CiAgICAgUmVmUHRyPFJlc291cmNlTG9hZFRpbWlu
Zz4gbV9yZXNvdXJjZUxvYWRUaW1pbmc7CisgICAgUmVmUHRyPFJlc291cmNlUmF3SGVhZGVycz4g
bV9yZXNvdXJjZVJhd0hlYWRlcnM7CiAKICAgICBib29sIG1faXNOdWxsIDogMTsKICAgICAKZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IGEyODUxN2EuLjg5MzE3NTMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0
IEBACisyMDEwLTA5LTI5ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogZGlzcGxheSBoZWFkZXJzIGFjdHVhbGx5IHVzZWQgYnkgbmV0d29yayBzdGFjayBpbiBS
ZXNvdXJjZXMgdGFiCisgICAgICAgIEFkZGVkIHBsdW1iaW5nIGZvciByYXcgaGVhZGVycyBmbGFn
IGFuZCByZXNwb25zZSBmaWVsZCBiZXR3ZWVuIGNocm9taXVtIGFuZCBXZWJDb3JlLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYwOTIKKworICAgICAg
ICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYlJlc291cmNlUmF3SGVhZGVycy5o
OiBBZGRlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViVVJMUmVxdWVzdC5oOgorICAgICAgICAqIHB1
YmxpYy9XZWJVUkxSZXNwb25zZS5oOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50SW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBsOjp3aWxsU2VuZFJl
cXVlc3QpOgorICAgICAgICAqIHNyYy9XZWJSZXNvdXJjZVJhd0hlYWRlcnMuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpIZWFkZXJzTWFwOjpIZWFk
ZXJzTWFwKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpyZXF1ZXN0
SGVhZGVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlUmF3SGVhZGVyczo6cmVzcG9u
c2VIZWFkZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpXZWJS
ZXNvdXJjZVJhd0hlYWRlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZVJhd0hlYWRl
cnM6OkhlYWRlcnNNYXA6OnNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlUmF3SGVh
ZGVyczo6SGVhZGVyc01hcDo6YWRkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VSYXdI
ZWFkZXJzOjpIZWFkZXJzTWFwOjpjbGVhcik6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNl
UmF3SGVhZGVyczo6SGVhZGVyc01hcDo6dmlzaXQpOgorICAgICAgICAqIHNyYy9XZWJVUkxSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVxdWVzdDo6c2V0UmVwb3J0UmF3SGVh
ZGVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFJlcXVlc3Q6OnJlcG9ydFJhd0hlYWRlcnMp
OgorICAgICAgICAqIHNyYy9XZWJVUkxSZXNwb25zZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlVSTFJlc3BvbnNlOjpyZXNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFJlc3BvbnNlOjpy
ZXNvdXJjZVJhd0hlYWRlcnMpOgorICAgICAgICAqIHNyYy9XZWJVUkxSZXNwb25zZVByaXZhdGUu
aDoKKwogMjAxMC0wOS0yOCAgVmFuZ2VsaXMgS29ra2V2aXMgIDx2YW5nZWxpc0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApp
bmRleCA1Yjk1M2UzLi5lZmVkZGUwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cAorKysgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cApAQCAtMjMxLDYgKzIzMSw3IEBA
CiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJSYW5nZS5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYlJlY3QuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJSZWd1bGFyRXhw
cmVzc2lvbi5oJywKKyAgICAgICAgICAgICAgICAncHVibGljL1dlYlJlc291cmNlUmF3SGVhZGVy
cy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5oJywKICAg
ICAgICAgICAgICAgICAncHVibGljL1dlYlNjcm9sbGJhci5oJywKICAgICAgICAgICAgICAgICAn
cHVibGljL1dlYlNjcm9sbGJhckNsaWVudC5oJywKQEAgLTQ5NSw2ICs0OTYsNyBAQAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViUG9wdXBNZW51SW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3Jj
L1dlYlJhbmdlLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJSZWd1bGFyRXhwcmVzc2lv
bi5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYlNjcmlwdENvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICAgICAn
c3JjL1dlYlNjcm9sbGJhckltcGwuY3BwJywKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlJlc291cmNlUmF3SGVhZGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmE4NTY5NzYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJl
c291cmNlUmF3SGVhZGVycy5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYlJlc291cmNlUmF3
SGVhZGVyc19oCisjZGVmaW5lIFdlYlJlc291cmNlUmF3SGVhZGVyc19oCisKKyNpbmNsdWRlICJX
ZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBIVFRQSGVhZGVyTWFwOworfQor
CituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYkhUVFBIZWFkZXJWaXNpdG9yOworY2xhc3Mg
V2ViUmVzb3VyY2VSYXdIZWFkZXJzTWFwUHJpdmF0ZTsKK2NsYXNzIFdlYlN0cmluZzsKKworY2xh
c3MgV2ViUmVzb3VyY2VSYXdIZWFkZXJzIHsKK3B1YmxpYzoKKyAgICBjbGFzcyBIZWFkZXJzTWFw
IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZvaWQgYWRkKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwg
Y29uc3QgV2ViU3RyaW5nJiB2YWx1ZSk7CisgICAgICAgIHZvaWQgY2xlYXIoKTsNCisgICAgICAg
IHZvaWQgdmlzaXQoV2ViSFRUUEhlYWRlclZpc2l0b3IqKTsNCisKKyNpZiBkZWZpbmVkKFdFQktJ
VF9JTVBMRU1FTlRBVElPTikNCisgICAgICAgIHZvaWQgc2V0KFdlYkNvcmU6OkhUVFBIZWFkZXJN
YXAqKTsKKyNlbHNlCisgICAgcHJpdmF0ZToKKyNlbmRpZgorICAgICAgICBIZWFkZXJzTWFwKCk7
CisgICAgcHJpdmF0ZToKKyAgICAgICAgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCogbV9wcml2YXRl
OworICAgIH07CisKKyAgICBIZWFkZXJzTWFwKiByZXF1ZXN0SGVhZGVycygpOworICAgIEhlYWRl
cnNNYXAqIHJlc3BvbnNlSGVhZGVycygpOworCisjaWYgZGVmaW5lZChXRUJLSVRfSU1QTEVNRU5U
QVRJT04pDQorICAgIFdlYlJlc291cmNlUmF3SGVhZGVycyhXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlKik7CisjZW5kaWYKKworcHJpdmF0ZToKKyAgICBXZWJSZXNvdXJjZVJhd0hlYWRlcnMoKTsK
KyAgICBXZWJSZXNvdXJjZVJhd0hlYWRlcnMoY29uc3QgV2ViUmVzb3VyY2VSYXdIZWFkZXJzJik7
CisgICAgV2ViUmVzb3VyY2VSYXdIZWFkZXJzJiBvcGVyYXRvciA9KGNvbnN0IFdlYlJlc291cmNl
UmF3SGVhZGVycyYpOworCisgICAgSGVhZGVyc01hcCBtX3JlcXVlc3RIZWFkZXJzOworICAgIEhl
YWRlcnNNYXAgbV9yZXNwb25zZUhlYWRlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJlcXVl
c3QuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oCmluZGV4IDM2ZDY3
OTEuLmU2NGNlODAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVx
dWVzdC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oCkBAIC0x
MzQsNiArMTM0LDExIEBAIHB1YmxpYzoKICAgICBXRUJLSVRfQVBJIGJvb2wgcmVwb3J0TG9hZFRp
bWluZygpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgdm9pZCBzZXRSZXBvcnRMb2FkVGltaW5nKGJv
b2wpOwogCisgICAgLy8gQ29udHJvbHMgd2hldGhlciBhY3R1YWwgaGVhZGVycyBzZW50IGFuZCBy
ZWNlaXZlZCBmb3IgcmVxdWVzdCBhcmUKKyAgICAvLyBjb2xsZWN0ZWQgYW5kIHJlcG9ydGVkLgor
ICAgIFdFQktJVF9BUEkgYm9vbCByZXBvcnRSYXdIZWFkZXJzKCkgY29uc3Q7CisgICAgV0VCS0lU
X0FQSSB2b2lkIHNldFJlcG9ydFJhd0hlYWRlcnMoYm9vbCk7CisKICAgICBXRUJLSVRfQVBJIFRh
cmdldFR5cGUgdGFyZ2V0VHlwZSgpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgdm9pZCBzZXRUYXJn
ZXRUeXBlKFRhcmdldFR5cGUpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlVSTFJlc3BvbnNlLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJlc3BvbnNl
LmgKaW5kZXggYWM3NWQ0Yy4uZTA5OTdlMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJVUkxSZXNwb25zZS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJM
UmVzcG9uc2UuaApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmluZSBXZWJVUkxSZXNwb25zZV9oCiAK
ICNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJQcml2YXRlT3duUHRyLmgiCiAK
ICNpZiBkZWZpbmVkKFdFQktJVF9JTVBMRU1FTlRBVElPTikKIG5hbWVzcGFjZSBXZWJDb3JlIHsg
Y2xhc3MgUmVzb3VyY2VSZXNwb25zZTsgfQpAQCAtNDEsNiArNDIsNyBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViQ1N0cmluZzsKIGNsYXNzIFdlYkhUVFBIZWFkZXJWaXNpdG9yOwor
Y2xhc3MgV2ViUmVzb3VyY2VSYXdIZWFkZXJzOwogY2xhc3MgV2ViU3RyaW5nOwogY2xhc3MgV2Vi
VVJMOwogY2xhc3MgV2ViVVJMTG9hZFRpbWluZzsKQEAgLTgyLDYgKzg0LDggQEAgcHVibGljOgog
ICAgIFdFQktJVF9BUEkgV2ViVVJMTG9hZFRpbWluZyBsb2FkVGltaW5nKCk7CiAgICAgV0VCS0lU
X0FQSSB2b2lkIHNldExvYWRUaW1pbmcoY29uc3QgV2ViVVJMTG9hZFRpbWluZyYpOwogCisgICAg
V0VCS0lUX0FQSSBXZWJSZXNvdXJjZVJhd0hlYWRlcnMqIHJlc291cmNlUmF3SGVhZGVycygpOwor
CiAgICAgV0VCS0lUX0FQSSBkb3VibGUgcmVzcG9uc2VUaW1lKCkgY29uc3Q7CiAgICAgV0VCS0lU
X0FQSSB2b2lkIHNldFJlc3BvbnNlVGltZShkb3VibGUpOwogCkBAIC0xNjksNiArMTczLDcgQEAg
cHJvdGVjdGVkOgogCiBwcml2YXRlOgogICAgIFdlYlVSTFJlc3BvbnNlUHJpdmF0ZSogbV9wcml2
YXRlOworICAgIFdlYlByaXZhdGVPd25QdHI8V2ViUmVzb3VyY2VSYXdIZWFkZXJzPiBtX3Jlc291
cmNlUmF3SGVhZGVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZUb29sc0FnZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAppbmRleCBjN2JiMDUwLi4zM2NjMDli
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNw
cAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApAQCAt
MzE3LDggKzMxNywxMSBAQCB2b2lkIFdlYkRldlRvb2xzQWdlbnRJbXBsOjppZGVudGlmaWVyRm9y
SW5pdGlhbFJlcXVlc3QoCiAKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OndpbGxTZW5kUmVx
dWVzdCh1bnNpZ25lZCBsb25nIHJlc291cmNlSWQsIFdlYlVSTFJlcXVlc3QmIHJlcXVlc3QpCiB7
Ci0gICAgaWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGljID0gaW5zcGVjdG9yQ29udHJvbGxlcigp
KQorICAgIGlmIChJbnNwZWN0b3JDb250cm9sbGVyKiBpYyA9IGluc3BlY3RvckNvbnRyb2xsZXIo
KSkgewogICAgICAgICBpYy0+d2lsbFNlbmRSZXF1ZXN0KHJlc291cmNlSWQsIHJlcXVlc3QudG9N
dXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIFJlc291cmNlUmVzcG9uc2UoKSk7CisgICAgICAgIGlm
IChpYy0+aGFzRnJvbnRlbmQoKSAmJiByZXF1ZXN0LnJlcG9ydExvYWRUaW1pbmcoKSkKKyAgICAg
ICAgICAgIHJlcXVlc3Quc2V0UmVwb3J0UmF3SGVhZGVycyh0cnVlKTsKKyAgICB9CiB9CiAKIHZv
aWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmRpZFJlY2VpdmVEYXRhKHVuc2lnbmVkIGxvbmcgcmVz
b3VyY2VJZCwgaW50IGxlbmd0aCkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UmVzb3VyY2VSYXdIZWFkZXJzLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUmVzb3VyY2VS
YXdIZWFkZXJzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTJiZTE4
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSZXNvdXJjZVJhd0hl
YWRlcnMuY3BwCkBAIC0wLDAgKzEsODkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViUmVzb3VyY2VSYXdIZWFkZXJzLmgiCisKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgi
CisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViSFRUUEhlYWRlclZpc2l0b3Iu
aCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitX
ZWJSZXNvdXJjZVJhd0hlYWRlcnM6OkhlYWRlcnNNYXA6OkhlYWRlcnNNYXAoKTogbV9wcml2YXRl
KDApIHsKK30KKworV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpIZWFkZXJzTWFwKiBXZWJSZXNvdXJj
ZVJhd0hlYWRlcnM6OnJlcXVlc3RIZWFkZXJzKCkKK3sKKyAgICByZXR1cm4gJm1fcmVxdWVzdEhl
YWRlcnM7ICAgIAorfQorCitXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OkhlYWRlcnNNYXAqIFdlYlJl
c291cmNlUmF3SGVhZGVyczo6cmVzcG9uc2VIZWFkZXJzKCkKK3sKKyAgICByZXR1cm4gJm1fcmVz
cG9uc2VIZWFkZXJzOyAgICAKK30KKworV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpXZWJSZXNvdXJj
ZVJhd0hlYWRlcnMoUmVzb3VyY2VSZXNwb25zZSAqcmVzcG9uc2UpCit7CisgICAgUmVmUHRyPFJl
c291cmNlUmVzcG9uc2U6OlJlc291cmNlUmF3SGVhZGVycz4gaGVhZGVycyA9IHJlc3BvbnNlLT5y
ZXNvdXJjZVJhd0hlYWRlcnMoKTsKKyAgICBpZiAoIWhlYWRlcnMuZ2V0KCkpIHsKKyAgICAgICAg
aGVhZGVycyA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJhd0hlYWRl
cnMoKSk7CisgICAgICAgIHJlc3BvbnNlLT5zZXRSZXNvdXJjZVJhd0hlYWRlcnMoaGVhZGVycyk7
CisgICAgfQorICAgIG1fcmVxdWVzdEhlYWRlcnMuc2V0KCZoZWFkZXJzLT5yZXF1ZXN0SGVhZGVy
cyk7CisgICAgbV9yZXNwb25zZUhlYWRlcnMuc2V0KCZoZWFkZXJzLT5yZXNwb25zZUhlYWRlcnMp
OworfQorCit2b2lkIFdlYlJlc291cmNlUmF3SGVhZGVyczo6SGVhZGVyc01hcDo6c2V0KFdlYkNv
cmU6OkhUVFBIZWFkZXJNYXAqIG1hcCkKK3sKKyAgICBtX3ByaXZhdGUgPSBtYXA7Cit9CisKK3Zv
aWQgV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpIZWFkZXJzTWFwOjphZGQoY29uc3QgV2ViU3RyaW5n
JiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIHZhbHVlKQoreworICAgIHBhaXI8SFRUUEhlYWRlck1h
cDo6aXRlcmF0b3IsIGJvb2w+IHJlc3VsdCA9IG1fcHJpdmF0ZS0+YWRkKG5hbWUsIHZhbHVlKTsK
KyAgICBpZiAoIXJlc3VsdC5zZWNvbmQpCisgICAgICAgIHJlc3VsdC5maXJzdC0+c2Vjb25kICs9
IFN0cmluZygiLCAiKSArIHZhbHVlOworfQorCit2b2lkIFdlYlJlc291cmNlUmF3SGVhZGVyczo6
SGVhZGVyc01hcDo6Y2xlYXIoKQoreworICAgIG1fcHJpdmF0ZS0+Y2xlYXIoKTsKK30KKwordm9p
ZCBXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OkhlYWRlcnNNYXA6OnZpc2l0KFdlYkhUVFBIZWFkZXJW
aXNpdG9yKiB2aXNpdG9yKQ0KK3sNCisgICAgZm9yIChXZWJDb3JlOjpIVFRQSGVhZGVyTWFwOjpp
dGVyYXRvciBpdCA9IG1fcHJpdmF0ZS0+YmVnaW4oKTsgaXQgIT0gbV9wcml2YXRlLT5lbmQoKTsg
KytpdCkNCisgICAgICAgIHZpc2l0b3ItPnZpc2l0SGVhZGVyKGl0LT5maXJzdCwgaXQtPnNlY29u
ZCk7DQorfQ0KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlVSTFJlcXVlc3QuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxS
ZXF1ZXN0LmNwcAppbmRleCAyOTUwMDc2Li5iMjQzNDIwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlVSTFJlcXVlc3QuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
VVJMUmVxdWVzdC5jcHAKQEAgLTIwMSw2ICsyMDEsMTYgQEAgYm9vbCBXZWJVUkxSZXF1ZXN0Ojpy
ZXBvcnRMb2FkVGltaW5nKCkgY29uc3QKICAgICByZXR1cm4gbV9wcml2YXRlLT5tX3Jlc291cmNl
UmVxdWVzdC0+cmVwb3J0TG9hZFRpbWluZygpOwogfQogCit2b2lkIFdlYlVSTFJlcXVlc3Q6OnNl
dFJlcG9ydFJhd0hlYWRlcnMoYm9vbCByZXBvcnRSYXdIZWFkZXJzKQoreworICAgIG1fcHJpdmF0
ZS0+bV9yZXNvdXJjZVJlcXVlc3QtPnNldFJlcG9ydFJhd0hlYWRlcnMocmVwb3J0UmF3SGVhZGVy
cyk7Cit9CisKK2Jvb2wgV2ViVVJMUmVxdWVzdDo6cmVwb3J0UmF3SGVhZGVycygpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlcXVlc3QtPnJlcG9ydFJhd0hlYWRl
cnMoKTsKK30KKwogdm9pZCBXZWJVUkxSZXF1ZXN0OjpzZXRSZXBvcnRMb2FkVGltaW5nKGJvb2wg
cmVwb3J0TG9hZFRpbWluZykKIHsKICAgICBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXF1ZXN0LT5z
ZXRSZXBvcnRMb2FkVGltaW5nKHJlcG9ydExvYWRUaW1pbmcpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlVSTFJlc3BvbnNlLmNwcAppbmRleCBhYWU0MTNjLi41MDEyNjcxIDEwMDY0NAotLS0gYS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlVSTFJlc3BvbnNlLmNwcApAQCAtNzUsNiArNzUsNyBAQCB2b2lkIFdlYlVSTFJlc3Bv
bnNlOjppbml0aWFsaXplKCkKIHZvaWQgV2ViVVJMUmVzcG9uc2U6OnJlc2V0KCkKIHsKICAgICBh
c3NpZ24oMCk7CisgICAgbV9yZXNvdXJjZVJhd0hlYWRlcnMucmVzZXQoMCk7CiB9CiAKIHZvaWQg
V2ViVVJMUmVzcG9uc2U6OmFzc2lnbihjb25zdCBXZWJVUkxSZXNwb25zZSYgcikKQEAgLTEyOSw2
ICsxMzAsMTMgQEAgdm9pZCBXZWJVUkxSZXNwb25zZTo6c2V0TG9hZFRpbWluZyhjb25zdCBXZWJV
UkxMb2FkVGltaW5nJiB0aW1pbmcpCiAgICAgbV9wcml2YXRlLT5tX3Jlc291cmNlUmVzcG9uc2Ut
PnNldFJlc291cmNlTG9hZFRpbWluZyhsb2FkVGltaW5nLnJlbGVhc2UoKSk7CiB9CiAKK1dlYlJl
c291cmNlUmF3SGVhZGVycyogV2ViVVJMUmVzcG9uc2U6OnJlc291cmNlUmF3SGVhZGVycygpCit7
CisgICAgaWYgKCFtX3Jlc291cmNlUmF3SGVhZGVycy5nZXQoKSkKKyAgICAgICAgbV9yZXNvdXJj
ZVJhd0hlYWRlcnMucmVzZXQobmV3IFdlYlJlc291cmNlUmF3SGVhZGVycyhtX3ByaXZhdGUtPm1f
cmVzb3VyY2VSZXNwb25zZSkpOworICAgIHJldHVybiBtX3Jlc291cmNlUmF3SGVhZGVycy5nZXQo
KTsKK30KKwogZG91YmxlIFdlYlVSTFJlc3BvbnNlOjpyZXNwb25zZVRpbWUoKSBjb25zdAogewog
ICAgIHJldHVybiBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXNwb25zZS0+cmVzcG9uc2VUaW1lKCk7
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlUHJpdmF0ZS5o
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZVByaXZhdGUuaAppbmRleCBkYzVj
ZTIyLi40MTgxZTRjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3Bv
bnNlUHJpdmF0ZS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVzcG9uc2VQcml2
YXRlLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpZm5kZWYgV2ViVVJMUmVzcG9uc2VQcml2YXRlX2gK
ICNkZWZpbmUgV2ViVVJMUmVzcG9uc2VQcml2YXRlX2gKIAorI2luY2x1ZGUgIldlYlJlc291cmNl
UmF3SGVhZGVycy5oIgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7IGNsYXNzIFJlc291cmNlUmVzcG9uc2U7IH0K
</data>
<flag name="review"
          id="58830"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69201</attachid>
            <date>2010-09-29 09:23:52 -0700</date>
            <delta_ts>2010-09-30 03:21:54 -0700</delta_ts>
            <desc>patch</desc>
            <filename>raw-headers.patch</filename>
            <type>text/plain</type>
            <size>25189</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzNjYWYxZS4uMDM5ZmM4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0wOS0yOSAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgaGVhZGVycyBhY3R1YWxs
eSB1c2VkIGJ5IG5ldHdvcmsgc3RhY2sgaW4gUmVzb3VyY2VzIHRhYgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYwOTIKKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBy
bzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDb250cm9sbGVyOjp3aWxsU2VuZFJlcXVlc3QpOiBlbmFibGUgcmF3IGhlYWRlcnMgcmVw
b3J0aW5nIGlmIGZyb250LWVuZCBpcyB2aXNpYmxlLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JSZXNvdXJjZTo6
dXBkYXRlUmVzcG9uc2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSYXdI
ZWFkZXJzLmg6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1
ZXN0QmFzZS5oOiBBZGRlZCBmbGFnIHRvIGVuYWJsZSByYXcgaGVhZGVycyByZXBvcnRpbmcuCisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpyZXBvcnRSYXdIZWFkZXJzKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OnNldFJlcG9ydFJhd0hlYWRl
cnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6UmVzb3VyY2VSZXF1
ZXN0QmFzZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFz
ZS5jcHA6IEFkZGVkIHN1cHBvcnQgZm9yIHJhdyBoZWFkZXJzLgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VSZXNwb25zZUJhc2U6OnJlc291cmNlUmF3SGVhZGVycyk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2V0UmVzb3VyY2VSYXdIZWFkZXJzKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmg6CisKIDIwMTAtMDkt
MjkgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgW0Nocm9t
aXVtXSBmYWlsZWQgdG8gYnVpbGQgd2l0aG91dCBBQ0NFTEVSQVRFRF9DT01QT1NJVElORwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
aW5kZXggOTg1YjVjZS4uODBlMGE5OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0yMzU5LDYgKzIzNTksNyBAQCB3ZWJj
b3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVl
c3RCYXNlLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFz
ZS5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5o
IFwKKwlXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSYXdIZWFkZXJzLmggXAogCVdl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuY3BwIFwKIAlXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFtRXJyb3JCYXNlLmggXAogCVdlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCBcCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDhlNmFm
NmIuLjdkNzUzOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS5neXBpCkBAIC0yOTk0LDYgKzI5OTQsNyBAQAogICAgICAgICAgICAgJ3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oJywKKyAgICAgICAgICAgICdwbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmF3SGVhZGVycy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9u
ZXR3b3JrL1NvY2tldFN0cmVhbUVycm9yQmFzZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L25ldHdvcmsvU29ja2V0U3RyZWFtRXJyb3JCYXNlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L25ldHdvcmsvU29ja2V0U3RyZWFtSGFuZGxlQmFzZS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnBybyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggZTU5NWYzYi4uNjIyZjE2
ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUu
cHJvCkBAIC0yMTAyLDYgKzIxMDIsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlTG9hZFRpbWluZy5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVxdWVzdEJhc2UuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFz
ZS5oIFwKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmF3SGVhZGVycy5oIFwKICAgICBw
bGF0Zm9ybS9QbGF0Zm9ybVRvdWNoRXZlbnQuaCBcCiAgICAgcGxhdGZvcm0vUGxhdGZvcm1Ub3Vj
aFBvaW50LmggXAogICAgIHBsYXRmb3JtL1BvcHVwTWVudS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCmluZGV4IGY4MWI3N2EuLmIxNDE4NDAgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMjc0MjgsNiArMjc0MjgsMTAgQEAKIAkJCQkJPg0KIAkJ
CQk8L0ZpbGU+DQogCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXG5l
dHdvcmtcUmVzb3VyY2VSYXdIZWFkZXJzLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJ
PEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xTb2NrZXRTdHJl
YW1FcnJvckJhc2UuY3BwIg0KIAkJCQkJPg0KIAkJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBmMmVlMmMxLi44NDYzYzFjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMTAxMCw2ICsxMDEwLDEw
IEBAIHZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxv
bmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1CiAgICAgICAgIHJldHVybjsKIAogICAgIHJlcXVl
c3Quc2V0UmVwb3J0TG9hZFRpbWluZyh0cnVlKTsKKyAgICAvLyBPbmx5IGVuYWJsZSByYXcgaGVh
ZGVycyBpZiBmcm9udC1lbmQgaXMgYXR0YWNoZWQsIGFzIG90aGVyd2lzZSB3ZSBtYXkgbGFjawor
ICAgIC8vIHBlcm1pc3Npb25zIHRvIGZldGNoIHRoZSBoZWFkZXJzLgorICAgIGlmIChtX2Zyb250
ZW5kKQorICAgICAgICByZXF1ZXN0LnNldFJlcG9ydFJhd0hlYWRlcnModHJ1ZSk7CiAKICAgICBp
ZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkpIHsKICAgICAgICAgLy8gUmVkaXJlY3QgbWF5
IGhhdmUgZW1wdHkgVVJMIGFuZCB3ZSdkIGxpa2UgdG8gbm90IGNyYXNoIHdpdGggaW52YWxpZCBI
YXNoTWFwIGVudHJ5LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVz
b3VyY2UuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCmluZGV4
IGFjMmM5YTAuLjA2NmNmZjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clJlc291cmNlLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5j
cHAKQEAgLTE3NSw3ICsxNzUsMTIgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZTo6dXBkYXRlUmVz
cG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgICAgIGlmIChjYWNo
ZWRSZXNvdXJjZSkKICAgICAgICAgICAgIG1fbWltZVR5cGUgPSBjYWNoZWRSZXNvdXJjZS0+cmVz
cG9uc2UoKS5taW1lVHlwZSgpOwogICAgIH0KLSAgICBtX3Jlc3BvbnNlSGVhZGVyRmllbGRzID0g
cmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkcygpOworICAgIGlmIChSZXNvdXJjZVJhd0hlYWRlcnMq
IGhlYWRlcnMgPSByZXNwb25zZS5yZXNvdXJjZVJhd0hlYWRlcnMoKS5nZXQoKSkgeworICAgICAg
ICBtX3JlcXVlc3RIZWFkZXJGaWVsZHMgPSBoZWFkZXJzLT5yZXF1ZXN0SGVhZGVyczsKKyAgICAg
ICAgbV9yZXNwb25zZUhlYWRlckZpZWxkcyA9IGhlYWRlcnMtPnJlc3BvbnNlSGVhZGVyczsKKyAg
ICAgICAgbV9jaGFuZ2VzLnNldChSZXF1ZXN0Q2hhbmdlKTsKKyAgICB9IGVsc2UKKyAgICAgICAg
bV9yZXNwb25zZUhlYWRlckZpZWxkcyA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZHMoKTsKICAg
ICBtX3Jlc3BvbnNlU3RhdHVzQ29kZSA9IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCk7CiAgICAg
bV9yZXNwb25zZVN0YXR1c1RleHQgPSByZXNwb25zZS5odHRwU3RhdHVzVGV4dCgpOwogICAgIG1f
c3VnZ2VzdGVkRmlsZW5hbWUgPSByZXNwb25zZS5zdWdnZXN0ZWRGaWxlbmFtZSgpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmF3SGVhZGVycy5oIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmF3SGVhZGVycy5oCm5ldyBmaWxlIG1vZGUg
MTAwNzU1CmluZGV4IDAwMDAwMDAuLmU1ZjhkOTkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSYXdIZWFkZXJzLmgKQEAgLTAsMCArMSw0MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKworI2lmbmRl
ZiBSZXNvdXJjZVJhd0hlYWRlcnNfaAorI2RlZmluZSBSZXNvdXJjZVJhd0hlYWRlcnNfaAorCisj
aW5jbHVkZSAiSFRUUEhlYWRlck1hcC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVj
dCBSZXNvdXJjZVJhd0hlYWRlcnMgOiBSZWZDb3VudGVkPFJlc291cmNlUmF3SGVhZGVycz4gewor
ICAgIEhUVFBIZWFkZXJNYXAgcmVxdWVzdEhlYWRlcnM7CisgICAgSFRUUEhlYWRlck1hcCByZXNw
b25zZUhlYWRlcnM7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgKaW5kZXggMTYyMmNkZC4uNTgzZDFhZiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCkBAIC0xMzYs
NiArMTM2LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCByZXBvcnRMb2Fk
VGltaW5nKCkgY29uc3QgeyByZXR1cm4gbV9yZXBvcnRMb2FkVGltaW5nOyB9CiAgICAgICAgIHZv
aWQgc2V0UmVwb3J0TG9hZFRpbWluZyhib29sIHJlcG9ydExvYWRUaW1pbmcpIHsgbV9yZXBvcnRM
b2FkVGltaW5nID0gcmVwb3J0TG9hZFRpbWluZzsgfQogCisgICAgICAgIC8vIFdoZXRoZXIgYWN0
dWFsIGhlYWRlcnMgYmVpbmcgc2VudC9yZWNlaXZlZCBzaG91bGQgYmUgY29sbGVjdGVkIGFuZCBy
ZXBvcnRlZCBmb3IgdGhlIHJlcXVlc3QuCisgICAgICAgIGJvb2wgcmVwb3J0UmF3SGVhZGVycygp
IGNvbnN0IHsgcmV0dXJuIG1fcmVwb3J0UmF3SGVhZGVyczsgfQorICAgICAgICB2b2lkIHNldFJl
cG9ydFJhd0hlYWRlcnMoYm9vbCByZXBvcnRSYXdIZWFkZXJzKSB7IG1fcmVwb3J0UmF3SGVhZGVy
cyA9IHJlcG9ydFJhd0hlYWRlcnM7IH0KKwogICAgICAgICAvLyBXaGF0IHRoaXMgcmVxdWVzdCBp
cyBmb3IuCiAgICAgICAgIFRhcmdldFR5cGUgdGFyZ2V0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dGFyZ2V0VHlwZTsgfQogICAgICAgICB2b2lkIHNldFRhcmdldFR5cGUoVGFyZ2V0VHlwZSB0eXBl
KSB7IG1fdGFyZ2V0VHlwZSA9IHR5cGU7IH0KQEAgLTE0Nyw2ICsxNTEsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgICAgICAsIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCh0cnVlKQog
ICAgICAgICAgICAgLCBtX3JlcG9ydFVwbG9hZFByb2dyZXNzKGZhbHNlKQogICAgICAgICAgICAg
LCBtX3JlcG9ydExvYWRUaW1pbmcoZmFsc2UpCisgICAgICAgICAgICAsIG1fcmVwb3J0UmF3SGVh
ZGVycyhmYWxzZSkKICAgICAgICAgICAgICwgbV90YXJnZXRUeXBlKFRhcmdldElzU3VicmVzb3Vy
Y2UpCiAgICAgICAgIHsKICAgICAgICAgfQpAQCAtMTYxLDYgKzE2Niw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgICAgICwgbV9wbGF0Zm9ybVJlcXVlc3RVcGRhdGVkKGZhbHNlKQog
ICAgICAgICAgICAgLCBtX3JlcG9ydFVwbG9hZFByb2dyZXNzKGZhbHNlKQogICAgICAgICAgICAg
LCBtX3JlcG9ydExvYWRUaW1pbmcoZmFsc2UpCisgICAgICAgICAgICAsIG1fcmVwb3J0UmF3SGVh
ZGVycyhmYWxzZSkKICAgICAgICAgICAgICwgbV90YXJnZXRUeXBlKFRhcmdldElzU3VicmVzb3Vy
Y2UpCiAgICAgICAgIHsKICAgICAgICAgfQpAQCAtMTgyLDYgKzE4OCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgbXV0YWJsZSBib29sIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZDsK
ICAgICAgICAgYm9vbCBtX3JlcG9ydFVwbG9hZFByb2dyZXNzOwogICAgICAgICBib29sIG1fcmVw
b3J0TG9hZFRpbWluZzsKKyAgICAgICAgYm9vbCBtX3JlcG9ydFJhd0hlYWRlcnM7CiAgICAgICAg
IFRhcmdldFR5cGUgbV90YXJnZXRUeXBlOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCmluZGV4IGUyMzE2NTIu
LmUzN2M0ZDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
c3BvbnNlQmFzZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVz
cG9uc2VCYXNlLmNwcApAQCAtNTE1LDYgKzUxNSwyMCBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2VC
YXNlOjpzZXRSZXNvdXJjZUxvYWRUaW1pbmcoUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+
CiAgICAgbV9yZXNvdXJjZUxvYWRUaW1pbmcgPSByZXNvdXJjZUxvYWRUaW1pbmc7CiB9CiAKK1Bh
c3NSZWZQdHI8UmVzb3VyY2VSYXdIZWFkZXJzPiBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6cmVzb3Vy
Y2VSYXdIZWFkZXJzKCkgY29uc3QKK3sKKyAgICBsYXp5SW5pdCgpOworCisgICAgcmV0dXJuIG1f
cmVzb3VyY2VSYXdIZWFkZXJzLmdldCgpOworfQorCit2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNl
OjpzZXRSZXNvdXJjZVJhd0hlYWRlcnMoUGFzc1JlZlB0cjxSZXNvdXJjZVJhd0hlYWRlcnM+IGhl
YWRlcnMpCit7CisgICAgbGF6eUluaXQoKTsKKworICAgIG1fcmVzb3VyY2VSYXdIZWFkZXJzID0g
aGVhZGVyczsKK30KKwogdm9pZCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6bGF6eUluaXQoKSBjb25z
dAogewogICAgIGNvbnN0X2Nhc3Q8UmVzb3VyY2VSZXNwb25zZSo+KHN0YXRpY19jYXN0PGNvbnN0
IFJlc291cmNlUmVzcG9uc2UqPih0aGlzKSktPnBsYXRmb3JtTGF6eUluaXQoKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKaW5kZXggNjVlMjRh
ZC4uYjc2ZjQxMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
UmVzcG9uc2VCYXNlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVz
cG9uc2VCYXNlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJIVFRQSGVhZGVyTWFwLmgi
CiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgorI2lu
Y2x1ZGUgIlJlc291cmNlUmF3SGVhZGVycy5oIgogCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0xMDksNiArMTEwLDkgQEAgcHVibGljOgog
ICAgIFJlc291cmNlTG9hZFRpbWluZyogcmVzb3VyY2VMb2FkVGltaW5nKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRSZXNvdXJjZUxvYWRUaW1pbmcoUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+
KTsKIAorICAgIFBhc3NSZWZQdHI8UmVzb3VyY2VSYXdIZWFkZXJzPiByZXNvdXJjZVJhd0hlYWRl
cnMoKSBjb25zdDsKKyAgICB2b2lkIHNldFJlc291cmNlUmF3SGVhZGVycyhQYXNzUmVmUHRyPFJl
c291cmNlUmF3SGVhZGVycz4pOworCiAgICAgLy8gVGhlIFJlc291cmNlUmVzcG9uc2Ugc3ViY2xh
c3MgbWF5ICJzaGFkb3ciIHRoaXMgbWV0aG9kIHRvIHByb3ZpZGUgcGxhdGZvcm0tc3BlY2lmaWMg
bWVtb3J5IHVzYWdlIGluZm9ybWF0aW9uCiAgICAgdW5zaWduZWQgbWVtb3J5VXNhZ2UoKSBjb25z
dAogICAgIHsKQEAgLTE0Myw2ICsxNDcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdW5zaWduZWQgbV9j
b25uZWN0aW9uSUQ7CiAgICAgYm9vbCBtX2Nvbm5lY3Rpb25SZXVzZWQgOiAxOwogICAgIFJlZlB0
cjxSZXNvdXJjZUxvYWRUaW1pbmc+IG1fcmVzb3VyY2VMb2FkVGltaW5nOworICAgIFJlZlB0cjxS
ZXNvdXJjZVJhd0hlYWRlcnM+IG1fcmVzb3VyY2VSYXdIZWFkZXJzOwogCiAgICAgYm9vbCBtX2lz
TnVsbCA6IDE7CiAgICAgCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhMjg1MTdhLi43ZDM0NDA1IDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAxMC0wOS0yOSAgQW5kcmV5IEtvc3lha292ICA8Y2Fz
ZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRpc3BsYXkgaGVhZGVycyBhY3R1YWxseSB1c2VkIGJ5
IG5ldHdvcmsgc3RhY2sgaW4gUmVzb3VyY2VzIHRhYgorICAgICAgICBBZGRlZCBwbHVtYmluZyBm
b3IgcmF3IGhlYWRlcnMgZmxhZyBhbmQgcmVzcG9uc2UgZmllbGQgYmV0d2VlbiBjaHJvbWl1bSBh
bmQgV2ViQ29yZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ2MDkyCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJS
ZXNvdXJjZVJhd0hlYWRlcnMuaDogQWRkZWQuCisgICAgICAgICogcHVibGljL1dlYlVSTFJlcXVl
c3QuaDoKKyAgICAgICAgKiBwdWJsaWMvV2ViVVJMUmVzcG9uc2UuaDoKKyAgICAgICAgKiBzcmMv
V2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJEZXZUb29sc0Fn
ZW50SW1wbDo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBzcmMvV2ViUmVzb3VyY2VSYXdI
ZWFkZXJzLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlUmF3SGVhZGVy
czo6V2ViUmVzb3VyY2VSYXdIZWFkZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VS
YXdIZWFkZXJzOjp+V2ViUmVzb3VyY2VSYXdIZWFkZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VSYXdIZWFkZXJzOjpIZWFkZXJzTWFwOjpIZWFkZXJzTWFwKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpyZXF1ZXN0SGVhZGVycyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlc291cmNlUmF3SGVhZGVyczo6c2V0UmVxdWVzdEhlYWRlcnMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OnJlc3BvbnNlSGVhZGVycyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlc291cmNlUmF3SGVhZGVyczo6c2V0UmVzcG9uc2VIZWFkZXJzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpvcGVyYXRvciBXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VSYXdIZWFkZXJzPik6CisgICAgICAgIChXZWJLaXQ6
OldlYlJlc291cmNlUmF3SGVhZGVyczo6SGVhZGVyc01hcDo6YWRkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpIZWFkZXJzTWFwOjpjbGVhcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlc291cmNlUmF3SGVhZGVyczo6SGVhZGVyc01hcDo6dmlzaXQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OkhlYWRlcnNNYXA6Om9wZXJhdG9yIGNv
bnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAqKToKKyAgICAgICAgKiBzcmMvV2ViVVJMUmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFJlcXVlc3Q6OnNldFJlcG9ydFJhd0hlYWRl
cnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXF1ZXN0OjpyZXBvcnRSYXdIZWFkZXJzKToK
KyAgICAgICAgKiBzcmMvV2ViVVJMUmVzcG9uc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJV
UkxSZXNwb25zZTo6cmVzb3VyY2VSYXdIZWFkZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJM
UmVzcG9uc2U6OnNldFJlc291cmNlUmF3SGVhZGVycyk6CisgICAgICAgICogc3JjL1dlYlVSTFJl
c3BvbnNlUHJpdmF0ZS5oOgorCiAyMDEwLTA5LTI4ICBWYW5nZWxpcyBLb2trZXZpcyAgPHZhbmdl
bGlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwu
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwCmluZGV4IDViOTUzZTMuLmVmZWRkZTAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0y
MzEsNiArMjMxLDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlJhbmdlLmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViUmVjdC5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYlJlZ3VsYXJFeHByZXNzaW9uLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUmVz
b3VyY2VSYXdIZWFkZXJzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViUnVudGltZUZl
YXR1cmVzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViU2Nyb2xsYmFyLmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViU2Nyb2xsYmFyQ2xpZW50LmgnLApAQCAtNDk1LDYgKzQ5
Niw3IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJQb3B1cE1lbnVJbXBsLmgnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViUmFuZ2UuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlJl
Z3VsYXJFeHByZXNzaW9uLmNwcCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJSZXNvdXJjZVJh
d0hlYWRlcnMuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU2NyaXB0Q29udHJvbGxlci5jcHAnLAogICAg
ICAgICAgICAgICAgICdzcmMvV2ViU2Nyb2xsYmFySW1wbC5jcHAnLApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJSZXNvdXJjZVJhd0hlYWRlcnMuaCBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNTNlNDRkNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmgKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V2ViUmVzb3VyY2VSYXdIZWFkZXJzX2gKKyNkZWZpbmUgV2ViUmVzb3VyY2VSYXdIZWFkZXJzX2gK
KworI2luY2x1ZGUgIldlYkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVQdHIuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIEhUVFBI
ZWFkZXJNYXA7CitzdHJ1Y3QgUmVzb3VyY2VSYXdIZWFkZXJzOworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKK2NsYXNzIFdlYkhUVFBIZWFkZXJWaXNpdG9yOworY2xhc3MgV2ViUmVzb3VyY2VSYXdI
ZWFkZXJzTWFwUHJpdmF0ZTsKK2NsYXNzIFdlYlN0cmluZzsKKworY2xhc3MgV2ViUmVzb3VyY2VS
YXdIZWFkZXJzIHsKK3B1YmxpYzoKKyAgICBjbGFzcyBIZWFkZXJzTWFwIHsKKyAgICBwdWJsaWM6
CisgICAgICAgIHZvaWQgYWRkKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2ViU3RyaW5n
JiB2YWx1ZSk7CisgICAgICAgIHZvaWQgY2xlYXIoKTsKKyAgICAgICAgdm9pZCB2aXNpdChXZWJI
VFRQSGVhZGVyVmlzaXRvciopOworCisjaWYgZGVmaW5lZChXRUJLSVRfSU1QTEVNRU5UQVRJT04p
CisgICAgICAgIEhlYWRlcnNNYXAoV2ViQ29yZTo6SFRUUEhlYWRlck1hcCopOworICAgICAgICBv
cGVyYXRvciBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwKigpIGNvbnN0OworI2VuZGlmCisg
ICAgcHJpdmF0ZToKKyAgICAgICAgSGVhZGVyc01hcCgpOworICAgIHByaXZhdGU6CisgICAgICAg
IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAqIG1fcHJpdmF0ZTsKKyAgICB9OworCisgICAgV2ViUmVz
b3VyY2VSYXdIZWFkZXJzKCk7CisgICAgfldlYlJlc291cmNlUmF3SGVhZGVycygpOworCisgICAg
SGVhZGVyc01hcCByZXF1ZXN0SGVhZGVycygpOworICAgIHZvaWQgc2V0UmVxdWVzdEhlYWRlcnMo
Y29uc3QgSGVhZGVyc01hcCYpOworICAgIEhlYWRlcnNNYXAgcmVzcG9uc2VIZWFkZXJzKCk7Cisg
ICAgdm9pZCBzZXRSZXNwb25zZUhlYWRlcnMoY29uc3QgSGVhZGVyc01hcCYpOworCisjaWYgV0VC
S0lUX0lNUExFTUVOVEFUSU9OCisgICAgV2ViUmVzb3VyY2VSYXdIZWFkZXJzKFdURjo6UGFzc1Jl
ZlB0cjxXZWJDb3JlOjpSZXNvdXJjZVJhd0hlYWRlcnM+KTsKKyAgICBvcGVyYXRvciBXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VSYXdIZWFkZXJzPigpIGNvbnN0OworI2VuZGlmCisK
K3ByaXZhdGU6CisgICAgV2ViUHJpdmF0ZVB0cjxXZWJDb3JlOjpSZXNvdXJjZVJhd0hlYWRlcnM+
IG1fcHJpdmF0ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oIGIvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmgKaW5kZXggMzZkNjc5MS4uZTY0Y2U4MCAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmgKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXF1ZXN0LmgKQEAgLTEzNCw2ICsxMzQsMTEgQEAg
cHVibGljOgogICAgIFdFQktJVF9BUEkgYm9vbCByZXBvcnRMb2FkVGltaW5nKCkgY29uc3Q7CiAg
ICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlcG9ydExvYWRUaW1pbmcoYm9vbCk7CiAKKyAgICAvLyBD
b250cm9scyB3aGV0aGVyIGFjdHVhbCBoZWFkZXJzIHNlbnQgYW5kIHJlY2VpdmVkIGZvciByZXF1
ZXN0IGFyZQorICAgIC8vIGNvbGxlY3RlZCBhbmQgcmVwb3J0ZWQuCisgICAgV0VCS0lUX0FQSSBi
b29sIHJlcG9ydFJhd0hlYWRlcnMoKSBjb25zdDsKKyAgICBXRUJLSVRfQVBJIHZvaWQgc2V0UmVw
b3J0UmF3SGVhZGVycyhib29sKTsKKwogICAgIFdFQktJVF9BUEkgVGFyZ2V0VHlwZSB0YXJnZXRU
eXBlKCkgY29uc3Q7CiAgICAgV0VCS0lUX0FQSSB2b2lkIHNldFRhcmdldFR5cGUoVGFyZ2V0VHlw
ZSk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVzcG9uc2Uu
aCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVzcG9uc2UuaAppbmRleCBhYzc1ZDRj
Li5mNzhjMmRiIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJlc3Bv
bnNlLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXNwb25zZS5oCkBAIC0z
Miw2ICszMiw3IEBACiAjZGVmaW5lIFdlYlVSTFJlc3BvbnNlX2gKIAogI2luY2x1ZGUgIldlYkNv
bW1vbi5oIgorI2luY2x1ZGUgIldlYlByaXZhdGVPd25QdHIuaCIKIAogI2lmIGRlZmluZWQoV0VC
S0lUX0lNUExFTUVOVEFUSU9OKQogbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBSZXNvdXJjZVJl
c3BvbnNlOyB9CkBAIC00MSw2ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBX
ZWJDU3RyaW5nOwogY2xhc3MgV2ViSFRUUEhlYWRlclZpc2l0b3I7CitjbGFzcyBXZWJSZXNvdXJj
ZVJhd0hlYWRlcnM7CiBjbGFzcyBXZWJTdHJpbmc7CiBjbGFzcyBXZWJVUkw7CiBjbGFzcyBXZWJV
UkxMb2FkVGltaW5nOwpAQCAtODIsNiArODQsOSBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0FQSSBX
ZWJVUkxMb2FkVGltaW5nIGxvYWRUaW1pbmcoKTsKICAgICBXRUJLSVRfQVBJIHZvaWQgc2V0TG9h
ZFRpbWluZyhjb25zdCBXZWJVUkxMb2FkVGltaW5nJik7CiAKKyAgICBXRUJLSVRfQVBJIFdlYlJl
c291cmNlUmF3SGVhZGVycyByZXNvdXJjZVJhd0hlYWRlcnMoKTsKKyAgICBXRUJLSVRfQVBJIHZv
aWQgc2V0UmVzb3VyY2VSYXdIZWFkZXJzKGNvbnN0IFdlYlJlc291cmNlUmF3SGVhZGVycyYpOwor
CiAgICAgV0VCS0lUX0FQSSBkb3VibGUgcmVzcG9uc2VUaW1lKCkgY29uc3Q7CiAgICAgV0VCS0lU
X0FQSSB2b2lkIHNldFJlc3BvbnNlVGltZShkb3VibGUpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCmluZGV4IGM3YmIwNTAuLjMzY2MwOWIgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCisrKyBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRGV2VG9vbHNBZ2VudEltcGwuY3BwCkBAIC0zMTcsOCAr
MzE3LDExIEBAIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmlkZW50aWZpZXJGb3JJbml0aWFs
UmVxdWVzdCgKIAogdm9pZCBXZWJEZXZUb29sc0FnZW50SW1wbDo6d2lsbFNlbmRSZXF1ZXN0KHVu
c2lnbmVkIGxvbmcgcmVzb3VyY2VJZCwgV2ViVVJMUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBp
ZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaWMgPSBpbnNwZWN0b3JDb250cm9sbGVyKCkpCisgICAg
aWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGljID0gaW5zcGVjdG9yQ29udHJvbGxlcigpKSB7CiAg
ICAgICAgIGljLT53aWxsU2VuZFJlcXVlc3QocmVzb3VyY2VJZCwgcmVxdWVzdC50b011dGFibGVS
ZXNvdXJjZVJlcXVlc3QoKSwgUmVzb3VyY2VSZXNwb25zZSgpKTsKKyAgICAgICAgaWYgKGljLT5o
YXNGcm9udGVuZCgpICYmIHJlcXVlc3QucmVwb3J0TG9hZFRpbWluZygpKQorICAgICAgICAgICAg
cmVxdWVzdC5zZXRSZXBvcnRSYXdIZWFkZXJzKHRydWUpOworICAgIH0KIH0KIAogdm9pZCBXZWJE
ZXZUb29sc0FnZW50SW1wbDo6ZGlkUmVjZWl2ZURhdGEodW5zaWduZWQgbG9uZyByZXNvdXJjZUlk
LCBpbnQgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSZXNvdXJj
ZVJhd0hlYWRlcnMuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSZXNvdXJjZVJhd0hlYWRl
cnMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzMzUxMmEKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJlc291cmNlUmF3SGVhZGVycy5j
cHAKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUmVz
b3VyY2VSYXdIZWFkZXJzLmgiCisKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCisjaW5j
bHVkZSAiUmVzb3VyY2VSYXdIZWFkZXJzLmgiCisjaW5jbHVkZSAiV2ViSFRUUEhlYWRlclZpc2l0
b3IuaCIKKyNpbmNsdWRlICJXZWJTdHJpbmcuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OldlYlJlc291
cmNlUmF3SGVhZGVycygpCit7CisgICAgbV9wcml2YXRlID0gYWRvcHRSZWYobmV3IFJlc291cmNl
UmF3SGVhZGVycygpKTsKK30KKworV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjp+V2ViUmVzb3VyY2VS
YXdIZWFkZXJzKCkKK3sKKyAgICBtX3ByaXZhdGUucmVzZXQoKTsKK30KKworV2ViUmVzb3VyY2VS
YXdIZWFkZXJzOjpIZWFkZXJzTWFwOjpIZWFkZXJzTWFwKFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAg
KnZhbHVlKQoreworICAgIG1fcHJpdmF0ZSA9IHZhbHVlOworfQorCitXZWJSZXNvdXJjZVJhd0hl
YWRlcnM6OkhlYWRlcnNNYXAgV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpyZXF1ZXN0SGVhZGVycygp
Cit7CisgICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOworICAgIHJldHVybiBIZWFkZXJz
TWFwKCZtX3ByaXZhdGUtPnJlcXVlc3RIZWFkZXJzKTsKK30KKwordm9pZCBXZWJSZXNvdXJjZVJh
d0hlYWRlcnM6OnNldFJlcXVlc3RIZWFkZXJzKGNvbnN0IEhlYWRlcnNNYXAmIHZhbHVlKQorewor
ICAgIEFTU0VSVCghbV9wcml2YXRlLmlzTnVsbCgpKTsKKyAgICBtX3ByaXZhdGUtPnJlcXVlc3RI
ZWFkZXJzID0gKihjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwKil2YWx1ZTsKK30KKworV2Vi
UmVzb3VyY2VSYXdIZWFkZXJzOjpIZWFkZXJzTWFwIFdlYlJlc291cmNlUmF3SGVhZGVyczo6cmVz
cG9uc2VIZWFkZXJzKCkKK3sKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7CisgICAg
cmV0dXJuIEhlYWRlcnNNYXAoJm1fcHJpdmF0ZS0+cmVzcG9uc2VIZWFkZXJzKTsKK30KKwordm9p
ZCBXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OnNldFJlc3BvbnNlSGVhZGVycyhjb25zdCBIZWFkZXJz
TWFwJiB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7CisgICAgbV9w
cml2YXRlLT5yZXNwb25zZUhlYWRlcnMgPSAqKGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAq
KXZhbHVlOworfQorCitXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OldlYlJlc291cmNlUmF3SGVhZGVy
cyhXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VSYXdIZWFkZXJzPiB2YWx1ZSkKK3sK
KyAgICBtX3ByaXZhdGUgPSB2YWx1ZTsKK30KKworV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpvcGVy
YXRvciBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6UmVzb3VyY2VSYXdIZWFkZXJzPigpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKTsKK30KKwordm9pZCBXZWJSZXNvdXJjZVJh
d0hlYWRlcnM6OkhlYWRlcnNNYXA6OmFkZChjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdl
YlN0cmluZyYgdmFsdWUpCit7CisgICAgcGFpcjxIVFRQSGVhZGVyTWFwOjppdGVyYXRvciwgYm9v
bD4gcmVzdWx0ID0gbV9wcml2YXRlLT5hZGQobmFtZSwgdmFsdWUpOworICAgIGlmICghcmVzdWx0
LnNlY29uZCkKKyAgICAgICAgcmVzdWx0LmZpcnN0LT5zZWNvbmQgKz0gU3RyaW5nKCIsICIpICsg
dmFsdWU7Cit9CisKK3ZvaWQgV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpIZWFkZXJzTWFwOjpjbGVh
cigpCit7CisgICAgbV9wcml2YXRlLT5jbGVhcigpOworfQorCit2b2lkIFdlYlJlc291cmNlUmF3
SGVhZGVyczo6SGVhZGVyc01hcDo6dmlzaXQoV2ViSFRUUEhlYWRlclZpc2l0b3IqIHZpc2l0b3Ip
Cit7CisgICAgZm9yIChXZWJDb3JlOjpIVFRQSGVhZGVyTWFwOjppdGVyYXRvciBpdCA9IG1fcHJp
dmF0ZS0+YmVnaW4oKTsgaXQgIT0gbV9wcml2YXRlLT5lbmQoKTsgKytpdCkKKyAgICAgICAgdmlz
aXRvci0+dmlzaXRIZWFkZXIoaXQtPmZpcnN0LCBpdC0+c2Vjb25kKTsKK30KKworV2ViUmVzb3Vy
Y2VSYXdIZWFkZXJzOjpIZWFkZXJzTWFwOjpvcGVyYXRvciBjb25zdCBXZWJDb3JlOjpIVFRQSGVh
ZGVyTWFwKigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0ZTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlcXVl
c3QuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0LmNwcAppbmRleCAyOTUw
MDc2Li5iMjQzNDIwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlcXVl
c3QuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVxdWVzdC5jcHAKQEAgLTIw
MSw2ICsyMDEsMTYgQEAgYm9vbCBXZWJVUkxSZXF1ZXN0OjpyZXBvcnRMb2FkVGltaW5nKCkgY29u
c3QKICAgICByZXR1cm4gbV9wcml2YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+cmVwb3J0TG9hZFRp
bWluZygpOwogfQogCit2b2lkIFdlYlVSTFJlcXVlc3Q6OnNldFJlcG9ydFJhd0hlYWRlcnMoYm9v
bCByZXBvcnRSYXdIZWFkZXJzKQoreworICAgIG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlcXVlc3Qt
PnNldFJlcG9ydFJhd0hlYWRlcnMocmVwb3J0UmF3SGVhZGVycyk7Cit9CisKK2Jvb2wgV2ViVVJM
UmVxdWVzdDo6cmVwb3J0UmF3SGVhZGVycygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcHJpdmF0
ZS0+bV9yZXNvdXJjZVJlcXVlc3QtPnJlcG9ydFJhd0hlYWRlcnMoKTsKK30KKwogdm9pZCBXZWJV
UkxSZXF1ZXN0OjpzZXRSZXBvcnRMb2FkVGltaW5nKGJvb2wgcmVwb3J0TG9hZFRpbWluZykKIHsK
ICAgICBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXF1ZXN0LT5zZXRSZXBvcnRMb2FkVGltaW5nKHJl
cG9ydExvYWRUaW1pbmcpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxS
ZXNwb25zZS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlLmNwcAppbmRl
eCBhYWU0MTNjLi41MzQzOTIxIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVS
TFJlc3BvbnNlLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlLmNw
cApAQCAtMTI5LDYgKzEyOSwxNiBAQCB2b2lkIFdlYlVSTFJlc3BvbnNlOjpzZXRMb2FkVGltaW5n
KGNvbnN0IFdlYlVSTExvYWRUaW1pbmcmIHRpbWluZykKICAgICBtX3ByaXZhdGUtPm1fcmVzb3Vy
Y2VSZXNwb25zZS0+c2V0UmVzb3VyY2VMb2FkVGltaW5nKGxvYWRUaW1pbmcucmVsZWFzZSgpKTsK
IH0KIAorV2ViUmVzb3VyY2VSYXdIZWFkZXJzIFdlYlVSTFJlc3BvbnNlOjpyZXNvdXJjZVJhd0hl
YWRlcnMoKQoreworICAgIHJldHVybiBXZWJSZXNvdXJjZVJhd0hlYWRlcnMobV9wcml2YXRlLT5t
X3Jlc291cmNlUmVzcG9uc2UtPnJlc291cmNlUmF3SGVhZGVycygpKTsKK30KKwordm9pZCBXZWJV
UkxSZXNwb25zZTo6c2V0UmVzb3VyY2VSYXdIZWFkZXJzKGNvbnN0IFdlYlJlc291cmNlUmF3SGVh
ZGVycyYgdmFsdWUpCit7CisgICAgbV9wcml2YXRlLT5tX3Jlc291cmNlUmVzcG9uc2UtPnNldFJl
c291cmNlUmF3SGVhZGVycyh2YWx1ZSk7Cit9CisKIGRvdWJsZSBXZWJVUkxSZXNwb25zZTo6cmVz
cG9uc2VUaW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5tX3Jlc291cmNlUmVz
cG9uc2UtPnJlc3BvbnNlVGltZSgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJVUkxSZXNwb25zZVByaXZhdGUuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVzcG9u
c2VQcml2YXRlLmgKaW5kZXggZGM1Y2UyMi4uNDE4MWU0YyAxMDA2NDQKLS0tIGEvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJVUkxSZXNwb25zZVByaXZhdGUuaAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlVSTFJlc3BvbnNlUHJpdmF0ZS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaWZuZGVmIFdl
YlVSTFJlc3BvbnNlUHJpdmF0ZV9oCiAjZGVmaW5lIFdlYlVSTFJlc3BvbnNlUHJpdmF0ZV9oCiAK
KyNpbmNsdWRlICJXZWJSZXNvdXJjZVJhd0hlYWRlcnMuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69230</attachid>
            <date>2010-09-29 11:28:17 -0700</date>
            <delta_ts>2010-09-29 11:28:17 -0700</delta_ts>
            <desc>patch to land</desc>
            <filename>raw-headers.patch</filename>
            <type>text/plain</type>
            <size>26967</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzNjYWYxZS4uY2M3OWMzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMC0wOS0yOSAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZl
bGRtYW4uCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZGlzcGxheSBoZWFkZXJzIGFjdHVhbGx5
IHVzZWQgYnkgbmV0d29yayBzdGFjayBpbiBSZXNvdXJjZXMgdGFiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjA5MgorCisgICAgICAgICogR05VbWFr
ZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJv
OgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckNvbnRyb2xsZXI6OndpbGxTZW5kUmVxdWVzdCk6IGVuYWJsZSByYXcgaGVhZGVycyByZXBv
cnRpbmcgaWYgZnJvbnQtZW5kIGlzIHZpc2libGUuCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclJlc291cmNlOjp1
cGRhdGVSZXNwb25zZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJhd0hl
YWRlcnMuaDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVl
c3RCYXNlLmg6IEFkZGVkIGZsYWcgdG8gZW5hYmxlIHJhdyBoZWFkZXJzIHJlcG9ydGluZy4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OnJlcG9ydFJhd0hlYWRlcnMpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0QmFzZTo6c2V0UmVwb3J0UmF3SGVhZGVy
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpSZXNvdXJjZVJlcXVl
c3RCYXNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
LmNwcDogQWRkZWQgc3VwcG9ydCBmb3IgcmF3IGhlYWRlcnMuCisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZVJlc3BvbnNlQmFzZTo6cmVzb3VyY2VSYXdIZWFkZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2VCYXNlOjpzZXRSZXNvdXJjZVJhd0hlYWRlcnMpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaDoKKwogMjAxMC0wOS0y
OSAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbQ2hyb21p
dW1dIGZhaWxlZCB0byBidWlsZCB3aXRob3V0IEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpp
bmRleCA5ODViNWNlLi44MGUwYTk5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTIzNTksNiArMjM1OSw3IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVz
dEJhc2UuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
LmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgg
XAorCVdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJhd0hlYWRlcnMuaCBcCiAJV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUVycm9yQmFzZS5jcHAgXAogCVdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuaCBcCiAJV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1NvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwIFwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOGU2YWY2
Yi4uN2Q3NTM5MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKQEAgLTI5OTQsNiArMjk5NCw3IEBACiAgICAgICAgICAgICAncGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VSYXdIZWFkZXJzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL25l
dHdvcmsvU29ja2V0U3RyZWFtRXJyb3JCYXNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
bmV0d29yay9Tb2NrZXRTdHJlYW1FcnJvckJhc2UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
bmV0d29yay9Tb2NrZXRTdHJlYW1IYW5kbGVCYXNlLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBlNTk1ZjNiLi42MjJmMTZl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5w
cm8KQEAgLTIxMDIsNiArMjEwMiw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VMb2FkVGltaW5nLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VS
ZXF1ZXN0QmFzZS5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
LmggXAorICAgIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSYXdIZWFkZXJzLmggXAogICAgIHBs
YXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oIFwKICAgICBwbGF0Zm9ybS9QbGF0Zm9ybVRvdWNo
UG9pbnQuaCBcCiAgICAgcGxhdGZvcm0vUG9wdXBNZW51LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggZjgxYjc3YS4uYjE0MTg0MCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNzQyOCw2ICsyNzQyOCwxMCBAQAogCQkJCQk+DQogCQkJ
CTwvRmlsZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0
d29ya1xSZXNvdXJjZVJhd0hlYWRlcnMuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8
RmlsZQ0KIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFNvY2tldFN0cmVh
bUVycm9yQmFzZS5jcHAiDQogCQkJCQk+DQogCQkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQxMDQ0NTUuLjYxZmY1NjMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05MTYsNiArOTE2LDcgQEAK
IAkJNDkwNzA3RTYxMjE5QzA0MzAwRDkwRTUxIC8qIEFOR0xFV2ViS2l0QnJpZGdlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MDcwN0U0MTIxOUMw
NDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5jcHAgKi87IH07CiAJCTQ5MDcwN0U3MTIx
OUMwNDMwMEQ5MEU1MSAvKiBBTkdMRVdlYktpdEJyaWRnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkwNzA3RTUxMjE5QzA0MzAwRDkwRTUxIC8qIEFO
R0xFV2ViS2l0QnJpZGdlLmggKi87IH07CiAJCTQ5MjI3M0EzMTA4M0IzQjEwMEVFNUM4NCAvKiBK
U0FycmF5QnVmZmVyVmlld0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTIyNzNBMjEwODNCM0IxMDBFRTVDODQgLyogSlNBcnJheUJ1ZmZl
clZpZXdDdXN0b20uY3BwICovOyB9OworCQk0OTI4NjM5OTEyNTNCOEZDMDBGNzkyRDYgLyogUmVz
b3VyY2VSYXdIZWFkZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTI4NjM5ODEyNTNCOEZDMDBGNzkyRDYgLyogUmVzb3VyY2VSYXdIZWFkZXJzLmgg
Ki87IH07CiAJCTQ5NDg0RkMxMTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTQ4NEZCMzEw
MkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuY3BwICovOyB9OwogCQk0OTQ4NEZDMjEw
MkNGMjNDMDAxODdERDMgLyogQ2FudmFzR3JhZGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDg0RkI0MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52
YXNHcmFkaWVudC5oICovOyB9OwogCQk0OTQ4NEZDNDEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFz
UGF0dGVybi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTQ4NEZCNjEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGF0dGVybi5jcHAgKi87IH07CkBA
IC02ODcxLDYgKzY4NzIsNyBAQAogCQk0OTA3MDdFNDEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVX
ZWJLaXRCcmlkZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQU5H
TEVXZWJLaXRCcmlkZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTA3MDdF
NTEyMTlDMDQzMDBEOTBFNTEgLyogQU5HTEVXZWJLaXRCcmlkZ2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQU5HTEVXZWJLaXRCcmlkZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDkyMjczQTIxMDgzQjNCMTAwRUU1Qzg0IC8qIEpTQXJyYXlCdWZmZXJWaWV3
Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXJyYXlC
dWZmZXJWaWV3Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDkyODYz
OTgxMjUzQjhGQzAwRjc5MkQ2IC8qIFJlc291cmNlUmF3SGVhZGVycy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBSZXNvdXJjZVJhd0hlYWRlcnMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDk0ODRGQjMxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc0dyYWRpZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENhbnZhc0dyYWRpZW50
LmNwcDsgcGF0aCA9IGNhbnZhcy9DYW52YXNHcmFkaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ5NDg0RkI0MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDYW52YXNHcmFkaWVudC5oOyBwYXRo
ID0gY2FudmFzL0NhbnZhc0dyYWRpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ5NDg0RkI1MTAyQ0YyM0MwMDE4N0REMyAvKiBDYW52YXNHcmFkaWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBuYW1lID0gQ2FudmFzR3JhZGllbnQuaWRsOyBwYXRoID0gY2FudmFzL0NhbnZhc0dy
YWRpZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyNjk4LDYgKzEyNzAw
LDcgQEAKIAkJCQk1MTRDNzY2NTBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVDbGll
bnQuaCAqLywKIAkJCQk1MTRDNzY2NjBDRTkyM0ExMDA3RUYzQ0QgLyogUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oICovLAogCQkJCThBODFCRjg0MTFEQ0ZEOTAwMERBMkI5OCAvKiBSZXNvdXJjZUxv
YWRUaW1pbmcuaCAqLywKKwkJCQk0OTI4NjM5ODEyNTNCOEZDMDBGNzkyRDYgLyogUmVzb3VyY2VS
YXdIZWFkZXJzLmggKi8sCiAJCQkJNTE0Qzc2NjcwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNl
UmVxdWVzdEJhc2UuY3BwICovLAogCQkJCTUxNEM3NjY4MENFOTIzQTEwMDdFRjNDRCAvKiBSZXNv
dXJjZVJlcXVlc3RCYXNlLmggKi8sCiAJCQkJNTE0Qzc2NjkwQ0U5MjNBMTAwN0VGM0NEIC8qIFJl
c291cmNlUmVzcG9uc2VCYXNlLmNwcCAqLywKQEAgLTIwNzk4LDYgKzIwODAxLDcgQEAKIAkJCQk5
M0YxOTlFRDA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3Nvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTdERDREODcwRkRGNEQ2RTAwRUNGOUE0IC8qIFhTU0F1ZGl0b3IuaCBp
biBIZWFkZXJzICovLAorCQkJCTQ5Mjg2Mzk5MTI1M0I4RkMwMEY3OTJENiAvKiBSZXNvdXJjZVJh
d0hlYWRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250
cm9sbGVyLmNwcAppbmRleCBmMmVlMmMxLi44NDYzYzFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMTAxMCw2ICsxMDEwLDEwIEBAIHZvaWQgSW5zcGVj
dG9yQ29udHJvbGxlcjo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
UmVzb3VyY2VSZXF1CiAgICAgICAgIHJldHVybjsKIAogICAgIHJlcXVlc3Quc2V0UmVwb3J0TG9h
ZFRpbWluZyh0cnVlKTsKKyAgICAvLyBPbmx5IGVuYWJsZSByYXcgaGVhZGVycyBpZiBmcm9udC1l
bmQgaXMgYXR0YWNoZWQsIGFzIG90aGVyd2lzZSB3ZSBtYXkgbGFjaworICAgIC8vIHBlcm1pc3Np
b25zIHRvIGZldGNoIHRoZSBoZWFkZXJzLgorICAgIGlmIChtX2Zyb250ZW5kKQorICAgICAgICBy
ZXF1ZXN0LnNldFJlcG9ydFJhd0hlYWRlcnModHJ1ZSk7CiAKICAgICBpZiAoIXJlZGlyZWN0UmVz
cG9uc2UuaXNOdWxsKCkpIHsKICAgICAgICAgLy8gUmVkaXJlY3QgbWF5IGhhdmUgZW1wdHkgVVJM
IGFuZCB3ZSdkIGxpa2UgdG8gbm90IGNyYXNoIHdpdGggaW52YWxpZCBIYXNoTWFwIGVudHJ5Lgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCmluZGV4IGFjMmM5YTAuLjA2NmNm
ZjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291cmNlLmNwcAor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAKQEAgLTE3NSw3ICsx
NzUsMTIgQEAgdm9pZCBJbnNwZWN0b3JSZXNvdXJjZTo6dXBkYXRlUmVzcG9uc2UoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiAgICAgICAgIGlmIChjYWNoZWRSZXNvdXJjZSkKICAg
ICAgICAgICAgIG1fbWltZVR5cGUgPSBjYWNoZWRSZXNvdXJjZS0+cmVzcG9uc2UoKS5taW1lVHlw
ZSgpOwogICAgIH0KLSAgICBtX3Jlc3BvbnNlSGVhZGVyRmllbGRzID0gcmVzcG9uc2UuaHR0cEhl
YWRlckZpZWxkcygpOworICAgIGlmIChSZXNvdXJjZVJhd0hlYWRlcnMqIGhlYWRlcnMgPSByZXNw
b25zZS5yZXNvdXJjZVJhd0hlYWRlcnMoKS5nZXQoKSkgeworICAgICAgICBtX3JlcXVlc3RIZWFk
ZXJGaWVsZHMgPSBoZWFkZXJzLT5yZXF1ZXN0SGVhZGVyczsKKyAgICAgICAgbV9yZXNwb25zZUhl
YWRlckZpZWxkcyA9IGhlYWRlcnMtPnJlc3BvbnNlSGVhZGVyczsKKyAgICAgICAgbV9jaGFuZ2Vz
LnNldChSZXF1ZXN0Q2hhbmdlKTsKKyAgICB9IGVsc2UKKyAgICAgICAgbV9yZXNwb25zZUhlYWRl
ckZpZWxkcyA9IHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZHMoKTsKICAgICBtX3Jlc3BvbnNlU3Rh
dHVzQ29kZSA9IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCk7CiAgICAgbV9yZXNwb25zZVN0YXR1
c1RleHQgPSByZXNwb25zZS5odHRwU3RhdHVzVGV4dCgpOwogICAgIG1fc3VnZ2VzdGVkRmlsZW5h
bWUgPSByZXNwb25zZS5zdWdnZXN0ZWRGaWxlbmFtZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmF3SGVhZGVycy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmF3SGVhZGVycy5oCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw
MDAwMDAuLmU1ZjhkOTkKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSYXdIZWFkZXJzLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKworI2lmbmRlZiBSZXNvdXJjZVJhd0hl
YWRlcnNfaAorI2RlZmluZSBSZXNvdXJjZVJhd0hlYWRlcnNfaAorCisjaW5jbHVkZSAiSFRUUEhl
YWRlck1hcC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBSZXNvdXJjZVJhd0hl
YWRlcnMgOiBSZWZDb3VudGVkPFJlc291cmNlUmF3SGVhZGVycz4geworICAgIEhUVFBIZWFkZXJN
YXAgcmVxdWVzdEhlYWRlcnM7CisgICAgSFRUUEhlYWRlck1hcCByZXNwb25zZUhlYWRlcnM7Cit9
OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlUmVxdWVzdEJhc2UuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
cXVlc3RCYXNlLmgKaW5kZXggMTYyMmNkZC4uNTgzZDFhZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5oCkBAIC0xMzYsNiArMTM2LDEwIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCByZXBvcnRMb2FkVGltaW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9yZXBvcnRMb2FkVGltaW5nOyB9CiAgICAgICAgIHZvaWQgc2V0UmVwb3J0TG9h
ZFRpbWluZyhib29sIHJlcG9ydExvYWRUaW1pbmcpIHsgbV9yZXBvcnRMb2FkVGltaW5nID0gcmVw
b3J0TG9hZFRpbWluZzsgfQogCisgICAgICAgIC8vIFdoZXRoZXIgYWN0dWFsIGhlYWRlcnMgYmVp
bmcgc2VudC9yZWNlaXZlZCBzaG91bGQgYmUgY29sbGVjdGVkIGFuZCByZXBvcnRlZCBmb3IgdGhl
IHJlcXVlc3QuCisgICAgICAgIGJvb2wgcmVwb3J0UmF3SGVhZGVycygpIGNvbnN0IHsgcmV0dXJu
IG1fcmVwb3J0UmF3SGVhZGVyczsgfQorICAgICAgICB2b2lkIHNldFJlcG9ydFJhd0hlYWRlcnMo
Ym9vbCByZXBvcnRSYXdIZWFkZXJzKSB7IG1fcmVwb3J0UmF3SGVhZGVycyA9IHJlcG9ydFJhd0hl
YWRlcnM7IH0KKwogICAgICAgICAvLyBXaGF0IHRoaXMgcmVxdWVzdCBpcyBmb3IuCiAgICAgICAg
IFRhcmdldFR5cGUgdGFyZ2V0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0VHlwZTsgfQog
ICAgICAgICB2b2lkIHNldFRhcmdldFR5cGUoVGFyZ2V0VHlwZSB0eXBlKSB7IG1fdGFyZ2V0VHlw
ZSA9IHR5cGU7IH0KQEAgLTE0Nyw2ICsxNTEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgICAgICAsIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZCh0cnVlKQogICAgICAgICAgICAgLCBt
X3JlcG9ydFVwbG9hZFByb2dyZXNzKGZhbHNlKQogICAgICAgICAgICAgLCBtX3JlcG9ydExvYWRU
aW1pbmcoZmFsc2UpCisgICAgICAgICAgICAsIG1fcmVwb3J0UmF3SGVhZGVycyhmYWxzZSkKICAg
ICAgICAgICAgICwgbV90YXJnZXRUeXBlKFRhcmdldElzU3VicmVzb3VyY2UpCiAgICAgICAgIHsK
ICAgICAgICAgfQpAQCAtMTYxLDYgKzE2Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgICAgICwgbV9wbGF0Zm9ybVJlcXVlc3RVcGRhdGVkKGZhbHNlKQogICAgICAgICAgICAgLCBt
X3JlcG9ydFVwbG9hZFByb2dyZXNzKGZhbHNlKQogICAgICAgICAgICAgLCBtX3JlcG9ydExvYWRU
aW1pbmcoZmFsc2UpCisgICAgICAgICAgICAsIG1fcmVwb3J0UmF3SGVhZGVycyhmYWxzZSkKICAg
ICAgICAgICAgICwgbV90YXJnZXRUeXBlKFRhcmdldElzU3VicmVzb3VyY2UpCiAgICAgICAgIHsK
ICAgICAgICAgfQpAQCAtMTgyLDYgKzE4OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgbXV0YWJsZSBib29sIG1fcGxhdGZvcm1SZXF1ZXN0VXBkYXRlZDsKICAgICAgICAgYm9vbCBt
X3JlcG9ydFVwbG9hZFByb2dyZXNzOwogICAgICAgICBib29sIG1fcmVwb3J0TG9hZFRpbWluZzsK
KyAgICAgICAgYm9vbCBtX3JlcG9ydFJhd0hlYWRlcnM7CiAgICAgICAgIFRhcmdldFR5cGUgbV90
YXJnZXRUeXBlOwogCiAgICAgcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCmluZGV4IGUyMzE2NTIuLmUzN2M0ZDEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHAK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNwcApA
QCAtNTE1LDYgKzUxNSwyMCBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjpzZXRSZXNvdXJj
ZUxvYWRUaW1pbmcoUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+CiAgICAgbV9yZXNvdXJj
ZUxvYWRUaW1pbmcgPSByZXNvdXJjZUxvYWRUaW1pbmc7CiB9CiAKK1Bhc3NSZWZQdHI8UmVzb3Vy
Y2VSYXdIZWFkZXJzPiBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6cmVzb3VyY2VSYXdIZWFkZXJzKCkg
Y29uc3QKK3sKKyAgICBsYXp5SW5pdCgpOworCisgICAgcmV0dXJuIG1fcmVzb3VyY2VSYXdIZWFk
ZXJzLmdldCgpOworfQorCit2b2lkIFJlc291cmNlUmVzcG9uc2VCYXNlOjpzZXRSZXNvdXJjZVJh
d0hlYWRlcnMoUGFzc1JlZlB0cjxSZXNvdXJjZVJhd0hlYWRlcnM+IGhlYWRlcnMpCit7CisgICAg
bGF6eUluaXQoKTsKKworICAgIG1fcmVzb3VyY2VSYXdIZWFkZXJzID0gaGVhZGVyczsKK30KKwog
dm9pZCBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6bGF6eUluaXQoKSBjb25zdAogewogICAgIGNvbnN0
X2Nhc3Q8UmVzb3VyY2VSZXNwb25zZSo+KHN0YXRpY19jYXN0PGNvbnN0IFJlc291cmNlUmVzcG9u
c2UqPih0aGlzKSktPnBsYXRmb3JtTGF6eUluaXQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKaW5kZXggNjVlMjRhZC4uYjc2ZjQxMCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgK
KysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmgKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJIVFRQSGVhZGVyTWFwLmgiCiAjaW5jbHVkZSAiS1VS
TC5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZFRpbWluZy5oIgorI2luY2x1ZGUgIlJlc291cmNl
UmF3SGVhZGVycy5oIgogCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CkBAIC0xMDksNiArMTEwLDkgQEAgcHVibGljOgogICAgIFJlc291cmNlTG9h
ZFRpbWluZyogcmVzb3VyY2VMb2FkVGltaW5nKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRSZXNvdXJj
ZUxvYWRUaW1pbmcoUGFzc1JlZlB0cjxSZXNvdXJjZUxvYWRUaW1pbmc+KTsKIAorICAgIFBhc3NS
ZWZQdHI8UmVzb3VyY2VSYXdIZWFkZXJzPiByZXNvdXJjZVJhd0hlYWRlcnMoKSBjb25zdDsKKyAg
ICB2b2lkIHNldFJlc291cmNlUmF3SGVhZGVycyhQYXNzUmVmUHRyPFJlc291cmNlUmF3SGVhZGVy
cz4pOworCiAgICAgLy8gVGhlIFJlc291cmNlUmVzcG9uc2Ugc3ViY2xhc3MgbWF5ICJzaGFkb3ci
IHRoaXMgbWV0aG9kIHRvIHByb3ZpZGUgcGxhdGZvcm0tc3BlY2lmaWMgbWVtb3J5IHVzYWdlIGlu
Zm9ybWF0aW9uCiAgICAgdW5zaWduZWQgbWVtb3J5VXNhZ2UoKSBjb25zdAogICAgIHsKQEAgLTE0
Myw2ICsxNDcsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdW5zaWduZWQgbV9jb25uZWN0aW9uSUQ7CiAg
ICAgYm9vbCBtX2Nvbm5lY3Rpb25SZXVzZWQgOiAxOwogICAgIFJlZlB0cjxSZXNvdXJjZUxvYWRU
aW1pbmc+IG1fcmVzb3VyY2VMb2FkVGltaW5nOworICAgIFJlZlB0cjxSZXNvdXJjZVJhd0hlYWRl
cnM+IG1fcmVzb3VyY2VSYXdIZWFkZXJzOwogCiAgICAgYm9vbCBtX2lzTnVsbCA6IDE7CiAgICAg
CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCBhMjg1MTdhLi4zYTEwMjM3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMiBAQAorMjAxMC0wOS0yOSAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogZGlzcGxheSBoZWFkZXJzIGFjdHVhbGx5IHVzZWQgYnkgbmV0d29yayBzdGFjayBp
biBSZXNvdXJjZXMgdGFiCisgICAgICAgIEFkZGVkIHBsdW1iaW5nIGZvciByYXcgaGVhZGVycyBm
bGFnIGFuZCByZXNwb25zZSBmaWVsZCBiZXR3ZWVuIGNocm9taXVtIGFuZCBXZWJDb3JlLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDYwOTIKKworICAg
ICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYlJlc291cmNlUmF3SGVhZGVy
cy5oOiBBZGRlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViVVJMUmVxdWVzdC5oOgorICAgICAgICAq
IHB1YmxpYy9XZWJVUkxSZXNwb25zZS5oOgorICAgICAgICAqIHNyYy9XZWJEZXZUb29sc0FnZW50
SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkRldlRvb2xzQWdlbnRJbXBsOjp3aWxsU2Vu
ZFJlcXVlc3QpOgorICAgICAgICAqIHNyYy9XZWJSZXNvdXJjZVJhd0hlYWRlcnMuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpXZWJSZXNvdXJjZVJh
d0hlYWRlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZVJhd0hlYWRlcnM6On5XZWJS
ZXNvdXJjZVJhd0hlYWRlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZVJhd0hlYWRl
cnM6Om9wZXJhdG9yIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSZXNvdXJjZVJhd0hlYWRlcnM+
KToKKyAgICAgICAgKFdlYktpdDo6YWRkSGVhZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVz
b3VyY2VSYXdIZWFkZXJzOjphZGRSZXF1ZXN0SGVhZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UmVzb3VyY2VSYXdIZWFkZXJzOjphZGRSZXNwb25zZUhlYWRlcik6CisgICAgICAgICogc3JjL1dl
YlVSTFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXF1ZXN0OjpzZXRSZXBv
cnRSYXdIZWFkZXJzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVxdWVzdDo6cmVwb3J0UmF3
SGVhZGVycyk6CisgICAgICAgICogc3JjL1dlYlVSTFJlc3BvbnNlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViVVJMUmVzcG9uc2U6OnJlc291cmNlUmF3SGVhZGVycyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlVSTFJlc3BvbnNlOjpzZXRSZXNvdXJjZVJhd0hlYWRlcnMpOgorICAgICAgICAqIHNy
Yy9XZWJVUkxSZXNwb25zZVByaXZhdGUuaDoKKwogMjAxMC0wOS0yOCAgVmFuZ2VsaXMgS29ra2V2
aXMgIDx2YW5nZWxpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0
aCBSdXNzZWxsLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9XZWJL
aXQvY2hyb21pdW0vV2ViS2l0Lmd5cAppbmRleCA1Yjk1M2UzLi5lZmVkZGUwIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cAorKysgYi9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cApAQCAtMjMxLDYgKzIzMSw3IEBACiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJSYW5n
ZS5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlJlY3QuaCcsCiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJSZWd1bGFyRXhwcmVzc2lvbi5oJywKKyAgICAgICAgICAgICAgICAncHVi
bGljL1dlYlJlc291cmNlUmF3SGVhZGVycy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dl
YlJ1bnRpbWVGZWF0dXJlcy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlNjcm9sbGJh
ci5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYlNjcm9sbGJhckNsaWVudC5oJywKQEAg
LTQ5NSw2ICs0OTYsNyBAQAogICAgICAgICAgICAgICAgICdzcmMvV2ViUG9wdXBNZW51SW1wbC5o
JywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlJhbmdlLmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9XZWJSZWd1bGFyRXhwcmVzc2lvbi5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2Vi
UmVzb3VyY2VSYXdIZWFkZXJzLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJSdW50aW1l
RmVhdHVyZXMuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlNjcmlwdENvbnRyb2xsZXIu
Y3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYlNjcm9sbGJhckltcGwuY3BwJywKZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmggYi9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlJlc291cmNlUmF3SGVhZGVycy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwY2M4MTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlJlc291cmNlUmF3SGVhZGVycy5oCkBAIC0wLDAgKzEsNjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYlJlc291cmNlUmF3SGVhZGVyc19oCisjZGVmaW5lIFdlYlJlc291cmNlUmF3
SGVhZGVyc19oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJQcml2YXRl
UHRyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBSZXNvdXJjZVJhd0hlYWRlcnM7
Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViSFRUUEhlYWRlclZpc2l0b3I7Citj
bGFzcyBXZWJSZXNvdXJjZVJhd0hlYWRlcnNNYXBQcml2YXRlOworY2xhc3MgV2ViU3RyaW5nOwor
CitjbGFzcyBXZWJSZXNvdXJjZVJhd0hlYWRlcnMgeworcHVibGljOgorICAgIFdlYlJlc291cmNl
UmF3SGVhZGVycygpOworICAgIH5XZWJSZXNvdXJjZVJhd0hlYWRlcnMoKTsKKworICAgIHZvaWQg
YWRkUmVxdWVzdEhlYWRlcihjb25zdCBXZWJTdHJpbmcmIG5hbWUsIGNvbnN0IFdlYlN0cmluZyYg
dmFsdWUpOworICAgIHZvaWQgYWRkUmVzcG9uc2VIZWFkZXIoY29uc3QgV2ViU3RyaW5nJiBuYW1l
LCBjb25zdCBXZWJTdHJpbmcmIHZhbHVlKTsKKworI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgor
ICAgIFdlYlJlc291cmNlUmF3SGVhZGVycyhXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6UmVzb3Vy
Y2VSYXdIZWFkZXJzPik7CisgICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJl
c291cmNlUmF3SGVhZGVycz4oKSBjb25zdDsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFdlYlBy
aXZhdGVQdHI8V2ViQ29yZTo6UmVzb3VyY2VSYXdIZWFkZXJzPiBtX3ByaXZhdGU7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlVSTFJlcXVlc3QuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVVJM
UmVxdWVzdC5oCmluZGV4IDM2ZDY3OTEuLmU2NGNlODAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViVVJMUmVxdWVzdC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViVVJMUmVxdWVzdC5oCkBAIC0xMzQsNiArMTM0LDExIEBAIHB1YmxpYzoKICAgICBXRUJLSVRf
QVBJIGJvb2wgcmVwb3J0TG9hZFRpbWluZygpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgdm9pZCBz
ZXRSZXBvcnRMb2FkVGltaW5nKGJvb2wpOwogCisgICAgLy8gQ29udHJvbHMgd2hldGhlciBhY3R1
YWwgaGVhZGVycyBzZW50IGFuZCByZWNlaXZlZCBmb3IgcmVxdWVzdCBhcmUKKyAgICAvLyBjb2xs
ZWN0ZWQgYW5kIHJlcG9ydGVkLgorICAgIFdFQktJVF9BUEkgYm9vbCByZXBvcnRSYXdIZWFkZXJz
KCkgY29uc3Q7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlcG9ydFJhd0hlYWRlcnMoYm9vbCk7
CisKICAgICBXRUJLSVRfQVBJIFRhcmdldFR5cGUgdGFyZ2V0VHlwZSgpIGNvbnN0OwogICAgIFdF
QktJVF9BUEkgdm9pZCBzZXRUYXJnZXRUeXBlKFRhcmdldFR5cGUpOwogCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlVSTFJlc3BvbnNlLmggYi9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlVSTFJlc3BvbnNlLmgKaW5kZXggYWM3NWQ0Yy4uZjc4YzJkYiAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJVUkxSZXNwb25zZS5oCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVVJMUmVzcG9uc2UuaApAQCAtMzIsNiArMzIsNyBAQAogI2RlZmlu
ZSBXZWJVUkxSZXNwb25zZV9oCiAKICNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJX
ZWJQcml2YXRlT3duUHRyLmgiCiAKICNpZiBkZWZpbmVkKFdFQktJVF9JTVBMRU1FTlRBVElPTikK
IG5hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsgfQpAQCAtNDEsNiAr
NDIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViQ1N0cmluZzsKIGNsYXNzIFdl
YkhUVFBIZWFkZXJWaXNpdG9yOworY2xhc3MgV2ViUmVzb3VyY2VSYXdIZWFkZXJzOwogY2xhc3Mg
V2ViU3RyaW5nOwogY2xhc3MgV2ViVVJMOwogY2xhc3MgV2ViVVJMTG9hZFRpbWluZzsKQEAgLTgy
LDYgKzg0LDkgQEAgcHVibGljOgogICAgIFdFQktJVF9BUEkgV2ViVVJMTG9hZFRpbWluZyBsb2Fk
VGltaW5nKCk7CiAgICAgV0VCS0lUX0FQSSB2b2lkIHNldExvYWRUaW1pbmcoY29uc3QgV2ViVVJM
TG9hZFRpbWluZyYpOwogCisgICAgV0VCS0lUX0FQSSBXZWJSZXNvdXJjZVJhd0hlYWRlcnMgcmVz
b3VyY2VSYXdIZWFkZXJzKCk7CisgICAgV0VCS0lUX0FQSSB2b2lkIHNldFJlc291cmNlUmF3SGVh
ZGVycyhjb25zdCBXZWJSZXNvdXJjZVJhd0hlYWRlcnMmKTsKKwogICAgIFdFQktJVF9BUEkgZG91
YmxlIHJlc3BvbnNlVGltZSgpIGNvbnN0OwogICAgIFdFQktJVF9BUEkgdm9pZCBzZXRSZXNwb25z
ZVRpbWUoZG91YmxlKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEZXZU
b29sc0FnZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJ
bXBsLmNwcAppbmRleCBjN2JiMDUwLi4zM2NjMDliIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkRldlRvb2xzQWdlbnRJbXBsLmNwcApAQCAtMzE3LDggKzMxNywxMSBAQCB2b2lkIFdlYkRl
dlRvb2xzQWdlbnRJbXBsOjppZGVudGlmaWVyRm9ySW5pdGlhbFJlcXVlc3QoCiAKIHZvaWQgV2Vi
RGV2VG9vbHNBZ2VudEltcGw6OndpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIHJlc291cmNl
SWQsIFdlYlVSTFJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgaWYgKEluc3BlY3RvckNvbnRyb2xs
ZXIqIGljID0gaW5zcGVjdG9yQ29udHJvbGxlcigpKQorICAgIGlmIChJbnNwZWN0b3JDb250cm9s
bGVyKiBpYyA9IGluc3BlY3RvckNvbnRyb2xsZXIoKSkgewogICAgICAgICBpYy0+d2lsbFNlbmRS
ZXF1ZXN0KHJlc291cmNlSWQsIHJlcXVlc3QudG9NdXRhYmxlUmVzb3VyY2VSZXF1ZXN0KCksIFJl
c291cmNlUmVzcG9uc2UoKSk7CisgICAgICAgIGlmIChpYy0+aGFzRnJvbnRlbmQoKSAmJiByZXF1
ZXN0LnJlcG9ydExvYWRUaW1pbmcoKSkKKyAgICAgICAgICAgIHJlcXVlc3Quc2V0UmVwb3J0UmF3
SGVhZGVycyh0cnVlKTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViRGV2VG9vbHNBZ2VudEltcGw6OmRp
ZFJlY2VpdmVEYXRhKHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VJZCwgaW50IGxlbmd0aCkKZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmNwcCBiL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYTVlZTk1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJSZXNvdXJjZVJhd0hlYWRlcnMuY3BwCkBAIC0wLDAgKzEsODIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQor
ICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VSYXdIZWFkZXJzLmgiCisK
KyNpbmNsdWRlICJSZXNvdXJjZVJhd0hlYWRlcnMuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3Bv
bnNlLmgiCisjaW5jbHVkZSAiV2ViSFRUUEhlYWRlclZpc2l0b3IuaCIKKyNpbmNsdWRlICJXZWJT
dHJpbmcuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OldlYlJlc291cmNlUmF3SGVhZGVycygpCit7Cisg
ICAgbV9wcml2YXRlID0gYWRvcHRSZWYobmV3IFJlc291cmNlUmF3SGVhZGVycygpKTsKK30KKwor
V2ViUmVzb3VyY2VSYXdIZWFkZXJzOjp+V2ViUmVzb3VyY2VSYXdIZWFkZXJzKCkKK3sKKyAgICBt
X3ByaXZhdGUucmVzZXQoKTsKK30KKworV2ViUmVzb3VyY2VSYXdIZWFkZXJzOjpXZWJSZXNvdXJj
ZVJhd0hlYWRlcnMoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlUmF3SGVhZGVycz4g
dmFsdWUpCit7CisgICAgbV9wcml2YXRlID0gdmFsdWU7Cit9CisKK1dlYlJlc291cmNlUmF3SGVh
ZGVyczo6b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJlc291cmNlUmF3SGVhZGVy
cz4oKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCk7Cit9CisKK3N0YXRpYyB2
b2lkIGFkZEhlYWRlcihIVFRQSGVhZGVyTWFwKiBtYXAsIGNvbnN0IFdlYlN0cmluZyYgbmFtZSwg
Y29uc3QgV2ViU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBwYWlyPEhUVFBIZWFkZXJNYXA6Oml0ZXJh
dG9yLCBib29sPiByZXN1bHQgPSBtYXAtPmFkZChuYW1lLCB2YWx1ZSk7CisgICAgaWYgKCFyZXN1
bHQuc2Vjb25kKQorICAgICAgICByZXN1bHQuZmlyc3QtPnNlY29uZCArPSBTdHJpbmcoIiwgIikg
KyB2YWx1ZTsKK30KKwordm9pZCBXZWJSZXNvdXJjZVJhd0hlYWRlcnM6OmFkZFJlcXVlc3RIZWFk
ZXIoY29uc3QgV2ViU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJTdHJpbmcmIHZhbHVlKQoreworICAg
IEFTU0VSVCghbV9wcml2YXRlLmlzTnVsbCgpKTsKKyAgICBhZGRIZWFkZXIoJm1fcHJpdmF0ZS0+
cmVxdWVzdEhlYWRlcnMsIG5hbWUsIHZhbHVlKTsKK30KKwordm9pZCBXZWJSZXNvdXJjZVJhd0hl
YWRlcnM6OmFkZFJlc3BvbnNlSGVhZGVyKGNvbnN0IFdlYlN0cmluZyYgbmFtZSwgY29uc3QgV2Vi
U3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7CisgICAg
YWRkSGVhZGVyKCZtX3ByaXZhdGUtPnJlc3BvbnNlSGVhZGVycywgbmFtZSwgdmFsdWUpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVVJMUmVxdWVzdC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlcXVlc3QuY3Bw
CmluZGV4IDI5NTAwNzYuLmIyNDM0MjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVVJMUmVxdWVzdC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJVUkxSZXF1ZXN0
LmNwcApAQCAtMjAxLDYgKzIwMSwxNiBAQCBib29sIFdlYlVSTFJlcXVlc3Q6OnJlcG9ydExvYWRU
aW1pbmcoKSBjb25zdAogICAgIHJldHVybiBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXF1ZXN0LT5y
ZXBvcnRMb2FkVGltaW5nKCk7CiB9CiAKK3ZvaWQgV2ViVVJMUmVxdWVzdDo6c2V0UmVwb3J0UmF3
SGVhZGVycyhib29sIHJlcG9ydFJhd0hlYWRlcnMpCit7CisgICAgbV9wcml2YXRlLT5tX3Jlc291
cmNlUmVxdWVzdC0+c2V0UmVwb3J0UmF3SGVhZGVycyhyZXBvcnRSYXdIZWFkZXJzKTsKK30KKwor
Ym9vbCBXZWJVUkxSZXF1ZXN0OjpyZXBvcnRSYXdIZWFkZXJzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLT5tX3Jlc291cmNlUmVxdWVzdC0+cmVwb3J0UmF3SGVhZGVycygpOworfQor
CiB2b2lkIFdlYlVSTFJlcXVlc3Q6OnNldFJlcG9ydExvYWRUaW1pbmcoYm9vbCByZXBvcnRMb2Fk
VGltaW5nKQogewogICAgIG1fcHJpdmF0ZS0+bV9yZXNvdXJjZVJlcXVlc3QtPnNldFJlcG9ydExv
YWRUaW1pbmcocmVwb3J0TG9hZFRpbWluZyk7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlVSTFJlc3BvbnNlLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVzcG9u
c2UuY3BwCmluZGV4IGFhZTQxM2MuLjUzNDM5MjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVVJMUmVzcG9uc2UuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVVJM
UmVzcG9uc2UuY3BwCkBAIC0xMjksNiArMTI5LDE2IEBAIHZvaWQgV2ViVVJMUmVzcG9uc2U6OnNl
dExvYWRUaW1pbmcoY29uc3QgV2ViVVJMTG9hZFRpbWluZyYgdGltaW5nKQogICAgIG1fcHJpdmF0
ZS0+bV9yZXNvdXJjZVJlc3BvbnNlLT5zZXRSZXNvdXJjZUxvYWRUaW1pbmcobG9hZFRpbWluZy5y
ZWxlYXNlKCkpOwogfQogCitXZWJSZXNvdXJjZVJhd0hlYWRlcnMgV2ViVVJMUmVzcG9uc2U6OnJl
c291cmNlUmF3SGVhZGVycygpCit7CisgICAgcmV0dXJuIFdlYlJlc291cmNlUmF3SGVhZGVycyht
X3ByaXZhdGUtPm1fcmVzb3VyY2VSZXNwb25zZS0+cmVzb3VyY2VSYXdIZWFkZXJzKCkpOworfQor
Cit2b2lkIFdlYlVSTFJlc3BvbnNlOjpzZXRSZXNvdXJjZVJhd0hlYWRlcnMoY29uc3QgV2ViUmVz
b3VyY2VSYXdIZWFkZXJzJiB2YWx1ZSkKK3sKKyAgICBtX3ByaXZhdGUtPm1fcmVzb3VyY2VSZXNw
b25zZS0+c2V0UmVzb3VyY2VSYXdIZWFkZXJzKHZhbHVlKTsKK30KKwogZG91YmxlIFdlYlVSTFJl
c3BvbnNlOjpyZXNwb25zZVRpbWUoKSBjb25zdAogewogICAgIHJldHVybiBtX3ByaXZhdGUtPm1f
cmVzb3VyY2VSZXNwb25zZS0+cmVzcG9uc2VUaW1lKCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlUHJpdmF0ZS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJVUkxSZXNwb25zZVByaXZhdGUuaAppbmRleCBkYzVjZTIyLi40MTgxZTRjIDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlVSTFJlc3BvbnNlUHJpdmF0ZS5oCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVVJMUmVzcG9uc2VQcml2YXRlLmgKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpZm5kZWYgV2ViVVJMUmVzcG9uc2VQcml2YXRlX2gKICNkZWZpbmUgV2ViVVJMUmVzcG9uc2VQ
cml2YXRlX2gKIAorI2luY2x1ZGUgIldlYlJlc291cmNlUmF3SGVhZGVycy5oIgogI2luY2x1ZGUg
IldlYlN0cmluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIFJlc291cmNlUmVzcG9u
c2U7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>