<?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>32912</bug_id>
          
          <creation_ts>2009-12-23 16:59:47 -0800</creation_ts>
          <short_desc>Implement File and Blob interfaces as defined in File API spec.</short_desc>
          <delta_ts>2010-01-20 15:55:06 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</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>
          
          <blocked>32993</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jian Li">jianli</reporter>
          <assigned_to name="Jian Li">jianli</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dimich</cc>
    
    <cc>fishd</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>174692</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-12-23 16:59:47 -0800</bug_when>
    <thetext>This is the first step to implement HTML 5 File API as defined in http://www.w3.org/TR/FileAPI. We need to add Blob interface and change File interface to derive from it.

The implementation of File.urn and Blob.slice will not be in the scope of this bug. Separate bugs will be created.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174701</commentid>
    <comment_count>1</comment_count>
      <attachid>45459</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-12-23 17:21:01 -0800</bug_when>
    <thetext>Created attachment 45459
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174702</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-23 17:22:30 -0800</bug_when>
    <thetext>Attachment 45459 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/html/File.h:35:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
WebCore/html/Blob.cpp:72:  One line control clauses should not use braces.  [whitespace/braces] [4]
WebCore/html/Blob.h:41:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174704</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-23 17:31:57 -0800</bug_when>
    <thetext>Attachment 45459 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/142502</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174707</commentid>
    <comment_count>4</comment_count>
      <attachid>45459</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-23 18:00:44 -0800</bug_when>
    <thetext>Comment on attachment 45459
Proposed Patch

Looks like you need to teach the V8 code generator about long long to get this to build.  Also, there are style nits and tabs in the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174710</commentid>
    <comment_count>5</comment_count>
      <attachid>45460</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-12-23 18:22:12 -0800</bug_when>
    <thetext>Created attachment 45460
Proposed Patch

Fixed style problems and added V8 binding changes (I previously planned to put them in a separate patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175341</commentid>
    <comment_count>6</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-12-28 17:46:40 -0800</bug_when>
    <thetext>File API is not part of HTML5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175347</commentid>
    <comment_count>7</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-12-28 17:50:48 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; File API is not part of HTML5.

Sorry for the confusion. Should I just use &quot;File API&quot; to refer to the spec? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175354</commentid>
    <comment_count>8</comment_count>
      <attachid>45582</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-12-28 18:04:32 -0800</bug_when>
    <thetext>Created attachment 45582
Proposed Patch

Update the description in ChangeLog per the bug title change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>178828</commentid>
    <comment_count>9</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-01-08 15:03:05 -0800</bug_when>
    <thetext>The change looks ok but  you &apos;cache&apos; the length in the File at the moment of its creation, which will cause behavior change from current one -  if the file changes on the disk before XHR.send(file) is called. I don&apos;t know if this is good or bad.

I&apos;ve sent mail to public-webapps trying to clarify this: http://www.mail-archive.com/public-webapps@w3.org/msg07198.html

File API spec does not tell much about behavior when files on disk change. My first reaction would be to mark any Blob obtained from slice() method as &apos;invalid&apos; and fail operations with it once file on disk changes - while keeping the &apos;original&apos; Blob which is also a File &apos;mutating&apos;, following the state of the file on the disk. This would keep current behavior of XHR.send(file) which is also consistent with regular form submission.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179688</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-01-11 23:08:49 -0800</bug_when>
    <thetext>&lt;input type=file&gt; does not require the referenced file to remain unmodified until it is submitted, and since Blob can just be a pointer to the file referenced by an INPUT element, I think it should similarly not care if the file is modified.  We should probably just treat Blob as a path to data.  This implies not caching file length.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179933</commentid>
    <comment_count>11</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-01-12 12:32:35 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; &lt;input type=file&gt; does not require the referenced file to remain unmodified
&gt; until it is submitted, and since Blob can just be a pointer to the file
&gt; referenced by an INPUT element, I think it should similarly not care if the
&gt; file is modified.  We should probably just treat Blob as a path to data.  This
&gt; implies not caching file length.

Agree. Marking it r- to remove the caching.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180975</commentid>
    <comment_count>12</comment_count>
      <attachid>46616</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-01-14 15:51:49 -0800</bug_when>
    <thetext>Created attachment 46616
Proposed Patch

Removed the caching for file length.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181030</commentid>
    <comment_count>13</comment_count>
      <attachid>46624</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-01-14 17:26:08 -0800</bug_when>
    <thetext>Created attachment 46624
Proposed Patch

Produced a new patch that resolved the conflict with other landed patch so that the commit queue can check this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>181090</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-14 20:46:55 -0800</bug_when>
    <thetext>Attachment 46624 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/187848</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182319</commentid>
    <comment_count>15</comment_count>
      <attachid>46927</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-01-19 10:51:27 -0800</bug_when>
    <thetext>Created attachment 46927
Proposed Patch

Removed those properties, that are not implemented yet, from IDL files, as suggested by dimich.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182364</commentid>
    <comment_count>16</comment_count>
      <attachid>46927</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-01-19 12:16:20 -0800</bug_when>
    <thetext>Comment on attachment 46927
Proposed Patch

Almost there. Would be nice to get it building on trybots though since it&apos;s mostly a change to build files...

&gt; diff --git a/WebCore/bindings/objc/PublicDOMInterfaces.h b/WebCore/bindings/objc/PublicDOMInterfaces.h

&gt; +@property(readonly, copy) NSString *type;
&gt; +@property(readonly, copy) NSString *urn;

These are from a future patch. Should be removed.

&gt; diff --git a/WebCore/html/Blob.cpp b/WebCore/html/Blob.cpp

&gt; + * Copyright (C) 2009 Google Inc. All rights reserved.

2009 -&gt; 2010?

&gt; +unsigned long long Blob::size() const
&gt; +{
&gt; +    if (m_length != -1)
&gt; +        return static_cast&lt;unsigned long long&gt;(m_length);

Since this patch does not depend on Blob holding m_length and m_start, lets not add them in this patch. They will be added as part of slice() I think.

&gt; diff --git a/WebCore/html/Blob.h b/WebCore/html/Blob.h

&gt; + * Copyright (C) 2009 Google Inc. All rights reserved.

2010

&gt; diff --git a/WebCore/html/Blob.idl b/WebCore/html/Blob.idl

&gt; + * Copyright (C) 2009 Google Inc. All rights reserved.

2010

&gt; +File::~File()

Does it need an empty destructor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182491</commentid>
    <comment_count>17</comment_count>
      <attachid>46957</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-01-19 16:05:15 -0800</bug_when>
    <thetext>Created attachment 46957
Proposed Patch

All fixed. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182512</commentid>
    <comment_count>18</comment_count>
      <attachid>46957</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-01-19 16:42:39 -0800</bug_when>
    <thetext>Comment on attachment 46957
Proposed Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182955</commentid>
    <comment_count>19</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-01-20 15:55:06 -0800</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/53574.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45459</attachid>
            <date>2009-12-23 17:21:01 -0800</date>
            <delta_ts>2009-12-23 18:22:12 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>32912</filename>
            <type>text/plain</type>
            <size>38884</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NTNjNDk1Li42OWI1ZGZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTIt
MjMgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBGaWxlIGFuZCBCbG9iIGludGVy
ZmFjZXMgYXMgZGVmaW5lZCBpbiBIVE1MIDUgRmlsZSBBUEkgc3BlYy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyOTEyCisgICAgICAgIAorICAgICAg
ICBVcGRhdGVkIHRoZSByZXN1bHQgb2YgYSBsYXlvdXQgdGVzdCBiZWluZyBhZmZlY3RlZC4KKwor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6
CisKIDIwMDktMTItMTggIFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50
eHQKaW5kZXggMTAwMGEwZC4uZjI3OTRkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC04OTgs
NiArODk4LDcgQEAgd2luZG93LkV2ZW50U291cmNlLnByb3RvdHlwZS5kaXNwYXRjaEV2ZW50IFtm
dW5jdGlvbl0KIHdpbmRvdy5FdmVudFNvdXJjZS5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5l
ciBbZnVuY3Rpb25dCiB3aW5kb3cuRmlsZSBbb2JqZWN0IEZpbGVDb25zdHJ1Y3Rvcl0KIHdpbmRv
dy5GaWxlLnByb3RvdHlwZSBbb2JqZWN0IEZpbGVQcm90b3R5cGVdCit3aW5kb3cuRmlsZS5wcm90
b3R5cGUuc2xpY2UgW2Z1bmN0aW9uXQogd2luZG93LkZpbGVMaXN0IFtvYmplY3QgRmlsZUxpc3RD
b25zdHJ1Y3Rvcl0KIHdpbmRvdy5GaWxlTGlzdC5wcm90b3R5cGUgW29iamVjdCBGaWxlTGlzdFBy
b3RvdHlwZV0KIHdpbmRvdy5GaWxlTGlzdC5wcm90b3R5cGUuaXRlbSBbZnVuY3Rpb25dCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tayBiL1dlYkNvcmUv
QW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rCmluZGV4IGM3NDcxM2EuLjE5NjkwYmIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rCisrKyBiL1dl
YkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rCkBAIC0xNDksNiArMTQ5LDcgQEAg
JChwYXRzdWJzdCAlLmgsJS5jcHAsJChHRU4pKTogJChpbnRlcm1lZGlhdGVzKS9kb20vJS5jcHAg
OiAkKGludGVybWVkaWF0ZXMpL2RvbS8KIAogIyBIVE1MCiBHRU4gOj0gXAorICAgICQoaW50ZXJt
ZWRpYXRlcykvaHRtbC9KU0Jsb2IuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRGF0
YUdyaWRDb2x1bW4uaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRGF0YUdyaWRDb2x1
bW5MaXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0ZpbGUuaCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRy
b2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawppbmRleCA3YjY4N2U4Li5hM2E5NjczIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCisrKyBiL1dlYkNvcmUv
QW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKQEAgLTEzMiw2ICsxMzIsNyBAQCAkKHBhdHN1
YnN0ICUuaCwlLmNwcCwkKEdFTikpOiAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzLyUuY3BwIDog
JChpbnRlcm1lZGlhdGVzKQogCiAjIEhUTUwKIEdFTiA6PSBcCisgICAgJChpbnRlcm1lZGlhdGVz
KS9iaW5kaW5ncy9WOEJsb2IuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOERh
dGFHcmlkQ29sdW1uLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhEYXRhR3Jp
ZENvbHVtbkxpc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOEZpbGUuaCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJvaWQubWsgYi9XZWJDb3JlL0FuZHJvaWQubWsKaW5k
ZXggMjkzYzQzYi4uMTA3ZjI0NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLm1rCisrKyBi
L1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtMjM0LDYgKzIzNCw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6
PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCVwKIAloaXN0b3J5L2FuZHJvaWQvSGlzdG9yeUl0ZW1B
bmRyb2lkLmNwcCBcCiAJXAorCWh0bWwvQmxvYi5jcHAgXAogCWh0bWwvQ29sbGVjdGlvbkNhY2hl
LmNwcCBcCiAJaHRtbC9GaWxlLmNwcCBcCiAJaHRtbC9GaWxlTGlzdC5jcHAgXApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2M2NmZmI2Li4w
ZWZmZTViIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDA5LTEyLTIzICBKaWFuIExpICA8amlhbmxpQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbXBsZW1lbnQgRmlsZSBhbmQgQmxvYiBpbnRlcmZhY2VzIGFzIGRlZmluZWQgaW4gSFRNTCA1
IEZpbGUgQVBJIHNwZWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMjkxMgorCisgICAgICAgICogQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1r
OgorICAgICAgICAqIEFuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rOgorICAgICAgICAqIEFu
ZHJvaWQubWs6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlU291cmNlcy5ia2w6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hN
TEh0dHBSZXF1ZXN0OjpzZW5kKToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUwuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgorICAgICAgICAqIGh0bWwvQmxvYi5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6QmxvYik6CisgICAgICAgIChXZWJDb3Jl
OjpCbG9iOjpzbGljZSk6CisgICAgICAgICogaHRtbC9CbG9iLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6QmxvYjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6On5CbG9iKToK
KyAgICAgICAgKFdlYkNvcmU6OkJsb2I6OnNpemUpOgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6
cGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpCbG9iOjpzdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpCbG9iOjpsZW5ndGgpOgorICAgICAgICAqIGh0bWwvQmxvYi5pZGw6IEFkZGVkLgorICAgICAg
ICAqIGh0bWwvRmlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjpGaWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGU6On5GaWxlKToKKyAgICAgICAgKiBodG1sL0ZpbGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGU6Om5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6dHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjp1cm4pOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6
ZmlsZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6ZmlsZVNpemUpOgorICAgICAgICAq
IGh0bWwvRmlsZS5pZGw6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpzZW5kKToKKyAgICAgICAgKiB4bWwvWE1MSHR0
cFJlcXVlc3QuaDoKKwogMjAwOS0xMi0xOCAgVG9yIEFybmUgVmVzdGLDuCAgPHRvci5hcm5lLnZl
c3Rib0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwCmluZGV4IGU5NmI2MDYuLmY3YmUxM2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSAiSlNBdHRyLmNwcCIKICNpbmNsdWRlICJKU0JhckluZm8uY3BwIgog
I2luY2x1ZGUgIkpTQmVmb3JlTG9hZEV2ZW50LmNwcCIKKyNpbmNsdWRlICJKU0Jsb2IuY3BwIgog
I2luY2x1ZGUgIkpTQ2FudmFzR3JhZGllbnQuY3BwIgogI2luY2x1ZGUgIkpTQ2FudmFzUGF0dGVy
bi5jcHAiCiAjaW5jbHVkZSAiSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcCIKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCA2YmM0NTQyLi5iNGIxYTgzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC01Myw2ICs1
Myw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIEF0dHIgXAogICAgIEJhckluZm8gXAogICAgIEJl
Zm9yZUxvYWRFdmVudCBcCisJQmxvYiBcCiAgICAgQ0RBVEFTZWN0aW9uIFwKICAgICBDU1NDaGFy
c2V0UnVsZSBcCiAgICAgQ1NTRm9udEZhY2VSdWxlIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDFhMjVmYjAuLjAyMGFl
ZDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVt
YWtlZmlsZS5hbQpAQCAtMTYyLDYgKzE2Miw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29y
ZS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsIFwKIAlXZWJDb3JlL2RvbS9XZWJLaXRUcmFu
c2l0aW9uRXZlbnQuaWRsIFwKIAlXZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmlkbCBcCisgICAgV2Vi
Q29yZS9odG1sL0Jsb2IuaWRsIFwKIAlXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQXJyYXkuaWRs
IFwKIAlXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQXJyYXlCdWZmZXIuaWRsIFwKIAlXZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQnl0ZUFycmF5LmlkbCBcCkBAIC05NTAsNiArOTUxLDggQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaCBcCiAJV2Vi
Q29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgXAogCVdlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUu
aCBcCisgICAgV2ViQ29yZS9odG1sL0Jsb2IuY3BwIFwKKwlXZWJDb3JlL2h0bWwvQmxvYi5oIFwK
IAlXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcCBcCiAJV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNHcmFkaWVudC5oIFwKIAlXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1Bh
dHRlcm4uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKaW5kZXggODM2ZTMzZC4uOTA3MmI0ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTc4LDYgKzc4LDcgQEAK
ICAgICAgICAgICAgICdkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsJywKICAgICAgICAgICAg
ICdkb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1doZWVs
RXZlbnQuaWRsJywKKyAgICAgICAgICAgICdodG1sL0Jsb2IuaWRsJywKICAgICAgICAgICAgICdo
dG1sL2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZh
cy9XZWJHTEFycmF5LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xBcnJheUJ1
ZmZlci5pZGwnLApAQCAtMTI4OCw2ICsxMjg5LDggQEAKICAgICAgICAgICAgICdoaXN0b3J5L0hp
c3RvcnlJdGVtLmgnLAogICAgICAgICAgICAgJ2hpc3RvcnkvUGFnZUNhY2hlLmNwcCcsCiAgICAg
ICAgICAgICAnaGlzdG9yeS9QYWdlQ2FjaGUuaCcsCisgICAgICAgICAgICAnaHRtbC9CbG9iLmNw
cCcsCisgICAgICAgICAgICAnaHRtbC9CbG9iLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFz
L1dlYkdMQXJyYXkuY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEFycmF5Lmgn
LAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQXJyYXlCdWZmZXIuY3BwJywKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDZk
M2Q1ZGUuLjRjYmQzYjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2Vi
Q29yZS9XZWJDb3JlLnBybwpAQCAtMzk2LDYgKzM5Niw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAg
ICAgZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbCBcCiAgICAgZG9tL1dlYktpdFRyYW5zaXRp
b25FdmVudC5pZGwgXAogICAgIGRvbS9XaGVlbEV2ZW50LmlkbCBcCisgICAgaHRtbC9CbG9iLmlk
bCBcCiAgICAgaHRtbC9jYW52YXMvV2ViR0xBcnJheS5pZGwgXAogICAgIGh0bWwvY2FudmFzL1dl
YkdMQXJyYXlCdWZmZXIuaWRsIFwKICAgICBodG1sL2NhbnZhcy9XZWJHTEJ5dGVBcnJheS5pZGwg
XApAQCAtMTAxMSw2ICsxMDEyLDcgQEAgU09VUkNFUyArPSBcCiAgICAgaGlzdG9yeS9IaXN0b3J5
SXRlbS5jcHAgXAogICAgIGhpc3RvcnkvcXQvSGlzdG9yeUl0ZW1RdC5jcHAgXAogICAgIGhpc3Rv
cnkvUGFnZUNhY2hlLmNwcCBcCisgICAgaHRtbC9CbG9iLmNwcCBcCiAgICAgaHRtbC9jYW52YXMv
Q2FudmFzR3JhZGllbnQuY3BwIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmNwcCBc
CiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxBcnJheS5jcHAgXApAQCAtMTY5NSw2ICsxNjk3
LDcgQEAgSEVBREVSUyArPSBcCiAgICAgaGlzdG9yeS9DYWNoZWRQYWdlLmggXAogICAgIGhpc3Rv
cnkvSGlzdG9yeUl0ZW0uaCBcCiAgICAgaGlzdG9yeS9QYWdlQ2FjaGUuaCBcCisgICAgaHRtbC9C
bG9iLmggXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmggXAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1BhdHRlcm4uaCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxBcnJheS5o
IFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGVjYTIyZGMuLjc0NzYy
MjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNzIxLDYgKzcyMSw2
MiBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIk
KFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQmxv
Yi5jcHAiDQorCQkJCT4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1
Z3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJ
PFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9G
aWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJS
ZWxlYXNlfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQor
CQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5h
bWU9IkRlYnVnX0ludGVybmFsfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQor
CQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVp
bGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQor
CQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMyIg0KKwkJ
CQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0
aW9uPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0
T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNCbG9iLmgiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorICAgICAgICAgICAgPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRo
PSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
Q2FudmFzR3JhZGllbnQuY3BwIg0KIAkJCQk+DQogCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KQEAg
LTI5NzMzLDYgKzI5Nzg5LDE0IEBACiAJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCiAJCQk8L0Zp
bGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEJsb2IuY3BwIg0KKwkJ
CQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxC
bG9iLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRo
PSIuLlxodG1sXENvbGxlY3Rpb25DYWNoZS5oIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOTI5NzViYi4uYTA0MTE3
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU5Miw2
ICs1OTIsMTMgQEAKIAkJMjlBODEyNEIwRkJCOUNBOTAwNTEwMjkzIC8qIEFYT2JqZWN0Q2FjaGVN
YWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUE4
MTI0NzBGQkI5Q0E5MDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZU1hYy5tbSAqLzsgfTsKIAkJMkQ5
MDY2MDYwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOTA2NjA0MEJFMTQxRDQwMDk1Njk5OCAv
KiBMYXlvdXRTdGF0ZS5jcHAgKi87IH07CiAJCTJEOTA2NjA3MEJFMTQxRDQwMDk1Njk5OCAvKiBM
YXlvdXRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkQ5MDY2MDUwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkUyRDk5Q0QxMEUyQkJEQTAw
NDk2MzM3IC8qIEpTQmxvYi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRTJEOTlDQjEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmNwcCAqLzsgfTsK
KwkJMkUyRDk5Q0UxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUyRDk5Q0MxMEUyQkJEQTAwNDk2MzM3IC8q
IEpTQmxvYi5oICovOyB9OworCQkyRTJEOTlFNzEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUyRDk5RTUx
MEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2IuaCAqLzsgfTsKKwkJMkUyRDk5RTgxMEUyQkMxQzAw
NDk2MzM3IC8qIERPTUJsb2IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRTJEOTlFNjEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5tbSAqLzsgfTsK
KwkJMkUyRDk5RUExMEUyQkMzODAwNDk2MzM3IC8qIERPTUJsb2JJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUyRDk5RTkxMEUyQkMzODAw
NDk2MzM3IC8qIERPTUJsb2JJbnRlcm5hbC5oICovOyB9OworCQkyRTJEOTlFQjEwRTJCRDM5MDA0
OTYzMzcgLyogRE9NQmxvYi5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUyRDk5RTUxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJs
b2IuaCAqLzsgfTsKKwkJMkUyRDk5RUMxMEUyQkQzOTAwNDk2MzM3IC8qIERPTUJsb2JJbnRlcm5h
bC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkUyRDk5RTkxMEUyQkMzODAwNDk2MzM3IC8qIERPTUJsb2JJbnRlcm5hbC5oICov
OyB9OwogCQkyRTQzNDY0NDBGNTQ2QTgyMDBCMEYxQkEgLyogR2VuZXJpY1dvcmtlclRhc2suaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjMyMEY1
NDZBODIwMEIwRjFCQSAvKiBHZW5lcmljV29ya2VyVGFzay5oICovOyB9OwogCQkyRTQzNDY0NTBG
NTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjMzMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuY3Bw
ICovOyB9OwogCQkyRTQzNDY0NjBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDYzNDBGNTQ2QTgyMDBC
MEYxQkEgLyogV29ya2VyLmggKi87IH07CkBAIC02MTAsNiArNjE3LDggQEAKIAkJMkU0MzQ2NTgw
RjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjU2MEY1NDZBOTkwMEIwRjFCQSAv
KiBDcm9zc1RocmVhZENvcGllci5jcHAgKi87IH07CiAJCTJFNDM0NjU5MEY1NDZBOTkwMEIwRjFC
QSAvKiBDcm9zc1RocmVhZENvcGllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkU0MzQ2NTcwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFkQ29w
aWVyLmggKi87IH07CiAJCTJFQTc2ODA0MEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRM
b2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFQTc2ODAzMEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQu
aCAqLzsgfTsKKwkJMkVBRkFGMEUxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBRkFGMEIxMEUyQUYyRDAw
N0VEM0Q2IC8qIEJsb2IuY3BwICovOyB9OworCQkyRUFGQUYwRjEwRTJBRjJEMDA3RUQzRDYgLyog
QmxvYi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVB
RkFGMEMxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaCAqLzsgfTsKIAkJMkVDRjdBREMxMDE2MkIz
ODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRUNGN0FEQTEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2
ZW50LmNwcCAqLzsgfTsKIAkJMkVDRjdBREQxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVDRjdB
REIxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5oICovOyB9OwogCQkyRUNGN0FFMTEw
MTYyQjU4MDA0MjdERTcgLyogRXJyb3JFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUNGN0FERTEwMTYyQjU4MDA0MjdERTcgLyogRXJyb3JF
dmVudC5jcHAgKi87IH07CkBAIC00ODI5LDYgKzQ4MzgsOCBAQAogCQkJCTVERjdGNUMyMEYwMUY5
MkEwMDUyNkI0QiAvKiBDU1NQcm9wZXJ0eU5hbWVzLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVy
cyAqLywKIAkJCQk4NTM4RjAzMDBBRDcxQ0RCMDA2QTgxRDEgLyogRE9NQWJzdHJhY3RWaWV3Lmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQkxQzExQ0NCQzBBQTYwOTM3MDBEQURC
MjAgLyogRE9NQXR0ci5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCisJCQkJMkUyRDk5
RUIxMEUyQkQzOTAwNDk2MzM3IC8qIERPTUJsb2IuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJz
ICovLAorCQkJCTJFMkQ5OUVDMTBFMkJEMzkwMDQ5NjMzNyAvKiBET01CbG9iSW50ZXJuYWwuaCBp
biBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTFDMTFDQ0M3MEFBNjA5MzcwMERBREIy
MCAvKiBET01DREFUQVNlY3Rpb24uaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJ
CTFDMTFDQ0M1MEFBNjA5MzcwMERBREIyMCAvKiBET01DaGFyYWN0ZXJEYXRhLmggaW4gQ29weSBH
ZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQkxQzExQ0NCNjBBQTYwOTM3MDBEQURCMjAgLyogRE9N
Q29tbWVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCkBAIC01ODQwLDYgKzU4NTEs
MTEgQEAKIAkJMkQ5MDY2MDUwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRTdGF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyRDkwNjYwQjA2NjVEOTM3MDA2QjZGMUEgLyogQ2xpcGJvYXJkTWFj
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVu
dFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENs
aXBib2FyZE1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNU
YWJzID0gMDsgfTsKIAkJMkQ5MDY2MEMwNjY1RDkzNzAwNkI2RjFBIC8qIENsaXBib2FyZE1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IENsaXBib2FyZE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07CisJCTJFMkQ5OUNCMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNCbG9iLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkUyRDk5Q0MxMEUyQkJEQTAwNDk2MzM3IC8qIEpT
QmxvYi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Jsb2IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkUyRDk5RTUxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJs
b2IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQmxvYi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRTJEOTlFNjEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxv
Yi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUJsb2IubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMkQ5OUU5MTBFMkJDMzgwMDQ5NjMzNyAv
KiBET01CbG9iSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
QmxvYkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNDM0NjMyMEY1
NDZBODIwMEIwRjFCQSAvKiBHZW5lcmljV29ya2VyVGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBHZW5lcmljV29ya2VyVGFzay5oOyBwYXRoID0gd29ya2Vycy9HZW5lcmlj
V29ya2VyVGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTQzNDYzMzBGNTQ2
QTgyMDBCMEYxQkEgLyogV29ya2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFdvcmtlci5jcHA7IHBhdGggPSB3b3JrZXJzL1dvcmtlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJFNDM0NjM0MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV29ya2VyLmg7IHBhdGggPSB3b3JrZXJz
L1dvcmtlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTg2MSw2ICs1ODc3LDkg
QEAKIAkJMkU0MzQ2NTYwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyb3NzVGhyZWFkQ29waWVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU0MzQ2NTcwRjU0NkE5OTAwQjBGMUJB
IC8qIENyb3NzVGhyZWFkQ29waWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IENyb3NzVGhyZWFkQ29waWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQTc2
ODAzMEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHBh
dGggPSB3b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyRUFGQUYwQjEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9iLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkVBRkFGMEMxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvYi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkyRUFGQUYwRDEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQmxvYi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQ0Y3
QURBMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNFcnJvckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkVDRjdBREIxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Vycm9yRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVDRjdBREUxMDE2MkI1ODAwNDI3REU3IC8qIEVycm9yRXZl
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXJyb3JFdmVudC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjAzNyw2ICsxMjA1Niw4IEBACiAJ
CTg1QzU2RDAzMEFBOEJBQTcwMEQ5NTc1NSAvKiBIVE1MICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyRTJEOTlFNTEwRTJCQzFDMDA0OTYzMzcgLyogRE9N
QmxvYi5oICovLAorCQkJCTJFMkQ5OUU2MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLm1tICov
LAogCQkJCUJDMDBFRkZFMEUwQTE4NTUwMEZEMDRFMyAvKiBET01GaWxlLmggKi8sCiAJCQkJQkMw
MEVGRkYwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUubW0gKi8sCiAJCQkJQkMwMEYwMDEwRTBB
MTg1NTAwRkQwNEUzIC8qIERPTUZpbGVMaXN0LmggKi8sCkBAIC0xMjE3OCw2ICsxMjE5OSw3IEBA
CiAJCQljaGlsZHJlbiA9ICgKIAkJCQk4NTM4RjAxODBBRDcxOEQ4MDA2QTgxRDEgLyogRE9NQWJz
dHJhY3RWaWV3SW50ZXJuYWwuaCAqLywKIAkJCQk4NUU3MTEzRTBBQzVENTM0MDA1MzI3MEYgLyog
RE9NQXR0ckludGVybmFsLmggKi8sCisJCQkJMkUyRDk5RTkxMEUyQkMzODAwNDk2MzM3IC8qIERP
TUJsb2JJbnRlcm5hbC5oICovLAogCQkJCTg1RTcxMTNGMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01D
REFUQVNlY3Rpb25JbnRlcm5hbC5oICovLAogCQkJCTg1RTcxMTQwMEFDNUQ1MzQwMDUzMjcwRiAv
KiBET01DaGFyYWN0ZXJEYXRhSW50ZXJuYWwuaCAqLywKIAkJCQk4NUU3MTE0MTBBQzVENTM0MDA1
MzI3MEYgLyogRE9NQ29tbWVudEludGVybmFsLmggKi8sCkBAIC0xMjU3Niw2ICsxMjU5OCw5IEBA
CiAJCTkzRUVDMUVDMDlDMjg3NzcwMEM1MTVEMSAvKiBodG1sICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyRUFGQUYwQjEwRTJBRjJEMDA3RUQzRDYgLyog
QmxvYi5jcHAgKi8sCisJCQkJMkVBRkFGMEMxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaCAqLywK
KwkJCQkyRUFGQUYwRDEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5pZGwgKi8sCiAJCQkJNDk0ODRG
QUUxMDJDRjAxRTAwMTg3REQzIC8qIGNhbnZhcyAqLywKIAkJCQk5M0M0NDFFRDBGODEzQTFBMDBD
MUE2MzQgLyogQ29sbGVjdGlvbkNhY2hlLmNwcCAqLywKIAkJCQk5M0M0NDFFRTBGODEzQTFBMDBD
MUE2MzQgLyogQ29sbGVjdGlvbkNhY2hlLmggKi8sCkBAIC0xMjg5Miw2ICsxMjkxNyw4IEBACiAJ
CUE4M0I3OTA4MENDQUZGMkIwMDBCMDgyNSAvKiBIVE1MICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyRTJEOTlDQjEwRTJCQkRBMDA0OTYzMzcgLyogSlNC
bG9iLmNwcCAqLywKKwkJCQkyRTJEOTlDQzEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmggKi8s
CiAJCQkJQTdEMjBGNjAxMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmNwcCAq
LywKIAkJCQlBN0QyMEY2MTEwN0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uaCAq
LywKIAkJCQk0OUVFQ0YxOTEwNTA3MkYzMDAwOTlGQUIgLyogSlNXZWJHTEFycmF5LmNwcCAqLywK
QEAgLTE4MjY1LDYgKzE4MjkyLDEwIEBACiAJCQkJQkM1NkNCMjMxMEQ1QUM4MDAwQTc3QzY0IC8q
IEdlb2xvY2F0aW9uQ29udHJvbGxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1NkNC
MjQxMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uRXJyb3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNTZDQjI1MTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uLmggaW4g
SGVhZGVycyAqLywKKwkJCQkyRUFGQUYwRjEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMkUyRDk5Q0UxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMkUyRDk5RTcxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2IuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTJFMkQ5OUVBMTBFMkJDMzgwMDQ5NjMzNyAvKiBET01CbG9iSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHBy
b2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjA0MjEsNiArMjA0NTIsOSBAQAogCQkJCTBDM0YxRjVB
MTBDODg3MTIwMEQ3MkNFMSAvKiBXZWJHTFVuaWZvcm1Mb2NhdGlvbi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwQzQ1MzQyNzEwQ0RCQkZBMDA4NjkxNTcgLyogSlNXZWJHTFVuaWZvcm1Mb2NhdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzU2Q0IyMTEwRDVBQzgwMDBBNzdDNjQgLyogR2Vv
bG9jYXRpb25Db250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFQUZBRjBFMTBFMkFG
MkQwMDdFRDNENiAvKiBCbG9iLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFMkQ5OUNEMTBFMkJC
REEwMDQ5NjMzNyAvKiBKU0Jsb2IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkUyRDk5RTgxMEUy
QkMxQzAwNDk2MzM3IC8qIERPTUJsb2IubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5P
bmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsIGIvV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wKaW5k
ZXggZDQ0ZTU5My4uZjMwNWVhNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlU291cmNlcy5i
a2wKKysrIGIvV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wKQEAgLTI0OSw2ICsyNDksNyBAQCBU
aGlzIGZpbGUgY29udGFpbnMgdGhlIGxpc3Qgb2YgZmlsZXMgbmVlZGVkIHRvIGJ1aWxkIFdlYkNv
cmUuCiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTE5hbWVzLmNwcAogICAgICAg
ICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXR0ci5jcHAKICAgICAgICAgRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0JhckluZm8uY3BwCisgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNCbG9iLmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ0RBVEFTZWN0aW9u
LmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTQ2hhcnNldFJ1bGUuY3Bw
CiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NGb250RmFjZVJ1bGUuY3BwCkBA
IC01ODQsNiArNTg1LDcgQEAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBsaXN0IG9mIGZpbGVzIG5l
ZWRlZCB0byBidWlsZCBXZWJDb3JlLgogICAgIDwvc2V0PgogCiAgICAgPHNldCBhcHBlbmQ9IjEi
IHZhcj0iV0VCQ09SRV9TT1VSQ0VTX0hUTUwiPgorICAgICAgICBodG1sL0Jsb2IuY3BwCiAgICAg
ICAgIGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcAogICAgICAgICBodG1sL2NhbnZhcy9D
YW52YXNQYXR0ZXJuLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmNw
cApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKaW5k
ZXggN2VlMjcyMC4uZDM1ZDUzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hN
TEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0
cFJlcXVlc3RDdXN0b20uY3BwCkBAIC0yOSwxOCArMjksMTggQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJKU1hNTEh0dHBSZXF1ZXN0LmgiCiAKKyNpbmNsdWRlICJCbG9iLmgiCiAj
aW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJF
dmVudC5oIgotI2luY2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiSlNC
bG9iLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU0RvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5o
IgotI2luY2x1ZGUgIkpTRmlsZS5oIgogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCiAjaW5j
bHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPGludGVycHJldGVyL0ludGVycHJldGVy
Lmg+CkBAIC0xMDksOCArMTA5LDggQEAgSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0OjpzZW5kKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKICAgICAgICAgICAgIGltcGwoKS0+
c2VuZChlYyk7CiAgICAgICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cygmSlNEb2N1bWVudDo6c19p
bmZvKSkKICAgICAgICAgICAgIGltcGwoKS0+c2VuZCh0b0RvY3VtZW50KHZhbCksIGVjKTsKLSAg
ICAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKCZKU0ZpbGU6OnNfaW5mbykpCi0gICAgICAgICAg
ICBpbXBsKCktPnNlbmQodG9GaWxlKHZhbCksIGVjKTsKKyAgICAgICAgZWxzZSBpZiAodmFsLmlu
aGVyaXRzKCZKU0Jsb2I6OnNfaW5mbykpCisgICAgICAgICAgICBpbXBsKCktPnNlbmQodG9CbG9i
KHZhbCksIGVjKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgaW1wbCgpLT5zZW5kKHZhbC50
b1N0cmluZyhleGVjKSwgZWMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01IVE1MLmggYi9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5oCmluZGV4IGMz
MzZjMDQuLjg4MmUzOTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwuaApAQCAtMjYsNiArMjYsNyBA
QAogCiAjaW1wb3J0IDxXZWJDb3JlL0RPTUNvcmUuaD4KIAorI2ltcG9ydCA8V2ViQ29yZS9ET01C
bG9iLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTUZpbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9N
RmlsZUxpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEFuY2hvckVsZW1lbnQuaD4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmggYi9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCmluZGV4IDkyMjEwMzcu
Ljg2NTlhYmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRl
cmZhY2VzLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMu
aApAQCAtMjM1LDcgKzIzNSwxNiBAQAogQGludGVyZmFjZSBET01FbnRpdHlSZWZlcmVuY2UgOiBE
T01Ob2RlIFdFQktJVF9WRVJTSU9OXzFfMwogQGVuZAogCi1AaW50ZXJmYWNlIERPTUZpbGUgOiBE
T01PYmplY3QgV0VCS0lUX1ZFUlNJT05fNF8wCitAaW50ZXJmYWNlIERPTUJsb2IgOiBET01PYmpl
Y3QgV0VCS0lUX1ZFUlNJT05fNF8wCitAcHJvcGVydHkocmVhZG9ubHkpIHVuc2lnbmVkIGxvbmcg
bG9uZyBzaXplOworQGVuZAorCitAaW50ZXJmYWNlIERPTUZpbGUgOiBET01CbG9iIFdFQktJVF9W
RVJTSU9OXzRfMAorQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqbmFtZTsKK0Bw
cm9wZXJ0eShyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnR5cGU7CitAcHJvcGVydHkocmVhZG9u
bHksIGNvcHkpIE5TU3RyaW5nICp1cm47CisKKy8vIEZJWE1FOiBvYnNvbGV0ZSBwcm9wZXJ0aWVz
LiBUbyBiZSByZW1vdmVkLgogQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqZmls
ZU5hbWU7CiBAcHJvcGVydHkocmVhZG9ubHkpIHVuc2lnbmVkIGxvbmcgbG9uZyBmaWxlU2l6ZTsK
IEBlbmQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4
IGE1ZTZiYjYuLjc0YzFjZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQpAQCAtMTg0MSw2ICsxODQxLDggQEAgbXkgJW5hdGl2ZVR5cGUgPSAoCiAgICAg
ImxvbmciID0+ICJpbnQiLAogICAgICJ1bnNpZ25lZCBsb25nIiA9PiAidW5zaWduZWQiLAogICAg
ICJ1bnNpZ25lZCBzaG9ydCIgPT4gInVuc2lnbmVkIHNob3J0IiwKKyAgICAibG9uZyBsb25nIiA9
PiAibG9uZyBsb25nIiwKKyAgICAidW5zaWduZWQgbG9uZyBsb25nIiA9PiAidW5zaWduZWQgbG9u
ZyBsb25nIiwKICk7CiAKIHN1YiBHZXROYXRpdmVUeXBlCkBAIC0xODY0LDYgKzE4NjYsNyBAQCBz
dWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgcmV0dXJuICIkdmFsdWUudG9OdW1iZXIoZXhlYykiIGlm
ICR0eXBlIGVxICJkb3VibGUiOwogICAgIHJldHVybiAiJHZhbHVlLnRvRmxvYXQoZXhlYykiIGlm
ICR0eXBlIGVxICJmbG9hdCIgb3IgJHR5cGUgZXEgIlNWR051bWJlciI7CiAgICAgcmV0dXJuICIk
dmFsdWUudG9JbnQzMihleGVjKSIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciIG9yICR0eXBl
IGVxICJsb25nIiBvciAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgIHJldHVybiAic3Rh
dGljX2Nhc3Q8JHR5cGU+KCR2YWx1ZS50b0ludGVnZXIoZXhlYykpIiBpZiAkdHlwZSBlcSAibG9u
ZyBsb25nIiBvciAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKIAogICAgIHJldHVybiAi
dmFsdWVUb0RhdGUoZXhlYywgJHZhbHVlKSIgaWYgJHR5cGUgZXEgIkRhdGUiOwogICAgIHJldHVy
biAic3RhdGljX2Nhc3Q8UmFuZ2U6OkNvbXBhcmVIb3c+KCR2YWx1ZS50b0ludDMyKGV4ZWMpKSIg
aWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JPYmpDLnBtCmluZGV4IDkxMjQ4YzUuLmFhMDk3MTUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KQEAgLTY2LDcgKzY2LDcgQEAg
bXkgJW5hdGl2ZU9iakNUeXBlSGFzaCA9ICgiVVJMIiA9PiAxLCAiQ29sb3IiID0+IDEpOwogbXkg
JWJhc2VUeXBlSGFzaCA9ICgiT2JqZWN0IiA9PiAxLCAiTm9kZSIgPT4gMSwgIk5vZGVMaXN0IiA9
PiAxLCAiTmFtZWROb2RlTWFwIiA9PiAxLCAiRE9NSW1wbGVtZW50YXRpb24iID0+IDEsCiAgICAg
ICAgICAgICAgICAgICAgICJFdmVudCIgPT4gMSwgIkNTU1J1bGUiID0+IDEsICJDU1NWYWx1ZSIg
PT4gMSwgIlN0eWxlU2hlZXQiID0+IDEsICJNZWRpYUxpc3QiID0+IDEsCiAgICAgICAgICAgICAg
ICAgICAgICJDb3VudGVyIiA9PiAxLCAiUmVjdCIgPT4gMSwgIlJHQkNvbG9yIiA9PiAxLCAiWFBh
dGhFeHByZXNzaW9uIiA9PiAxLCAiWFBhdGhSZXN1bHQiID0+IDEsCi0gICAgICAgICAgICAgICAg
ICAgICJOb2RlSXRlcmF0b3IiID0+IDEsICJUcmVlV2Fsa2VyIiA9PiAxLCAiQWJzdHJhY3RWaWV3
IiA9PiAxLAorICAgICAgICAgICAgICAgICAgICAiTm9kZUl0ZXJhdG9yIiA9PiAxLCAiVHJlZVdh
bGtlciIgPT4gMSwgIkFic3RyYWN0VmlldyIgPT4gMSwgIkJsb2IiID0+IDEsCiAgICAgICAgICAg
ICAgICAgICAgICJTVkdBbmdsZSIgPT4gMSwgIlNWR0FuaW1hdGVkQW5nbGUiID0+IDEsICJTVkdB
bmltYXRlZEJvb2xlYW4iID0+IDEsICJTVkdBbmltYXRlZEVudW1lcmF0aW9uIiA9PiAxLAogICAg
ICAgICAgICAgICAgICAgICAiU1ZHQW5pbWF0ZWRJbnRlZ2VyIiA9PiAxLCAiU1ZHQW5pbWF0ZWRM
ZW5ndGgiID0+IDEsICJTVkdBbmltYXRlZExlbmd0aExpc3QiID0+IDEsCiAgICAgICAgICAgICAg
ICAgICAgICJTVkdBbmltYXRlZE51bWJlciIgPT4gMSwgIlNWR0FuaW1hdGVkTnVtYmVyTGlzdCIg
PT4gMSwgIlNWR0FuaW1hdGVkUG9pbnRzIiA9PiAxLApAQCAtMTA0MCw2ICsxMDQwLDcgQEAgc3Vi
IEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAkaW1wbEluY2x1ZGVzeyRjbGFzc0hlYWRlck5h
bWUgLiAiSW50ZXJuYWwuaCJ9ID0gMTsKIAogICAgICMgRklYTUU6IFRoZXNlIGluY2x1ZGVzIGFy
ZSBvbmx5IG5lZWRlZCB3aGVuIHRoZSBjbGFzcyBpcyBhIHN1YmNsYXNzIG9mIG9uZSBvZiB0aGVz
ZSBwb2x5bW9ycGhpYyBjbGFzc2VzLgorICAgICRpbXBsSW5jbHVkZXN7IkRPTUJsb2JJbnRlcm5h
bC5oIn0gPSAxOwogICAgICRpbXBsSW5jbHVkZXN7IkRPTUNTU1J1bGVJbnRlcm5hbC5oIn0gPSAx
OwogICAgICRpbXBsSW5jbHVkZXN7IkRPTUNTU1ZhbHVlSW50ZXJuYWwuaCJ9ID0gMTsKICAgICAk
aW1wbEluY2x1ZGVzeyJET01FdmVudEludGVybmFsLmgifSA9IDE7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvQmxvYi5jcHAgYi9XZWJDb3JlL2h0bWwvQmxvYi5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMWY3ZTJjMgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUv
aHRtbC9CbG9iLmNwcApAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkJsb2IuaCIKKworI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitCbG9iOjpCbG9iKGNvbnN0IFN0cmluZyYgcGF0aCkKKyAgICA6IG1fcGF0aChwYXRo
KQorICAgICwgbV9zdGFydCgwKQorICAgICwgbV9sZW5ndGgoMCkKK3sKKyAgICAvLyBGSVhNRTog
SmF2YVNjcmlwdCBjYW5ub3QgcmVwcmVzZW50IHNpemVzIGFzIGxhcmdlIGFzIHVuc2lnbmVkIGxv
bmcgbG9uZywgd2UgbmVlZCB0bworICAgIC8vIGNvbWUgdXAgd2l0aCBhbiBleGNlcHRpb24gdG8g
dGhyb3cgaWYgZmlsZSBzaXplIGlzIG5vdCByZXByZXNldGFibGUuCisgICAgbG9uZyBsb25nIHNp
emU7CisgICAgaWYgKGdldEZpbGVTaXplKG1fcGF0aCwgc2l6ZSkpIHsKKyAgICAgICAgbV9zdGFy
dCA9IDA7CisgICAgICAgIG1fbGVuZ3RoID0gc2l6ZTsKKyAgICB9Cit9CisKK0Jsb2I6OkJsb2Io
Y29uc3QgU3RyaW5nJiBwYXRoLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBsZW5ndGgpCisg
ICAgOiBtX3BhdGgocGF0aCkKKyAgICAsIG1fc3RhcnQoc3RhcnQpCisgICAgLCBtX2xlbmd0aChs
ZW5ndGgpCit7Cit9CisKK1Bhc3NSZWZQdHI8QmxvYj4gQmxvYjo6c2xpY2UobG9uZyBsb25nIHN0
YXJ0LCBsb25nIGxvbmcgbGVuZ3RoKSBjb25zdAoreworICAgIC8vIENsYW1wIHRoZSByYW5nZSBp
ZiBpdCBleGNlZWRzIHRoZSBmaWxlIGxpbWl0LgorICAgIGlmIChzdGFydCA8IDApCisgICAgICAg
IHN0YXJ0ID0gMDsKKyAgICBpZiAobGVuZ3RoIDwgMCkKKyAgICAgICAgbGVuZ3RoID0gMDsgICAg
CisKKyAgICBpZiAoc3RhcnQgPiBtX2xlbmd0aCkgeworICAgICAgICBzdGFydCA9IDA7CisgICAg
ICAgIGxlbmd0aCA9IDA7CisgICAgfSBlbHNlIGlmIChzdGFydCArIGxlbmd0aCA+IG1fbGVuZ3Ro
KSB7CisgICAgICAgIGxlbmd0aCA9IG1fbGVuZ3RoIC0gc3RhcnQ7CisgICAgfQorCisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBCbG9iKG1fcGF0aCwgbV9zdGFydCArIHN0YXJ0LCBsZW5ndGgpKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0Js
b2IuaCBiL1dlYkNvcmUvaHRtbC9CbG9iLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uOWFkY2M3YwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9CbG9iLmgKQEAg
LTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICog
bWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICog
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAq
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgQmxvYl9oCisjZGVmaW5lIEJsb2JfaAorCisjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBCbG9iIDogcHVibGljIFJlZkNvdW50ZWQ8QmxvYj4g
eworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8QmxvYj4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgcGF0aCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBCbG9iKHBhdGgpKTsKKyAgICAgICAgfQorCisgICAgICAgIHZpcnR1YWwgfkJsb2IoKSB7
IH0KKworICAgICAgICBQYXNzUmVmUHRyPEJsb2I+IHNsaWNlKGxvbmcgbG9uZyBzdGFydCwgbG9u
ZyBsb25nIGxlbmd0aCkgY29uc3Q7CisKKyAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIHNpemUo
KSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQorCisgICAgICAgIGNvbnN0IFN0cmluZyYgcGF0
aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aDsgfQorICAgICAgICBsb25nIGxvbmcgc3RhcnQoKSBj
b25zdCB7IHJldHVybiBtX3N0YXJ0OyB9CisgICAgICAgIGxvbmcgbG9uZyBsZW5ndGgoKSBjb25z
dCB7IHJldHVybiBtX2xlbmd0aDsgfQorCisgICAgcHJvdGVjdGVkOgorICAgICAgICBCbG9iKGNv
bnN0IFN0cmluZyYgcGF0aCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBCbG9iKGNvbnN0IFN0
cmluZyYgcGF0aCwgbG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgbGVuZ3RoKTsKKworICAgICAg
ICBTdHJpbmcgbV9wYXRoOworICAgICAgICBsb25nIGxvbmcgbV9zdGFydDsKKyAgICAgICAgbG9u
ZyBsb25nIG1fbGVuZ3RoOworICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEJsb2JfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0Jsb2IuaWRsIGIvV2ViQ29y
ZS9odG1sL0Jsb2IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZjAx
YzIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvQmxvYi5pZGwKQEAgLTAsMCArMSw0
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKK21vZHVsZSBodG1sIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIEdlbmVyYXRlQ29u
c3RydWN0b3IKKyAgICBdIEJsb2IgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWdu
ZWQgbG9uZyBsb25nIHNpemU7CisgICAgICAgIEJsb2Igc2xpY2UoaW4gbG9uZyBsb25nIHN0YXJ0
LCBpbiBsb25nIGxvbmcgbGVuZ3RoKTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvRmlsZS5jcHAgYi9XZWJDb3JlL2h0bWwvRmlsZS5jcHAKaW5kZXggZGJiYmZhNi4uN2E3
ZDU4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0ZpbGUuY3BwCisrKyBiL1dlYkNvcmUvaHRt
bC9GaWxlLmNwcApAQCAtMjcsMjUgKzI3LDE4IEBACiAjaW5jbHVkZSAiRmlsZS5oIgogCiAjaW5j
bHVkZSAiRmlsZVN5c3RlbS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogRmlsZTo6RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCi0gICAgOiBt
X3BhdGgocGF0aCkKLSAgICAsIG1fZmlsZU5hbWUocGF0aEdldEZpbGVOYW1lKHBhdGgpKQorICAg
IDogQmxvYihwYXRoKQorICAgICwgbV9uYW1lKHBhdGhHZXRGaWxlTmFtZShwYXRoKSkKIHsKKyAg
ICAvLyBGSVhNRTogY3JlYXRlIGEgVVVJRCBVUk4gZm9yIGZpbGUgcmVmZXJlbmNlLgogfQogCi11
bnNpZ25lZCBsb25nIGxvbmcgRmlsZTo6ZmlsZVNpemUoKQorRmlsZTo6fkZpbGUoKQogewotICAg
IC8vIEZJWE1FOiBTaG91bGQgd2UgY2FjaGUgdGhpcz8KLSAgICAvLyBGSVhNRTogSmF2YVNjcmlw
dCBjYW5ub3QgcmVwcmVzZW50IHNpemVzIGFzIGxhcmdlIGFzIHVuc2lnbmVkIGxvbmcgbG9uZywg
d2UgbmVlZCB0bwotICAgIC8vIGNvbWUgdXAgd2l0aCBhbiBleGNlcHRpb24gdG8gdGhyb3cgaWYg
ZmlsZSBzaXplIGlzIG5vdCByZXByZXNldGFibGUuCi0gICAgbG9uZyBsb25nIHNpemU7Ci0gICAg
aWYgKCFnZXRGaWxlU2l6ZShtX3BhdGgsIHNpemUpKQotICAgICAgICByZXR1cm4gMDsKLSAgICBy
ZXR1cm4gc2l6ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0ZpbGUuaCBiL1dlYkNvcmUvaHRtbC9GaWxlLmgKaW5kZXggN2Q3OWFhNS4uZTkw
NmIzZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0ZpbGUuaAorKysgYi9XZWJDb3JlL2h0bWwv
RmlsZS5oCkBAIC0yNiwyOSArMjYsMzQgQEAKICNpZm5kZWYgRmlsZV9oCiAjZGVmaW5lIEZpbGVf
aAogCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJCbG9iLmgiCiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBGaWxlIDogcHVibGljIFJlZkNvdW50ZWQ8
RmlsZT4geworICAgIGNsYXNzIEZpbGUgOiBwdWJsaWMgQmxvYiB7CiAgICAgcHVibGljOgogICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxGaWxlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoKQog
ICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEZpbGUocGF0aCkpOwog
ICAgICAgICB9CiAKLSAgICAgICAgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZmlsZU5hbWU7IH0KLSAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGZpbGVTaXplKCk7
CisgICAgICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQor
ICAgICAgICBjb25zdCBTdHJpbmcmIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAg
ICAgICAgY29uc3QgU3RyaW5nJiB1cm4oKSBjb25zdCB7IHJldHVybiBtX3VybjsgfQogCi0gICAg
ICAgIGNvbnN0IFN0cmluZyYgcGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aDsgfQorICAgICAg
ICAvLyBGSVhNRTogb2Jzb2xldGUgYXR0cmlidXRlcy4gVG8gYmUgcmVtb3ZlZC4KKyAgICAgICAg
Y29uc3QgU3RyaW5nJiBmaWxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgICAg
ICB1bnNpZ25lZCBsb25nIGxvbmcgZmlsZVNpemUoKSBjb25zdCB7IHJldHVybiBzaXplKCk7IH0K
IAogICAgIHByaXZhdGU6CiAgICAgICAgIEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKTsKKyAgICAg
ICAgdmlydHVhbCB+RmlsZSgpOwogCi0gICAgICAgIFN0cmluZyBtX3BhdGg7Ci0gICAgICAgIFN0
cmluZyBtX2ZpbGVOYW1lOworICAgICAgICBTdHJpbmcgbV9uYW1lOworICAgICAgICBTdHJpbmcg
bV90eXBlOworICAgICAgICBTdHJpbmcgbV91cm47CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGUuaWRsIGIvV2ViQ29yZS9odG1s
L0ZpbGUuaWRsCmluZGV4IGFkYTlmMGMuLjRmNmQwZjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9GaWxlLmlkbAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZS5pZGwKQEAgLTI2LDggKzI2LDE1IEBA
CiBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBHZW5lcmF0ZUNvbnN0
cnVjdG9yCi0gICAgXSBGaWxlIHsKKyAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvciwKKyAgICAg
ICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCisgICAgICAgIEdlbmVyYXRlVG9KUworICAgIF0g
RmlsZSA6IEJsb2IgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB1cm47CisKKyAgICAgICAgLy8gRklYTUU6IG9ic29s
ZXRlIGF0dHJpYnV0ZXMuIFRvIGJlIHJlbW92ZWQuCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBET01TdHJpbmcgZmlsZU5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIGxvbmcgZmlsZVNpemU7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcCBiL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBm
MWE3OTY5Li4zMjgxOGRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5j
cHAKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0yMiw2ICsyMiw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKIAorI2lu
Y2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJDYWNoZS5oIgogI2luY2x1ZGUgIkNTdHJpbmcuaCIK
ICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKQEAgLTMxLDcgKzMyLDYgQEAK
ICNpbmNsdWRlICJFdmVudEV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIK
ICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1ZGUgIkhU
VFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1
ZGUgIlJlc291cmNlRXJyb3IuaCIKQEAgLTQzNSw3ICs0MzUsNyBAQCB2b2lkIFhNTEh0dHBSZXF1
ZXN0OjpzZW5kKGNvbnN0IFN0cmluZyYgYm9keSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgY3Jl
YXRlUmVxdWVzdChlYyk7CiB9CiAKLXZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNlbmQoRmlsZSogYm9k
eSwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZW5kKEJsb2IqIGJv
ZHksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghaW5pdFNlbmQoZWMpKQogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oIGIvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAppbmRleCA2OTAxOWE1Li4yY2VhNWM2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmgKQEAgLTMzLDggKzMzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBCbG9iOwogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBGaWxlOwogY2xhc3MgUmVzb3VyY2VS
ZXF1ZXN0OwogY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsKIGNsYXNzIFRocmVhZGFibGVMb2Fk
ZXI7CkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmQoRXhjZXB0aW9uQ29k
ZSYpOwogICAgIHZvaWQgc2VuZChEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IHNlbmQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2VuZChGaWxl
KiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2VuZChCbG9iKiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZvaWQgYWJvcnQoKTsKICAgICB2b2lkIHNldFJlcXVlc3RIZWFkZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBvdmVycmlkZU1pbWVUeXBlKGNvbnN0IFN0cmluZyYgb3ZlcnJpZGUpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1
MDAxMzM5Li5kYmE0YmNkIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDA5LTEyLTIzICBKaWFuIExp
ICA8amlhbmxpQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZSBhbmQgQmxvYiBpbnRlcmZhY2VzIGFzIGRl
ZmluZWQgaW4gSFRNTCA1IEZpbGUgQVBJIHNwZWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjkxMgorCisgICAgICAgICogTWlncmF0ZUhlYWRlcnMu
bWFrZToKKwogMjAwOS0xMi0yMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9NaWdy
YXRlSGVhZGVycy5tYWtlIGIvV2ViS2l0L21hYy9NaWdyYXRlSGVhZGVycy5tYWtlCmluZGV4IDA3
MmRhNjUuLjdkMDFjOTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvTWlncmF0ZUhlYWRlcnMubWFr
ZQorKysgYi9XZWJLaXQvbWFjL01pZ3JhdGVIZWFkZXJzLm1ha2UKQEAgLTM2LDYgKzM2LDggQEAg
YWxsIDogXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET00uaCBcCiAgICAgJChQVUJMSUNf
SEVBREVSU19ESVIpL0RPTUFic3RyYWN0Vmlldy5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJ
UikvRE9NQXR0ci5oIFwKKyAgICAkKFBSSVZBVEVfSEVBREVSU19ESVIpL0RPTUJsb2IuaCBcCisg
ICAgJChJTlRFUk5BTF9IRUFERVJTX0RJUikvRE9NQmxvYkludGVybmFsLmggXAogICAgICQoUFVC
TElDX0hFQURFUlNfRElSKS9ET01DREFUQVNlY3Rpb24uaCBcCiAgICAgJChQVUJMSUNfSEVBREVS
U19ESVIpL0RPTUNTUy5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NQ1NTQ2hhcnNl
dFJ1bGUuaCBcCg==
</data>
<flag name="review"
          id="27503"
          type_id="1"
          status="-"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="27504"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45460</attachid>
            <date>2009-12-23 18:22:12 -0800</date>
            <delta_ts>2009-12-28 18:04:32 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>32912_2</filename>
            <type>text/plain</type>
            <size>45314</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NTNjNDk1Li42OWI1ZGZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTIt
MjMgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBGaWxlIGFuZCBCbG9iIGludGVy
ZmFjZXMgYXMgZGVmaW5lZCBpbiBIVE1MIDUgRmlsZSBBUEkgc3BlYy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyOTEyCisgICAgICAgIAorICAgICAg
ICBVcGRhdGVkIHRoZSByZXN1bHQgb2YgYSBsYXlvdXQgdGVzdCBiZWluZyBhZmZlY3RlZC4KKwor
ICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6
CisKIDIwMDktMTItMTggIFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50
eHQKaW5kZXggMTAwMGEwZC4uZjI3OTRkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC04OTgs
NiArODk4LDcgQEAgd2luZG93LkV2ZW50U291cmNlLnByb3RvdHlwZS5kaXNwYXRjaEV2ZW50IFtm
dW5jdGlvbl0KIHdpbmRvdy5FdmVudFNvdXJjZS5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5l
ciBbZnVuY3Rpb25dCiB3aW5kb3cuRmlsZSBbb2JqZWN0IEZpbGVDb25zdHJ1Y3Rvcl0KIHdpbmRv
dy5GaWxlLnByb3RvdHlwZSBbb2JqZWN0IEZpbGVQcm90b3R5cGVdCit3aW5kb3cuRmlsZS5wcm90
b3R5cGUuc2xpY2UgW2Z1bmN0aW9uXQogd2luZG93LkZpbGVMaXN0IFtvYmplY3QgRmlsZUxpc3RD
b25zdHJ1Y3Rvcl0KIHdpbmRvdy5GaWxlTGlzdC5wcm90b3R5cGUgW29iamVjdCBGaWxlTGlzdFBy
b3RvdHlwZV0KIHdpbmRvdy5GaWxlTGlzdC5wcm90b3R5cGUuaXRlbSBbZnVuY3Rpb25dCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tayBiL1dlYkNvcmUv
QW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rCmluZGV4IGM3NDcxM2EuLjE5NjkwYmIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rCisrKyBiL1dl
YkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rCkBAIC0xNDksNiArMTQ5LDcgQEAg
JChwYXRzdWJzdCAlLmgsJS5jcHAsJChHRU4pKTogJChpbnRlcm1lZGlhdGVzKS9kb20vJS5jcHAg
OiAkKGludGVybWVkaWF0ZXMpL2RvbS8KIAogIyBIVE1MCiBHRU4gOj0gXAorICAgICQoaW50ZXJt
ZWRpYXRlcykvaHRtbC9KU0Jsb2IuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRGF0
YUdyaWRDb2x1bW4uaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRGF0YUdyaWRDb2x1
bW5MaXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0ZpbGUuaCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRy
b2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawppbmRleCA3YjY4N2U4Li5hM2E5NjczIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCisrKyBiL1dlYkNvcmUv
QW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKQEAgLTEzMiw2ICsxMzIsNyBAQCAkKHBhdHN1
YnN0ICUuaCwlLmNwcCwkKEdFTikpOiAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzLyUuY3BwIDog
JChpbnRlcm1lZGlhdGVzKQogCiAjIEhUTUwKIEdFTiA6PSBcCisgICAgJChpbnRlcm1lZGlhdGVz
KS9iaW5kaW5ncy9WOEJsb2IuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOERh
dGFHcmlkQ29sdW1uLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhEYXRhR3Jp
ZENvbHVtbkxpc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOEZpbGUuaCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0FuZHJvaWQubWsgYi9XZWJDb3JlL0FuZHJvaWQubWsKaW5k
ZXggMjkzYzQzYi4uMTA3ZjI0NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLm1rCisrKyBi
L1dlYkNvcmUvQW5kcm9pZC5tawpAQCAtMjM0LDYgKzIzNCw3IEBAIExPQ0FMX1NSQ19GSUxFUyA6
PSAkKExPQ0FMX1NSQ19GSUxFUykgXAogCVwKIAloaXN0b3J5L2FuZHJvaWQvSGlzdG9yeUl0ZW1B
bmRyb2lkLmNwcCBcCiAJXAorCWh0bWwvQmxvYi5jcHAgXAogCWh0bWwvQ29sbGVjdGlvbkNhY2hl
LmNwcCBcCiAJaHRtbC9GaWxlLmNwcCBcCiAJaHRtbC9GaWxlTGlzdC5jcHAgXApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2M2NmZmI2Li5k
ODNmNmIzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDA5LTEyLTIzICBKaWFuIExpICA8amlhbmxpQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbXBsZW1lbnQgRmlsZSBhbmQgQmxvYiBpbnRlcmZhY2VzIGFzIGRlZmluZWQgaW4gSFRNTCA1
IEZpbGUgQVBJIHNwZWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMjkxMgorCisgICAgICAgICogQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1r
OgorICAgICAgICAqIEFuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rOgorICAgICAgICAqIEFu
ZHJvaWQubWs6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlU291cmNlcy5ia2w6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hN
TEh0dHBSZXF1ZXN0OjpzZW5kKToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUwuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0RPTU9iamVjdHNJ
bmNsdWRlLmg6CisgICAgICAgICogYmluZGluZ3MvdjgvRGVyaXZlZFNvdXJjZXNBbGxJbk9uZS5j
cHA6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0ludDY0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEluZGV4LmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9WOEluZGV4Lmg6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhYTUxIdHRwUmVx
dWVzdDo6c2VuZENhbGxiYWNrKToKKyAgICAgICAgKiBodG1sL0Jsb2IuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkJsb2I6OkJsb2IpOgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6c2xp
Y2UpOgorICAgICAgICAqIGh0bWwvQmxvYi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkJs
b2I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCbG9iOjp+QmxvYik6CisgICAgICAgIChX
ZWJDb3JlOjpCbG9iOjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6OnBhdGgpOgorICAg
ICAgICAoV2ViQ29yZTo6QmxvYjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6bGVu
Z3RoKToKKyAgICAgICAgKiBodG1sL0Jsb2IuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0Zp
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6RmlsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlOjp+RmlsZSk6CisgICAgICAgICogaHRtbC9GaWxlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlOjpuYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OnR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZTo6dXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OmZpbGVOYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OmZpbGVTaXplKToKKyAgICAgICAgKiBodG1sL0ZpbGUu
aWRsOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6
CisKIDIwMDktMTItMTggIFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRl
eCBlOTZiNjA2Li5mN2JlMTNhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNw
cAorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lu
Y2x1ZGUgIkpTQXR0ci5jcHAiCiAjaW5jbHVkZSAiSlNCYXJJbmZvLmNwcCIKICNpbmNsdWRlICJK
U0JlZm9yZUxvYWRFdmVudC5jcHAiCisjaW5jbHVkZSAiSlNCbG9iLmNwcCIKICNpbmNsdWRlICJK
U0NhbnZhc0dyYWRpZW50LmNwcCIKICNpbmNsdWRlICJKU0NhbnZhc1BhdHRlcm4uY3BwIgogI2lu
Y2x1ZGUgIkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
NmJjNDU0Mi4uMzkxM2YwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTMsNiArNTMsNyBAQCBET01f
Q0xBU1NFUyA9IFwKICAgICBBdHRyIFwKICAgICBCYXJJbmZvIFwKICAgICBCZWZvcmVMb2FkRXZl
bnQgXAorICAgIEJsb2IgXAogICAgIENEQVRBU2VjdGlvbiBcCiAgICAgQ1NTQ2hhcnNldFJ1bGUg
XAogICAgIENTU0ZvbnRGYWNlUnVsZSBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxl
LmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAxYTI1ZmIwLi41YzFmZDRhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUu
YW0KQEAgLTE2Miw2ICsxNjIsNyBAQCBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvZG9tL1dl
YktpdEFuaW1hdGlvbkV2ZW50LmlkbCBcCiAJV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmlkbCBcCiAJV2ViQ29yZS9kb20vV2hlZWxFdmVudC5pZGwgXAorCVdlYkNvcmUvaHRtbC9C
bG9iLmlkbCBcCiAJV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFycmF5LmlkbCBcCiAJV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEFycmF5QnVmZmVyLmlkbCBcCiAJV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTEJ5dGVBcnJheS5pZGwgXApAQCAtOTUwLDYgKzk1MSw4IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmggXAogCVdlYkNvcmUvaGlzdG9y
eS9QYWdlQ2FjaGUuY3BwIFwKIAlXZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmggXAorCVdlYkNv
cmUvaHRtbC9CbG9iLmNwcCBcCisJV2ViQ29yZS9odG1sL0Jsb2IuaCBcCiAJV2ViQ29yZS9odG1s
L2NhbnZhcy9DYW52YXNHcmFkaWVudC5jcHAgXAogCVdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
R3JhZGllbnQuaCBcCiAJV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmNwcCBcCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDgzNmUzM2QuLjkwNzJiNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC03OCw2ICs3OCw3IEBACiAgICAgICAgICAgICAn
ZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1dlYktpdFRy
YW5zaXRpb25FdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9XaGVlbEV2ZW50LmlkbCcsCisg
ICAgICAgICAgICAnaHRtbC9CbG9iLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2Vi
R0xBY3RpdmVJbmZvLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xBcnJheS5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQXJyYXlCdWZmZXIuaWRsJywKQEAg
LTEyODgsNiArMTI4OSw4IEBACiAgICAgICAgICAgICAnaGlzdG9yeS9IaXN0b3J5SXRlbS5oJywK
ICAgICAgICAgICAgICdoaXN0b3J5L1BhZ2VDYWNoZS5jcHAnLAogICAgICAgICAgICAgJ2hpc3Rv
cnkvUGFnZUNhY2hlLmgnLAorICAgICAgICAgICAgJ2h0bWwvQmxvYi5jcHAnLAorICAgICAgICAg
ICAgJ2h0bWwvQmxvYi5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEFycmF5LmNw
cCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xBcnJheS5oJywKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9XZWJHTEFycmF5QnVmZmVyLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA2ZDNkNWRlLi40Y2JkM2I4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5w
cm8KQEAgLTM5Niw2ICszOTYsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGRvbS9XZWJLaXRB
bmltYXRpb25FdmVudC5pZGwgXAogICAgIGRvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQuaWRsIFwK
ICAgICBkb20vV2hlZWxFdmVudC5pZGwgXAorICAgIGh0bWwvQmxvYi5pZGwgXAogICAgIGh0bWwv
Y2FudmFzL1dlYkdMQXJyYXkuaWRsIFwKICAgICBodG1sL2NhbnZhcy9XZWJHTEFycmF5QnVmZmVy
LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvV2ViR0xCeXRlQXJyYXkuaWRsIFwKQEAgLTEwMTEsNiAr
MTAxMiw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGhpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwIFwKICAg
ICBoaXN0b3J5L3F0L0hpc3RvcnlJdGVtUXQuY3BwIFwKICAgICBoaXN0b3J5L1BhZ2VDYWNoZS5j
cHAgXAorICAgIGh0bWwvQmxvYi5jcHAgXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50
LmNwcCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5jcHAgXAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1BpeGVsQXJyYXkuY3BwIFwKQEAgLTE2OTUsNiArMTY5Nyw3IEBAIEhFQURFUlMg
Kz0gXAogICAgIGhpc3RvcnkvQ2FjaGVkUGFnZS5oIFwKICAgICBoaXN0b3J5L0hpc3RvcnlJdGVt
LmggXAogICAgIGhpc3RvcnkvUGFnZUNhY2hlLmggXAorICAgIGh0bWwvQmxvYi5oIFwKICAgICBo
dG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNQYXR0
ZXJuLmggXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuaCBcCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBlY2EyMmRjLi43NDc2MjIwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTcyMSw2ICs3MjEsNjIgQEAKIAkJCQk+DQog
CQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXRE
aXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Jsb2IuY3BwIg0KKwkJCQk+
DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWd8V2luMzIiDQorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZXxXaW4zMiIN
CisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJ
CQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRl
cm5hbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJ
CQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1l
PSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJ
CQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJ
Lz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQor
CQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9
InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRv
b2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2Jq
XCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTQmxvYi5oIg0KKwkJCQk+DQorCQkJPC9G
aWxlPg0KKyAgICAgICAgICAgIDxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRw
dXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0NhbnZhc0dyYWRpZW50
LmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC0yOTczMyw2ICsyOTc4
OSwxNCBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxCbG9iLmNwcCINCisJCQkJPg0KKwkJCTwvRmls
ZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQmxvYi5oIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxDb2xs
ZWN0aW9uQ2FjaGUuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkyOTc1YmIuLmEwNDExN2IgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01OTIsNiArNTkyLDEzIEBACiAJ
CTI5QTgxMjRCMEZCQjlDQTkwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlTWFjLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjlBODEyNDcwRkJCOUNBOTAw
NTEwMjkzIC8qIEFYT2JqZWN0Q2FjaGVNYWMubW0gKi87IH07CiAJCTJEOTA2NjA2MEJFMTQxRDQw
MDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRDkwNjYwNDBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUu
Y3BwICovOyB9OwogCQkyRDkwNjYwNzBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOTA2NjA1MEJF
MTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTJFMkQ5OUNEMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Js
b2IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUy
RDk5Q0IxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5jcHAgKi87IH07CisJCTJFMkQ5OUNFMTBF
MkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFMkQ5OUNDMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuaCAqLzsg
fTsKKwkJMkUyRDk5RTcxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMkQ5OUU1MTBFMkJDMUMwMDQ5NjMz
NyAvKiBET01CbG9iLmggKi87IH07CisJCTJFMkQ5OUU4MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01C
bG9iLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUy
RDk5RTYxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2IubW0gKi87IH07CisJCTJFMkQ5OUVBMTBF
MkJDMzgwMDQ5NjMzNyAvKiBET01CbG9iSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMkQ5OUU5MTBFMkJDMzgwMDQ5NjMzNyAvKiBET01C
bG9iSW50ZXJuYWwuaCAqLzsgfTsKKwkJMkUyRDk5RUIxMEUyQkQzOTAwNDk2MzM3IC8qIERPTUJs
b2IuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJFMkQ5OUU1MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLmggKi87IH07CisJ
CTJFMkQ5OUVDMTBFMkJEMzkwMDQ5NjMzNyAvKiBET01CbG9iSW50ZXJuYWwuaCBpbiBDb3B5IEdl
bmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMkQ5
OUU5MTBFMkJDMzgwMDQ5NjMzNyAvKiBET01CbG9iSW50ZXJuYWwuaCAqLzsgfTsKIAkJMkU0MzQ2
NDQwRjU0NkE4MjAwQjBGMUJBIC8qIEdlbmVyaWNXb3JrZXJUYXNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDYzMjBGNTQ2QTgyMDBCMEYxQkEg
LyogR2VuZXJpY1dvcmtlclRhc2suaCAqLzsgfTsKIAkJMkU0MzQ2NDUwRjU0NkE4MjAwQjBGMUJB
IC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTQzNDYzMzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmNwcCAqLzsgfTsKIAkJMkU0
MzQ2NDYwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2MzQwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
ci5oICovOyB9OwpAQCAtNjEwLDYgKzYxNyw4IEBACiAJCTJFNDM0NjU4MEY1NDZBOTkwMEIwRjFC
QSAvKiBDcm9zc1RocmVhZENvcGllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDY1NjBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRD
b3BpZXIuY3BwICovOyB9OwogCQkyRTQzNDY1OTBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJl
YWRDb3BpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFNDM0NjU3MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5oICovOyB9Owog
CQkyRUE3NjgwNDBGRTcxMjY0MDBBQjlDOEEgLyogV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUE3NjgwMzBG
RTcxMjY0MDBBQjlDOEEgLyogV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmggKi87IH07CisJCTJF
QUZBRjBFMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQUZBRjBCMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9i
LmNwcCAqLzsgfTsKKwkJMkVBRkFGMEYxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQUZBRjBDMTBFMkFGMkQw
MDdFRDNENiAvKiBCbG9iLmggKi87IH07CiAJCTJFQ0Y3QURDMTAxNjJCMzgwMDQyN0RFNyAvKiBK
U0Vycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkVDRjdBREExMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5jcHAgKi87IH07
CiAJCTJFQ0Y3QUREMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQ0Y3QURCMTAxNjJCMzgwMDQy
N0RFNyAvKiBKU0Vycm9yRXZlbnQuaCAqLzsgfTsKIAkJMkVDRjdBRTExMDE2MkI1ODAwNDI3REU3
IC8qIEVycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkVDRjdBREUxMDE2MkI1ODAwNDI3REU3IC8qIEVycm9yRXZlbnQuY3BwICovOyB9
OwpAQCAtNDgyOSw2ICs0ODM4LDggQEAKIAkJCQk1REY3RjVDMjBGMDFGOTJBMDA1MjZCNEIgLyog
Q1NTUHJvcGVydHlOYW1lcy5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJODUz
OEYwMzAwQUQ3MUNEQjAwNkE4MUQxIC8qIERPTUFic3RyYWN0Vmlldy5oIGluIENvcHkgR2VuZXJh
dGVkIEhlYWRlcnMgKi8sCiAJCQkJMUMxMUNDQkMwQUE2MDkzNzAwREFEQjIwIC8qIERPTUF0dHIu
aCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAorCQkJCTJFMkQ5OUVCMTBFMkJEMzkwMDQ5
NjMzNyAvKiBET01CbG9iLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKKwkJCQkyRTJE
OTlFQzEwRTJCRDM5MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggaW4gQ29weSBHZW5lcmF0
ZWQgSGVhZGVycyAqLywKIAkJCQkxQzExQ0NDNzBBQTYwOTM3MDBEQURCMjAgLyogRE9NQ0RBVEFT
ZWN0aW9uLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQkxQzExQ0NDNTBBQTYw
OTM3MDBEQURCMjAgLyogRE9NQ2hhcmFjdGVyRGF0YS5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRl
cnMgKi8sCiAJCQkJMUMxMUNDQjYwQUE2MDkzNzAwREFEQjIwIC8qIERPTUNvbW1lbnQuaCBpbiBD
b3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLApAQCAtNTg0MCw2ICs1ODUxLDExIEBACiAJCTJEOTA2
NjA1MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTGF5b3V0U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkQ5MDY2MEIwNjY1RDkzNzAwNkI2RjFBIC8qIENsaXBib2FyZE1hYy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGlwYm9hcmRNYWMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CTJEOTA2NjBDMDY2NUQ5MzcwMDZCNkYxQSAvKiBDbGlwYm9hcmRNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDbGlwYm9hcmRN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OworCQkyRTJEOTlDQjEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmxvYi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJFMkQ5OUNDMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCbG9iLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJFMkQ5OUU1MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUJsb2IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkUyRDk5RTYxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2IubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01CbG9iLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyRTJEOTlFOTEwRTJCQzM4MDA0OTYzMzcgLyogRE9NQmxvYkludGVy
bmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUJsb2JJbnRlcm5hbC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTQzNDYzMjBGNTQ2QTgyMDBCMEYxQkEg
LyogR2VuZXJpY1dvcmtlclRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
R2VuZXJpY1dvcmtlclRhc2suaDsgcGF0aCA9IHdvcmtlcnMvR2VuZXJpY1dvcmtlclRhc2suaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU0MzQ2MzMwRjU0NkE4MjAwQjBGMUJBIC8q
IFdvcmtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXb3JrZXIu
Y3BwOyBwYXRoID0gd29ya2Vycy9Xb3JrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyRTQzNDYzNDBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFdvcmtlci5oOyBwYXRoID0gd29ya2Vycy9Xb3JrZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4NjEsNiArNTg3Nyw5IEBACiAJCTJFNDM0NjU2
MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcm9zc1RocmVhZENvcGllci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJFNDM0NjU3MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVh
ZENvcGllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcm9zc1RocmVhZENv
cGllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUE3NjgwMzBGRTcxMjY0MDBB
QjlDOEEgLyogV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oOyBwYXRoID0gd29ya2Vycy9X
b3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkVBRkFGMEIxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQmxvYi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJFQUZBRjBDMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEJsb2IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVBRkFG
MEQxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEJs
b2IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUNGN0FEQTEwMTYyQjM4MDA0
MjdERTcgLyogSlNFcnJvckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTRXJyb3JFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJF
Q0Y3QURCMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNFcnJvckV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJFQ0Y3QURFMTAxNjJCNTgwMDQyN0RFNyAvKiBFcnJvckV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTIwMzcsNiArMTIwNTYsOCBAQAogCQk4NUM1NkQwMzBBQThC
QUE3MDBEOTU3NTUgLyogSFRNTCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMkUyRDk5RTUxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2IuaCAqLywKKwkJ
CQkyRTJEOTlFNjEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5tbSAqLywKIAkJCQlCQzAwRUZG
RTBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZS5oICovLAogCQkJCUJDMDBFRkZGMEUwQTE4NTUw
MEZEMDRFMyAvKiBET01GaWxlLm1tICovLAogCQkJCUJDMDBGMDAxMEUwQTE4NTUwMEZEMDRFMyAv
KiBET01GaWxlTGlzdC5oICovLApAQCAtMTIxNzgsNiArMTIxOTksNyBAQAogCQkJY2hpbGRyZW4g
PSAoCiAJCQkJODUzOEYwMTgwQUQ3MThEODAwNkE4MUQxIC8qIERPTUFic3RyYWN0Vmlld0ludGVy
bmFsLmggKi8sCiAJCQkJODVFNzExM0UwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUF0dHJJbnRlcm5h
bC5oICovLAorCQkJCTJFMkQ5OUU5MTBFMkJDMzgwMDQ5NjMzNyAvKiBET01CbG9iSW50ZXJuYWwu
aCAqLywKIAkJCQk4NUU3MTEzRjBBQzVENTM0MDA1MzI3MEYgLyogRE9NQ0RBVEFTZWN0aW9uSW50
ZXJuYWwuaCAqLywKIAkJCQk4NUU3MTE0MDBBQzVENTM0MDA1MzI3MEYgLyogRE9NQ2hhcmFjdGVy
RGF0YUludGVybmFsLmggKi8sCiAJCQkJODVFNzExNDEwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNv
bW1lbnRJbnRlcm5hbC5oICovLApAQCAtMTI1NzYsNiArMTI1OTgsOSBAQAogCQk5M0VFQzFFQzA5
QzI4Nzc3MDBDNTE1RDEgLyogaHRtbCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCisJCQkJMkVBRkFGMEIxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuY3BwICovLAor
CQkJCTJFQUZBRjBDMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmggKi8sCisJCQkJMkVBRkFGMEQx
MEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaWRsICovLAogCQkJCTQ5NDg0RkFFMTAyQ0YwMUUwMDE4
N0REMyAvKiBjYW52YXMgKi8sCiAJCQkJOTNDNDQxRUQwRjgxM0ExQTAwQzFBNjM0IC8qIENvbGxl
Y3Rpb25DYWNoZS5jcHAgKi8sCiAJCQkJOTNDNDQxRUUwRjgxM0ExQTAwQzFBNjM0IC8qIENvbGxl
Y3Rpb25DYWNoZS5oICovLApAQCAtMTI4OTIsNiArMTI5MTcsOCBAQAogCQlBODNCNzkwODBDQ0FG
RjJCMDAwQjA4MjUgLyogSFRNTCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJMkUyRDk5Q0IxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5jcHAgKi8sCisJ
CQkJMkUyRDk5Q0MxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5oICovLAogCQkJCUE3RDIwRjYw
MTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5jcHAgKi8sCiAJCQkJQTdEMjBG
NjExMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmggKi8sCiAJCQkJNDlFRUNG
MTkxMDUwNzJGMzAwMDk5RkFCIC8qIEpTV2ViR0xBcnJheS5jcHAgKi8sCkBAIC0xODI2NSw2ICsx
ODI5MiwxMCBAQAogCQkJCUJDNTZDQjIzMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNv
bnRyb2xsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTZDQjI0MTBENUFDODAwMEE3
N0M2NCAvKiBHZW9sb2NhdGlvbkVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU2Q0IyNTEw
RDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMkVBRkFGMEYxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTJFMkQ5OUNFMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTJFMkQ5OUU3MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkyRTJEOTlFQTEwRTJCQzM4MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTIwNDIxLDYgKzIwNDUyLDkgQEAKIAkJCQkwQzNGMUY1QTEwQzg4NzEyMDBENzJD
RTEgLyogV2ViR0xVbmlmb3JtTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEM0NTM0
MjcxMENEQkJGQTAwODY5MTU3IC8qIEpTV2ViR0xVbmlmb3JtTG9jYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM1NkNCMjExMEQ1QUM4MDAwQTc3QzY0IC8qIEdlb2xvY2F0aW9uQ29udHJv
bGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRUFGQUYwRTEwRTJBRjJEMDA3RUQzRDYgLyog
QmxvYi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTJEOTlDRDEwRTJCQkRBMDA0OTYzMzcgLyog
SlNCbG9iLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFMkQ5OUU4MTBFMkJDMUMwMDQ5NjMzNyAv
KiBET01CbG9iLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmVT
b3VyY2VzLmJrbCBiL1dlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCmluZGV4IGQ0NGU1OTMuLmYz
MDVlYTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsCisrKyBiL1dlYkNv
cmUvV2ViQ29yZVNvdXJjZXMuYmtsCkBAIC0yNDksNiArMjQ5LDcgQEAgVGhpcyBmaWxlIGNvbnRh
aW5zIHRoZSBsaXN0IG9mIGZpbGVzIG5lZWRlZCB0byBidWlsZCBXZWJDb3JlLgogICAgICAgICBE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0hUTUxOYW1lcy5jcHAKICAgICAgICAgRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0F0dHIuY3BwCiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNC
YXJJbmZvLmNwcAorICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQmxvYi5jcHAKICAg
ICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NEQVRBU2VjdGlvbi5jcHAKICAgICAgICAg
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0NTU0NoYXJzZXRSdWxlLmNwcAogICAgICAgICBEZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTRm9udEZhY2VSdWxlLmNwcApAQCAtNTg0LDYgKzU4NSw3
IEBAIFRoaXMgZmlsZSBjb250YWlucyB0aGUgbGlzdCBvZiBmaWxlcyBuZWVkZWQgdG8gYnVpbGQg
V2ViQ29yZS4KICAgICA8L3NldD4KIAogICAgIDxzZXQgYXBwZW5kPSIxIiB2YXI9IldFQkNPUkVf
U09VUkNFU19IVE1MIj4KKyAgICAgICAgaHRtbC9CbG9iLmNwcAogICAgICAgICBodG1sL2NhbnZh
cy9DYW52YXNHcmFkaWVudC5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5j
cHAKICAgICAgICAgaHRtbC9jYW52YXMvQ2FudmFzUGl4ZWxBcnJheS5jcHAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCmluZGV4IDdlZTI3MjAuLmQz
NWQ1M2EgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1
c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcApAQCAtMjksMTggKzI5LDE4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
SlNYTUxIdHRwUmVxdWVzdC5oIgogCisjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKLSNpbmNs
dWRlICJGaWxlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkpTQmxvYi5oIgogI2luY2x1
ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkpTRXZlbnQuaCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuaCIKLSNpbmNsdWRlICJK
U0ZpbGUuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUv
RXJyb3IuaD4KICNpbmNsdWRlIDxpbnRlcnByZXRlci9JbnRlcnByZXRlci5oPgpAQCAtMTA5LDgg
KzEwOSw4IEBAIEpTVmFsdWUgSlNYTUxIdHRwUmVxdWVzdDo6c2VuZChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAgICAgICAgICAgICBpbXBsKCktPnNlbmQoZWMpOwogICAg
ICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoJkpTRG9jdW1lbnQ6OnNfaW5mbykpCiAgICAgICAg
ICAgICBpbXBsKCktPnNlbmQodG9Eb2N1bWVudCh2YWwpLCBlYyk7Ci0gICAgICAgIGVsc2UgaWYg
KHZhbC5pbmhlcml0cygmSlNGaWxlOjpzX2luZm8pKQotICAgICAgICAgICAgaW1wbCgpLT5zZW5k
KHRvRmlsZSh2YWwpLCBlYyk7CisgICAgICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cygmSlNCbG9i
OjpzX2luZm8pKQorICAgICAgICAgICAgaW1wbCgpLT5zZW5kKHRvQmxvYih2YWwpLCBlYyk7CiAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIGltcGwoKS0+c2VuZCh2YWwudG9TdHJpbmcoZXhlYyks
IGVjKTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5o
IGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwuaAppbmRleCBjMzM2YzA0Li44ODJlMzk3
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5oCisrKyBiL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2ltcG9ydCA8
V2ViQ29yZS9ET01Db3JlLmg+CiAKKyNpbXBvcnQgPFdlYkNvcmUvRE9NQmxvYi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9ET01GaWxlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTUZpbGVMaXN0Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxBbmNob3JFbGVtZW50Lmg+CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oIGIvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaAppbmRleCA5MjIxMDM3Li44NjU5YWJmIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCisrKyBi
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmgKQEAgLTIzNSw3ICsy
MzUsMTYgQEAKIEBpbnRlcmZhY2UgRE9NRW50aXR5UmVmZXJlbmNlIDogRE9NTm9kZSBXRUJLSVRf
VkVSU0lPTl8xXzMKIEBlbmQKIAotQGludGVyZmFjZSBET01GaWxlIDogRE9NT2JqZWN0IFdFQktJ
VF9WRVJTSU9OXzRfMAorQGludGVyZmFjZSBET01CbG9iIDogRE9NT2JqZWN0IFdFQktJVF9WRVJT
SU9OXzRfMAorQHByb3BlcnR5KHJlYWRvbmx5KSB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZTsKK0Bl
bmQKKworQGludGVyZmFjZSBET01GaWxlIDogRE9NQmxvYiBXRUJLSVRfVkVSU0lPTl80XzAKK0Bw
cm9wZXJ0eShyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKm5hbWU7CitAcHJvcGVydHkocmVhZG9u
bHksIGNvcHkpIE5TU3RyaW5nICp0eXBlOworQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5KSBOU1N0
cmluZyAqdXJuOworCisvLyBGSVhNRTogb2Jzb2xldGUgcHJvcGVydGllcy4gVG8gYmUgcmVtb3Zl
ZC4KIEBwcm9wZXJ0eShyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKmZpbGVOYW1lOwogQHByb3Bl
cnR5KHJlYWRvbmx5KSB1bnNpZ25lZCBsb25nIGxvbmcgZmlsZVNpemU7CiBAZW5kCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBhNWU2YmI2Li43NGMx
Y2Y1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAg
LTE4NDEsNiArMTg0MSw4IEBAIG15ICVuYXRpdmVUeXBlID0gKAogICAgICJsb25nIiA9PiAiaW50
IiwKICAgICAidW5zaWduZWQgbG9uZyIgPT4gInVuc2lnbmVkIiwKICAgICAidW5zaWduZWQgc2hv
cnQiID0+ICJ1bnNpZ25lZCBzaG9ydCIsCisgICAgImxvbmcgbG9uZyIgPT4gImxvbmcgbG9uZyIs
CisgICAgInVuc2lnbmVkIGxvbmcgbG9uZyIgPT4gInVuc2lnbmVkIGxvbmcgbG9uZyIsCiApOwog
CiBzdWIgR2V0TmF0aXZlVHlwZQpAQCAtMTg2NCw2ICsxODY2LDcgQEAgc3ViIEpTVmFsdWVUb05h
dGl2ZQogICAgIHJldHVybiAiJHZhbHVlLnRvTnVtYmVyKGV4ZWMpIiBpZiAkdHlwZSBlcSAiZG91
YmxlIjsKICAgICByZXR1cm4gIiR2YWx1ZS50b0Zsb2F0KGV4ZWMpIiBpZiAkdHlwZSBlcSAiZmxv
YXQiIG9yICR0eXBlIGVxICJTVkdOdW1iZXIiOwogICAgIHJldHVybiAiJHZhbHVlLnRvSW50MzIo
ZXhlYykiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIiBvciAkdHlwZSBlcSAibG9uZyIgb3Ig
JHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKKyAgICByZXR1cm4gInN0YXRpY19jYXN0PCR0eXBl
PigkdmFsdWUudG9JbnRlZ2VyKGV4ZWMpKSIgaWYgJHR5cGUgZXEgImxvbmcgbG9uZyIgb3IgJHR5
cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CiAKICAgICByZXR1cm4gInZhbHVlVG9EYXRlKGV4
ZWMsICR2YWx1ZSkiIGlmICR0eXBlIGVxICJEYXRlIjsKICAgICByZXR1cm4gInN0YXRpY19jYXN0
PFJhbmdlOjpDb21wYXJlSG93PigkdmFsdWUudG9JbnQzMihleGVjKSkiIGlmICR0eXBlIGVxICJD
b21wYXJlSG93IjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yT2JqQy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2Jq
Qy5wbQppbmRleCA5MTI0OGM1Li5hYTA5NzE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCkBAIC02Niw3ICs2Niw3IEBAIG15ICVuYXRpdmVPYmpD
VHlwZUhhc2ggPSAoIlVSTCIgPT4gMSwgIkNvbG9yIiA9PiAxKTsKIG15ICViYXNlVHlwZUhhc2gg
PSAoIk9iamVjdCIgPT4gMSwgIk5vZGUiID0+IDEsICJOb2RlTGlzdCIgPT4gMSwgIk5hbWVkTm9k
ZU1hcCIgPT4gMSwgIkRPTUltcGxlbWVudGF0aW9uIiA9PiAxLAogICAgICAgICAgICAgICAgICAg
ICAiRXZlbnQiID0+IDEsICJDU1NSdWxlIiA9PiAxLCAiQ1NTVmFsdWUiID0+IDEsICJTdHlsZVNo
ZWV0IiA9PiAxLCAiTWVkaWFMaXN0IiA9PiAxLAogICAgICAgICAgICAgICAgICAgICAiQ291bnRl
ciIgPT4gMSwgIlJlY3QiID0+IDEsICJSR0JDb2xvciIgPT4gMSwgIlhQYXRoRXhwcmVzc2lvbiIg
PT4gMSwgIlhQYXRoUmVzdWx0IiA9PiAxLAotICAgICAgICAgICAgICAgICAgICAiTm9kZUl0ZXJh
dG9yIiA9PiAxLCAiVHJlZVdhbGtlciIgPT4gMSwgIkFic3RyYWN0VmlldyIgPT4gMSwKKyAgICAg
ICAgICAgICAgICAgICAgIk5vZGVJdGVyYXRvciIgPT4gMSwgIlRyZWVXYWxrZXIiID0+IDEsICJB
YnN0cmFjdFZpZXciID0+IDEsICJCbG9iIiA9PiAxLAogICAgICAgICAgICAgICAgICAgICAiU1ZH
QW5nbGUiID0+IDEsICJTVkdBbmltYXRlZEFuZ2xlIiA9PiAxLCAiU1ZHQW5pbWF0ZWRCb29sZWFu
IiA9PiAxLCAiU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbiIgPT4gMSwKICAgICAgICAgICAgICAgICAg
ICAgIlNWR0FuaW1hdGVkSW50ZWdlciIgPT4gMSwgIlNWR0FuaW1hdGVkTGVuZ3RoIiA9PiAxLCAi
U1ZHQW5pbWF0ZWRMZW5ndGhMaXN0IiA9PiAxLAogICAgICAgICAgICAgICAgICAgICAiU1ZHQW5p
bWF0ZWROdW1iZXIiID0+IDEsICJTVkdBbmltYXRlZE51bWJlckxpc3QiID0+IDEsICJTVkdBbmlt
YXRlZFBvaW50cyIgPT4gMSwKQEAgLTEwNDAsNiArMTA0MCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgJGltcGxJbmNsdWRlc3skY2xhc3NIZWFkZXJOYW1lIC4gIkludGVybmFs
LmgifSA9IDE7CiAKICAgICAjIEZJWE1FOiBUaGVzZSBpbmNsdWRlcyBhcmUgb25seSBuZWVkZWQg
d2hlbiB0aGUgY2xhc3MgaXMgYSBzdWJjbGFzcyBvZiBvbmUgb2YgdGhlc2UgcG9seW1vcnBoaWMg
Y2xhc3Nlcy4KKyAgICAkaW1wbEluY2x1ZGVzeyJET01CbG9iSW50ZXJuYWwuaCJ9ID0gMTsKICAg
ICAkaW1wbEluY2x1ZGVzeyJET01DU1NSdWxlSW50ZXJuYWwuaCJ9ID0gMTsKICAgICAkaW1wbElu
Y2x1ZGVzeyJET01DU1NWYWx1ZUludGVybmFsLmgifSA9IDE7CiAgICAgJGltcGxJbmNsdWRlc3si
RE9NRXZlbnRJbnRlcm5hbC5oIn0gPSAxOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yVjgucG0KaW5kZXggNzFjNjUwZS4uNWFmZjJiNyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0xODQ5LDYgKzE4NDksNyBAQCBzdWIg
SXNSZWZQdHJUeXBlCiB7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKICAgICByZXR1cm4gMSBpZiAk
dHlwZSBlcSAiQXR0ciI7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIkJsb2IiOwogICAgIHJl
dHVybiAxIGlmICR0eXBlIGVxICJDYW52YXNCb29sZWFuQXJyYXkiOwogICAgIHJldHVybiAxIGlm
ICR0eXBlIGVxICJDYW52YXNHcmFkaWVudCI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIkNh
bnZhc09iamVjdCI7CkBAIC0xOTY5LDYgKzE5NzAsNyBAQCBzdWIgR2V0TmF0aXZlVHlwZQogICAg
IHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAic2hvcnQiIG9yICR0eXBlIGVxICJ1bnNpZ25lZCBz
aG9ydCI7CiAgICAgcmV0dXJuICJ1bnNpZ25lZCIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmci
OwogICAgIHJldHVybiAiaW50IiBpZiAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICJsb25n
IGxvbmciIGlmICR0eXBlIGVxICJsb25nIGxvbmciOwogICAgIHJldHVybiAidW5zaWduZWQgbG9u
ZyBsb25nIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKICAgICByZXR1cm4gImJv
b2wiIGlmICR0eXBlIGVxICJib29sZWFuIjsKICAgICByZXR1cm4gIlN0cmluZyIgaWYgJHR5cGUg
ZXEgIkRPTVN0cmluZyI7CkBAIC0yMDYyLDYgKzIwNjQsOCBAQCBteSAldHlwZUNhbkZhaWxDb252
ZXJzaW9uID0gKAogICAgICJsb25nIiA9PiAwLAogICAgICJ1bnNpZ25lZCBsb25nIiA9PiAwLAog
ICAgICJ1bnNpZ25lZCBzaG9ydCIgPT4gMCwKKyAgICAibG9uZyBsb25nIiA9PiAwLAorICAgICJ1
bnNpZ25lZCBsb25nIGxvbmciID0+IDAKICk7CiAKIApAQCAtMjExOCw2ICsyMTIyLDcgQEAgc3Vi
IEpTVmFsdWVUb05hdGl2ZQogICAgIHJldHVybiAiJHZhbHVlLT5OdW1iZXJWYWx1ZSgpIiBpZiAk
dHlwZSBlcSAiU1ZHTnVtYmVyIjsKIAogICAgIHJldHVybiAidG9JbnQzMigkdmFsdWUke21heWJl
T2tQYXJhbX0pIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyIgb3IgJHR5cGUgZXEgInVuc2ln
bmVkIHNob3J0IiBvciAkdHlwZSBlcSAibG9uZyI7CisgICAgcmV0dXJuICJ0b0ludDY0KCR2YWx1
ZSkiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciIG9yICR0eXBlIGVxICJsb25nIGxv
bmciOwogICAgIHJldHVybiAic3RhdGljX2Nhc3Q8UmFuZ2U6OkNvbXBhcmVIb3c+KCR2YWx1ZS0+
SW50MzJWYWx1ZSgpKSIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOwogICAgIHJldHVybiAic3Rh
dGljX2Nhc3Q8U1ZHUGFpbnQ6OlNWR1BhaW50VHlwZT4oJHZhbHVlLT5Ub0ludDMyKCktPkludDMy
VmFsdWUoKSkiIGlmICR0eXBlIGVxICJTVkdQYWludFR5cGUiOwogICAgIHJldHVybiAidG9XZWJD
b3JlRGF0ZSgkdmFsdWUpIiBpZiAkdHlwZSBlcSAiRGF0ZSI7CkBAIC0yMjUzLDYgKzIyNTgsOCBA
QCBteSAlbm9uX3dyYXBwZXJfdHlwZXMgPSAoCiAgICAgJ2xvbmcnID0+IDEsCiAgICAgJ3Vuc2ln
bmVkIGxvbmcnID0+IDEsCiAgICAgJ2Jvb2xlYW4nID0+IDEsCisgICAgJ2xvbmcgbG9uZycgPT4g
MSwKKyAgICAndW5zaWduZWQgbG9uZyBsb25nJyA9PiAxLAogICAgICdET01TdHJpbmcnID0+IDEs
CiAgICAgJ0NvbXBhcmVIb3cnID0+IDEsCiAgICAgJ1NWR0FuZ2xlJyA9PiAxLApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01PYmplY3RzSW5jbHVkZS5oIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9ET01PYmplY3RzSW5jbHVkZS5oCmluZGV4IDk5NDFhZWIuLjhmZWMzY2EgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NT2JqZWN0c0luY2x1ZGUuaAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L0RPTU9iamVjdHNJbmNsdWRlLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNp
bmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiQmFySW5mby5oIgogI2luY2x1ZGUgIkJlZm9yZUxv
YWRFdmVudC5oIgorI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJXZWJHTEFjdGl2ZUluZm8u
aCIKICNpbmNsdWRlICJXZWJHTEFycmF5LmgiCiAjaW5jbHVkZSAiV2ViR0xBcnJheUJ1ZmZlci5o
IgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9EZXJpdmVkU291cmNlc0FsbEluT25l
LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVyaXZlZFNvdXJjZXNBbGxJbk9uZS5jcHAKaW5k
ZXggYmQyYmI3Yi4uYmZhNDg1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9EZXJp
dmVkU291cmNlc0FsbEluT25lLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L0Rlcml2ZWRT
b3VyY2VzQWxsSW5PbmUuY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiYmluZGluZ3Mv
VjhBdHRyLmNwcCIKICNpbmNsdWRlICJiaW5kaW5ncy9WOEJhckluZm8uY3BwIgogI2luY2x1ZGUg
ImJpbmRpbmdzL1Y4QmVmb3JlTG9hZEV2ZW50LmNwcCIKKyNpbmNsdWRlICJiaW5kaW5ncy9WOEJs
b2IuY3BwIgogI2luY2x1ZGUgImJpbmRpbmdzL1Y4V2ViR0xBY3RpdmVJbmZvLmNwcCIKICNpbmNs
dWRlICJiaW5kaW5ncy9WOFdlYkdMQXJyYXkuY3BwIgogI2luY2x1ZGUgImJpbmRpbmdzL1Y4V2Vi
R0xBcnJheUJ1ZmZlci5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4Qmlu
ZGluZy5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAppbmRleCBhYTRhMzI2Li5l
M2YzOTY2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKQEAgLTE3Myw2ICsxNzMsMTEgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KHZhbHVl
LT5OdW1iZXJWYWx1ZSgpKTsKICAgICB9CiAKKyAgICBpbmxpbmUgaW50NjQgdG9JbnQ2NCh2ODo6
TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSkKKyAgICB7CisgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxpbnQ2ND4odmFsdWUtPkludGVnZXJWYWx1ZSgpKTsKKyAgICB9CisKICAgICAvLyBGSVhNRTog
RHJvcCB0aGlzIGluIGZhdm9yIG9mIHRoZSB0eXBlIHNwZWNpZmljIHY4VmFsdWVUb1dlYkNvcmVT
dHJpbmcgd2hlbiB3ZSByZXdvcmsgdGhlIGNvZGUgZ2VuZXJhdGlvbi4KICAgICBpbmxpbmUgU3Ry
aW5nIHRvV2ViQ29yZVN0cmluZyh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gb2JqZWN0KQogICAgIHsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhJbmRleC5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4SW5kZXguY3BwCmluZGV4IGE1YjJlNmQuLjAwZTg0ZGYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhJbmRleC5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOEluZGV4LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlY4QXR0ci5oIgogI2lu
Y2x1ZGUgIlY4QmFySW5mby5oIgogI2luY2x1ZGUgIlY4QmVmb3JlTG9hZEV2ZW50LmgiCisjaW5j
bHVkZSAiVjhCbG9iLmgiCiAjaW5jbHVkZSAiVjhXZWJHTEFjdGl2ZUluZm8uaCIKICNpbmNsdWRl
ICJWOENhbnZhc1JlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNsdWRlICJWOENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5oIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEluZGV4Lmgg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SW5kZXguaAppbmRleCAyY2IzYzI5Li5lZDg3OGMyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SW5kZXguaAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4SW5kZXguaApAQCAtMzI1LDYgKzMyNSw3IEBAIHR5cGVkZWYgdjg6OlBlcnNp
c3RlbnQ8djg6OkZ1bmN0aW9uVGVtcGxhdGU+ICgqRnVuY3Rpb25UZW1wbGF0ZUZhY3RvcnkpKCk7
CiAjZGVmaW5lIERPTV9PQkpFQ1RfVFlQRVNfMShWKSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBcCiAgICAgVihCQVJJTkZPLCBCYXJJbmZvKSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgVihCRUZPUkVMT0FERVZF
TlQsIEJlZm9yZUxvYWRFdmVudCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisg
ICAgVihCTE9CLCBCbG9iKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBcCiAgICAgVihDQU5WQVNHUkFESUVOVCwgQ2FudmFzR3JhZGllbnQpICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgVihDQU5WQVNQQVRURVJOLCBD
YW52YXNQYXR0ZXJuKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAg
VihDQU5WQVNSRU5ERVJJTkdDT05URVhULCBDYW52YXNSZW5kZXJpbmdDb250ZXh0KSAgICAgICAg
ICAgICAgICAgICBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhN
TEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1M
SHR0cFJlcXVlc3RDdXN0b20uY3BwCmluZGV4IDk3ZWNkODYuLjU5ZjE0NzMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3Bw
CkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhD
dXN0b21CaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhEb2N1bWVudC5oIgotI2luY2x1ZGUgIlY4Rmls
ZS5oIgorI2luY2x1ZGUgIlY4QmxvYi5oIgogI2luY2x1ZGUgIlY4SFRNTERvY3VtZW50LmgiCiAj
aW5jbHVkZSAiVjhQcm94eS5oIgogI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgiCkBAIC0xNDksMTEg
KzE0OSwxMSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVxdWVzdDo6c2VuZENh
bGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgICAgICAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBWOERPTVdyYXBwZXI6OmNvbnZlcnRET01XcmFwcGVyVG9Ob2RlPERvY3VtZW50
PihvYmplY3QpOwogICAgICAgICAgICAgQVNTRVJUKGRvY3VtZW50KTsKICAgICAgICAgICAgIHht
bEh0dHBSZXF1ZXN0LT5zZW5kKGRvY3VtZW50LCBlYyk7Ci0gICAgICAgIH0gZWxzZSBpZiAoVjhG
aWxlOjpIYXNJbnN0YW5jZShhcmcpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoVjhCbG9iOjpIYXNJ
bnN0YW5jZShhcmcpKSB7CiAgICAgICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVj
dCA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnKTsKLSAgICAgICAgICAgIEZpbGUq
IGZpbGUgPSBWOERPTVdyYXBwZXI6OmNvbnZlcnRET01XcmFwcGVyVG9OYXRpdmU8RmlsZT4ob2Jq
ZWN0KTsKLSAgICAgICAgICAgIEFTU0VSVChmaWxlKTsKLSAgICAgICAgICAgIHhtbEh0dHBSZXF1
ZXN0LT5zZW5kKGZpbGUsIGVjKTsKKyAgICAgICAgICAgIEJsb2IqIGJsb2IgPSBWOERPTVdyYXBw
ZXI6OmNvbnZlcnRET01XcmFwcGVyVG9OYXRpdmU8QmxvYj4ob2JqZWN0KTsKKyAgICAgICAgICAg
IEFTU0VSVChibG9iKTsKKyAgICAgICAgICAgIHhtbEh0dHBSZXF1ZXN0LT5zZW5kKGJsb2IsIGVj
KTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICB4bWxIdHRwUmVxdWVzdC0+c2VuZCh0b1dl
YkNvcmVTdHJpbmdXaXRoTnVsbENoZWNrKGFyZyksIGVjKTsKICAgICB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2h0bWwvQmxvYi5jcHAgYi9XZWJDb3JlL2h0bWwvQmxvYi5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTVhNmY5YQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNv
cmUvaHRtbC9CbG9iLmNwcApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkJsb2IuaCIKKworI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitCbG9iOjpCbG9iKGNvbnN0IFN0cmluZyYgcGF0aCkKKyAgICA6IG1fcGF0aChw
YXRoKQorICAgICwgbV9zdGFydCgwKQorICAgICwgbV9sZW5ndGgoMCkKK3sKKyAgICAvLyBGSVhN
RTogSmF2YVNjcmlwdCBjYW5ub3QgcmVwcmVzZW50IHNpemVzIGFzIGxhcmdlIGFzIHVuc2lnbmVk
IGxvbmcgbG9uZywgd2UgbmVlZCB0bworICAgIC8vIGNvbWUgdXAgd2l0aCBhbiBleGNlcHRpb24g
dG8gdGhyb3cgaWYgZmlsZSBzaXplIGlzIG5vdCByZXByZXNldGFibGUuCisgICAgbG9uZyBsb25n
IHNpemU7CisgICAgaWYgKGdldEZpbGVTaXplKG1fcGF0aCwgc2l6ZSkpIHsKKyAgICAgICAgbV9z
dGFydCA9IDA7CisgICAgICAgIG1fbGVuZ3RoID0gc2l6ZTsKKyAgICB9Cit9CisKK0Jsb2I6OkJs
b2IoY29uc3QgU3RyaW5nJiBwYXRoLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBsZW5ndGgp
CisgICAgOiBtX3BhdGgocGF0aCkKKyAgICAsIG1fc3RhcnQoc3RhcnQpCisgICAgLCBtX2xlbmd0
aChsZW5ndGgpCit7Cit9CisKK1Bhc3NSZWZQdHI8QmxvYj4gQmxvYjo6c2xpY2UobG9uZyBsb25n
IHN0YXJ0LCBsb25nIGxvbmcgbGVuZ3RoKSBjb25zdAoreworICAgIC8vIENsYW1wIHRoZSByYW5n
ZSBpZiBpdCBleGNlZWRzIHRoZSBmaWxlIGxpbWl0LgorICAgIGlmIChzdGFydCA8IDApCisgICAg
ICAgIHN0YXJ0ID0gMDsKKyAgICBpZiAobGVuZ3RoIDwgMCkKKyAgICAgICAgbGVuZ3RoID0gMDsg
ICAgCisKKyAgICBpZiAoc3RhcnQgPiBtX2xlbmd0aCkgeworICAgICAgICBzdGFydCA9IDA7Cisg
ICAgICAgIGxlbmd0aCA9IDA7CisgICAgfSBlbHNlIGlmIChzdGFydCArIGxlbmd0aCA+IG1fbGVu
Z3RoKQorICAgICAgICBsZW5ndGggPSBtX2xlbmd0aCAtIHN0YXJ0OworCisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBCbG9iKG1fcGF0aCwgbV9zdGFydCArIHN0YXJ0LCBsZW5ndGgpKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0Jsb2IuaCBi
L1dlYkNvcmUvaHRtbC9CbG9iLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
N2ViZDcxOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9CbG9iLmgKQEAgLTAsMCAr
MSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgQmxvYl9oCisjZGVmaW5lIEJsb2JfaAorCisjaW5jbHVkZSAiRXhjZXB0
aW9uQ29kZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIEJsb2IgOiBwdWJsaWMgUmVmQ291bnRlZDxCbG9iPiB7CitwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8QmxvYj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmxvYihwYXRoKSk7CisgICAgfQor
CisgICAgdmlydHVhbCB+QmxvYigpIHsgfQorCisgICAgUGFzc1JlZlB0cjxCbG9iPiBzbGljZShs
b25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBsZW5ndGgpIGNvbnN0OworCisgICAgdW5zaWduZWQg
bG9uZyBsb25nIHNpemUoKSBjb25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQorCisgICAgY29uc3Qg
U3RyaW5nJiBwYXRoKCkgY29uc3QgeyByZXR1cm4gbV9wYXRoOyB9CisgICAgbG9uZyBsb25nIHN0
YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydDsgfQorICAgIGxvbmcgbG9uZyBsZW5ndGgoKSBj
b25zdCB7IHJldHVybiBtX2xlbmd0aDsgfQorCitwcm90ZWN0ZWQ6CisgICAgQmxvYihjb25zdCBT
dHJpbmcmIHBhdGgpOworCitwcml2YXRlOgorICAgIEJsb2IoY29uc3QgU3RyaW5nJiBwYXRoLCBs
b25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBsZW5ndGgpOworCisgICAgU3RyaW5nIG1fcGF0aDsK
KyAgICBsb25nIGxvbmcgbV9zdGFydDsKKyAgICBsb25nIGxvbmcgbV9sZW5ndGg7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBCbG9iX2gKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9CbG9iLmlkbCBiL1dlYkNvcmUvaHRtbC9CbG9iLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmYwMWMyCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9odG1sL0Jsb2IuaWRsCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRl
cmZhY2UgWworICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yCisgICAgXSBCbG9iIHsKKyAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplOworICAgICAgICBC
bG9iIHNsaWNlKGluIGxvbmcgbG9uZyBzdGFydCwgaW4gbG9uZyBsb25nIGxlbmd0aCk7CisgICAg
fTsKKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGUuY3BwIGIvV2ViQ29yZS9odG1s
L0ZpbGUuY3BwCmluZGV4IGRiYmJmYTYuLjdhN2Q1ODUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9GaWxlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZS5jcHAKQEAgLTI3LDI1ICsyNywxOCBA
QAogI2luY2x1ZGUgIkZpbGUuaCIKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKLSNpbmNsdWRl
ICJQbGF0Zm9ybVN0cmluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZpbGU6OkZpbGUo
Y29uc3QgU3RyaW5nJiBwYXRoKQotICAgIDogbV9wYXRoKHBhdGgpCi0gICAgLCBtX2ZpbGVOYW1l
KHBhdGhHZXRGaWxlTmFtZShwYXRoKSkKKyAgICA6IEJsb2IocGF0aCkKKyAgICAsIG1fbmFtZShw
YXRoR2V0RmlsZU5hbWUocGF0aCkpCiB7CisgICAgLy8gRklYTUU6IGNyZWF0ZSBhIFVVSUQgVVJO
IGZvciBmaWxlIHJlZmVyZW5jZS4KIH0KIAotdW5zaWduZWQgbG9uZyBsb25nIEZpbGU6OmZpbGVT
aXplKCkKK0ZpbGU6On5GaWxlKCkKIHsKLSAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGNhY2hlIHRo
aXM/Ci0gICAgLy8gRklYTUU6IEphdmFTY3JpcHQgY2Fubm90IHJlcHJlc2VudCBzaXplcyBhcyBs
YXJnZSBhcyB1bnNpZ25lZCBsb25nIGxvbmcsIHdlIG5lZWQgdG8KLSAgICAvLyBjb21lIHVwIHdp
dGggYW4gZXhjZXB0aW9uIHRvIHRocm93IGlmIGZpbGUgc2l6ZSBpcyBub3QgcmVwcmVzZXRhYmxl
LgotICAgIGxvbmcgbG9uZyBzaXplOwotICAgIGlmICghZ2V0RmlsZVNpemUobV9wYXRoLCBzaXpl
KSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHNpemU7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9GaWxlLmggYi9XZWJDb3JlL2h0
bWwvRmlsZS5oCmluZGV4IDdkNzlhYTUuLjJkZDJjZTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9GaWxlLmgKKysrIGIvV2ViQ29yZS9odG1sL0ZpbGUuaApAQCAtMjYsMzAgKzI2LDM1IEBACiAj
aWZuZGVmIEZpbGVfaAogI2RlZmluZSBGaWxlX2gKIAotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCisjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xh
c3MgRmlsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGU+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEZpbGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRmlsZShwYXRoKSk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBjb25zdCBTdHJpbmcmIGZpbGVOYW1lKCkgY29uc3QgeyByZXR1cm4g
bV9maWxlTmFtZTsgfQotICAgICAgICB1bnNpZ25lZCBsb25nIGxvbmcgZmlsZVNpemUoKTsKLQot
ICAgICAgICBjb25zdCBTdHJpbmcmIHBhdGgoKSBjb25zdCB7IHJldHVybiBtX3BhdGg7IH0KLQot
ICAgIHByaXZhdGU6Ci0gICAgICAgIEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKTsKLQotICAgICAg
ICBTdHJpbmcgbV9wYXRoOwotICAgICAgICBTdHJpbmcgbV9maWxlTmFtZTsKLSAgICB9OworY2xh
c3MgRmlsZSA6IHB1YmxpYyBCbG9iIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxG
aWxlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBGaWxlKHBhdGgpKTsKKyAgICB9CisKKyAgICBjb25zdCBTdHJpbmcmIG5hbWUo
KSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIHR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBjb25zdCBTdHJpbmcmIHVybigpIGNvbnN0IHsgcmV0
dXJuIG1fdXJuOyB9CisKKyAgICAvLyBGSVhNRTogb2Jzb2xldGUgYXR0cmlidXRlcy4gVG8gYmUg
cmVtb3ZlZC4KKyAgICBjb25zdCBTdHJpbmcmIGZpbGVOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9u
YW1lOyB9CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGZpbGVTaXplKCkgY29uc3QgeyByZXR1cm4g
c2l6ZSgpOyB9CisKK3ByaXZhdGU6CisgICAgRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpOworICAg
IHZpcnR1YWwgfkZpbGUoKTsKKworICAgIFN0cmluZyBtX25hbWU7CisgICAgU3RyaW5nIG1fdHlw
ZTsKKyAgICBTdHJpbmcgbV91cm47Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9GaWxlLmlkbCBiL1dlYkNvcmUvaHRtbC9GaWxlLmlkbApp
bmRleCBhZGE5ZjBjLi40ZjZkMGY0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvRmlsZS5pZGwK
KysrIGIvV2ViQ29yZS9odG1sL0ZpbGUuaWRsCkBAIC0yNiw4ICsyNiwxNSBAQAogbW9kdWxlIGh0
bWwgewogCiAgICAgaW50ZXJmYWNlIFsKLSAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvcgotICAg
IF0gRmlsZSB7CisgICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3IsCisgICAgICAgIEdlbmVyYXRl
TmF0aXZlQ29udmVydGVyLAorICAgICAgICBHZW5lcmF0ZVRvSlMKKyAgICBdIEZpbGUgOiBCbG9i
IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHR5cGU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgdXJuOworCisgICAgICAgIC8vIEZJWE1FOiBvYnNvbGV0ZSBhdHRyaWJ1
dGVzLiBUbyBiZSByZW1vdmVkLgogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGZpbGVOYW1lOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25n
IGZpbGVTaXplOwogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAgYi9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggZjFhNzk2OS4uMzI4
MThkZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCisrKyBiL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCiAKKyNpbmNsdWRlICJCbG9i
LmgiCiAjaW5jbHVkZSAiQ2FjaGUuaCIKICNpbmNsdWRlICJDU3RyaW5nLmgiCiAjaW5jbHVkZSAi
Q3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmgiCkBAIC0zMSw3ICszMiw2IEBACiAjaW5jbHVkZSAi
RXZlbnRFeGNlcHRpb24uaCIKICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgotI2luY2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5o
IgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIKICNpbmNsdWRlICJSZXNvdXJj
ZUVycm9yLmgiCkBAIC00MzUsNyArNDM1LDcgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2VuZChj
b25zdCBTdHJpbmcmIGJvZHksIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIGNyZWF0ZVJlcXVlc3Qo
ZWMpOwogfQogCi12b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZW5kKEZpbGUqIGJvZHksIEV4Y2VwdGlv
bkNvZGUmIGVjKQordm9pZCBYTUxIdHRwUmVxdWVzdDo6c2VuZChCbG9iKiBib2R5LCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKICAgICBpZiAoIWluaXRTZW5kKGVjKSkKICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaCBiL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmgKaW5kZXggNjkwMTlhNS4uMmNlYTVjNiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuaAorKysgYi9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5o
CkBAIC0zMyw4ICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQmxvYjsK
IGNsYXNzIERvY3VtZW50OwotY2xhc3MgRmlsZTsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIGNs
YXNzIFRleHRSZXNvdXJjZURlY29kZXI7CiBjbGFzcyBUaHJlYWRhYmxlTG9hZGVyOwpAQCAtNzIs
NyArNzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZW5kKEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
b2lkIHNlbmQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZW5kKGNvbnN0
IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNlbmQoRmlsZSosIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICB2b2lkIHNlbmQoQmxvYiosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IGFib3J0KCk7CiAgICAgdm9pZCBzZXRSZXF1ZXN0SGVhZGVyKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgb3Zl
cnJpZGVNaW1lVHlwZShjb25zdCBTdHJpbmcmIG92ZXJyaWRlKTsKZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggNTAwMTMzOS4uZGJh
NGJjZCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAwOS0xMi0yMyAgSmlhbiBMaSAgPGppYW5saUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW1wbGVtZW50IEZpbGUgYW5kIEJsb2IgaW50ZXJmYWNlcyBhcyBkZWZpbmVkIGluIEhU
TUwgNSBGaWxlIEFQSSBzcGVjLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzI5MTIKKworICAgICAgICAqIE1pZ3JhdGVIZWFkZXJzLm1ha2U6CisKIDIw
MDktMTItMjIgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE1hcmsgUm93ZS4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvTWlncmF0ZUhlYWRlcnMu
bWFrZSBiL1dlYktpdC9tYWMvTWlncmF0ZUhlYWRlcnMubWFrZQppbmRleCAwNzJkYTY1Li43ZDAx
Yzk5IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL01pZ3JhdGVIZWFkZXJzLm1ha2UKKysrIGIvV2Vi
S2l0L21hYy9NaWdyYXRlSGVhZGVycy5tYWtlCkBAIC0zNiw2ICszNiw4IEBAIGFsbCA6IFwKICAg
ICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NLmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElS
KS9ET01BYnN0cmFjdFZpZXcuaCBcCiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTUF0dHIu
aCBcCisgICAgJChQUklWQVRFX0hFQURFUlNfRElSKS9ET01CbG9iLmggXAorICAgICQoSU5URVJO
QUxfSEVBREVSU19ESVIpL0RPTUJsb2JJbnRlcm5hbC5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJT
X0RJUikvRE9NQ0RBVEFTZWN0aW9uLmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01D
U1MuaCBcCiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTUNTU0NoYXJzZXRSdWxlLmggXAo=
</data>
<flag name="commit-queue"
          id="27506"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45582</attachid>
            <date>2009-12-28 18:04:32 -0800</date>
            <delta_ts>2010-01-14 15:51:49 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>32912_3</filename>
            <type>text/plain</type>
            <size>45315</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1NTNjNDk1Li44ZjQ3MjBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTIt
MjMgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBGaWxlIGFuZCBCbG9iIGludGVy
ZmFjZXMgYXMgZGVmaW5lZCBpbiBGaWxlIEFQSSBzcGVjLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI5MTIKKyAgICAgICAgCisgICAgICAgIFVwZGF0
ZWQgdGhlIHJlc3VsdCBvZiBhIGxheW91dCB0ZXN0IGJlaW5nIGFmZmVjdGVkLgorCisgICAgICAg
ICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dDoKKwogMjAw
OS0xMi0xOCAgVG9yIEFybmUgVmVzdGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRl
eCAxMDAwYTBkLi5mMjc5NGQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTg5OCw2ICs4OTgs
NyBAQCB3aW5kb3cuRXZlbnRTb3VyY2UucHJvdG90eXBlLmRpc3BhdGNoRXZlbnQgW2Z1bmN0aW9u
XQogd2luZG93LkV2ZW50U291cmNlLnByb3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyIFtmdW5j
dGlvbl0KIHdpbmRvdy5GaWxlIFtvYmplY3QgRmlsZUNvbnN0cnVjdG9yXQogd2luZG93LkZpbGUu
cHJvdG90eXBlIFtvYmplY3QgRmlsZVByb3RvdHlwZV0KK3dpbmRvdy5GaWxlLnByb3RvdHlwZS5z
bGljZSBbZnVuY3Rpb25dCiB3aW5kb3cuRmlsZUxpc3QgW29iamVjdCBGaWxlTGlzdENvbnN0cnVj
dG9yXQogd2luZG93LkZpbGVMaXN0LnByb3RvdHlwZSBbb2JqZWN0IEZpbGVMaXN0UHJvdG90eXBl
XQogd2luZG93LkZpbGVMaXN0LnByb3RvdHlwZS5pdGVtIFtmdW5jdGlvbl0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lk
LmRlcml2ZWQuanNjYmluZGluZ3MubWsKaW5kZXggYzc0NzEzYS4uMTk2OTBiYiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9B
bmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKQEAgLTE0OSw2ICsxNDksNyBAQCAkKHBhdHN1
YnN0ICUuaCwlLmNwcCwkKEdFTikpOiAkKGludGVybWVkaWF0ZXMpL2RvbS8lLmNwcCA6ICQoaW50
ZXJtZWRpYXRlcykvZG9tLwogCiAjIEhUTUwKIEdFTiA6PSBcCisgICAgJChpbnRlcm1lZGlhdGVz
KS9odG1sL0pTQmxvYi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2h0bWwvSlNEYXRhR3JpZENv
bHVtbi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2h0bWwvSlNEYXRhR3JpZENvbHVtbkxpc3Qu
aCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRmlsZS5oIFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsgYi9XZWJDb3JlL0FuZHJvaWQuZGVy
aXZlZC52OGJpbmRpbmdzLm1rCmluZGV4IDdiNjg3ZTguLmEzYTk2NzMgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lk
LmRlcml2ZWQudjhiaW5kaW5ncy5tawpAQCAtMTMyLDYgKzEzMiw3IEBAICQocGF0c3Vic3QgJS5o
LCUuY3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvJS5jcHAgOiAkKGludGVy
bWVkaWF0ZXMpCiAKICMgSFRNTAogR0VOIDo9IFwKKyAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRp
bmdzL1Y4QmxvYi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4RGF0YUdyaWRD
b2x1bW4uaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOERhdGFHcmlkQ29sdW1u
TGlzdC5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4RmlsZS5oIFwKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRleCAyOTNj
NDNiLi4xMDdmMjQ0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIvV2ViQ29y
ZS9BbmRyb2lkLm1rCkBAIC0yMzQsNiArMjM0LDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9D
QUxfU1JDX0ZJTEVTKSBcCiAJXAogCWhpc3RvcnkvYW5kcm9pZC9IaXN0b3J5SXRlbUFuZHJvaWQu
Y3BwIFwKIAlcCisJaHRtbC9CbG9iLmNwcCBcCiAJaHRtbC9Db2xsZWN0aW9uQ2FjaGUuY3BwIFwK
IAlodG1sL0ZpbGUuY3BwIFwKIAlodG1sL0ZpbGVMaXN0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDYzY2ZmYjYuLjQzZjM1MTAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNjEgQEAKKzIwMDktMTItMjMgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxl
bWVudCBGaWxlIGFuZCBCbG9iIGludGVyZmFjZXMgYXMgZGVmaW5lZCBpbiBGaWxlIEFQSSBzcGVj
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI5MTIK
KworICAgICAgICAqIEFuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tazoKKyAgICAgICAgKiBB
bmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tazoKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogV2ViQ29yZVNvdXJjZXMuYmtsOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0
cFJlcXVlc3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6
c2VuZCk6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MLmg6CisgICAgICAgICogYmlu
ZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9yT2JqQy5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9ET01PYmplY3RzSW5jbHVkZS5oOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L0Rlcml2ZWRTb3VyY2VzQWxsSW5PbmUuY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6dG9JbnQ2NCk6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhJbmRleC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvdjgv
VjhJbmRleC5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6OnNlbmRDYWxs
YmFjayk6CisgICAgICAgICogaHRtbC9CbG9iLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpCbG9iOjpCbG9iKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6OnNsaWNlKToKKyAgICAgICAg
KiBodG1sL0Jsb2IuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpCbG9iOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QmxvYjo6fkJsb2IpOgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6
c2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpCbG9iOjpwYXRoKToKKyAgICAgICAgKFdlYkNvcmU6
OkJsb2I6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6Omxlbmd0aCk6CisgICAgICAg
ICogaHRtbC9CbG9iLmlkbDogQWRkZWQuCisgICAgICAgICogaHRtbC9GaWxlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGU6OkZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6fkZpbGUp
OgorICAgICAgICAqIGh0bWwvRmlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6bmFtZSk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6
OnVybik6CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjpmaWxlTmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpGaWxlOjpmaWxlU2l6ZSk6CisgICAgICAgICogaHRtbC9GaWxlLmlkbDoKKyAgICAgICAg
KiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3Q6OnNlbmQpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5oOgorCiAyMDA5LTEyLTE4
ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMuY3BwIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggZTk2YjYwNi4uZjdi
ZTEzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJKU0F0dHIu
Y3BwIgogI2luY2x1ZGUgIkpTQmFySW5mby5jcHAiCiAjaW5jbHVkZSAiSlNCZWZvcmVMb2FkRXZl
bnQuY3BwIgorI2luY2x1ZGUgIkpTQmxvYi5jcHAiCiAjaW5jbHVkZSAiSlNDYW52YXNHcmFkaWVu
dC5jcHAiCiAjaW5jbHVkZSAiSlNDYW52YXNQYXR0ZXJuLmNwcCIKICNpbmNsdWRlICJKU0NhbnZh
c1JlbmRlcmluZ0NvbnRleHQuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDZiYzQ1NDIuLjM5MTNm
MGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTUzLDYgKzUzLDcgQEAgRE9NX0NMQVNTRVMgPSBcCiAg
ICAgQXR0ciBcCiAgICAgQmFySW5mbyBcCiAgICAgQmVmb3JlTG9hZEV2ZW50IFwKKyAgICBCbG9i
IFwKICAgICBDREFUQVNlY3Rpb24gXAogICAgIENTU0NoYXJzZXRSdWxlIFwKICAgICBDU1NGb250
RmFjZVJ1bGUgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KaW5kZXggMWEyNWZiMC4uNWMxZmQ0YSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xNjIsNiAr
MTYyLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKIAlXZWJDb3JlL2RvbS9XZWJLaXRBbmltYXRpb25F
dmVudC5pZGwgXAogCVdlYkNvcmUvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwgXAogCVdl
YkNvcmUvZG9tL1doZWVsRXZlbnQuaWRsIFwKKwlXZWJDb3JlL2h0bWwvQmxvYi5pZGwgXAogCVdl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xBcnJheS5pZGwgXAogCVdlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xBcnJheUJ1ZmZlci5pZGwgXAogCVdlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xCeXRlQXJy
YXkuaWRsIFwKQEAgLTk1MCw2ICs5NTEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNv
cmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oIFwKIAlXZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNw
cCBcCiAJV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5oIFwKKwlXZWJDb3JlL2h0bWwvQmxvYi5j
cHAgXAorCVdlYkNvcmUvaHRtbC9CbG9iLmggXAogCVdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFz
R3JhZGllbnQuY3BwIFwKIAlXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmggXAog
CVdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5jcHAgXApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA4MzZlMzNkLi45
MDcyYjRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtNzgsNiArNzgsNyBAQAogICAgICAgICAgICAgJ2RvbS9XZWJLaXRBbmlt
YXRpb25FdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9XZWJLaXRUcmFuc2l0aW9uRXZlbnQu
aWRsJywKICAgICAgICAgICAgICdkb20vV2hlZWxFdmVudC5pZGwnLAorICAgICAgICAgICAgJ2h0
bWwvQmxvYi5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQWN0aXZlSW5mby5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQXJyYXkuaWRsJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9XZWJHTEFycmF5QnVmZmVyLmlkbCcsCkBAIC0xMjg4LDYgKzEyODks
OCBAQAogICAgICAgICAgICAgJ2hpc3RvcnkvSGlzdG9yeUl0ZW0uaCcsCiAgICAgICAgICAgICAn
aGlzdG9yeS9QYWdlQ2FjaGUuY3BwJywKICAgICAgICAgICAgICdoaXN0b3J5L1BhZ2VDYWNoZS5o
JywKKyAgICAgICAgICAgICdodG1sL0Jsb2IuY3BwJywKKyAgICAgICAgICAgICdodG1sL0Jsb2Iu
aCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xBcnJheS5jcHAnLAogICAgICAgICAg
ICAgJ2h0bWwvY2FudmFzL1dlYkdMQXJyYXkuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMv
V2ViR0xBcnJheUJ1ZmZlci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBi
L1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggNmQzZDVkZS4uNGNiZDNiOCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0zOTYsNiAr
Mzk2LDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQu
aWRsIFwKICAgICBkb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmlkbCBcCiAgICAgZG9tL1doZWVs
RXZlbnQuaWRsIFwKKyAgICBodG1sL0Jsb2IuaWRsIFwKICAgICBodG1sL2NhbnZhcy9XZWJHTEFy
cmF5LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvV2ViR0xBcnJheUJ1ZmZlci5pZGwgXAogICAgIGh0
bWwvY2FudmFzL1dlYkdMQnl0ZUFycmF5LmlkbCBcCkBAIC0xMDExLDYgKzEwMTIsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBoaXN0b3J5L0hpc3RvcnlJdGVtLmNwcCBcCiAgICAgaGlzdG9yeS9xdC9I
aXN0b3J5SXRlbVF0LmNwcCBcCiAgICAgaGlzdG9yeS9QYWdlQ2FjaGUuY3BwIFwKKyAgICBodG1s
L0Jsb2IuY3BwIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5jcHAgXAogICAgIGh0
bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uY3BwIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNQaXhl
bEFycmF5LmNwcCBcCkBAIC0xNjk1LDYgKzE2OTcsNyBAQCBIRUFERVJTICs9IFwKICAgICBoaXN0
b3J5L0NhY2hlZFBhZ2UuaCBcCiAgICAgaGlzdG9yeS9IaXN0b3J5SXRlbS5oIFwKICAgICBoaXN0
b3J5L1BhZ2VDYWNoZS5oIFwKKyAgICBodG1sL0Jsb2IuaCBcCiAgICAgaHRtbC9jYW52YXMvQ2Fu
dmFzR3JhZGllbnQuaCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUGF0dGVybi5oIFwKICAgICBo
dG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKaW5kZXggZWNhMjJkYy4uNzQ3NjIyMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCkBAIC03MjEsNiArNzIxLDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJ
CQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9q
ZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNCbG9iLmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9t
QnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21w
aWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98
V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxU
b29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmls
ZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVs
ZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJ
Pg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4N
CisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJ
CQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xKU0Jsb2IuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisgICAgICAg
ICAgICA8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQ
cm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDYW52YXNHcmFkaWVudC5jcHAiDQogCQkJCT4N
CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtMjk3MzMsNiArMjk3ODksMTQgQEAKIAkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGh0bWxcQmxvYi5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEJsb2IuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4N
CisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQ29sbGVjdGlvbkNhY2hlLmgi
DQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA5Mjk3NWJiLi5hMDQxMTdiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTkyLDYgKzU5MiwxMyBAQAogCQkyOUE4MTI0QjBGQkI5
Q0E5MDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgxMjQ3MEZCQjlDQTkwMDUxMDI5MyAvKiBBWE9i
amVjdENhY2hlTWFjLm1tICovOyB9OwogCQkyRDkwNjYwNjBCRTE0MUQ0MDA5NTY5OTggLyogTGF5
b3V0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkQ5MDY2MDQwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmNwcCAqLzsgfTsKIAkJ
MkQ5MDY2MDcwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDkwNjYwNTBCRTE0MUQ0MDA5NTY5OTgg
LyogTGF5b3V0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQkyRTJEOTlDRDEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMkQ5OUNCMTBFMkJCREEw
MDQ5NjMzNyAvKiBKU0Jsb2IuY3BwICovOyB9OworCQkyRTJEOTlDRTEwRTJCQkRBMDA0OTYzMzcg
LyogSlNCbG9iLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRTJEOTlDQzEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmggKi87IH07CisJCTJFMkQ5OUU3
MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlFNTEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5o
ICovOyB9OworCQkyRTJEOTlFODEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMkQ5OUU2MTBFMkJDMUMw
MDQ5NjMzNyAvKiBET01CbG9iLm1tICovOyB9OworCQkyRTJEOTlFQTEwRTJCQzM4MDA0OTYzMzcg
LyogRE9NQmxvYkludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRTJEOTlFOTEwRTJCQzM4MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmgg
Ki87IH07CisJCTJFMkQ5OUVCMTBFMkJEMzkwMDQ5NjMzNyAvKiBET01CbG9iLmggaW4gQ29weSBH
ZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJE
OTlFNTEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5oICovOyB9OworCQkyRTJEOTlFQzEwRTJC
RDM5MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlFOTEwRTJCQzM4MDA0
OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggKi87IH07CiAJCTJFNDM0NjQ0MEY1NDZBODIwMEIw
RjFCQSAvKiBHZW5lcmljV29ya2VyVGFzay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2MzIwRjU0NkE4MjAwQjBGMUJBIC8qIEdlbmVyaWNXb3Jr
ZXJUYXNrLmggKi87IH07CiAJCTJFNDM0NjQ1MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2MzMw
RjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgKi87IH07CiAJCTJFNDM0NjQ2MEY1NDZBODIw
MEIwRjFCQSAvKiBXb3JrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJFNDM0NjM0MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuaCAqLzsgfTsKQEAg
LTYxMCw2ICs2MTcsOCBAQAogCQkyRTQzNDY1ODBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJl
YWRDb3BpZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkU0MzQ2NTYwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCAqLzsg
fTsKIAkJMkU0MzQ2NTkwRjU0NkE5OTAwQjBGMUJBIC8qIENyb3NzVGhyZWFkQ29waWVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDY1NzBGNTQ2
QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuaCAqLzsgfTsKIAkJMkVBNzY4MDQwRkU3
MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBNzY4MDMwRkU3MTI2NDAwQUI5QzhB
IC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oICovOyB9OworCQkyRUFGQUYwRTEwRTJBRjJE
MDA3RUQzRDYgLyogQmxvYi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRUFGQUYwQjEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5jcHAgKi87IH07CisJ
CTJFQUZBRjBGMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUFGQUYwQzEwRTJBRjJEMDA3RUQzRDYgLyogQmxv
Yi5oICovOyB9OwogCQkyRUNGN0FEQzEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQ0Y3QURB
MTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuY3BwICovOyB9OwogCQkyRUNGN0FERDEw
MTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUNGN0FEQjEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJv
ckV2ZW50LmggKi87IH07CiAJCTJFQ0Y3QUUxMTAxNjJCNTgwMDQyN0RFNyAvKiBFcnJvckV2ZW50
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQ0Y3
QURFMTAxNjJCNTgwMDQyN0RFNyAvKiBFcnJvckV2ZW50LmNwcCAqLzsgfTsKQEAgLTQ4MjksNiAr
NDgzOCw4IEBACiAJCQkJNURGN0Y1QzIwRjAxRjkyQTAwNTI2QjRCIC8qIENTU1Byb3BlcnR5TmFt
ZXMuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTg1MzhGMDMwMEFENzFDREIw
MDZBODFEMSAvKiBET01BYnN0cmFjdFZpZXcuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
LAogCQkJCTFDMTFDQ0JDMEFBNjA5MzcwMERBREIyMCAvKiBET01BdHRyLmggaW4gQ29weSBHZW5l
cmF0ZWQgSGVhZGVycyAqLywKKwkJCQkyRTJEOTlFQjEwRTJCRDM5MDA0OTYzMzcgLyogRE9NQmxv
Yi5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCisJCQkJMkUyRDk5RUMxMEUyQkQzOTAw
NDk2MzM3IC8qIERPTUJsb2JJbnRlcm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8s
CiAJCQkJMUMxMUNDQzcwQUE2MDkzNzAwREFEQjIwIC8qIERPTUNEQVRBU2VjdGlvbi5oIGluIENv
cHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJMUMxMUNDQzUwQUE2MDkzNzAwREFEQjIwIC8q
IERPTUNoYXJhY3RlckRhdGEuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTFD
MTFDQ0I2MEFBNjA5MzcwMERBREIyMCAvKiBET01Db21tZW50LmggaW4gQ29weSBHZW5lcmF0ZWQg
SGVhZGVycyAqLywKQEAgLTU4NDAsNiArNTg1MSwxMSBAQAogCQkyRDkwNjYwNTBCRTE0MUQ0MDA5
NTY5OTggLyogTGF5b3V0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExheW91dFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEOTA2NjBCMDY2
NUQ5MzcwMDZCNkYxQSAvKiBDbGlwYm9hcmRNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xpcGJvYXJkTWFjLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQkyRDkwNjYwQzA2NjVE
OTM3MDA2QjZGMUEgLyogQ2xpcGJvYXJkTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2xpcGJvYXJkTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJMkUyRDk5
Q0IxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0Jsb2IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
RTJEOTlDQzEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQmxvYi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTJE
OTlFNTEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01CbG9iLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMkQ5
OUU2MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRE9NQmxvYi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMkUyRDk5RTkxMEUyQkMzODAwNDk2MzM3IC8qIERPTUJsb2JJbnRlcm5hbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01CbG9iSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkU0MzQ2MzIwRjU0NkE4MjAwQjBGMUJBIC8qIEdlbmVyaWNXb3Jr
ZXJUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdlbmVyaWNXb3JrZXJU
YXNrLmg7IHBhdGggPSB3b3JrZXJzL0dlbmVyaWNXb3JrZXJUYXNrLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJFNDM0NjMzMEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV29ya2VyLmNwcDsgcGF0aCA9IHdv
cmtlcnMvV29ya2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU0MzQ2MzQw
RjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBXb3JrZXIuaDsgcGF0aCA9IHdvcmtlcnMvV29ya2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC01ODYxLDYgKzU4NzcsOSBAQAogCQkyRTQzNDY1NjBGNTQ2QTk5MDBCMEYx
QkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyRTQzNDY1NzBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3Jvc3NUaHJlYWRDb3BpZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVBNzY4MDMwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtl
clNjcmlwdExvYWRlckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
b3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaDsgcGF0aCA9IHdvcmtlcnMvV29ya2VyU2NyaXB0TG9h
ZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFQUZBRjBCMTBFMkFG
MkQwMDdFRDNENiAvKiBCbG9iLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEJsb2IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRUFGQUYwQzEwRTJB
RjJEMDA3RUQzRDYgLyogQmxvYi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBC
bG9iLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFQUZBRjBEMTBFMkFGMkQwMDdF
RDNENiAvKiBCbG9iLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBCbG9iLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVDRjdBREExMDE2MkIzODAwNDI3REU3IC8qIEpTRXJy
b3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Vycm9y
RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUNGN0FEQjEwMTYyQjM4
MDA0MjdERTcgLyogSlNFcnJvckV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTRXJyb3JFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUNGN0FE
RTEwMTYyQjU4MDA0MjdERTcgLyogRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBFcnJvckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTEyMDM3LDYgKzEyMDU2LDggQEAKIAkJODVDNTZEMDMwQUE4QkFBNzAwRDk1NzU1IC8q
IEhUTUwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJF
MkQ5OUU1MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLmggKi8sCisJCQkJMkUyRDk5RTYxMEUy
QkMxQzAwNDk2MzM3IC8qIERPTUJsb2IubW0gKi8sCiAJCQkJQkMwMEVGRkUwRTBBMTg1NTAwRkQw
NEUzIC8qIERPTUZpbGUuaCAqLywKIAkJCQlCQzAwRUZGRjBFMEExODU1MDBGRDA0RTMgLyogRE9N
RmlsZS5tbSAqLywKIAkJCQlCQzAwRjAwMTBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZUxpc3Qu
aCAqLywKQEAgLTEyMTc4LDYgKzEyMTk5LDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTg1MzhG
MDE4MEFENzE4RDgwMDZBODFEMSAvKiBET01BYnN0cmFjdFZpZXdJbnRlcm5hbC5oICovLAogCQkJ
CTg1RTcxMTNFMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01BdHRySW50ZXJuYWwuaCAqLywKKwkJCQky
RTJEOTlFOTEwRTJCQzM4MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggKi8sCiAJCQkJODVF
NzExM0YwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNEQVRBU2VjdGlvbkludGVybmFsLmggKi8sCiAJ
CQkJODVFNzExNDAwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNoYXJhY3RlckRhdGFJbnRlcm5hbC5o
ICovLAogCQkJCTg1RTcxMTQxMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01Db21tZW50SW50ZXJuYWwu
aCAqLywKQEAgLTEyNTc2LDYgKzEyNTk4LDkgQEAKIAkJOTNFRUMxRUMwOUMyODc3NzAwQzUxNUQx
IC8qIGh0bWwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJ
CTJFQUZBRjBCMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmNwcCAqLywKKwkJCQkyRUFGQUYwQzEw
RTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oICovLAorCQkJCTJFQUZBRjBEMTBFMkFGMkQwMDdFRDNE
NiAvKiBCbG9iLmlkbCAqLywKIAkJCQk0OTQ4NEZBRTEwMkNGMDFFMDAxODdERDMgLyogY2FudmFz
ICovLAogCQkJCTkzQzQ0MUVEMEY4MTNBMUEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uQ2FjaGUuY3Bw
ICovLAogCQkJCTkzQzQ0MUVFMEY4MTNBMUEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uQ2FjaGUuaCAq
LywKQEAgLTEyODkyLDYgKzEyOTE3LDggQEAKIAkJQTgzQjc5MDgwQ0NBRkYyQjAwMEIwODI1IC8q
IEhUTUwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJF
MkQ5OUNCMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuY3BwICovLAorCQkJCTJFMkQ5OUNDMTBF
MkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuaCAqLywKIAkJCQlBN0QyMEY2MDEwN0Y0MDY5MDBBODAz
OTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uY3BwICovLAogCQkJCUE3RDIwRjYxMTA3RjQwNjkwMEE4
MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5oICovLAogCQkJCTQ5RUVDRjE5MTA1MDcyRjMwMDA5
OUZBQiAvKiBKU1dlYkdMQXJyYXkuY3BwICovLApAQCAtMTgyNjUsNiArMTgyOTIsMTAgQEAKIAkJ
CQlCQzU2Q0IyMzEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9jYXRpb25Db250cm9sbGVyQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzU2Q0IyNDEwRDVBQzgwMDBBNzdDNjQgLyogR2VvbG9j
YXRpb25FcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1NkNCMjUxMEQ1QUM4MDAwQTc3QzY0
IC8qIEdlb2xvY2F0aW9uUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTJFQUZBRjBGMTBF
MkFGMkQwMDdFRDNENiAvKiBCbG9iLmggaW4gSGVhZGVycyAqLywKKwkJCQkyRTJEOTlDRTEwRTJC
QkRBMDA0OTYzMzcgLyogSlNCbG9iLmggaW4gSGVhZGVycyAqLywKKwkJCQkyRTJEOTlFNzEwRTJC
QzFDMDA0OTYzMzcgLyogRE9NQmxvYi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkUyRDk5RUExMEUy
QkMzODAwNDk2MzM3IC8qIERPTUJsb2JJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMDQy
MSw2ICsyMDQ1Miw5IEBACiAJCQkJMEMzRjFGNUExMEM4ODcxMjAwRDcyQ0UxIC8qIFdlYkdMVW5p
Zm9ybUxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBDNDUzNDI3MTBDREJCRkEwMDg2
OTE1NyAvKiBKU1dlYkdMVW5pZm9ybUxvY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
NTZDQjIxMTBENUFDODAwMEE3N0M2NCAvKiBHZW9sb2NhdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMkVBRkFGMEUxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMkUyRDk5Q0QxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkyRTJEOTlFODEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5tbSBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wgYi9X
ZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbAppbmRleCBkNDRlNTkzLi5mMzA1ZWE0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbAorKysgYi9XZWJDb3JlL1dlYkNvcmVTb3Vy
Y2VzLmJrbApAQCAtMjQ5LDYgKzI0OSw3IEBAIFRoaXMgZmlsZSBjb250YWlucyB0aGUgbGlzdCBv
ZiBmaWxlcyBuZWVkZWQgdG8gYnVpbGQgV2ViQ29yZS4KICAgICAgICAgRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9IVE1MTmFtZXMuY3BwCiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNB
dHRyLmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQmFySW5mby5jcHAKKyAg
ICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Jsb2IuY3BwCiAgICAgICAgIERlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNDREFUQVNlY3Rpb24uY3BwCiAgICAgICAgIERlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNDU1NDaGFyc2V0UnVsZS5jcHAKICAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0NTU0ZvbnRGYWNlUnVsZS5jcHAKQEAgLTU4NCw2ICs1ODUsNyBAQCBUaGlzIGZpbGUg
Y29udGFpbnMgdGhlIGxpc3Qgb2YgZmlsZXMgbmVlZGVkIHRvIGJ1aWxkIFdlYkNvcmUuCiAgICAg
PC9zZXQ+CiAKICAgICA8c2V0IGFwcGVuZD0iMSIgdmFyPSJXRUJDT1JFX1NPVVJDRVNfSFRNTCI+
CisgICAgICAgIGh0bWwvQmxvYi5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvQ2FudmFzR3JhZGll
bnQuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uY3BwCiAgICAgICAgIGh0
bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAppbmRleCA3ZWUyNzIwLi5kMzVkNTNhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKQEAgLTI5LDE4
ICsyOSwxOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVl
c3QuaCIKIAorI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCi0jaW5jbHVkZSAiRmlsZS5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJI
VE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJKU0Jsb2IuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRv
d0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU0V2ZW50Lmgi
CiAjaW5jbHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCi0jaW5jbHVkZSAiSlNGaWxlLmgiCiAjaW5j
bHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5j
bHVkZSA8aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaD4KQEAgLTEwOSw4ICsxMDksOCBAQCBKU1Zh
bHVlIEpTWE1MSHR0cFJlcXVlc3Q6OnNlbmQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0
JiBhcmdzKQogICAgICAgICAgICAgaW1wbCgpLT5zZW5kKGVjKTsKICAgICAgICAgZWxzZSBpZiAo
dmFsLmluaGVyaXRzKCZKU0RvY3VtZW50OjpzX2luZm8pKQogICAgICAgICAgICAgaW1wbCgpLT5z
ZW5kKHRvRG9jdW1lbnQodmFsKSwgZWMpOwotICAgICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMo
JkpTRmlsZTo6c19pbmZvKSkKLSAgICAgICAgICAgIGltcGwoKS0+c2VuZCh0b0ZpbGUodmFsKSwg
ZWMpOworICAgICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoJkpTQmxvYjo6c19pbmZvKSkKKyAg
ICAgICAgICAgIGltcGwoKS0+c2VuZCh0b0Jsb2IodmFsKSwgZWMpOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBpbXBsKCktPnNlbmQodmFsLnRvU3RyaW5nKGV4ZWMpLCBlYyk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwuaCBiL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MLmgKaW5kZXggYzMzNmMwNC4uODgyZTM5NyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTC5oCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbXBvcnQgPFdlYkNvcmUvRE9NQ29y
ZS5oPgogCisjaW1wb3J0IDxXZWJDb3JlL0RPTUJsb2IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9N
RmlsZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01GaWxlTGlzdC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9ET01IVE1MQW5jaG9yRWxlbWVudC5oPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaCBiL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNE
T01JbnRlcmZhY2VzLmgKaW5kZXggOTIyMTAzNy4uODY1OWFiZiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCkBAIC0yMzUsNyArMjM1LDE2IEBACiBAaW50
ZXJmYWNlIERPTUVudGl0eVJlZmVyZW5jZSA6IERPTU5vZGUgV0VCS0lUX1ZFUlNJT05fMV8zCiBA
ZW5kCiAKLUBpbnRlcmZhY2UgRE9NRmlsZSA6IERPTU9iamVjdCBXRUJLSVRfVkVSU0lPTl80XzAK
K0BpbnRlcmZhY2UgRE9NQmxvYiA6IERPTU9iamVjdCBXRUJLSVRfVkVSU0lPTl80XzAKK0Bwcm9w
ZXJ0eShyZWFkb25seSkgdW5zaWduZWQgbG9uZyBsb25nIHNpemU7CitAZW5kCisKK0BpbnRlcmZh
Y2UgRE9NRmlsZSA6IERPTUJsb2IgV0VCS0lUX1ZFUlNJT05fNF8wCitAcHJvcGVydHkocmVhZG9u
bHksIGNvcHkpIE5TU3RyaW5nICpuYW1lOworQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5KSBOU1N0
cmluZyAqdHlwZTsKK0Bwcm9wZXJ0eShyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnVybjsKKwor
Ly8gRklYTUU6IG9ic29sZXRlIHByb3BlcnRpZXMuIFRvIGJlIHJlbW92ZWQuCiBAcHJvcGVydHko
cmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICpmaWxlTmFtZTsKIEBwcm9wZXJ0eShyZWFkb25seSkg
dW5zaWduZWQgbG9uZyBsb25nIGZpbGVTaXplOwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggYTVlNmJiNi4uNzRjMWNmNSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0xODQxLDYgKzE4NDEs
OCBAQCBteSAlbmF0aXZlVHlwZSA9ICgKICAgICAibG9uZyIgPT4gImludCIsCiAgICAgInVuc2ln
bmVkIGxvbmciID0+ICJ1bnNpZ25lZCIsCiAgICAgInVuc2lnbmVkIHNob3J0IiA9PiAidW5zaWdu
ZWQgc2hvcnQiLAorICAgICJsb25nIGxvbmciID0+ICJsb25nIGxvbmciLAorICAgICJ1bnNpZ25l
ZCBsb25nIGxvbmciID0+ICJ1bnNpZ25lZCBsb25nIGxvbmciLAogKTsKIAogc3ViIEdldE5hdGl2
ZVR5cGUKQEAgLTE4NjQsNiArMTg2Niw3IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICByZXR1
cm4gIiR2YWx1ZS50b051bWJlcihleGVjKSIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CiAgICAgcmV0
dXJuICIkdmFsdWUudG9GbG9hdChleGVjKSIgaWYgJHR5cGUgZXEgImZsb2F0IiBvciAkdHlwZSBl
cSAiU1ZHTnVtYmVyIjsKICAgICByZXR1cm4gIiR2YWx1ZS50b0ludDMyKGV4ZWMpIiBpZiAkdHlw
ZSBlcSAidW5zaWduZWQgbG9uZyIgb3IgJHR5cGUgZXEgImxvbmciIG9yICR0eXBlIGVxICJ1bnNp
Z25lZCBzaG9ydCI7CisgICAgcmV0dXJuICJzdGF0aWNfY2FzdDwkdHlwZT4oJHZhbHVlLnRvSW50
ZWdlcihleGVjKSkiIGlmICR0eXBlIGVxICJsb25nIGxvbmciIG9yICR0eXBlIGVxICJ1bnNpZ25l
ZCBsb25nIGxvbmciOwogCiAgICAgcmV0dXJuICJ2YWx1ZVRvRGF0ZShleGVjLCAkdmFsdWUpIiBp
ZiAkdHlwZSBlcSAiRGF0ZSI7CiAgICAgcmV0dXJuICJzdGF0aWNfY2FzdDxSYW5nZTo6Q29tcGFy
ZUhvdz4oJHZhbHVlLnRvSW50MzIoZXhlYykpIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0g
Yi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KaW5kZXggOTEy
NDhjNS4uYWEwOTcxNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JPYmpDLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yT2JqQy5wbQpAQCAtNjYsNyArNjYsNyBAQCBteSAlbmF0aXZlT2JqQ1R5cGVIYXNoID0gKCJV
UkwiID0+IDEsICJDb2xvciIgPT4gMSk7CiBteSAlYmFzZVR5cGVIYXNoID0gKCJPYmplY3QiID0+
IDEsICJOb2RlIiA9PiAxLCAiTm9kZUxpc3QiID0+IDEsICJOYW1lZE5vZGVNYXAiID0+IDEsICJE
T01JbXBsZW1lbnRhdGlvbiIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIkV2ZW50IiA9PiAx
LCAiQ1NTUnVsZSIgPT4gMSwgIkNTU1ZhbHVlIiA9PiAxLCAiU3R5bGVTaGVldCIgPT4gMSwgIk1l
ZGlhTGlzdCIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIkNvdW50ZXIiID0+IDEsICJSZWN0
IiA9PiAxLCAiUkdCQ29sb3IiID0+IDEsICJYUGF0aEV4cHJlc3Npb24iID0+IDEsICJYUGF0aFJl
c3VsdCIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgIk5vZGVJdGVyYXRvciIgPT4gMSwgIlRy
ZWVXYWxrZXIiID0+IDEsICJBYnN0cmFjdFZpZXciID0+IDEsCisgICAgICAgICAgICAgICAgICAg
ICJOb2RlSXRlcmF0b3IiID0+IDEsICJUcmVlV2Fsa2VyIiA9PiAxLCAiQWJzdHJhY3RWaWV3IiA9
PiAxLCAiQmxvYiIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIlNWR0FuZ2xlIiA9PiAxLCAi
U1ZHQW5pbWF0ZWRBbmdsZSIgPT4gMSwgIlNWR0FuaW1hdGVkQm9vbGVhbiIgPT4gMSwgIlNWR0Fu
aW1hdGVkRW51bWVyYXRpb24iID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICJTVkdBbmltYXRl
ZEludGVnZXIiID0+IDEsICJTVkdBbmltYXRlZExlbmd0aCIgPT4gMSwgIlNWR0FuaW1hdGVkTGVu
Z3RoTGlzdCIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIlNWR0FuaW1hdGVkTnVtYmVyIiA9
PiAxLCAiU1ZHQW5pbWF0ZWROdW1iZXJMaXN0IiA9PiAxLCAiU1ZHQW5pbWF0ZWRQb2ludHMiID0+
IDEsCkBAIC0xMDQwLDYgKzEwNDAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICRpbXBsSW5jbHVkZXN7JGNsYXNzSGVhZGVyTmFtZSAuICJJbnRlcm5hbC5oIn0gPSAxOwogCiAg
ICAgIyBGSVhNRTogVGhlc2UgaW5jbHVkZXMgYXJlIG9ubHkgbmVlZGVkIHdoZW4gdGhlIGNsYXNz
IGlzIGEgc3ViY2xhc3Mgb2Ygb25lIG9mIHRoZXNlIHBvbHltb3JwaGljIGNsYXNzZXMuCisgICAg
JGltcGxJbmNsdWRlc3siRE9NQmxvYkludGVybmFsLmgifSA9IDE7CiAgICAgJGltcGxJbmNsdWRl
c3siRE9NQ1NTUnVsZUludGVybmFsLmgifSA9IDE7CiAgICAgJGltcGxJbmNsdWRlc3siRE9NQ1NT
VmFsdWVJbnRlcm5hbC5oIn0gPSAxOwogICAgICRpbXBsSW5jbHVkZXN7IkRPTUV2ZW50SW50ZXJu
YWwuaCJ9ID0gMTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
CmluZGV4IDcxYzY1MGUuLjVhZmYyYjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbQpAQCAtMTg0OSw2ICsxODQ5LDcgQEAgc3ViIElzUmVmUHRyVHlwZQog
ewogICAgIG15ICR0eXBlID0gc2hpZnQ7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgIkF0dHIi
OworICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJCbG9iIjsKICAgICByZXR1cm4gMSBpZiAkdHlw
ZSBlcSAiQ2FudmFzQm9vbGVhbkFycmF5IjsKICAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAiQ2Fu
dmFzR3JhZGllbnQiOwogICAgIHJldHVybiAxIGlmICR0eXBlIGVxICJDYW52YXNPYmplY3QiOwpA
QCAtMTk2OSw2ICsxOTcwLDcgQEAgc3ViIEdldE5hdGl2ZVR5cGUKICAgICByZXR1cm4gImludCIg
aWYgJHR5cGUgZXEgInNob3J0IiBvciAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOwogICAgIHJl
dHVybiAidW5zaWduZWQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsKICAgICByZXR1cm4g
ImludCIgaWYgJHR5cGUgZXEgImxvbmciOworICAgIHJldHVybiAibG9uZyBsb25nIiBpZiAkdHlw
ZSBlcSAibG9uZyBsb25nIjsKICAgICByZXR1cm4gInVuc2lnbmVkIGxvbmcgbG9uZyIgaWYgJHR5
cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CiAgICAgcmV0dXJuICJib29sIiBpZiAkdHlwZSBl
cSAiYm9vbGVhbiI7CiAgICAgcmV0dXJuICJTdHJpbmciIGlmICR0eXBlIGVxICJET01TdHJpbmci
OwpAQCAtMjA2Miw2ICsyMDY0LDggQEAgbXkgJXR5cGVDYW5GYWlsQ29udmVyc2lvbiA9ICgKICAg
ICAibG9uZyIgPT4gMCwKICAgICAidW5zaWduZWQgbG9uZyIgPT4gMCwKICAgICAidW5zaWduZWQg
c2hvcnQiID0+IDAsCisgICAgImxvbmcgbG9uZyIgPT4gMCwKKyAgICAidW5zaWduZWQgbG9uZyBs
b25nIiA9PiAwCiApOwogCiAKQEAgLTIxMTgsNiArMjEyMiw3IEBAIHN1YiBKU1ZhbHVlVG9OYXRp
dmUKICAgICByZXR1cm4gIiR2YWx1ZS0+TnVtYmVyVmFsdWUoKSIgaWYgJHR5cGUgZXEgIlNWR051
bWJlciI7CiAKICAgICByZXR1cm4gInRvSW50MzIoJHZhbHVlJHttYXliZU9rUGFyYW19KSIgaWYg
JHR5cGUgZXEgInVuc2lnbmVkIGxvbmciIG9yICR0eXBlIGVxICJ1bnNpZ25lZCBzaG9ydCIgb3Ig
JHR5cGUgZXEgImxvbmciOworICAgIHJldHVybiAidG9JbnQ2NCgkdmFsdWUpIiBpZiAkdHlwZSBl
cSAidW5zaWduZWQgbG9uZyBsb25nIiBvciAkdHlwZSBlcSAibG9uZyBsb25nIjsKICAgICByZXR1
cm4gInN0YXRpY19jYXN0PFJhbmdlOjpDb21wYXJlSG93PigkdmFsdWUtPkludDMyVmFsdWUoKSki
IGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKICAgICByZXR1cm4gInN0YXRpY19jYXN0PFNWR1Bh
aW50OjpTVkdQYWludFR5cGU+KCR2YWx1ZS0+VG9JbnQzMigpLT5JbnQzMlZhbHVlKCkpIiBpZiAk
dHlwZSBlcSAiU1ZHUGFpbnRUeXBlIjsKICAgICByZXR1cm4gInRvV2ViQ29yZURhdGUoJHZhbHVl
KSIgaWYgJHR5cGUgZXEgIkRhdGUiOwpAQCAtMjI1Myw2ICsyMjU4LDggQEAgbXkgJW5vbl93cmFw
cGVyX3R5cGVzID0gKAogICAgICdsb25nJyA9PiAxLAogICAgICd1bnNpZ25lZCBsb25nJyA9PiAx
LAogICAgICdib29sZWFuJyA9PiAxLAorICAgICdsb25nIGxvbmcnID0+IDEsCisgICAgJ3Vuc2ln
bmVkIGxvbmcgbG9uZycgPT4gMSwKICAgICAnRE9NU3RyaW5nJyA9PiAxLAogICAgICdDb21wYXJl
SG93JyA9PiAxLAogICAgICdTVkdBbmdsZScgPT4gMSwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvRE9NT2JqZWN0c0luY2x1ZGUuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NT2Jq
ZWN0c0luY2x1ZGUuaAppbmRleCA5OTQxYWViLi44ZmVjM2NhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L0RPTU9iamVjdHNJbmNsdWRlLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92
OC9ET01PYmplY3RzSW5jbHVkZS5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiQXR0ci5o
IgogI2luY2x1ZGUgIkJhckluZm8uaCIKICNpbmNsdWRlICJCZWZvcmVMb2FkRXZlbnQuaCIKKyNp
bmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiV2ViR0xBY3RpdmVJbmZvLmgiCiAjaW5jbHVkZSAi
V2ViR0xBcnJheS5oIgogI2luY2x1ZGUgIldlYkdMQXJyYXlCdWZmZXIuaCIKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvdjgvRGVyaXZlZFNvdXJjZXNBbGxJbk9uZS5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L0Rlcml2ZWRTb3VyY2VzQWxsSW5PbmUuY3BwCmluZGV4IGJkMmJiN2IuLmJm
YTQ4NTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVyaXZlZFNvdXJjZXNBbGxJ
bk9uZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9EZXJpdmVkU291cmNlc0FsbEluT25l
LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgImJpbmRpbmdzL1Y4QXR0ci5jcHAiCiAj
aW5jbHVkZSAiYmluZGluZ3MvVjhCYXJJbmZvLmNwcCIKICNpbmNsdWRlICJiaW5kaW5ncy9WOEJl
Zm9yZUxvYWRFdmVudC5jcHAiCisjaW5jbHVkZSAiYmluZGluZ3MvVjhCbG9iLmNwcCIKICNpbmNs
dWRlICJiaW5kaW5ncy9WOFdlYkdMQWN0aXZlSW5mby5jcHAiCiAjaW5jbHVkZSAiYmluZGluZ3Mv
VjhXZWJHTEFycmF5LmNwcCIKICNpbmNsdWRlICJiaW5kaW5ncy9WOFdlYkdMQXJyYXlCdWZmZXIu
Y3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaCBiL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKaW5kZXggYWE0YTMyNi4uZTNmMzk2NiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4QmluZGluZy5oCkBAIC0xNzMsNiArMTczLDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZS0+TnVtYmVyVmFsdWUo
KSk7CiAgICAgfQogCisgICAgaW5saW5lIGludDY0IHRvSW50NjQodjg6OkxvY2FsPHY4OjpWYWx1
ZT4gdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50NjQ+KHZhbHVl
LT5JbnRlZ2VyVmFsdWUoKSk7CisgICAgfQorCiAgICAgLy8gRklYTUU6IERyb3AgdGhpcyBpbiBm
YXZvciBvZiB0aGUgdHlwZSBzcGVjaWZpYyB2OFZhbHVlVG9XZWJDb3JlU3RyaW5nIHdoZW4gd2Ug
cmV3b3JrIHRoZSBjb2RlIGdlbmVyYXRpb24uCiAgICAgaW5saW5lIFN0cmluZyB0b1dlYkNvcmVT
dHJpbmcodjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iamVjdCkKICAgICB7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SW5kZXguY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOElu
ZGV4LmNwcAppbmRleCBhNWIyZTZkLi4wMGU4NGRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4SW5kZXguY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhJbmRleC5jcHAK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJWOEF0dHIuaCIKICNpbmNsdWRlICJWOEJhcklu
Zm8uaCIKICNpbmNsdWRlICJWOEJlZm9yZUxvYWRFdmVudC5oIgorI2luY2x1ZGUgIlY4QmxvYi5o
IgogI2luY2x1ZGUgIlY4V2ViR0xBY3RpdmVJbmZvLmgiCiAjaW5jbHVkZSAiVjhDYW52YXNSZW5k
ZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCIK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhJbmRleC5oIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOEluZGV4LmgKaW5kZXggMmNiM2MyOS4uZWQ4NzhjMiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEluZGV4LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOElu
ZGV4LmgKQEAgLTMyNSw2ICszMjUsNyBAQCB0eXBlZGVmIHY4OjpQZXJzaXN0ZW50PHY4OjpGdW5j
dGlvblRlbXBsYXRlPiAoKkZ1bmN0aW9uVGVtcGxhdGVGYWN0b3J5KSgpOwogI2RlZmluZSBET01f
T0JKRUNUX1RZUEVTXzEoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgXAogICAgIFYoQkFSSU5GTywgQmFySW5mbykgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgXAogICAgIFYoQkVGT1JFTE9BREVWRU5ULCBCZWZvcmVMb2Fk
RXZlbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAgIFYoQkxPQiwgQmxv
YikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
XAogICAgIFYoQ0FOVkFTR1JBRElFTlQsIENhbnZhc0dyYWRpZW50KSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAogICAgIFYoQ0FOVkFTUEFUVEVSTiwgQ2FudmFzUGF0dGVybikg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIFYoQ0FOVkFTUkVOREVS
SU5HQ09OVEVYVCwgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCkgICAgICAgICAgICAgICAgICAgXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1
c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3Vz
dG9tLmNwcAppbmRleCA5N2VjZDg2Li4zY2RhNmFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtMzMsOSArMzMs
OSBAQAogCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNs
dWRlICJWOEJsb2IuaCIKICNpbmNsdWRlICJWOEN1c3RvbUJpbmRpbmcuaCIKICNpbmNsdWRlICJW
OERvY3VtZW50LmgiCi0jaW5jbHVkZSAiVjhGaWxlLmgiCiAjaW5jbHVkZSAiVjhIVE1MRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhVdGlsaXRpZXMuaCIKQEAg
LTE0OSwxMSArMTQ5LDExIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhNTEh0dHBSZXF1ZXN0
OjpzZW5kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAgICAgICAgICAgIERv
Y3VtZW50KiBkb2N1bWVudCA9IFY4RE9NV3JhcHBlcjo6Y29udmVydERPTVdyYXBwZXJUb05vZGU8
RG9jdW1lbnQ+KG9iamVjdCk7CiAgICAgICAgICAgICBBU1NFUlQoZG9jdW1lbnQpOwogICAgICAg
ICAgICAgeG1sSHR0cFJlcXVlc3QtPnNlbmQoZG9jdW1lbnQsIGVjKTsKLSAgICAgICAgfSBlbHNl
IGlmIChWOEZpbGU6Okhhc0luc3RhbmNlKGFyZykpIHsKKyAgICAgICAgfSBlbHNlIGlmIChWOEJs
b2I6Okhhc0luc3RhbmNlKGFyZykpIHsKICAgICAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gb2JqZWN0ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmcpOwotICAgICAgICAg
ICAgRmlsZSogZmlsZSA9IFY4RE9NV3JhcHBlcjo6Y29udmVydERPTVdyYXBwZXJUb05hdGl2ZTxG
aWxlPihvYmplY3QpOwotICAgICAgICAgICAgQVNTRVJUKGZpbGUpOwotICAgICAgICAgICAgeG1s
SHR0cFJlcXVlc3QtPnNlbmQoZmlsZSwgZWMpOworICAgICAgICAgICAgQmxvYiogYmxvYiA9IFY4
RE9NV3JhcHBlcjo6Y29udmVydERPTVdyYXBwZXJUb05hdGl2ZTxCbG9iPihvYmplY3QpOworICAg
ICAgICAgICAgQVNTRVJUKGJsb2IpOworICAgICAgICAgICAgeG1sSHR0cFJlcXVlc3QtPnNlbmQo
YmxvYiwgZWMpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHhtbEh0dHBSZXF1ZXN0LT5z
ZW5kKHRvV2ViQ29yZVN0cmluZ1dpdGhOdWxsQ2hlY2soYXJnKSwgZWMpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaHRtbC9CbG9iLmNwcCBiL1dlYkNvcmUvaHRtbC9CbG9iLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNWE2ZjlhCi0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9odG1sL0Jsb2IuY3BwCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQmxvYi5oIgorCisjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK0Jsb2I6OkJsb2IoY29uc3QgU3RyaW5nJiBwYXRoKQorICAgIDog
bV9wYXRoKHBhdGgpCisgICAgLCBtX3N0YXJ0KDApCisgICAgLCBtX2xlbmd0aCgwKQoreworICAg
IC8vIEZJWE1FOiBKYXZhU2NyaXB0IGNhbm5vdCByZXByZXNlbnQgc2l6ZXMgYXMgbGFyZ2UgYXMg
dW5zaWduZWQgbG9uZyBsb25nLCB3ZSBuZWVkIHRvCisgICAgLy8gY29tZSB1cCB3aXRoIGFuIGV4
Y2VwdGlvbiB0byB0aHJvdyBpZiBmaWxlIHNpemUgaXMgbm90IHJlcHJlc2V0YWJsZS4KKyAgICBs
b25nIGxvbmcgc2l6ZTsKKyAgICBpZiAoZ2V0RmlsZVNpemUobV9wYXRoLCBzaXplKSkgeworICAg
ICAgICBtX3N0YXJ0ID0gMDsKKyAgICAgICAgbV9sZW5ndGggPSBzaXplOworICAgIH0KK30KKwor
QmxvYjo6QmxvYihjb25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25n
IGxlbmd0aCkKKyAgICA6IG1fcGF0aChwYXRoKQorICAgICwgbV9zdGFydChzdGFydCkKKyAgICAs
IG1fbGVuZ3RoKGxlbmd0aCkKK3sKK30KKworUGFzc1JlZlB0cjxCbG9iPiBCbG9iOjpzbGljZShs
b25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uZyBsZW5ndGgpIGNvbnN0Cit7CisgICAgLy8gQ2xhbXAg
dGhlIHJhbmdlIGlmIGl0IGV4Y2VlZHMgdGhlIGZpbGUgbGltaXQuCisgICAgaWYgKHN0YXJ0IDwg
MCkKKyAgICAgICAgc3RhcnQgPSAwOworICAgIGlmIChsZW5ndGggPCAwKQorICAgICAgICBsZW5n
dGggPSAwOyAgICAKKworICAgIGlmIChzdGFydCA+IG1fbGVuZ3RoKSB7CisgICAgICAgIHN0YXJ0
ID0gMDsKKyAgICAgICAgbGVuZ3RoID0gMDsKKyAgICB9IGVsc2UgaWYgKHN0YXJ0ICsgbGVuZ3Ro
ID4gbV9sZW5ndGgpCisgICAgICAgIGxlbmd0aCA9IG1fbGVuZ3RoIC0gc3RhcnQ7CisKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEJsb2IobV9wYXRoLCBtX3N0YXJ0ICsgc3RhcnQsIGxlbmd0aCkp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
QmxvYi5oIGIvV2ViQ29yZS9odG1sL0Jsb2IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi43ZWJkNzE5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0Jsb2IuaApA
QCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBCbG9iX2gKKyNkZWZpbmUgQmxvYl9oCisKKyNpbmNsdWRl
ICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQmxvYiA6IHB1YmxpYyBSZWZDb3VudGVkPEJsb2I+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxCbG9iPiBjcmVhdGUoY29uc3QgU3RyaW5n
JiBwYXRoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCbG9iKHBhdGgpKTsK
KyAgICB9CisKKyAgICB2aXJ0dWFsIH5CbG9iKCkgeyB9CisKKyAgICBQYXNzUmVmUHRyPEJsb2I+
IHNsaWNlKGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGxlbmd0aCkgY29uc3Q7CisKKyAgICB1
bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisKKyAg
ICBjb25zdCBTdHJpbmcmIHBhdGgoKSBjb25zdCB7IHJldHVybiBtX3BhdGg7IH0KKyAgICBsb25n
IGxvbmcgc3RhcnQoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0OyB9CisgICAgbG9uZyBsb25nIGxl
bmd0aCgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoOyB9CisKK3Byb3RlY3RlZDoKKyAgICBCbG9i
KGNvbnN0IFN0cmluZyYgcGF0aCk7CisKK3ByaXZhdGU6CisgICAgQmxvYihjb25zdCBTdHJpbmcm
IHBhdGgsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGxlbmd0aCk7CisKKyAgICBTdHJpbmcg
bV9wYXRoOworICAgIGxvbmcgbG9uZyBtX3N0YXJ0OworICAgIGxvbmcgbG9uZyBtX2xlbmd0aDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEJsb2JfaApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0Jsb2IuaWRsIGIvV2ViQ29yZS9odG1sL0Jsb2IuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYyZjAxYzIKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJDb3JlL2h0bWwvQmxvYi5pZGwKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsKKwor
ICAgIGludGVyZmFjZSBbCisgICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3IKKyAgICBdIEJsb2Ig
eworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHNpemU7Cisg
ICAgICAgIEJsb2Igc2xpY2UoaW4gbG9uZyBsb25nIHN0YXJ0LCBpbiBsb25nIGxvbmcgbGVuZ3Ro
KTsKKyAgICB9OworCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRmlsZS5jcHAgYi9XZWJD
b3JlL2h0bWwvRmlsZS5jcHAKaW5kZXggZGJiYmZhNi4uN2E3ZDU4NSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0ZpbGUuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9GaWxlLmNwcApAQCAtMjcsMjUg
KzI3LDE4IEBACiAjaW5jbHVkZSAiRmlsZS5oIgogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgot
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRmls
ZTo6RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCi0gICAgOiBtX3BhdGgocGF0aCkKLSAgICAsIG1f
ZmlsZU5hbWUocGF0aEdldEZpbGVOYW1lKHBhdGgpKQorICAgIDogQmxvYihwYXRoKQorICAgICwg
bV9uYW1lKHBhdGhHZXRGaWxlTmFtZShwYXRoKSkKIHsKKyAgICAvLyBGSVhNRTogY3JlYXRlIGEg
VVVJRCBVUk4gZm9yIGZpbGUgcmVmZXJlbmNlLgogfQogCi11bnNpZ25lZCBsb25nIGxvbmcgRmls
ZTo6ZmlsZVNpemUoKQorRmlsZTo6fkZpbGUoKQogewotICAgIC8vIEZJWE1FOiBTaG91bGQgd2Ug
Y2FjaGUgdGhpcz8KLSAgICAvLyBGSVhNRTogSmF2YVNjcmlwdCBjYW5ub3QgcmVwcmVzZW50IHNp
emVzIGFzIGxhcmdlIGFzIHVuc2lnbmVkIGxvbmcgbG9uZywgd2UgbmVlZCB0bwotICAgIC8vIGNv
bWUgdXAgd2l0aCBhbiBleGNlcHRpb24gdG8gdGhyb3cgaWYgZmlsZSBzaXplIGlzIG5vdCByZXBy
ZXNldGFibGUuCi0gICAgbG9uZyBsb25nIHNpemU7Ci0gICAgaWYgKCFnZXRGaWxlU2l6ZShtX3Bh
dGgsIHNpemUpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gc2l6ZTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGUuaCBiL1dl
YkNvcmUvaHRtbC9GaWxlLmgKaW5kZXggN2Q3OWFhNS4uMmRkMmNlNyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0ZpbGUuaAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZS5oCkBAIC0yNiwzMCArMjYs
MzUgQEAKICNpZm5kZWYgRmlsZV9oCiAjZGVmaW5lIEZpbGVfaAogCi0jaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKyNpbmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LSAgICBjbGFzcyBGaWxlIDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZT4gewotICAgIHB1YmxpYzoK
LSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8RmlsZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0
aCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxlKHBhdGgp
KTsKLSAgICAgICAgfQotCi0gICAgICAgIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUoKSBjb25zdCB7
IHJldHVybiBtX2ZpbGVOYW1lOyB9Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBmaWxlU2l6
ZSgpOwotCi0gICAgICAgIGNvbnN0IFN0cmluZyYgcGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0
aDsgfQotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpOwot
Ci0gICAgICAgIFN0cmluZyBtX3BhdGg7Ci0gICAgICAgIFN0cmluZyBtX2ZpbGVOYW1lOwotICAg
IH07CitjbGFzcyBGaWxlIDogcHVibGljIEJsb2IgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEZpbGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IEZpbGUocGF0aCkpOworICAgIH0KKworICAgIGNvbnN0IFN0cmlu
ZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgIGNvbnN0IFN0cmluZyYgdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorICAgIGNvbnN0IFN0cmluZyYgdXJuKCkgY29u
c3QgeyByZXR1cm4gbV91cm47IH0KKworICAgIC8vIEZJWE1FOiBvYnNvbGV0ZSBhdHRyaWJ1dGVz
LiBUbyBiZSByZW1vdmVkLgorICAgIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUoKSBjb25zdCB7IHJl
dHVybiBtX25hbWU7IH0KKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgZmlsZVNpemUoKSBjb25zdCB7
IHJldHVybiBzaXplKCk7IH0KKworcHJpdmF0ZToKKyAgICBGaWxlKGNvbnN0IFN0cmluZyYgcGF0
aCk7CisgICAgdmlydHVhbCB+RmlsZSgpOworCisgICAgU3RyaW5nIG1fbmFtZTsKKyAgICBTdHJp
bmcgbV90eXBlOworICAgIFN0cmluZyBtX3VybjsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGUuaWRsIGIvV2ViQ29yZS9odG1sL0Zp
bGUuaWRsCmluZGV4IGFkYTlmMGMuLjRmNmQwZjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9G
aWxlLmlkbAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZS5pZGwKQEAgLTI2LDggKzI2LDE1IEBACiBt
b2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZhY2UgWwotICAgICAgICBHZW5lcmF0ZUNvbnN0cnVj
dG9yCi0gICAgXSBGaWxlIHsKKyAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvciwKKyAgICAgICAg
R2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCisgICAgICAgIEdlbmVyYXRlVG9KUworICAgIF0gRmls
ZSA6IEJsb2IgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyB1cm47CisKKyAgICAgICAgLy8gRklYTUU6IG9ic29sZXRl
IGF0dHJpYnV0ZXMuIFRvIGJlIHJlbW92ZWQuCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgZmlsZU5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGxvbmcgZmlsZVNpemU7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcCBiL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAppbmRleCBmMWE3
OTY5Li4zMjgxOGRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
KysrIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKIAorI2luY2x1
ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJDYWNoZS5oIgogI2luY2x1ZGUgIkNTdHJpbmcuaCIKICNp
bmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKQEAgLTMxLDcgKzMyLDYgQEAKICNp
bmNsdWRlICJFdmVudEV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1ZGUgIkhUVFBQ
YXJzZXJzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oIgogI2luY2x1ZGUg
IlJlc291cmNlRXJyb3IuaCIKQEAgLTQzNSw3ICs0MzUsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0
OjpzZW5kKGNvbnN0IFN0cmluZyYgYm9keSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgY3JlYXRl
UmVxdWVzdChlYyk7CiB9CiAKLXZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNlbmQoRmlsZSogYm9keSwg
RXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZW5kKEJsb2IqIGJvZHks
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghaW5pdFNlbmQoZWMpKQogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oIGIvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuaAppbmRleCA2OTAxOWE1Li4yY2VhNWM2IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBiL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmgKQEAgLTMzLDggKzMzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBCbG9iOwogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBGaWxlOwogY2xhc3MgUmVzb3VyY2VSZXF1
ZXN0OwogY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsKIGNsYXNzIFRocmVhZGFibGVMb2FkZXI7
CkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNlbmQoRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZvaWQgc2VuZChEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNl
bmQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2VuZChGaWxlKiwg
RXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2VuZChCbG9iKiwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIHZvaWQgYWJvcnQoKTsKICAgICB2b2lkIHNldFJlcXVlc3RIZWFkZXIoY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJik7CiAgICAg
dm9pZCBvdmVycmlkZU1pbWVUeXBlKGNvbnN0IFN0cmluZyYgb3ZlcnJpZGUpOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1MDAx
MzM5Li4xNGZmZjI1IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJL
aXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDA5LTEyLTIzICBKaWFuIExpICA8
amlhbmxpQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZSBhbmQgQmxvYiBpbnRlcmZhY2VzIGFzIGRlZmlu
ZWQgaW4gRmlsZSBBUEkgc3BlYy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMyOTEyCisKKyAgICAgICAgKiBNaWdyYXRlSGVhZGVycy5tYWtlOgorCiAy
MDA5LTEyLTIyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBNYXJrIFJvd2UuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL01pZ3JhdGVIZWFkZXJz
Lm1ha2UgYi9XZWJLaXQvbWFjL01pZ3JhdGVIZWFkZXJzLm1ha2UKaW5kZXggMDcyZGE2NS4uN2Qw
MWM5OSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9NaWdyYXRlSGVhZGVycy5tYWtlCisrKyBiL1dl
YktpdC9tYWMvTWlncmF0ZUhlYWRlcnMubWFrZQpAQCAtMzYsNiArMzYsOCBAQCBhbGwgOiBcCiAg
ICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTS5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJ
UikvRE9NQWJzdHJhY3RWaWV3LmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01BdHRy
LmggXAorICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NQmxvYi5oIFwKKyAgICAkKElOVEVS
TkFMX0hFQURFUlNfRElSKS9ET01CbG9iSW50ZXJuYWwuaCBcCiAgICAgJChQVUJMSUNfSEVBREVS
U19ESVIpL0RPTUNEQVRBU2VjdGlvbi5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9N
Q1NTLmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01DU1NDaGFyc2V0UnVsZS5oIFwK
</data>
<flag name="review"
          id="27644"
          type_id="1"
          status="-"
          setter="dimich"
    />
    <flag name="commit-queue"
          id="27645"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46616</attachid>
            <date>2010-01-14 15:51:49 -0800</date>
            <delta_ts>2010-01-14 17:26:08 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>32912_4</filename>
            <type>text/plain</type>
            <size>44833</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NTUwMjYzLi4zMjQ0OWJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDEt
MTQgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBGaWxlIGFuZCBCbG9iIGludGVy
ZmFjZXMgYXMgZGVmaW5lZCBpbiBGaWxlIEFQSSBzcGVjLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI5MTIKKworICAgICAgICBVcGRhdGVkIHRoZSBy
ZXN1bHQgb2YgYSBsYXlvdXQgdGVzdCBiZWluZyBhZmZlY3RlZC4KKworICAgICAgICAqIGZhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisKIDIwMTAtMDEtMTQg
IEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBhIHR5cG8gaW4g
ZWRpdGluZy9zZWxlY3Rpb24vaW5hY3RpdmUtc2VsZWN0aW9uLmh0bWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0CmluZGV4IGUyMjY3YjYuLmM3NDkyODcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtODk4
LDYgKzg5OCw3IEBAIHdpbmRvdy5FdmVudFNvdXJjZS5wcm90b3R5cGUuZGlzcGF0Y2hFdmVudCBb
ZnVuY3Rpb25dCiB3aW5kb3cuRXZlbnRTb3VyY2UucHJvdG90eXBlLnJlbW92ZUV2ZW50TGlzdGVu
ZXIgW2Z1bmN0aW9uXQogd2luZG93LkZpbGUgW29iamVjdCBGaWxlQ29uc3RydWN0b3JdCiB3aW5k
b3cuRmlsZS5wcm90b3R5cGUgW29iamVjdCBGaWxlUHJvdG90eXBlXQord2luZG93LkZpbGUucHJv
dG90eXBlLnNsaWNlIFtmdW5jdGlvbl0KIHdpbmRvdy5GaWxlTGlzdCBbb2JqZWN0IEZpbGVMaXN0
Q29uc3RydWN0b3JdCiB3aW5kb3cuRmlsZUxpc3QucHJvdG90eXBlIFtvYmplY3QgRmlsZUxpc3RQ
cm90b3R5cGVdCiB3aW5kb3cuRmlsZUxpc3QucHJvdG90eXBlLml0ZW0gW2Z1bmN0aW9uXQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsgYi9XZWJDb3Jl
L0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tawppbmRleCBjNzQ3MTNhLi4xOTY5MGJiIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5taworKysgYi9X
ZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tawpAQCAtMTQ5LDYgKzE0OSw3IEBA
ICQocGF0c3Vic3QgJS5oLCUuY3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvZG9tLyUuY3Bw
IDogJChpbnRlcm1lZGlhdGVzKS9kb20vCiAKICMgSFRNTAogR0VOIDo9IFwKKyAgICAkKGludGVy
bWVkaWF0ZXMpL2h0bWwvSlNCbG9iLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0Rh
dGFHcmlkQ29sdW1uLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvaHRtbC9KU0RhdGFHcmlkQ29s
dW1uTGlzdC5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2h0bWwvSlNGaWxlLmggXApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tayBiL1dlYkNvcmUvQW5k
cm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKaW5kZXggN2I2ODdlOC4uYTNhOTY3MyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5taworKysgYi9XZWJDb3Jl
L0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCkBAIC0xMzIsNiArMTMyLDcgQEAgJChwYXRz
dWJzdCAlLmgsJS5jcHAsJChHRU4pKTogJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy8lLmNwcCA6
ICQoaW50ZXJtZWRpYXRlcykKIAogIyBIVE1MCiBHRU4gOj0gXAorICAgICQoaW50ZXJtZWRpYXRl
cykvYmluZGluZ3MvVjhCbG9iLmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhE
YXRhR3JpZENvbHVtbi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4RGF0YUdy
aWRDb2x1bW5MaXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvVjhGaWxlLmgg
XApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLm1rIGIvV2ViQ29yZS9BbmRyb2lkLm1rCmlu
ZGV4IGJiODc2MDMuLjFhYmMzMDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5taworKysg
Yi9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTIzNCw2ICsyMzQsNyBAQCBMT0NBTF9TUkNfRklMRVMg
Oj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlcCiAJaGlzdG9yeS9hbmRyb2lkL0hpc3RvcnlJdGVt
QW5kcm9pZC5jcHAgXAogCVwKKwlodG1sL0Jsb2IuY3BwIFwKIAlodG1sL0NvbGxlY3Rpb25DYWNo
ZS5jcHAgXAogCWh0bWwvRmlsZS5jcHAgXAogCWh0bWwvRmlsZUxpc3QuY3BwIFwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjdjYWM1ZC4u
NWY1Yzk0YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw2MSBAQAorMjAxMC0wMS0xNCAgSmlhbiBMaSAgPGppYW5saUBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW1wbGVtZW50IEZpbGUgYW5kIEJsb2IgaW50ZXJmYWNlcyBhcyBkZWZpbmVkIGluIEZpbGUg
QVBJIHNwZWMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMjkxMgorCisgICAgICAgICogQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rOgorICAg
ICAgICAqIEFuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rOgorICAgICAgICAqIEFuZHJvaWQu
bWs6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwOgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJDb3JlU291cmNlcy5ia2w6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBS
ZXF1ZXN0OjpzZW5kKToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUwuaDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0RPTU9iamVjdHNJbmNsdWRl
Lmg6CisgICAgICAgICogYmluZGluZ3MvdjgvRGVyaXZlZFNvdXJjZXNBbGxJbk9uZS5jcHA6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvVjhCaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjp0b0lu
dDY0KToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOEluZGV4LmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9WOEluZGV4Lmg6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0
cFJlcXVlc3RDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhYTUxIdHRwUmVxdWVzdDo6
c2VuZENhbGxiYWNrKToKKyAgICAgICAgKiBodG1sL0Jsb2IuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkJsb2I6OkJsb2IpOgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6c2xpY2UpOgor
ICAgICAgICAqIGh0bWwvQmxvYi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpCbG9iOjp+QmxvYik6CisgICAgICAgIChXZWJDb3Jl
OjpCbG9iOjpzaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6OnBhdGgpOgorICAgICAgICAo
V2ViQ29yZTo6QmxvYjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6bGVuZ3RoKToK
KyAgICAgICAgKiBodG1sL0Jsb2IuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBodG1sL0ZpbGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6RmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
Ojp+RmlsZSk6CisgICAgICAgICogaHRtbC9GaWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
OjpuYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OnR5cGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZTo6dXJuKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OmZpbGVOYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGU6OmZpbGVTaXplKToKKyAgICAgICAgKiBodG1sL0ZpbGUuaWRsOgor
ICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxI
dHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0Lmg6CisKIDIw
MTAtMDEtMTQgIE1hcnRpbiBSb2JpbnNvbiAgPG1hcnRpbi5qYW1lcy5yb2JpbnNvbkBnbWFpbC5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5jcHAgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCBh
ODhhZGVmLi4xN2Q4YWQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAor
KysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1
ZGUgIkpTQXR0ci5jcHAiCiAjaW5jbHVkZSAiSlNCYXJJbmZvLmNwcCIKICNpbmNsdWRlICJKU0Jl
Zm9yZUxvYWRFdmVudC5jcHAiCisjaW5jbHVkZSAiSlNCbG9iLmNwcCIKICNpbmNsdWRlICJKU0Nh
bnZhc0dyYWRpZW50LmNwcCIKICNpbmNsdWRlICJKU0NhbnZhc1BhdHRlcm4uY3BwIgogI2luY2x1
ZGUgIkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZDhk
Yzk3Ni4uMjBmZmRlOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTMsNiArNTMsNyBAQCBET01fQ0xB
U1NFUyA9IFwKICAgICBBdHRyIFwKICAgICBCYXJJbmZvIFwKICAgICBCZWZvcmVMb2FkRXZlbnQg
XAorICAgIEJsb2IgXAogICAgIENEQVRBU2VjdGlvbiBcCiAgICAgQ1NTQ2hhcnNldFJ1bGUgXAog
ICAgIENTU0ZvbnRGYWNlUnVsZSBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
IGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAwNTkwMjE1Li4xMjlhOTgwIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0K
QEAgLTE2MSw2ICsxNjEsNyBAQCBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvZG9tL1dlYktp
dEFuaW1hdGlvbkV2ZW50LmlkbCBcCiAJV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50
LmlkbCBcCiAJV2ViQ29yZS9kb20vV2hlZWxFdmVudC5pZGwgXAorCVdlYkNvcmUvaHRtbC9CbG9i
LmlkbCBcCiAJV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFycmF5LmlkbCBcCiAJV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTEFycmF5QnVmZmVyLmlkbCBcCiAJV2ViQ29yZS9odG1sL2NhbnZhcy9X
ZWJHTEJ5dGVBcnJheS5pZGwgXApAQCAtOTQ5LDYgKzk1MCw4IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmggXAogCVdlYkNvcmUvaGlzdG9yeS9Q
YWdlQ2FjaGUuY3BwIFwKIAlXZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmggXAorCVdlYkNvcmUv
aHRtbC9CbG9iLmNwcCBcCisJV2ViQ29yZS9odG1sL0Jsb2IuaCBcCiAJV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNHcmFkaWVudC5jcHAgXAogCVdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzR3Jh
ZGllbnQuaCBcCiAJV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmNwcCBcCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDNiYThkY2QuLjk3OTNjZTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC03OCw2ICs3OCw3IEBACiAgICAgICAgICAgICAnZG9t
L1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1dlYktpdFRyYW5z
aXRpb25FdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9XaGVlbEV2ZW50LmlkbCcsCisgICAg
ICAgICAgICAnaHRtbC9CbG9iLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xB
Y3RpdmVJbmZvLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xBcnJheS5pZGwn
LAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQXJyYXlCdWZmZXIuaWRsJywKQEAgLTEy
OTUsNiArMTI5Niw4IEBACiAgICAgICAgICAgICAnaGlzdG9yeS9IaXN0b3J5SXRlbS5oJywKICAg
ICAgICAgICAgICdoaXN0b3J5L1BhZ2VDYWNoZS5jcHAnLAogICAgICAgICAgICAgJ2hpc3Rvcnkv
UGFnZUNhY2hlLmgnLAorICAgICAgICAgICAgJ2h0bWwvQmxvYi5jcHAnLAorICAgICAgICAgICAg
J2h0bWwvQmxvYi5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEFycmF5LmNwcCcs
CiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xBcnJheS5oJywKICAgICAgICAgICAgICdo
dG1sL2NhbnZhcy9XZWJHTEFycmF5QnVmZmVyLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dl
YkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAwMzc0ODkxLi4zMWM5Njc0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8K
QEAgLTU0OSw2ICs1NDksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBoaXN0b3J5L0hpc3RvcnlJdGVt
LmNwcCBcCiAgICAgaGlzdG9yeS9xdC9IaXN0b3J5SXRlbVF0LmNwcCBcCiAgICAgaGlzdG9yeS9Q
YWdlQ2FjaGUuY3BwIFwKKyAgICBodG1sL0Jsb2IuY3BwIFwKICAgICBodG1sL2NhbnZhcy9DYW52
YXNHcmFkaWVudC5jcHAgXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uY3BwIFwKICAg
ICBodG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmNwcCBcCkBAIC0xMjMzLDYgKzEyMzQsNyBA
QCBIRUFERVJTICs9IFwKICAgICBoaXN0b3J5L0NhY2hlZFBhZ2UuaCBcCiAgICAgaGlzdG9yeS9I
aXN0b3J5SXRlbS5oIFwKICAgICBoaXN0b3J5L1BhZ2VDYWNoZS5oIFwKKyAgICBodG1sL0Jsb2Iu
aCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaCBcCiAgICAgaHRtbC9jYW52YXMv
Q2FudmFzUGF0dGVybi5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmggXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMThhYWM0Yy4uNDkwNmM1MiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03MjEsNiArNzIxLDYyIEBA
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2Vi
S2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNCbG9iLmNw
cCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnfFdp
bjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9v
bA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJlbGVh
c2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJ
CTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0i
RGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJ
CQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0K
KwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0i
dHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9v
bCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmln
dXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1ZGVk
RnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NM
Q29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFt
ZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRw
dXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Jsb2IuaCINCisJCQkJ
Pg0KKwkJCTwvRmlsZT4NCisgICAgICAgICAgICA8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9IiQo
V2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNDYW52
YXNHcmFkaWVudC5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAtMjk2
NzcsNiArMjk3MzMsMTQgQEAKIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCTwvRmlsZT4N
CiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQmxvYi5jcHAiDQorCQkJCT4N
CisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEJsb2Iu
aCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGh0bWxcQ29sbGVjdGlvbkNhY2hlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxNGM0MjU3Li44NTY0ZGQyIDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjAwLDYgKzYw
MCwxMyBAQAogCQkyOUE4MTI0QjBGQkI5Q0E5MDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZU1hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgxMjQ3
MEZCQjlDQTkwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlTWFjLm1tICovOyB9OwogCQkyRDkwNjYw
NjBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ5MDY2MDQwQkUxNDFENDAwOTU2OTk4IC8qIExh
eW91dFN0YXRlLmNwcCAqLzsgfTsKIAkJMkQ5MDY2MDcwQkUxNDFENDAwOTU2OTk4IC8qIExheW91
dFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDkwNjYwNTBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyRTJEOTlDRDEwRTJCQkRBMDA0OTYz
MzcgLyogSlNCbG9iLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFMkQ5OUNCMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuY3BwICovOyB9OworCQky
RTJEOTlDRTEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlDQzEwRTJCQkRBMDA0OTYzMzcgLyogSlNC
bG9iLmggKi87IH07CisJCTJFMkQ5OUU3MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlFNTEwRTJC
QzFDMDA0OTYzMzcgLyogRE9NQmxvYi5oICovOyB9OworCQkyRTJEOTlFODEwRTJCQzFDMDA0OTYz
MzcgLyogRE9NQmxvYi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFMkQ5OUU2MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLm1tICovOyB9OworCQky
RTJEOTlFQTEwRTJCQzM4MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlFOTEwRTJCQzM4MDA0OTYz
MzcgLyogRE9NQmxvYkludGVybmFsLmggKi87IH07CisJCTJFMkQ5OUVCMTBFMkJEMzkwMDQ5NjMz
NyAvKiBET01CbG9iLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlFNTEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5o
ICovOyB9OworCQkyRTJEOTlFQzEwRTJCRDM5MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmgg
aW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTJEOTlFOTEwRTJCQzM4MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggKi87IH07
CiAJCTJFNDM0NjQ0MEY1NDZBODIwMEIwRjFCQSAvKiBHZW5lcmljV29ya2VyVGFzay5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2MzIwRjU0NkE4
MjAwQjBGMUJBIC8qIEdlbmVyaWNXb3JrZXJUYXNrLmggKi87IH07CiAJCTJFNDM0NjQ1MEY1NDZB
ODIwMEIwRjFCQSAvKiBXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkU0MzQ2MzMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgKi87
IH07CiAJCTJFNDM0NjQ2MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjM0MEY1NDZBODIwMEIwRjFC
QSAvKiBXb3JrZXIuaCAqLzsgfTsKQEAgLTYxOCw2ICs2MjUsOCBAQAogCQkyRTQzNDY1ODBGNTQ2
QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NTYwRjU0NkE5OTAwQjBGMUJBIC8qIENy
b3NzVGhyZWFkQ29waWVyLmNwcCAqLzsgfTsKIAkJMkU0MzQ2NTkwRjU0NkE5OTAwQjBGMUJBIC8q
IENyb3NzVGhyZWFkQ29waWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRTQzNDY1NzBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIu
aCAqLzsgfTsKIAkJMkVBNzY4MDQwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRl
ckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkVBNzY4MDMwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oICov
OyB9OworCQkyRUFGQUYwRTEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUFGQUYwQjEwRTJBRjJEMDA3RUQz
RDYgLyogQmxvYi5jcHAgKi87IH07CisJCTJFQUZBRjBGMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9i
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUFGQUYw
QzEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oICovOyB9OwogCQkyRUNGN0FEQzEwMTYyQjM4MDA0
MjdERTcgLyogSlNFcnJvckV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJFQ0Y3QURBMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQu
Y3BwICovOyB9OwogCQkyRUNGN0FERDEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUNGN0FEQjEw
MTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50LmggKi87IH07CiAJCTJFQ0Y3QUUxMTAxNjJC
NTgwMDQyN0RFNyAvKiBFcnJvckV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFQ0Y3QURFMTAxNjJCNTgwMDQyN0RFNyAvKiBFcnJvckV2ZW50
LmNwcCAqLzsgfTsKQEAgLTQ4NTAsNiArNDg1OSw4IEBACiAJCQkJNURGN0Y1QzIwRjAxRjkyQTAw
NTI2QjRCIC8qIENTU1Byb3BlcnR5TmFtZXMuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
LAogCQkJCTg1MzhGMDMwMEFENzFDREIwMDZBODFEMSAvKiBET01BYnN0cmFjdFZpZXcuaCBpbiBD
b3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTFDMTFDQ0JDMEFBNjA5MzcwMERBREIyMCAv
KiBET01BdHRyLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKKwkJCQkyRTJEOTlFQjEw
RTJCRDM5MDA0OTYzMzcgLyogRE9NQmxvYi5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8s
CisJCQkJMkUyRDk5RUMxMEUyQkQzOTAwNDk2MzM3IC8qIERPTUJsb2JJbnRlcm5hbC5oIGluIENv
cHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJMUMxMUNDQzcwQUE2MDkzNzAwREFEQjIwIC8q
IERPTUNEQVRBU2VjdGlvbi5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJMUMx
MUNDQzUwQUE2MDkzNzAwREFEQjIwIC8qIERPTUNoYXJhY3RlckRhdGEuaCBpbiBDb3B5IEdlbmVy
YXRlZCBIZWFkZXJzICovLAogCQkJCTFDMTFDQ0I2MEFBNjA5MzcwMERBREIyMCAvKiBET01Db21t
ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKQEAgLTU4NjksNiArNTg4MCwxMSBA
QAogCQkyRDkwNjYwNTBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTJEOTA2NjBCMDY2NUQ5MzcwMDZCNkYxQSAvKiBDbGlwYm9hcmRNYWMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xpcGJv
YXJkTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwogCQkyRDkwNjYwQzA2NjVEOTM3MDA2QjZGMUEgLyogQ2xpcGJvYXJkTWFjLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
Q2xpcGJvYXJkTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKKwkJMkUyRDk5Q0IxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Jsb2IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRTJEOTlDQzEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9i
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmxvYi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyRTJEOTlFNTEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01CbG9iLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJFMkQ5OUU2MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NQmxvYi5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkUyRDk5RTkxMEUyQkMzODAwNDk2MzM3IC8qIERP
TUJsb2JJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01CbG9i
SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU0MzQ2MzIwRjU0NkE4
MjAwQjBGMUJBIC8qIEdlbmVyaWNXb3JrZXJUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEdlbmVyaWNXb3JrZXJUYXNrLmg7IHBhdGggPSB3b3JrZXJzL0dlbmVyaWNXb3Jr
ZXJUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNDM0NjMzMEY1NDZBODIw
MEIwRjFCQSAvKiBXb3JrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gV29ya2VyLmNwcDsgcGF0aCA9IHdvcmtlcnMvV29ya2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMkU0MzQ2MzQwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXb3JrZXIuaDsgcGF0aCA9IHdvcmtlcnMvV29y
a2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODkwLDYgKzU5MDYsOSBAQAog
CQkyRTQzNDY1NjBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTQzNDY1NzBGNTQ2QTk5MDBCMEYxQkEgLyog
Q3Jvc3NUaHJlYWRDb3BpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3Jv
c3NUaHJlYWRDb3BpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVBNzY4MDMw
RkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaDsgcGF0aCA9
IHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJFQUZBRjBCMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyRUFGQUYwQzEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9iLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTJFQUZBRjBEMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBCbG9iLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVDRjdBREEx
MDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0Vycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyRUNGN0FEQjEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JFdmVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyRUNGN0FERTEwMTYyQjU4MDA0MjdERTcgLyogRXJyb3JFdmVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFcnJvckV2ZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMDk5LDYgKzEyMTE4LDggQEAKIAkJODVD
NTZEMDMwQUE4QkFBNzAwRDk1NzU1IC8qIEhUTUwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTJFMkQ5OUU1MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9i
LmggKi8sCisJCQkJMkUyRDk5RTYxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2IubW0gKi8sCiAJ
CQkJQkMwMEVGRkUwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUuaCAqLywKIAkJCQlCQzAwRUZG
RjBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZS5tbSAqLywKIAkJCQlCQzAwRjAwMTBFMEExODU1
MDBGRDA0RTMgLyogRE9NRmlsZUxpc3QuaCAqLywKQEAgLTEyMjQwLDYgKzEyMjYxLDcgQEAKIAkJ
CWNoaWxkcmVuID0gKAogCQkJCTg1MzhGMDE4MEFENzE4RDgwMDZBODFEMSAvKiBET01BYnN0cmFj
dFZpZXdJbnRlcm5hbC5oICovLAogCQkJCTg1RTcxMTNFMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01B
dHRySW50ZXJuYWwuaCAqLywKKwkJCQkyRTJEOTlFOTEwRTJCQzM4MDA0OTYzMzcgLyogRE9NQmxv
YkludGVybmFsLmggKi8sCiAJCQkJODVFNzExM0YwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNEQVRB
U2VjdGlvbkludGVybmFsLmggKi8sCiAJCQkJODVFNzExNDAwQUM1RDUzNDAwNTMyNzBGIC8qIERP
TUNoYXJhY3RlckRhdGFJbnRlcm5hbC5oICovLAogCQkJCTg1RTcxMTQxMEFDNUQ1MzQwMDUzMjcw
RiAvKiBET01Db21tZW50SW50ZXJuYWwuaCAqLywKQEAgLTEyNjM4LDYgKzEyNjYwLDkgQEAKIAkJ
OTNFRUMxRUMwOUMyODc3NzAwQzUxNUQxIC8qIGh0bWwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJFQUZBRjBCMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9i
LmNwcCAqLywKKwkJCQkyRUFGQUYwQzEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oICovLAorCQkJ
CTJFQUZBRjBEMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmlkbCAqLywKIAkJCQk0OTQ4NEZBRTEw
MkNGMDFFMDAxODdERDMgLyogY2FudmFzICovLAogCQkJCTkzQzQ0MUVEMEY4MTNBMUEwMEMxQTYz
NCAvKiBDb2xsZWN0aW9uQ2FjaGUuY3BwICovLAogCQkJCTkzQzQ0MUVFMEY4MTNBMUEwMEMxQTYz
NCAvKiBDb2xsZWN0aW9uQ2FjaGUuaCAqLywKQEAgLTEyOTU2LDYgKzEyOTgxLDggQEAKIAkJQTgz
Qjc5MDgwQ0NBRkYyQjAwMEIwODI1IC8qIEhUTUwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAorCQkJCTJFMkQ5OUNCMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2Iu
Y3BwICovLAorCQkJCTJFMkQ5OUNDMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuaCAqLywKIAkJ
CQlBN0QyMEY2MDEwN0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uY3BwICovLAog
CQkJCUE3RDIwRjYxMTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5oICovLAog
CQkJCTQ5RUVDRjE5MTA1MDcyRjMwMDA5OUZBQiAvKiBKU1dlYkdMQXJyYXkuY3BwICovLApAQCAt
MTgzNDksNiArMTgzNzYsMTAgQEAKIAkJCQk2RTRFOTFBRDEwRjdGQjMxMDBBMjc3OUMgLyogQ2Fu
dmFzQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFNEU5MUFGMTBGN0ZC
MzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2RUU4QTc3MzEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkyRUFGQUYwRjEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMkUyRDk5Q0UxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMkUyRDk5RTcxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2IuaCBp
biBIZWFkZXJzICovLAorCQkJCTJFMkQ5OUVBMTBFMkJDMzgwMDQ5NjMzNyAvKiBET01CbG9iSW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjA1MTMsNiArMjA1NDQsOSBAQAogCQkJCTZFNEU5
MUFDMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk2RTRFOTFBRTEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250ZXh0QXR0
cmlidXRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2RUU4QTc3MjEwRjgwM0YzMDA1QTRBMjQg
LyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFQUZB
RjBFMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFMkQ5
OUNEMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkUy
RDk5RTgxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2IubW0gaW4gU291cmNlcyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsIGIvV2ViQ29yZS9XZWJDb3JlU291cmNl
cy5ia2wKaW5kZXggODdhYzA3ZS4uYmExOGFmMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3Jl
U291cmNlcy5ia2wKKysrIGIvV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wKQEAgLTI0OSw2ICsy
NDksNyBAQCBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGxpc3Qgb2YgZmlsZXMgbmVlZGVkIHRvIGJ1
aWxkIFdlYkNvcmUuCiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTE5hbWVzLmNw
cAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXR0ci5jcHAKICAgICAgICAgRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0JhckluZm8uY3BwCisgICAgICAgIERlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNCbG9iLmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ0RB
VEFTZWN0aW9uLmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTQ2hhcnNl
dFJ1bGUuY3BwCiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NGb250RmFjZVJ1
bGUuY3BwCkBAIC01ODQsNiArNTg1LDcgQEAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBsaXN0IG9m
IGZpbGVzIG5lZWRlZCB0byBidWlsZCBXZWJDb3JlLgogICAgIDwvc2V0PgogCiAgICAgPHNldCBh
cHBlbmQ9IjEiIHZhcj0iV0VCQ09SRV9TT1VSQ0VTX0hUTUwiPgorICAgICAgICBodG1sL0Jsb2Iu
Y3BwCiAgICAgICAgIGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcAogICAgICAgICBodG1s
L2NhbnZhcy9DYW52YXNQYXR0ZXJuLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9DYW52YXNQaXhl
bEFycmF5LmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3Rv
bS5jcHAKaW5kZXggN2VlMjcyMC4uZDM1ZDUzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCkBAIC0yOSwxOCArMjksMTggQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJKU1hNTEh0dHBSZXF1ZXN0LmgiCiAKKyNpbmNsdWRlICJC
bG9iLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5j
bHVkZSAiSlNCbG9iLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRl
ICJKU0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1ZGUgIkpTRXZlbnRM
aXN0ZW5lci5oIgotI2luY2x1ZGUgIkpTRmlsZS5oIgogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0
LmgiCiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPGludGVycHJldGVyL0lu
dGVycHJldGVyLmg+CkBAIC0xMDksOCArMTA5LDggQEAgSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0
OjpzZW5kKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKICAgICAgICAgICAg
IGltcGwoKS0+c2VuZChlYyk7CiAgICAgICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cygmSlNEb2N1
bWVudDo6c19pbmZvKSkKICAgICAgICAgICAgIGltcGwoKS0+c2VuZCh0b0RvY3VtZW50KHZhbCks
IGVjKTsKLSAgICAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKCZKU0ZpbGU6OnNfaW5mbykpCi0g
ICAgICAgICAgICBpbXBsKCktPnNlbmQodG9GaWxlKHZhbCksIGVjKTsKKyAgICAgICAgZWxzZSBp
ZiAodmFsLmluaGVyaXRzKCZKU0Jsb2I6OnNfaW5mbykpCisgICAgICAgICAgICBpbXBsKCktPnNl
bmQodG9CbG9iKHZhbCksIGVjKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgaW1wbCgpLT5z
ZW5kKHZhbC50b1N0cmluZyhleGVjKSwgZWMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01IVE1MLmggYi9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5o
CmluZGV4IGMzMzZjMDQuLjg4MmUzOTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwuaApAQCAtMjYs
NiArMjYsNyBAQAogCiAjaW1wb3J0IDxXZWJDb3JlL0RPTUNvcmUuaD4KIAorI2ltcG9ydCA8V2Vi
Q29yZS9ET01CbG9iLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTUZpbGUuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRE9NRmlsZUxpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEFuY2hvckVsZW1l
bnQuaD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZh
Y2VzLmggYi9XZWJDb3JlL2JpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCmluZGV4
IDkyMjEwMzcuLjg2NTlhYmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJs
aWNET01JbnRlcmZhY2VzLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUlu
dGVyZmFjZXMuaApAQCAtMjM1LDcgKzIzNSwxNiBAQAogQGludGVyZmFjZSBET01FbnRpdHlSZWZl
cmVuY2UgOiBET01Ob2RlIFdFQktJVF9WRVJTSU9OXzFfMwogQGVuZAogCi1AaW50ZXJmYWNlIERP
TUZpbGUgOiBET01PYmplY3QgV0VCS0lUX1ZFUlNJT05fNF8wCitAaW50ZXJmYWNlIERPTUJsb2Ig
OiBET01PYmplY3QgV0VCS0lUX1ZFUlNJT05fNF8wCitAcHJvcGVydHkocmVhZG9ubHkpIHVuc2ln
bmVkIGxvbmcgbG9uZyBzaXplOworQGVuZAorCitAaW50ZXJmYWNlIERPTUZpbGUgOiBET01CbG9i
IFdFQktJVF9WRVJTSU9OXzRfMAorQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAq
bmFtZTsKK0Bwcm9wZXJ0eShyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnR5cGU7CitAcHJvcGVy
dHkocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICp1cm47CisKKy8vIEZJWE1FOiBvYnNvbGV0ZSBw
cm9wZXJ0aWVzLiBUbyBiZSByZW1vdmVkLgogQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5KSBOU1N0
cmluZyAqZmlsZU5hbWU7CiBAcHJvcGVydHkocmVhZG9ubHkpIHVuc2lnbmVkIGxvbmcgbG9uZyBm
aWxlU2l6ZTsKIEBlbmQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCmluZGV4IGNhYjM0ZWQuLmU0YjBiZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTg2MSw2ICsxODYxLDggQEAgbXkgJW5hdGl2ZVR5cGUg
PSAoCiAgICAgImxvbmciID0+ICJpbnQiLAogICAgICJ1bnNpZ25lZCBsb25nIiA9PiAidW5zaWdu
ZWQiLAogICAgICJ1bnNpZ25lZCBzaG9ydCIgPT4gInVuc2lnbmVkIHNob3J0IiwKKyAgICAibG9u
ZyBsb25nIiA9PiAibG9uZyBsb25nIiwKKyAgICAidW5zaWduZWQgbG9uZyBsb25nIiA9PiAidW5z
aWduZWQgbG9uZyBsb25nIiwKICk7CiAKIHN1YiBHZXROYXRpdmVUeXBlCkBAIC0xODg0LDYgKzE4
ODYsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgcmV0dXJuICIkdmFsdWUudG9OdW1iZXIo
ZXhlYykiIGlmICR0eXBlIGVxICJkb3VibGUiOwogICAgIHJldHVybiAiJHZhbHVlLnRvRmxvYXQo
ZXhlYykiIGlmICR0eXBlIGVxICJmbG9hdCIgb3IgJHR5cGUgZXEgIlNWR051bWJlciI7CiAgICAg
cmV0dXJuICIkdmFsdWUudG9JbnQzMihleGVjKSIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmci
IG9yICR0eXBlIGVxICJsb25nIiBvciAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOworICAgIHJl
dHVybiAic3RhdGljX2Nhc3Q8JHR5cGU+KCR2YWx1ZS50b0ludGVnZXIoZXhlYykpIiBpZiAkdHlw
ZSBlcSAibG9uZyBsb25nIiBvciAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsKIAogICAg
IHJldHVybiAidmFsdWVUb0RhdGUoZXhlYywgJHZhbHVlKSIgaWYgJHR5cGUgZXEgIkRhdGUiOwog
ICAgIHJldHVybiAic3RhdGljX2Nhc3Q8UmFuZ2U6OkNvbXBhcmVIb3c+KCR2YWx1ZS50b0ludDMy
KGV4ZWMpKSIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCmluZGV4IDkxMjQ4YzUuLmFhMDk3MTUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KQEAgLTY2LDcg
KzY2LDcgQEAgbXkgJW5hdGl2ZU9iakNUeXBlSGFzaCA9ICgiVVJMIiA9PiAxLCAiQ29sb3IiID0+
IDEpOwogbXkgJWJhc2VUeXBlSGFzaCA9ICgiT2JqZWN0IiA9PiAxLCAiTm9kZSIgPT4gMSwgIk5v
ZGVMaXN0IiA9PiAxLCAiTmFtZWROb2RlTWFwIiA9PiAxLCAiRE9NSW1wbGVtZW50YXRpb24iID0+
IDEsCiAgICAgICAgICAgICAgICAgICAgICJFdmVudCIgPT4gMSwgIkNTU1J1bGUiID0+IDEsICJD
U1NWYWx1ZSIgPT4gMSwgIlN0eWxlU2hlZXQiID0+IDEsICJNZWRpYUxpc3QiID0+IDEsCiAgICAg
ICAgICAgICAgICAgICAgICJDb3VudGVyIiA9PiAxLCAiUmVjdCIgPT4gMSwgIlJHQkNvbG9yIiA9
PiAxLCAiWFBhdGhFeHByZXNzaW9uIiA9PiAxLCAiWFBhdGhSZXN1bHQiID0+IDEsCi0gICAgICAg
ICAgICAgICAgICAgICJOb2RlSXRlcmF0b3IiID0+IDEsICJUcmVlV2Fsa2VyIiA9PiAxLCAiQWJz
dHJhY3RWaWV3IiA9PiAxLAorICAgICAgICAgICAgICAgICAgICAiTm9kZUl0ZXJhdG9yIiA9PiAx
LCAiVHJlZVdhbGtlciIgPT4gMSwgIkFic3RyYWN0VmlldyIgPT4gMSwgIkJsb2IiID0+IDEsCiAg
ICAgICAgICAgICAgICAgICAgICJTVkdBbmdsZSIgPT4gMSwgIlNWR0FuaW1hdGVkQW5nbGUiID0+
IDEsICJTVkdBbmltYXRlZEJvb2xlYW4iID0+IDEsICJTVkdBbmltYXRlZEVudW1lcmF0aW9uIiA9
PiAxLAogICAgICAgICAgICAgICAgICAgICAiU1ZHQW5pbWF0ZWRJbnRlZ2VyIiA9PiAxLCAiU1ZH
QW5pbWF0ZWRMZW5ndGgiID0+IDEsICJTVkdBbmltYXRlZExlbmd0aExpc3QiID0+IDEsCiAgICAg
ICAgICAgICAgICAgICAgICJTVkdBbmltYXRlZE51bWJlciIgPT4gMSwgIlNWR0FuaW1hdGVkTnVt
YmVyTGlzdCIgPT4gMSwgIlNWR0FuaW1hdGVkUG9pbnRzIiA9PiAxLApAQCAtMTA0MCw2ICsxMDQw
LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAkaW1wbEluY2x1ZGVzeyRjbGFz
c0hlYWRlck5hbWUgLiAiSW50ZXJuYWwuaCJ9ID0gMTsKIAogICAgICMgRklYTUU6IFRoZXNlIGlu
Y2x1ZGVzIGFyZSBvbmx5IG5lZWRlZCB3aGVuIHRoZSBjbGFzcyBpcyBhIHN1YmNsYXNzIG9mIG9u
ZSBvZiB0aGVzZSBwb2x5bW9ycGhpYyBjbGFzc2VzLgorICAgICRpbXBsSW5jbHVkZXN7IkRPTUJs
b2JJbnRlcm5hbC5oIn0gPSAxOwogICAgICRpbXBsSW5jbHVkZXN7IkRPTUNTU1J1bGVJbnRlcm5h
bC5oIn0gPSAxOwogICAgICRpbXBsSW5jbHVkZXN7IkRPTUNTU1ZhbHVlSW50ZXJuYWwuaCJ9ID0g
MTsKICAgICAkaW1wbEluY2x1ZGVzeyJET01FdmVudEludGVybmFsLmgifSA9IDE7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCAwOTE1NTIyLi4wMjc2
NDQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAg
LTIxNDMsNiArMjE0Myw3IEBAIHN1YiBHZXROYXRpdmVUeXBlCiAgICAgcmV0dXJuICJpbnQiIGlm
ICR0eXBlIGVxICJzaG9ydCIgb3IgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKICAgICByZXR1
cm4gInVuc2lnbmVkIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CiAgICAgcmV0dXJuICJp
bnQiIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICByZXR1cm4gImxvbmcgbG9uZyIgaWYgJHR5cGUg
ZXEgImxvbmcgbG9uZyI7CiAgICAgcmV0dXJuICJ1bnNpZ25lZCBsb25nIGxvbmciIGlmICR0eXBl
IGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOwogICAgIHJldHVybiAiYm9vbCIgaWYgJHR5cGUgZXEg
ImJvb2xlYW4iOwogICAgIHJldHVybiAiU3RyaW5nIiBpZiAkdHlwZSBlcSAiRE9NU3RyaW5nIjsK
QEAgLTIyMzcsNiArMjIzOCw4IEBAIG15ICV0eXBlQ2FuRmFpbENvbnZlcnNpb24gPSAoCiAgICAg
ImxvbmciID0+IDAsCiAgICAgInVuc2lnbmVkIGxvbmciID0+IDAsCiAgICAgInVuc2lnbmVkIHNo
b3J0IiA9PiAwLAorICAgICJsb25nIGxvbmciID0+IDAsCisgICAgInVuc2lnbmVkIGxvbmcgbG9u
ZyIgPT4gMAogKTsKIAogCkBAIC0yMjkzLDYgKzIyOTYsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZl
CiAgICAgcmV0dXJuICIkdmFsdWUtPk51bWJlclZhbHVlKCkiIGlmICR0eXBlIGVxICJTVkdOdW1i
ZXIiOwogCiAgICAgcmV0dXJuICJ0b0ludDMyKCR2YWx1ZSR7bWF5YmVPa1BhcmFtfSkiIGlmICR0
eXBlIGVxICJ1bnNpZ25lZCBsb25nIiBvciAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiIG9yICR0
eXBlIGVxICJsb25nIjsKKyAgICByZXR1cm4gInRvSW50NjQoJHZhbHVlKSIgaWYgJHR5cGUgZXEg
InVuc2lnbmVkIGxvbmcgbG9uZyIgb3IgJHR5cGUgZXEgImxvbmcgbG9uZyI7CiAgICAgcmV0dXJu
ICJzdGF0aWNfY2FzdDxSYW5nZTo6Q29tcGFyZUhvdz4oJHZhbHVlLT5JbnQzMlZhbHVlKCkpIiBp
ZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CiAgICAgcmV0dXJuICJzdGF0aWNfY2FzdDxTVkdQYWlu
dDo6U1ZHUGFpbnRUeXBlPigkdmFsdWUtPlRvSW50MzIoKS0+SW50MzJWYWx1ZSgpKSIgaWYgJHR5
cGUgZXEgIlNWR1BhaW50VHlwZSI7CiAgICAgcmV0dXJuICJ0b1dlYkNvcmVEYXRlKCR2YWx1ZSki
IGlmICR0eXBlIGVxICJEYXRlIjsKQEAgLTI0MjcsNiArMjQzMSw4IEBAIG15ICVub25fd3JhcHBl
cl90eXBlcyA9ICgKICAgICAnbG9uZycgPT4gMSwKICAgICAndW5zaWduZWQgbG9uZycgPT4gMSwK
ICAgICAnYm9vbGVhbicgPT4gMSwKKyAgICAnbG9uZyBsb25nJyA9PiAxLAorICAgICd1bnNpZ25l
ZCBsb25nIGxvbmcnID0+IDEsCiAgICAgJ0RPTVN0cmluZycgPT4gMSwKICAgICAnQ29tcGFyZUhv
dycgPT4gMSwKICAgICAnU1ZHQW5nbGUnID0+IDEsCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L0RPTU9iamVjdHNJbmNsdWRlLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTU9iamVj
dHNJbmNsdWRlLmgKaW5kZXggOGE4YTFiMS4uYWZlZmUxMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9ET01PYmplY3RzSW5jbHVkZS5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
RE9NT2JqZWN0c0luY2x1ZGUuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkF0dHIuaCIK
ICNpbmNsdWRlICJCYXJJbmZvLmgiCiAjaW5jbHVkZSAiQmVmb3JlTG9hZEV2ZW50LmgiCisjaW5j
bHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIldlYkdMQWN0aXZlSW5mby5oIgogI2luY2x1ZGUgIldl
YkdMQXJyYXkuaCIKICNpbmNsdWRlICJXZWJHTEFycmF5QnVmZmVyLmgiCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L0Rlcml2ZWRTb3VyY2VzQWxsSW5PbmUuY3BwIGIvV2ViQ29yZS9i
aW5kaW5ncy92OC9EZXJpdmVkU291cmNlc0FsbEluT25lLmNwcAppbmRleCA2NjU0NDEyLi41NmEz
ZmRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0Rlcml2ZWRTb3VyY2VzQWxsSW5P
bmUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVyaXZlZFNvdXJjZXNBbGxJbk9uZS5j
cHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJiaW5kaW5ncy9WOEF0dHIuY3BwIgogI2lu
Y2x1ZGUgImJpbmRpbmdzL1Y4QmFySW5mby5jcHAiCiAjaW5jbHVkZSAiYmluZGluZ3MvVjhCZWZv
cmVMb2FkRXZlbnQuY3BwIgorI2luY2x1ZGUgImJpbmRpbmdzL1Y4QmxvYi5jcHAiCiAjaW5jbHVk
ZSAiYmluZGluZ3MvVjhXZWJHTEFjdGl2ZUluZm8uY3BwIgogI2luY2x1ZGUgImJpbmRpbmdzL1Y4
V2ViR0xBcnJheS5jcHAiCiAjaW5jbHVkZSAiYmluZGluZ3MvVjhXZWJHTEFycmF5QnVmZmVyLmNw
cCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4IGE2NzAyZTguLmM0OGM5YWEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEJpbmRpbmcuaApAQCAtMTEyLDYgKzExMiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUtPk51bWJlclZhbHVlKCkp
OwogICAgIH0KIAorICAgIGlubGluZSBpbnQ2NCB0b0ludDY0KHY4OjpMb2NhbDx2ODo6VmFsdWU+
IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDY0Pih2YWx1ZS0+
SW50ZWdlclZhbHVlKCkpOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBEcm9wIHRoaXMgaW4gZmF2
b3Igb2YgdGhlIHR5cGUgc3BlY2lmaWMgdjhWYWx1ZVRvV2ViQ29yZVN0cmluZyB3aGVuIHdlIHJl
d29yayB0aGUgY29kZSBnZW5lcmF0aW9uLgogICAgIGlubGluZSBTdHJpbmcgdG9XZWJDb3JlU3Ry
aW5nKHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvYmplY3QpCiAgICAgewpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOEluZGV4LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhJbmRl
eC5jcHAKaW5kZXggNjkyOTBhZi4uYzEwNTBmZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9WOEluZGV4LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SW5kZXguY3BwCkBA
IC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiVjhBdHRyLmgiCiAjaW5jbHVkZSAiVjhCYXJJbmZv
LmgiCiAjaW5jbHVkZSAiVjhCZWZvcmVMb2FkRXZlbnQuaCIKKyNpbmNsdWRlICJWOEJsb2IuaCIK
ICNpbmNsdWRlICJWOFdlYkdMQWN0aXZlSW5mby5oIgogI2luY2x1ZGUgIlY4Q2FudmFzUmVuZGVy
aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmgiCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SW5kZXguaCBiL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhJbmRleC5oCmluZGV4IDdmZWM2NjcuLjY5MDQ0NTYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhJbmRleC5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhJbmRl
eC5oCkBAIC0zMzAsNiArMzMwLDcgQEAgdHlwZWRlZiB2ODo6UGVyc2lzdGVudDx2ODo6RnVuY3Rp
b25UZW1wbGF0ZT4gKCpGdW5jdGlvblRlbXBsYXRlRmFjdG9yeSkoKTsKICNkZWZpbmUgRE9NX09C
SkVDVF9UWVBFU18xKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFwKICAgICBWKEJBUklORk8sIEJhckluZm8pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFwKICAgICBWKEJFRk9SRUxPQURFVkVOVCwgQmVmb3JlTG9hZEV2
ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBWKEJMT0IsIEJsb2Ip
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwK
ICAgICBWKENBTlZBU0dSQURJRU5ULCBDYW52YXNHcmFkaWVudCkgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKICAgICBWKENBTlZBU1BBVFRFUk4sIENhbnZhc1BhdHRlcm4pICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBWKENBTlZBU1JFTkRFUklO
R0NPTlRFWFQsIENhbnZhc1JlbmRlcmluZ0NvbnRleHQpICAgICAgICAgICAgICAgICAgIFwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3Rv
bS5jcHAKaW5kZXggOWNjNDRjZC4uODNhYjhmMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKQEAgLTMzLDkgKzMzLDkg
QEAKIAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVk
ZSAiVjhCbG9iLmgiCiAjaW5jbHVkZSAiVjhDdXN0b21CaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhE
b2N1bWVudC5oIgotI2luY2x1ZGUgIlY4RmlsZS5oIgogI2luY2x1ZGUgIlY4SFRNTERvY3VtZW50
LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgogI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgiCkBAIC0x
NDksMTEgKzE0OSwxMSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVxdWVzdDo6
c2VuZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgICAgICAgICBEb2N1
bWVudCogZG9jdW1lbnQgPSBWOERPTVdyYXBwZXI6OmNvbnZlcnRET01XcmFwcGVyVG9Ob2RlPERv
Y3VtZW50PihvYmplY3QpOwogICAgICAgICAgICAgQVNTRVJUKGRvY3VtZW50KTsKICAgICAgICAg
ICAgIHhtbEh0dHBSZXF1ZXN0LT5zZW5kKGRvY3VtZW50LCBlYyk7Ci0gICAgICAgIH0gZWxzZSBp
ZiAoVjhGaWxlOjpIYXNJbnN0YW5jZShhcmcpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoVjhCbG9i
OjpIYXNJbnN0YW5jZShhcmcpKSB7CiAgICAgICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IG9iamVjdCA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnKTsKLSAgICAgICAgICAg
IEZpbGUqIGZpbGUgPSBWOERPTVdyYXBwZXI6OmNvbnZlcnRET01XcmFwcGVyVG9OYXRpdmU8Rmls
ZT4ob2JqZWN0KTsKLSAgICAgICAgICAgIEFTU0VSVChmaWxlKTsKLSAgICAgICAgICAgIHhtbEh0
dHBSZXF1ZXN0LT5zZW5kKGZpbGUsIGVjKTsKKyAgICAgICAgICAgIEJsb2IqIGJsb2IgPSBWOERP
TVdyYXBwZXI6OmNvbnZlcnRET01XcmFwcGVyVG9OYXRpdmU8QmxvYj4ob2JqZWN0KTsKKyAgICAg
ICAgICAgIEFTU0VSVChibG9iKTsKKyAgICAgICAgICAgIHhtbEh0dHBSZXF1ZXN0LT5zZW5kKGJs
b2IsIGVjKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICB4bWxIdHRwUmVxdWVzdC0+c2Vu
ZCh0b1dlYkNvcmVTdHJpbmdXaXRoTnVsbENoZWNrKGFyZyksIGVjKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvQmxvYi5jcHAgYi9XZWJDb3JlL2h0bWwvQmxvYi5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjQ0YWFhOQotLS0gL2Rldi9udWxsCisrKyBi
L1dlYkNvcmUvaHRtbC9CbG9iLmNwcApAQCAtMCwwICsxLDg0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
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
IgorI2luY2x1ZGUgIkJsb2IuaCIKKworI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitCbG9iOjpCbG9iKGNvbnN0IFN0cmluZyYgcGF0aCkKKyAgICA6IG1f
cGF0aChwYXRoKQorICAgICwgbV9zdGFydCgwKQorICAgICwgbV9sZW5ndGgoLTEpCit7Cit9CisK
K0Jsb2I6OkJsb2IoY29uc3QgU3RyaW5nJiBwYXRoLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9u
ZyBsZW5ndGgpCisgICAgOiBtX3BhdGgocGF0aCkKKyAgICAsIG1fc3RhcnQoc3RhcnQpCisgICAg
LCBtX2xlbmd0aChsZW5ndGgpCit7Cit9CisgICAgCit1bnNpZ25lZCBsb25nIGxvbmcgQmxvYjo6
c2l6ZSgpIGNvbnN0Cit7CisgICAgaWYgKG1fbGVuZ3RoICE9IC0xKQorICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihtX2xlbmd0aCk7CisKKyAgICAvLyBGSVhN
RTogSmF2YVNjcmlwdCBjYW5ub3QgcmVwcmVzZW50IHNpemVzIGFzIGxhcmdlIGFzIHVuc2lnbmVk
IGxvbmcgbG9uZywgd2UgbmVlZCB0bworICAgIC8vIGNvbWUgdXAgd2l0aCBhbiBleGNlcHRpb24g
dG8gdGhyb3cgaWYgZmlsZSBzaXplIGlzIG5vdCByZXByZXNldGFibGUuCisgICAgbG9uZyBsb25n
IHNpemU7CisgICAgaWYgKCFnZXRGaWxlU2l6ZShtX3BhdGgsIHNpemUpKQorICAgICAgICByZXR1
cm4gMDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihzaXplKTsK
K30KKworUGFzc1JlZlB0cjxCbG9iPiBCbG9iOjpzbGljZShsb25nIGxvbmcgc3RhcnQsIGxvbmcg
bG9uZyBsZW5ndGgpIGNvbnN0Cit7CisgICAgbG9uZyBsb25nIGN1cnJlbnRMZW5ndGggPSBzdGF0
aWNfY2FzdDxsb25nIGxvbmc+KHNpemUoKSk7CisKKyAgICAvLyBDbGFtcCB0aGUgcmFuZ2UgaWYg
aXQgZXhjZWVkcyB0aGUgZmlsZSBsaW1pdC4KKyAgICBpZiAoc3RhcnQgPCAwKQorICAgICAgICBz
dGFydCA9IDA7CisgICAgaWYgKGxlbmd0aCA8IDApCisgICAgICAgIGxlbmd0aCA9IDA7ICAgIAor
CisgICAgaWYgKHN0YXJ0ID4gY3VycmVudExlbmd0aCkgeworICAgICAgICBzdGFydCA9IDA7Cisg
ICAgICAgIGxlbmd0aCA9IDA7CisgICAgfSBlbHNlIGlmIChzdGFydCArIGxlbmd0aCA+IGN1cnJl
bnRMZW5ndGgpCisgICAgICAgIGxlbmd0aCA9IGN1cnJlbnRMZW5ndGggLSBzdGFydDsKKworICAg
IHJldHVybiBhZG9wdFJlZihuZXcgQmxvYihtX3BhdGgsIG1fc3RhcnQgKyBzdGFydCwgbGVuZ3Ro
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9CbG9iLmggYi9XZWJDb3JlL2h0bWwvQmxvYi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjFmZTM5ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvQmxvYi5o
CkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIEJsb2JfaAorI2RlZmluZSBCbG9iX2gKKworI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBCbG9iIDogcHVibGljIFJlZkNvdW50ZWQ8QmxvYj4g
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEJsb2I+IGNyZWF0ZShjb25zdCBTdHJp
bmcmIHBhdGgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEJsb2IocGF0aCkp
OworICAgIH0KKworICAgIHZpcnR1YWwgfkJsb2IoKSB7IH0KKworICAgIFBhc3NSZWZQdHI8Qmxv
Yj4gc2xpY2UobG9uZyBsb25nIHN0YXJ0LCBsb25nIGxvbmcgbGVuZ3RoKSBjb25zdDsKKworICAg
IGNvbnN0IFN0cmluZyYgcGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aDsgfQorICAgIHVuc2ln
bmVkIGxvbmcgbG9uZyBzaXplKCkgY29uc3Q7CisKK3Byb3RlY3RlZDoKKyAgICBCbG9iKGNvbnN0
IFN0cmluZyYgcGF0aCk7CisKK3ByaXZhdGU6CisgICAgQmxvYihjb25zdCBTdHJpbmcmIHBhdGgs
IGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGxlbmd0aCk7CisKKyAgICBTdHJpbmcgbV9wYXRo
OworICAgIGxvbmcgbG9uZyBtX3N0YXJ0OworICAgIGxvbmcgbG9uZyBtX2xlbmd0aDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEJsb2JfaApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0Jsb2IuaWRsIGIvV2ViQ29yZS9odG1sL0Jsb2IuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4MTU3NDYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJD
b3JlL2h0bWwvQmxvYi5pZGwKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
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
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsKKworICAgIGlu
dGVyZmFjZSBCbG9iIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
bG9uZyBzaXplOworICAgICAgICBCbG9iIHNsaWNlKGluIGxvbmcgbG9uZyBzdGFydCwgaW4gbG9u
ZyBsb25nIGxlbmd0aCk7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0Zp
bGUuY3BwIGIvV2ViQ29yZS9odG1sL0ZpbGUuY3BwCmluZGV4IGRiYmJmYTYuLjdhN2Q1ODUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9GaWxlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZS5j
cHAKQEAgLTI3LDI1ICsyNywxOCBAQAogI2luY2x1ZGUgIkZpbGUuaCIKIAogI2luY2x1ZGUgIkZp
bGVTeXN0ZW0uaCIKLSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIEZpbGU6OkZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQotICAgIDogbV9wYXRoKHBh
dGgpCi0gICAgLCBtX2ZpbGVOYW1lKHBhdGhHZXRGaWxlTmFtZShwYXRoKSkKKyAgICA6IEJsb2Io
cGF0aCkKKyAgICAsIG1fbmFtZShwYXRoR2V0RmlsZU5hbWUocGF0aCkpCiB7CisgICAgLy8gRklY
TUU6IGNyZWF0ZSBhIFVVSUQgVVJOIGZvciBmaWxlIHJlZmVyZW5jZS4KIH0KIAotdW5zaWduZWQg
bG9uZyBsb25nIEZpbGU6OmZpbGVTaXplKCkKK0ZpbGU6On5GaWxlKCkKIHsKLSAgICAvLyBGSVhN
RTogU2hvdWxkIHdlIGNhY2hlIHRoaXM/Ci0gICAgLy8gRklYTUU6IEphdmFTY3JpcHQgY2Fubm90
IHJlcHJlc2VudCBzaXplcyBhcyBsYXJnZSBhcyB1bnNpZ25lZCBsb25nIGxvbmcsIHdlIG5lZWQg
dG8KLSAgICAvLyBjb21lIHVwIHdpdGggYW4gZXhjZXB0aW9uIHRvIHRocm93IGlmIGZpbGUgc2l6
ZSBpcyBub3QgcmVwcmVzZXRhYmxlLgotICAgIGxvbmcgbG9uZyBzaXplOwotICAgIGlmICghZ2V0
RmlsZVNpemUobV9wYXRoLCBzaXplKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHNp
emU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9GaWxlLmggYi9XZWJDb3JlL2h0bWwvRmlsZS5oCmluZGV4IDdkNzlhYTUuLjJkZDJjZTcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9GaWxlLmgKKysrIGIvV2ViQ29yZS9odG1sL0ZpbGUuaApA
QCAtMjYsMzAgKzI2LDM1IEBACiAjaWZuZGVmIEZpbGVfaAogI2RlZmluZSBGaWxlX2gKIAotI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi0gICAgY2xhc3MgRmlsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGU+IHsK
LSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZpbGU+IGNyZWF0ZShjb25z
dCBTdHJpbmcmIHBhdGgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgRmlsZShwYXRoKSk7Ci0gICAgICAgIH0KLQotICAgICAgICBjb25zdCBTdHJpbmcmIGZpbGVO
YW1lKCkgY29uc3QgeyByZXR1cm4gbV9maWxlTmFtZTsgfQotICAgICAgICB1bnNpZ25lZCBsb25n
IGxvbmcgZmlsZVNpemUoKTsKLQotICAgICAgICBjb25zdCBTdHJpbmcmIHBhdGgoKSBjb25zdCB7
IHJldHVybiBtX3BhdGg7IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIEZpbGUoY29uc3QgU3Ry
aW5nJiBwYXRoKTsKLQotICAgICAgICBTdHJpbmcgbV9wYXRoOwotICAgICAgICBTdHJpbmcgbV9m
aWxlTmFtZTsKLSAgICB9OworY2xhc3MgRmlsZSA6IHB1YmxpYyBCbG9iIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxGaWxlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxlKHBhdGgpKTsKKyAgICB9CisKKyAg
ICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAgICBjb25z
dCBTdHJpbmcmIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KKyAgICBjb25zdCBTdHJp
bmcmIHVybigpIGNvbnN0IHsgcmV0dXJuIG1fdXJuOyB9CisKKyAgICAvLyBGSVhNRTogb2Jzb2xl
dGUgYXR0cmlidXRlcy4gVG8gYmUgcmVtb3ZlZC4KKyAgICBjb25zdCBTdHJpbmcmIGZpbGVOYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CisgICAgdW5zaWduZWQgbG9uZyBsb25nIGZpbGVT
aXplKCkgY29uc3QgeyByZXR1cm4gc2l6ZSgpOyB9CisKK3ByaXZhdGU6CisgICAgRmlsZShjb25z
dCBTdHJpbmcmIHBhdGgpOworICAgIHZpcnR1YWwgfkZpbGUoKTsKKworICAgIFN0cmluZyBtX25h
bWU7CisgICAgU3RyaW5nIG1fdHlwZTsKKyAgICBTdHJpbmcgbV91cm47Cit9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9GaWxlLmlkbCBiL1dl
YkNvcmUvaHRtbC9GaWxlLmlkbAppbmRleCBlYTc2MWZiLi5lMDUyYzJhIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvRmlsZS5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0ZpbGUuaWRsCkBAIC0yNSw3
ICsyNSwxNSBAQAogCiBtb2R1bGUgaHRtbCB7CiAKLSAgICBpbnRlcmZhY2UgRmlsZSB7CisgICAg
aW50ZXJmYWNlIFsKKyAgICAgICAgR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIsCisgICAgICAgIEdl
bmVyYXRlVG9KUworICAgIF0gRmlsZSA6IEJsb2IgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
dHlwZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB1cm47CisKKyAgICAg
ICAgLy8gRklYTUU6IG9ic29sZXRlIGF0dHJpYnV0ZXMuIFRvIGJlIHJlbW92ZWQuCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgZmlsZU5hbWU7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgZmlsZVNpemU7CiAgICAgfTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcAppbmRleCBmMWE3OTY5Li4zMjgxOGRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
CkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiWE1MSHR0
cFJlcXVlc3QuaCIKIAorI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJDYWNoZS5oIgogI2lu
Y2x1ZGUgIkNTdHJpbmcuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIK
QEAgLTMxLDcgKzMyLDYgQEAKICNpbmNsdWRlICJFdmVudEV4Y2VwdGlvbi5oIgogI2luY2x1ZGUg
IkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCi0jaW5jbHVkZSAiRmls
ZS5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yVGltZWxp
bmVBZ2VudC5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKQEAgLTQzNSw3ICs0MzUsNyBA
QCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZW5kKGNvbnN0IFN0cmluZyYgYm9keSwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAgICAgY3JlYXRlUmVxdWVzdChlYyk7CiB9CiAKLXZvaWQgWE1MSHR0cFJlcXVl
c3Q6OnNlbmQoRmlsZSogYm9keSwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIFhNTEh0dHBSZXF1
ZXN0OjpzZW5kKEJsb2IqIGJvZHksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghaW5p
dFNlbmQoZWMpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9XZWJDb3JlL3htbC9YTUxI
dHRwUmVxdWVzdC5oIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAppbmRleCA2OTAxOWE1
Li4yY2VhNWM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCisrKyBi
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKQEAgLTMzLDggKzMzLDggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBCbG9iOwogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBGaWxl
OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsKIGNs
YXNzIFRocmVhZGFibGVMb2FkZXI7CkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNlbmQoRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2VuZChEb2N1bWVudCosIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHNlbmQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwot
ICAgIHZvaWQgc2VuZChGaWxlKiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2VuZChCbG9i
KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgYWJvcnQoKTsKICAgICB2b2lkIHNldFJlcXVl
c3RIZWFkZXIoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBvdmVycmlkZU1pbWVUeXBlKGNvbnN0IFN0cmluZyYg
b3ZlcnJpZGUpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCA4NWM1OGM5Li5kN2ZmNWU2IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDEwLTAxLTE0ICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgRmlsZSBhbmQgQmxv
YiBpbnRlcmZhY2VzIGFzIGRlZmluZWQgaW4gRmlsZSBBUEkgc3BlYy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyOTEyCisKKyAgICAgICAgKiBNaWdy
YXRlSGVhZGVycy5tYWtlOgorCiAyMDEwLTAxLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L21hYy9NaWdyYXRlSGVhZGVycy5tYWtlIGIvV2ViS2l0L21hYy9NaWdyYXRl
SGVhZGVycy5tYWtlCmluZGV4IDA3MmRhNjUuLjdkMDFjOTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9t
YWMvTWlncmF0ZUhlYWRlcnMubWFrZQorKysgYi9XZWJLaXQvbWFjL01pZ3JhdGVIZWFkZXJzLm1h
a2UKQEAgLTM2LDYgKzM2LDggQEAgYWxsIDogXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9E
T00uaCBcCiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTUFic3RyYWN0Vmlldy5oIFwKICAg
ICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NQXR0ci5oIFwKKyAgICAkKFBSSVZBVEVfSEVBREVS
U19ESVIpL0RPTUJsb2IuaCBcCisgICAgJChJTlRFUk5BTF9IRUFERVJTX0RJUikvRE9NQmxvYklu
dGVybmFsLmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01DREFUQVNlY3Rpb24uaCBc
CiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTUNTUy5oIFwKICAgICAkKFBVQkxJQ19IRUFE
RVJTX0RJUikvRE9NQ1NTQ2hhcnNldFJ1bGUuaCBcCg==
</data>
<flag name="commit-queue"
          id="28917"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46624</attachid>
            <date>2010-01-14 17:26:08 -0800</date>
            <delta_ts>2010-01-19 10:51:27 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>32912_5</filename>
            <type>text/plain</type>
            <size>44697</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiOTdmMjUzLi4xMGE5ZGVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTAtMDEt
MTQgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBGaWxlIGFuZCBCbG9iIGludGVy
ZmFjZXMgYXMgZGVmaW5lZCBpbiBGaWxlIEFQSSBzcGVjLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI5MTIKKworICAgICAgICBVcGRhdGVkIHRoZSBy
ZXN1bHQgb2YgYSBsYXlvdXQgdGVzdCBiZWluZyBhZmZlY3RlZC4KKworICAgICAgICAqIGZhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisKIDIwMTAtMDEtMTQg
IEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNh
bSBXZWluaWcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93
LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dp
bmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAppbmRleCBlMjI2N2I2Li5jNzQ5Mjg3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dGllcy1leHBlY3RlZC50eHQKQEAgLTg5OCw2ICs4OTgsNyBAQCB3aW5kb3cuRXZlbnRTb3VyY2Uu
cHJvdG90eXBlLmRpc3BhdGNoRXZlbnQgW2Z1bmN0aW9uXQogd2luZG93LkV2ZW50U291cmNlLnBy
b3RvdHlwZS5yZW1vdmVFdmVudExpc3RlbmVyIFtmdW5jdGlvbl0KIHdpbmRvdy5GaWxlIFtvYmpl
Y3QgRmlsZUNvbnN0cnVjdG9yXQogd2luZG93LkZpbGUucHJvdG90eXBlIFtvYmplY3QgRmlsZVBy
b3RvdHlwZV0KK3dpbmRvdy5GaWxlLnByb3RvdHlwZS5zbGljZSBbZnVuY3Rpb25dCiB3aW5kb3cu
RmlsZUxpc3QgW29iamVjdCBGaWxlTGlzdENvbnN0cnVjdG9yXQogd2luZG93LkZpbGVMaXN0LnBy
b3RvdHlwZSBbb2JqZWN0IEZpbGVMaXN0UHJvdG90eXBlXQogd2luZG93LkZpbGVMaXN0LnByb3Rv
dHlwZS5pdGVtIFtmdW5jdGlvbl0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVk
LmpzY2JpbmRpbmdzLm1rIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsK
aW5kZXggYzc0NzEzYS4uMTk2OTBiYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2
ZWQuanNjYmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGlu
Z3MubWsKQEAgLTE0OSw2ICsxNDksNyBAQCAkKHBhdHN1YnN0ICUuaCwlLmNwcCwkKEdFTikpOiAk
KGludGVybWVkaWF0ZXMpL2RvbS8lLmNwcCA6ICQoaW50ZXJtZWRpYXRlcykvZG9tLwogCiAjIEhU
TUwKIEdFTiA6PSBcCisgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTQmxvYi5oIFwKICAgICAk
KGludGVybWVkaWF0ZXMpL2h0bWwvSlNEYXRhR3JpZENvbHVtbi5oIFwKICAgICAkKGludGVybWVk
aWF0ZXMpL2h0bWwvSlNEYXRhR3JpZENvbHVtbkxpc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVz
KS9odG1sL0pTRmlsZS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4
YmluZGluZ3MubWsgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCmluZGV4
IDdiNjg3ZTguLmEzYTk2NzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4
YmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawpA
QCAtMTMyLDYgKzEzMiw3IEBAICQocGF0c3Vic3QgJS5oLCUuY3BwLCQoR0VOKSk6ICQoaW50ZXJt
ZWRpYXRlcykvYmluZGluZ3MvJS5jcHAgOiAkKGludGVybWVkaWF0ZXMpCiAKICMgSFRNTAogR0VO
IDo9IFwKKyAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4QmxvYi5oIFwKICAgICAkKGlu
dGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4RGF0YUdyaWRDb2x1bW4uaCBcCiAgICAgJChpbnRlcm1l
ZGlhdGVzKS9iaW5kaW5ncy9WOERhdGFHcmlkQ29sdW1uTGlzdC5oIFwKICAgICAkKGludGVybWVk
aWF0ZXMpL2JpbmRpbmdzL1Y4RmlsZS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5t
ayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRleCBiYjg3NjAzLi4xYWJjMzAwIDEwMDY0NAotLS0g
YS9XZWJDb3JlL0FuZHJvaWQubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0yMzQsNiAr
MjM0LDcgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJXAogCWhp
c3RvcnkvYW5kcm9pZC9IaXN0b3J5SXRlbUFuZHJvaWQuY3BwIFwKIAlcCisJaHRtbC9CbG9iLmNw
cCBcCiAJaHRtbC9Db2xsZWN0aW9uQ2FjaGUuY3BwIFwKIAlodG1sL0ZpbGUuY3BwIFwKIAlodG1s
L0ZpbGVMaXN0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDBjZTExZGIuLmVmYzFlMWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTAtMDEt
MTQgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBGaWxlIGFuZCBCbG9iIGludGVy
ZmFjZXMgYXMgZGVmaW5lZCBpbiBGaWxlIEFQSSBzcGVjLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI5MTIKKworICAgICAgICAqIEFuZHJvaWQuZGVy
aXZlZC5qc2NiaW5kaW5ncy5tazoKKyAgICAgICAgKiBBbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5n
cy5tazoKKyAgICAgICAgKiBBbmRyb2lkLm1rOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNw
cDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZVNvdXJjZXMuYmts
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgICogYmluZGlu
Z3Mvb2JqYy9ET01IVE1MLmg6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRl
cmZhY2VzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKiBiaW5k
aW5ncy92OC9ET01PYmplY3RzSW5jbHVkZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0Rlcml2
ZWRTb3VyY2VzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5o
OgorICAgICAgICAoV2ViQ29yZTo6dG9JbnQ2NCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhJ
bmRleC5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhJbmRleC5oOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6OnNlbmRDYWxsYmFjayk6CisgICAgICAgICogaHRtbC9C
bG9iLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpCbG9iOjpCbG9iKToKKyAgICAgICAg
KFdlYkNvcmU6OkJsb2I6OnNsaWNlKToKKyAgICAgICAgKiBodG1sL0Jsb2IuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpCbG9iOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6
fkJsb2IpOgorICAgICAgICAoV2ViQ29yZTo6QmxvYjo6c2l6ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpCbG9iOjpwYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkJsb2I6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OkJsb2I6Omxlbmd0aCk6CisgICAgICAgICogaHRtbC9CbG9iLmlkbDogQWRkZWQu
CisgICAgICAgICogaHRtbC9GaWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OkZpbGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6fkZpbGUpOgorICAgICAgICAqIGh0bWwvRmlsZS5o
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6bmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
Ojp0eXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OnVybik6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlOjpmaWxlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjpmaWxlU2l6ZSk6Cisg
ICAgICAgICogaHRtbC9GaWxlLmlkbDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNlbmQpOgorICAgICAgICAqIHht
bC9YTUxIdHRwUmVxdWVzdC5oOgorCiAyMDEwLTAxLTE0ICBCZXRoIERha2luICA8YmRha2luQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApp
bmRleCBhODhhZGVmLi4xN2Q4YWQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcAorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApAQCAtMjksNiArMjksNyBAQAog
I2luY2x1ZGUgIkpTQXR0ci5jcHAiCiAjaW5jbHVkZSAiSlNCYXJJbmZvLmNwcCIKICNpbmNsdWRl
ICJKU0JlZm9yZUxvYWRFdmVudC5jcHAiCisjaW5jbHVkZSAiSlNCbG9iLmNwcCIKICNpbmNsdWRl
ICJKU0NhbnZhc0dyYWRpZW50LmNwcCIKICNpbmNsdWRlICJKU0NhbnZhc1BhdHRlcm4uY3BwIgog
I2luY2x1ZGUgIkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4dC5jcHAiCmRpZmYgLS1naXQgYS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggZDhkYzk3Ni4uMjBmZmRlOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTMsNiArNTMsNyBAQCBE
T01fQ0xBU1NFUyA9IFwKICAgICBBdHRyIFwKICAgICBCYXJJbmZvIFwKICAgICBCZWZvcmVMb2Fk
RXZlbnQgXAorICAgIEJsb2IgXAogICAgIENEQVRBU2VjdGlvbiBcCiAgICAgQ1NTQ2hhcnNldFJ1
bGUgXAogICAgIENTU0ZvbnRGYWNlUnVsZSBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAwNTkwMjE1Li4xMjlhOTgwIDEw
MDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KQEAgLTE2MSw2ICsxNjEsNyBAQCBJRExfQklORElOR1MgKz0gXAogCVdlYkNvcmUvZG9t
L1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbCBcCiAJV2ViQ29yZS9kb20vV2ViS2l0VHJhbnNpdGlv
bkV2ZW50LmlkbCBcCiAJV2ViQ29yZS9kb20vV2hlZWxFdmVudC5pZGwgXAorCVdlYkNvcmUvaHRt
bC9CbG9iLmlkbCBcCiAJV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFycmF5LmlkbCBcCiAJV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTEFycmF5QnVmZmVyLmlkbCBcCiAJV2ViQ29yZS9odG1sL2Nh
bnZhcy9XZWJHTEJ5dGVBcnJheS5pZGwgXApAQCAtOTQ5LDYgKzk1MCw4IEBAIHdlYmNvcmVfc291
cmNlcyArPSBcCiAJV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmggXAogCVdlYkNvcmUvaGlz
dG9yeS9QYWdlQ2FjaGUuY3BwIFwKIAlXZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmggXAorCVdl
YkNvcmUvaHRtbC9CbG9iLmNwcCBcCisJV2ViQ29yZS9odG1sL0Jsb2IuaCBcCiAJV2ViQ29yZS9o
dG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5jcHAgXAogCVdlYkNvcmUvaHRtbC9jYW52YXMvQ2Fu
dmFzR3JhZGllbnQuaCBcCiAJV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmNwcCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IDNiYThkY2QuLjk3OTNjZTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC03OCw2ICs3OCw3IEBACiAgICAgICAgICAg
ICAnZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1dlYktp
dFRyYW5zaXRpb25FdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9XaGVlbEV2ZW50LmlkbCcs
CisgICAgICAgICAgICAnaHRtbC9CbG9iLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMv
V2ViR0xBY3RpdmVJbmZvLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xBcnJh
eS5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQXJyYXlCdWZmZXIuaWRsJywK
QEAgLTEyOTUsNiArMTI5Niw4IEBACiAgICAgICAgICAgICAnaGlzdG9yeS9IaXN0b3J5SXRlbS5o
JywKICAgICAgICAgICAgICdoaXN0b3J5L1BhZ2VDYWNoZS5jcHAnLAogICAgICAgICAgICAgJ2hp
c3RvcnkvUGFnZUNhY2hlLmgnLAorICAgICAgICAgICAgJ2h0bWwvQmxvYi5jcHAnLAorICAgICAg
ICAgICAgJ2h0bWwvQmxvYi5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEFycmF5
LmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xBcnJheS5oJywKICAgICAgICAg
ICAgICdodG1sL2NhbnZhcy9XZWJHTEFycmF5QnVmZmVyLmNwcCcsCmRpZmYgLS1naXQgYS9XZWJD
b3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCAwMzc0ODkxLi4zMWM5
Njc0IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29y
ZS5wcm8KQEAgLTU0OSw2ICs1NDksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBoaXN0b3J5L0hpc3Rv
cnlJdGVtLmNwcCBcCiAgICAgaGlzdG9yeS9xdC9IaXN0b3J5SXRlbVF0LmNwcCBcCiAgICAgaGlz
dG9yeS9QYWdlQ2FjaGUuY3BwIFwKKyAgICBodG1sL0Jsb2IuY3BwIFwKICAgICBodG1sL2NhbnZh
cy9DYW52YXNHcmFkaWVudC5jcHAgXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uY3Bw
IFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmNwcCBcCkBAIC0xMjMzLDYgKzEy
MzQsNyBAQCBIRUFERVJTICs9IFwKICAgICBoaXN0b3J5L0NhY2hlZFBhZ2UuaCBcCiAgICAgaGlz
dG9yeS9IaXN0b3J5SXRlbS5oIFwKICAgICBoaXN0b3J5L1BhZ2VDYWNoZS5oIFwKKyAgICBodG1s
L0Jsb2IuaCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaCBcCiAgICAgaHRtbC9j
YW52YXMvQ2FudmFzUGF0dGVybi5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5
LmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMThhYWM0Yy4uNDkw
NmM1MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagor
KysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03MjEsNiArNzIx
LDYyIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9
IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNC
bG9iLmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRl
YnVnfFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJ
CQk8VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8
L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9
IlJlbGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4N
CisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQor
CQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJ
TmFtZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
CisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJh
dGlvbg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxl
Q29uZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4
Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQor
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJ
CQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJL
aXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Jsb2IuaCIN
CisJCQkJPg0KKwkJCTwvRmlsZT4NCisgICAgICAgICAgICA8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBh
dGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNc
SlNDYW52YXNHcmFkaWVudC5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpA
QCAtMjk2NzcsNiArMjk3MzMsMTQgQEAKIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCTwv
RmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQmxvYi5jcHAiDQor
CQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1s
XEJsb2IuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGh0bWxcQ29sbGVjdGlvbkNhY2hlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxNGM0MjU3Li44NTY0
ZGQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjAw
LDYgKzYwMCwxMyBAQAogCQkyOUE4MTI0QjBGQkI5Q0E5MDA1MTAyOTMgLyogQVhPYmplY3RDYWNo
ZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5
QTgxMjQ3MEZCQjlDQTkwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlTWFjLm1tICovOyB9OwogCQky
RDkwNjYwNjBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ5MDY2MDQwQkUxNDFENDAwOTU2OTk4
IC8qIExheW91dFN0YXRlLmNwcCAqLzsgfTsKIAkJMkQ5MDY2MDcwQkUxNDFENDAwOTU2OTk4IC8q
IExheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDkwNjYwNTBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyRTJEOTlDRDEwRTJCQkRB
MDA0OTYzMzcgLyogSlNCbG9iLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJFMkQ5OUNCMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuY3BwICovOyB9
OworCQkyRTJEOTlDRTEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlDQzEwRTJCQkRBMDA0OTYzMzcg
LyogSlNCbG9iLmggKi87IH07CisJCTJFMkQ5OUU3MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9i
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlF
NTEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5oICovOyB9OworCQkyRTJEOTlFODEwRTJCQzFD
MDA0OTYzMzcgLyogRE9NQmxvYi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJFMkQ5OUU2MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLm1tICovOyB9
OworCQkyRTJEOTlFQTEwRTJCQzM4MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlFOTEwRTJCQzM4
MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggKi87IH07CisJCTJFMkQ5OUVCMTBFMkJEMzkw
MDQ5NjMzNyAvKiBET01CbG9iLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlFNTEwRTJCQzFDMDA0OTYzMzcgLyogRE9N
QmxvYi5oICovOyB9OworCQkyRTJEOTlFQzEwRTJCRDM5MDA0OTYzMzcgLyogRE9NQmxvYkludGVy
bmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRTJEOTlFOTEwRTJCQzM4MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmgg
Ki87IH07CiAJCTJFNDM0NjQ0MEY1NDZBODIwMEIwRjFCQSAvKiBHZW5lcmljV29ya2VyVGFzay5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2MzIw
RjU0NkE4MjAwQjBGMUJBIC8qIEdlbmVyaWNXb3JrZXJUYXNrLmggKi87IH07CiAJCTJFNDM0NjQ1
MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2MzMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5j
cHAgKi87IH07CiAJCTJFNDM0NjQ2MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjM0MEY1NDZBODIw
MEIwRjFCQSAvKiBXb3JrZXIuaCAqLzsgfTsKQEAgLTYxOCw2ICs2MjUsOCBAQAogCQkyRTQzNDY1
ODBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NTYwRjU0NkE5OTAwQjBGMUJB
IC8qIENyb3NzVGhyZWFkQ29waWVyLmNwcCAqLzsgfTsKIAkJMkU0MzQ2NTkwRjU0NkE5OTAwQjBG
MUJBIC8qIENyb3NzVGhyZWFkQ29waWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDY1NzBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRD
b3BpZXIuaCAqLzsgfTsKIAkJMkVBNzY4MDQwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlw
dExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkVBNzY4MDMwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVu
dC5oICovOyB9OworCQkyRUFGQUYwRTEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUFGQUYwQjEwRTJBRjJE
MDA3RUQzRDYgLyogQmxvYi5jcHAgKi87IH07CisJCTJFQUZBRjBGMTBFMkFGMkQwMDdFRDNENiAv
KiBCbG9iLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RUFGQUYwQzEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oICovOyB9OwogCQkyRUNGN0FEQzEwMTYy
QjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQ0Y3QURBMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9y
RXZlbnQuY3BwICovOyB9OwogCQkyRUNGN0FERDEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUNG
N0FEQjEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50LmggKi87IH07CiAJCTJFQ0Y3QUUx
MTAxNjJCNTgwMDQyN0RFNyAvKiBFcnJvckV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQ0Y3QURFMTAxNjJCNTgwMDQyN0RFNyAvKiBFcnJv
ckV2ZW50LmNwcCAqLzsgfTsKQEAgLTQ4NTAsNiArNDg1OSw4IEBACiAJCQkJNURGN0Y1QzIwRjAx
RjkyQTAwNTI2QjRCIC8qIENTU1Byb3BlcnR5TmFtZXMuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFk
ZXJzICovLAogCQkJCTg1MzhGMDMwMEFENzFDREIwMDZBODFEMSAvKiBET01BYnN0cmFjdFZpZXcu
aCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTFDMTFDQ0JDMEFBNjA5MzcwMERB
REIyMCAvKiBET01BdHRyLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKKwkJCQkyRTJE
OTlFQjEwRTJCRDM5MDA0OTYzMzcgLyogRE9NQmxvYi5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRl
cnMgKi8sCisJCQkJMkUyRDk5RUMxMEUyQkQzOTAwNDk2MzM3IC8qIERPTUJsb2JJbnRlcm5hbC5o
IGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJMUMxMUNDQzcwQUE2MDkzNzAwREFE
QjIwIC8qIERPTUNEQVRBU2VjdGlvbi5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJ
CQkJMUMxMUNDQzUwQUE2MDkzNzAwREFEQjIwIC8qIERPTUNoYXJhY3RlckRhdGEuaCBpbiBDb3B5
IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTFDMTFDQ0I2MEFBNjA5MzcwMERBREIyMCAvKiBE
T01Db21tZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKQEAgLTU4NjksNiArNTg4
MCwxMSBAQAogCQkyRDkwNjYwNTBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFN0YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJEOTA2NjBCMDY2NUQ5MzcwMDZCNkYxQSAvKiBDbGlwYm9hcmRN
YWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5k
ZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q2xpcGJvYXJkTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNl
c1RhYnMgPSAwOyB9OwogCQkyRDkwNjYwQzA2NjVEOTM3MDA2QjZGMUEgLyogQ2xpcGJvYXJkTWFj
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRl
bnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gQ2xpcGJvYXJkTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJMkUyRDk5Q0IxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxv
Yi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Jsb2IuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTJEOTlDQzEwRTJCQkRBMDA0OTYzMzcgLyog
SlNCbG9iLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmxvYi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTJEOTlFNTEwRTJCQzFDMDA0OTYzMzcgLyogRE9N
QmxvYi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01CbG9iLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMkQ5OUU2MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01C
bG9iLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NQmxvYi5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkUyRDk5RTkxMEUyQkMzODAwNDk2MzM3
IC8qIERPTUJsb2JJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01CbG9iSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU0MzQ2MzIw
RjU0NkE4MjAwQjBGMUJBIC8qIEdlbmVyaWNXb3JrZXJUYXNrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEdlbmVyaWNXb3JrZXJUYXNrLmg7IHBhdGggPSB3b3JrZXJzL0dlbmVy
aWNXb3JrZXJUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNDM0NjMzMEY1
NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBuYW1lID0gV29ya2VyLmNwcDsgcGF0aCA9IHdvcmtlcnMvV29ya2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU0MzQ2MzQwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXb3JrZXIuaDsgcGF0aCA9IHdvcmtl
cnMvV29ya2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODkwLDYgKzU5MDYs
OSBAQAogCQkyRTQzNDY1NjBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NUaHJlYWRDb3BpZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTQzNDY1NzBGNTQ2QTk5MDBCMEYx
QkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ3Jvc3NUaHJlYWRDb3BpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVB
NzY4MDMwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaDsg
cGF0aCA9IHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTJFQUZBRjBCMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyRUFGQUYwQzEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9iLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJFQUZBRjBEMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBCbG9iLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVD
RjdBREExMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Vycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyRUNGN0FEQjEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JFdmVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyRUNGN0FERTEwMTYyQjU4MDA0MjdERTcgLyogRXJyb3JF
dmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFcnJvckV2ZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMDk5LDYgKzEyMTE4LDggQEAK
IAkJODVDNTZEMDMwQUE4QkFBNzAwRDk1NzU1IC8qIEhUTUwgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJFMkQ5OUU1MTBFMkJDMUMwMDQ5NjMzNyAvKiBE
T01CbG9iLmggKi8sCisJCQkJMkUyRDk5RTYxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2IubW0g
Ki8sCiAJCQkJQkMwMEVGRkUwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUuaCAqLywKIAkJCQlC
QzAwRUZGRjBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZS5tbSAqLywKIAkJCQlCQzAwRjAwMTBF
MEExODU1MDBGRDA0RTMgLyogRE9NRmlsZUxpc3QuaCAqLywKQEAgLTEyMjQwLDYgKzEyMjYxLDcg
QEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTg1MzhGMDE4MEFENzE4RDgwMDZBODFEMSAvKiBET01B
YnN0cmFjdFZpZXdJbnRlcm5hbC5oICovLAogCQkJCTg1RTcxMTNFMEFDNUQ1MzQwMDUzMjcwRiAv
KiBET01BdHRySW50ZXJuYWwuaCAqLywKKwkJCQkyRTJEOTlFOTEwRTJCQzM4MDA0OTYzMzcgLyog
RE9NQmxvYkludGVybmFsLmggKi8sCiAJCQkJODVFNzExM0YwQUM1RDUzNDAwNTMyNzBGIC8qIERP
TUNEQVRBU2VjdGlvbkludGVybmFsLmggKi8sCiAJCQkJODVFNzExNDAwQUM1RDUzNDAwNTMyNzBG
IC8qIERPTUNoYXJhY3RlckRhdGFJbnRlcm5hbC5oICovLAogCQkJCTg1RTcxMTQxMEFDNUQ1MzQw
MDUzMjcwRiAvKiBET01Db21tZW50SW50ZXJuYWwuaCAqLywKQEAgLTEyNjM4LDYgKzEyNjYwLDkg
QEAKIAkJOTNFRUMxRUMwOUMyODc3NzAwQzUxNUQxIC8qIGh0bWwgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJFQUZBRjBCMTBFMkFGMkQwMDdFRDNENiAv
KiBCbG9iLmNwcCAqLywKKwkJCQkyRUFGQUYwQzEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oICov
LAorCQkJCTJFQUZBRjBEMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmlkbCAqLywKIAkJCQk0OTQ4
NEZBRTEwMkNGMDFFMDAxODdERDMgLyogY2FudmFzICovLAogCQkJCTkzQzQ0MUVEMEY4MTNBMUEw
MEMxQTYzNCAvKiBDb2xsZWN0aW9uQ2FjaGUuY3BwICovLAogCQkJCTkzQzQ0MUVFMEY4MTNBMUEw
MEMxQTYzNCAvKiBDb2xsZWN0aW9uQ2FjaGUuaCAqLywKQEAgLTEyOTU2LDYgKzEyOTgxLDggQEAK
IAkJQTgzQjc5MDgwQ0NBRkYyQjAwMEIwODI1IC8qIEhUTUwgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJFMkQ5OUNCMTBFMkJCREEwMDQ5NjMzNyAvKiBK
U0Jsb2IuY3BwICovLAorCQkJCTJFMkQ5OUNDMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuaCAq
LywKIAkJCQlBN0QyMEY2MDEwN0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uY3Bw
ICovLAogCQkJCUE3RDIwRjYxMTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5o
ICovLAogCQkJCTQ5RUVDRjE5MTA1MDcyRjMwMDA5OUZBQiAvKiBKU1dlYkdMQXJyYXkuY3BwICov
LApAQCAtMTgzNDksNiArMTgzNzYsMTAgQEAKIAkJCQk2RTRFOTFBRDEwRjdGQjMxMDBBMjc3OUMg
LyogQ2FudmFzQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFNEU5MUFG
MTBGN0ZCMzEwMEEyNzc5QyAvKiBXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2RUU4QTc3MzEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1
dGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkyRUFGQUYwRjEwRTJBRjJEMDA3RUQzRDYgLyogQmxv
Yi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkUyRDk5Q0UxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxv
Yi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkUyRDk5RTcxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJs
b2IuaCBpbiBIZWFkZXJzICovLAorCQkJCTJFMkQ5OUVBMTBFMkJDMzgwMDQ5NjMzNyAvKiBET01C
bG9iSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjA1MTMsNiArMjA1NDQsOSBAQAogCQkJ
CTZFNEU5MUFDMTBGN0ZCMzEwMEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk2RTRFOTFBRTEwRjdGQjMxMDBBMjc3OUMgLyogV2ViR0xDb250
ZXh0QXR0cmlidXRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2RUU4QTc3MjEwRjgwM0YzMDA1
QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTJFQUZBRjBFMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTJFMkQ5OUNEMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJMkUyRDk5RTgxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2IubW0gaW4gU291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZVNvdXJjZXMuYmtsIGIvV2ViQ29yZS9XZWJDb3Jl
U291cmNlcy5ia2wKaW5kZXggODdhYzA3ZS4uYmExOGFmMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlU291cmNlcy5ia2wKKysrIGIvV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wKQEAgLTI0
OSw2ICsyNDksNyBAQCBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGxpc3Qgb2YgZmlsZXMgbmVlZGVk
IHRvIGJ1aWxkIFdlYkNvcmUuCiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTE5h
bWVzLmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXR0ci5jcHAKICAgICAg
ICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0JhckluZm8uY3BwCisgICAgICAgIERlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNCbG9iLmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQ0RBVEFTZWN0aW9uLmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NT
Q2hhcnNldFJ1bGUuY3BwCiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NGb250
RmFjZVJ1bGUuY3BwCkBAIC01ODQsNiArNTg1LDcgQEAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBs
aXN0IG9mIGZpbGVzIG5lZWRlZCB0byBidWlsZCBXZWJDb3JlLgogICAgIDwvc2V0PgogCiAgICAg
PHNldCBhcHBlbmQ9IjEiIHZhcj0iV0VCQ09SRV9TT1VSQ0VTX0hUTUwiPgorICAgICAgICBodG1s
L0Jsb2IuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcAogICAgICAg
ICBodG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9DYW52
YXNQaXhlbEFycmF5LmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dEN1c3RvbS5jcHAKaW5kZXggN2VlMjcyMC4uZDM1ZDUzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCkBAIC0yOSwxOCArMjksMTggQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1hNTEh0dHBSZXF1ZXN0LmgiCiAKKyNpbmNs
dWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50Lmgi
CisjaW5jbHVkZSAiSlNCbG9iLmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNp
bmNsdWRlICJKU0RvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1ZGUgIkpT
RXZlbnRMaXN0ZW5lci5oIgotI2luY2x1ZGUgIkpTRmlsZS5oIgogI2luY2x1ZGUgIlhNTEh0dHBS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPGludGVycHJl
dGVyL0ludGVycHJldGVyLmg+CkBAIC0xMDksOCArMTA5LDggQEAgSlNWYWx1ZSBKU1hNTEh0dHBS
ZXF1ZXN0OjpzZW5kKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKICAgICAg
ICAgICAgIGltcGwoKS0+c2VuZChlYyk7CiAgICAgICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cygm
SlNEb2N1bWVudDo6c19pbmZvKSkKICAgICAgICAgICAgIGltcGwoKS0+c2VuZCh0b0RvY3VtZW50
KHZhbCksIGVjKTsKLSAgICAgICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKCZKU0ZpbGU6OnNfaW5m
bykpCi0gICAgICAgICAgICBpbXBsKCktPnNlbmQodG9GaWxlKHZhbCksIGVjKTsKKyAgICAgICAg
ZWxzZSBpZiAodmFsLmluaGVyaXRzKCZKU0Jsb2I6OnNfaW5mbykpCisgICAgICAgICAgICBpbXBs
KCktPnNlbmQodG9CbG9iKHZhbCksIGVjKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgaW1w
bCgpLT5zZW5kKHZhbC50b1N0cmluZyhleGVjKSwgZWMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLmggYi9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
SFRNTC5oCmluZGV4IGMzMzZjMDQuLjg4MmUzOTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwuaApA
QCAtMjYsNiArMjYsNyBAQAogCiAjaW1wb3J0IDxXZWJDb3JlL0RPTUNvcmUuaD4KIAorI2ltcG9y
dCA8V2ViQ29yZS9ET01CbG9iLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTUZpbGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRE9NRmlsZUxpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEFuY2hv
ckVsZW1lbnQuaD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01J
bnRlcmZhY2VzLmggYi9XZWJDb3JlL2JpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5o
CmluZGV4IDkyMjEwMzcuLjg2NTlhYmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9QdWJsaWNET01JbnRlcmZhY2VzLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1Ymxp
Y0RPTUludGVyZmFjZXMuaApAQCAtMjM1LDcgKzIzNSwxNiBAQAogQGludGVyZmFjZSBET01FbnRp
dHlSZWZlcmVuY2UgOiBET01Ob2RlIFdFQktJVF9WRVJTSU9OXzFfMwogQGVuZAogCi1AaW50ZXJm
YWNlIERPTUZpbGUgOiBET01PYmplY3QgV0VCS0lUX1ZFUlNJT05fNF8wCitAaW50ZXJmYWNlIERP
TUJsb2IgOiBET01PYmplY3QgV0VCS0lUX1ZFUlNJT05fNF8wCitAcHJvcGVydHkocmVhZG9ubHkp
IHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplOworQGVuZAorCitAaW50ZXJmYWNlIERPTUZpbGUgOiBE
T01CbG9iIFdFQktJVF9WRVJTSU9OXzRfMAorQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5KSBOU1N0
cmluZyAqbmFtZTsKK0Bwcm9wZXJ0eShyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnR5cGU7CitA
cHJvcGVydHkocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICp1cm47CisKKy8vIEZJWE1FOiBvYnNv
bGV0ZSBwcm9wZXJ0aWVzLiBUbyBiZSByZW1vdmVkLgogQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5
KSBOU1N0cmluZyAqZmlsZU5hbWU7CiBAcHJvcGVydHkocmVhZG9ubHkpIHVuc2lnbmVkIGxvbmcg
bG9uZyBmaWxlU2l6ZTsKIEBlbmQKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCmluZGV4IGNhYjM0ZWQuLmU0YjBiZGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMTg2MSw2ICsxODYxLDggQEAgbXkgJW5hdGl2
ZVR5cGUgPSAoCiAgICAgImxvbmciID0+ICJpbnQiLAogICAgICJ1bnNpZ25lZCBsb25nIiA9PiAi
dW5zaWduZWQiLAogICAgICJ1bnNpZ25lZCBzaG9ydCIgPT4gInVuc2lnbmVkIHNob3J0IiwKKyAg
ICAibG9uZyBsb25nIiA9PiAibG9uZyBsb25nIiwKKyAgICAidW5zaWduZWQgbG9uZyBsb25nIiA9
PiAidW5zaWduZWQgbG9uZyBsb25nIiwKICk7CiAKIHN1YiBHZXROYXRpdmVUeXBlCkBAIC0xODg0
LDYgKzE4ODYsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgcmV0dXJuICIkdmFsdWUudG9O
dW1iZXIoZXhlYykiIGlmICR0eXBlIGVxICJkb3VibGUiOwogICAgIHJldHVybiAiJHZhbHVlLnRv
RmxvYXQoZXhlYykiIGlmICR0eXBlIGVxICJmbG9hdCIgb3IgJHR5cGUgZXEgIlNWR051bWJlciI7
CiAgICAgcmV0dXJuICIkdmFsdWUudG9JbnQzMihleGVjKSIgaWYgJHR5cGUgZXEgInVuc2lnbmVk
IGxvbmciIG9yICR0eXBlIGVxICJsb25nIiBvciAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiOwor
ICAgIHJldHVybiAic3RhdGljX2Nhc3Q8JHR5cGU+KCR2YWx1ZS50b0ludGVnZXIoZXhlYykpIiBp
ZiAkdHlwZSBlcSAibG9uZyBsb25nIiBvciAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIjsK
IAogICAgIHJldHVybiAidmFsdWVUb0RhdGUoZXhlYywgJHZhbHVlKSIgaWYgJHR5cGUgZXEgIkRh
dGUiOwogICAgIHJldHVybiAic3RhdGljX2Nhc3Q8UmFuZ2U6OkNvbXBhcmVIb3c+KCR2YWx1ZS50
b0ludDMyKGV4ZWMpKSIgaWYgJHR5cGUgZXEgIkNvbXBhcmVIb3ciOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtIGIvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCmluZGV4IDkxMjQ4YzUuLmFhMDk3MTUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5w
bQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KQEAg
LTY2LDcgKzY2LDcgQEAgbXkgJW5hdGl2ZU9iakNUeXBlSGFzaCA9ICgiVVJMIiA9PiAxLCAiQ29s
b3IiID0+IDEpOwogbXkgJWJhc2VUeXBlSGFzaCA9ICgiT2JqZWN0IiA9PiAxLCAiTm9kZSIgPT4g
MSwgIk5vZGVMaXN0IiA9PiAxLCAiTmFtZWROb2RlTWFwIiA9PiAxLCAiRE9NSW1wbGVtZW50YXRp
b24iID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICJFdmVudCIgPT4gMSwgIkNTU1J1bGUiID0+
IDEsICJDU1NWYWx1ZSIgPT4gMSwgIlN0eWxlU2hlZXQiID0+IDEsICJNZWRpYUxpc3QiID0+IDEs
CiAgICAgICAgICAgICAgICAgICAgICJDb3VudGVyIiA9PiAxLCAiUmVjdCIgPT4gMSwgIlJHQkNv
bG9yIiA9PiAxLCAiWFBhdGhFeHByZXNzaW9uIiA9PiAxLCAiWFBhdGhSZXN1bHQiID0+IDEsCi0g
ICAgICAgICAgICAgICAgICAgICJOb2RlSXRlcmF0b3IiID0+IDEsICJUcmVlV2Fsa2VyIiA9PiAx
LCAiQWJzdHJhY3RWaWV3IiA9PiAxLAorICAgICAgICAgICAgICAgICAgICAiTm9kZUl0ZXJhdG9y
IiA9PiAxLCAiVHJlZVdhbGtlciIgPT4gMSwgIkFic3RyYWN0VmlldyIgPT4gMSwgIkJsb2IiID0+
IDEsCiAgICAgICAgICAgICAgICAgICAgICJTVkdBbmdsZSIgPT4gMSwgIlNWR0FuaW1hdGVkQW5n
bGUiID0+IDEsICJTVkdBbmltYXRlZEJvb2xlYW4iID0+IDEsICJTVkdBbmltYXRlZEVudW1lcmF0
aW9uIiA9PiAxLAogICAgICAgICAgICAgICAgICAgICAiU1ZHQW5pbWF0ZWRJbnRlZ2VyIiA9PiAx
LCAiU1ZHQW5pbWF0ZWRMZW5ndGgiID0+IDEsICJTVkdBbmltYXRlZExlbmd0aExpc3QiID0+IDEs
CiAgICAgICAgICAgICAgICAgICAgICJTVkdBbmltYXRlZE51bWJlciIgPT4gMSwgIlNWR0FuaW1h
dGVkTnVtYmVyTGlzdCIgPT4gMSwgIlNWR0FuaW1hdGVkUG9pbnRzIiA9PiAxLApAQCAtMTA0MCw2
ICsxMDQwLDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAkaW1wbEluY2x1ZGVz
eyRjbGFzc0hlYWRlck5hbWUgLiAiSW50ZXJuYWwuaCJ9ID0gMTsKIAogICAgICMgRklYTUU6IFRo
ZXNlIGluY2x1ZGVzIGFyZSBvbmx5IG5lZWRlZCB3aGVuIHRoZSBjbGFzcyBpcyBhIHN1YmNsYXNz
IG9mIG9uZSBvZiB0aGVzZSBwb2x5bW9ycGhpYyBjbGFzc2VzLgorICAgICRpbXBsSW5jbHVkZXN7
IkRPTUJsb2JJbnRlcm5hbC5oIn0gPSAxOwogICAgICRpbXBsSW5jbHVkZXN7IkRPTUNTU1J1bGVJ
bnRlcm5hbC5oIn0gPSAxOwogICAgICRpbXBsSW5jbHVkZXN7IkRPTUNTU1ZhbHVlSW50ZXJuYWwu
aCJ9ID0gMTsKICAgICAkaW1wbEluY2x1ZGVzeyJET01FdmVudEludGVybmFsLmgifSA9IDE7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCAwOTE1NTIy
Li4wMjc2NDQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0KQEAgLTIxNDMsNiArMjE0Myw3IEBAIHN1YiBHZXROYXRpdmVUeXBlCiAgICAgcmV0dXJuICJp
bnQiIGlmICR0eXBlIGVxICJzaG9ydCIgb3IgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IjsKICAg
ICByZXR1cm4gInVuc2lnbmVkIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyI7CiAgICAgcmV0
dXJuICJpbnQiIGlmICR0eXBlIGVxICJsb25nIjsKKyAgICByZXR1cm4gImxvbmcgbG9uZyIgaWYg
JHR5cGUgZXEgImxvbmcgbG9uZyI7CiAgICAgcmV0dXJuICJ1bnNpZ25lZCBsb25nIGxvbmciIGlm
ICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIGxvbmciOwogICAgIHJldHVybiAiYm9vbCIgaWYgJHR5
cGUgZXEgImJvb2xlYW4iOwogICAgIHJldHVybiAiU3RyaW5nIiBpZiAkdHlwZSBlcSAiRE9NU3Ry
aW5nIjsKQEAgLTIyMzcsNiArMjIzOCw4IEBAIG15ICV0eXBlQ2FuRmFpbENvbnZlcnNpb24gPSAo
CiAgICAgImxvbmciID0+IDAsCiAgICAgInVuc2lnbmVkIGxvbmciID0+IDAsCiAgICAgInVuc2ln
bmVkIHNob3J0IiA9PiAwLAorICAgICJsb25nIGxvbmciID0+IDAsCisgICAgInVuc2lnbmVkIGxv
bmcgbG9uZyIgPT4gMAogKTsKIAogCkBAIC0yMjkzLDYgKzIyOTYsNyBAQCBzdWIgSlNWYWx1ZVRv
TmF0aXZlCiAgICAgcmV0dXJuICIkdmFsdWUtPk51bWJlclZhbHVlKCkiIGlmICR0eXBlIGVxICJT
VkdOdW1iZXIiOwogCiAgICAgcmV0dXJuICJ0b0ludDMyKCR2YWx1ZSR7bWF5YmVPa1BhcmFtfSki
IGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIiBvciAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQi
IG9yICR0eXBlIGVxICJsb25nIjsKKyAgICByZXR1cm4gInRvSW50NjQoJHZhbHVlKSIgaWYgJHR5
cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyIgb3IgJHR5cGUgZXEgImxvbmcgbG9uZyI7CiAgICAg
cmV0dXJuICJzdGF0aWNfY2FzdDxSYW5nZTo6Q29tcGFyZUhvdz4oJHZhbHVlLT5JbnQzMlZhbHVl
KCkpIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CiAgICAgcmV0dXJuICJzdGF0aWNfY2FzdDxT
VkdQYWludDo6U1ZHUGFpbnRUeXBlPigkdmFsdWUtPlRvSW50MzIoKS0+SW50MzJWYWx1ZSgpKSIg
aWYgJHR5cGUgZXEgIlNWR1BhaW50VHlwZSI7CiAgICAgcmV0dXJuICJ0b1dlYkNvcmVEYXRlKCR2
YWx1ZSkiIGlmICR0eXBlIGVxICJEYXRlIjsKQEAgLTI0MjcsNiArMjQzMSw4IEBAIG15ICVub25f
d3JhcHBlcl90eXBlcyA9ICgKICAgICAnbG9uZycgPT4gMSwKICAgICAndW5zaWduZWQgbG9uZycg
PT4gMSwKICAgICAnYm9vbGVhbicgPT4gMSwKKyAgICAnbG9uZyBsb25nJyA9PiAxLAorICAgICd1
bnNpZ25lZCBsb25nIGxvbmcnID0+IDEsCiAgICAgJ0RPTVN0cmluZycgPT4gMSwKICAgICAnQ29t
cGFyZUhvdycgPT4gMSwKICAgICAnU1ZHQW5nbGUnID0+IDEsCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L0RPTU9iamVjdHNJbmNsdWRlLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RP
TU9iamVjdHNJbmNsdWRlLmgKaW5kZXggOGE4YTFiMS4uYWZlZmUxMyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy92OC9ET01PYmplY3RzSW5jbHVkZS5oCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvdjgvRE9NT2JqZWN0c0luY2x1ZGUuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkF0
dHIuaCIKICNpbmNsdWRlICJCYXJJbmZvLmgiCiAjaW5jbHVkZSAiQmVmb3JlTG9hZEV2ZW50Lmgi
CisjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIldlYkdMQWN0aXZlSW5mby5oIgogI2luY2x1
ZGUgIldlYkdMQXJyYXkuaCIKICNpbmNsdWRlICJXZWJHTEFycmF5QnVmZmVyLmgiCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0Rlcml2ZWRTb3VyY2VzQWxsSW5PbmUuY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9EZXJpdmVkU291cmNlc0FsbEluT25lLmNwcAppbmRleCA2NjU0NDEy
Li41NmEzZmRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0Rlcml2ZWRTb3VyY2Vz
QWxsSW5PbmUuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVyaXZlZFNvdXJjZXNBbGxJ
bk9uZS5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJiaW5kaW5ncy9WOEF0dHIuY3Bw
IgogI2luY2x1ZGUgImJpbmRpbmdzL1Y4QmFySW5mby5jcHAiCiAjaW5jbHVkZSAiYmluZGluZ3Mv
VjhCZWZvcmVMb2FkRXZlbnQuY3BwIgorI2luY2x1ZGUgImJpbmRpbmdzL1Y4QmxvYi5jcHAiCiAj
aW5jbHVkZSAiYmluZGluZ3MvVjhXZWJHTEFjdGl2ZUluZm8uY3BwIgogI2luY2x1ZGUgImJpbmRp
bmdzL1Y4V2ViR0xBcnJheS5jcHAiCiAjaW5jbHVkZSAiYmluZGluZ3MvVjhXZWJHTEFycmF5QnVm
ZmVyLmNwcCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmggYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCmluZGV4IGE2NzAyZTguLmM0OGM5YWEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEJpbmRpbmcuaApAQCAtMTEyLDYgKzExMiwxMSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4odmFsdWUtPk51bWJlclZh
bHVlKCkpOwogICAgIH0KIAorICAgIGlubGluZSBpbnQ2NCB0b0ludDY0KHY4OjpMb2NhbDx2ODo6
VmFsdWU+IHZhbHVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludDY0Pih2
YWx1ZS0+SW50ZWdlclZhbHVlKCkpOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBEcm9wIHRoaXMg
aW4gZmF2b3Igb2YgdGhlIHR5cGUgc3BlY2lmaWMgdjhWYWx1ZVRvV2ViQ29yZVN0cmluZyB3aGVu
IHdlIHJld29yayB0aGUgY29kZSBnZW5lcmF0aW9uLgogICAgIGlubGluZSBTdHJpbmcgdG9XZWJD
b3JlU3RyaW5nKHY4OjpIYW5kbGU8djg6OlZhbHVlPiBvYmplY3QpCiAgICAgewpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEluZGV4LmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhJbmRleC5jcHAKaW5kZXggNjkyOTBhZi4uYzEwNTBmZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEluZGV4LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SW5kZXgu
Y3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiVjhBdHRyLmgiCiAjaW5jbHVkZSAiVjhC
YXJJbmZvLmgiCiAjaW5jbHVkZSAiVjhCZWZvcmVMb2FkRXZlbnQuaCIKKyNpbmNsdWRlICJWOEJs
b2IuaCIKICNpbmNsdWRlICJWOFdlYkdMQWN0aXZlSW5mby5oIgogI2luY2x1ZGUgIlY4Q2FudmFz
UmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJE
LmgiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SW5kZXguaCBiL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhJbmRleC5oCmluZGV4IDdmZWM2NjcuLjY5MDQ0NTYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhJbmRleC5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhJbmRleC5oCkBAIC0zMzAsNiArMzMwLDcgQEAgdHlwZWRlZiB2ODo6UGVyc2lzdGVudDx2ODo6
RnVuY3Rpb25UZW1wbGF0ZT4gKCpGdW5jdGlvblRlbXBsYXRlRmFjdG9yeSkoKTsKICNkZWZpbmUg
RE9NX09CSkVDVF9UWVBFU18xKFYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFwKICAgICBWKEJBUklORk8sIEJhckluZm8pICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBWKEJFRk9SRUxPQURFVkVOVCwgQmVmb3Jl
TG9hZEV2ZW50KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICBWKEJMT0Is
IEJsb2IpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwKICAgICBWKENBTlZBU0dSQURJRU5ULCBDYW52YXNHcmFkaWVudCkgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBWKENBTlZBU1BBVFRFUk4sIENhbnZhc1BhdHRl
cm4pICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICBWKENBTlZBU1JF
TkRFUklOR0NPTlRFWFQsIENhbnZhc1JlbmRlcmluZ0NvbnRleHQpICAgICAgICAgICAgICAgICAg
IFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVz
dEN1c3RvbS5jcHAKaW5kZXggM2ZlNDE0Zi4uZDdjZGNkMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKQEAgLTMzLDkg
KzMzLDkgQEAKIAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisj
aW5jbHVkZSAiVjhCbG9iLmgiCiAjaW5jbHVkZSAiVjhDdXN0b21CaW5kaW5nLmgiCiAjaW5jbHVk
ZSAiVjhEb2N1bWVudC5oIgotI2luY2x1ZGUgIlY4RmlsZS5oIgogI2luY2x1ZGUgIlY4SFRNTERv
Y3VtZW50LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgogI2luY2x1ZGUgIlY4VXRpbGl0aWVzLmgi
CkBAIC0xNDksMTEgKzE0OSwxMSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhYTUxIdHRwUmVx
dWVzdDo6c2VuZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiAgICAgICAgICAg
ICBEb2N1bWVudCogZG9jdW1lbnQgPSBWOERvY3VtZW50Ojp0b05hdGl2ZShvYmplY3QpOwogICAg
ICAgICAgICAgQVNTRVJUKGRvY3VtZW50KTsKICAgICAgICAgICAgIHhtbEh0dHBSZXF1ZXN0LT5z
ZW5kKGRvY3VtZW50LCBlYyk7Ci0gICAgICAgIH0gZWxzZSBpZiAoVjhGaWxlOjpIYXNJbnN0YW5j
ZShhcmcpKSB7CisgICAgICAgIH0gZWxzZSBpZiAoVjhCbG9iOjpIYXNJbnN0YW5jZShhcmcpKSB7
CiAgICAgICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCA9IHY4OjpIYW5kbGU8
djg6Ok9iamVjdD46OkNhc3QoYXJnKTsKLSAgICAgICAgICAgIEZpbGUqIGZpbGUgPSBWOEZpbGU6
OnRvTmF0aXZlKG9iamVjdCk7Ci0gICAgICAgICAgICBBU1NFUlQoZmlsZSk7Ci0gICAgICAgICAg
ICB4bWxIdHRwUmVxdWVzdC0+c2VuZChmaWxlLCBlYyk7CisgICAgICAgICAgICBCbG9iKiBibG9i
ID0gVjhCbG9iOjp0b05hdGl2ZShvYmplY3QpOworICAgICAgICAgICAgQVNTRVJUKGJsb2IpOwor
ICAgICAgICAgICAgeG1sSHR0cFJlcXVlc3QtPnNlbmQoYmxvYiwgZWMpOwogICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgIHhtbEh0dHBSZXF1ZXN0LT5zZW5kKHRvV2ViQ29yZVN0cmluZ1dpdGhO
dWxsQ2hlY2soYXJnKSwgZWMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9CbG9i
LmNwcCBiL1dlYkNvcmUvaHRtbC9CbG9iLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5iNDRhYWE5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0Jsb2IuY3Bw
CkBAIC0wLDAgKzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQmxvYi5oIgor
CisjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0Jsb2I6
OkJsb2IoY29uc3QgU3RyaW5nJiBwYXRoKQorICAgIDogbV9wYXRoKHBhdGgpCisgICAgLCBtX3N0
YXJ0KDApCisgICAgLCBtX2xlbmd0aCgtMSkKK3sKK30KKworQmxvYjo6QmxvYihjb25zdCBTdHJp
bmcmIHBhdGgsIGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGxlbmd0aCkKKyAgICA6IG1fcGF0
aChwYXRoKQorICAgICwgbV9zdGFydChzdGFydCkKKyAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKK3sK
K30KKyAgICAKK3Vuc2lnbmVkIGxvbmcgbG9uZyBCbG9iOjpzaXplKCkgY29uc3QKK3sKKyAgICBp
ZiAobV9sZW5ndGggIT0gLTEpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBs
b25nIGxvbmc+KG1fbGVuZ3RoKTsKKworICAgIC8vIEZJWE1FOiBKYXZhU2NyaXB0IGNhbm5vdCBy
ZXByZXNlbnQgc2l6ZXMgYXMgbGFyZ2UgYXMgdW5zaWduZWQgbG9uZyBsb25nLCB3ZSBuZWVkIHRv
CisgICAgLy8gY29tZSB1cCB3aXRoIGFuIGV4Y2VwdGlvbiB0byB0aHJvdyBpZiBmaWxlIHNpemUg
aXMgbm90IHJlcHJlc2V0YWJsZS4KKyAgICBsb25nIGxvbmcgc2l6ZTsKKyAgICBpZiAoIWdldEZp
bGVTaXplKG1fcGF0aCwgc2l6ZSkpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KHNpemUpOworfQorCitQYXNzUmVmUHRyPEJsb2I+
IEJsb2I6OnNsaWNlKGxvbmcgbG9uZyBzdGFydCwgbG9uZyBsb25nIGxlbmd0aCkgY29uc3QKK3sK
KyAgICBsb25nIGxvbmcgY3VycmVudExlbmd0aCA9IHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oc2l6
ZSgpKTsKKworICAgIC8vIENsYW1wIHRoZSByYW5nZSBpZiBpdCBleGNlZWRzIHRoZSBmaWxlIGxp
bWl0LgorICAgIGlmIChzdGFydCA8IDApCisgICAgICAgIHN0YXJ0ID0gMDsKKyAgICBpZiAobGVu
Z3RoIDwgMCkKKyAgICAgICAgbGVuZ3RoID0gMDsgICAgCisKKyAgICBpZiAoc3RhcnQgPiBjdXJy
ZW50TGVuZ3RoKSB7CisgICAgICAgIHN0YXJ0ID0gMDsKKyAgICAgICAgbGVuZ3RoID0gMDsKKyAg
ICB9IGVsc2UgaWYgKHN0YXJ0ICsgbGVuZ3RoID4gY3VycmVudExlbmd0aCkKKyAgICAgICAgbGVu
Z3RoID0gY3VycmVudExlbmd0aCAtIHN0YXJ0OworCisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBC
bG9iKG1fcGF0aCwgbV9zdGFydCArIHN0YXJ0LCBsZW5ndGgpKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0Jsb2IuaCBiL1dlYkNvcmUvaHRt
bC9CbG9iLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZlMzllMQotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9CbG9iLmgKQEAgLTAsMCArMSw2OCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgQmxvYl9oCisjZGVmaW5lIEJsb2JfaAorCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEJsb2IgOiBwdWJsaWMgUmVmQ291bnRlZDxCbG9iPiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8QmxvYj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCkKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmxvYihwYXRoKSk7CisgICAgfQorCisgICAgdmlydHVh
bCB+QmxvYigpIHsgfQorCisgICAgUGFzc1JlZlB0cjxCbG9iPiBzbGljZShsb25nIGxvbmcgc3Rh
cnQsIGxvbmcgbG9uZyBsZW5ndGgpIGNvbnN0OworCisgICAgY29uc3QgU3RyaW5nJiBwYXRoKCkg
Y29uc3QgeyByZXR1cm4gbV9wYXRoOyB9CisgICAgdW5zaWduZWQgbG9uZyBsb25nIHNpemUoKSBj
b25zdDsKKworcHJvdGVjdGVkOgorICAgIEJsb2IoY29uc3QgU3RyaW5nJiBwYXRoKTsKKworcHJp
dmF0ZToKKyAgICBCbG9iKGNvbnN0IFN0cmluZyYgcGF0aCwgbG9uZyBsb25nIHN0YXJ0LCBsb25n
IGxvbmcgbGVuZ3RoKTsKKworICAgIFN0cmluZyBtX3BhdGg7CisgICAgbG9uZyBsb25nIG1fc3Rh
cnQ7CisgICAgbG9uZyBsb25nIG1fbGVuZ3RoOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gQmxvYl9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvQmxvYi5pZGwg
Yi9XZWJDb3JlL2h0bWwvQmxvYi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMDgxNTc0NgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9CbG9iLmlkbApAQCAt
MCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBt
ZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNlIEJsb2IgeworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nIHNpemU7CisgICAgICAgIEJs
b2Igc2xpY2UoaW4gbG9uZyBsb25nIHN0YXJ0LCBpbiBsb25nIGxvbmcgbGVuZ3RoKTsKKyAgICB9
OworCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRmlsZS5jcHAgYi9XZWJDb3JlL2h0bWwv
RmlsZS5jcHAKaW5kZXggZGJiYmZhNi4uN2E3ZDU4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0ZpbGUuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9GaWxlLmNwcApAQCAtMjcsMjUgKzI3LDE4IEBA
CiAjaW5jbHVkZSAiRmlsZS5oIgogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgotI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRmlsZTo6RmlsZShj
b25zdCBTdHJpbmcmIHBhdGgpCi0gICAgOiBtX3BhdGgocGF0aCkKLSAgICAsIG1fZmlsZU5hbWUo
cGF0aEdldEZpbGVOYW1lKHBhdGgpKQorICAgIDogQmxvYihwYXRoKQorICAgICwgbV9uYW1lKHBh
dGhHZXRGaWxlTmFtZShwYXRoKSkKIHsKKyAgICAvLyBGSVhNRTogY3JlYXRlIGEgVVVJRCBVUk4g
Zm9yIGZpbGUgcmVmZXJlbmNlLgogfQogCi11bnNpZ25lZCBsb25nIGxvbmcgRmlsZTo6ZmlsZVNp
emUoKQorRmlsZTo6fkZpbGUoKQogewotICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgY2FjaGUgdGhp
cz8KLSAgICAvLyBGSVhNRTogSmF2YVNjcmlwdCBjYW5ub3QgcmVwcmVzZW50IHNpemVzIGFzIGxh
cmdlIGFzIHVuc2lnbmVkIGxvbmcgbG9uZywgd2UgbmVlZCB0bwotICAgIC8vIGNvbWUgdXAgd2l0
aCBhbiBleGNlcHRpb24gdG8gdGhyb3cgaWYgZmlsZSBzaXplIGlzIG5vdCByZXByZXNldGFibGUu
Ci0gICAgbG9uZyBsb25nIHNpemU7Ci0gICAgaWYgKCFnZXRGaWxlU2l6ZShtX3BhdGgsIHNpemUp
KQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gc2l6ZTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGUuaCBiL1dlYkNvcmUvaHRt
bC9GaWxlLmgKaW5kZXggN2Q3OWFhNS4uMmRkMmNlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0ZpbGUuaAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZS5oCkBAIC0yNiwzMCArMjYsMzUgQEAKICNp
Zm5kZWYgRmlsZV9oCiAjZGVmaW5lIEZpbGVfaAogCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKKyNpbmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFz
cyBGaWxlIDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZT4gewotICAgIHB1YmxpYzoKLSAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8RmlsZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCkKLSAgICAg
ICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxlKHBhdGgpKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUoKSBjb25zdCB7IHJldHVybiBt
X2ZpbGVOYW1lOyB9Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBmaWxlU2l6ZSgpOwotCi0g
ICAgICAgIGNvbnN0IFN0cmluZyYgcGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aDsgfQotCi0g
ICAgcHJpdmF0ZToKLSAgICAgICAgRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpOwotCi0gICAgICAg
IFN0cmluZyBtX3BhdGg7Ci0gICAgICAgIFN0cmluZyBtX2ZpbGVOYW1lOwotICAgIH07CitjbGFz
cyBGaWxlIDogcHVibGljIEJsb2IgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEZp
bGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgpCisgICAgeworICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEZpbGUocGF0aCkpOworICAgIH0KKworICAgIGNvbnN0IFN0cmluZyYgbmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgIGNvbnN0IFN0cmluZyYgdHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdHlwZTsgfQorICAgIGNvbnN0IFN0cmluZyYgdXJuKCkgY29uc3QgeyByZXR1
cm4gbV91cm47IH0KKworICAgIC8vIEZJWE1FOiBvYnNvbGV0ZSBhdHRyaWJ1dGVzLiBUbyBiZSBy
ZW1vdmVkLgorICAgIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX25h
bWU7IH0KKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgZmlsZVNpemUoKSBjb25zdCB7IHJldHVybiBz
aXplKCk7IH0KKworcHJpdmF0ZToKKyAgICBGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCk7CisgICAg
dmlydHVhbCB+RmlsZSgpOworCisgICAgU3RyaW5nIG1fbmFtZTsKKyAgICBTdHJpbmcgbV90eXBl
OworICAgIFN0cmluZyBtX3VybjsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGUuaWRsIGIvV2ViQ29yZS9odG1sL0ZpbGUuaWRsCmlu
ZGV4IGVhNzYxZmIuLmUwNTJjMmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9GaWxlLmlkbAor
KysgYi9XZWJDb3JlL2h0bWwvRmlsZS5pZGwKQEAgLTI1LDcgKzI1LDE1IEBACiAKIG1vZHVsZSBo
dG1sIHsKIAotICAgIGludGVyZmFjZSBGaWxlIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBH
ZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKKyAgICAgICAgR2VuZXJhdGVUb0pTCisgICAgXSBGaWxl
IDogQmxvYiB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHVybjsKKworICAgICAgICAvLyBGSVhNRTogb2Jzb2xldGUg
YXR0cmlidXRlcy4gVG8gYmUgcmVtb3ZlZC4KICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyBmaWxlTmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgbG9uZyBmaWxlU2l6ZTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuY3BwIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IGYxYTc5
NjkuLjMyODE4ZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAor
KysgYi9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgogCisjaW5jbHVk
ZSAiQmxvYi5oIgogI2luY2x1ZGUgIkNhY2hlLmgiCiAjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2lu
Y2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgpAQCAtMzEsNyArMzIsNiBAQAogI2lu
Y2x1ZGUgIkV2ZW50RXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2lu
Y2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJGaWxlLmgiCiAjaW5jbHVkZSAiSFRUUFBh
cnNlcnMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VFcnJvci5oIgpAQCAtNDM1LDcgKzQzNSw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6
OnNlbmQoY29uc3QgU3RyaW5nJiBib2R5LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBjcmVhdGVS
ZXF1ZXN0KGVjKTsKIH0KIAotdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2VuZChGaWxlKiBib2R5LCBF
eGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNlbmQoQmxvYiogYm9keSwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFpbml0U2VuZChlYykpCiAgICAgICAgIHJl
dHVybjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9XZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IDY5MDE5YTUuLjJjZWE1YzYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuaApAQCAtMzMsOCArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IEJsb2I7CiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIEZpbGU7CiBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogY2xhc3MgVGhyZWFkYWJsZUxvYWRlcjsK
QEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2VuZChFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCBzZW5kKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2Vu
ZChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZW5kKEZpbGUqLCBF
eGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZW5kKEJsb2IqLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBhYm9ydCgpOwogICAgIHZvaWQgc2V0UmVxdWVzdEhlYWRlcihjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
b2lkIG92ZXJyaWRlTWltZVR5cGUoY29uc3QgU3RyaW5nJiBvdmVycmlkZSk7CmRpZmYgLS1naXQg
YS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDg1YzU4
YzkuLmQ3ZmY1ZTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDEtMTQgIEppYW4gTGkgIDxq
aWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudCBGaWxlIGFuZCBCbG9iIGludGVyZmFjZXMgYXMgZGVmaW5l
ZCBpbiBGaWxlIEFQSSBzcGVjLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzI5MTIKKworICAgICAgICAqIE1pZ3JhdGVIZWFkZXJzLm1ha2U6CisKIDIw
MTAtMDEtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL01pZ3Jh
dGVIZWFkZXJzLm1ha2UgYi9XZWJLaXQvbWFjL01pZ3JhdGVIZWFkZXJzLm1ha2UKaW5kZXggMDcy
ZGE2NS4uN2QwMWM5OSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9NaWdyYXRlSGVhZGVycy5tYWtl
CisrKyBiL1dlYktpdC9tYWMvTWlncmF0ZUhlYWRlcnMubWFrZQpAQCAtMzYsNiArMzYsOCBAQCBh
bGwgOiBcCiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTS5oIFwKICAgICAkKFBVQkxJQ19I
RUFERVJTX0RJUikvRE9NQWJzdHJhY3RWaWV3LmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElS
KS9ET01BdHRyLmggXAorICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NQmxvYi5oIFwKKyAg
ICAkKElOVEVSTkFMX0hFQURFUlNfRElSKS9ET01CbG9iSW50ZXJuYWwuaCBcCiAgICAgJChQVUJM
SUNfSEVBREVSU19ESVIpL0RPTUNEQVRBU2VjdGlvbi5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJT
X0RJUikvRE9NQ1NTLmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01DU1NDaGFyc2V0
UnVsZS5oIFwK
</data>
<flag name="commit-queue"
          id="28926"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46927</attachid>
            <date>2010-01-19 10:51:27 -0800</date>
            <delta_ts>2010-01-19 16:05:15 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>32912_6</filename>
            <type>text/plain</type>
            <size>40020</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rIGIvV2Vi
Q29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKaW5kZXggYzc0NzEzYS4uMTk2OTBi
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKKysr
IGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKQEAgLTE0OSw2ICsxNDks
NyBAQCAkKHBhdHN1YnN0ICUuaCwlLmNwcCwkKEdFTikpOiAkKGludGVybWVkaWF0ZXMpL2RvbS8l
LmNwcCA6ICQoaW50ZXJtZWRpYXRlcykvZG9tLwogCiAjIEhUTUwKIEdFTiA6PSBcCisgICAgJChp
bnRlcm1lZGlhdGVzKS9odG1sL0pTQmxvYi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2h0bWwv
SlNEYXRhR3JpZENvbHVtbi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2h0bWwvSlNEYXRhR3Jp
ZENvbHVtbkxpc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRmlsZS5oIFwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsgYi9XZWJDb3Jl
L0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCmluZGV4IDdiNjg3ZTguLmEzYTk2NzMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKKysrIGIvV2Vi
Q29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawpAQCAtMTMyLDYgKzEzMiw3IEBAICQo
cGF0c3Vic3QgJS5oLCUuY3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvJS5j
cHAgOiAkKGludGVybWVkaWF0ZXMpCiAKICMgSFRNTAogR0VOIDo9IFwKKyAgICAkKGludGVybWVk
aWF0ZXMpL2JpbmRpbmdzL1Y4QmxvYi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdz
L1Y4RGF0YUdyaWRDb2x1bW4uaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOERh
dGFHcmlkQ29sdW1uTGlzdC5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4Rmls
ZS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5t
awppbmRleCBiYjg3NjAzLi4xYWJjMzAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQubWsK
KysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0yMzQsNiArMjM0LDcgQEAgTE9DQUxfU1JDX0ZJ
TEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJXAogCWhpc3RvcnkvYW5kcm9pZC9IaXN0b3J5
SXRlbUFuZHJvaWQuY3BwIFwKIAlcCisJaHRtbC9CbG9iLmNwcCBcCiAJaHRtbC9Db2xsZWN0aW9u
Q2FjaGUuY3BwIFwKIAlodG1sL0ZpbGUuY3BwIFwKIAlodG1sL0ZpbGVMaXN0LmNwcCBcCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcCBiL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwCmluZGV4IGE4OGFkZWYuLjE3ZDhhZDkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMuY3BwCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCkBAIC0yOSw2ICsy
OSw3IEBACiAjaW5jbHVkZSAiSlNBdHRyLmNwcCIKICNpbmNsdWRlICJKU0JhckluZm8uY3BwIgog
I2luY2x1ZGUgIkpTQmVmb3JlTG9hZEV2ZW50LmNwcCIKKyNpbmNsdWRlICJKU0Jsb2IuY3BwIgog
I2luY2x1ZGUgIkpTQ2FudmFzR3JhZGllbnQuY3BwIgogI2luY2x1ZGUgIkpTQ2FudmFzUGF0dGVy
bi5jcHAiCiAjaW5jbHVkZSAiSlNDYW52YXNSZW5kZXJpbmdDb250ZXh0LmNwcCIKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCBkOGRjOTc2Li4yMGZmZGU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKKysrIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC01Myw2ICs1
Myw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIEF0dHIgXAogICAgIEJhckluZm8gXAogICAgIEJl
Zm9yZUxvYWRFdmVudCBcCisgICAgQmxvYiBcCiAgICAgQ0RBVEFTZWN0aW9uIFwKICAgICBDU1ND
aGFyc2V0UnVsZSBcCiAgICAgQ1NTRm9udEZhY2VSdWxlIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDA1OTAyMTUuLjEy
OWE5ODAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQpAQCAtMTYxLDYgKzE2MSw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAJV2Vi
Q29yZS9kb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsIFwKIAlXZWJDb3JlL2RvbS9XZWJLaXRU
cmFuc2l0aW9uRXZlbnQuaWRsIFwKIAlXZWJDb3JlL2RvbS9XaGVlbEV2ZW50LmlkbCBcCisJV2Vi
Q29yZS9odG1sL0Jsb2IuaWRsIFwKIAlXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQXJyYXkuaWRs
IFwKIAlXZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMQXJyYXlCdWZmZXIuaWRsIFwKIAlXZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMQnl0ZUFycmF5LmlkbCBcCkBAIC05NDksNiArOTUwLDggQEAgd2Vi
Y29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaCBcCiAJV2Vi
Q29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgXAogCVdlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUu
aCBcCisJV2ViQ29yZS9odG1sL0Jsb2IuY3BwIFwKKwlXZWJDb3JlL2h0bWwvQmxvYi5oIFwKIAlX
ZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcCBcCiAJV2ViQ29yZS9odG1sL2Nh
bnZhcy9DYW52YXNHcmFkaWVudC5oIFwKIAlXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1BhdHRl
cm4uY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggMWE3YTRkZi4uYWRhODg4YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTc4LDYgKzc4LDcgQEAKICAg
ICAgICAgICAgICdkb20vV2ViS2l0QW5pbWF0aW9uRXZlbnQuaWRsJywKICAgICAgICAgICAgICdk
b20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnZG9tL1doZWVsRXZl
bnQuaWRsJywKKyAgICAgICAgICAgICdodG1sL0Jsb2IuaWRsJywKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTEFjdGl2ZUluZm8uaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9X
ZWJHTEFycmF5LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xBcnJheUJ1ZmZl
ci5pZGwnLApAQCAtMTI5NSw2ICsxMjk2LDggQEAKICAgICAgICAgICAgICdoaXN0b3J5L0hpc3Rv
cnlJdGVtLmgnLAogICAgICAgICAgICAgJ2hpc3RvcnkvUGFnZUNhY2hlLmNwcCcsCiAgICAgICAg
ICAgICAnaGlzdG9yeS9QYWdlQ2FjaGUuaCcsCisgICAgICAgICAgICAnaHRtbC9CbG9iLmNwcCcs
CisgICAgICAgICAgICAnaHRtbC9CbG9iLmgnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dl
YkdMQXJyYXkuY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEFycmF5LmgnLAog
ICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQXJyYXlCdWZmZXIuY3BwJywKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IGQ5N2Y2
OWEuLmQwMDc3OGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnBybwpAQCAtNTUxLDYgKzU1MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGhpc3Rv
cnkvSGlzdG9yeUl0ZW0uY3BwIFwKICAgICBoaXN0b3J5L3F0L0hpc3RvcnlJdGVtUXQuY3BwIFwK
ICAgICBoaXN0b3J5L1BhZ2VDYWNoZS5jcHAgXAorICAgIGh0bWwvQmxvYi5jcHAgXAogICAgIGh0
bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUGF0
dGVybi5jcHAgXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BpeGVsQXJyYXkuY3BwIFwKQEAgLTEy
MzUsNiArMTIzNiw3IEBAIEhFQURFUlMgKz0gXAogICAgIGhpc3RvcnkvQ2FjaGVkUGFnZS5oIFwK
ICAgICBoaXN0b3J5L0hpc3RvcnlJdGVtLmggXAogICAgIGhpc3RvcnkvUGFnZUNhY2hlLmggXAor
ICAgIGh0bWwvQmxvYi5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNHcmFkaWVudC5oIFwKICAg
ICBodG1sL2NhbnZhcy9DYW52YXNQYXR0ZXJuLmggXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1Bp
eGVsQXJyYXkuaCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBiYzQw
ODQ4Li4yYTlkYmRjIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTcy
MSw2ICs3MjEsNjIgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0
aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xKU0Jsb2IuY3BwIg0KKwkJCQk+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJ
TmFtZT0iRGVidWd8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJ
CT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+
DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJ
CQkJTmFtZT0iUmVsZWFzZXxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0K
KwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJ
CQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVDb25maWd1cmF0aW9u
DQorCQkJCQlOYW1lPSJEZWJ1Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0K
KwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJ
CQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0ZpbGVDb25maWd1
cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVnX0FsbHxX
aW4zMiINCisJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRv
b2wNCisJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxl
Q29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRo
PSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpT
QmxvYi5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKyAgICAgICAgICAgIDxGaWxlDQogCQkJCVJl
bGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0NhbnZhc0dyYWRpZW50LmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNvbmZpZ3Vy
YXRpb24NCkBAIC0yOTY3Nyw2ICsyOTczMywxNCBAQAogCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxCbG9i
LmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGh0bWxcQmxvYi5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5caHRtbFxDb2xsZWN0aW9uQ2FjaGUuaCINCiAJCQkJPg0KIAkJCTwvRmls
ZT4NCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE0YzQy
NTcuLjg1NjRkZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC02MDAsNiArNjAwLDEzIEBACiAJCTI5QTgxMjRCMEZCQjlDQTkwMDUxMDI5MyAvKiBBWE9i
amVjdENhY2hlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMjlBODEyNDcwRkJCOUNBOTAwNTEwMjkzIC8qIEFYT2JqZWN0Q2FjaGVNYWMubW0gKi87
IH07CiAJCTJEOTA2NjA2MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDkwNjYwNDBCRTE0MUQ0
MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwICovOyB9OwogCQkyRDkwNjYwNzBCRTE0MUQ0MDA5
NTY5OTggLyogTGF5b3V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJEOTA2NjA1MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJFMkQ5OUNE
MTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkUyRDk5Q0IxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5j
cHAgKi87IH07CisJCTJFMkQ5OUNFMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMkQ5OUNDMTBFMkJCREEw
MDQ5NjMzNyAvKiBKU0Jsb2IuaCAqLzsgfTsKKwkJMkUyRDk5RTcxMEUyQkMxQzAwNDk2MzM3IC8q
IERPTUJsb2IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFMkQ5OUU1MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLmggKi87IH07CisJCTJFMkQ5OUU4
MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkUyRDk5RTYxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2Iu
bW0gKi87IH07CisJCTJFMkQ5OUVBMTBFMkJDMzgwMDQ5NjMzNyAvKiBET01CbG9iSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMkQ5OUU5
MTBFMkJDMzgwMDQ5NjMzNyAvKiBET01CbG9iSW50ZXJuYWwuaCAqLzsgfTsKKwkJMkUyRDk5RUIx
MEUyQkQzOTAwNDk2MzM3IC8qIERPTUJsb2IuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMkQ5OUU1MTBFMkJDMUMwMDQ5NjMz
NyAvKiBET01CbG9iLmggKi87IH07CisJCTJFMkQ5OUVDMTBFMkJEMzkwMDQ5NjMzNyAvKiBET01C
bG9iSW50ZXJuYWwuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFMkQ5OUU5MTBFMkJDMzgwMDQ5NjMzNyAvKiBET01CbG9iSW50
ZXJuYWwuaCAqLzsgfTsKIAkJMkU0MzQ2NDQwRjU0NkE4MjAwQjBGMUJBIC8qIEdlbmVyaWNXb3Jr
ZXJUYXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RTQzNDYzMjBGNTQ2QTgyMDBCMEYxQkEgLyogR2VuZXJpY1dvcmtlclRhc2suaCAqLzsgfTsKIAkJ
MkU0MzQ2NDUwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDYzMzBGNTQ2QTgyMDBCMEYxQkEgLyog
V29ya2VyLmNwcCAqLzsgfTsKIAkJMkU0MzQ2NDYwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2MzQw
RjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5oICovOyB9OwpAQCAtNjE4LDYgKzYyNSw4IEBACiAJ
CTJFNDM0NjU4MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTQzNDY1NjBGNTQ2QTk5
MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICovOyB9OwogCQkyRTQzNDY1OTBGNTQ2
QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjU3MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9z
c1RocmVhZENvcGllci5oICovOyB9OwogCQkyRUE3NjgwNDBGRTcxMjY0MDBBQjlDOEEgLyogV29y
a2VyU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRUE3NjgwMzBGRTcxMjY0MDBBQjlDOEEgLyogV29ya2VyU2NyaXB0TG9h
ZGVyQ2xpZW50LmggKi87IH07CisJCTJFQUZBRjBFMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQUZBRjBC
MTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmNwcCAqLzsgfTsKKwkJMkVBRkFGMEYxMEUyQUYyRDAw
N0VEM0Q2IC8qIEJsb2IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFQUZBRjBDMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmggKi87IH07CiAJCTJFQ0Y3
QURDMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVDRjdBREExMDE2MkIzODAwNDI3REU3IC8q
IEpTRXJyb3JFdmVudC5jcHAgKi87IH07CiAJCTJFQ0Y3QUREMTAxNjJCMzgwMDQyN0RFNyAvKiBK
U0Vycm9yRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFQ0Y3QURCMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9yRXZlbnQuaCAqLzsgfTsKIAkJ
MkVDRjdBRTExMDE2MkI1ODAwNDI3REU3IC8qIEVycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVDRjdBREUxMDE2MkI1ODAwNDI3REU3
IC8qIEVycm9yRXZlbnQuY3BwICovOyB9OwpAQCAtNDg1MCw2ICs0ODU5LDggQEAKIAkJCQk1REY3
RjVDMjBGMDFGOTJBMDA1MjZCNEIgLyogQ1NTUHJvcGVydHlOYW1lcy5oIGluIENvcHkgR2VuZXJh
dGVkIEhlYWRlcnMgKi8sCiAJCQkJODUzOEYwMzAwQUQ3MUNEQjAwNkE4MUQxIC8qIERPTUFic3Ry
YWN0Vmlldy5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJMUMxMUNDQkMwQUE2
MDkzNzAwREFEQjIwIC8qIERPTUF0dHIuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAor
CQkJCTJFMkQ5OUVCMTBFMkJEMzkwMDQ5NjMzNyAvKiBET01CbG9iLmggaW4gQ29weSBHZW5lcmF0
ZWQgSGVhZGVycyAqLywKKwkJCQkyRTJEOTlFQzEwRTJCRDM5MDA0OTYzMzcgLyogRE9NQmxvYklu
dGVybmFsLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQkxQzExQ0NDNzBBQTYw
OTM3MDBEQURCMjAgLyogRE9NQ0RBVEFTZWN0aW9uLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVy
cyAqLywKIAkJCQkxQzExQ0NDNTBBQTYwOTM3MDBEQURCMjAgLyogRE9NQ2hhcmFjdGVyRGF0YS5o
IGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJMUMxMUNDQjYwQUE2MDkzNzAwREFE
QjIwIC8qIERPTUNvbW1lbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLApAQCAtNTg2
OSw2ICs1ODgwLDExIEBACiAJCTJEOTA2NjA1MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0U3RhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5MDY2MEIwNjY1RDkzNzAwNkI2RjFBIC8qIENs
aXBib2FyZE1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDbGlwYm9hcmRNYWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTJEOTA2NjBDMDY2NUQ5MzcwMDZCNkYxQSAvKiBDbGlw
Ym9hcmRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBDbGlwYm9hcmRNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OworCQkyRTJEOTlDQjEwRTJCQkRBMDA0OTYzMzcg
LyogSlNCbG9iLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmxv
Yi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMkQ5OUNDMTBFMkJCREEwMDQ5
NjMzNyAvKiBKU0Jsb2IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNCbG9i
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMkQ5OUU1MTBFMkJDMUMwMDQ5NjMz
NyAvKiBET01CbG9iLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUJsb2Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkUyRDk5RTYxMEUyQkMxQzAwNDk2MzM3
IC8qIERPTUJsb2IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBE
T01CbG9iLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTJEOTlFOTEwRTJCQzM4
MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTUJsb2JJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
RTQzNDYzMjBGNTQ2QTgyMDBCMEYxQkEgLyogR2VuZXJpY1dvcmtlclRhc2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gR2VuZXJpY1dvcmtlclRhc2suaDsgcGF0aCA9IHdvcmtl
cnMvR2VuZXJpY1dvcmtlclRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU0
MzQ2MzMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBXb3JrZXIuY3BwOyBwYXRoID0gd29ya2Vycy9Xb3JrZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTQzNDYzNDBGNTQ2QTgyMDBCMEYxQkEgLyog
V29ya2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdvcmtlci5oOyBwYXRo
ID0gd29ya2Vycy9Xb3JrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4OTAs
NiArNTkwNiw5IEBACiAJCTJFNDM0NjU2MEY1NDZBOTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENv
cGllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcm9zc1RocmVh
ZENvcGllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNDM0NjU3MEY1NDZB
OTkwMEIwRjFCQSAvKiBDcm9zc1RocmVhZENvcGllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDcm9zc1RocmVhZENvcGllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyRUE3NjgwMzBGRTcxMjY0MDBBQjlDOEEgLyogV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdvcmtlclNjcmlwdExvYWRlckNs
aWVudC5oOyBwYXRoID0gd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVBRkFGMEIxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQmxvYi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFQUZBRjBDMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9i
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJsb2IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMkVBRkFGMEQxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IEJsb2IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyRUNGN0FEQTEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JFdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQ0Y3QURCMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9y
RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFcnJvckV2ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQ0Y3QURFMTAxNjJCNTgwMDQyN0RFNyAv
KiBFcnJvckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEVy
cm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIwOTksNiArMTIx
MTgsOCBAQAogCQk4NUM1NkQwMzBBQThCQUE3MDBEOTU3NTUgLyogSFRNTCAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMkUyRDk5RTUxMEUyQkMxQzAwNDk2
MzM3IC8qIERPTUJsb2IuaCAqLywKKwkJCQkyRTJEOTlFNjEwRTJCQzFDMDA0OTYzMzcgLyogRE9N
QmxvYi5tbSAqLywKIAkJCQlCQzAwRUZGRTBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZS5oICov
LAogCQkJCUJDMDBFRkZGMEUwQTE4NTUwMEZEMDRFMyAvKiBET01GaWxlLm1tICovLAogCQkJCUJD
MDBGMDAxMEUwQTE4NTUwMEZEMDRFMyAvKiBET01GaWxlTGlzdC5oICovLApAQCAtMTIyNDAsNiAr
MTIyNjEsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJODUzOEYwMTgwQUQ3MThEODAwNkE4MUQx
IC8qIERPTUFic3RyYWN0Vmlld0ludGVybmFsLmggKi8sCiAJCQkJODVFNzExM0UwQUM1RDUzNDAw
NTMyNzBGIC8qIERPTUF0dHJJbnRlcm5hbC5oICovLAorCQkJCTJFMkQ5OUU5MTBFMkJDMzgwMDQ5
NjMzNyAvKiBET01CbG9iSW50ZXJuYWwuaCAqLywKIAkJCQk4NUU3MTEzRjBBQzVENTM0MDA1MzI3
MEYgLyogRE9NQ0RBVEFTZWN0aW9uSW50ZXJuYWwuaCAqLywKIAkJCQk4NUU3MTE0MDBBQzVENTM0
MDA1MzI3MEYgLyogRE9NQ2hhcmFjdGVyRGF0YUludGVybmFsLmggKi8sCiAJCQkJODVFNzExNDEw
QUM1RDUzNDAwNTMyNzBGIC8qIERPTUNvbW1lbnRJbnRlcm5hbC5oICovLApAQCAtMTI2MzgsNiAr
MTI2NjAsOSBAQAogCQk5M0VFQzFFQzA5QzI4Nzc3MDBDNTE1RDEgLyogaHRtbCAqLyA9IHsKIAkJ
CWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMkVBRkFGMEIxMEUyQUYyRDAw
N0VEM0Q2IC8qIEJsb2IuY3BwICovLAorCQkJCTJFQUZBRjBDMTBFMkFGMkQwMDdFRDNENiAvKiBC
bG9iLmggKi8sCisJCQkJMkVBRkFGMEQxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuaWRsICovLAog
CQkJCTQ5NDg0RkFFMTAyQ0YwMUUwMDE4N0REMyAvKiBjYW52YXMgKi8sCiAJCQkJOTNDNDQxRUQw
RjgxM0ExQTAwQzFBNjM0IC8qIENvbGxlY3Rpb25DYWNoZS5jcHAgKi8sCiAJCQkJOTNDNDQxRUUw
RjgxM0ExQTAwQzFBNjM0IC8qIENvbGxlY3Rpb25DYWNoZS5oICovLApAQCAtMTI5NTYsNiArMTI5
ODEsOCBAQAogCQlBODNCNzkwODBDQ0FGRjJCMDAwQjA4MjUgLyogSFRNTCAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMkUyRDk5Q0IxMEUyQkJEQTAwNDk2
MzM3IC8qIEpTQmxvYi5jcHAgKi8sCisJCQkJMkUyRDk5Q0MxMEUyQkJEQTAwNDk2MzM3IC8qIEpT
QmxvYi5oICovLAogCQkJCUE3RDIwRjYwMTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZl
SW5mby5jcHAgKi8sCiAJCQkJQTdEMjBGNjExMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3Rp
dmVJbmZvLmggKi8sCiAJCQkJNDlFRUNGMTkxMDUwNzJGMzAwMDk5RkFCIC8qIEpTV2ViR0xBcnJh
eS5jcHAgKi8sCkBAIC0xODM0OSw2ICsxODM3NiwxMCBAQAogCQkJCTZFNEU5MUFEMTBGN0ZCMzEw
MEEyNzc5QyAvKiBDYW52YXNDb250ZXh0QXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NkU0RTkxQUYxMEY3RkIzMTAwQTI3NzlDIC8qIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTZFRThBNzczMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4
dEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTJFQUZBRjBGMTBFMkFGMkQwMDdFRDNE
NiAvKiBCbG9iLmggaW4gSGVhZGVycyAqLywKKwkJCQkyRTJEOTlDRTEwRTJCQkRBMDA0OTYzMzcg
LyogSlNCbG9iLmggaW4gSGVhZGVycyAqLywKKwkJCQkyRTJEOTlFNzEwRTJCQzFDMDA0OTYzMzcg
LyogRE9NQmxvYi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkUyRDk5RUExMEUyQkMzODAwNDk2MzM3
IC8qIERPTUJsb2JJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMDUxMyw2ICsyMDU0NCw5
IEBACiAJCQkJNkU0RTkxQUMxMEY3RkIzMTAwQTI3NzlDIC8qIENhbnZhc0NvbnRleHRBdHRyaWJ1
dGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNEU5MUFFMTBGN0ZCMzEwMEEyNzc5QyAvKiBX
ZWJHTENvbnRleHRBdHRyaWJ1dGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFRThBNzcyMTBG
ODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMkVBRkFGMEUxMEUyQUYyRDAwN0VEM0Q2IC8qIEJsb2IuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJMkUyRDk5Q0QxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkyRTJEOTlFODEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wgYi9XZWJDb3Jl
L1dlYkNvcmVTb3VyY2VzLmJrbAppbmRleCA4N2FjMDdlLi5iYTE4YWYyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbAorKysgYi9XZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJr
bApAQCAtMjQ5LDYgKzI0OSw3IEBAIFRoaXMgZmlsZSBjb250YWlucyB0aGUgbGlzdCBvZiBmaWxl
cyBuZWVkZWQgdG8gYnVpbGQgV2ViQ29yZS4KICAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9IVE1MTmFtZXMuY3BwCiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdHRyLmNw
cAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQmFySW5mby5jcHAKKyAgICAgICAg
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Jsb2IuY3BwCiAgICAgICAgIERlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNDREFUQVNlY3Rpb24uY3BwCiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNDU1NDaGFyc2V0UnVsZS5jcHAKICAgICAgICAgRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0NTU0ZvbnRGYWNlUnVsZS5jcHAKQEAgLTU4NCw2ICs1ODUsNyBAQCBUaGlzIGZpbGUgY29udGFp
bnMgdGhlIGxpc3Qgb2YgZmlsZXMgbmVlZGVkIHRvIGJ1aWxkIFdlYkNvcmUuCiAgICAgPC9zZXQ+
CiAKICAgICA8c2V0IGFwcGVuZD0iMSIgdmFyPSJXRUJDT1JFX1NPVVJDRVNfSFRNTCI+CisgICAg
ICAgIGh0bWwvQmxvYi5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuY3Bw
CiAgICAgICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uY3BwCiAgICAgICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1BpeGVsQXJyYXkuY3BwCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcAppbmRleCA3ZWUyNzIwLi5kMzVkNTNhIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKQEAgLTI5LDE4ICsyOSwx
OCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTWE1MSHR0cFJlcXVlc3QuaCIK
IAorI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCi0jaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1
ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MRG9j
dW1lbnQuaCIKKyNpbmNsdWRlICJKU0Jsb2IuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1c3Rv
bS5oIgogI2luY2x1ZGUgIkpTRG9jdW1lbnQuaCIKICNpbmNsdWRlICJKU0V2ZW50LmgiCiAjaW5j
bHVkZSAiSlNFdmVudExpc3RlbmVyLmgiCi0jaW5jbHVkZSAiSlNGaWxlLmgiCiAjaW5jbHVkZSAi
WE1MSHR0cFJlcXVlc3QuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAjaW5jbHVkZSA8
aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaD4KQEAgLTEwOSw4ICsxMDksOCBAQCBKU1ZhbHVlIEpT
WE1MSHR0cFJlcXVlc3Q6OnNlbmQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdz
KQogICAgICAgICAgICAgaW1wbCgpLT5zZW5kKGVjKTsKICAgICAgICAgZWxzZSBpZiAodmFsLmlu
aGVyaXRzKCZKU0RvY3VtZW50OjpzX2luZm8pKQogICAgICAgICAgICAgaW1wbCgpLT5zZW5kKHRv
RG9jdW1lbnQodmFsKSwgZWMpOwotICAgICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoJkpTRmls
ZTo6c19pbmZvKSkKLSAgICAgICAgICAgIGltcGwoKS0+c2VuZCh0b0ZpbGUodmFsKSwgZWMpOwor
ICAgICAgICBlbHNlIGlmICh2YWwuaW5oZXJpdHMoJkpTQmxvYjo6c19pbmZvKSkKKyAgICAgICAg
ICAgIGltcGwoKS0+c2VuZCh0b0Jsb2IodmFsKSwgZWMpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBpbXBsKCktPnNlbmQodmFsLnRvU3RyaW5nKGV4ZWMpLCBlYyk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwuaCBiL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01IVE1MLmgKaW5kZXggYzMzNmMwNC4uODgyZTM5NyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
SFRNTC5oCkBAIC0yNiw2ICsyNiw3IEBACiAKICNpbXBvcnQgPFdlYkNvcmUvRE9NQ29yZS5oPgog
CisjaW1wb3J0IDxXZWJDb3JlL0RPTUJsb2IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NRmlsZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9ET01GaWxlTGlzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01I
VE1MQW5jaG9yRWxlbWVudC5oPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1
YmxpY0RPTUludGVyZmFjZXMuaCBiL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRl
cmZhY2VzLmgKaW5kZXggOTIyMTAzNy4uODY1OWFiZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL29i
amMvUHVibGljRE9NSW50ZXJmYWNlcy5oCkBAIC0yMzUsNyArMjM1LDE2IEBACiBAaW50ZXJmYWNl
IERPTUVudGl0eVJlZmVyZW5jZSA6IERPTU5vZGUgV0VCS0lUX1ZFUlNJT05fMV8zCiBAZW5kCiAK
LUBpbnRlcmZhY2UgRE9NRmlsZSA6IERPTU9iamVjdCBXRUJLSVRfVkVSU0lPTl80XzAKK0BpbnRl
cmZhY2UgRE9NQmxvYiA6IERPTU9iamVjdCBXRUJLSVRfVkVSU0lPTl80XzAKK0Bwcm9wZXJ0eShy
ZWFkb25seSkgdW5zaWduZWQgbG9uZyBsb25nIHNpemU7CitAZW5kCisKK0BpbnRlcmZhY2UgRE9N
RmlsZSA6IERPTUJsb2IgV0VCS0lUX1ZFUlNJT05fNF8wCitAcHJvcGVydHkocmVhZG9ubHksIGNv
cHkpIE5TU3RyaW5nICpuYW1lOworQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAq
dHlwZTsKK0Bwcm9wZXJ0eShyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnVybjsKKworLy8gRklY
TUU6IG9ic29sZXRlIHByb3BlcnRpZXMuIFRvIGJlIHJlbW92ZWQuCiBAcHJvcGVydHkocmVhZG9u
bHksIGNvcHkpIE5TU3RyaW5nICpmaWxlTmFtZTsKIEBwcm9wZXJ0eShyZWFkb25seSkgdW5zaWdu
ZWQgbG9uZyBsb25nIGZpbGVTaXplOwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0KaW5kZXggY2FiMzRlZC4uZTRiMGJkYiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0xODYxLDYgKzE4NjEsOCBAQCBt
eSAlbmF0aXZlVHlwZSA9ICgKICAgICAibG9uZyIgPT4gImludCIsCiAgICAgInVuc2lnbmVkIGxv
bmciID0+ICJ1bnNpZ25lZCIsCiAgICAgInVuc2lnbmVkIHNob3J0IiA9PiAidW5zaWduZWQgc2hv
cnQiLAorICAgICJsb25nIGxvbmciID0+ICJsb25nIGxvbmciLAorICAgICJ1bnNpZ25lZCBsb25n
IGxvbmciID0+ICJ1bnNpZ25lZCBsb25nIGxvbmciLAogKTsKIAogc3ViIEdldE5hdGl2ZVR5cGUK
QEAgLTE4ODQsNiArMTg4Niw3IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICByZXR1cm4gIiR2
YWx1ZS50b051bWJlcihleGVjKSIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CiAgICAgcmV0dXJuICIk
dmFsdWUudG9GbG9hdChleGVjKSIgaWYgJHR5cGUgZXEgImZsb2F0IiBvciAkdHlwZSBlcSAiU1ZH
TnVtYmVyIjsKICAgICByZXR1cm4gIiR2YWx1ZS50b0ludDMyKGV4ZWMpIiBpZiAkdHlwZSBlcSAi
dW5zaWduZWQgbG9uZyIgb3IgJHR5cGUgZXEgImxvbmciIG9yICR0eXBlIGVxICJ1bnNpZ25lZCBz
aG9ydCI7CisgICAgcmV0dXJuICJzdGF0aWNfY2FzdDwkdHlwZT4oJHZhbHVlLnRvSW50ZWdlcihl
eGVjKSkiIGlmICR0eXBlIGVxICJsb25nIGxvbmciIG9yICR0eXBlIGVxICJ1bnNpZ25lZCBsb25n
IGxvbmciOwogCiAgICAgcmV0dXJuICJ2YWx1ZVRvRGF0ZShleGVjLCAkdmFsdWUpIiBpZiAkdHlw
ZSBlcSAiRGF0ZSI7CiAgICAgcmV0dXJuICJzdGF0aWNfY2FzdDxSYW5nZTo6Q29tcGFyZUhvdz4o
JHZhbHVlLnRvSW50MzIoZXhlYykpIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0gYi9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KaW5kZXggOTEyNDhjNS4u
YWEwOTcxNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JPYmpDLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2Jq
Qy5wbQpAQCAtNjYsNyArNjYsNyBAQCBteSAlbmF0aXZlT2JqQ1R5cGVIYXNoID0gKCJVUkwiID0+
IDEsICJDb2xvciIgPT4gMSk7CiBteSAlYmFzZVR5cGVIYXNoID0gKCJPYmplY3QiID0+IDEsICJO
b2RlIiA9PiAxLCAiTm9kZUxpc3QiID0+IDEsICJOYW1lZE5vZGVNYXAiID0+IDEsICJET01JbXBs
ZW1lbnRhdGlvbiIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIkV2ZW50IiA9PiAxLCAiQ1NT
UnVsZSIgPT4gMSwgIkNTU1ZhbHVlIiA9PiAxLCAiU3R5bGVTaGVldCIgPT4gMSwgIk1lZGlhTGlz
dCIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIkNvdW50ZXIiID0+IDEsICJSZWN0IiA9PiAx
LCAiUkdCQ29sb3IiID0+IDEsICJYUGF0aEV4cHJlc3Npb24iID0+IDEsICJYUGF0aFJlc3VsdCIg
PT4gMSwKLSAgICAgICAgICAgICAgICAgICAgIk5vZGVJdGVyYXRvciIgPT4gMSwgIlRyZWVXYWxr
ZXIiID0+IDEsICJBYnN0cmFjdFZpZXciID0+IDEsCisgICAgICAgICAgICAgICAgICAgICJOb2Rl
SXRlcmF0b3IiID0+IDEsICJUcmVlV2Fsa2VyIiA9PiAxLCAiQWJzdHJhY3RWaWV3IiA9PiAxLCAi
QmxvYiIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIlNWR0FuZ2xlIiA9PiAxLCAiU1ZHQW5p
bWF0ZWRBbmdsZSIgPT4gMSwgIlNWR0FuaW1hdGVkQm9vbGVhbiIgPT4gMSwgIlNWR0FuaW1hdGVk
RW51bWVyYXRpb24iID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICJTVkdBbmltYXRlZEludGVn
ZXIiID0+IDEsICJTVkdBbmltYXRlZExlbmd0aCIgPT4gMSwgIlNWR0FuaW1hdGVkTGVuZ3RoTGlz
dCIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIlNWR0FuaW1hdGVkTnVtYmVyIiA9PiAxLCAi
U1ZHQW5pbWF0ZWROdW1iZXJMaXN0IiA9PiAxLCAiU1ZHQW5pbWF0ZWRQb2ludHMiID0+IDEsCkBA
IC0xMDQwLDYgKzEwNDAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICRpbXBs
SW5jbHVkZXN7JGNsYXNzSGVhZGVyTmFtZSAuICJJbnRlcm5hbC5oIn0gPSAxOwogCiAgICAgIyBG
SVhNRTogVGhlc2UgaW5jbHVkZXMgYXJlIG9ubHkgbmVlZGVkIHdoZW4gdGhlIGNsYXNzIGlzIGEg
c3ViY2xhc3Mgb2Ygb25lIG9mIHRoZXNlIHBvbHltb3JwaGljIGNsYXNzZXMuCisgICAgJGltcGxJ
bmNsdWRlc3siRE9NQmxvYkludGVybmFsLmgifSA9IDE7CiAgICAgJGltcGxJbmNsdWRlc3siRE9N
Q1NTUnVsZUludGVybmFsLmgifSA9IDE7CiAgICAgJGltcGxJbmNsdWRlc3siRE9NQ1NTVmFsdWVJ
bnRlcm5hbC5oIn0gPSAxOwogICAgICRpbXBsSW5jbHVkZXN7IkRPTUV2ZW50SW50ZXJuYWwuaCJ9
ID0gMTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4
IDZhOTBiYjQuLjg4ODAyNjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbQpAQCAtMjE2Nyw2ICsyMTY3LDcgQEAgc3ViIEdldE5hdGl2ZVR5cGUKICAgICBy
ZXR1cm4gImludCIgaWYgJHR5cGUgZXEgInNob3J0IiBvciAkdHlwZSBlcSAidW5zaWduZWQgc2hv
cnQiOwogICAgIHJldHVybiAidW5zaWduZWQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25nIjsK
ICAgICByZXR1cm4gImludCIgaWYgJHR5cGUgZXEgImxvbmciOworICAgIHJldHVybiAibG9uZyBs
b25nIiBpZiAkdHlwZSBlcSAibG9uZyBsb25nIjsKICAgICByZXR1cm4gInVuc2lnbmVkIGxvbmcg
bG9uZyIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CiAgICAgcmV0dXJuICJib29s
IiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CiAgICAgcmV0dXJuICJTdHJpbmciIGlmICR0eXBlIGVx
ICJET01TdHJpbmciOwpAQCAtMjI2MSw2ICsyMjYyLDggQEAgbXkgJXR5cGVDYW5GYWlsQ29udmVy
c2lvbiA9ICgKICAgICAibG9uZyIgPT4gMCwKICAgICAidW5zaWduZWQgbG9uZyIgPT4gMCwKICAg
ICAidW5zaWduZWQgc2hvcnQiID0+IDAsCisgICAgImxvbmcgbG9uZyIgPT4gMCwKKyAgICAidW5z
aWduZWQgbG9uZyBsb25nIiA9PiAwCiApOwogCiAKQEAgLTIzMTcsNiArMjMyMCw3IEBAIHN1YiBK
U1ZhbHVlVG9OYXRpdmUKICAgICByZXR1cm4gIiR2YWx1ZS0+TnVtYmVyVmFsdWUoKSIgaWYgJHR5
cGUgZXEgIlNWR051bWJlciI7CiAKICAgICByZXR1cm4gInRvSW50MzIoJHZhbHVlJHttYXliZU9r
UGFyYW19KSIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciIG9yICR0eXBlIGVxICJ1bnNpZ25l
ZCBzaG9ydCIgb3IgJHR5cGUgZXEgImxvbmciOworICAgIHJldHVybiAidG9JbnQ2NCgkdmFsdWUp
IiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIiBvciAkdHlwZSBlcSAibG9uZyBsb25n
IjsKICAgICByZXR1cm4gInN0YXRpY19jYXN0PFJhbmdlOjpDb21wYXJlSG93PigkdmFsdWUtPklu
dDMyVmFsdWUoKSkiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKICAgICByZXR1cm4gInN0YXRp
Y19jYXN0PFNWR1BhaW50OjpTVkdQYWludFR5cGU+KCR2YWx1ZS0+VG9JbnQzMigpLT5JbnQzMlZh
bHVlKCkpIiBpZiAkdHlwZSBlcSAiU1ZHUGFpbnRUeXBlIjsKICAgICByZXR1cm4gInRvV2ViQ29y
ZURhdGUoJHZhbHVlKSIgaWYgJHR5cGUgZXEgIkRhdGUiOwpAQCAtMjQ1MCw2ICsyNDU0LDggQEAg
bXkgJW5vbl93cmFwcGVyX3R5cGVzID0gKAogICAgICdsb25nJyA9PiAxLAogICAgICd1bnNpZ25l
ZCBsb25nJyA9PiAxLAogICAgICdib29sZWFuJyA9PiAxLAorICAgICdsb25nIGxvbmcnID0+IDEs
CisgICAgJ3Vuc2lnbmVkIGxvbmcgbG9uZycgPT4gMSwKICAgICAnRE9NU3RyaW5nJyA9PiAxLAog
ICAgICdDb21wYXJlSG93JyA9PiAxLAogICAgICdTVkdBbmdsZScgPT4gMSwKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NT2JqZWN0c0luY2x1ZGUuaCBiL1dlYkNvcmUvYmluZGlu
Z3MvdjgvRE9NT2JqZWN0c0luY2x1ZGUuaAppbmRleCA4YThhMWIxLi5hZmVmZTEzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTU9iamVjdHNJbmNsdWRlLmgKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9ET01PYmplY3RzSW5jbHVkZS5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5j
bHVkZSAiQXR0ci5oIgogI2luY2x1ZGUgIkJhckluZm8uaCIKICNpbmNsdWRlICJCZWZvcmVMb2Fk
RXZlbnQuaCIKKyNpbmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiV2ViR0xBY3RpdmVJbmZvLmgi
CiAjaW5jbHVkZSAiV2ViR0xBcnJheS5oIgogI2luY2x1ZGUgIldlYkdMQXJyYXlCdWZmZXIuaCIK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVyaXZlZFNvdXJjZXNBbGxJbk9uZS5j
cHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L0Rlcml2ZWRTb3VyY2VzQWxsSW5PbmUuY3BwCmluZGV4
IDY2NTQ0MTIuLjU2YTNmZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVyaXZl
ZFNvdXJjZXNBbGxJbk9uZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9EZXJpdmVkU291
cmNlc0FsbEluT25lLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgImJpbmRpbmdzL1Y4
QXR0ci5jcHAiCiAjaW5jbHVkZSAiYmluZGluZ3MvVjhCYXJJbmZvLmNwcCIKICNpbmNsdWRlICJi
aW5kaW5ncy9WOEJlZm9yZUxvYWRFdmVudC5jcHAiCisjaW5jbHVkZSAiYmluZGluZ3MvVjhCbG9i
LmNwcCIKICNpbmNsdWRlICJiaW5kaW5ncy9WOFdlYkdMQWN0aXZlSW5mby5jcHAiCiAjaW5jbHVk
ZSAiYmluZGluZ3MvVjhXZWJHTEFycmF5LmNwcCIKICNpbmNsdWRlICJiaW5kaW5ncy9WOFdlYkdM
QXJyYXlCdWZmZXIuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRp
bmcuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKaW5kZXggMTc3ODk3OC4uOGJm
NjMzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC0xMTIsNiArMTEyLDExIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1ZS0+
TnVtYmVyVmFsdWUoKSk7CiAgICAgfQogCisgICAgaW5saW5lIGludDY0IHRvSW50NjQodjg6Okxv
Y2FsPHY4OjpWYWx1ZT4gdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
aW50NjQ+KHZhbHVlLT5JbnRlZ2VyVmFsdWUoKSk7CisgICAgfQorCiAgICAgLy8gRklYTUU6IERy
b3AgdGhpcyBpbiBmYXZvciBvZiB0aGUgdHlwZSBzcGVjaWZpYyB2OFZhbHVlVG9XZWJDb3JlU3Ry
aW5nIHdoZW4gd2UgcmV3b3JrIHRoZSBjb2RlIGdlbmVyYXRpb24uCiAgICAgaW5saW5lIFN0cmlu
ZyB0b1dlYkNvcmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iamVjdCkKICAgICB7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SW5kZXguY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOEluZGV4LmNwcAppbmRleCA2OTI5MGFmLi5jMTA1MGZlIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SW5kZXguY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhJbmRleC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJWOEF0dHIuaCIKICNpbmNs
dWRlICJWOEJhckluZm8uaCIKICNpbmNsdWRlICJWOEJlZm9yZUxvYWRFdmVudC5oIgorI2luY2x1
ZGUgIlY4QmxvYi5oIgogI2luY2x1ZGUgIlY4V2ViR0xBY3RpdmVJbmZvLmgiCiAjaW5jbHVkZSAi
VjhDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhDYW52YXNSZW5kZXJpbmdD
b250ZXh0MkQuaCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhJbmRleC5oIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOEluZGV4LmgKaW5kZXggN2ZlYzY2Ny4uNjkwNDQ1NiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEluZGV4LmgKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOEluZGV4LmgKQEAgLTMzMCw2ICszMzAsNyBAQCB0eXBlZGVmIHY4OjpQZXJzaXN0
ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiAoKkZ1bmN0aW9uVGVtcGxhdGVGYWN0b3J5KSgpOwog
I2RlZmluZSBET01fT0JKRUNUX1RZUEVTXzEoVikgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAogICAgIFYoQkFSSU5GTywgQmFySW5mbykgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIFYoQkVGT1JFTE9BREVWRU5U
LCBCZWZvcmVMb2FkRXZlbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg
IFYoQkxPQiwgQmxvYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXAogICAgIFYoQ0FOVkFTR1JBRElFTlQsIENhbnZhc0dyYWRpZW50KSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIFYoQ0FOVkFTUEFUVEVSTiwgQ2Fu
dmFzUGF0dGVybikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIFYo
Q0FOVkFTUkVOREVSSU5HQ09OVEVYVCwgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCkgICAgICAgICAg
ICAgICAgICAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhYTUxI
dHRwUmVxdWVzdEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcAppbmRleCAzZmU0MTRmLi5kN2NkY2QxIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcApA
QCAtMzMsOSArMzMsOSBAQAogCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJWOEJpbmRp
bmcuaCIKKyNpbmNsdWRlICJWOEJsb2IuaCIKICNpbmNsdWRlICJWOEN1c3RvbUJpbmRpbmcuaCIK
ICNpbmNsdWRlICJWOERvY3VtZW50LmgiCi0jaW5jbHVkZSAiVjhGaWxlLmgiCiAjaW5jbHVkZSAi
VjhIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhVdGls
aXRpZXMuaCIKQEAgLTE0OSwxMSArMTQ5LDExIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFhN
TEh0dHBSZXF1ZXN0OjpzZW5kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKICAg
ICAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IFY4RG9jdW1lbnQ6OnRvTmF0aXZlKG9iamVj
dCk7CiAgICAgICAgICAgICBBU1NFUlQoZG9jdW1lbnQpOwogICAgICAgICAgICAgeG1sSHR0cFJl
cXVlc3QtPnNlbmQoZG9jdW1lbnQsIGVjKTsKLSAgICAgICAgfSBlbHNlIGlmIChWOEZpbGU6Okhh
c0luc3RhbmNlKGFyZykpIHsKKyAgICAgICAgfSBlbHNlIGlmIChWOEJsb2I6Okhhc0luc3RhbmNl
KGFyZykpIHsKICAgICAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0ID0gdjg6
OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmcpOwotICAgICAgICAgICAgRmlsZSogZmlsZSA9
IFY4RmlsZTo6dG9OYXRpdmUob2JqZWN0KTsKLSAgICAgICAgICAgIEFTU0VSVChmaWxlKTsKLSAg
ICAgICAgICAgIHhtbEh0dHBSZXF1ZXN0LT5zZW5kKGZpbGUsIGVjKTsKKyAgICAgICAgICAgIEJs
b2IqIGJsb2IgPSBWOEJsb2I6OnRvTmF0aXZlKG9iamVjdCk7CisgICAgICAgICAgICBBU1NFUlQo
YmxvYik7CisgICAgICAgICAgICB4bWxIdHRwUmVxdWVzdC0+c2VuZChibG9iLCBlYyk7CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgeG1sSHR0cFJlcXVlc3QtPnNlbmQodG9XZWJDb3JlU3Ry
aW5nV2l0aE51bGxDaGVjayhhcmcpLCBlYyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0Jsb2IuY3BwIGIvV2ViQ29yZS9odG1sL0Jsb2IuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjE5NjRhZTIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwv
QmxvYi5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJC
bG9iLmgiCisKKyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworQmxvYjo6QmxvYihjb25zdCBTdHJpbmcmIHBhdGgpCisgICAgOiBtX3BhdGgocGF0aCkKKyAg
ICAsIG1fc3RhcnQoMCkKKyAgICAsIG1fbGVuZ3RoKC0xKQoreworfQorCit1bnNpZ25lZCBsb25n
IGxvbmcgQmxvYjo6c2l6ZSgpIGNvbnN0Cit7CisgICAgaWYgKG1fbGVuZ3RoICE9IC0xKQorICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihtX2xlbmd0aCk7CisK
KyAgICAvLyBGSVhNRTogSmF2YVNjcmlwdCBjYW5ub3QgcmVwcmVzZW50IHNpemVzIGFzIGxhcmdl
IGFzIHVuc2lnbmVkIGxvbmcgbG9uZywgd2UgbmVlZCB0bworICAgIC8vIGNvbWUgdXAgd2l0aCBh
biBleGNlcHRpb24gdG8gdGhyb3cgaWYgZmlsZSBzaXplIGlzIG5vdCByZXByZXNldGFibGUuCisg
ICAgbG9uZyBsb25nIHNpemU7CisgICAgaWYgKCFnZXRGaWxlU2l6ZShtX3BhdGgsIHNpemUpKQor
ICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBs
b25nPihzaXplKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0Jsb2IuaCBiL1dlYkNvcmUvaHRtbC9CbG9iLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uY2U2OWFjYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRt
bC9CbG9iLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQmxvYl9oCisjZGVmaW5lIEJsb2JfaAor
CisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEJsb2IgOiBwdWJsaWMgUmVmQ291bnRl
ZDxCbG9iPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8QmxvYj4gY3JlYXRlKGNv
bnN0IFN0cmluZyYgcGF0aCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQmxv
YihwYXRoKSk7CisgICAgfQorCisgICAgdmlydHVhbCB+QmxvYigpIHsgfQorCisgICAgY29uc3Qg
U3RyaW5nJiBwYXRoKCkgY29uc3QgeyByZXR1cm4gbV9wYXRoOyB9CisgICAgdW5zaWduZWQgbG9u
ZyBsb25nIHNpemUoKSBjb25zdDsKKworcHJvdGVjdGVkOgorICAgIEJsb2IoY29uc3QgU3RyaW5n
JiBwYXRoKTsKKworcHJpdmF0ZToKKyAgICBTdHJpbmcgbV9wYXRoOworICAgIGxvbmcgbG9uZyBt
X3N0YXJ0OworICAgIGxvbmcgbG9uZyBtX2xlbmd0aDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEJsb2JfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0Jsb2Iu
aWRsIGIvV2ViQ29yZS9odG1sL0Jsb2IuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmU5YzA2NjEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwvQmxvYi5pZGwK
QEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKK21vZHVsZSBodG1sIHsKKworICAgIGludGVyZmFjZSBCbG9iIHsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplOworICAgIH07
CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9GaWxlLmNwcCBiL1dlYkNvcmUvaHRtbC9G
aWxlLmNwcAppbmRleCBkYmJiZmE2Li4xZTkyY2NkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
RmlsZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0ZpbGUuY3BwCkBAIC0yNywyNSArMjcsMTcgQEAK
ICNpbmNsdWRlICJGaWxlLmgiCiAKICNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCi0jaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBGaWxlOjpGaWxlKGNv
bnN0IFN0cmluZyYgcGF0aCkKLSAgICA6IG1fcGF0aChwYXRoKQotICAgICwgbV9maWxlTmFtZShw
YXRoR2V0RmlsZU5hbWUocGF0aCkpCisgICAgOiBCbG9iKHBhdGgpCisgICAgLCBtX25hbWUocGF0
aEdldEZpbGVOYW1lKHBhdGgpKQogewogfQogCi11bnNpZ25lZCBsb25nIGxvbmcgRmlsZTo6Zmls
ZVNpemUoKQorRmlsZTo6fkZpbGUoKQogewotICAgIC8vIEZJWE1FOiBTaG91bGQgd2UgY2FjaGUg
dGhpcz8KLSAgICAvLyBGSVhNRTogSmF2YVNjcmlwdCBjYW5ub3QgcmVwcmVzZW50IHNpemVzIGFz
IGxhcmdlIGFzIHVuc2lnbmVkIGxvbmcgbG9uZywgd2UgbmVlZCB0bwotICAgIC8vIGNvbWUgdXAg
d2l0aCBhbiBleGNlcHRpb24gdG8gdGhyb3cgaWYgZmlsZSBzaXplIGlzIG5vdCByZXByZXNldGFi
bGUuCi0gICAgbG9uZyBsb25nIHNpemU7Ci0gICAgaWYgKCFnZXRGaWxlU2l6ZShtX3BhdGgsIHNp
emUpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gc2l6ZTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGUuaCBiL1dlYkNvcmUv
aHRtbC9GaWxlLmgKaW5kZXggN2Q3OWFhNS4uMjY4M2E4MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL0ZpbGUuaAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZS5oCkBAIC0yNiwzMCArMjYsMzEgQEAK
ICNpZm5kZWYgRmlsZV9oCiAjZGVmaW5lIEZpbGVfaAogCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKKyNpbmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBj
bGFzcyBGaWxlIDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZT4gewotICAgIHB1YmxpYzoKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RmlsZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCkKLSAg
ICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxlKHBhdGgpKTsKLSAg
ICAgICAgfQorY2xhc3MgRmlsZSA6IHB1YmxpYyBCbG9iIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxGaWxlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwYXRoKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBGaWxlKHBhdGgpKTsKKyAgICB9CiAKLSAgICAgICAgY29u
c3QgU3RyaW5nJiBmaWxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZU5hbWU7IH0KLSAgICAg
ICAgdW5zaWduZWQgbG9uZyBsb25nIGZpbGVTaXplKCk7CisgICAgY29uc3QgU3RyaW5nJiBuYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAKLSAgICAgICAgY29uc3QgU3RyaW5nJiBwYXRo
KCkgY29uc3QgeyByZXR1cm4gbV9wYXRoOyB9CisgICAgLy8gRklYTUU6IG9ic29sZXRlIGF0dHJp
YnV0ZXMuIFRvIGJlIHJlbW92ZWQuCisgICAgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBmaWxlU2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIHNpemUoKTsgfQogCi0gICAgcHJpdmF0ZToKLSAgICAgICAgRmlsZShjb25z
dCBTdHJpbmcmIHBhdGgpOworcHJpdmF0ZToKKyAgICBGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCk7
CisgICAgdmlydHVhbCB+RmlsZSgpOwogCi0gICAgICAgIFN0cmluZyBtX3BhdGg7Ci0gICAgICAg
IFN0cmluZyBtX2ZpbGVOYW1lOwotICAgIH07CisgICAgU3RyaW5nIG1fbmFtZTsKK307CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGUuaWRs
IGIvV2ViQ29yZS9odG1sL0ZpbGUuaWRsCmluZGV4IGVhNzYxZmIuLjI2MzJhNGQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9GaWxlLmlkbAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZS5pZGwKQEAg
LTI1LDcgKzI1LDEzIEBACiAKIG1vZHVsZSBodG1sIHsKIAotICAgIGludGVyZmFjZSBGaWxlIHsK
KyAgICBpbnRlcmZhY2UgWworICAgICAgICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKKyAgICAg
ICAgR2VuZXJhdGVUb0pTCisgICAgXSBGaWxlIDogQmxvYiB7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKworICAgICAgICAvLyBGSVhNRTogb2Jzb2xldGUgYXR0
cmlidXRlcy4gVG8gYmUgcmVtb3ZlZC4KICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyBmaWxlTmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
bG9uZyBmaWxlU2l6ZTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS94bWwvWE1MSHR0cFJl
cXVlc3QuY3BwIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IGYxYTc5Njku
LjMyODE4ZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysg
Yi9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgogCisjaW5jbHVkZSAi
QmxvYi5oIgogI2luY2x1ZGUgIkNhY2hlLmgiCiAjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1
ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgpAQCAtMzEsNyArMzIsNiBAQAogI2luY2x1
ZGUgIkV2ZW50RXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1
ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJGaWxlLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNl
cnMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFnZW50LmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VFcnJvci5oIgpAQCAtNDM1LDcgKzQzNSw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNl
bmQoY29uc3QgU3RyaW5nJiBib2R5LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICBjcmVhdGVSZXF1
ZXN0KGVjKTsKIH0KIAotdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2VuZChGaWxlKiBib2R5LCBFeGNl
cHRpb25Db2RlJiBlYykKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNlbmQoQmxvYiogYm9keSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFpbml0U2VuZChlYykpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmggYi9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IDY5MDE5YTUuLjJjZWE1YzYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuaApAQCAtMzMsOCArMzMsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEJs
b2I7CiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIEZpbGU7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7
CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogY2xhc3MgVGhyZWFkYWJsZUxvYWRlcjsKQEAg
LTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2VuZChFeGNlcHRpb25Db2RlJik7CiAg
ICAgdm9pZCBzZW5kKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2VuZChj
b25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZW5kKEZpbGUqLCBFeGNl
cHRpb25Db2RlJik7CisgICAgdm9pZCBzZW5kKEJsb2IqLCBFeGNlcHRpb25Db2RlJik7CiAgICAg
dm9pZCBhYm9ydCgpOwogICAgIHZvaWQgc2V0UmVxdWVzdEhlYWRlcihjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IG92ZXJyaWRlTWltZVR5cGUoY29uc3QgU3RyaW5nJiBvdmVycmlkZSk7CmRpZmYgLS1naXQgYS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDg1YzU4Yzku
LmQ3ZmY1ZTYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMDEtMTQgIEppYW4gTGkgIDxqaWFu
bGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEltcGxlbWVudCBGaWxlIGFuZCBCbG9iIGludGVyZmFjZXMgYXMgZGVmaW5lZCBp
biBGaWxlIEFQSSBzcGVjLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzI5MTIKKworICAgICAgICAqIE1pZ3JhdGVIZWFkZXJzLm1ha2U6CisKIDIwMTAt
MDEtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL01pZ3JhdGVI
ZWFkZXJzLm1ha2UgYi9XZWJLaXQvbWFjL01pZ3JhdGVIZWFkZXJzLm1ha2UKaW5kZXggMDcyZGE2
NS4uN2QwMWM5OSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9NaWdyYXRlSGVhZGVycy5tYWtlCisr
KyBiL1dlYktpdC9tYWMvTWlncmF0ZUhlYWRlcnMubWFrZQpAQCAtMzYsNiArMzYsOCBAQCBhbGwg
OiBcCiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTS5oIFwKICAgICAkKFBVQkxJQ19IRUFE
RVJTX0RJUikvRE9NQWJzdHJhY3RWaWV3LmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9E
T01BdHRyLmggXAorICAgICQoUFJJVkFURV9IRUFERVJTX0RJUikvRE9NQmxvYi5oIFwKKyAgICAk
KElOVEVSTkFMX0hFQURFUlNfRElSKS9ET01CbG9iSW50ZXJuYWwuaCBcCiAgICAgJChQVUJMSUNf
SEVBREVSU19ESVIpL0RPTUNEQVRBU2VjdGlvbi5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJ
UikvRE9NQ1NTLmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01DU1NDaGFyc2V0UnVs
ZS5oIFwK
</data>
<flag name="review"
          id="29269"
          type_id="1"
          status="-"
          setter="dimich"
    />
    <flag name="commit-queue"
          id="29270"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46957</attachid>
            <date>2010-01-19 16:05:15 -0800</date>
            <delta_ts>2010-01-19 16:42:39 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>32912_9</filename>
            <type>text/plain</type>
            <size>41997</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rIGIvV2Vi
Q29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKaW5kZXggYzc0NzEzYS4uMTk2OTBi
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKKysr
IGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKQEAgLTE0OSw2ICsxNDks
NyBAQCAkKHBhdHN1YnN0ICUuaCwlLmNwcCwkKEdFTikpOiAkKGludGVybWVkaWF0ZXMpL2RvbS8l
LmNwcCA6ICQoaW50ZXJtZWRpYXRlcykvZG9tLwogCiAjIEhUTUwKIEdFTiA6PSBcCisgICAgJChp
bnRlcm1lZGlhdGVzKS9odG1sL0pTQmxvYi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2h0bWwv
SlNEYXRhR3JpZENvbHVtbi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2h0bWwvSlNEYXRhR3Jp
ZENvbHVtbkxpc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9odG1sL0pTRmlsZS5oIFwKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsgYi9XZWJDb3Jl
L0FuZHJvaWQuZGVyaXZlZC52OGJpbmRpbmdzLm1rCmluZGV4IDdiNjg3ZTguLmEzYTk2NzMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKKysrIGIvV2Vi
Q29yZS9BbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawpAQCAtMTMyLDYgKzEzMiw3IEBAICQo
cGF0c3Vic3QgJS5oLCUuY3BwLCQoR0VOKSk6ICQoaW50ZXJtZWRpYXRlcykvYmluZGluZ3MvJS5j
cHAgOiAkKGludGVybWVkaWF0ZXMpCiAKICMgSFRNTAogR0VOIDo9IFwKKyAgICAkKGludGVybWVk
aWF0ZXMpL2JpbmRpbmdzL1Y4QmxvYi5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdz
L1Y4RGF0YUdyaWRDb2x1bW4uaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9iaW5kaW5ncy9WOERh
dGFHcmlkQ29sdW1uTGlzdC5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL2JpbmRpbmdzL1Y4Rmls
ZS5oIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5t
awppbmRleCA4MjNkZDM1Li5mMTQzN2MzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQubWsK
KysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0yMzQsNiArMjM0LDcgQEAgTE9DQUxfU1JDX0ZJ
TEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJXAogCWhpc3RvcnkvYW5kcm9pZC9IaXN0b3J5
SXRlbUFuZHJvaWQuY3BwIFwKIAlcCisJaHRtbC9CbG9iLmNwcCBcCiAJaHRtbC9Db2xsZWN0aW9u
Q2FjaGUuY3BwIFwKIAlodG1sL0ZpbGUuY3BwIFwKIAlodG1sL0ZpbGVMaXN0LmNwcCBcCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDkyMzA5
MDcuLjcwOTk4YTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTAtMDEtMTkgIEppYW4gTGkgIDxqaWFubGlA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEltcGxlbWVudCBGaWxlIGFuZCBCbG9iIGludGVyZmFjZXMgYXMgZGVmaW5lZCBpbiBG
aWxlIEFQSSBzcGVjLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzI5MTIKKworICAgICAgICAqIEFuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5tazoK
KyAgICAgICAgKiBBbmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tazoKKyAgICAgICAgKiBBbmRy
b2lkLm1rOgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLmNwcDoKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5tYWtlOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnByaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoK
KyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViQ29yZVNvdXJjZXMu
YmtsOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgICogYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MLmg6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9QdWJsaWNET01J
bnRlcmZhY2VzLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbToKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKiBi
aW5kaW5ncy92OC9ET01PYmplY3RzSW5jbHVkZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0Rl
cml2ZWRTb3VyY2VzQWxsSW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4QmluZGlu
Zy5oOgorICAgICAgICAoV2ViQ29yZTo6dG9JbnQ2NCk6CisgICAgICAgICogYmluZGluZ3Mvdjgv
VjhJbmRleC5jcHA6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhJbmRleC5oOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4WE1MSHR0cFJlcXVlc3Q6OnNlbmRDYWxsYmFjayk6CisgICAgICAgICogaHRt
bC9GaWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OkZpbGUpOgorICAgICAgICAqIGh0
bWwvRmlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGU6Om5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6ZmlsZU5hbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZTo6ZmlsZVNpemUpOgorICAgICAgICAqIGh0bWwvRmlsZS5p
ZGw6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlhNTEh0dHBSZXF1ZXN0OjpzZW5kKToKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuaDoK
KwogMjAxMC0wMS0xOSAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z25zQGdub21lLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLiBCdWlsZCBmaXhlcyBmb3IgbWFrZSBkaXN0Y2hlY2sgLSBtaXNz
aW5nIGZpbGVzLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAppbmRleCBhODhhZGVmLi4xN2Q4YWQ5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTQXR0ci5jcHAiCiAjaW5jbHVkZSAi
SlNCYXJJbmZvLmNwcCIKICNpbmNsdWRlICJKU0JlZm9yZUxvYWRFdmVudC5jcHAiCisjaW5jbHVk
ZSAiSlNCbG9iLmNwcCIKICNpbmNsdWRlICJKU0NhbnZhc0dyYWRpZW50LmNwcCIKICNpbmNsdWRl
ICJKU0NhbnZhc1BhdHRlcm4uY3BwIgogI2luY2x1ZGUgIkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4
dC5jcHAiCmRpZmYgLS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYzI2OWI5Ni4uMzY3NmRjOSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtNTMsNiArNTMsNyBAQCBET01fQ0xBU1NFUyA9IFwKICAgICBBdHRyIFwKICAgICBC
YXJJbmZvIFwKICAgICBCZWZvcmVMb2FkRXZlbnQgXAorICAgIEJsb2IgXAogICAgIENEQVRBU2Vj
dGlvbiBcCiAgICAgQ1NTQ2hhcnNldFJ1bGUgXAogICAgIENTU0ZvbnRGYWNlUnVsZSBcCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpp
bmRleCBhZDcyY2FiLi40NjczOTFkIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTE2Myw2ICsxNjMsNyBAQCBJRExfQklO
RElOR1MgKz0gXAogCVdlYkNvcmUvZG9tL1dlYktpdEFuaW1hdGlvbkV2ZW50LmlkbCBcCiAJV2Vi
Q29yZS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmlkbCBcCiAJV2ViQ29yZS9kb20vV2hlZWxF
dmVudC5pZGwgXAorCVdlYkNvcmUvaHRtbC9CbG9iLmlkbCBcCiAJV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTEFycmF5LmlkbCBcCiAJV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEFycmF5QnVmZmVy
LmlkbCBcCiAJV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEJ5dGVBcnJheS5pZGwgXApAQCAtOTUx
LDYgKzk1Miw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9oaXN0b3J5L0hpc3Rv
cnlJdGVtLmggXAogCVdlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwIFwKIAlXZWJDb3JlL2hp
c3RvcnkvUGFnZUNhY2hlLmggXAorICAgICAgICBXZWJDb3JlL2h0bWwvQmxvYi5jcHAgXAorICAg
ICAgICBXZWJDb3JlL2h0bWwvQmxvYi5oIFwKIAlXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0Nv
bnRleHRBdHRyaWJ1dGVzLmggXAogCVdlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQu
Y3BwIFwKIAlXZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmggXApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBhYTVm
NTliLi43NmFlNzM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtNzgsNiArNzgsNyBAQAogICAgICAgICAgICAgJ2RvbS9XZWJL
aXRBbmltYXRpb25FdmVudC5pZGwnLAogICAgICAgICAgICAgJ2RvbS9XZWJLaXRUcmFuc2l0aW9u
RXZlbnQuaWRsJywKICAgICAgICAgICAgICdkb20vV2hlZWxFdmVudC5pZGwnLAorICAgICAgICAg
ICAgJ2h0bWwvQmxvYi5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQWN0aXZl
SW5mby5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQXJyYXkuaWRsJywKICAg
ICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEFycmF5QnVmZmVyLmlkbCcsCkBAIC0xMjk2LDYg
KzEyOTcsOCBAQAogICAgICAgICAgICAgJ2hpc3RvcnkvSGlzdG9yeUl0ZW0uaCcsCiAgICAgICAg
ICAgICAnaGlzdG9yeS9QYWdlQ2FjaGUuY3BwJywKICAgICAgICAgICAgICdoaXN0b3J5L1BhZ2VD
YWNoZS5oJywKKyAgICAgICAgICAgICdodG1sL0Jsb2IuY3BwJywKKyAgICAgICAgICAgICdodG1s
L0Jsb2IuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xBcnJheS5jcHAnLAogICAg
ICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMQXJyYXkuaCcsCiAgICAgICAgICAgICAnaHRtbC9j
YW52YXMvV2ViR0xBcnJheUJ1ZmZlci5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3Jl
LnByaSBiL1dlYkNvcmUvV2ViQ29yZS5wcmkKaW5kZXggMzg2MTBkZi4uMWE2NTgzZSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnByaQorKysgYi9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0y
NzEsNiArMjcxLDcgQEAgSURMX0JJTkRJTkdTICs9IFwKICAgICBkb20vV2ViS2l0QW5pbWF0aW9u
RXZlbnQuaWRsIFwKICAgICBkb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmlkbCBcCiAgICAgZG9t
L1doZWVsRXZlbnQuaWRsIFwKKyAgICBodG1sL0Jsb2IuaWRsIFwKICAgICBodG1sL2NhbnZhcy9X
ZWJHTEFycmF5LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvV2ViR0xBcnJheUJ1ZmZlci5pZGwgXAog
ICAgIGh0bWwvY2FudmFzL1dlYkdMQnl0ZUFycmF5LmlkbCBcCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCBmOGE3MWJiLi5lYjM4ZTlj
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5w
cm8KQEAgLTU1MSw2ICs1NTEsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBoaXN0b3J5L0hpc3RvcnlJ
dGVtLmNwcCBcCiAgICAgaGlzdG9yeS9xdC9IaXN0b3J5SXRlbVF0LmNwcCBcCiAgICAgaGlzdG9y
eS9QYWdlQ2FjaGUuY3BwIFwKKyAgICBodG1sL0Jsb2IuY3BwIFwKICAgICBodG1sL2NhbnZhcy9D
YW52YXNHcmFkaWVudC5jcHAgXAogICAgIGh0bWwvY2FudmFzL0NhbnZhc1BhdHRlcm4uY3BwIFwK
ICAgICBodG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmNwcCBcCkBAIC0xMjM1LDYgKzEyMzYs
NyBAQCBIRUFERVJTICs9IFwKICAgICBoaXN0b3J5L0NhY2hlZFBhZ2UuaCBcCiAgICAgaGlzdG9y
eS9IaXN0b3J5SXRlbS5oIFwKICAgICBoaXN0b3J5L1BhZ2VDYWNoZS5oIFwKKyAgICBodG1sL0Js
b2IuaCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzR3JhZGllbnQuaCBcCiAgICAgaHRtbC9jYW52
YXMvQ2FudmFzUGF0dGVybi5oIFwKICAgICBodG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5Lmgg
XApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYWEzNjIzOS4uMGNlYTQx
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysg
Yi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03MjEsNiArNzIxLDYy
IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9IiQo
V2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNCbG9i
LmNwcCINCisJCQkJPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IkRlYnVn
fFdpbjMyIg0KKwkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQk+DQorCQkJCQk8
VG9vbA0KKwkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkvPg0KKwkJCQk8L0Zp
bGVDb25maWd1cmF0aW9uPg0KKwkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCU5hbWU9IlJl
bGVhc2V8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJ
CQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJTmFt
ZT0iRGVidWdfSW50ZXJuYWx8V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
CisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJ
CQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KKwkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbg0KKwkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCUV4Y2x1
ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJPg0KKwkJCQkJPFRvb2wNCisJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJ
CQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQlOYW1lPSJEZWJ1Z19BbGx8V2luMzIiDQorCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCT4NCisJCQkJCTxUb29sDQorCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCS8+DQorCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRP
dXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0Jsb2IuaCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisgICAgICAgICAgICA8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9
IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlND
YW52YXNHcmFkaWVudC5jcHAiDQogCQkJCT4NCiAJCQkJPEZpbGVDb25maWd1cmF0aW9uDQpAQCAt
Mjk3MDUsNiArMjk3NjEsMTQgQEAKIAkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJCTwvRmls
ZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcQmxvYi5jcHAiDQorCQkJ
CT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEJs
b2IuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXGh0bWxcQ29sbGVjdGlvbkNhY2hlLmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkNDk5NjBlLi5iNDMwMWY2
IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTk2LDYg
KzU5NiwxMyBAQAogCQkyOUE4MTI0QjBGQkI5Q0E5MDA1MTAyOTMgLyogQVhPYmplY3RDYWNoZU1h
Yy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5QTgx
MjQ3MEZCQjlDQTkwMDUxMDI5MyAvKiBBWE9iamVjdENhY2hlTWFjLm1tICovOyB9OwogCQkyRDkw
NjYwNjBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ5MDY2MDQwQkUxNDFENDAwOTU2OTk4IC8q
IExheW91dFN0YXRlLmNwcCAqLzsgfTsKIAkJMkQ5MDY2MDcwQkUxNDFENDAwOTU2OTk4IC8qIExh
eW91dFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRDkwNjYwNTBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyRTJEOTlDRDEwRTJCQkRBMDA0
OTYzMzcgLyogSlNCbG9iLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJFMkQ5OUNCMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuY3BwICovOyB9Owor
CQkyRTJEOTlDRTEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlDQzEwRTJCQkRBMDA0OTYzMzcgLyog
SlNCbG9iLmggKi87IH07CisJCTJFMkQ5OUU3MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlFNTEw
RTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5oICovOyB9OworCQkyRTJEOTlFODEwRTJCQzFDMDA0
OTYzMzcgLyogRE9NQmxvYi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJFMkQ5OUU2MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLm1tICovOyB9Owor
CQkyRTJEOTlFQTEwRTJCQzM4MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlFOTEwRTJCQzM4MDA0
OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggKi87IH07CisJCTJFMkQ5OUVCMTBFMkJEMzkwMDQ5
NjMzNyAvKiBET01CbG9iLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTJEOTlFNTEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxv
Yi5oICovOyB9OworCQkyRTJEOTlFQzEwRTJCRDM5MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFs
LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRTJEOTlFOTEwRTJCQzM4MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmggKi87
IH07CiAJCTJFNDM0NjQ0MEY1NDZBODIwMEIwRjFCQSAvKiBHZW5lcmljV29ya2VyVGFzay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2MzIwRjU0
NkE4MjAwQjBGMUJBIC8qIEdlbmVyaWNXb3JrZXJUYXNrLmggKi87IH07CiAJCTJFNDM0NjQ1MEY1
NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2MzMwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5jcHAg
Ki87IH07CiAJCTJFNDM0NjQ2MEY1NDZBODIwMEIwRjFCQSAvKiBXb3JrZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFNDM0NjM0MEY1NDZBODIwMEIw
RjFCQSAvKiBXb3JrZXIuaCAqLzsgfTsKQEAgLTYxNCw2ICs2MjEsOCBAQAogCQkyRTQzNDY1ODBG
NTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU0MzQ2NTYwRjU0NkE5OTAwQjBGMUJBIC8q
IENyb3NzVGhyZWFkQ29waWVyLmNwcCAqLzsgfTsKIAkJMkU0MzQ2NTkwRjU0NkE5OTAwQjBGMUJB
IC8qIENyb3NzVGhyZWFkQ29waWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyRTQzNDY1NzBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3Bp
ZXIuaCAqLzsgfTsKIAkJMkVBNzY4MDQwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExv
YWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkVBNzY4MDMwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5o
ICovOyB9OworCQkyRUFGQUYwRTEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUFGQUYwQjEwRTJBRjJEMDA3
RUQzRDYgLyogQmxvYi5jcHAgKi87IH07CisJCTJFQUZBRjBGMTBFMkFGMkQwMDdFRDNENiAvKiBC
bG9iLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUFG
QUYwQzEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oICovOyB9OwogCQkyRUNGN0FEQzEwMTYyQjM4
MDA0MjdERTcgLyogSlNFcnJvckV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFQ0Y3QURBMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vycm9yRXZl
bnQuY3BwICovOyB9OwogCQkyRUNGN0FERDEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUNGN0FE
QjEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50LmggKi87IH07CiAJCTJFQ0Y3QUUxMTAx
NjJCNTgwMDQyN0RFNyAvKiBFcnJvckV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQ0Y3QURFMTAxNjJCNTgwMDQyN0RFNyAvKiBFcnJvckV2
ZW50LmNwcCAqLzsgfTsKQEAgLTQ4NTcsNiArNDg2Niw4IEBACiAJCQkJNURGN0Y1QzIwRjAxRjky
QTAwNTI2QjRCIC8qIENTU1Byb3BlcnR5TmFtZXMuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJz
ICovLAogCQkJCTg1MzhGMDMwMEFENzFDREIwMDZBODFEMSAvKiBET01BYnN0cmFjdFZpZXcuaCBp
biBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTFDMTFDQ0JDMEFBNjA5MzcwMERBREIy
MCAvKiBET01BdHRyLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKKwkJCQkyRTJEOTlF
QjEwRTJCRDM5MDA0OTYzMzcgLyogRE9NQmxvYi5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMg
Ki8sCisJCQkJMkUyRDk5RUMxMEUyQkQzOTAwNDk2MzM3IC8qIERPTUJsb2JJbnRlcm5hbC5oIGlu
IENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJMUMxMUNDQzcwQUE2MDkzNzAwREFEQjIw
IC8qIERPTUNEQVRBU2VjdGlvbi5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJ
MUMxMUNDQzUwQUE2MDkzNzAwREFEQjIwIC8qIERPTUNoYXJhY3RlckRhdGEuaCBpbiBDb3B5IEdl
bmVyYXRlZCBIZWFkZXJzICovLAogCQkJCTFDMTFDQ0I2MEFBNjA5MzcwMERBREIyMCAvKiBET01D
b21tZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKQEAgLTU4NzIsNiArNTg4Mywx
MSBAQAogCQkyRDkwNjYwNTBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEOTA2NjBCMDY2NUQ5MzcwMDZCNkYxQSAvKiBDbGlwYm9hcmRNYWMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xp
cGJvYXJkTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQkyRDkwNjYwQzA2NjVEOTM3MDA2QjZGMUEgLyogQ2xpcGJvYXJkTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gQ2xpcGJvYXJkTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKKwkJMkUyRDk5Q0IxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Jsb2IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTJEOTlDQzEwRTJCQkRBMDA0OTYzMzcgLyogSlNC
bG9iLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQmxvYi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRTJEOTlFNTEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxv
Yi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01CbG9iLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMkQ5OUU2MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9i
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NQmxvYi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkUyRDk5RTkxMEUyQkMzODAwNDk2MzM3IC8q
IERPTUJsb2JJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01C
bG9iSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU0MzQ2MzIwRjU0
NkE4MjAwQjBGMUJBIC8qIEdlbmVyaWNXb3JrZXJUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IEdlbmVyaWNXb3JrZXJUYXNrLmg7IHBhdGggPSB3b3JrZXJzL0dlbmVyaWNX
b3JrZXJUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFNDM0NjMzMEY1NDZB
ODIwMEIwRjFCQSAvKiBXb3JrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gV29ya2VyLmNwcDsgcGF0aCA9IHdvcmtlcnMvV29ya2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkU0MzQ2MzQwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXb3JrZXIuaDsgcGF0aCA9IHdvcmtlcnMv
V29ya2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODkzLDYgKzU5MDksOSBA
QAogCQkyRTQzNDY1NjBGNTQ2QTk5MDBCMEYxQkEgLyogQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NUaHJlYWRDb3BpZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTQzNDY1NzBGNTQ2QTk5MDBCMEYxQkEg
LyogQ3Jvc3NUaHJlYWRDb3BpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q3Jvc3NUaHJlYWRDb3BpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVBNzY4
MDMwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaDsgcGF0
aCA9IHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJFQUZBRjBCMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJsb2IuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyRUFGQUYwQzEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9iLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJFQUZBRjBEMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBCbG9iLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVDRjdB
REExMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0Vycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRUNGN0FEQjEwMTYyQjM4MDA0MjdERTcgLyogSlNFcnJvckV2ZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRXJyb3JFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRUNGN0FERTEwMTYyQjU4MDA0MjdERTcgLyogRXJyb3JFdmVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFcnJvckV2ZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMTE3LDYgKzEyMTM2LDggQEAKIAkJ
ODVDNTZEMDMwQUE4QkFBNzAwRDk1NzU1IC8qIEhUTUwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJFMkQ5OUU1MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01C
bG9iLmggKi8sCisJCQkJMkUyRDk5RTYxMEUyQkMxQzAwNDk2MzM3IC8qIERPTUJsb2IubW0gKi8s
CiAJCQkJQkMwMEVGRkUwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUuaCAqLywKIAkJCQlCQzAw
RUZGRjBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZS5tbSAqLywKIAkJCQlCQzAwRjAwMTBFMEEx
ODU1MDBGRDA0RTMgLyogRE9NRmlsZUxpc3QuaCAqLywKQEAgLTEyMjU4LDYgKzEyMjc5LDcgQEAK
IAkJCWNoaWxkcmVuID0gKAogCQkJCTg1MzhGMDE4MEFENzE4RDgwMDZBODFEMSAvKiBET01BYnN0
cmFjdFZpZXdJbnRlcm5hbC5oICovLAogCQkJCTg1RTcxMTNFMEFDNUQ1MzQwMDUzMjcwRiAvKiBE
T01BdHRySW50ZXJuYWwuaCAqLywKKwkJCQkyRTJEOTlFOTEwRTJCQzM4MDA0OTYzMzcgLyogRE9N
QmxvYkludGVybmFsLmggKi8sCiAJCQkJODVFNzExM0YwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNE
QVRBU2VjdGlvbkludGVybmFsLmggKi8sCiAJCQkJODVFNzExNDAwQUM1RDUzNDAwNTMyNzBGIC8q
IERPTUNoYXJhY3RlckRhdGFJbnRlcm5hbC5oICovLAogCQkJCTg1RTcxMTQxMEFDNUQ1MzQwMDUz
MjcwRiAvKiBET01Db21tZW50SW50ZXJuYWwuaCAqLywKQEAgLTEyNjU2LDYgKzEyNjc4LDkgQEAK
IAkJOTNFRUMxRUMwOUMyODc3NzAwQzUxNUQxIC8qIGh0bWwgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJFQUZBRjBCMTBFMkFGMkQwMDdFRDNENiAvKiBC
bG9iLmNwcCAqLywKKwkJCQkyRUFGQUYwQzEwRTJBRjJEMDA3RUQzRDYgLyogQmxvYi5oICovLAor
CQkJCTJFQUZBRjBEMTBFMkFGMkQwMDdFRDNENiAvKiBCbG9iLmlkbCAqLywKIAkJCQk0OTQ4NEZB
RTEwMkNGMDFFMDAxODdERDMgLyogY2FudmFzICovLAogCQkJCTkzQzQ0MUVEMEY4MTNBMUEwMEMx
QTYzNCAvKiBDb2xsZWN0aW9uQ2FjaGUuY3BwICovLAogCQkJCTkzQzQ0MUVFMEY4MTNBMUEwMEMx
QTYzNCAvKiBDb2xsZWN0aW9uQ2FjaGUuaCAqLywKQEAgLTEyOTc0LDYgKzEyOTk5LDggQEAKIAkJ
QTgzQjc5MDgwQ0NBRkYyQjAwMEIwODI1IC8qIEhUTUwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJFMkQ5OUNCMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Js
b2IuY3BwICovLAorCQkJCTJFMkQ5OUNDMTBFMkJCREEwMDQ5NjMzNyAvKiBKU0Jsb2IuaCAqLywK
IAkJCQlBN0QyMEY2MDEwN0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uY3BwICov
LAogCQkJCUE3RDIwRjYxMTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5oICov
LAogCQkJCTQ5RUVDRjE5MTA1MDcyRjMwMDA5OUZBQiAvKiBKU1dlYkdMQXJyYXkuY3BwICovLApA
QCAtMTgzNzYsNiArMTg0MDMsMTAgQEAKIAkJCQk1OTlFNzU5MDExMDU1QTFGMDBEOTA0RkEgLyog
QnJpZGdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OUVFMTIyRTExMDYwODBGMDA4ODUxMTYgLyog
Sk5JVXRpbGl0eVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTU5RUUxMjMyMTEwNjA4Mjkw
MDg4NTExNiAvKiBKTklVdGlsaXR5LmggaW4gSGVhZGVycyAqLywKKwkJCQkyRUFGQUYwRjEwRTJB
RjJEMDA3RUQzRDYgLyogQmxvYi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkUyRDk5Q0UxMEUyQkJE
QTAwNDk2MzM3IC8qIEpTQmxvYi5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkUyRDk5RTcxMEUyQkMx
QzAwNDk2MzM3IC8qIERPTUJsb2IuaCBpbiBIZWFkZXJzICovLAorCQkJCTJFMkQ5OUVBMTBFMkJD
MzgwMDQ5NjMzNyAvKiBET01CbG9iSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjA1NDMs
NiArMjA1NzQsOSBAQAogCQkJCTU5OUU3NTkyMTEwNTVBMkEwMEQ5MDRGQSAvKiBCcmlkZ2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTlFRTEyMkMxMTA2MDgwNTAwODg1MTE2IC8qIEpOSVV0aWxp
dHlQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU5RUUxMjMwMTEwNjA4MUYwMDg4NTEx
NiAvKiBKTklVdGlsaXR5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFQUZBRjBFMTBFMkFGMkQw
MDdFRDNENiAvKiBCbG9iLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJFMkQ5OUNEMTBFMkJCREEw
MDQ5NjMzNyAvKiBKU0Jsb2IuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkUyRDk5RTgxMEUyQkMx
QzAwNDk2MzM3IC8qIERPTUJsb2IubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZVNvdXJjZXMuYmtsIGIvV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wKaW5kZXgg
NjhhMzgzOC4uOWU2MzFiZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wK
KysrIGIvV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wKQEAgLTI0OSw2ICsyNDksNyBAQCBUaGlz
IGZpbGUgY29udGFpbnMgdGhlIGxpc3Qgb2YgZmlsZXMgbmVlZGVkIHRvIGJ1aWxkIFdlYkNvcmUu
CiAgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSFRNTE5hbWVzLmNwcAogICAgICAgICBE
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXR0ci5jcHAKICAgICAgICAgRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0JhckluZm8uY3BwCisgICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNC
bG9iLmNwcAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ0RBVEFTZWN0aW9uLmNw
cAogICAgICAgICBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQ1NTQ2hhcnNldFJ1bGUuY3BwCiAg
ICAgICAgIERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNDU1NGb250RmFjZVJ1bGUuY3BwCkBAIC01
ODUsNiArNTg2LDcgQEAgVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBsaXN0IG9mIGZpbGVzIG5lZWRl
ZCB0byBidWlsZCBXZWJDb3JlLgogICAgIDwvc2V0PgogCiAgICAgPHNldCBhcHBlbmQ9IjEiIHZh
cj0iV0VCQ09SRV9TT1VSQ0VTX0hUTUwiPgorICAgICAgICBodG1sL0Jsb2IuY3BwCiAgICAgICAg
IGh0bWwvY2FudmFzL0NhbnZhc0dyYWRpZW50LmNwcAogICAgICAgICBodG1sL2NhbnZhcy9DYW52
YXNQYXR0ZXJuLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9DYW52YXNQaXhlbEFycmF5LmNwcApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNw
cCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKaW5kZXgg
N2VlMjcyMC4uZDM1ZDUzYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJl
cXVlc3RDdXN0b20uY3BwCkBAIC0yOSwxOCArMjksMTggQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJKU1hNTEh0dHBSZXF1ZXN0LmgiCiAKKyNpbmNsdWRlICJCbG9iLmgiCiAjaW5j
bHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVu
dC5oIgotI2luY2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiSlNCbG9i
LmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKICNpbmNsdWRlICJKU0RvY3VtZW50
LmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1ZGUgIkpTRXZlbnRMaXN0ZW5lci5oIgot
I2luY2x1ZGUgIkpTRmlsZS5oIgogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCiAjaW5jbHVk
ZSA8cnVudGltZS9FcnJvci5oPgogI2luY2x1ZGUgPGludGVycHJldGVyL0ludGVycHJldGVyLmg+
CkBAIC0xMDksOCArMTA5LDggQEAgSlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0OjpzZW5kKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKICAgICAgICAgICAgIGltcGwoKS0+c2Vu
ZChlYyk7CiAgICAgICAgIGVsc2UgaWYgKHZhbC5pbmhlcml0cygmSlNEb2N1bWVudDo6c19pbmZv
KSkKICAgICAgICAgICAgIGltcGwoKS0+c2VuZCh0b0RvY3VtZW50KHZhbCksIGVjKTsKLSAgICAg
ICAgZWxzZSBpZiAodmFsLmluaGVyaXRzKCZKU0ZpbGU6OnNfaW5mbykpCi0gICAgICAgICAgICBp
bXBsKCktPnNlbmQodG9GaWxlKHZhbCksIGVjKTsKKyAgICAgICAgZWxzZSBpZiAodmFsLmluaGVy
aXRzKCZKU0Jsb2I6OnNfaW5mbykpCisgICAgICAgICAgICBpbXBsKCktPnNlbmQodG9CbG9iKHZh
bCksIGVjKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgaW1wbCgpLT5zZW5kKHZhbC50b1N0
cmluZyhleGVjKSwgZWMpOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MLmggYi9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTC5oCmluZGV4IGMzMzZj
MDQuLjg4MmUzOTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLmgK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwuaApAQCAtMjYsNiArMjYsNyBAQAog
CiAjaW1wb3J0IDxXZWJDb3JlL0RPTUNvcmUuaD4KIAorI2ltcG9ydCA8V2ViQ29yZS9ET01CbG9i
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTUZpbGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NRmls
ZUxpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEFuY2hvckVsZW1lbnQuaD4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZhY2VzLmggYi9XZWJD
b3JlL2JpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oCmluZGV4IDkyMjEwMzcuLmVh
NDY0MzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRlcmZh
Y2VzLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaApA
QCAtMjM1LDcgKzIzNSwxNCBAQAogQGludGVyZmFjZSBET01FbnRpdHlSZWZlcmVuY2UgOiBET01O
b2RlIFdFQktJVF9WRVJTSU9OXzFfMwogQGVuZAogCi1AaW50ZXJmYWNlIERPTUZpbGUgOiBET01P
YmplY3QgV0VCS0lUX1ZFUlNJT05fNF8wCitAaW50ZXJmYWNlIERPTUJsb2IgOiBET01PYmplY3Qg
V0VCS0lUX1ZFUlNJT05fNF8wCitAcHJvcGVydHkocmVhZG9ubHkpIHVuc2lnbmVkIGxvbmcgbG9u
ZyBzaXplOworQGVuZAorCitAaW50ZXJmYWNlIERPTUZpbGUgOiBET01CbG9iIFdFQktJVF9WRVJT
SU9OXzRfMAorQHByb3BlcnR5KHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqbmFtZTsKKworLy8g
RklYTUU6IG9ic29sZXRlIHByb3BlcnRpZXMuIFRvIGJlIHJlbW92ZWQuCiBAcHJvcGVydHkocmVh
ZG9ubHksIGNvcHkpIE5TU3RyaW5nICpmaWxlTmFtZTsKIEBwcm9wZXJ0eShyZWFkb25seSkgdW5z
aWduZWQgbG9uZyBsb25nIGZpbGVTaXplOwogQGVuZApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggYWFmODU4Ny4uNzZiYjViOSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0xODUyLDYgKzE4NTIsOCBA
QCBteSAlbmF0aXZlVHlwZSA9ICgKICAgICAibG9uZyIgPT4gImludCIsCiAgICAgInVuc2lnbmVk
IGxvbmciID0+ICJ1bnNpZ25lZCIsCiAgICAgInVuc2lnbmVkIHNob3J0IiA9PiAidW5zaWduZWQg
c2hvcnQiLAorICAgICJsb25nIGxvbmciID0+ICJsb25nIGxvbmciLAorICAgICJ1bnNpZ25lZCBs
b25nIGxvbmciID0+ICJ1bnNpZ25lZCBsb25nIGxvbmciLAogKTsKIAogc3ViIEdldE5hdGl2ZVR5
cGUKQEAgLTE4NzUsNiArMTg3Nyw3IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICByZXR1cm4g
IiR2YWx1ZS50b051bWJlcihleGVjKSIgaWYgJHR5cGUgZXEgImRvdWJsZSI7CiAgICAgcmV0dXJu
ICIkdmFsdWUudG9GbG9hdChleGVjKSIgaWYgJHR5cGUgZXEgImZsb2F0IiBvciAkdHlwZSBlcSAi
U1ZHTnVtYmVyIjsKICAgICByZXR1cm4gIiR2YWx1ZS50b0ludDMyKGV4ZWMpIiBpZiAkdHlwZSBl
cSAidW5zaWduZWQgbG9uZyIgb3IgJHR5cGUgZXEgImxvbmciIG9yICR0eXBlIGVxICJ1bnNpZ25l
ZCBzaG9ydCI7CisgICAgcmV0dXJuICJzdGF0aWNfY2FzdDwkdHlwZT4oJHZhbHVlLnRvSW50ZWdl
cihleGVjKSkiIGlmICR0eXBlIGVxICJsb25nIGxvbmciIG9yICR0eXBlIGVxICJ1bnNpZ25lZCBs
b25nIGxvbmciOwogCiAgICAgcmV0dXJuICJ2YWx1ZVRvRGF0ZShleGVjLCAkdmFsdWUpIiBpZiAk
dHlwZSBlcSAiRGF0ZSI7CiAgICAgcmV0dXJuICJzdGF0aWNfY2FzdDxSYW5nZTo6Q29tcGFyZUhv
dz4oJHZhbHVlLnRvSW50MzIoZXhlYykpIiBpZiAkdHlwZSBlcSAiQ29tcGFyZUhvdyI7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0gYi9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KaW5kZXggOTEyNDhj
NS4uYWEwOTcxNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JPYmpDLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
T2JqQy5wbQpAQCAtNjYsNyArNjYsNyBAQCBteSAlbmF0aXZlT2JqQ1R5cGVIYXNoID0gKCJVUkwi
ID0+IDEsICJDb2xvciIgPT4gMSk7CiBteSAlYmFzZVR5cGVIYXNoID0gKCJPYmplY3QiID0+IDEs
ICJOb2RlIiA9PiAxLCAiTm9kZUxpc3QiID0+IDEsICJOYW1lZE5vZGVNYXAiID0+IDEsICJET01J
bXBsZW1lbnRhdGlvbiIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIkV2ZW50IiA9PiAxLCAi
Q1NTUnVsZSIgPT4gMSwgIkNTU1ZhbHVlIiA9PiAxLCAiU3R5bGVTaGVldCIgPT4gMSwgIk1lZGlh
TGlzdCIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIkNvdW50ZXIiID0+IDEsICJSZWN0IiA9
PiAxLCAiUkdCQ29sb3IiID0+IDEsICJYUGF0aEV4cHJlc3Npb24iID0+IDEsICJYUGF0aFJlc3Vs
dCIgPT4gMSwKLSAgICAgICAgICAgICAgICAgICAgIk5vZGVJdGVyYXRvciIgPT4gMSwgIlRyZWVX
YWxrZXIiID0+IDEsICJBYnN0cmFjdFZpZXciID0+IDEsCisgICAgICAgICAgICAgICAgICAgICJO
b2RlSXRlcmF0b3IiID0+IDEsICJUcmVlV2Fsa2VyIiA9PiAxLCAiQWJzdHJhY3RWaWV3IiA9PiAx
LCAiQmxvYiIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIlNWR0FuZ2xlIiA9PiAxLCAiU1ZH
QW5pbWF0ZWRBbmdsZSIgPT4gMSwgIlNWR0FuaW1hdGVkQm9vbGVhbiIgPT4gMSwgIlNWR0FuaW1h
dGVkRW51bWVyYXRpb24iID0+IDEsCiAgICAgICAgICAgICAgICAgICAgICJTVkdBbmltYXRlZElu
dGVnZXIiID0+IDEsICJTVkdBbmltYXRlZExlbmd0aCIgPT4gMSwgIlNWR0FuaW1hdGVkTGVuZ3Ro
TGlzdCIgPT4gMSwKICAgICAgICAgICAgICAgICAgICAgIlNWR0FuaW1hdGVkTnVtYmVyIiA9PiAx
LCAiU1ZHQW5pbWF0ZWROdW1iZXJMaXN0IiA9PiAxLCAiU1ZHQW5pbWF0ZWRQb2ludHMiID0+IDEs
CkBAIC0xMDQwLDYgKzEwNDAsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICRp
bXBsSW5jbHVkZXN7JGNsYXNzSGVhZGVyTmFtZSAuICJJbnRlcm5hbC5oIn0gPSAxOwogCiAgICAg
IyBGSVhNRTogVGhlc2UgaW5jbHVkZXMgYXJlIG9ubHkgbmVlZGVkIHdoZW4gdGhlIGNsYXNzIGlz
IGEgc3ViY2xhc3Mgb2Ygb25lIG9mIHRoZXNlIHBvbHltb3JwaGljIGNsYXNzZXMuCisgICAgJGlt
cGxJbmNsdWRlc3siRE9NQmxvYkludGVybmFsLmgifSA9IDE7CiAgICAgJGltcGxJbmNsdWRlc3si
RE9NQ1NTUnVsZUludGVybmFsLmgifSA9IDE7CiAgICAgJGltcGxJbmNsdWRlc3siRE9NQ1NTVmFs
dWVJbnRlcm5hbC5oIn0gPSAxOwogICAgICRpbXBsSW5jbHVkZXN7IkRPTUV2ZW50SW50ZXJuYWwu
aCJ9ID0gMTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmlu
ZGV4IDZhOTBiYjQuLjg4ODAyNjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQpAQCAtMjE2Nyw2ICsyMTY3LDcgQEAgc3ViIEdldE5hdGl2ZVR5cGUKICAg
ICByZXR1cm4gImludCIgaWYgJHR5cGUgZXEgInNob3J0IiBvciAkdHlwZSBlcSAidW5zaWduZWQg
c2hvcnQiOwogICAgIHJldHVybiAidW5zaWduZWQiIGlmICR0eXBlIGVxICJ1bnNpZ25lZCBsb25n
IjsKICAgICByZXR1cm4gImludCIgaWYgJHR5cGUgZXEgImxvbmciOworICAgIHJldHVybiAibG9u
ZyBsb25nIiBpZiAkdHlwZSBlcSAibG9uZyBsb25nIjsKICAgICByZXR1cm4gInVuc2lnbmVkIGxv
bmcgbG9uZyIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmcgbG9uZyI7CiAgICAgcmV0dXJuICJi
b29sIiBpZiAkdHlwZSBlcSAiYm9vbGVhbiI7CiAgICAgcmV0dXJuICJTdHJpbmciIGlmICR0eXBl
IGVxICJET01TdHJpbmciOwpAQCAtMjI2MSw2ICsyMjYyLDggQEAgbXkgJXR5cGVDYW5GYWlsQ29u
dmVyc2lvbiA9ICgKICAgICAibG9uZyIgPT4gMCwKICAgICAidW5zaWduZWQgbG9uZyIgPT4gMCwK
ICAgICAidW5zaWduZWQgc2hvcnQiID0+IDAsCisgICAgImxvbmcgbG9uZyIgPT4gMCwKKyAgICAi
dW5zaWduZWQgbG9uZyBsb25nIiA9PiAwCiApOwogCiAKQEAgLTIzMTcsNiArMjMyMCw3IEBAIHN1
YiBKU1ZhbHVlVG9OYXRpdmUKICAgICByZXR1cm4gIiR2YWx1ZS0+TnVtYmVyVmFsdWUoKSIgaWYg
JHR5cGUgZXEgIlNWR051bWJlciI7CiAKICAgICByZXR1cm4gInRvSW50MzIoJHZhbHVlJHttYXli
ZU9rUGFyYW19KSIgaWYgJHR5cGUgZXEgInVuc2lnbmVkIGxvbmciIG9yICR0eXBlIGVxICJ1bnNp
Z25lZCBzaG9ydCIgb3IgJHR5cGUgZXEgImxvbmciOworICAgIHJldHVybiAidG9JbnQ2NCgkdmFs
dWUpIiBpZiAkdHlwZSBlcSAidW5zaWduZWQgbG9uZyBsb25nIiBvciAkdHlwZSBlcSAibG9uZyBs
b25nIjsKICAgICByZXR1cm4gInN0YXRpY19jYXN0PFJhbmdlOjpDb21wYXJlSG93PigkdmFsdWUt
PkludDMyVmFsdWUoKSkiIGlmICR0eXBlIGVxICJDb21wYXJlSG93IjsKICAgICByZXR1cm4gInN0
YXRpY19jYXN0PFNWR1BhaW50OjpTVkdQYWludFR5cGU+KCR2YWx1ZS0+VG9JbnQzMigpLT5JbnQz
MlZhbHVlKCkpIiBpZiAkdHlwZSBlcSAiU1ZHUGFpbnRUeXBlIjsKICAgICByZXR1cm4gInRvV2Vi
Q29yZURhdGUoJHZhbHVlKSIgaWYgJHR5cGUgZXEgIkRhdGUiOwpAQCAtMjQ1MCw2ICsyNDU0LDgg
QEAgbXkgJW5vbl93cmFwcGVyX3R5cGVzID0gKAogICAgICdsb25nJyA9PiAxLAogICAgICd1bnNp
Z25lZCBsb25nJyA9PiAxLAogICAgICdib29sZWFuJyA9PiAxLAorICAgICdsb25nIGxvbmcnID0+
IDEsCisgICAgJ3Vuc2lnbmVkIGxvbmcgbG9uZycgPT4gMSwKICAgICAnRE9NU3RyaW5nJyA9PiAx
LAogICAgICdDb21wYXJlSG93JyA9PiAxLAogICAgICdTVkdBbmdsZScgPT4gMSwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NT2JqZWN0c0luY2x1ZGUuaCBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvRE9NT2JqZWN0c0luY2x1ZGUuaAppbmRleCA4YThhMWIxLi5hZmVmZTEzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTU9iamVjdHNJbmNsdWRlLmgKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9ET01PYmplY3RzSW5jbHVkZS5oCkBAIC0zNCw2ICszNCw3IEBACiAj
aW5jbHVkZSAiQXR0ci5oIgogI2luY2x1ZGUgIkJhckluZm8uaCIKICNpbmNsdWRlICJCZWZvcmVM
b2FkRXZlbnQuaCIKKyNpbmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiV2ViR0xBY3RpdmVJbmZv
LmgiCiAjaW5jbHVkZSAiV2ViR0xBcnJheS5oIgogI2luY2x1ZGUgIldlYkdMQXJyYXlCdWZmZXIu
aCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVyaXZlZFNvdXJjZXNBbGxJbk9u
ZS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L0Rlcml2ZWRTb3VyY2VzQWxsSW5PbmUuY3BwCmlu
ZGV4IDY2NTQ0MTIuLjU2YTNmZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVy
aXZlZFNvdXJjZXNBbGxJbk9uZS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9EZXJpdmVk
U291cmNlc0FsbEluT25lLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgImJpbmRpbmdz
L1Y4QXR0ci5jcHAiCiAjaW5jbHVkZSAiYmluZGluZ3MvVjhCYXJJbmZvLmNwcCIKICNpbmNsdWRl
ICJiaW5kaW5ncy9WOEJlZm9yZUxvYWRFdmVudC5jcHAiCisjaW5jbHVkZSAiYmluZGluZ3MvVjhC
bG9iLmNwcCIKICNpbmNsdWRlICJiaW5kaW5ncy9WOFdlYkdMQWN0aXZlSW5mby5jcHAiCiAjaW5j
bHVkZSAiYmluZGluZ3MvVjhXZWJHTEFycmF5LmNwcCIKICNpbmNsdWRlICJiaW5kaW5ncy9WOFdl
YkdMQXJyYXlCdWZmZXIuY3BwIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJp
bmRpbmcuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhCaW5kaW5nLmgKaW5kZXggMTc3ODk3OC4u
OGJmNjMzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEJpbmRpbmcuaAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QmluZGluZy5oCkBAIC0xMTIsNiArMTEyLDExIEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pih2YWx1
ZS0+TnVtYmVyVmFsdWUoKSk7CiAgICAgfQogCisgICAgaW5saW5lIGludDY0IHRvSW50NjQodjg6
OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUpCisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8aW50NjQ+KHZhbHVlLT5JbnRlZ2VyVmFsdWUoKSk7CisgICAgfQorCiAgICAgLy8gRklYTUU6
IERyb3AgdGhpcyBpbiBmYXZvciBvZiB0aGUgdHlwZSBzcGVjaWZpYyB2OFZhbHVlVG9XZWJDb3Jl
U3RyaW5nIHdoZW4gd2UgcmV3b3JrIHRoZSBjb2RlIGdlbmVyYXRpb24uCiAgICAgaW5saW5lIFN0
cmluZyB0b1dlYkNvcmVTdHJpbmcodjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iamVjdCkKICAgICB7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SW5kZXguY3BwIGIvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEluZGV4LmNwcAppbmRleCA2OTI5MGFmLi5jMTA1MGZlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4SW5kZXguY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhJbmRleC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJWOEF0dHIuaCIKICNp
bmNsdWRlICJWOEJhckluZm8uaCIKICNpbmNsdWRlICJWOEJlZm9yZUxvYWRFdmVudC5oIgorI2lu
Y2x1ZGUgIlY4QmxvYi5oIgogI2luY2x1ZGUgIlY4V2ViR0xBY3RpdmVJbmZvLmgiCiAjaW5jbHVk
ZSAiVjhDYW52YXNSZW5kZXJpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhDYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhJbmRleC5o
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEluZGV4LmgKaW5kZXggN2ZlYzY2Ny4uNjkwNDQ1NiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEluZGV4LmgKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOEluZGV4LmgKQEAgLTMzMCw2ICszMzAsNyBAQCB0eXBlZGVmIHY4OjpQZXJz
aXN0ZW50PHY4OjpGdW5jdGlvblRlbXBsYXRlPiAoKkZ1bmN0aW9uVGVtcGxhdGVGYWN0b3J5KSgp
OwogI2RlZmluZSBET01fT0JKRUNUX1RZUEVTXzEoVikgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgXAogICAgIFYoQkFSSU5GTywgQmFySW5mbykgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIFYoQkVGT1JFTE9BREVW
RU5ULCBCZWZvcmVMb2FkRXZlbnQpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAor
ICAgIFYoQkxPQiwgQmxvYikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgXAogICAgIFYoQ0FOVkFTR1JBRElFTlQsIENhbnZhc0dyYWRpZW50KSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgIFYoQ0FOVkFTUEFUVEVSTiwg
Q2FudmFzUGF0dGVybikgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAg
IFYoQ0FOVkFTUkVOREVSSU5HQ09OVEVYVCwgQ2FudmFzUmVuZGVyaW5nQ29udGV4dCkgICAgICAg
ICAgICAgICAgICAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhY
TUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhN
TEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAppbmRleCAzZmU0MTRmLi5kN2NkY2QxIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAor
KysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNw
cApAQCAtMzMsOSArMzMsOSBAQAogCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJWOEJp
bmRpbmcuaCIKKyNpbmNsdWRlICJWOEJsb2IuaCIKICNpbmNsdWRlICJWOEN1c3RvbUJpbmRpbmcu
aCIKICNpbmNsdWRlICJWOERvY3VtZW50LmgiCi0jaW5jbHVkZSAiVjhGaWxlLmgiCiAjaW5jbHVk
ZSAiVjhIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhV
dGlsaXRpZXMuaCIKQEAgLTE0OSwxMSArMTQ5LDExIEBAIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBW
OFhNTEh0dHBSZXF1ZXN0OjpzZW5kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
ICAgICAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IFY4RG9jdW1lbnQ6OnRvTmF0aXZlKG9i
amVjdCk7CiAgICAgICAgICAgICBBU1NFUlQoZG9jdW1lbnQpOwogICAgICAgICAgICAgeG1sSHR0
cFJlcXVlc3QtPnNlbmQoZG9jdW1lbnQsIGVjKTsKLSAgICAgICAgfSBlbHNlIGlmIChWOEZpbGU6
Okhhc0luc3RhbmNlKGFyZykpIHsKKyAgICAgICAgfSBlbHNlIGlmIChWOEJsb2I6Okhhc0luc3Rh
bmNlKGFyZykpIHsKICAgICAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0ID0g
djg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmcpOwotICAgICAgICAgICAgRmlsZSogZmls
ZSA9IFY4RmlsZTo6dG9OYXRpdmUob2JqZWN0KTsKLSAgICAgICAgICAgIEFTU0VSVChmaWxlKTsK
LSAgICAgICAgICAgIHhtbEh0dHBSZXF1ZXN0LT5zZW5kKGZpbGUsIGVjKTsKKyAgICAgICAgICAg
IEJsb2IqIGJsb2IgPSBWOEJsb2I6OnRvTmF0aXZlKG9iamVjdCk7CisgICAgICAgICAgICBBU1NF
UlQoYmxvYik7CisgICAgICAgICAgICB4bWxIdHRwUmVxdWVzdC0+c2VuZChibG9iLCBlYyk7CiAg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgeG1sSHR0cFJlcXVlc3QtPnNlbmQodG9XZWJDb3Jl
U3RyaW5nV2l0aE51bGxDaGVjayhhcmcpLCBlYyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL0Jsb2IuY3BwIGIvV2ViQ29yZS9odG1sL0Jsb2IuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjBiNjc3ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0
bWwvQmxvYi5jcHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
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
ICJCbG9iLmgiCisKKyNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworQmxvYjo6QmxvYihjb25zdCBTdHJpbmcmIHBhdGgpCisgICAgOiBtX3BhdGgocGF0aCkK
K3sKK30KKwordW5zaWduZWQgbG9uZyBsb25nIEJsb2I6OnNpemUoKSBjb25zdAoreworICAgIC8v
IEZJWE1FOiBKYXZhU2NyaXB0IGNhbm5vdCByZXByZXNlbnQgc2l6ZXMgYXMgbGFyZ2UgYXMgdW5z
aWduZWQgbG9uZyBsb25nLCB3ZSBuZWVkIHRvCisgICAgLy8gY29tZSB1cCB3aXRoIGFuIGV4Y2Vw
dGlvbiB0byB0aHJvdyBpZiBmaWxlIHNpemUgaXMgbm90IHJlcHJlc2V0YWJsZS4KKyAgICBsb25n
IGxvbmcgc2l6ZTsKKyAgICBpZiAoIWdldEZpbGVTaXplKG1fcGF0aCwgc2l6ZSkpCisgICAgICAg
IHJldHVybiAwOworICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KHNp
emUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvQmxvYi5oIGIvV2ViQ29yZS9odG1sL0Jsb2IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5iOTEwZThmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0Jsb2Iu
aApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBCbG9iX2gKKyNkZWZpbmUgQmxvYl9oCisKKyNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQmxvYiA6IHB1YmxpYyBSZWZDb3VudGVkPEJsb2I+
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxCbG9iPiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiBwYXRoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBCbG9iKHBhdGgp
KTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5CbG9iKCkgeyB9CisKKyAgICBjb25zdCBTdHJpbmcm
IHBhdGgoKSBjb25zdCB7IHJldHVybiBtX3BhdGg7IH0KKyAgICB1bnNpZ25lZCBsb25nIGxvbmcg
c2l6ZSgpIGNvbnN0OworCitwcm90ZWN0ZWQ6CisgICAgQmxvYihjb25zdCBTdHJpbmcmIHBhdGgp
OworCitwcml2YXRlOgorICAgIFN0cmluZyBtX3BhdGg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBCbG9iX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9CbG9i
LmlkbCBiL1dlYkNvcmUvaHRtbC9CbG9iLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41NzNiZTM1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0Jsb2IuaWRs
CkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisKKyAgICBpbnRlcmZhY2UgQmxvYiB7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZTsKKyAgICB9
OworCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRmlsZS5jcHAgYi9XZWJDb3JlL2h0bWwv
RmlsZS5jcHAKaW5kZXggZGJiYmZhNi4uMjVlMjhlNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0ZpbGUuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9GaWxlLmNwcApAQCAtMjcsMjUgKzI3LDEzIEBA
CiAjaW5jbHVkZSAiRmlsZS5oIgogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5oIgotI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRmlsZTo6RmlsZShj
b25zdCBTdHJpbmcmIHBhdGgpCi0gICAgOiBtX3BhdGgocGF0aCkKLSAgICAsIG1fZmlsZU5hbWUo
cGF0aEdldEZpbGVOYW1lKHBhdGgpKQorICAgIDogQmxvYihwYXRoKQorICAgICwgbV9uYW1lKHBh
dGhHZXRGaWxlTmFtZShwYXRoKSkKIHsKIH0KIAotdW5zaWduZWQgbG9uZyBsb25nIEZpbGU6OmZp
bGVTaXplKCkKLXsKLSAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGNhY2hlIHRoaXM/Ci0gICAgLy8g
RklYTUU6IEphdmFTY3JpcHQgY2Fubm90IHJlcHJlc2VudCBzaXplcyBhcyBsYXJnZSBhcyB1bnNp
Z25lZCBsb25nIGxvbmcsIHdlIG5lZWQgdG8KLSAgICAvLyBjb21lIHVwIHdpdGggYW4gZXhjZXB0
aW9uIHRvIHRocm93IGlmIGZpbGUgc2l6ZSBpcyBub3QgcmVwcmVzZXRhYmxlLgotICAgIGxvbmcg
bG9uZyBzaXplOwotICAgIGlmICghZ2V0RmlsZVNpemUobV9wYXRoLCBzaXplKSkKLSAgICAgICAg
cmV0dXJuIDA7Ci0gICAgcmV0dXJuIHNpemU7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9GaWxlLmggYi9XZWJDb3JlL2h0bWwvRmlsZS5oCmlu
ZGV4IDdkNzlhYTUuLmJlNTNlMzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9GaWxlLmgKKysr
IGIvV2ViQ29yZS9odG1sL0ZpbGUuaApAQCAtMjYsMzAgKzI2LDMwIEBACiAjaWZuZGVmIEZpbGVf
aAogI2RlZmluZSBGaWxlX2gKIAotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVk
ZSAiQmxvYi5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgRmlsZSA6IHB1
YmxpYyBSZWZDb3VudGVkPEZpbGU+IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPEZpbGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhdGgpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRmlsZShwYXRoKSk7Ci0gICAgICAgIH0KK2NsYXNz
IEZpbGUgOiBwdWJsaWMgQmxvYiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Rmls
ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcGF0aCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZihuZXcgRmlsZShwYXRoKSk7CisgICAgfQogCi0gICAgICAgIGNvbnN0IFN0cmluZyYgZmls
ZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVOYW1lOyB9Ci0gICAgICAgIHVuc2lnbmVkIGxv
bmcgbG9uZyBmaWxlU2l6ZSgpOworICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbmFtZTsgfQogCi0gICAgICAgIGNvbnN0IFN0cmluZyYgcGF0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGF0aDsgfQorICAgIC8vIEZJWE1FOiBvYnNvbGV0ZSBhdHRyaWJ1dGVzLiBUbyBiZSBy
ZW1vdmVkLgorICAgIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX25h
bWU7IH0KKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgZmlsZVNpemUoKSBjb25zdCB7IHJldHVybiBz
aXplKCk7IH0KIAotICAgIHByaXZhdGU6Ci0gICAgICAgIEZpbGUoY29uc3QgU3RyaW5nJiBwYXRo
KTsKK3ByaXZhdGU6CisgICAgRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpOwogCi0gICAgICAgIFN0
cmluZyBtX3BhdGg7Ci0gICAgICAgIFN0cmluZyBtX2ZpbGVOYW1lOwotICAgIH07CisgICAgU3Ry
aW5nIG1fbmFtZTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0ZpbGUuaWRsIGIvV2ViQ29yZS9odG1sL0ZpbGUuaWRsCmluZGV4IGVhNzYx
ZmIuLjI2MzJhNGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9GaWxlLmlkbAorKysgYi9XZWJD
b3JlL2h0bWwvRmlsZS5pZGwKQEAgLTI1LDcgKzI1LDEzIEBACiAKIG1vZHVsZSBodG1sIHsKIAot
ICAgIGludGVyZmFjZSBGaWxlIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBHZW5lcmF0ZU5h
dGl2ZUNvbnZlcnRlciwKKyAgICAgICAgR2VuZXJhdGVUb0pTCisgICAgXSBGaWxlIDogQmxvYiB7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKworICAgICAgICAv
LyBGSVhNRTogb2Jzb2xldGUgYXR0cmlidXRlcy4gVG8gYmUgcmVtb3ZlZC4KICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBmaWxlTmFtZTsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZyBmaWxlU2l6ZTsKICAgICB9OwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwIGIvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVl
c3QuY3BwCmluZGV4IGYxYTc5NjkuLjMyODE4ZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcAorKysgYi9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKQEAg
LTIyLDYgKzIyLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVx
dWVzdC5oIgogCisjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkNhY2hlLmgiCiAjaW5jbHVk
ZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIgpAQCAt
MzEsNyArMzIsNiBAQAogI2luY2x1ZGUgIkV2ZW50RXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiRXZl
bnRMaXN0ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKLSNpbmNsdWRlICJGaWxlLmgi
CiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JUaW1lbGluZUFn
ZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgpAQCAtNDM1LDcgKzQzNSw3IEBAIHZv
aWQgWE1MSHR0cFJlcXVlc3Q6OnNlbmQoY29uc3QgU3RyaW5nJiBib2R5LCBFeGNlcHRpb25Db2Rl
JiBlYykKICAgICBjcmVhdGVSZXF1ZXN0KGVjKTsKIH0KIAotdm9pZCBYTUxIdHRwUmVxdWVzdDo6
c2VuZChGaWxlKiBib2R5LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6
OnNlbmQoQmxvYiogYm9keSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFpbml0U2Vu
ZChlYykpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1dlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmggYi9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCmluZGV4IDY5MDE5YTUuLjJj
ZWE1YzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgKKysrIGIvV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaApAQCAtMzMsOCArMzMsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIEJsb2I7CiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIEZpbGU7CiBj
bGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwogY2xhc3Mg
VGhyZWFkYWJsZUxvYWRlcjsKQEAgLTcyLDcgKzcyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2Vu
ZChFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZW5kKERvY3VtZW50KiwgRXhjZXB0aW9uQ29k
ZSYpOwogICAgIHZvaWQgc2VuZChjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7Ci0gICAg
dm9pZCBzZW5kKEZpbGUqLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZW5kKEJsb2IqLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBhYm9ydCgpOwogICAgIHZvaWQgc2V0UmVxdWVzdEhl
YWRlcihjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIG92ZXJyaWRlTWltZVR5cGUoY29uc3QgU3RyaW5nJiBvdmVy
cmlkZSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCmluZGV4IDY2ZmU5YzAuLjZjYzU5M2QgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAt
MDEtMTkgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBGaWxlIGFuZCBCbG9iIGlu
dGVyZmFjZXMgYXMgZGVmaW5lZCBpbiBGaWxlIEFQSSBzcGVjLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzI5MTIKKworICAgICAgICAqIE1pZ3JhdGVI
ZWFkZXJzLm1ha2U6CisKIDIwMTAtMDEtMTkgIEpvaG4gU3VsbGl2YW4gIDxzdWxsaXZhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTMzODU0CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL01pZ3JhdGVIZWFkZXJzLm1ha2UgYi9XZWJL
aXQvbWFjL01pZ3JhdGVIZWFkZXJzLm1ha2UKaW5kZXggMDcyZGE2NS4uN2QwMWM5OSAxMDA2NDQK
LS0tIGEvV2ViS2l0L21hYy9NaWdyYXRlSGVhZGVycy5tYWtlCisrKyBiL1dlYktpdC9tYWMvTWln
cmF0ZUhlYWRlcnMubWFrZQpAQCAtMzYsNiArMzYsOCBAQCBhbGwgOiBcCiAgICAgJChQVUJMSUNf
SEVBREVSU19ESVIpL0RPTS5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NQWJzdHJh
Y3RWaWV3LmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01BdHRyLmggXAorICAgICQo
UFJJVkFURV9IRUFERVJTX0RJUikvRE9NQmxvYi5oIFwKKyAgICAkKElOVEVSTkFMX0hFQURFUlNf
RElSKS9ET01CbG9iSW50ZXJuYWwuaCBcCiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTUNE
QVRBU2VjdGlvbi5oIFwKICAgICAkKFBVQkxJQ19IRUFERVJTX0RJUikvRE9NQ1NTLmggXAogICAg
ICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01DU1NDaGFyc2V0UnVsZS5oIFwK
</data>
<flag name="review"
          id="29304"
          type_id="1"
          status="+"
          setter="dimich"
    />
    <flag name="commit-queue"
          id="29305"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>