<?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>90584</bug_id>
          
          <creation_ts>2012-07-04 21:33:30 -0700</creation_ts>
          <short_desc>Add DispatchQueue class.</short_desc>
          <delta_ts>2012-08-09 17:29:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>UNCONFIRMED</bug_status>
          <resolution></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>90375</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kwang Yul Seo">skyul</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dongseong.hwang</cc>
    
    <cc>gram</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>levin+threading</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>663288</commentid>
    <comment_count>0</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-07-04 21:33:30 -0700</bug_when>
    <thetext>DispatchQueue is a simple C++ wrapper around libdispatch (GCD). A thread pool based fallback implementation is also avaiable. So ports without libdispatch can use the same API.

It provides only the small subset of the original libdispatch API. There are three types of DispatchQueue: serial, global and main. These queues correspond to the serial, concurrent global and main queue in libdispatch.

DispatchQueue::async(const Function&lt;void()&gt;&amp;) method is used to schedule a task regardless of the queue type.

Currently, it is used by parallel image decoders to perform image decoding concurrently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663297</commentid>
    <comment_count>1</comment_count>
      <attachid>150873</attachid>
    <who name="Kwonjin Jeong">gram</who>
    <bug_when>2012-07-04 21:54:24 -0700</bug_when>
    <thetext>Created attachment 150873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663305</commentid>
    <comment_count>2</comment_count>
      <attachid>150873</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-04 22:22:15 -0700</bug_when>
    <thetext>Comment on attachment 150873
Patch

Attachment 150873 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13126985</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663311</commentid>
    <comment_count>3</comment_count>
      <attachid>150873</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-04 22:33:24 -0700</bug_when>
    <thetext>Comment on attachment 150873
Patch

Attachment 150873 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/13138848</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663343</commentid>
    <comment_count>4</comment_count>
      <attachid>150873</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-04 23:49:36 -0700</bug_when>
    <thetext>Comment on attachment 150873
Patch

Attachment 150873 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13136919</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663433</commentid>
    <comment_count>5</comment_count>
      <attachid>150909</attachid>
    <who name="Kwonjin Jeong">gram</who>
    <bug_when>2012-07-05 03:03:40 -0700</bug_when>
    <thetext>Created attachment 150909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663437</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-05 03:06:36 -0700</bug_when>
    <thetext>Attachment 150909 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmak...&quot; exit_code: 1
Source/WTF/wtf/chromium/MainThreadChromium.cpp:60:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WTF/wtf/chromium/MainThreadChromium.cpp:65:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663439</commentid>
    <comment_count>7</comment_count>
      <attachid>150909</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-05 03:08:11 -0700</bug_when>
    <thetext>Comment on attachment 150909
Patch

Attachment 150909 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13152011</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663440</commentid>
    <comment_count>8</comment_count>
      <attachid>150909</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-07-05 03:08:55 -0700</bug_when>
    <thetext>Comment on attachment 150909
Patch

Attachment 150909 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13151010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663443</commentid>
    <comment_count>9</comment_count>
      <attachid>150909</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-05 03:13:02 -0700</bug_when>
    <thetext>Comment on attachment 150909
Patch

Attachment 150909 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13136985</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663445</commentid>
    <comment_count>10</comment_count>
      <attachid>150909</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-05 03:15:30 -0700</bug_when>
    <thetext>Comment on attachment 150909
Patch

Attachment 150909 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13138906</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663447</commentid>
    <comment_count>11</comment_count>
      <attachid>150912</attachid>
    <who name="Kwonjin Jeong">gram</who>
    <bug_when>2012-07-05 03:16:42 -0700</bug_when>
    <thetext>Created attachment 150912
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663449</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-05 03:19:47 -0700</bug_when>
    <thetext>Attachment 150912 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmak...&quot; exit_code: 1
Source/WTF/wtf/chromium/MainThreadChromium.cpp:60:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WTF/wtf/chromium/MainThreadChromium.cpp:65:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663454</commentid>
    <comment_count>13</comment_count>
      <attachid>150912</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-05 03:24:06 -0700</bug_when>
    <thetext>Comment on attachment 150912
Patch

Attachment 150912 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13141128</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663479</commentid>
    <comment_count>14</comment_count>
      <attachid>150922</attachid>
    <who name="Kwonjin Jeong">gram</who>
    <bug_when>2012-07-05 04:21:18 -0700</bug_when>
    <thetext>Created attachment 150922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663484</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-05 04:23:09 -0700</bug_when>
    <thetext>Attachment 150922 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmak...&quot; exit_code: 1
Source/WTF/wtf/chromium/MainThreadChromium.cpp:60:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WTF/wtf/chromium/MainThreadChromium.cpp:65:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663488</commentid>
    <comment_count>16</comment_count>
      <attachid>150924</attachid>
    <who name="Kwonjin Jeong">gram</who>
    <bug_when>2012-07-05 04:26:05 -0700</bug_when>
    <thetext>Created attachment 150924
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663490</commentid>
    <comment_count>17</comment_count>
      <attachid>150924</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-07-05 04:32:19 -0700</bug_when>
    <thetext>Comment on attachment 150924
Patch

Attachment 150924 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13143135</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663684</commentid>
    <comment_count>18</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-07-05 12:39:38 -0700</bug_when>
    <thetext>What&apos;s the rationale for adding this class? 

We already have a WorkQueue class in the WebKit2 platform code which does more or less the same thing (and it&apos;s actually used in a bunch of places).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663711</commentid>
    <comment_count>19</comment_count>
      <attachid>150924</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-07-05 13:42:29 -0700</bug_when>
    <thetext>Comment on attachment 150924
Patch

r- due to Anders&apos; comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>663837</commentid>
    <comment_count>20</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-07-05 19:21:24 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; What&apos;s the rationale for adding this class? 
&gt; 
&gt; We already have a WorkQueue class in the WebKit2 platform code which does more or less the same thing (and it&apos;s actually used in a bunch of places).

Parallel image decoders create a serial queue for each image being decoded. That means a large number of serial queues can be created and used at the same time. DispatchQueue internally manages a pool of threads, and assigns a thread from the pool to each serial queue. So more than two serial queues can share a single underlying thread. libdispatch&apos;s serial queue handles this internally. DispatchQueue&apos;s generic back-end (thread-pool implementation) follows this.

WorkQueue is not ideal for this situation because a WorkQueue instance creates its own thread. WorkQueueMac is the only exception because it uses libdispatch&apos;s serial queue. If parallel image decoders use WorkQueue instead of DispatchQueue, it can create too many threads and degrade the overall system performance.

I admit that a serial DispatchQueue is just a subset of WorkQueue from the API perspective because it does not provide delayed dispatch and event source. The only enhancement it has is thread pooling. On the other hand, this patch is more generic than is necessary in some cases. For example, the global queue is not used anywhere and the main queue is simple wrapper around callOnMainThread. 

We will try to reuse WorkQueue in our parallel image decoders implementation since WorkQueue provides most of the features we need. I think we can probably do thread pooling on top WorkQueue. The first job is to move WorkQueue to WTF, so that WebCore code can use it.

For the time being, please stop reviewing this patch. BTW, we barely know how WorkQueue works before submitting this patch. Thank you for the information and review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>665561</commentid>
    <comment_count>21</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-07-10 01:28:01 -0700</bug_when>
    <thetext>We implemented a new class based on WorkQueue. I will file a bug.

Close this bug as INVALID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683966</commentid>
    <comment_count>22</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-01 01:11:16 -0700</bug_when>
    <thetext>We can&apos;t use WorkQueue because Chromium does not have WorkQueue implementation. Reopen the bug to discuss how we can implement this in a cross-platform way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683978</commentid>
    <comment_count>23</comment_count>
      <attachid>155751</attachid>
    <who name="Kwonjin Jeong">gram</who>
    <bug_when>2012-08-01 01:37:27 -0700</bug_when>
    <thetext>Created attachment 155751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>683989</commentid>
    <comment_count>24</comment_count>
      <attachid>155751</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-01 01:55:31 -0700</bug_when>
    <thetext>Comment on attachment 155751
Patch

Attachment 155751 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13420030</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684018</commentid>
    <comment_count>25</comment_count>
      <attachid>155763</attachid>
    <who name="Kwonjin Jeong">gram</who>
    <bug_when>2012-08-01 02:27:46 -0700</bug_when>
    <thetext>Created attachment 155763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>684029</commentid>
    <comment_count>26</comment_count>
      <attachid>155763</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-01 02:36:47 -0700</bug_when>
    <thetext>Comment on attachment 155763
Patch

Attachment 155763 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13401741</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>692027</commentid>
    <comment_count>27</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2012-08-09 17:29:25 -0700</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 155763 [details])
&gt; Attachment 155763 [details] did not pass mac-ews (mac):
&gt; Output: http://queues.webkit.org/results/13401741

Kwonjin, please upload a new patch which builds.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150873</attachid>
            <date>2012-07-04 21:54:24 -0700</date>
            <delta_ts>2012-07-05 03:03:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90584-20120705135400.patch</filename>
            <type>text/plain</type>
            <size>40567</size>
            <attacher name="Kwonjin Jeong">gram</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ5MjU3OTQxMWViNzk3NWVmNGJhMzFl
ZTFkNjVkYjIwZGMzMzRkYWUuLjlmMTc2ZjU0OWI3NmY4ZjlmNWQ0MzliZTlkOTljNTFmZTliZTFi
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTEzIEBACisyMDEyLTA3LTA0ICBLd29uamluIEplb25nICA8Z3Jh
bUBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBBZGQgRGlzcGF0Y2hRdWV1ZSBjbGFzcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNTg0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXV0aG9yZWQgYnkg
S3dvbmppbiBKZW9uZyBhbmQgRG9uZ3N1bmcgSHVhbmcuCisKKyAgICAgICAgRGlzcGF0Y2hRdWV1
ZSBpcyBhIHNpbXBsZSBDKysgd3JhcHBlciBhcm91bmQgbGliZGlzcGF0Y2ggKEdDRCkuIEEgdGhy
ZWFkIHBvb2wgYmFzZWQKKyAgICAgICAgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gaXMgYWxzbyBh
dmFpYWJsZS4gU28gcG9ydHMgd2l0aG91dCBsaWJkaXNwYXRjaCBjYW4gdXNlIHRoZSBzYW1lIEFQ
SS4KKworICAgICAgICBJdCBwcm92aWRlcyBvbmx5IHRoZSBzbWFsbCBzdWJzZXQgb2YgdGhlIG9y
aWdpbmFsIGxpYmRpc3BhdGNoIEFQSS4gVGhlcmUgYXJlIHRocmVlIHR5cGVzCisgICAgICAgIG9m
IERpc3BhdGNoUXVldWU6IHNlcmlhbCwgZ2xvYmFsIGFuZCBtYWluLiBUaGVzZSBxdWV1ZXMgY29y
cmVzcG9uZCB0byB0aGUgc2VyaWFsLAorICAgICAgICBjb25jdXJyZW50IGdsb2JhbCBhbmQgbWFp
biBxdWV1ZSBpbiBsaWJkaXNwYXRjaC4KKworICAgICAgICBEaXNwYXRjaFF1ZXVlOjphc3luYyhj
b25zdCBGdW5jdGlvbjx2b2lkKCk+JikgbWV0aG9kIGlzIHVzZWQgdG8gc2NoZWR1bGUgYSB0YXNr
IHJlZ2FyZGxlc3MKKyAgICAgICAgb2YgdGhlIHF1ZXVlIHR5cGUuCisKKyAgICAgICAgQ3VycmVu
dGx5LCBpdCBpcyB1c2VkIGJ5IHBhcmFsbGVsIGltYWdlIGRlY29kZXJzIHRvIHBlcmZvcm0gaW1h
Z2UgZGVjb2RpbmcgY29uY3VycmVudGx5LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBXVEYuZ3lwaToKKyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdU
Ri52Y3Byb2ovV1RGLnZjcHJvajoKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiB3dGYvRGlzcGF0Y2hRdWV1ZS5jcHA6IEFkZGVkLgorICAgICAgICAo
V1RGKToKKyAgICAgICAgKERpc3BhdGNoTWFpblF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0
Y2hNYWluUXVldWU6On5EaXNwYXRjaE1haW5RdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNo
TWFpblF1ZXVlOjphc3luYyk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoTWFpblF1ZXVlOjpEaXNw
YXRjaE1haW5RdWV1ZSk6CisgICAgICAgIChEaXNwYXRjaEdsb2JhbFF1ZXVlKToKKyAgICAgICAg
KFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1ZTo6fkRpc3BhdGNoR2xvYmFsUXVldWUpOgorICAgICAg
ICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlOjphc3luYyk6CisgICAgICAgIChXVEY6OkRpc3Bh
dGNoR2xvYmFsUXVldWU6OkRpc3BhdGNoR2xvYmFsUXVldWUpOgorICAgICAgICAoRGlzcGF0Y2hT
ZXJpYWxRdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoU2VyaWFsUXVldWU6On5EaXNwYXRj
aFNlcmlhbFF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZTo6YXN5bmMp
OgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlOjpEaXNwYXRjaFNlcmlhbFF1ZXVl
KToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hRdWV1ZTo6Z2xvYmFsUXVldWUpOgorICAgICAgICAo
V1RGOjpEaXNwYXRjaFF1ZXVlOjptYWluUXVldWUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFF1
ZXVlOjppbml0aWFsaXplRGlzcGF0Y2hRdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoUXVl
dWU6OmNyZWF0ZVNlcmlhbFF1ZXVlKToKKyAgICAgICAgKiB3dGYvRGlzcGF0Y2hRdWV1ZS5oOiBB
ZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChEaXNwYXRjaFF1ZXVlKToKKyAgICAgICAg
KFdURjo6RGlzcGF0Y2hRdWV1ZTo6fkRpc3BhdGNoUXVldWUpOgorICAgICAgICAoV1RGOjpEaXNw
YXRjaFF1ZXVlOjpEaXNwYXRjaFF1ZXVlKToKKyAgICAgICAgKiB3dGYvRGlzcGF0Y2hRdWV1ZVBy
aXZhdGVHZW5lcmljLmNwcDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAgICAgICAoRXhlY3V0
b3IpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6YWNxdWlyZSk6CisgICAgICAgIChXVEY6OkV4
ZWN1dG9yOjpyZWxlYXNlKToKKyAgICAgICAgKFdURjo6RXhlY3V0b3I6OmFjcXVpcmVDb3VudCk6
CisgICAgICAgIChXVEY6OkV4ZWN1dG9yOjpFeGVjdXRvcik6CisgICAgICAgIChXVEY6OkV4ZWN1
dG9yOjp+RXhlY3V0b3IpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6ZXhlY3V0ZSk6CisgICAg
ICAgIChXVEY6OkV4ZWN1dG9yOjp3b3JrZXJUaHJlYWQpOgorICAgICAgICAoRXhlY3V0b3JQb29s
KToKKyAgICAgICAgKFdURjo6RXhlY3V0b3JQb29sOjppbml0aWFsaXplRXhlY3V0b3JQb29sKToK
KyAgICAgICAgKFdURjo6ZXhlY3V0b3JQb29sKToKKyAgICAgICAgKFdURjo6RXhlY3V0b3JQb29s
OjpFeGVjdXRvclBvb2wpOgorICAgICAgICAoV1RGOjpFeGVjdXRvclBvb2w6On5FeGVjdXRvclBv
b2wpOgorICAgICAgICAoV1RGOjpFeGVjdXRvclBvb2w6OmV4ZWN1dGUpOgorICAgICAgICAoV1RG
OjpFeGVjdXRvclBvb2w6Om5leHRFeGVjdXRvcik6CisgICAgICAgIChXVEY6OkV4ZWN1dG9yUG9v
bDo6YWNxdWlyZVNlcmlhbEV4ZWN1dG9yKToKKyAgICAgICAgKFdURjo6RXhlY3V0b3JQb29sOjpy
ZWxlYXNlU2VyaWFsRXhlY3V0b3IpOgorICAgICAgICAoV1RGOjpFeGVjdXRvclBvb2w6OnNlcmlh
bEV4ZWN1dG9yV2l0aE1pbmltdW1BY3F1aXJlQ291bnQpOgorICAgICAgICAoV1RGOjpEaXNwYXRj
aEdsb2JhbFF1ZXVlUHJpdmF0ZTo6RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUpOgorICAgICAg
ICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6fkRpc3BhdGNoR2xvYmFsUXVldWVQ
cml2YXRlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6OmFzeW5j
KToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OkRpc3BhdGNoU2Vy
aWFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZh
dGU6On5EaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNo
U2VyaWFsUXVldWVQcml2YXRlOjplbnN1cmVUZXJtaW5hdGUpOgorICAgICAgICAoV1RGOjpjYW5j
ZWxhYmxlRnVuY3Rpb24pOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0
ZTo6YXN5bmMpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6aGFz
VGVybWluYXRpb25CZWd1bik6CisgICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2Vu
ZXJpYy5oOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChEaXNwYXRjaEdsb2JhbFF1
ZXVlUHJpdmF0ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjpj
cmVhdGUpOgorICAgICAgICAoRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAo
V1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKiB3dGYv
RGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5jcHA6IEFkZGVkLgorICAgICAgICAoV1RG
KToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6OkRpc3BhdGNoR2xv
YmFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZh
dGU6On5EaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAgIChXVEY6OkZ1bmN0aW9u
Qm94OjpGdW5jdGlvbkJveCk6CisgICAgICAgIChGdW5jdGlvbkJveCk6CisgICAgICAgIChXVEY6
OkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjphc3luYyk6CisgICAgICAgIChXVEY6OkRpc3Bh
dGNoR2xvYmFsUXVldWVQcml2YXRlOjppbnZva2VGdW5jdGlvbik6CisgICAgICAgIChXVEY6OkRp
c3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSk6Cisg
ICAgICAgIChXVEY6OkRpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjp+RGlzcGF0Y2hTZXJpYWxR
dWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6
dGVybWluYXRlKToKKyAgICAgICAgKFdURjo6Q2FuY2VsYWJsZUZ1bmN0aW9uQm94OjpDYW5jZWxh
YmxlRnVuY3Rpb25Cb3gpOgorICAgICAgICAoQ2FuY2VsYWJsZUZ1bmN0aW9uQm94KToKKyAgICAg
ICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6Omludm9rZUZ1bmN0aW9uKToKKyAg
ICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmFzeW5jKToKKyAgICAgICAg
KiB3dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oOiBBZGRlZC4KKyAgICAgICAg
KFdURik6CisgICAgICAgIChEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAgIChX
VEY6OkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjpjcmVhdGUpOgorICAgICAgICAoRGlzcGF0
Y2hTZXJpYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVl
UHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKiB3dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwOgor
ICAgICAgICAoV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKToKKyAgICAgICAgKiB3dGYvVGhyZWFk
aW5nV2luLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZVRocmVhZGluZyk6CisKIDIwMTIt
MDctMDQgIFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAg
ICAgICAgIFtRdF0gR2V0IHJpZCBvZiB1bi1uZWVkZWQgUVQgKz0gZGVjbGFyYXRpdmUgZm9yIFF0
IDUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
VEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBjNWY0OGE2Y2U1NTlhMjRjYzIwYjcwNzU4ZGY4
YmM0YTg0ZGM5ZWVkLi5lYmE0NGI4YTg4MDczN2ViNDUxMjlhYjZmMDAwZDE4ZjMxZDMxYzYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dU
Ri9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNyw2ICszNywxMiBAQCB3dGZfc291cmNlcyArPSBc
CiAgICAgU291cmNlL1dURi93dGYvRGVjb2Rlci5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9EZXF1
ZS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9EaXNhbGxvd0NUeXBlLmggXAorICAgIFNvdXJjZS9X
VEYvd3RmL0Rpc3BhdGNoUXVldWUuY3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1
ZXVlLmggXAorICAgIFNvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5j
cHAgXAorICAgIFNvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oIFwK
KyAgICBTb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCBc
CisgICAgU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oIFwK
ICAgICBTb3VyY2UvV1RGL3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmggXAogICAgIFNvdXJjZS9XVEYv
d3RmL0R5bmFtaWNBbm5vdGF0aW9ucy5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL0R5bmFtaWNB
bm5vdGF0aW9ucy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2Uv
V1RGL1dURi5neXBpCmluZGV4IDg2NzU4NTUwNjFkMzc0ZWZhZmZlN2Q2MmUxNTNkZWIxMWJiYWQw
MzkuLmMyZDVlYjQzNjk5MzYyNGU4ZWYyNjU5YTFlMzE1MjNjNWMxNjM3YTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvV1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtMTM3LDYg
KzEzNywxMiBAQAogICAgICAgICAgICAgJ3d0Zi9EYXRhTG9nLmNwcCcsCiAgICAgICAgICAgICAn
d3RmL0RhdGVNYXRoLmNwcCcsCiAgICAgICAgICAgICAnd3RmL0RlY2ltYWxOdW1iZXIuY3BwJywK
KyAgICAgICAgICAgICd3dGYvRGlzcGF0Y2hRdWV1ZS5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9E
aXNwYXRjaFF1ZXVlLmgnLAorICAgICAgICAgICAgJ3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdl
bmVyaWMuY3BwJywKKyAgICAgICAgICAgICd3dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmlj
LmgnLAorICAgICAgICAgICAgJ3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNw
cCcsCisgICAgICAgICAgICAnd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guaCcs
CiAgICAgICAgICAgICAnd3RmL0R5bmFtaWNBbm5vdGF0aW9ucy5jcHAnLAogICAgICAgICAgICAg
J3d0Zi9EeW5hbWljQW5ub3RhdGlvbnMuaCcsCiAgICAgICAgICAgICAnd3RmL0Zhc3RNYWxsb2Mu
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBy
bwppbmRleCAwOTYyZWYwYjUwYTUxN2JkMGUyZDQ1NjJkZjhkZWZkNmY1MWExZjA0Li42ODBhYjMy
MjBjZTY0MTU3OWQ3ZDEzMDAxZGFjNzIwZTIzMWRlMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1dURi5wcm8KKysrIGIvU291cmNlL1dURi9XVEYucHJvCkBAIC0xNzcsNiArMTc3LDkgQEAgU09V
UkNFUyArPSBcCiAgICAgRGF0ZU1hdGguY3BwIFwKICAgICBEYXRhTG9nLmNwcCBcCiAgICAgRGVj
aW1hbE51bWJlci5jcHAgXAorICAgIERpc3BhdGNoUXVldWUuY3BwIFwKKyAgICBEaXNwYXRjaFF1
ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCBcCisgICAgRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5l
cmljLmNwcCBcCiAgICAgZHRvYS5jcHAgXAogICAgIGR0b2EvYmlnbnVtLWR0b2EuY2MgXAogICAg
IGR0b2EvYmlnbnVtLmNjIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYu
dmNwcm9qIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKaW5kZXggMjE5MGRhZTFl
ZmZlYWUzMzk1MzMyN2UzY2I3M2U3N2U2ZWU0NmQ1OC4uNGY2ZDUzYWRlY2M5MDQwZDI2NmUyMjM1
YmQ2ZjZmYTU4MDFiNWYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52
Y3Byb2oKKysrIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTcwMSw2ICs3
MDEsMzAgQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3
dGZcRGlzcGF0Y2hRdWV1ZS5jcHAiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0
aXZlUGF0aD0iLi5cd3RmXERpc3BhdGNoUXVldWUuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8Rmls
ZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNw
cCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGlz
cGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJ
CVJlbGF0aXZlUGF0aD0iLi5cd3RmXERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3Bw
IgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxEaXNw
YXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUK
IAkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXERvdWJseUxpbmtlZExpc3QuaCIKIAkJCT4KIAkJPC9G
aWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzcyMDQ2
MWUyNjQ2NjFmYzhlOTQzNWU5MDg4MTY3NGJjZDFiNzY1OC4uNDJhZmE1MTMyYjU1NjA4MGFlZGM0
ZDM4OTY0ZjZjN2IwNjkzMjIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC00OCw2ICs0OCwxMiBAQAogCQlBOEE0NzNBNDE1MUE4MjVCMDA0MTIzRkYgLyog
RGVjb2Rlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThBNDcyN0QxNTFBODI1QTAwNDEyM0ZGIC8qIERlY29kZXIuaCAqLzsgfTsKIAkJQThBNDczQTUx
NTFBODI1QjAwNDEyM0ZGIC8qIERlcXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI3RTE1MUE4MjVBMDA0MTIzRkYgLyogRGVxdWUuaCAqLzsg
fTsKIAkJQThBNDczQTYxNTFBODI1QjAwNDEyM0ZGIC8qIERpc2FsbG93Q1R5cGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgyNUEw
MDQxMjNGRiAvKiBEaXNhbGxvd0NUeXBlLmggKi87IH07CisJCUE4QTQ3M0E3MTUxQTgyNUIwMDQx
MjNGOSAvKiBEaXNwYXRjaFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgyNUEwMDQxMjNGRiAvKiBEaXNwYXRjaFF1ZXVl
LmNwcCAqLzsgfTsKKwkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZBIC8qIERpc3BhdGNoUXVldWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdG
MTUxQTgyNUEwMDQxMjNGRiAvKiBEaXNwYXRjaFF1ZXVlLmggKi87IH07CisJCUE4QTQ3M0E3MTUx
QTgyNUIwMDQxMjNGQiAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyN0YxNTFBODI1QTAw
NDEyM0ZGIC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgKi87IH07CisJCUE4QTQ3
M0E3MTUxQTgyNUIwMDQxMjNGQyAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgy
NUEwMDQxMjNGRiAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCAqLzsgfTsKKwkJQThB
NDczQTcxNTFBODI1QjAwNDEyM0ZEIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2gu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcy
N0YxNTFBODI1QTAwNDEyM0ZGIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3Bw
ICovOyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZh
dGVMaWJkaXNwYXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQThBNDcyN0YxNTFBODI1QTAwNDEyM0ZGIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGli
ZGlzcGF0Y2guaCAqLzsgfTsKIAkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZGIC8qIERvdWJseUxp
bmtlZExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRiAvKiBEb3VibHlMaW5rZWRMaXN0LmggKi87IH07CiAJ
CUE4QTQ3M0E4MTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0tZHRvYS5jYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjgyMTUxQTgyNUEwMDQxMjNG
RiAvKiBiaWdudW0tZHRvYS5jYyAqLzsgfTsKIAkJQThBNDczQTkxNTFBODI1QjAwNDEyM0ZGIC8q
IGJpZ251bS1kdG9hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBOEE0NzI4MzE1MUE4MjVBMDA0MTIzRkYgLyogYmlnbnVtLWR0b2EuaCAqLzsgfTsKQEAg
LTI5Myw2ICsyOTksMTIgQEAKIAkJQThBNDcyN0QxNTFBODI1QTAwNDEyM0ZGIC8qIERlY29kZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjb2Rlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzI3RTE1MUE4MjVBMDA0MTIzRkYgLyogRGVxdWUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVxdWUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQThBNDcyN0YxNTFBODI1QTAwNDEyM0ZGIC8qIERpc2FsbG93Q1R5cGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzYWxsb3dDVHlwZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRjkgLyogRGlz
cGF0Y2hRdWV1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BhdGNo
UXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEE0NzNBNzE1MUE4MjVC
MDA0MTIzRkEgLyogRGlzcGF0Y2hRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEaXNwYXRjaFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4QTQ3
M0E3MTUxQTgyNUIwMDQxMjNGQiAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVy
aWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0
MTIzRkMgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkQgLyogRGlzcGF0Y2hR
dWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVBy
aXZhdGVMaWJkaXNwYXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNw
YXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRiAvKiBEb3VibHlMaW5rZWRMaXN0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvdWJseUxpbmtlZExpc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyODIxNTFBODI1QTAwNDEyM0ZGIC8qIGJpZ251bS1k
dG9hLmNjICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gImJpZ251bS1kdG9h
LmNjIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyODMxNTFBODI1QTAwNDEy
M0ZGIC8qIGJpZ251bS1kdG9hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJi
aWdudW0tZHRvYS5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4Myw2ICs1OTUs
MTIgQEAKIAkJCQlBOEE0NzI3RDE1MUE4MjVBMDA0MTIzRkYgLyogRGVjb2Rlci5oICovLAogCQkJ
CUE4QTQ3MjdFMTUxQTgyNUEwMDQxMjNGRiAvKiBEZXF1ZS5oICovLAogCQkJCUE4QTQ3MjdGMTUx
QTgyNUEwMDQxMjNGRiAvKiBEaXNhbGxvd0NUeXBlLmggKi8sCisJCQkJQThBNDczQTcxNTFBODI1
QjAwNDEyM0Y5IC8qIERpc3BhdGNoUXVldWUuY3BwICovLAorCQkJCUE4QTQ3M0E3MTUxQTgyNUIw
MDQxMjNGQSAvKiBEaXNwYXRjaFF1ZXVlLmggKi8sCisJCQkJQThBNDczQTcxNTFBODI1QjAwNDEy
M0ZCIC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgKi8sCisJCQkJQThBNDczQTcx
NTFBODI1QjAwNDEyM0ZDIC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oICovLAorCQkJ
CUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGRCAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3Bh
dGNoLmNwcCAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1
ZVByaXZhdGVMaWJkaXNwYXRjaC5oICovLAogCQkJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRiAv
KiBEb3VibHlMaW5rZWRMaXN0LmggKi8sCiAJCQkJQThBNDcyODExNTFBODI1QTAwNDEyM0ZGIC8q
IGR0b2EgKi8sCiAJCQkJQThBNDcyOTcxNTFBODI1QTAwNDEyM0ZGIC8qIGR0b2EuY3BwICovLApA
QCAtODkzLDYgKzkxMSw5IEBACiAJCQkJQThBNDczQTQxNTFBODI1QjAwNDEyM0ZGIC8qIERlY29k
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0E1MTUxQTgyNUIwMDQxMjNGRiAvKiBEZXF1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQTYxNTFBODI1QjAwNDEyM0ZGIC8qIERpc2Fs
bG93Q1R5cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGQSAv
KiBEaXNwYXRjaFF1ZXVlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0
MTIzRkMgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNw
YXRjaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZGIC8qIERv
dWJseUxpbmtlZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0E5MTUxQTgyNUIwMDQx
MjNGRiAvKiBiaWdudW0tZHRvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQUIxNTFBODI1
QjAwNDEyM0ZGIC8qIGJpZ251bS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTM4LDYgKzExNTksOSBA
QAogCQkJCUE4QTQ3MzlFMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRhTG9nLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QTQ3M0EwMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRlTWF0aC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOEE0NzNBMjE1MUE4MjVCMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRjkgLyogRGlzcGF0
Y2hRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkIg
LyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4
QTQ3M0E3MTUxQTgyNUIwMDQxMjNGRCAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNo
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0E4MTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdu
dW0tZHRvYS5jYyBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0FBMTUxQTgyNUIwMDQxMjNGRiAv
KiBiaWdudW0uY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNBQzE1MUE4MjVCMDA0MTIzRkYg
LyogY2FjaGVkLXBvd2Vycy5jYyBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvRGlzcGF0Y2hRdWV1ZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ZDllYTM2NjIyZTI3MDlhYzA2NjgxYTFjNTFhZmRjNzAzYjYyZmEwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZS5jcHAKQEAgLTAs
MCArMSwxMTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ29tcGFueSAxMDAgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlzcGF0Y2hRdWV1ZS5oIgor
CisjaWYgRU5BQkxFKFRIUkVBRElOR19MSUJESVNQQVRDSCkKKyNpbmNsdWRlICJEaXNwYXRjaFF1
ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgiCisjZWxzZQorI2luY2x1ZGUgIkRpc3BhdGNoUXVldWVQ
cml2YXRlR2VuZXJpYy5oIgorI2VuZGlmCisKKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgor
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIERpc3Bh
dGNoR2xvYmFsUXVldWVQcml2YXRlOworY2xhc3MgRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU7
CisKK0Rpc3BhdGNoUXVldWUqIERpc3BhdGNoUXVldWU6OnNfZ2xvYmFsUXVldWU7CitEaXNwYXRj
aFF1ZXVlKiBEaXNwYXRjaFF1ZXVlOjpzX21haW5RdWV1ZTsKKworY2xhc3MgRGlzcGF0Y2hNYWlu
UXVldWUgOiBwdWJsaWMgRGlzcGF0Y2hRdWV1ZSB7CitwdWJsaWM6CisgICAgZnJpZW5kIGNsYXNz
IERpc3BhdGNoUXVldWU7CisgICAgdmlydHVhbCB+RGlzcGF0Y2hNYWluUXVldWUoKSB7IH0KKwor
ICAgIC8vIEluIGNhc2Ugb2YgdGhlIG1haW4gcXVldWUsIHdlIHNpbXBseSByZXVzZSBjYWxsT25N
YWluVGhyZWFkLgorICAgIHZpcnR1YWwgdm9pZCBhc3luYyhjb25zdCBGdW5jdGlvbjx2b2lkKCk+
JiBmdW5jdGlvbikKKyAgICB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoZnVuY3Rpb24pOwor
ICAgIH0KKworCitwcml2YXRlOgorICAgIERpc3BhdGNoTWFpblF1ZXVlKCkgeyB9Cit9OworCitj
bGFzcyBEaXNwYXRjaEdsb2JhbFF1ZXVlIDogcHVibGljIERpc3BhdGNoUXVldWUgeworcHVibGlj
OgorICAgIGZyaWVuZCBjbGFzcyBEaXNwYXRjaFF1ZXVlOworICAgIHZpcnR1YWwgfkRpc3BhdGNo
R2xvYmFsUXVldWUoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBhc3luYyhjb25zdCBGdW5jdGlv
bjx2b2lkKCk+JiBmdW5jdGlvbikKKyAgICB7CisgICAgICAgIG1fcHJpdmF0ZS0+YXN5bmMoZnVu
Y3Rpb24pOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaXNwYXRjaEdsb2JhbFF1ZXVlKCkKKyAg
ICAgICAgOiBtX3ByaXZhdGUoRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6OmNyZWF0ZSgpKSB7
IH0KKworICAgIE93blB0cjxEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZT4gbV9wcml2YXRlOwor
fTsKKworY2xhc3MgRGlzcGF0Y2hTZXJpYWxRdWV1ZSA6IHB1YmxpYyBEaXNwYXRjaFF1ZXVlIHsK
K3B1YmxpYzoKKyAgICBmcmllbmQgY2xhc3MgRGlzcGF0Y2hRdWV1ZTsKKyAgICB2aXJ0dWFsIH5E
aXNwYXRjaFNlcmlhbFF1ZXVlKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYXN5bmMoY29uc3Qg
RnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCisgICAgeworICAgICAgICBtX3ByaXZhdGUtPmFz
eW5jKGZ1bmN0aW9uKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRGlzcGF0Y2hTZXJpYWxRdWV1
ZSgpCisgICAgICAgIDogbV9wcml2YXRlKERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjpjcmVh
dGUoKSkgeyB9CisKKyAgICBPd25QdHI8RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU+IG1fcHJp
dmF0ZTsKK307CisKK0Rpc3BhdGNoUXVldWUqIERpc3BhdGNoUXVldWU6Omdsb2JhbFF1ZXVlKCkK
K3sKKyAgICByZXR1cm4gc19nbG9iYWxRdWV1ZTsKK30KKworRGlzcGF0Y2hRdWV1ZSogRGlzcGF0
Y2hRdWV1ZTo6bWFpblF1ZXVlKCkKK3sKKyAgICByZXR1cm4gc19tYWluUXVldWU7Cit9CisKK3Zv
aWQgRGlzcGF0Y2hRdWV1ZTo6aW5pdGlhbGl6ZURpc3BhdGNoUXVldWUoKQoreworICAgIHNfbWFp
blF1ZXVlID0gbmV3IERpc3BhdGNoTWFpblF1ZXVlKCk7CisgICAgc19nbG9iYWxRdWV1ZSA9IG5l
dyBEaXNwYXRjaEdsb2JhbFF1ZXVlKCk7Cit9CisKK1Bhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4g
RGlzcGF0Y2hRdWV1ZTo6Y3JlYXRlU2VyaWFsUXVldWUoKQoreworICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgRGlzcGF0Y2hTZXJpYWxRdWV1ZSgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlLmggYi9Tb3VyY2UvV1RGL3d0
Zi9EaXNwYXRjaFF1ZXVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2NjMzZiZjRjMjQ5MDBhNDhlMzI3MjEzZDRl
MGViNzk3ZmU1YWNlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNo
UXVldWUuaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBh
bnkgMTAwIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEaXNwYXRjaFF1ZXVlX2gKKyNkZWZpbmUgRGlz
cGF0Y2hRdWV1ZV9oCisKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb25hbC5oPgorI2luY2x1ZGUgPHd0
Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV1RGIHsKKworLy8gVGhpcyBj
bGFzcyBpcyBhIHNpbXBsZSB3cmFwcGVyIGFyb3VuZCBsaWJkaXNwYXRjaC4KKy8vIFdlIGFsc28g
cHJvdmlkZSBhIGdlbmVyaWMgKHRocmVhZCBwb29sKSBpbXBsZW1lbmV0YXRpb24gc28gdGhhdAor
Ly8gYWxsIHRoZSBwb3J0cyBjYW4gdXNlIHRoZSBzYW1lIEFQSS4KK2NsYXNzIERpc3BhdGNoUXVl
dWUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RGlzcGF0Y2hRdWV1ZT4geworcHVibGlj
OgorICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVEaXNwYXRjaFF1ZXVlKCk7CisgICAgc3RhdGlj
IERpc3BhdGNoUXVldWUqIGdsb2JhbFF1ZXVlKCk7CisgICAgc3RhdGljIERpc3BhdGNoUXVldWUq
IG1haW5RdWV1ZSgpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+IGNyZWF0
ZVNlcmlhbFF1ZXVlKCk7CisKKyAgICB2aXJ0dWFsIH5EaXNwYXRjaFF1ZXVlKCkgeyB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpID0gMDsKKworcHJv
dGVjdGVkOgorICAgIHN0YXRpYyBEaXNwYXRjaFF1ZXVlKiBzX2dsb2JhbFF1ZXVlOworICAgIHN0
YXRpYyBEaXNwYXRjaFF1ZXVlKiBzX21haW5RdWV1ZTsKKworICAgIERpc3BhdGNoUXVldWUoKSB7
IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OkRpc3BhdGNoUXVldWU7
CisKKyNlbmRpZiAvLyBEaXNwYXRjaFF1ZXVlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRj
aFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1YzdkNTg5YTYwMjE5MmE2NDJl
YmQ0ZDYwMTI4ZGIzOTU2YzFmNmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9E
aXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwCkBAIC0wLDAgKzEsMjY2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAwIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaWYgIUVOQUJMRShUSFJFQURJTkdfTElCRElTUEFUQ0gpCisKKyNpbmNsdWRl
ICJEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCIKKworI2luY2x1ZGUgPGxpbWl0cz4KKyNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9OdW1iZXJPZkNvcmVzLmg+
CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKwor
bmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEV4ZWN1dG9yUG9vbDsKKworY2xhc3MgRXhlY3V0b3Ig
eworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEV4ZWN1dG9yKTsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBFeGVjdXRvcigpOworICAgIH5FeGVjdXRvcigpOwor
CisgICAgdm9pZCBleGVjdXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKKworICAgIHN0YXRp
YyB2b2lkIHdvcmtlclRocmVhZCh2b2lkKik7CisKKyAgICB2b2lkIGFjcXVpcmUoKSB7IG1fYWNx
dWlyZUNvdW50Kys7IH0KKyAgICB2b2lkIHJlbGVhc2UoKSB7IG1fYWNxdWlyZUNvdW50LS07IH0K
KyAgICBpbnQgYWNxdWlyZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9hY3F1aXJlQ291bnQ7IH0K
KworcHJpdmF0ZToKKyAgICBib29sIG1fcnVubmluZzsKKyAgICBpbnQgbV9hY3F1aXJlQ291bnQ7
CisKKyAgICBNdXRleCBtX211dGV4OworICAgIFRocmVhZENvbmRpdGlvbiBtX2Z1bmN0aW9uUXVl
dWVFbXB0eUNvbmRpdGlvbjsKKyAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPiA+IG1fZnVuY3Rp
b25RdWV1ZTsKK307CisKK0V4ZWN1dG9yOjpFeGVjdXRvcigpCisgICAgOiBtX3J1bm5pbmcodHJ1
ZSkKKyAgICAsIG1fYWNxdWlyZUNvdW50KDEpCit7CisgICAgLy8gV2UgbmVlZCBhIG11dGV4IGhl
cmUgZm9yIHZpc2liaWxpdHkgaW4gRXhlY3V0b3I6OndvcmtlclRocmVhZC4KKyAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgVGhyZWFkSWRlbnRpZmllciB0aHJlYWRJRCA9IGNy
ZWF0ZVRocmVhZCgmRXhlY3V0b3I6OndvcmtlclRocmVhZCwgdGhpcywgIkV4ZWN1dG9yIHdvcmtl
ciIpOworICAgIGRldGFjaFRocmVhZCh0aHJlYWRJRCk7Cit9CisKK0V4ZWN1dG9yOjp+RXhlY3V0
b3IoKQoreworICAgIC8vIE9uY2Ugd2UgY3JlYXRlIGFuIGV4ZWN1dG9yLCB3ZSBuZXZlciBkZXN0
cm95cyBpdC4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBFeGVjdXRvcjo6
ZXhlY3V0ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKK3sKKyAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgbV9mdW5jdGlvblF1ZXVlLmFwcGVuZChmdW5jdGlv
bik7CisKKyAgICBtX2Z1bmN0aW9uUXVldWVFbXB0eUNvbmRpdGlvbi5zaWduYWwoKTsKK30KKwor
dm9pZCBFeGVjdXRvcjo6d29ya2VyVGhyZWFkKHZvaWQqIHRocmVhZERhdGEpCit7CisgICAgRXhl
Y3V0b3IqIGV4ZWN1dG9yID0gcmVpbnRlcnByZXRfY2FzdDxFeGVjdXRvcio+KHRocmVhZERhdGEp
OworCisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4g
PiBmdW5jdGlvblF1ZXVlOworICAgICAgICB7CisgICAgICAgICAgICBNdXRleExvY2tlciBsb2Nr
ZXIoZXhlY3V0b3ItPm1fbXV0ZXgpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZKCFleGVjdXRv
ci0+bV9ydW5uaW5nKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB3aGls
ZSAoZXhlY3V0b3ItPm1fZnVuY3Rpb25RdWV1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAg
ZXhlY3V0b3ItPm1fZnVuY3Rpb25RdWV1ZUVtcHR5Q29uZGl0aW9uLndhaXQoZXhlY3V0b3ItPm1f
bXV0ZXgpOworICAgICAgICAgICAgZXhlY3V0b3ItPm1fZnVuY3Rpb25RdWV1ZS5zd2FwKGZ1bmN0
aW9uUXVldWUpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBm
dW5jdGlvblF1ZXVlLnNpemUoKTsgKytpKQorICAgICAgICAgICAgZnVuY3Rpb25RdWV1ZVtpXSgp
OworICAgIH0KK30KKworY2xhc3MgRXhlY3V0b3JQb29sIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShFeGVjdXRvclBvb2wpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGlj
OgorICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVFeGVjdXRvclBvb2woKTsKKworICAgIGZyaWVu
ZCBFeGVjdXRvclBvb2wqIGV4ZWN1dG9yUG9vbCgpOworICAgIH5FeGVjdXRvclBvb2woKTsKKwor
ICAgIHZvaWQgZXhlY3V0ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CisgICAgRXhlY3V0b3Iq
IGFjcXVpcmVTZXJpYWxFeGVjdXRvcigpOworICAgIHZvaWQgcmVsZWFzZVNlcmlhbEV4ZWN1dG9y
KEV4ZWN1dG9yKik7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIEV4ZWN1dG9yUG9vbCogc19leGVj
dXRvclBvb2w7CisgICAgRXhlY3V0b3JQb29sKCk7CisgICAgRXhlY3V0b3IqIG5leHRFeGVjdXRv
cigpOworICAgIEV4ZWN1dG9yKiBzZXJpYWxFeGVjdXRvcldpdGhNaW5pbXVtQWNxdWlyZUNvdW50
KCk7CisKKyAgICBNdXRleCBtX211dGV4OworICAgIFZlY3RvcjxFeGVjdXRvcio+IG1fZXhlY3V0
b3JQb29sOworfTsKKworRXhlY3V0b3JQb29sKiBFeGVjdXRvclBvb2w6OnNfZXhlY3V0b3JQb29s
OworCit2b2lkIEV4ZWN1dG9yUG9vbDo6aW5pdGlhbGl6ZUV4ZWN1dG9yUG9vbCgpCit7CisgICAg
aWYgKCFzX2V4ZWN1dG9yUG9vbCkKKyAgICAgICAgc19leGVjdXRvclBvb2wgPSBuZXcgRXhlY3V0
b3JQb29sOworfQorCitFeGVjdXRvclBvb2wqIGV4ZWN1dG9yUG9vbCgpCit7CisgICAgcmV0dXJu
IEV4ZWN1dG9yUG9vbDo6c19leGVjdXRvclBvb2w7Cit9CisKK0V4ZWN1dG9yUG9vbDo6RXhlY3V0
b3JQb29sKCkKK3sKKyAgICBtX2V4ZWN1dG9yUG9vbC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG51
bWJlck9mUHJvY2Vzc29yQ29yZXMoKSk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1iZXJP
ZlByb2Nlc3NvckNvcmVzKCk7IGkrKykKKyAgICAgICAgbV9leGVjdXRvclBvb2wuYXBwZW5kKG5l
dyBFeGVjdXRvcigpKTsKK30KKworRXhlY3V0b3JQb29sOjp+RXhlY3V0b3JQb29sKCkKK3sKK30K
Kwordm9pZCBFeGVjdXRvclBvb2w6OmV4ZWN1dGUoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVu
Y3Rpb24pCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIG5leHRFeGVj
dXRvcigpLT5leGVjdXRlKGZ1bmN0aW9uKTsKK30KKworRXhlY3V0b3IqIEV4ZWN1dG9yUG9vbDo6
bmV4dEV4ZWN1dG9yKCkKK3sKKyAgICBzdGF0aWMgdW5zaWduZWQgbG9uZyBuZXh0ID0gMDsKKyAg
ICBpbnQgaW5kZXggPSBuZXh0ICUgbV9leGVjdXRvclBvb2wuc2l6ZSgpOworICAgIG5leHQrKzsK
KyAgICByZXR1cm4gbV9leGVjdXRvclBvb2xbaW5kZXhdOworfQorCitFeGVjdXRvciogRXhlY3V0
b3JQb29sOjphY3F1aXJlU2VyaWFsRXhlY3V0b3IoKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX211dGV4KTsKKyAgICBFeGVjdXRvciogZXhlY3V0b3IgPSBzZXJpYWxFeGVjdXRvcldpdGhN
aW5pbXVtQWNxdWlyZUNvdW50KCk7CisgICAgZXhlY3V0b3ItPmFjcXVpcmUoKTsKKyAgICByZXR1
cm4gZXhlY3V0b3I7Cit9CisKK3ZvaWQgRXhlY3V0b3JQb29sOjpyZWxlYXNlU2VyaWFsRXhlY3V0
b3IoRXhlY3V0b3IqIGV4ZWN1dG9yKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4
KTsKKyAgICBleGVjdXRvci0+cmVsZWFzZSgpOworfQorCisvLyBGSVhNRTogV2Ugc2ltcGx5IHJl
dHVybnMgdGhlIGV4ZWN1dG9yIHdpdGggdGhlIG1pbmltdW0gYWNxdWlyZSBjb3VudHMuCisvLyBU
aGlzIHZhbHVlIGRvZXMgbm90IHJlZmxlY3QgdGhlIHJlYWwgc3lzdGVtIGxvYWQuCitFeGVjdXRv
ciogRXhlY3V0b3JQb29sOjpzZXJpYWxFeGVjdXRvcldpdGhNaW5pbXVtQWNxdWlyZUNvdW50KCkK
K3sKKyAgICBpbnQgbWluaW11bUFjcXVpcmVDb3VudCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8aW50
Pjo6bWF4KCk7CisgICAgaW50IGluZGV4ID0gbV9leGVjdXRvclBvb2wuc2l6ZSgpOworCisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2V4ZWN1dG9yUG9vbC5zaXplKCk7IGkrKykgeworICAg
ICAgICBpZiAobV9leGVjdXRvclBvb2xbaV0tPmFjcXVpcmVDb3VudCgpIDwgbWluaW11bUFjcXVp
cmVDb3VudCkgeworICAgICAgICAgICAgbWluaW11bUFjcXVpcmVDb3VudCA9IG1fZXhlY3V0b3JQ
b29sW2ldLT5hY3F1aXJlQ291bnQoKTsKKyAgICAgICAgICAgIGluZGV4ID0gaTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIEFTU0VSVChpbmRleCA8IG1fZXhlY3V0b3JQb29sLnNpemUoKSk7Cisg
ICAgcmV0dXJuIG1fZXhlY3V0b3JQb29sW2luZGV4XTsKK30KKworRGlzcGF0Y2hHbG9iYWxRdWV1
ZVByaXZhdGU6OkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKCkKK3sKKyAgICBFeGVjdXRvclBv
b2w6OmluaXRpYWxpemVFeGVjdXRvclBvb2woKTsKK30KKworRGlzcGF0Y2hHbG9iYWxRdWV1ZVBy
aXZhdGU6On5EaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpCit7CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Cit9CisKK3ZvaWQgRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6OmFzeW5jKGNv
bnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQoreworICAgIGV4ZWN1dG9yUG9vbCgpLT5l
eGVjdXRlKGZ1bmN0aW9uKTsKK30KKworRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OkRpc3Bh
dGNoU2VyaWFsUXVldWVQcml2YXRlKCkKKyAgICA6IG1fZXhlY3V0b3JTdGF0dXMoUnVubmluZykK
K3sKKyAgICBtX3NlcmlhbEV4ZWN1dG9yID0gZXhlY3V0b3JQb29sKCktPmFjcXVpcmVTZXJpYWxF
eGVjdXRvcigpOworfQorCitEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6fkRpc3BhdGNoU2Vy
aWFsUXVldWVQcml2YXRlKCkKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9leGVjdXRvclN0
YXR1c011dGV4KTsKKyAgICBtX2V4ZWN1dG9yU3RhdHVzID0gVGVybWluYXRpb25CZWd1bjsKKwor
ICAgIG1fc2VyaWFsRXhlY3V0b3ItPmV4ZWN1dGUoYmluZCgmRGlzcGF0Y2hTZXJpYWxRdWV1ZVBy
aXZhdGU6OmVuc3VyZVRlcm1pbmF0ZSwgdGhpcykpOworICAgIHdoaWxlIChtX2V4ZWN1dG9yU3Rh
dHVzICE9IFRlcm1pbmlhdGlvbkNvbXBsZXRlZCkKKyAgICAgICAgbV90ZXJtaW5hdGlvbkNvbXBs
ZXRlZC53YWl0KG1fZXhlY3V0b3JTdGF0dXNNdXRleCk7CisgICAgZXhlY3V0b3JQb29sKCktPnJl
bGVhc2VTZXJpYWxFeGVjdXRvcihtX3NlcmlhbEV4ZWN1dG9yKTsKK30KKwordm9pZCBEaXNwYXRj
aFNlcmlhbFF1ZXVlUHJpdmF0ZTo6ZW5zdXJlVGVybWluYXRlKCkKK3sKKyAgICBNdXRleExvY2tl
ciBsb2NrZXIobV9leGVjdXRvclN0YXR1c011dGV4KTsKKyAgICBBU1NFUlQobV9leGVjdXRvclN0
YXR1cyA9PSBUZXJtaW5hdGlvbkJlZ3VuKTsKKyAgICBtX2V4ZWN1dG9yU3RhdHVzID0gVGVybWlu
aWF0aW9uQ29tcGxldGVkOworICAgIG1fdGVybWluYXRpb25Db21wbGV0ZWQuc2lnbmFsKCk7Cit9
CisKK3N0YXRpYyB2b2lkIGNhbmNlbGFibGVGdW5jdGlvbihEaXNwYXRjaFNlcmlhbFF1ZXVlUHJp
dmF0ZSogc2VyaWFsUXVldWUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQorewor
ICAgIGlmIChVTkxJS0VMWShzZXJpYWxRdWV1ZS0+aGFzVGVybWluYXRpb25CZWd1bigpKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgZnVuY3Rpb24oKTsKK30KKwordm9pZCBEaXNwYXRjaFNlcmlh
bFF1ZXVlUHJpdmF0ZTo6YXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCit7
CisgICAgQVNTRVJUKG1fZXhlY3V0b3JTdGF0dXMgPT0gUnVubmluZyk7CisgICAgbV9zZXJpYWxF
eGVjdXRvci0+ZXhlY3V0ZShiaW5kKGNhbmNlbGFibGVGdW5jdGlvbiwgdGhpcywgZnVuY3Rpb24p
KTsKK30KKworYm9vbCBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6aGFzVGVybWluYXRpb25C
ZWd1bigpCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZXhlY3V0b3JTdGF0dXNNdXRleCk7
CisgICAgQVNTRVJUKG1fZXhlY3V0b3JTdGF0dXMgIT0gVGVybWluaWF0aW9uQ29tcGxldGVkKTsK
KyAgICByZXR1cm4gbV9leGVjdXRvclN0YXR1cyA9PSBUZXJtaW5hdGlvbkJlZ3VuOworfQorCit9
IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShUSFJFQURJTkdfTElCRElTUEFU
Q0gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVy
aWMuaCBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNmZTQ5YTYxNDhlNGFmMzJmYzYwMDIxYzc4MTIxOGM1ODU2YTc3YmQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaApA
QCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAwIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWNfaAorI2RlZmlu
ZSBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWNfaAorCisjaWYgIUVOQUJMRShUSFJFQURJTkdf
TElCRElTUEFUQ0gpCisKKyNpbmNsdWRlICJEaXNwYXRjaFF1ZXVlLmgiCisKKyNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgRGlzcGF0Y2hHbG9i
YWxRdWV1ZVByaXZhdGUgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERpc3BhdGNoR2xvYmFs
UXVldWVQcml2YXRlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc093blB0cjxEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZT4gY3JlYXRlKCkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGlzcGF0Y2hHbG9iYWxRdWV1ZVBy
aXZhdGUoKSk7CisgICAgfQorCisgICAgfkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKCk7CisK
KyAgICB2b2lkIGFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKKworcHJpdmF0ZToKKyAg
ICBEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpOworfTsKKworY2xhc3MgRXhlY3V0b3I7CisK
K2NsYXNzIERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSk7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8RGlzcGF0Y2hTZXJpYWxRdWV1
ZVByaXZhdGU+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERp
c3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKCkpOworICAgIH0KKworICAgIH5EaXNwYXRjaFNlcmlh
bFF1ZXVlUHJpdmF0ZSgpOworCisgICAgdm9pZCBhc3luYyhjb25zdCBGdW5jdGlvbjx2b2lkKCk+
Jik7CisKKyAgICBib29sIGhhc1Rlcm1pbmF0aW9uQmVndW4oKTsKKworcHJpdmF0ZToKKyAgICBE
aXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSgpOworICAgIHZvaWQgZW5zdXJlVGVybWluYXRlKCk7
CisKKyAgICBlbnVtIEV4ZWN1dG9yU3RhdHVzIHsgUnVubmluZywgVGVybWluYXRpb25CZWd1biwg
VGVybWluaWF0aW9uQ29tcGxldGVkIH07CisgICAgTXV0ZXggbV9leGVjdXRvclN0YXR1c011dGV4
OworICAgIEV4ZWN1dG9yU3RhdHVzIG1fZXhlY3V0b3JTdGF0dXM7CisgICAgVGhyZWFkQ29uZGl0
aW9uIG1fdGVybWluYXRpb25Db21wbGV0ZWQ7CisKKyAgICBFeGVjdXRvciogbV9zZXJpYWxFeGVj
dXRvcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gIUVOQUJMRShUSFJF
QURJTkdfTElCRElTUEFUQ0gpCisKKyNlbmRpZiAvLyBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVy
aWNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJk
aXNwYXRjaC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3Bh
dGNoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yOTk3Y2FlYzA2YzM3Y2NjNzkyZmJkNjU4MDZkNjU1NWEzZmY1
NWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZh
dGVMaWJkaXNwYXRjaC5jcHAKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQ29tcGFueSAxMDAgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoVEhSRUFESU5HX0xJQkRJU1BBVENIKQorCisjaW5jbHVkZSAiRGlzcGF0Y2hRdWV1
ZVByaXZhdGVMaWJkaXNwYXRjaC5oIgorCituYW1lc3BhY2UgV1RGIHsKKworRGlzcGF0Y2hHbG9i
YWxRdWV1ZVByaXZhdGU6OkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKCkKK3sKKyAgICBtX2Rp
c3BhdGNoUXVldWUgPSBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BS
SU9SSVRZX0RFRkFVTFQsIDApOworfQorCitEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6fkRp
c3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
K30KKworc3RydWN0IEZ1bmN0aW9uQm94IHsKKyAgICBGdW5jdGlvbkJveChjb25zdCBGdW5jdGlv
bjx2b2lkKCk+JiBmdW5jdGlvbikKKyAgICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQorICAg
IHsKKyAgICB9CisKKyAgICBGdW5jdGlvbjx2b2lkKCk+IG1fZnVuY3Rpb247Cit9OworCit2b2lk
IERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjphc3luYyhjb25zdCBGdW5jdGlvbjx2b2lkKCk+
JiBmdW5jdGlvbikKK3sKKyAgICBGdW5jdGlvbkJveCogYm94ID0gbmV3IEZ1bmN0aW9uQm94KGZ1
bmN0aW9uKTsKKyAgICBkaXNwYXRjaF9hc3luY19mKG1fZGlzcGF0Y2hRdWV1ZSwgcmVpbnRlcnBy
ZXRfY2FzdDx2b2lkKj4oYm94KSwgJkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjppbnZva2VG
dW5jdGlvbik7Cit9CisKK3ZvaWQgRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6Omludm9rZUZ1
bmN0aW9uKHZvaWQqIGNvbnRleHQpCit7CisgICAgRnVuY3Rpb25Cb3gqIGJveCA9IHJlaW50ZXJw
cmV0X2Nhc3Q8RnVuY3Rpb25Cb3gqPihjb250ZXh0KTsKKyAgICBib3gtPm1fZnVuY3Rpb24oKTsK
KyAgICBkZWxldGUgYm94OworfQorCitEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6RGlzcGF0
Y2hTZXJpYWxRdWV1ZVByaXZhdGUoKQorICAgIDogbV9oYXNUZXJtaW5hdGlvbkJlZ3VuKGZhbHNl
KQoreworICAgIG1fZGlzcGF0Y2hHcm91cCA9IGRpc3BhdGNoX2dyb3VwX2NyZWF0ZSgpOworICAg
IG1fZGlzcGF0Y2hRdWV1ZSA9IGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgwLCAwKTsKK30KKworRGlz
cGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6On5EaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSgpCit7
CisgICAgdGVybWluYXRlKCk7CisgICAgZGlzcGF0Y2hfcmVsZWFzZShtX2Rpc3BhdGNoR3JvdXAp
OworICAgIGRpc3BhdGNoX3JlbGVhc2UobV9kaXNwYXRjaFF1ZXVlKTsKK30KKwordm9pZCBEaXNw
YXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6dGVybWluYXRlKCkKK3sKKyAgICB7CisgICAgICAgIE11
dGV4TG9ja2VyIGxvY2tlcihtX2hhc1Rlcm1pbmF0aW9uQmVndW5NdXRleCk7CisgICAgICAgIG1f
aGFzVGVybWluYXRpb25CZWd1biA9IHRydWU7CisgICAgfQorICAgIGRpc3BhdGNoX2dyb3VwX3dh
aXQobV9kaXNwYXRjaEdyb3VwLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOworfQorCitzdHJ1Y3Qg
Q2FuY2VsYWJsZUZ1bmN0aW9uQm94IHsKKyAgICBDYW5jZWxhYmxlRnVuY3Rpb25Cb3goY29uc3Qg
RnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24sIERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKiBx
dWV1ZSkKKyAgICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQorICAgICAgICAsIG1fcXVldWUo
cXVldWUpCisgICAgeworICAgIH0KKworICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9mdW5jdGlvbjsK
KyAgICBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSogbV9xdWV1ZTsKK307CisKK3ZvaWQgRGlz
cGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6Omludm9rZUZ1bmN0aW9uKHZvaWQqIGNvbnRleHQpCit7
CisgICAgQ2FuY2VsYWJsZUZ1bmN0aW9uQm94KiBib3ggPSByZWludGVycHJldF9jYXN0PENhbmNl
bGFibGVGdW5jdGlvbkJveCo+KGNvbnRleHQpOworCisgICAgYm9vbCBpc0NhbmNlbGVkOworICAg
IHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGJveC0+bV9xdWV1ZS0+bV9oYXNUZXJtaW5h
dGlvbkJlZ3VuTXV0ZXgpOworICAgICAgICBpc0NhbmNlbGVkID0gYm94LT5tX3F1ZXVlLT5tX2hh
c1Rlcm1pbmF0aW9uQmVndW47CisgICAgfQorICAgIGlmIChMSUtFTFkoIWlzQ2FuY2VsZWQpKQor
ICAgICAgICBib3gtPm1fZnVuY3Rpb24oKTsKKworICAgIGRlbGV0ZSBib3g7Cit9CisKK3ZvaWQg
RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4m
IGZ1bmN0aW9uKQoreworICAgIEFTU0VSVCghbV9oYXNUZXJtaW5hdGlvbkJlZ3VuKTsKKworICAg
IENhbmNlbGFibGVGdW5jdGlvbkJveCogYm94ID0gbmV3IENhbmNlbGFibGVGdW5jdGlvbkJveChm
dW5jdGlvbiwgdGhpcyk7CisgICAgZGlzcGF0Y2hfZ3JvdXBfYXN5bmNfZihtX2Rpc3BhdGNoR3Jv
dXAsIG1fZGlzcGF0Y2hRdWV1ZSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oYm94KSwgJkRpc3Bh
dGNoU2VyaWFsUXVldWVQcml2YXRlOjppbnZva2VGdW5jdGlvbik7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKFRIUkVBRElOR19MSUJESVNQQVRDSCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guaCBi
L1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lYzkwN2ZlZWQ2NzY2MjNlZDQ3M2E5YzE4Y2M5MDAyNjBhMWE0MzQ0Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5o
CkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ29tcGFueSAxMDAg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2hfaAor
I2RlZmluZSBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoX2gKKworI2lmIEVOQUJMRShU
SFJFQURJTkdfTElCRElTUEFUQ0gpCisKKyNpbmNsdWRlICJEaXNwYXRjaFF1ZXVlLmgiCisKKyNp
bmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSB7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUpOwor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3du
UHRyPERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpKTsKKyAgICB9
CisKKyAgICB+RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKTsKKworICAgIHZvaWQgYXN5bmMo
Y29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOworCitwcml2YXRlOgorICAgIERpc3BhdGNoR2xvYmFs
UXVldWVQcml2YXRlKCk7CisgICAgc3RhdGljIHZvaWQgaW52b2tlRnVuY3Rpb24odm9pZCogY29u
dGV4dCk7CisKKyAgICBkaXNwYXRjaF9xdWV1ZV90IG1fZGlzcGF0Y2hRdWV1ZTsKK307CisKK2Ns
YXNzIERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8RGlzcGF0Y2hTZXJpYWxRdWV1ZVBy
aXZhdGU+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERpc3Bh
dGNoU2VyaWFsUXVldWVQcml2YXRlKCkpOworICAgIH0KKworICAgIH5EaXNwYXRjaFNlcmlhbFF1
ZXVlUHJpdmF0ZSgpOworCisgICAgdm9pZCBhc3luYyhjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7
CisKK3ByaXZhdGU6CisgICAgRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUoKTsKKyAgICBzdGF0
aWMgdm9pZCBpbnZva2VGdW5jdGlvbih2b2lkKiBjb250ZXh0KTsKKworICAgIHZvaWQgdGVybWlu
YXRlKCk7CisKKyAgICBkaXNwYXRjaF9xdWV1ZV90IG1fZGlzcGF0Y2hRdWV1ZTsKKyAgICBkaXNw
YXRjaF9ncm91cF90IG1fZGlzcGF0Y2hHcm91cDsKKyAgICBNdXRleCBtX2hhc1Rlcm1pbmF0aW9u
QmVndW5NdXRleDsKKyAgICBib29sIG1faGFzVGVybWluYXRpb25CZWd1bjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKFRIUkVBRElOR19MSUJESVNQQVRDSCkK
KworI2VuZGlmIC8vIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2hfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwIGIvU291cmNlL1dURi93dGYv
VGhyZWFkaW5nUHRocmVhZHMuY3BwCmluZGV4IDUxMDE3M2QwOTgxMmNkOWZjMDI1ZDdkY2U5ZmUy
YTYzMTgxNjUyZDcuLjM0NGIwYmI4MGNjZDNhZGYzODQ4OTQ2ODBhNjFiMGJjYzQwNzU3ODggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNs
dWRlICJUaHJlYWRJZGVudGlmaWVyRGF0YVB0aHJlYWRzLmgiCiAjaW5jbHVkZSAiVGhyZWFkU3Bl
Y2lmaWMuaCIKICNpbmNsdWRlICJVbnVzZWRQYXJhbS5oIgorI2luY2x1ZGUgPHd0Zi9EaXNwYXRj
aFF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1dURlRocmVhZERhdGEuaD4KQEAgLTk0LDYgKzk1LDcgQEAg
dm9pZCBpbml0aWFsaXplVGhyZWFkaW5nKCkKICAgICB3dGZUaHJlYWREYXRhKCk7CiAgICAgc19k
dG9hUDVNdXRleCA9IG5ldyBNdXRleDsKICAgICBpbml0aWFsaXplRGF0ZXMoKTsKKyAgICBEaXNw
YXRjaFF1ZXVlOjppbml0aWFsaXplRGlzcGF0Y2hRdWV1ZSgpOwogfQogCiB2b2lkIGxvY2tBdG9t
aWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmdXaW4uY3BwIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcAppbmRl
eCBkMzM5NzNkYWY3OGM5YjZlNjBkN2QxYzNlOTRiYTZmYjZkODQ5YjQ1Li40ODU2N2QwMWIzZGNj
YWQ4NzNjODI5ODJlNGFjOTNmZmFmMDYxNmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9U
aHJlYWRpbmdXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKQEAg
LTkzLDYgKzkzLDcgQEAKICNpbmNsdWRlICJUaHJlYWRGdW5jdGlvbkludm9jYXRpb24uaCIKICNp
bmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVk
ZSA8d3RmL0Rpc3BhdGNoUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1
ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMTc5LDYg
KzE4MCw3IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgd3RmVGhyZWFkRGF0YSgp
OwogICAgIHNfZHRvYVA1TXV0ZXggPSBuZXcgTXV0ZXg7CiAgICAgaW5pdGlhbGl6ZURhdGVzKCk7
CisgICAgRGlzcGF0Y2hRdWV1ZTo6aW5pdGlhbGl6ZURpc3BhdGNoUXVldWUoKTsKIH0KIAogc3Rh
dGljIEhhc2hNYXA8RFdPUkQsIEhBTkRMRT4mIHRocmVhZE1hcCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150909</attachid>
            <date>2012-07-05 03:03:40 -0700</date>
            <delta_ts>2012-07-05 03:16:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90584-20120705190315.patch</filename>
            <type>text/plain</type>
            <size>14263</size>
            <attacher name="Kwonjin Jeong">gram</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ5MjU3OTQxMWViNzk3NWVmNGJhMzFl
ZTFkNjVkYjIwZGMzMzRkYWUuLmEwOWEwMGYwMTBlNmE4NmNiNGE4MjAwNzRmODkxOGJmYzlhOTkw
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTItMDctMDUgIEt3b25qaW4gSmVvbmcgIDxncmFt
QGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIEFkZCBEaXNwYXRjaFF1ZXVlIGNsYXNzLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA1ODQKKworICAg
ICAgICBQYXRjaCBieSBLd29uamluIEplb25nIDxncmFtQGNvbXBhbnkxMDAubmV0PiBvbiAyMDEy
LTA3LTA0CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF1
dGhvcmVkIGJ5IEt3b25qaW4gSmVvbmcgYW5kIERvbmdzdW5nIEh1YW5nLgorCisgICAgICAgIERp
c3BhdGNoUXVldWUgaXMgYSBzaW1wbGUgQysrIHdyYXBwZXIgYXJvdW5kIGxpYmRpc3BhdGNoIChH
Q0QpLiBBIHRocmVhZCBwb29sIGJhc2VkCisgICAgICAgIGZhbGxiYWNrIGltcGxlbWVudGF0aW9u
IGlzIGFsc28gYXZhaWFibGUuIFNvIHBvcnRzIHdpdGhvdXQgbGliZGlzcGF0Y2ggY2FuIHVzZSB0
aGUgc2FtZSBBUEkuCisKKyAgICAgICAgSXQgcHJvdmlkZXMgb25seSB0aGUgc21hbGwgc3Vic2V0
IG9mIHRoZSBvcmlnaW5hbCBsaWJkaXNwYXRjaCBBUEkuIFRoZXJlIGFyZSB0aHJlZSB0eXBlcwor
ICAgICAgICBvZiBEaXNwYXRjaFF1ZXVlOiBzZXJpYWwsIGdsb2JhbCBhbmQgbWFpbi4gVGhlc2Ug
cXVldWVzIGNvcnJlc3BvbmQgdG8gdGhlIHNlcmlhbCwKKyAgICAgICAgY29uY3VycmVudCBnbG9i
YWwgYW5kIG1haW4gcXVldWUgaW4gbGliZGlzcGF0Y2guCisKKyAgICAgICAgRGlzcGF0Y2hRdWV1
ZTo6YXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpIG1ldGhvZCBpcyB1c2VkIHRvIHNjaGVk
dWxlIGEgdGFzayByZWdhcmRsZXNzCisgICAgICAgIG9mIHRoZSBxdWV1ZSB0eXBlLgorCisgICAg
ICAgIEN1cnJlbnRseSwgaXQgaXMgdXNlZCBieSBwYXJhbGxlbCBpbWFnZSBkZWNvZGVycyB0byBw
ZXJmb3JtIGltYWdlIGRlY29kaW5nIGNvbmN1cnJlbnRseS4KKworICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06CisgICAgICAgICogV1RGLmd5cGk6CisgICAgICAgICogV1RGLnBybzoKKyAg
ICAgICAgKiBXVEYudmNwcm9qL1dURi52Y3Byb2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAq
IHd0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVUaHJl
YWRpbmcpOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdXaW4uY3BwOgorICAgICAgICAoV1RGOjpp
bml0aWFsaXplVGhyZWFkaW5nKToKKyAgICAgICAgKiB3dGYvY2hyb21pdW0vTWFpblRocmVhZENo
cm9taXVtLmNwcDoKKyAgICAgICAgKFdURjo6Y2FsbEZ1bmN0aW9uT2JqZWN0KToKKyAgICAgICAg
KFdURik6CisgICAgICAgIChXVEY6OmNhbGxPbk1haW5UaHJlYWQpOgorCiAyMDEyLTA3LTA0ICBU
b3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBb
UXRdIEdldCByaWQgb2YgdW4tbmVlZGVkIFFUICs9IGRlY2xhcmF0aXZlIGZvciBRdCA1CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggYzVmNDhhNmNlNTU5YTI0Y2MyMGI3MDc1OGRmOGJjNGE4NGRj
OWVlZC4uZWJhNDRiOGE4ODA3MzdlYjQ1MTI5YWI2ZjAwMGQxOGYzMWQzMWM2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05VbWFr
ZWZpbGUubGlzdC5hbQpAQCAtMzcsNiArMzcsMTIgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAgIFNv
dXJjZS9XVEYvd3RmL0RlY29kZXIuaCBcCiAgICAgU291cmNlL1dURi93dGYvRGVxdWUuaCBcCiAg
ICAgU291cmNlL1dURi93dGYvRGlzYWxsb3dDVHlwZS5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9E
aXNwYXRjaFF1ZXVlLmNwcCBcCisgICAgU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZS5oIFwK
KyAgICBTb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwIFwKKyAg
ICBTb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCBcCisgICAgU291
cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5jcHAgXAorICAgIFNv
dXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guaCBcCiAgICAgU291
cmNlL1dURi93dGYvRG91Ymx5TGlua2VkTGlzdC5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9EeW5h
bWljQW5ub3RhdGlvbnMuY3BwIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9EeW5hbWljQW5ub3RhdGlv
bnMuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5neXBpIGIvU291cmNlL1dURi9XVEYu
Z3lwaQppbmRleCA4Njc1ODU1MDYxZDM3NGVmYWZmZTdkNjJlMTUzZGViMTFiYmFkMDM5Li5jMmQ1
ZWI0MzY5OTM2MjRlOGVmMjY1OWExZTMxNTIzYzVjMTYzN2E0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL1dURi5neXBpCisrKyBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKQEAgLTEzNyw2ICsxMzcsMTIg
QEAKICAgICAgICAgICAgICd3dGYvRGF0YUxvZy5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9EYXRl
TWF0aC5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9EZWNpbWFsTnVtYmVyLmNwcCcsCisgICAgICAg
ICAgICAnd3RmL0Rpc3BhdGNoUXVldWUuY3BwJywKKyAgICAgICAgICAgICd3dGYvRGlzcGF0Y2hR
dWV1ZS5oJywKKyAgICAgICAgICAgICd3dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNw
cCcsCisgICAgICAgICAgICAnd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oJywKKyAg
ICAgICAgICAgICd3dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5jcHAnLAorICAg
ICAgICAgICAgJ3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgnLAogICAgICAg
ICAgICAgJ3d0Zi9EeW5hbWljQW5ub3RhdGlvbnMuY3BwJywKICAgICAgICAgICAgICd3dGYvRHlu
YW1pY0Fubm90YXRpb25zLmgnLAogICAgICAgICAgICAgJ3d0Zi9GYXN0TWFsbG9jLmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8KaW5kZXgg
MDk2MmVmMGI1MGE1MTdiZDBlMmQ0NTYyZGY4ZGVmZDZmNTFhMWYwNC4uNjgwYWIzMjIwY2U2NDE1
NzlkN2QxMzAwMWRhYzcyMGUyMzFkZTI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYucHJv
CisrKyBiL1NvdXJjZS9XVEYvV1RGLnBybwpAQCAtMTc3LDYgKzE3Nyw5IEBAIFNPVVJDRVMgKz0g
XAogICAgIERhdGVNYXRoLmNwcCBcCiAgICAgRGF0YUxvZy5jcHAgXAogICAgIERlY2ltYWxOdW1i
ZXIuY3BwIFwKKyAgICBEaXNwYXRjaFF1ZXVlLmNwcCBcCisgICAgRGlzcGF0Y2hRdWV1ZVByaXZh
dGVMaWJkaXNwYXRjaC5jcHAgXAorICAgIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAg
XAogICAgIGR0b2EuY3BwIFwKICAgICBkdG9hL2JpZ251bS1kdG9hLmNjIFwKICAgICBkdG9hL2Jp
Z251bS5jYyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvaiBi
L1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCmluZGV4IDIxOTBkYWUxZWZmZWFlMzM5
NTMzMjdlM2NiNzNlNzdlNmVlNDZkNTguLjRmNmQ1M2FkZWNjOTA0MGQyNjZlMjIzNWJkNmY2ZmE1
ODAxYjVmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCisr
KyBiL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC03MDEsNiArNzAxLDMwIEBA
CiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXERpc3Bh
dGNoUXVldWUuY3BwIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHd0ZlxEaXNwYXRjaFF1ZXVlLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJl
bGF0aXZlUGF0aD0iLi5cd3RmXERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAiCisJCQk+
CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXERpc3BhdGNoUXVl
dWVQcml2YXRlR2VuZXJpYy5oIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHd0ZlxEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCIKKwkJCT4K
KwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGlzcGF0Y2hRdWV1
ZVByaXZhdGVMaWJkaXNwYXRjaC5oIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCiAJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHd0ZlxEb3VibHlMaW5rZWRMaXN0LmgiCiAJCQk+CiAJCTwvRmlsZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc3MjA0NjFlMjY0NjYx
ZmM4ZTk0MzVlOTA4ODE2NzRiY2QxYjc2NTguLjQyYWZhNTEzMmI1NTYwODBhZWRjNGQzODk2NGY2
YzdiMDY5MzIyMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNDgsNiArNDgsMTIgQEAKIAkJQThBNDczQTQxNTFBODI1QjAwNDEyM0ZGIC8qIERlY29kZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdE
MTUxQTgyNUEwMDQxMjNGRiAvKiBEZWNvZGVyLmggKi87IH07CiAJCUE4QTQ3M0E1MTUxQTgyNUIw
MDQxMjNGRiAvKiBEZXF1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThBNDcyN0UxNTFBODI1QTAwNDEyM0ZGIC8qIERlcXVlLmggKi87IH07CiAJCUE4
QTQ3M0E2MTUxQTgyNUIwMDQxMjNGRiAvKiBEaXNhbGxvd0NUeXBlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI3RjE1MUE4MjVBMDA0MTIzRkYg
LyogRGlzYWxsb3dDVHlwZS5oICovOyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRjkgLyog
RGlzcGF0Y2hRdWV1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBOEE0NzI3RjE1MUE4MjVBMDA0MTIzRkYgLyogRGlzcGF0Y2hRdWV1ZS5jcHAgKi87
IH07CisJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGQSAvKiBEaXNwYXRjaFF1ZXVlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI3RjE1MUE4MjVB
MDA0MTIzRkYgLyogRGlzcGF0Y2hRdWV1ZS5oICovOyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0
MTIzRkIgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgyNUEwMDQxMjNGRiAv
KiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwICovOyB9OworCQlBOEE0NzNBNzE1MUE4
MjVCMDA0MTIzRkMgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI3RjE1MUE4MjVBMDA0MTIz
RkYgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmggKi87IH07CisJCUE4QTQ3M0E3MTUx
QTgyNUIwMDQxMjNGRCAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgy
NUEwMDQxMjNGRiAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCAqLzsgfTsK
KwkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZFIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlz
cGF0Y2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4
QTQ3MjdGMTUxQTgyNUEwMDQxMjNGRiAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNo
LmggKi87IH07CiAJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGRiAvKiBEb3VibHlMaW5rZWRMaXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI4
MDE1MUE4MjVBMDA0MTIzRkYgLyogRG91Ymx5TGlua2VkTGlzdC5oICovOyB9OwogCQlBOEE0NzNB
ODE1MUE4MjVCMDA0MTIzRkYgLyogYmlnbnVtLWR0b2EuY2MgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI4MjE1MUE4MjVBMDA0MTIzRkYgLyogYmln
bnVtLWR0b2EuY2MgKi87IH07CiAJCUE4QTQ3M0E5MTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0t
ZHRvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDcyODMxNTFBODI1QTAwNDEyM0ZGIC8qIGJpZ251bS1kdG9hLmggKi87IH07CkBAIC0yOTMsNiAr
Mjk5LDEyIEBACiAJCUE4QTQ3MjdEMTUxQTgyNUEwMDQxMjNGRiAvKiBEZWNvZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlY29kZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQThBNDcyN0UxNTFBODI1QTAwNDEyM0ZGIC8qIERlcXVlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERlcXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE4QTQ3MjdGMTUxQTgyNUEwMDQxMjNGRiAvKiBEaXNhbGxvd0NUeXBlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc2FsbG93Q1R5cGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJQThBNDczQTcxNTFBODI1QjAwNDEyM0Y5IC8qIERpc3BhdGNoUXVl
dWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwYXRjaFF1ZXVlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZB
IC8qIERpc3BhdGNoUXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlz
cGF0Y2hRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEE0NzNBNzE1MUE4
MjVCMDA0MTIzRkIgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZDIC8q
IERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZEIC8qIERpc3BhdGNoUXVldWVQcml2
YXRlTGliZGlzcGF0Y2guY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNw
YXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZFIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGli
ZGlzcGF0Y2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGF0Y2hRdWV1
ZVByaXZhdGVMaWJkaXNwYXRjaC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0
NzI4MDE1MUE4MjVBMDA0MTIzRkYgLyogRG91Ymx5TGlua2VkTGlzdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEb3VibHlMaW5rZWRMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE4QTQ3MjgyMTUxQTgyNUEwMDQxMjNGRiAvKiBiaWdudW0tZHRvYS5jYyAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9ICJiaWdudW0tZHRvYS5jYyI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MjgzMTUxQTgyNUEwMDQxMjNGRiAvKiBi
aWdudW0tZHRvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSAiYmlnbnVtLWR0
b2EuaCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODMsNiArNTk1LDEyIEBACiAJ
CQkJQThBNDcyN0QxNTFBODI1QTAwNDEyM0ZGIC8qIERlY29kZXIuaCAqLywKIAkJCQlBOEE0NzI3
RTE1MUE4MjVBMDA0MTIzRkYgLyogRGVxdWUuaCAqLywKIAkJCQlBOEE0NzI3RjE1MUE4MjVBMDA0
MTIzRkYgLyogRGlzYWxsb3dDVHlwZS5oICovLAorCQkJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNG
OSAvKiBEaXNwYXRjaFF1ZXVlLmNwcCAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkEg
LyogRGlzcGF0Y2hRdWV1ZS5oICovLAorCQkJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGQiAvKiBE
aXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwICovLAorCQkJCUE4QTQ3M0E3MTUxQTgyNUIw
MDQxMjNGQyAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCAqLywKKwkJCQlBOEE0NzNB
NzE1MUE4MjVCMDA0MTIzRkQgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5jcHAg
Ki8sCisJCQkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZFIC8qIERpc3BhdGNoUXVldWVQcml2YXRl
TGliZGlzcGF0Y2guaCAqLywKIAkJCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRkYgLyogRG91Ymx5
TGlua2VkTGlzdC5oICovLAogCQkJCUE4QTQ3MjgxMTUxQTgyNUEwMDQxMjNGRiAvKiBkdG9hICov
LAogCQkJCUE4QTQ3Mjk3MTUxQTgyNUEwMDQxMjNGRiAvKiBkdG9hLmNwcCAqLywKQEAgLTg5Myw2
ICs5MTEsOSBAQAogCQkJCUE4QTQ3M0E0MTUxQTgyNUIwMDQxMjNGRiAvKiBEZWNvZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzNBNTE1MUE4MjVCMDA0MTIzRkYgLyogRGVxdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4QTQ3M0E2MTUxQTgyNUIwMDQxMjNGRiAvKiBEaXNhbGxvd0NUeXBl
LmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkEgLyogRGlzcGF0
Y2hRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZDIC8q
IERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQThBNDcz
QTcxNTFBODI1QjAwNDEyM0ZFIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guaCBp
biBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGRiAvKiBEb3VibHlMaW5r
ZWRMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNBOTE1MUE4MjVCMDA0MTIzRkYgLyog
YmlnbnVtLWR0b2EuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0FCMTUxQTgyNUIwMDQxMjNG
RiAvKiBiaWdudW0uaCBpbiBIZWFkZXJzICovLApAQCAtMTEzOCw2ICsxMTU5LDkgQEAKIAkJCQlB
OEE0NzM5RTE1MUE4MjVCMDA0MTIzRkYgLyogRGF0YUxvZy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOEE0NzNBMDE1MUE4MjVCMDA0MTIzRkYgLyogRGF0ZU1hdGguY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQThBNDczQTIxNTFBODI1QjAwNDEyM0ZGIC8qIERlY2ltYWxOdW1iZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJQThBNDczQTcxNTFBODI1QjAwNDEyM0Y5IC8qIERpc3BhdGNoUXVldWUu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZCIC8qIERpc3Bh
dGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBOEE0NzNBNzE1
MUE4MjVCMDA0MTIzRkQgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBOEE0NzNBODE1MUE4MjVCMDA0MTIzRkYgLyogYmlnbnVtLWR0b2Eu
Y2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNBQTE1MUE4MjVCMDA0MTIzRkYgLyogYmlnbnVt
LmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQUMxNTFBODI1QjAwNDEyM0ZGIC8qIGNhY2hl
ZC1wb3dlcnMuY2MgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggMjc0ZjA0
Yzk3NDkzMTlhZWY0ODA0NDc5MTZkZDIyODI3MjUwODY4Zi4uNTU4MzU1NzIyODk1NDhiZWRmOTg4
YTAzZjlhOWQ3MTc4MWFhOTJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTIwLDYgKzIwLDkg
QEAgU0VUKFdURl9IRUFERVJTCiAgICAgRGVjb2Rlci5oCiAgICAgRGVxdWUuaAogICAgIERpc2Fs
bG93Q1R5cGUuaAorICAgIERpc3BhdGNoUXVldWUuaAorICAgIERpc3BhdGNoUXVldWVQcml2YXRl
R2VuZXJpYy5oCisgICAgRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oCiAgICAgRG91
Ymx5TGlua2VkTGlzdC5oCiAgICAgRHluYW1pY0Fubm90YXRpb25zLmgKICAgICBFbmNvZGVyLmgK
QEAgLTE0Miw2ICsxNDUsOSBAQCBTRVQoV1RGX1NPVVJDRVMKICAgICBEYXRlTWF0aC5jcHAKICAg
ICBEYXRhTG9nLmNwcAogICAgIERlY2ltYWxOdW1iZXIuY3BwCisgICAgRGlzcGF0Y2hRdWV1ZS5j
cHAKKyAgICBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcAorICAgIERpc3BhdGNo
UXVldWVQcml2YXRlR2VuZXJpYy5jcHAKICAgICBEeW5hbWljQW5ub3RhdGlvbnMuY3BwCiAgICAg
RmFzdE1hbGxvYy5jcHAKICAgICBIYXNoVGFibGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhy
ZWFkcy5jcHAKaW5kZXggNTEwMTczZDA5ODEyY2Q5ZmMwMjVkN2RjZTlmZTJhNjMxODE2NTJkNy4u
MzQ0YjBiYjgwY2NkM2FkZjM4NDg5NDY4MGE2MWIwYmNjNDA3NTc4OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Ro
cmVhZGluZ1B0aHJlYWRzLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIlRocmVhZElk
ZW50aWZpZXJEYXRhUHRocmVhZHMuaCIKICNpbmNsdWRlICJUaHJlYWRTcGVjaWZpYy5oIgogI2lu
Y2x1ZGUgIlVudXNlZFBhcmFtLmgiCisjaW5jbHVkZSA8d3RmL0Rpc3BhdGNoUXVldWUuaD4KICNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNs
dWRlIDx3dGYvV1RGVGhyZWFkRGF0YS5oPgpAQCAtOTQsNiArOTUsNyBAQCB2b2lkIGluaXRpYWxp
emVUaHJlYWRpbmcoKQogICAgIHd0ZlRocmVhZERhdGEoKTsKICAgICBzX2R0b2FQNU11dGV4ID0g
bmV3IE11dGV4OwogICAgIGluaXRpYWxpemVEYXRlcygpOworICAgIERpc3BhdGNoUXVldWU6Omlu
aXRpYWxpemVEaXNwYXRjaFF1ZXVlKCk7CiB9CiAKIHZvaWQgbG9ja0F0b21pY2FsbHlJbml0aWFs
aXplZFN0YXRpY011dGV4KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dp
bi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCmluZGV4IGQzMzk3M2RhZjc4
YzliNmU2MGQ3ZDFjM2U5NGJhNmZiNmQ4NDliNDUuLjQ4NTY3ZDAxYjNkY2NhZDg3M2M4Mjk4MmU0
YWM5M2ZmYWYwNjE2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcApAQCAtOTMsNiArOTMsNyBA
QAogI2luY2x1ZGUgIlRocmVhZEZ1bmN0aW9uSW52b2NhdGlvbi5oIgogI2luY2x1ZGUgPHdpbmRv
d3MuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvRGlzcGF0
Y2hRdWV1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhF
eHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0xNzksNiArMTgwLDcgQEAgdm9p
ZCBpbml0aWFsaXplVGhyZWFkaW5nKCkKICAgICB3dGZUaHJlYWREYXRhKCk7CiAgICAgc19kdG9h
UDVNdXRleCA9IG5ldyBNdXRleDsKICAgICBpbml0aWFsaXplRGF0ZXMoKTsKKyAgICBEaXNwYXRj
aFF1ZXVlOjppbml0aWFsaXplRGlzcGF0Y2hRdWV1ZSgpOwogfQogCiBzdGF0aWMgSGFzaE1hcDxE
V09SRCwgSEFORExFPiYgdGhyZWFkTWFwKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2No
cm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9jaHJvbWl1bS9N
YWluVGhyZWFkQ2hyb21pdW0uY3BwCmluZGV4IDllNjU5MmI1NzE1Njc5YWUyYmM5YTZkMWEwYjZm
M2I4YzllMThlODEuLjRmOWI0MzdlMTk5MDk3MmQzNzVhOTAzNTEzODZlY2M0NjQ5NDZjZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvY2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcApAQCAt
MzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiQXNzZXJ0aW9ucy5oIgogI2luY2x1ZGUgIkNocm9t
aXVtVGhyZWFkaW5nLmgiCisjaW5jbHVkZSAiRnVuY3Rpb25hbC5oIgogI2luY2x1ZGUgIlRocmVh
ZGluZy5oIgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTU0LDYgKzU1LDE4IEBAIHZvaWQgY2FsbE9u
TWFpblRocmVhZChNYWluVGhyZWFkRnVuY3Rpb24qIGZ1bmN0aW9uLCB2b2lkKiBjb250ZXh0KQog
ICAgIENocm9taXVtVGhyZWFkaW5nOjpjYWxsT25NYWluVGhyZWFkKGZ1bmN0aW9uLCBjb250ZXh0
KTsKIH0KIAorc3RhdGljIHZvaWQgY2FsbEZ1bmN0aW9uT2JqZWN0KHZvaWQqIGNvbnRleHQpCit7
CisgICAgRnVuY3Rpb248dm9pZCAoKT4qIGZ1bmN0aW9uID0gc3RhdGljX2Nhc3Q8RnVuY3Rpb248
dm9pZCAoKT4qPihjb250ZXh0KTsKKyAgICAoKmZ1bmN0aW9uKSgpOworICAgIGRlbGV0ZSBmdW5j
dGlvbjsKK30KKwordm9pZCBjYWxsT25NYWluVGhyZWFkKGNvbnN0IEZ1bmN0aW9uPHZvaWQgKCk+
JiBmdW5jdGlvbikKK3sKKyAgICBjYWxsT25NYWluVGhyZWFkKGNhbGxGdW5jdGlvbk9iamVjdCwg
bmV3IEZ1bmN0aW9uPHZvaWQgKCk+KGZ1bmN0aW9uKSk7Cit9CisKIHZvaWQgY2FsbE9uTWFpblRo
cmVhZEFuZFdhaXQoTWFpblRocmVhZEZ1bmN0aW9uKiwgdm9pZCopCiB7CiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150912</attachid>
            <date>2012-07-05 03:16:42 -0700</date>
            <delta_ts>2012-07-05 04:21:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90584-20120705191618.patch</filename>
            <type>text/plain</type>
            <size>42492</size>
            <attacher name="Kwonjin Jeong">gram</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ5MjU3OTQxMWViNzk3NWVmNGJhMzFl
ZTFkNjVkYjIwZGMzMzRkYWUuLjllYTMzZTNmMzI3NmY3MDAwMzlhZTE2NjgwZTA0NjM0ZDQ4MGNi
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTE4IEBACisyMDEyLTA3LTA1ICBLd29uamluIEplb25nICA8Z3Jh
bUBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBBZGQgRGlzcGF0Y2hRdWV1ZSBjbGFzcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNTg0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXV0aG9yZWQgYnkg
S3dvbmppbiBKZW9uZyBhbmQgRG9uZ3N1bmcgSHVhbmcuCisKKyAgICAgICAgRGlzcGF0Y2hRdWV1
ZSBpcyBhIHNpbXBsZSBDKysgd3JhcHBlciBhcm91bmQgbGliZGlzcGF0Y2ggKEdDRCkuIEEgdGhy
ZWFkIHBvb2wgYmFzZWQKKyAgICAgICAgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gaXMgYWxzbyBh
dmFpYWJsZS4gU28gcG9ydHMgd2l0aG91dCBsaWJkaXNwYXRjaCBjYW4gdXNlIHRoZSBzYW1lIEFQ
SS4KKworICAgICAgICBJdCBwcm92aWRlcyBvbmx5IHRoZSBzbWFsbCBzdWJzZXQgb2YgdGhlIG9y
aWdpbmFsIGxpYmRpc3BhdGNoIEFQSS4gVGhlcmUgYXJlIHRocmVlIHR5cGVzCisgICAgICAgIG9m
IERpc3BhdGNoUXVldWU6IHNlcmlhbCwgZ2xvYmFsIGFuZCBtYWluLiBUaGVzZSBxdWV1ZXMgY29y
cmVzcG9uZCB0byB0aGUgc2VyaWFsLAorICAgICAgICBjb25jdXJyZW50IGdsb2JhbCBhbmQgbWFp
biBxdWV1ZSBpbiBsaWJkaXNwYXRjaC4KKworICAgICAgICBEaXNwYXRjaFF1ZXVlOjphc3luYyhj
b25zdCBGdW5jdGlvbjx2b2lkKCk+JikgbWV0aG9kIGlzIHVzZWQgdG8gc2NoZWR1bGUgYSB0YXNr
IHJlZ2FyZGxlc3MKKyAgICAgICAgb2YgdGhlIHF1ZXVlIHR5cGUuCisKKyAgICAgICAgQ3VycmVu
dGx5LCBpdCBpcyB1c2VkIGJ5IHBhcmFsbGVsIGltYWdlIGRlY29kZXJzIHRvIHBlcmZvcm0gaW1h
Z2UgZGVjb2RpbmcgY29uY3VycmVudGx5LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBXVEYuZ3lwaToKKyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdU
Ri52Y3Byb2ovV1RGLnZjcHJvajoKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0Rpc3Bh
dGNoUXVldWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChEaXNwYXRjaE1h
aW5RdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoTWFpblF1ZXVlOjp+RGlzcGF0Y2hNYWlu
UXVldWUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaE1haW5RdWV1ZTo6YXN5bmMpOgorICAgICAg
ICAoV1RGOjpEaXNwYXRjaE1haW5RdWV1ZTo6RGlzcGF0Y2hNYWluUXVldWUpOgorICAgICAgICAo
RGlzcGF0Y2hHbG9iYWxRdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoR2xvYmFsUXVldWU6
On5EaXNwYXRjaEdsb2JhbFF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1
ZTo6YXN5bmMpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlOjpEaXNwYXRjaEds
b2JhbFF1ZXVlKToKKyAgICAgICAgKERpc3BhdGNoU2VyaWFsUXVldWUpOgorICAgICAgICAoV1RG
OjpEaXNwYXRjaFNlcmlhbFF1ZXVlOjp+RGlzcGF0Y2hTZXJpYWxRdWV1ZSk6CisgICAgICAgIChX
VEY6OkRpc3BhdGNoU2VyaWFsUXVldWU6OmFzeW5jKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hT
ZXJpYWxRdWV1ZTo6RGlzcGF0Y2hTZXJpYWxRdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNo
UXVldWU6Omdsb2JhbFF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hRdWV1ZTo6bWFpblF1
ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hRdWV1ZTo6aW5pdGlhbGl6ZURpc3BhdGNoUXVl
dWUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFF1ZXVlOjpjcmVhdGVTZXJpYWxRdWV1ZSk6Cisg
ICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWUuaDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAg
ICAgICAoRGlzcGF0Y2hRdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoUXVldWU6On5EaXNw
YXRjaFF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hRdWV1ZTo6RGlzcGF0Y2hRdWV1ZSk6
CisgICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHA6IEFkZGVkLgor
ICAgICAgICAoV1RGKToKKyAgICAgICAgKEV4ZWN1dG9yKToKKyAgICAgICAgKFdURjo6RXhlY3V0
b3I6OmFjcXVpcmUpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6cmVsZWFzZSk6CisgICAgICAg
IChXVEY6OkV4ZWN1dG9yOjphY3F1aXJlQ291bnQpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6
RXhlY3V0b3IpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6fkV4ZWN1dG9yKToKKyAgICAgICAg
KFdURjo6RXhlY3V0b3I6OmV4ZWN1dGUpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6d29ya2Vy
VGhyZWFkKToKKyAgICAgICAgKEV4ZWN1dG9yUG9vbCk6CisgICAgICAgIChXVEY6OkV4ZWN1dG9y
UG9vbDo6aW5pdGlhbGl6ZUV4ZWN1dG9yUG9vbCk6CisgICAgICAgIChXVEY6OmV4ZWN1dG9yUG9v
bCk6CisgICAgICAgIChXVEY6OkV4ZWN1dG9yUG9vbDo6RXhlY3V0b3JQb29sKToKKyAgICAgICAg
KFdURjo6RXhlY3V0b3JQb29sOjp+RXhlY3V0b3JQb29sKToKKyAgICAgICAgKFdURjo6RXhlY3V0
b3JQb29sOjpleGVjdXRlKToKKyAgICAgICAgKFdURjo6RXhlY3V0b3JQb29sOjpuZXh0RXhlY3V0
b3IpOgorICAgICAgICAoV1RGOjpFeGVjdXRvclBvb2w6OmFjcXVpcmVTZXJpYWxFeGVjdXRvcik6
CisgICAgICAgIChXVEY6OkV4ZWN1dG9yUG9vbDo6cmVsZWFzZVNlcmlhbEV4ZWN1dG9yKToKKyAg
ICAgICAgKFdURjo6RXhlY3V0b3JQb29sOjpzZXJpYWxFeGVjdXRvcldpdGhNaW5pbXVtQWNxdWly
ZUNvdW50KToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6OkRpc3Bh
dGNoR2xvYmFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1
ZVByaXZhdGU6On5EaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAgIChXVEY6OkRp
c3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjphc3luYyk6CisgICAgICAgIChXVEY6OkRpc3BhdGNo
U2VyaWFsUXVldWVQcml2YXRlOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAg
IChXVEY6OkRpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjp+RGlzcGF0Y2hTZXJpYWxRdWV1ZVBy
aXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6ZW5zdXJl
VGVybWluYXRlKToKKyAgICAgICAgKFdURjo6Y2FuY2VsYWJsZUZ1bmN0aW9uKToKKyAgICAgICAg
KFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmFzeW5jKToKKyAgICAgICAgKFdURjo6
RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6Omhhc1Rlcm1pbmF0aW9uQmVndW4pOgorICAgICAg
ICAqIHd0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaDogQWRkZWQuCisgICAgICAgIChX
VEYpOgorICAgICAgICAoRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RG
OjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKERpc3BhdGNo
U2VyaWFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVBy
aXZhdGU6OmNyZWF0ZSk6CisgICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlz
cGF0Y2guY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OkRpc3BhdGNo
R2xvYmFsUXVldWVQcml2YXRlOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAg
IChXVEY6OkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjp+RGlzcGF0Y2hHbG9iYWxRdWV1ZVBy
aXZhdGUpOgorICAgICAgICAoV1RGOjpGdW5jdGlvbkJveDo6RnVuY3Rpb25Cb3gpOgorICAgICAg
ICAoRnVuY3Rpb25Cb3gpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0
ZTo6YXN5bmMpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6aW52
b2tlRnVuY3Rpb24pOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6
RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlh
bFF1ZXVlUHJpdmF0ZTo6fkRpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdU
Rjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OnRlcm1pbmF0ZSk6CisgICAgICAgIChXVEY6
OkNhbmNlbGFibGVGdW5jdGlvbkJveDo6Q2FuY2VsYWJsZUZ1bmN0aW9uQm94KToKKyAgICAgICAg
KENhbmNlbGFibGVGdW5jdGlvbkJveCk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoU2VyaWFsUXVl
dWVQcml2YXRlOjppbnZva2VGdW5jdGlvbik6CisgICAgICAgIChXVEY6OkRpc3BhdGNoU2VyaWFs
UXVldWVQcml2YXRlOjphc3luYyk6CisgICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRl
TGliZGlzcGF0Y2guaDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAgICAgICAoRGlzcGF0Y2hH
bG9iYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJp
dmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKToKKyAg
ICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmNyZWF0ZSk6CisgICAgICAg
ICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZVRo
cmVhZGluZyk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5jcHA6CisgICAgICAgIChXVEY6
OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHd0Zi9jaHJvbWl1bS9NYWluVGhyZWFk
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV1RGOjpjYWxsRnVuY3Rpb25PYmplY3QpOgorICAgICAg
ICAoV1RGKToKKyAgICAgICAgKFdURjo6Y2FsbE9uTWFpblRocmVhZCk6CisKIDIwMTItMDctMDQg
IFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAg
IFtRdF0gR2V0IHJpZCBvZiB1bi1uZWVkZWQgUVQgKz0gZGVjbGFyYXRpdmUgZm9yIFF0IDUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCBjNWY0OGE2Y2U1NTlhMjRjYzIwYjcwNzU4ZGY4YmM0YTg0
ZGM5ZWVkLi5lYmE0NGI4YTg4MDczN2ViNDUxMjlhYjZmMDAwZDE4ZjMxZDMxYzYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC0zNyw2ICszNywxMiBAQCB3dGZfc291cmNlcyArPSBcCiAgICAg
U291cmNlL1dURi93dGYvRGVjb2Rlci5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9EZXF1ZS5oIFwK
ICAgICBTb3VyY2UvV1RGL3d0Zi9EaXNhbGxvd0NUeXBlLmggXAorICAgIFNvdXJjZS9XVEYvd3Rm
L0Rpc3BhdGNoUXVldWUuY3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlLmgg
XAorICAgIFNvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgXAor
ICAgIFNvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oIFwKKyAgICBT
b3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCBcCisgICAg
U291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oIFwKICAgICBT
b3VyY2UvV1RGL3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0R5
bmFtaWNBbm5vdGF0aW9ucy5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL0R5bmFtaWNBbm5vdGF0
aW9ucy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2UvV1RGL1dU
Ri5neXBpCmluZGV4IDg2NzU4NTUwNjFkMzc0ZWZhZmZlN2Q2MmUxNTNkZWIxMWJiYWQwMzkuLmMy
ZDVlYjQzNjk5MzYyNGU4ZWYyNjU5YTFlMzE1MjNjNWMxNjM3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvV1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtMTM3LDYgKzEzNywx
MiBAQAogICAgICAgICAgICAgJ3d0Zi9EYXRhTG9nLmNwcCcsCiAgICAgICAgICAgICAnd3RmL0Rh
dGVNYXRoLmNwcCcsCiAgICAgICAgICAgICAnd3RmL0RlY2ltYWxOdW1iZXIuY3BwJywKKyAgICAg
ICAgICAgICd3dGYvRGlzcGF0Y2hRdWV1ZS5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9EaXNwYXRj
aFF1ZXVlLmgnLAorICAgICAgICAgICAgJ3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMu
Y3BwJywKKyAgICAgICAgICAgICd3dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmgnLAor
ICAgICAgICAgICAgJ3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCcsCisg
ICAgICAgICAgICAnd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guaCcsCiAgICAg
ICAgICAgICAnd3RmL0R5bmFtaWNBbm5vdGF0aW9ucy5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9E
eW5hbWljQW5ub3RhdGlvbnMuaCcsCiAgICAgICAgICAgICAnd3RmL0Zhc3RNYWxsb2MuY3BwJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRl
eCAwOTYyZWYwYjUwYTUxN2JkMGUyZDQ1NjJkZjhkZWZkNmY1MWExZjA0Li42ODBhYjMyMjBjZTY0
MTU3OWQ3ZDEzMDAxZGFjNzIwZTIzMWRlMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5w
cm8KKysrIGIvU291cmNlL1dURi9XVEYucHJvCkBAIC0xNzcsNiArMTc3LDkgQEAgU09VUkNFUyAr
PSBcCiAgICAgRGF0ZU1hdGguY3BwIFwKICAgICBEYXRhTG9nLmNwcCBcCiAgICAgRGVjaW1hbE51
bWJlci5jcHAgXAorICAgIERpc3BhdGNoUXVldWUuY3BwIFwKKyAgICBEaXNwYXRjaFF1ZXVlUHJp
dmF0ZUxpYmRpc3BhdGNoLmNwcCBcCisgICAgRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNw
cCBcCiAgICAgZHRvYS5jcHAgXAogICAgIGR0b2EvYmlnbnVtLWR0b2EuY2MgXAogICAgIGR0b2Ev
YmlnbnVtLmNjIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9q
IGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKaW5kZXggMjE5MGRhZTFlZmZlYWUz
Mzk1MzMyN2UzY2I3M2U3N2U2ZWU0NmQ1OC4uNGY2ZDUzYWRlY2M5MDQwZDI2NmUyMjM1YmQ2ZjZm
YTU4MDFiNWYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oK
KysrIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTcwMSw2ICs3MDEsMzAg
QEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGlz
cGF0Y2hRdWV1ZS5jcHAiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0
aD0iLi5cd3RmXERpc3BhdGNoUXVldWUuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJ
UmVsYXRpdmVQYXRoPSIuLlx3dGZcRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCIKKwkJ
CT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGlzcGF0Y2hR
dWV1ZVByaXZhdGVHZW5lcmljLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0
aXZlUGF0aD0iLi5cd3RmXERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwIgorCQkJ
PgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxEaXNwYXRjaFF1
ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJCVJl
bGF0aXZlUGF0aD0iLi5cd3RmXERvdWJseUxpbmtlZExpc3QuaCIKIAkJCT4KIAkJPC9GaWxlPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzcyMDQ2MWUyNjQ2
NjFmYzhlOTQzNWU5MDg4MTY3NGJjZDFiNzY1OC4uNDJhZmE1MTMyYjU1NjA4MGFlZGM0ZDM4OTY0
ZjZjN2IwNjkzMjIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC00OCw2ICs0OCwxMiBAQAogCQlBOEE0NzNBNDE1MUE4MjVCMDA0MTIzRkYgLyogRGVjb2Rl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcy
N0QxNTFBODI1QTAwNDEyM0ZGIC8qIERlY29kZXIuaCAqLzsgfTsKIAkJQThBNDczQTUxNTFBODI1
QjAwNDEyM0ZGIC8qIERlcXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEE0NzI3RTE1MUE4MjVBMDA0MTIzRkYgLyogRGVxdWUuaCAqLzsgfTsKIAkJ
QThBNDczQTYxNTFBODI1QjAwNDEyM0ZGIC8qIERpc2FsbG93Q1R5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgyNUEwMDQxMjNG
RiAvKiBEaXNhbGxvd0NUeXBlLmggKi87IH07CisJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGOSAv
KiBEaXNwYXRjaFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgyNUEwMDQxMjNGRiAvKiBEaXNwYXRjaFF1ZXVlLmNwcCAq
LzsgfTsKKwkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZBIC8qIERpc3BhdGNoUXVldWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgy
NUEwMDQxMjNGRiAvKiBEaXNwYXRjaFF1ZXVlLmggKi87IH07CisJCUE4QTQ3M0E3MTUxQTgyNUIw
MDQxMjNGQiAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyN0YxNTFBODI1QTAwNDEyM0ZG
IC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgKi87IH07CisJCUE4QTQ3M0E3MTUx
QTgyNUIwMDQxMjNGQyAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgyNUEwMDQx
MjNGRiAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCAqLzsgfTsKKwkJQThBNDczQTcx
NTFBODI1QjAwNDEyM0ZEIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyN0YxNTFB
ODI1QTAwNDEyM0ZGIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwICovOyB9
OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJk
aXNwYXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThBNDcyN0YxNTFBODI1QTAwNDEyM0ZGIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0
Y2guaCAqLzsgfTsKIAkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZGIC8qIERvdWJseUxpbmtlZExp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3
MjgwMTUxQTgyNUEwMDQxMjNGRiAvKiBEb3VibHlMaW5rZWRMaXN0LmggKi87IH07CiAJCUE4QTQ3
M0E4MTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0tZHRvYS5jYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjgyMTUxQTgyNUEwMDQxMjNGRiAvKiBi
aWdudW0tZHRvYS5jYyAqLzsgfTsKIAkJQThBNDczQTkxNTFBODI1QjAwNDEyM0ZGIC8qIGJpZ251
bS1kdG9hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEE0NzI4MzE1MUE4MjVBMDA0MTIzRkYgLyogYmlnbnVtLWR0b2EuaCAqLzsgfTsKQEAgLTI5Myw2
ICsyOTksMTIgQEAKIAkJQThBNDcyN0QxNTFBODI1QTAwNDEyM0ZGIC8qIERlY29kZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBOEE0NzI3RTE1MUE4MjVBMDA0MTIzRkYgLyogRGVxdWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVxdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQThBNDcyN0YxNTFBODI1QTAwNDEyM0ZGIC8qIERpc2FsbG93Q1R5cGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzYWxsb3dDVHlwZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRjkgLyogRGlzcGF0Y2hR
dWV1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BhdGNoUXVldWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIz
RkEgLyogRGlzcGF0Y2hRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
aXNwYXRjaFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4QTQ3M0E3MTUx
QTgyNUIwMDQxMjNGQiAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkMg
LyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkQgLyogRGlzcGF0Y2hRdWV1ZVBy
aXZhdGVMaWJkaXNwYXRjaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERp
c3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVM
aWJkaXNwYXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwYXRjaFF1
ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRiAvKiBEb3VibHlMaW5rZWRMaXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvdWJseUxpbmtlZExpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQThBNDcyODIxNTFBODI1QTAwNDEyM0ZGIC8qIGJpZ251bS1kdG9hLmNj
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gImJpZ251bS1kdG9hLmNjIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyODMxNTFBODI1QTAwNDEyM0ZGIC8q
IGJpZ251bS1kdG9hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJiaWdudW0t
ZHRvYS5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4Myw2ICs1OTUsMTIgQEAK
IAkJCQlBOEE0NzI3RDE1MUE4MjVBMDA0MTIzRkYgLyogRGVjb2Rlci5oICovLAogCQkJCUE4QTQ3
MjdFMTUxQTgyNUEwMDQxMjNGRiAvKiBEZXF1ZS5oICovLAogCQkJCUE4QTQ3MjdGMTUxQTgyNUEw
MDQxMjNGRiAvKiBEaXNhbGxvd0NUeXBlLmggKi8sCisJCQkJQThBNDczQTcxNTFBODI1QjAwNDEy
M0Y5IC8qIERpc3BhdGNoUXVldWUuY3BwICovLAorCQkJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNG
QSAvKiBEaXNwYXRjaFF1ZXVlLmggKi8sCisJCQkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZCIC8q
IERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgKi8sCisJCQkJQThBNDczQTcxNTFBODI1
QjAwNDEyM0ZDIC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oICovLAorCQkJCUE4QTQ3
M0E3MTUxQTgyNUIwMDQxMjNGRCAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNw
cCAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZh
dGVMaWJkaXNwYXRjaC5oICovLAogCQkJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRiAvKiBEb3Vi
bHlMaW5rZWRMaXN0LmggKi8sCiAJCQkJQThBNDcyODExNTFBODI1QTAwNDEyM0ZGIC8qIGR0b2Eg
Ki8sCiAJCQkJQThBNDcyOTcxNTFBODI1QTAwNDEyM0ZGIC8qIGR0b2EuY3BwICovLApAQCAtODkz
LDYgKzkxMSw5IEBACiAJCQkJQThBNDczQTQxNTFBODI1QjAwNDEyM0ZGIC8qIERlY29kZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0E1MTUxQTgyNUIwMDQxMjNGRiAvKiBEZXF1ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQTYxNTFBODI1QjAwNDEyM0ZGIC8qIERpc2FsbG93Q1R5
cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGQSAvKiBEaXNw
YXRjaFF1ZXVlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkMg
LyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEE0
NzNBNzE1MUE4MjVCMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZGIC8qIERvdWJseUxp
bmtlZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0E5MTUxQTgyNUIwMDQxMjNGRiAv
KiBiaWdudW0tZHRvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQUIxNTFBODI1QjAwNDEy
M0ZGIC8qIGJpZ251bS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTM4LDYgKzExNTksOSBAQAogCQkJ
CUE4QTQ3MzlFMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRhTG9nLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QTQ3M0EwMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRlTWF0aC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzNBMjE1MUE4MjVCMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRjkgLyogRGlzcGF0Y2hRdWV1
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkIgLyogRGlz
cGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4QTQ3M0E3
MTUxQTgyNUIwMDQxMjNGRCAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0E4MTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0tZHRv
YS5jYyBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0FBMTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdu
dW0uY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNBQzE1MUE4MjVCMDA0MTIzRkYgLyogY2Fj
aGVkLXBvd2Vycy5jYyBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAyNzRm
MDRjOTc0OTMxOWFlZjQ4MDQ0NzkxNmRkMjI4MjcyNTA4NjhmLi41NTgzNTU3MjI4OTU0OGJlZGY5
ODhhMDNmOWE5ZDcxNzgxYWE5MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMjAsNiArMjAs
OSBAQCBTRVQoV1RGX0hFQURFUlMKICAgICBEZWNvZGVyLmgKICAgICBEZXF1ZS5oCiAgICAgRGlz
YWxsb3dDVHlwZS5oCisgICAgRGlzcGF0Y2hRdWV1ZS5oCisgICAgRGlzcGF0Y2hRdWV1ZVByaXZh
dGVHZW5lcmljLmgKKyAgICBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgKICAgICBE
b3VibHlMaW5rZWRMaXN0LmgKICAgICBEeW5hbWljQW5ub3RhdGlvbnMuaAogICAgIEVuY29kZXIu
aApAQCAtMTQyLDYgKzE0NSw5IEBAIFNFVChXVEZfU09VUkNFUwogICAgIERhdGVNYXRoLmNwcAog
ICAgIERhdGFMb2cuY3BwCiAgICAgRGVjaW1hbE51bWJlci5jcHAKKyAgICBEaXNwYXRjaFF1ZXVl
LmNwcAorICAgIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwCisgICAgRGlzcGF0
Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcAogICAgIER5bmFtaWNBbm5vdGF0aW9ucy5jcHAKICAg
ICBGYXN0TWFsbG9jLmNwcAogICAgIEhhc2hUYWJsZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0Rpc3BhdGNoUXVldWUuY3BwIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmQ5ZWEzNjYyMmUyNzA5YWMwNjY4MWExYzUxYWZkYzcwM2I2MmZhMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWUuY3BwCkBAIC0w
LDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAwIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3BhdGNoUXVldWUuaCIK
KworI2lmIEVOQUJMRShUSFJFQURJTkdfTElCRElTUEFUQ0gpCisjaW5jbHVkZSAiRGlzcGF0Y2hR
dWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oIgorI2Vsc2UKKyNpbmNsdWRlICJEaXNwYXRjaFF1ZXVl
UHJpdmF0ZUdlbmVyaWMuaCIKKyNlbmRpZgorCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
KyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBEaXNw
YXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTsKK2NsYXNzIERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRl
OworCitEaXNwYXRjaFF1ZXVlKiBEaXNwYXRjaFF1ZXVlOjpzX2dsb2JhbFF1ZXVlOworRGlzcGF0
Y2hRdWV1ZSogRGlzcGF0Y2hRdWV1ZTo6c19tYWluUXVldWU7CisKK2NsYXNzIERpc3BhdGNoTWFp
blF1ZXVlIDogcHVibGljIERpc3BhdGNoUXVldWUgeworcHVibGljOgorICAgIGZyaWVuZCBjbGFz
cyBEaXNwYXRjaFF1ZXVlOworICAgIHZpcnR1YWwgfkRpc3BhdGNoTWFpblF1ZXVlKCkgeyB9CisK
KyAgICAvLyBJbiBjYXNlIG9mIHRoZSBtYWluIHF1ZXVlLCB3ZSBzaW1wbHkgcmV1c2UgY2FsbE9u
TWFpblRocmVhZC4KKyAgICB2aXJ0dWFsIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgp
PiYgZnVuY3Rpb24pCisgICAgeworICAgICAgICBjYWxsT25NYWluVGhyZWFkKGZ1bmN0aW9uKTsK
KyAgICB9CisKKworcHJpdmF0ZToKKyAgICBEaXNwYXRjaE1haW5RdWV1ZSgpIHsgfQorfTsKKwor
Y2xhc3MgRGlzcGF0Y2hHbG9iYWxRdWV1ZSA6IHB1YmxpYyBEaXNwYXRjaFF1ZXVlIHsKK3B1Ymxp
YzoKKyAgICBmcmllbmQgY2xhc3MgRGlzcGF0Y2hRdWV1ZTsKKyAgICB2aXJ0dWFsIH5EaXNwYXRj
aEdsb2JhbFF1ZXVlKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rp
b248dm9pZCgpPiYgZnVuY3Rpb24pCisgICAgeworICAgICAgICBtX3ByaXZhdGUtPmFzeW5jKGZ1
bmN0aW9uKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRGlzcGF0Y2hHbG9iYWxRdWV1ZSgpCisg
ICAgICAgIDogbV9wcml2YXRlKERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjpjcmVhdGUoKSkg
eyB9CisKKyAgICBPd25QdHI8RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU+IG1fcHJpdmF0ZTsK
K307CisKK2NsYXNzIERpc3BhdGNoU2VyaWFsUXVldWUgOiBwdWJsaWMgRGlzcGF0Y2hRdWV1ZSB7
CitwdWJsaWM6CisgICAgZnJpZW5kIGNsYXNzIERpc3BhdGNoUXVldWU7CisgICAgdmlydHVhbCB+
RGlzcGF0Y2hTZXJpYWxRdWV1ZSgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGFzeW5jKGNvbnN0
IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQorICAgIHsKKyAgICAgICAgbV9wcml2YXRlLT5h
c3luYyhmdW5jdGlvbik7CisgICAgfQorCitwcml2YXRlOgorICAgIERpc3BhdGNoU2VyaWFsUXVl
dWUoKQorICAgICAgICA6IG1fcHJpdmF0ZShEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6Y3Jl
YXRlKCkpIHsgfQorCisgICAgT3duUHRyPERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlPiBtX3By
aXZhdGU7Cit9OworCitEaXNwYXRjaFF1ZXVlKiBEaXNwYXRjaFF1ZXVlOjpnbG9iYWxRdWV1ZSgp
Cit7CisgICAgcmV0dXJuIHNfZ2xvYmFsUXVldWU7Cit9CisKK0Rpc3BhdGNoUXVldWUqIERpc3Bh
dGNoUXVldWU6Om1haW5RdWV1ZSgpCit7CisgICAgcmV0dXJuIHNfbWFpblF1ZXVlOworfQorCit2
b2lkIERpc3BhdGNoUXVldWU6OmluaXRpYWxpemVEaXNwYXRjaFF1ZXVlKCkKK3sKKyAgICBzX21h
aW5RdWV1ZSA9IG5ldyBEaXNwYXRjaE1haW5RdWV1ZSgpOworICAgIHNfZ2xvYmFsUXVldWUgPSBu
ZXcgRGlzcGF0Y2hHbG9iYWxRdWV1ZSgpOworfQorCitQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+
IERpc3BhdGNoUXVldWU6OmNyZWF0ZVNlcmlhbFF1ZXVlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IERpc3BhdGNoU2VyaWFsUXVldWUoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZS5oIGIvU291cmNlL1dURi93
dGYvRGlzcGF0Y2hRdWV1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjYzM2YmY0YzI0OTAwYTQ4ZTMyNzIxM2Q0
ZTBlYjc5N2ZlNWFjZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRj
aFF1ZXVlLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21w
YW55IDEwMCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGlzcGF0Y2hRdWV1ZV9oCisjZGVmaW5lIERp
c3BhdGNoUXVldWVfaAorCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8vIFRoaXMg
Y2xhc3MgaXMgYSBzaW1wbGUgd3JhcHBlciBhcm91bmQgbGliZGlzcGF0Y2guCisvLyBXZSBhbHNv
IHByb3ZpZGUgYSBnZW5lcmljICh0aHJlYWQgcG9vbCkgaW1wbGVtZW5ldGF0aW9uIHNvIHRoYXQK
Ky8vIGFsbCB0aGUgcG9ydHMgY2FuIHVzZSB0aGUgc2FtZSBBUEkuCitjbGFzcyBEaXNwYXRjaFF1
ZXVlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERpc3BhdGNoUXVldWU+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplRGlzcGF0Y2hRdWV1ZSgpOworICAgIHN0YXRp
YyBEaXNwYXRjaFF1ZXVlKiBnbG9iYWxRdWV1ZSgpOworICAgIHN0YXRpYyBEaXNwYXRjaFF1ZXVl
KiBtYWluUXVldWUoKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBjcmVh
dGVTZXJpYWxRdWV1ZSgpOworCisgICAgdmlydHVhbCB+RGlzcGF0Y2hRdWV1ZSgpIHsgfQorCisg
ICAgdmlydHVhbCB2b2lkIGFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKSA9IDA7CisKK3By
b3RlY3RlZDoKKyAgICBzdGF0aWMgRGlzcGF0Y2hRdWV1ZSogc19nbG9iYWxRdWV1ZTsKKyAgICBz
dGF0aWMgRGlzcGF0Y2hRdWV1ZSogc19tYWluUXVldWU7CisKKyAgICBEaXNwYXRjaFF1ZXVlKCkg
eyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpEaXNwYXRjaFF1ZXVl
OworCisjZW5kaWYgLy8gRGlzcGF0Y2hRdWV1ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvRGlzcGF0
Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNWM3ZDU4OWE2MDIxOTJhNjQy
ZWJkNGQ2MDEyOGRiMzk1NmMxZjZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
RGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcApAQCAtMCwwICsxLDI2NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmICFFTkFCTEUoVEhSRUFESU5HX0xJQkRJU1BBVENIKQorCisjaW5jbHVk
ZSAiRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmgiCisKKyNpbmNsdWRlIDxsaW1pdHM+Cisj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisK
K25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBFeGVjdXRvclBvb2w7CisKK2NsYXNzIEV4ZWN1dG9y
IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFeGVjdXRvcik7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgRXhlY3V0b3IoKTsKKyAgICB+RXhlY3V0b3IoKTsK
KworICAgIHZvaWQgZXhlY3V0ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CisKKyAgICBzdGF0
aWMgdm9pZCB3b3JrZXJUaHJlYWQodm9pZCopOworCisgICAgdm9pZCBhY3F1aXJlKCkgeyBtX2Fj
cXVpcmVDb3VudCsrOyB9CisgICAgdm9pZCByZWxlYXNlKCkgeyBtX2FjcXVpcmVDb3VudC0tOyB9
CisgICAgaW50IGFjcXVpcmVDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNxdWlyZUNvdW50OyB9
CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX3J1bm5pbmc7CisgICAgaW50IG1fYWNxdWlyZUNvdW50
OworCisgICAgTXV0ZXggbV9tdXRleDsKKyAgICBUaHJlYWRDb25kaXRpb24gbV9mdW5jdGlvblF1
ZXVlRW1wdHlDb25kaXRpb247CisgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4gPiBtX2Z1bmN0
aW9uUXVldWU7Cit9OworCitFeGVjdXRvcjo6RXhlY3V0b3IoKQorICAgIDogbV9ydW5uaW5nKHRy
dWUpCisgICAgLCBtX2FjcXVpcmVDb3VudCgxKQoreworICAgIC8vIFdlIG5lZWQgYSBtdXRleCBo
ZXJlIGZvciB2aXNpYmlsaXR5IGluIEV4ZWN1dG9yOjp3b3JrZXJUaHJlYWQuCisgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSUQgPSBj
cmVhdGVUaHJlYWQoJkV4ZWN1dG9yOjp3b3JrZXJUaHJlYWQsIHRoaXMsICJFeGVjdXRvciB3b3Jr
ZXIiKTsKKyAgICBkZXRhY2hUaHJlYWQodGhyZWFkSUQpOworfQorCitFeGVjdXRvcjo6fkV4ZWN1
dG9yKCkKK3sKKyAgICAvLyBPbmNlIHdlIGNyZWF0ZSBhbiBleGVjdXRvciwgd2UgbmV2ZXIgZGVz
dHJveXMgaXQuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgRXhlY3V0b3I6
OmV4ZWN1dGUoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCit7CisgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQoZnVuY3Rp
b24pOworCisgICAgbV9mdW5jdGlvblF1ZXVlRW1wdHlDb25kaXRpb24uc2lnbmFsKCk7Cit9CisK
K3ZvaWQgRXhlY3V0b3I6OndvcmtlclRocmVhZCh2b2lkKiB0aHJlYWREYXRhKQoreworICAgIEV4
ZWN1dG9yKiBleGVjdXRvciA9IHJlaW50ZXJwcmV0X2Nhc3Q8RXhlY3V0b3IqPih0aHJlYWREYXRh
KTsKKworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+
ID4gZnVuY3Rpb25RdWV1ZTsKKyAgICAgICAgeworICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKGV4ZWN1dG9yLT5tX211dGV4KTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWSghZXhlY3V0
b3ItPm1fcnVubmluZykpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgd2hp
bGUgKGV4ZWN1dG9yLT5tX2Z1bmN0aW9uUXVldWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAg
IGV4ZWN1dG9yLT5tX2Z1bmN0aW9uUXVldWVFbXB0eUNvbmRpdGlvbi53YWl0KGV4ZWN1dG9yLT5t
X211dGV4KTsKKyAgICAgICAgICAgIGV4ZWN1dG9yLT5tX2Z1bmN0aW9uUXVldWUuc3dhcChmdW5j
dGlvblF1ZXVlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
ZnVuY3Rpb25RdWV1ZS5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIGZ1bmN0aW9uUXVldWVbaV0o
KTsKKyAgICB9Cit9CisKK2NsYXNzIEV4ZWN1dG9yUG9vbCB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoRXhlY3V0b3JQb29sKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplRXhlY3V0b3JQb29sKCk7CisKKyAgICBmcmll
bmQgRXhlY3V0b3JQb29sKiBleGVjdXRvclBvb2woKTsKKyAgICB+RXhlY3V0b3JQb29sKCk7CisK
KyAgICB2b2lkIGV4ZWN1dGUoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOworICAgIEV4ZWN1dG9y
KiBhY3F1aXJlU2VyaWFsRXhlY3V0b3IoKTsKKyAgICB2b2lkIHJlbGVhc2VTZXJpYWxFeGVjdXRv
cihFeGVjdXRvciopOworCitwcml2YXRlOgorICAgIHN0YXRpYyBFeGVjdXRvclBvb2wqIHNfZXhl
Y3V0b3JQb29sOworICAgIEV4ZWN1dG9yUG9vbCgpOworICAgIEV4ZWN1dG9yKiBuZXh0RXhlY3V0
b3IoKTsKKyAgICBFeGVjdXRvciogc2VyaWFsRXhlY3V0b3JXaXRoTWluaW11bUFjcXVpcmVDb3Vu
dCgpOworCisgICAgTXV0ZXggbV9tdXRleDsKKyAgICBWZWN0b3I8RXhlY3V0b3IqPiBtX2V4ZWN1
dG9yUG9vbDsKK307CisKK0V4ZWN1dG9yUG9vbCogRXhlY3V0b3JQb29sOjpzX2V4ZWN1dG9yUG9v
bDsKKwordm9pZCBFeGVjdXRvclBvb2w6OmluaXRpYWxpemVFeGVjdXRvclBvb2woKQoreworICAg
IGlmICghc19leGVjdXRvclBvb2wpCisgICAgICAgIHNfZXhlY3V0b3JQb29sID0gbmV3IEV4ZWN1
dG9yUG9vbDsKK30KKworRXhlY3V0b3JQb29sKiBleGVjdXRvclBvb2woKQoreworICAgIHJldHVy
biBFeGVjdXRvclBvb2w6OnNfZXhlY3V0b3JQb29sOworfQorCitFeGVjdXRvclBvb2w6OkV4ZWN1
dG9yUG9vbCgpCit7CisgICAgbV9leGVjdXRvclBvb2wucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShu
dW1iZXJPZlByb2Nlc3NvckNvcmVzKCkpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtYmVy
T2ZQcm9jZXNzb3JDb3JlcygpOyBpKyspCisgICAgICAgIG1fZXhlY3V0b3JQb29sLmFwcGVuZChu
ZXcgRXhlY3V0b3IoKSk7Cit9CisKK0V4ZWN1dG9yUG9vbDo6fkV4ZWN1dG9yUG9vbCgpCit7Cit9
CisKK3ZvaWQgRXhlY3V0b3JQb29sOjpleGVjdXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1
bmN0aW9uKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBuZXh0RXhl
Y3V0b3IoKS0+ZXhlY3V0ZShmdW5jdGlvbik7Cit9CisKK0V4ZWN1dG9yKiBFeGVjdXRvclBvb2w6
Om5leHRFeGVjdXRvcigpCit7CisgICAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbmV4dCA9IDA7Cisg
ICAgaW50IGluZGV4ID0gbmV4dCAlIG1fZXhlY3V0b3JQb29sLnNpemUoKTsKKyAgICBuZXh0Kys7
CisgICAgcmV0dXJuIG1fZXhlY3V0b3JQb29sW2luZGV4XTsKK30KKworRXhlY3V0b3IqIEV4ZWN1
dG9yUG9vbDo6YWNxdWlyZVNlcmlhbEV4ZWN1dG9yKCkKK3sKKyAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9tdXRleCk7CisgICAgRXhlY3V0b3IqIGV4ZWN1dG9yID0gc2VyaWFsRXhlY3V0b3JXaXRo
TWluaW11bUFjcXVpcmVDb3VudCgpOworICAgIGV4ZWN1dG9yLT5hY3F1aXJlKCk7CisgICAgcmV0
dXJuIGV4ZWN1dG9yOworfQorCit2b2lkIEV4ZWN1dG9yUG9vbDo6cmVsZWFzZVNlcmlhbEV4ZWN1
dG9yKEV4ZWN1dG9yKiBleGVjdXRvcikKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRl
eCk7CisgICAgZXhlY3V0b3ItPnJlbGVhc2UoKTsKK30KKworLy8gRklYTUU6IFdlIHNpbXBseSBy
ZXR1cm5zIHRoZSBleGVjdXRvciB3aXRoIHRoZSBtaW5pbXVtIGFjcXVpcmUgY291bnRzLgorLy8g
VGhpcyB2YWx1ZSBkb2VzIG5vdCByZWZsZWN0IHRoZSByZWFsIHN5c3RlbSBsb2FkLgorRXhlY3V0
b3IqIEV4ZWN1dG9yUG9vbDo6c2VyaWFsRXhlY3V0b3JXaXRoTWluaW11bUFjcXVpcmVDb3VudCgp
Cit7CisgICAgaW50IG1pbmltdW1BY3F1aXJlQ291bnQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGlu
dD46Om1heCgpOworICAgIGludCBpbmRleCA9IG1fZXhlY3V0b3JQb29sLnNpemUoKTsKKworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9leGVjdXRvclBvb2wuc2l6ZSgpOyBpKyspIHsKKyAg
ICAgICAgaWYgKG1fZXhlY3V0b3JQb29sW2ldLT5hY3F1aXJlQ291bnQoKSA8IG1pbmltdW1BY3F1
aXJlQ291bnQpIHsKKyAgICAgICAgICAgIG1pbmltdW1BY3F1aXJlQ291bnQgPSBtX2V4ZWN1dG9y
UG9vbFtpXS0+YWNxdWlyZUNvdW50KCk7CisgICAgICAgICAgICBpbmRleCA9IGk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBBU1NFUlQoaW5kZXggPCBtX2V4ZWN1dG9yUG9vbC5zaXplKCkpOwor
ICAgIHJldHVybiBtX2V4ZWN1dG9yUG9vbFtpbmRleF07Cit9CisKK0Rpc3BhdGNoR2xvYmFsUXVl
dWVQcml2YXRlOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpCit7CisgICAgRXhlY3V0b3JQ
b29sOjppbml0aWFsaXplRXhlY3V0b3JQb29sKCk7Cit9CisKK0Rpc3BhdGNoR2xvYmFsUXVldWVQ
cml2YXRlOjp+RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKQoreworICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworfQorCit2b2lkIERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjphc3luYyhj
b25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKK3sKKyAgICBleGVjdXRvclBvb2woKS0+
ZXhlY3V0ZShmdW5jdGlvbik7Cit9CisKK0Rpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjpEaXNw
YXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSgpCisgICAgOiBtX2V4ZWN1dG9yU3RhdHVzKFJ1bm5pbmcp
Cit7CisgICAgbV9zZXJpYWxFeGVjdXRvciA9IGV4ZWN1dG9yUG9vbCgpLT5hY3F1aXJlU2VyaWFs
RXhlY3V0b3IoKTsKK30KKworRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6On5EaXNwYXRjaFNl
cmlhbFF1ZXVlUHJpdmF0ZSgpCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZXhlY3V0b3JT
dGF0dXNNdXRleCk7CisgICAgbV9leGVjdXRvclN0YXR1cyA9IFRlcm1pbmF0aW9uQmVndW47CisK
KyAgICBtX3NlcmlhbEV4ZWN1dG9yLT5leGVjdXRlKGJpbmQoJkRpc3BhdGNoU2VyaWFsUXVldWVQ
cml2YXRlOjplbnN1cmVUZXJtaW5hdGUsIHRoaXMpKTsKKyAgICB3aGlsZSAobV9leGVjdXRvclN0
YXR1cyAhPSBUZXJtaW5pYXRpb25Db21wbGV0ZWQpCisgICAgICAgIG1fdGVybWluYXRpb25Db21w
bGV0ZWQud2FpdChtX2V4ZWN1dG9yU3RhdHVzTXV0ZXgpOworICAgIGV4ZWN1dG9yUG9vbCgpLT5y
ZWxlYXNlU2VyaWFsRXhlY3V0b3IobV9zZXJpYWxFeGVjdXRvcik7Cit9CisKK3ZvaWQgRGlzcGF0
Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmVuc3VyZVRlcm1pbmF0ZSgpCit7CisgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fZXhlY3V0b3JTdGF0dXNNdXRleCk7CisgICAgQVNTRVJUKG1fZXhlY3V0b3JT
dGF0dXMgPT0gVGVybWluYXRpb25CZWd1bik7CisgICAgbV9leGVjdXRvclN0YXR1cyA9IFRlcm1p
bmlhdGlvbkNvbXBsZXRlZDsKKyAgICBtX3Rlcm1pbmF0aW9uQ29tcGxldGVkLnNpZ25hbCgpOwor
fQorCitzdGF0aWMgdm9pZCBjYW5jZWxhYmxlRnVuY3Rpb24oRGlzcGF0Y2hTZXJpYWxRdWV1ZVBy
aXZhdGUqIHNlcmlhbFF1ZXVlLCBjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKK3sK
KyAgICBpZiAoVU5MSUtFTFkoc2VyaWFsUXVldWUtPmhhc1Rlcm1pbmF0aW9uQmVndW4oKSkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGZ1bmN0aW9uKCk7Cit9CisKK3ZvaWQgRGlzcGF0Y2hTZXJp
YWxRdWV1ZVByaXZhdGU6OmFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQor
eworICAgIEFTU0VSVChtX2V4ZWN1dG9yU3RhdHVzID09IFJ1bm5pbmcpOworICAgIG1fc2VyaWFs
RXhlY3V0b3ItPmV4ZWN1dGUoYmluZChjYW5jZWxhYmxlRnVuY3Rpb24sIHRoaXMsIGZ1bmN0aW9u
KSk7Cit9CisKK2Jvb2wgRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6Omhhc1Rlcm1pbmF0aW9u
QmVndW4oKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2V4ZWN1dG9yU3RhdHVzTXV0ZXgp
OworICAgIEFTU0VSVChtX2V4ZWN1dG9yU3RhdHVzICE9IFRlcm1pbmlhdGlvbkNvbXBsZXRlZCk7
CisgICAgcmV0dXJuIG1fZXhlY3V0b3JTdGF0dXMgPT0gVGVybWluYXRpb25CZWd1bjsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBFTkFCTEUoVEhSRUFESU5HX0xJQkRJU1BB
VENIKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5l
cmljLmggYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZmU0OWE2MTQ4ZTRhZjMyZmM2MDAyMWM3ODEyMThjNTg1NmE3N2JkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmgK
QEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljX2gKKyNkZWZp
bmUgRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljX2gKKworI2lmICFFTkFCTEUoVEhSRUFESU5H
X0xJQkRJU1BBVENIKQorCisjaW5jbHVkZSAiRGlzcGF0Y2hRdWV1ZS5oIgorCisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIERpc3BhdGNoR2xv
YmFsUXVldWVQcml2YXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEaXNwYXRjaEdsb2Jh
bFF1ZXVlUHJpdmF0ZSk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NPd25QdHI8RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU+IGNyZWF0ZSgp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERpc3BhdGNoR2xvYmFsUXVldWVQ
cml2YXRlKCkpOworICAgIH0KKworICAgIH5EaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpOwor
CisgICAgdm9pZCBhc3luYyhjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CisKK3ByaXZhdGU6Cisg
ICAgRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKTsKK307CisKK2NsYXNzIEV4ZWN1dG9yOwor
CitjbGFzcyBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUpOworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPERpc3BhdGNoU2VyaWFsUXVl
dWVQcml2YXRlPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBE
aXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSgpKTsKKyAgICB9CisKKyAgICB+RGlzcGF0Y2hTZXJp
YWxRdWV1ZVByaXZhdGUoKTsKKworICAgIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgp
PiYpOworCisgICAgYm9vbCBoYXNUZXJtaW5hdGlvbkJlZ3VuKCk7CisKK3ByaXZhdGU6CisgICAg
RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUoKTsKKyAgICB2b2lkIGVuc3VyZVRlcm1pbmF0ZSgp
OworCisgICAgZW51bSBFeGVjdXRvclN0YXR1cyB7IFJ1bm5pbmcsIFRlcm1pbmF0aW9uQmVndW4s
IFRlcm1pbmlhdGlvbkNvbXBsZXRlZCB9OworICAgIE11dGV4IG1fZXhlY3V0b3JTdGF0dXNNdXRl
eDsKKyAgICBFeGVjdXRvclN0YXR1cyBtX2V4ZWN1dG9yU3RhdHVzOworICAgIFRocmVhZENvbmRp
dGlvbiBtX3Rlcm1pbmF0aW9uQ29tcGxldGVkOworCisgICAgRXhlY3V0b3IqIG1fc2VyaWFsRXhl
Y3V0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vICFFTkFCTEUoVEhS
RUFESU5HX0xJQkRJU1BBVENIKQorCisjZW5kaWYgLy8gRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5l
cmljX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGli
ZGlzcGF0Y2guY3BwIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNw
YXRjaC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk5N2NhZWMwNmMzN2NjYzc5MmZiZDY1ODA2ZDY1NTVhM2Zm
NTVjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2
YXRlTGliZGlzcGF0Y2guY3BwCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIENvbXBhbnkgMTAwIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKFRIUkVBRElOR19MSUJESVNQQVRDSCkKKworI2luY2x1ZGUgIkRpc3BhdGNoUXVl
dWVQcml2YXRlTGliZGlzcGF0Y2guaCIKKworbmFtZXNwYWNlIFdURiB7CisKK0Rpc3BhdGNoR2xv
YmFsUXVldWVQcml2YXRlOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpCit7CisgICAgbV9k
aXNwYXRjaFF1ZXVlID0gZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9Q
UklPUklUWV9ERUZBVUxULCAwKTsKK30KKworRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6On5E
aXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Cit9CisKK3N0cnVjdCBGdW5jdGlvbkJveCB7CisgICAgRnVuY3Rpb25Cb3goY29uc3QgRnVuY3Rp
b248dm9pZCgpPiYgZnVuY3Rpb24pCisgICAgICAgIDogbV9mdW5jdGlvbihmdW5jdGlvbikKKyAg
ICB7CisgICAgfQorCisgICAgRnVuY3Rpb248dm9pZCgpPiBtX2Z1bmN0aW9uOworfTsKKwordm9p
ZCBEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6YXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgp
PiYgZnVuY3Rpb24pCit7CisgICAgRnVuY3Rpb25Cb3gqIGJveCA9IG5ldyBGdW5jdGlvbkJveChm
dW5jdGlvbik7CisgICAgZGlzcGF0Y2hfYXN5bmNfZihtX2Rpc3BhdGNoUXVldWUsIHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCo+KGJveCksICZEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6aW52b2tl
RnVuY3Rpb24pOworfQorCit2b2lkIERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjppbnZva2VG
dW5jdGlvbih2b2lkKiBjb250ZXh0KQoreworICAgIEZ1bmN0aW9uQm94KiBib3ggPSByZWludGVy
cHJldF9jYXN0PEZ1bmN0aW9uQm94Kj4oY29udGV4dCk7CisgICAgYm94LT5tX2Z1bmN0aW9uKCk7
CisgICAgZGVsZXRlIGJveDsKK30KKworRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OkRpc3Bh
dGNoU2VyaWFsUXVldWVQcml2YXRlKCkKKyAgICA6IG1faGFzVGVybWluYXRpb25CZWd1bihmYWxz
ZSkKK3sKKyAgICBtX2Rpc3BhdGNoR3JvdXAgPSBkaXNwYXRjaF9ncm91cF9jcmVhdGUoKTsKKyAg
ICBtX2Rpc3BhdGNoUXVldWUgPSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoMCwgMCk7Cit9CisKK0Rp
c3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjp+RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUoKQor
eworICAgIHRlcm1pbmF0ZSgpOworICAgIGRpc3BhdGNoX3JlbGVhc2UobV9kaXNwYXRjaEdyb3Vw
KTsKKyAgICBkaXNwYXRjaF9yZWxlYXNlKG1fZGlzcGF0Y2hRdWV1ZSk7Cit9CisKK3ZvaWQgRGlz
cGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OnRlcm1pbmF0ZSgpCit7CisgICAgeworICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9oYXNUZXJtaW5hdGlvbkJlZ3VuTXV0ZXgpOworICAgICAgICBt
X2hhc1Rlcm1pbmF0aW9uQmVndW4gPSB0cnVlOworICAgIH0KKyAgICBkaXNwYXRjaF9ncm91cF93
YWl0KG1fZGlzcGF0Y2hHcm91cCwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKK30KKworc3RydWN0
IENhbmNlbGFibGVGdW5jdGlvbkJveCB7CisgICAgQ2FuY2VsYWJsZUZ1bmN0aW9uQm94KGNvbnN0
IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uLCBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSog
cXVldWUpCisgICAgICAgIDogbV9mdW5jdGlvbihmdW5jdGlvbikKKyAgICAgICAgLCBtX3F1ZXVl
KHF1ZXVlKQorICAgIHsKKyAgICB9CisKKyAgICBGdW5jdGlvbjx2b2lkKCk+IG1fZnVuY3Rpb247
CisgICAgRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUqIG1fcXVldWU7Cit9OworCit2b2lkIERp
c3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjppbnZva2VGdW5jdGlvbih2b2lkKiBjb250ZXh0KQor
eworICAgIENhbmNlbGFibGVGdW5jdGlvbkJveCogYm94ID0gcmVpbnRlcnByZXRfY2FzdDxDYW5j
ZWxhYmxlRnVuY3Rpb25Cb3gqPihjb250ZXh0KTsKKworICAgIGJvb2wgaXNDYW5jZWxlZDsKKyAg
ICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihib3gtPm1fcXVldWUtPm1faGFzVGVybWlu
YXRpb25CZWd1bk11dGV4KTsKKyAgICAgICAgaXNDYW5jZWxlZCA9IGJveC0+bV9xdWV1ZS0+bV9o
YXNUZXJtaW5hdGlvbkJlZ3VuOworICAgIH0KKyAgICBpZiAoTElLRUxZKCFpc0NhbmNlbGVkKSkK
KyAgICAgICAgYm94LT5tX2Z1bmN0aW9uKCk7CisKKyAgICBkZWxldGUgYm94OworfQorCit2b2lk
IERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjphc3luYyhjb25zdCBGdW5jdGlvbjx2b2lkKCk+
JiBmdW5jdGlvbikKK3sKKyAgICBBU1NFUlQoIW1faGFzVGVybWluYXRpb25CZWd1bik7CisKKyAg
ICBDYW5jZWxhYmxlRnVuY3Rpb25Cb3gqIGJveCA9IG5ldyBDYW5jZWxhYmxlRnVuY3Rpb25Cb3go
ZnVuY3Rpb24sIHRoaXMpOworICAgIGRpc3BhdGNoX2dyb3VwX2FzeW5jX2YobV9kaXNwYXRjaEdy
b3VwLCBtX2Rpc3BhdGNoUXVldWUsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGJveCksICZEaXNw
YXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6aW52b2tlRnVuY3Rpb24pOworfQorCit9IC8vIG5hbWVz
cGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShUSFJFQURJTkdfTElCRElTUEFUQ0gpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZWM5MDdmZWVkNjc2NjIzZWQ0NzNhOWMxOGNjOTAwMjYwYTFhNDM0NAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2gu
aApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAw
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoX2gK
KyNkZWZpbmUgRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaF9oCisKKyNpZiBFTkFCTEUo
VEhSRUFESU5HX0xJQkRJU1BBVENIKQorCisjaW5jbHVkZSAiRGlzcGF0Y2hRdWV1ZS5oIgorCisj
aW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUg
eworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKTsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093
blB0cjxEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZT4gY3JlYXRlKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFB0cihuZXcgRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKSk7CisgICAg
fQorCisgICAgfkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKCk7CisKKyAgICB2b2lkIGFzeW5j
KGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKKworcHJpdmF0ZToKKyAgICBEaXNwYXRjaEdsb2Jh
bFF1ZXVlUHJpdmF0ZSgpOworICAgIHN0YXRpYyB2b2lkIGludm9rZUZ1bmN0aW9uKHZvaWQqIGNv
bnRleHQpOworCisgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2Rpc3BhdGNoUXVldWU7Cit9OworCitj
bGFzcyBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPERpc3BhdGNoU2VyaWFsUXVldWVQ
cml2YXRlPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEaXNw
YXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSgpKTsKKyAgICB9CisKKyAgICB+RGlzcGF0Y2hTZXJpYWxR
dWV1ZVByaXZhdGUoKTsKKworICAgIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYp
OworCitwcml2YXRlOgorICAgIERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKCk7CisgICAgc3Rh
dGljIHZvaWQgaW52b2tlRnVuY3Rpb24odm9pZCogY29udGV4dCk7CisKKyAgICB2b2lkIHRlcm1p
bmF0ZSgpOworCisgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2Rpc3BhdGNoUXVldWU7CisgICAgZGlz
cGF0Y2hfZ3JvdXBfdCBtX2Rpc3BhdGNoR3JvdXA7CisgICAgTXV0ZXggbV9oYXNUZXJtaW5hdGlv
bkJlZ3VuTXV0ZXg7CisgICAgYm9vbCBtX2hhc1Rlcm1pbmF0aW9uQmVndW47Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShUSFJFQURJTkdfTElCRElTUEFUQ0gp
CisKKyNlbmRpZiAvLyBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZGluZ1B0aHJlYWRzLmNwcAppbmRleCA1MTAxNzNkMDk4MTJjZDlmYzAyNWQ3ZGNlOWZl
MmE2MzE4MTY1MmQ3Li4zNDRiMGJiODBjY2QzYWRmMzg0ODk0NjgwYTYxYjBiY2M0MDc1Nzg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSAiVGhyZWFkSWRlbnRpZmllckRhdGFQdGhyZWFkcy5oIgogI2luY2x1ZGUgIlRocmVhZFNw
ZWNpZmljLmgiCiAjaW5jbHVkZSAiVW51c2VkUGFyYW0uaCIKKyNpbmNsdWRlIDx3dGYvRGlzcGF0
Y2hRdWV1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9XVEZUaHJlYWREYXRhLmg+CkBAIC05NCw2ICs5NSw3IEBA
IHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgd3RmVGhyZWFkRGF0YSgpOwogICAgIHNf
ZHRvYVA1TXV0ZXggPSBuZXcgTXV0ZXg7CiAgICAgaW5pdGlhbGl6ZURhdGVzKCk7CisgICAgRGlz
cGF0Y2hRdWV1ZTo6aW5pdGlhbGl6ZURpc3BhdGNoUXVldWUoKTsKIH0KIAogdm9pZCBsb2NrQXRv
bWljYWxseUluaXRpYWxpemVkU3RhdGljTXV0ZXgoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKaW5k
ZXggZDMzOTczZGFmNzhjOWI2ZTYwZDdkMWMzZTk0YmE2ZmI2ZDg0OWI0NS4uNDg1NjdkMDFiM2Rj
Y2FkODczYzgyOTgyZTRhYzkzZmZhZjA2MTZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
VGhyZWFkaW5nV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCkBA
IC05Myw2ICs5Myw3IEBACiAjaW5jbHVkZSAiVGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uLmgiCiAj
aW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1
ZGUgPHd0Zi9EaXNwYXRjaFF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTE3OSw2
ICsxODAsNyBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogICAgIHd0ZlRocmVhZERhdGEo
KTsKICAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAgIGluaXRpYWxpemVEYXRlcygp
OworICAgIERpc3BhdGNoUXVldWU6OmluaXRpYWxpemVEaXNwYXRjaFF1ZXVlKCk7CiB9CiAKIHN0
YXRpYyBIYXNoTWFwPERXT1JELCBIQU5ETEU+JiB0aHJlYWRNYXAoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvY2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAKaW5kZXggOWU2NTkyYjU3MTU2Nzlh
ZTJiYzlhNmQxYTBiNmYzYjhjOWUxOGU4MS4uNGY5YjQzN2UxOTkwOTcyZDM3NWE5MDM1MTM4NmVj
YzQ2NDk0NmNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY2hyb21pdW0vTWFpblRocmVh
ZENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hy
b21pdW0uY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJBc3NlcnRpb25zLmgiCiAj
aW5jbHVkZSAiQ2hyb21pdW1UaHJlYWRpbmcuaCIKKyNpbmNsdWRlICJGdW5jdGlvbmFsLmgiCiAj
aW5jbHVkZSAiVGhyZWFkaW5nLmgiCiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtNTQsNiArNTUsMTgg
QEAgdm9pZCBjYWxsT25NYWluVGhyZWFkKE1haW5UaHJlYWRGdW5jdGlvbiogZnVuY3Rpb24sIHZv
aWQqIGNvbnRleHQpCiAgICAgQ2hyb21pdW1UaHJlYWRpbmc6OmNhbGxPbk1haW5UaHJlYWQoZnVu
Y3Rpb24sIGNvbnRleHQpOwogfQogCitzdGF0aWMgdm9pZCBjYWxsRnVuY3Rpb25PYmplY3Qodm9p
ZCogY29udGV4dCkKK3sKKyAgICBGdW5jdGlvbjx2b2lkICgpPiogZnVuY3Rpb24gPSBzdGF0aWNf
Y2FzdDxGdW5jdGlvbjx2b2lkICgpPio+KGNvbnRleHQpOworICAgICgqZnVuY3Rpb24pKCk7Cisg
ICAgZGVsZXRlIGZ1bmN0aW9uOworfQorCit2b2lkIGNhbGxPbk1haW5UaHJlYWQoY29uc3QgRnVu
Y3Rpb248dm9pZCAoKT4mIGZ1bmN0aW9uKQoreworICAgIGNhbGxPbk1haW5UaHJlYWQoY2FsbEZ1
bmN0aW9uT2JqZWN0LCBuZXcgRnVuY3Rpb248dm9pZCAoKT4oZnVuY3Rpb24pKTsKK30KKwogdm9p
ZCBjYWxsT25NYWluVGhyZWFkQW5kV2FpdChNYWluVGhyZWFkRnVuY3Rpb24qLCB2b2lkKikKIHsK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150922</attachid>
            <date>2012-07-05 04:21:18 -0700</date>
            <delta_ts>2012-07-05 04:25:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90584-20120705202053.patch</filename>
            <type>text/plain</type>
            <size>42492</size>
            <attacher name="Kwonjin Jeong">gram</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ5MjU3OTQxMWViNzk3NWVmNGJhMzFl
ZTFkNjVkYjIwZGMzMzRkYWUuLjllYTMzZTNmMzI3NmY3MDAwMzlhZTE2NjgwZTA0NjM0ZDQ4MGNi
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTE4IEBACisyMDEyLTA3LTA1ICBLd29uamluIEplb25nICA8Z3Jh
bUBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBBZGQgRGlzcGF0Y2hRdWV1ZSBjbGFzcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNTg0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXV0aG9yZWQgYnkg
S3dvbmppbiBKZW9uZyBhbmQgRG9uZ3N1bmcgSHVhbmcuCisKKyAgICAgICAgRGlzcGF0Y2hRdWV1
ZSBpcyBhIHNpbXBsZSBDKysgd3JhcHBlciBhcm91bmQgbGliZGlzcGF0Y2ggKEdDRCkuIEEgdGhy
ZWFkIHBvb2wgYmFzZWQKKyAgICAgICAgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gaXMgYWxzbyBh
dmFpYWJsZS4gU28gcG9ydHMgd2l0aG91dCBsaWJkaXNwYXRjaCBjYW4gdXNlIHRoZSBzYW1lIEFQ
SS4KKworICAgICAgICBJdCBwcm92aWRlcyBvbmx5IHRoZSBzbWFsbCBzdWJzZXQgb2YgdGhlIG9y
aWdpbmFsIGxpYmRpc3BhdGNoIEFQSS4gVGhlcmUgYXJlIHRocmVlIHR5cGVzCisgICAgICAgIG9m
IERpc3BhdGNoUXVldWU6IHNlcmlhbCwgZ2xvYmFsIGFuZCBtYWluLiBUaGVzZSBxdWV1ZXMgY29y
cmVzcG9uZCB0byB0aGUgc2VyaWFsLAorICAgICAgICBjb25jdXJyZW50IGdsb2JhbCBhbmQgbWFp
biBxdWV1ZSBpbiBsaWJkaXNwYXRjaC4KKworICAgICAgICBEaXNwYXRjaFF1ZXVlOjphc3luYyhj
b25zdCBGdW5jdGlvbjx2b2lkKCk+JikgbWV0aG9kIGlzIHVzZWQgdG8gc2NoZWR1bGUgYSB0YXNr
IHJlZ2FyZGxlc3MKKyAgICAgICAgb2YgdGhlIHF1ZXVlIHR5cGUuCisKKyAgICAgICAgQ3VycmVu
dGx5LCBpdCBpcyB1c2VkIGJ5IHBhcmFsbGVsIGltYWdlIGRlY29kZXJzIHRvIHBlcmZvcm0gaW1h
Z2UgZGVjb2RpbmcgY29uY3VycmVudGx5LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBXVEYuZ3lwaToKKyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdU
Ri52Y3Byb2ovV1RGLnZjcHJvajoKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0Rpc3Bh
dGNoUXVldWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChEaXNwYXRjaE1h
aW5RdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoTWFpblF1ZXVlOjp+RGlzcGF0Y2hNYWlu
UXVldWUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaE1haW5RdWV1ZTo6YXN5bmMpOgorICAgICAg
ICAoV1RGOjpEaXNwYXRjaE1haW5RdWV1ZTo6RGlzcGF0Y2hNYWluUXVldWUpOgorICAgICAgICAo
RGlzcGF0Y2hHbG9iYWxRdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoR2xvYmFsUXVldWU6
On5EaXNwYXRjaEdsb2JhbFF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1
ZTo6YXN5bmMpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlOjpEaXNwYXRjaEds
b2JhbFF1ZXVlKToKKyAgICAgICAgKERpc3BhdGNoU2VyaWFsUXVldWUpOgorICAgICAgICAoV1RG
OjpEaXNwYXRjaFNlcmlhbFF1ZXVlOjp+RGlzcGF0Y2hTZXJpYWxRdWV1ZSk6CisgICAgICAgIChX
VEY6OkRpc3BhdGNoU2VyaWFsUXVldWU6OmFzeW5jKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hT
ZXJpYWxRdWV1ZTo6RGlzcGF0Y2hTZXJpYWxRdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNo
UXVldWU6Omdsb2JhbFF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hRdWV1ZTo6bWFpblF1
ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hRdWV1ZTo6aW5pdGlhbGl6ZURpc3BhdGNoUXVl
dWUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFF1ZXVlOjpjcmVhdGVTZXJpYWxRdWV1ZSk6Cisg
ICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWUuaDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAg
ICAgICAoRGlzcGF0Y2hRdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoUXVldWU6On5EaXNw
YXRjaFF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hRdWV1ZTo6RGlzcGF0Y2hRdWV1ZSk6
CisgICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHA6IEFkZGVkLgor
ICAgICAgICAoV1RGKToKKyAgICAgICAgKEV4ZWN1dG9yKToKKyAgICAgICAgKFdURjo6RXhlY3V0
b3I6OmFjcXVpcmUpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6cmVsZWFzZSk6CisgICAgICAg
IChXVEY6OkV4ZWN1dG9yOjphY3F1aXJlQ291bnQpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6
RXhlY3V0b3IpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6fkV4ZWN1dG9yKToKKyAgICAgICAg
KFdURjo6RXhlY3V0b3I6OmV4ZWN1dGUpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6d29ya2Vy
VGhyZWFkKToKKyAgICAgICAgKEV4ZWN1dG9yUG9vbCk6CisgICAgICAgIChXVEY6OkV4ZWN1dG9y
UG9vbDo6aW5pdGlhbGl6ZUV4ZWN1dG9yUG9vbCk6CisgICAgICAgIChXVEY6OmV4ZWN1dG9yUG9v
bCk6CisgICAgICAgIChXVEY6OkV4ZWN1dG9yUG9vbDo6RXhlY3V0b3JQb29sKToKKyAgICAgICAg
KFdURjo6RXhlY3V0b3JQb29sOjp+RXhlY3V0b3JQb29sKToKKyAgICAgICAgKFdURjo6RXhlY3V0
b3JQb29sOjpleGVjdXRlKToKKyAgICAgICAgKFdURjo6RXhlY3V0b3JQb29sOjpuZXh0RXhlY3V0
b3IpOgorICAgICAgICAoV1RGOjpFeGVjdXRvclBvb2w6OmFjcXVpcmVTZXJpYWxFeGVjdXRvcik6
CisgICAgICAgIChXVEY6OkV4ZWN1dG9yUG9vbDo6cmVsZWFzZVNlcmlhbEV4ZWN1dG9yKToKKyAg
ICAgICAgKFdURjo6RXhlY3V0b3JQb29sOjpzZXJpYWxFeGVjdXRvcldpdGhNaW5pbXVtQWNxdWly
ZUNvdW50KToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6OkRpc3Bh
dGNoR2xvYmFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1
ZVByaXZhdGU6On5EaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAgIChXVEY6OkRp
c3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjphc3luYyk6CisgICAgICAgIChXVEY6OkRpc3BhdGNo
U2VyaWFsUXVldWVQcml2YXRlOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAg
IChXVEY6OkRpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjp+RGlzcGF0Y2hTZXJpYWxRdWV1ZVBy
aXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6ZW5zdXJl
VGVybWluYXRlKToKKyAgICAgICAgKFdURjo6Y2FuY2VsYWJsZUZ1bmN0aW9uKToKKyAgICAgICAg
KFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmFzeW5jKToKKyAgICAgICAgKFdURjo6
RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6Omhhc1Rlcm1pbmF0aW9uQmVndW4pOgorICAgICAg
ICAqIHd0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaDogQWRkZWQuCisgICAgICAgIChX
VEYpOgorICAgICAgICAoRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RG
OjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKERpc3BhdGNo
U2VyaWFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVBy
aXZhdGU6OmNyZWF0ZSk6CisgICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlz
cGF0Y2guY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OkRpc3BhdGNo
R2xvYmFsUXVldWVQcml2YXRlOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAg
IChXVEY6OkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjp+RGlzcGF0Y2hHbG9iYWxRdWV1ZVBy
aXZhdGUpOgorICAgICAgICAoV1RGOjpGdW5jdGlvbkJveDo6RnVuY3Rpb25Cb3gpOgorICAgICAg
ICAoRnVuY3Rpb25Cb3gpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0
ZTo6YXN5bmMpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6aW52
b2tlRnVuY3Rpb24pOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6
RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlh
bFF1ZXVlUHJpdmF0ZTo6fkRpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdU
Rjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OnRlcm1pbmF0ZSk6CisgICAgICAgIChXVEY6
OkNhbmNlbGFibGVGdW5jdGlvbkJveDo6Q2FuY2VsYWJsZUZ1bmN0aW9uQm94KToKKyAgICAgICAg
KENhbmNlbGFibGVGdW5jdGlvbkJveCk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoU2VyaWFsUXVl
dWVQcml2YXRlOjppbnZva2VGdW5jdGlvbik6CisgICAgICAgIChXVEY6OkRpc3BhdGNoU2VyaWFs
UXVldWVQcml2YXRlOjphc3luYyk6CisgICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRl
TGliZGlzcGF0Y2guaDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAgICAgICAoRGlzcGF0Y2hH
bG9iYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJp
dmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKToKKyAg
ICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmNyZWF0ZSk6CisgICAgICAg
ICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZVRo
cmVhZGluZyk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5jcHA6CisgICAgICAgIChXVEY6
OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHd0Zi9jaHJvbWl1bS9NYWluVGhyZWFk
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV1RGOjpjYWxsRnVuY3Rpb25PYmplY3QpOgorICAgICAg
ICAoV1RGKToKKyAgICAgICAgKFdURjo6Y2FsbE9uTWFpblRocmVhZCk6CisKIDIwMTItMDctMDQg
IFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAg
IFtRdF0gR2V0IHJpZCBvZiB1bi1uZWVkZWQgUVQgKz0gZGVjbGFyYXRpdmUgZm9yIFF0IDUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCBjNWY0OGE2Y2U1NTlhMjRjYzIwYjcwNzU4ZGY4YmM0YTg0
ZGM5ZWVkLi5lYmE0NGI4YTg4MDczN2ViNDUxMjlhYjZmMDAwZDE4ZjMxZDMxYzYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC0zNyw2ICszNywxMiBAQCB3dGZfc291cmNlcyArPSBcCiAgICAg
U291cmNlL1dURi93dGYvRGVjb2Rlci5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9EZXF1ZS5oIFwK
ICAgICBTb3VyY2UvV1RGL3d0Zi9EaXNhbGxvd0NUeXBlLmggXAorICAgIFNvdXJjZS9XVEYvd3Rm
L0Rpc3BhdGNoUXVldWUuY3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlLmgg
XAorICAgIFNvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgXAor
ICAgIFNvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oIFwKKyAgICBT
b3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCBcCisgICAg
U291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oIFwKICAgICBT
b3VyY2UvV1RGL3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0R5
bmFtaWNBbm5vdGF0aW9ucy5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL0R5bmFtaWNBbm5vdGF0
aW9ucy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2UvV1RGL1dU
Ri5neXBpCmluZGV4IDg2NzU4NTUwNjFkMzc0ZWZhZmZlN2Q2MmUxNTNkZWIxMWJiYWQwMzkuLmMy
ZDVlYjQzNjk5MzYyNGU4ZWYyNjU5YTFlMzE1MjNjNWMxNjM3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvV1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtMTM3LDYgKzEzNywx
MiBAQAogICAgICAgICAgICAgJ3d0Zi9EYXRhTG9nLmNwcCcsCiAgICAgICAgICAgICAnd3RmL0Rh
dGVNYXRoLmNwcCcsCiAgICAgICAgICAgICAnd3RmL0RlY2ltYWxOdW1iZXIuY3BwJywKKyAgICAg
ICAgICAgICd3dGYvRGlzcGF0Y2hRdWV1ZS5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9EaXNwYXRj
aFF1ZXVlLmgnLAorICAgICAgICAgICAgJ3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMu
Y3BwJywKKyAgICAgICAgICAgICd3dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmgnLAor
ICAgICAgICAgICAgJ3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCcsCisg
ICAgICAgICAgICAnd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guaCcsCiAgICAg
ICAgICAgICAnd3RmL0R5bmFtaWNBbm5vdGF0aW9ucy5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9E
eW5hbWljQW5ub3RhdGlvbnMuaCcsCiAgICAgICAgICAgICAnd3RmL0Zhc3RNYWxsb2MuY3BwJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRl
eCAwOTYyZWYwYjUwYTUxN2JkMGUyZDQ1NjJkZjhkZWZkNmY1MWExZjA0Li42ODBhYjMyMjBjZTY0
MTU3OWQ3ZDEzMDAxZGFjNzIwZTIzMWRlMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5w
cm8KKysrIGIvU291cmNlL1dURi9XVEYucHJvCkBAIC0xNzcsNiArMTc3LDkgQEAgU09VUkNFUyAr
PSBcCiAgICAgRGF0ZU1hdGguY3BwIFwKICAgICBEYXRhTG9nLmNwcCBcCiAgICAgRGVjaW1hbE51
bWJlci5jcHAgXAorICAgIERpc3BhdGNoUXVldWUuY3BwIFwKKyAgICBEaXNwYXRjaFF1ZXVlUHJp
dmF0ZUxpYmRpc3BhdGNoLmNwcCBcCisgICAgRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNw
cCBcCiAgICAgZHRvYS5jcHAgXAogICAgIGR0b2EvYmlnbnVtLWR0b2EuY2MgXAogICAgIGR0b2Ev
YmlnbnVtLmNjIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9q
IGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKaW5kZXggMjE5MGRhZTFlZmZlYWUz
Mzk1MzMyN2UzY2I3M2U3N2U2ZWU0NmQ1OC4uNGY2ZDUzYWRlY2M5MDQwZDI2NmUyMjM1YmQ2ZjZm
YTU4MDFiNWYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oK
KysrIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTcwMSw2ICs3MDEsMzAg
QEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGlz
cGF0Y2hRdWV1ZS5jcHAiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0
aD0iLi5cd3RmXERpc3BhdGNoUXVldWUuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJ
UmVsYXRpdmVQYXRoPSIuLlx3dGZcRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCIKKwkJ
CT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGlzcGF0Y2hR
dWV1ZVByaXZhdGVHZW5lcmljLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0
aXZlUGF0aD0iLi5cd3RmXERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwIgorCQkJ
PgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxEaXNwYXRjaFF1
ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJCVJl
bGF0aXZlUGF0aD0iLi5cd3RmXERvdWJseUxpbmtlZExpc3QuaCIKIAkJCT4KIAkJPC9GaWxlPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzcyMDQ2MWUyNjQ2
NjFmYzhlOTQzNWU5MDg4MTY3NGJjZDFiNzY1OC4uZmI5YWY4ZDk3OWQ2MmVjMTZlNWIzNTA0MmRh
N2UwMzg3ZjY3N2JiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC00OCw2ICs0OCwxMiBAQAogCQlBOEE0NzNBNDE1MUE4MjVCMDA0MTIzRkYgLyogRGVjb2Rl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcy
N0QxNTFBODI1QTAwNDEyM0ZGIC8qIERlY29kZXIuaCAqLzsgfTsKIAkJQThBNDczQTUxNTFBODI1
QjAwNDEyM0ZGIC8qIERlcXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEE0NzI3RTE1MUE4MjVBMDA0MTIzRkYgLyogRGVxdWUuaCAqLzsgfTsKIAkJ
QThBNDczQTYxNTFBODI1QjAwNDEyM0ZGIC8qIERpc2FsbG93Q1R5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgyNUEwMDQxMjNG
RiAvKiBEaXNhbGxvd0NUeXBlLmggKi87IH07CisJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGOSAv
KiBEaXNwYXRjaFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgyNUEwMDQxMjNGRiAvKiBEaXNwYXRjaFF1ZXVlLmNwcCAq
LzsgfTsKKwkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZBIC8qIERpc3BhdGNoUXVldWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgy
NUEwMDQxMjNGRiAvKiBEaXNwYXRjaFF1ZXVlLmggKi87IH07CisJCUE4QTQ3M0E3MTUxQTgyNUIw
MDQxMjNGQiAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyN0YxNTFBODI1QTAwNDEyM0ZG
IC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgKi87IH07CisJCUE4QTQ3M0E3MTUx
QTgyNUIwMDQxMjNGQyAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgyNUEwMDQx
MjNGRiAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCAqLzsgfTsKKwkJQThBNDczQTcx
NTFBODI1QjAwNDEyM0ZEIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyN0YxNTFB
ODI1QTAwNDEyM0ZGIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwICovOyB9
OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJk
aXNwYXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThBNDcyN0YxNTFBODI1QTAwNDEyM0ZGIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0
Y2guaCAqLzsgfTsKIAkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZGIC8qIERvdWJseUxpbmtlZExp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3
MjgwMTUxQTgyNUEwMDQxMjNGRiAvKiBEb3VibHlMaW5rZWRMaXN0LmggKi87IH07CiAJCUE4QTQ3
M0E4MTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0tZHRvYS5jYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjgyMTUxQTgyNUEwMDQxMjNGRiAvKiBi
aWdudW0tZHRvYS5jYyAqLzsgfTsKIAkJQThBNDczQTkxNTFBODI1QjAwNDEyM0ZGIC8qIGJpZ251
bS1kdG9hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEE0NzI4MzE1MUE4MjVBMDA0MTIzRkYgLyogYmlnbnVtLWR0b2EuaCAqLzsgfTsKQEAgLTI5Myw2
ICsyOTksMTIgQEAKIAkJQThBNDcyN0QxNTFBODI1QTAwNDEyM0ZGIC8qIERlY29kZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBOEE0NzI3RTE1MUE4MjVBMDA0MTIzRkYgLyogRGVxdWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVxdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQThBNDcyN0YxNTFBODI1QTAwNDEyM0ZGIC8qIERpc2FsbG93Q1R5cGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzYWxsb3dDVHlwZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRjkgLyogRGlzcGF0Y2hR
dWV1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BhdGNoUXVldWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIz
RkEgLyogRGlzcGF0Y2hRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
aXNwYXRjaFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4QTQ3MjgwMTUx
QTgyNUEwMDQxMjNGQiAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRkMg
LyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRkQgLyogRGlzcGF0Y2hRdWV1ZVBy
aXZhdGVMaWJkaXNwYXRjaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERp
c3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVM
aWJkaXNwYXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwYXRjaFF1
ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRiAvKiBEb3VibHlMaW5rZWRMaXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvdWJseUxpbmtlZExpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQThBNDcyODIxNTFBODI1QTAwNDEyM0ZGIC8qIGJpZ251bS1kdG9hLmNj
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gImJpZ251bS1kdG9hLmNjIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyODMxNTFBODI1QTAwNDEyM0ZGIC8q
IGJpZ251bS1kdG9hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJiaWdudW0t
ZHRvYS5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4Myw2ICs1OTUsMTIgQEAK
IAkJCQlBOEE0NzI3RDE1MUE4MjVBMDA0MTIzRkYgLyogRGVjb2Rlci5oICovLAogCQkJCUE4QTQ3
MjdFMTUxQTgyNUEwMDQxMjNGRiAvKiBEZXF1ZS5oICovLAogCQkJCUE4QTQ3MjdGMTUxQTgyNUEw
MDQxMjNGRiAvKiBEaXNhbGxvd0NUeXBlLmggKi8sCisJCQkJQThBNDcyODAxNTFBODI1QTAwNDEy
M0Y5IC8qIERpc3BhdGNoUXVldWUuY3BwICovLAorCQkJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNG
QSAvKiBEaXNwYXRjaFF1ZXVlLmggKi8sCisJCQkJQThBNDcyODAxNTFBODI1QTAwNDEyM0ZCIC8q
IERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgKi8sCisJCQkJQThBNDcyODAxNTFBODI1
QTAwNDEyM0ZDIC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oICovLAorCQkJCUE4QTQ3
MjgwMTUxQTgyNUEwMDQxMjNGRCAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNw
cCAqLywKKwkJCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZh
dGVMaWJkaXNwYXRjaC5oICovLAogCQkJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRiAvKiBEb3Vi
bHlMaW5rZWRMaXN0LmggKi8sCiAJCQkJQThBNDcyODExNTFBODI1QTAwNDEyM0ZGIC8qIGR0b2Eg
Ki8sCiAJCQkJQThBNDcyOTcxNTFBODI1QTAwNDEyM0ZGIC8qIGR0b2EuY3BwICovLApAQCAtODkz
LDYgKzkxMSw5IEBACiAJCQkJQThBNDczQTQxNTFBODI1QjAwNDEyM0ZGIC8qIERlY29kZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0E1MTUxQTgyNUIwMDQxMjNGRiAvKiBEZXF1ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQTYxNTFBODI1QjAwNDEyM0ZGIC8qIERpc2FsbG93Q1R5
cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGQSAvKiBEaXNw
YXRjaFF1ZXVlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkMg
LyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEE0
NzNBNzE1MUE4MjVCMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZGIC8qIERvdWJseUxp
bmtlZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0E5MTUxQTgyNUIwMDQxMjNGRiAv
KiBiaWdudW0tZHRvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQUIxNTFBODI1QjAwNDEy
M0ZGIC8qIGJpZ251bS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTM4LDYgKzExNTksOSBAQAogCQkJ
CUE4QTQ3MzlFMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRhTG9nLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QTQ3M0EwMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRlTWF0aC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzNBMjE1MUE4MjVCMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRjkgLyogRGlzcGF0Y2hRdWV1
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkIgLyogRGlz
cGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4QTQ3M0E3
MTUxQTgyNUIwMDQxMjNGRCAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0E4MTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0tZHRv
YS5jYyBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0FBMTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdu
dW0uY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNBQzE1MUE4MjVCMDA0MTIzRkYgLyogY2Fj
aGVkLXBvd2Vycy5jYyBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAyNzRm
MDRjOTc0OTMxOWFlZjQ4MDQ0NzkxNmRkMjI4MjcyNTA4NjhmLi41NTgzNTU3MjI4OTU0OGJlZGY5
ODhhMDNmOWE5ZDcxNzgxYWE5MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMjAsNiArMjAs
OSBAQCBTRVQoV1RGX0hFQURFUlMKICAgICBEZWNvZGVyLmgKICAgICBEZXF1ZS5oCiAgICAgRGlz
YWxsb3dDVHlwZS5oCisgICAgRGlzcGF0Y2hRdWV1ZS5oCisgICAgRGlzcGF0Y2hRdWV1ZVByaXZh
dGVHZW5lcmljLmgKKyAgICBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgKICAgICBE
b3VibHlMaW5rZWRMaXN0LmgKICAgICBEeW5hbWljQW5ub3RhdGlvbnMuaAogICAgIEVuY29kZXIu
aApAQCAtMTQyLDYgKzE0NSw5IEBAIFNFVChXVEZfU09VUkNFUwogICAgIERhdGVNYXRoLmNwcAog
ICAgIERhdGFMb2cuY3BwCiAgICAgRGVjaW1hbE51bWJlci5jcHAKKyAgICBEaXNwYXRjaFF1ZXVl
LmNwcAorICAgIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwCisgICAgRGlzcGF0
Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcAogICAgIER5bmFtaWNBbm5vdGF0aW9ucy5jcHAKICAg
ICBGYXN0TWFsbG9jLmNwcAogICAgIEhhc2hUYWJsZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0Rpc3BhdGNoUXVldWUuY3BwIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmQ5ZWEzNjYyMmUyNzA5YWMwNjY4MWExYzUxYWZkYzcwM2I2MmZhMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWUuY3BwCkBAIC0w
LDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAwIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3BhdGNoUXVldWUuaCIK
KworI2lmIEVOQUJMRShUSFJFQURJTkdfTElCRElTUEFUQ0gpCisjaW5jbHVkZSAiRGlzcGF0Y2hR
dWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oIgorI2Vsc2UKKyNpbmNsdWRlICJEaXNwYXRjaFF1ZXVl
UHJpdmF0ZUdlbmVyaWMuaCIKKyNlbmRpZgorCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
KyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBEaXNw
YXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTsKK2NsYXNzIERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRl
OworCitEaXNwYXRjaFF1ZXVlKiBEaXNwYXRjaFF1ZXVlOjpzX2dsb2JhbFF1ZXVlOworRGlzcGF0
Y2hRdWV1ZSogRGlzcGF0Y2hRdWV1ZTo6c19tYWluUXVldWU7CisKK2NsYXNzIERpc3BhdGNoTWFp
blF1ZXVlIDogcHVibGljIERpc3BhdGNoUXVldWUgeworcHVibGljOgorICAgIGZyaWVuZCBjbGFz
cyBEaXNwYXRjaFF1ZXVlOworICAgIHZpcnR1YWwgfkRpc3BhdGNoTWFpblF1ZXVlKCkgeyB9CisK
KyAgICAvLyBJbiBjYXNlIG9mIHRoZSBtYWluIHF1ZXVlLCB3ZSBzaW1wbHkgcmV1c2UgY2FsbE9u
TWFpblRocmVhZC4KKyAgICB2aXJ0dWFsIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgp
PiYgZnVuY3Rpb24pCisgICAgeworICAgICAgICBjYWxsT25NYWluVGhyZWFkKGZ1bmN0aW9uKTsK
KyAgICB9CisKKworcHJpdmF0ZToKKyAgICBEaXNwYXRjaE1haW5RdWV1ZSgpIHsgfQorfTsKKwor
Y2xhc3MgRGlzcGF0Y2hHbG9iYWxRdWV1ZSA6IHB1YmxpYyBEaXNwYXRjaFF1ZXVlIHsKK3B1Ymxp
YzoKKyAgICBmcmllbmQgY2xhc3MgRGlzcGF0Y2hRdWV1ZTsKKyAgICB2aXJ0dWFsIH5EaXNwYXRj
aEdsb2JhbFF1ZXVlKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rp
b248dm9pZCgpPiYgZnVuY3Rpb24pCisgICAgeworICAgICAgICBtX3ByaXZhdGUtPmFzeW5jKGZ1
bmN0aW9uKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRGlzcGF0Y2hHbG9iYWxRdWV1ZSgpCisg
ICAgICAgIDogbV9wcml2YXRlKERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjpjcmVhdGUoKSkg
eyB9CisKKyAgICBPd25QdHI8RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU+IG1fcHJpdmF0ZTsK
K307CisKK2NsYXNzIERpc3BhdGNoU2VyaWFsUXVldWUgOiBwdWJsaWMgRGlzcGF0Y2hRdWV1ZSB7
CitwdWJsaWM6CisgICAgZnJpZW5kIGNsYXNzIERpc3BhdGNoUXVldWU7CisgICAgdmlydHVhbCB+
RGlzcGF0Y2hTZXJpYWxRdWV1ZSgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGFzeW5jKGNvbnN0
IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQorICAgIHsKKyAgICAgICAgbV9wcml2YXRlLT5h
c3luYyhmdW5jdGlvbik7CisgICAgfQorCitwcml2YXRlOgorICAgIERpc3BhdGNoU2VyaWFsUXVl
dWUoKQorICAgICAgICA6IG1fcHJpdmF0ZShEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6Y3Jl
YXRlKCkpIHsgfQorCisgICAgT3duUHRyPERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlPiBtX3By
aXZhdGU7Cit9OworCitEaXNwYXRjaFF1ZXVlKiBEaXNwYXRjaFF1ZXVlOjpnbG9iYWxRdWV1ZSgp
Cit7CisgICAgcmV0dXJuIHNfZ2xvYmFsUXVldWU7Cit9CisKK0Rpc3BhdGNoUXVldWUqIERpc3Bh
dGNoUXVldWU6Om1haW5RdWV1ZSgpCit7CisgICAgcmV0dXJuIHNfbWFpblF1ZXVlOworfQorCit2
b2lkIERpc3BhdGNoUXVldWU6OmluaXRpYWxpemVEaXNwYXRjaFF1ZXVlKCkKK3sKKyAgICBzX21h
aW5RdWV1ZSA9IG5ldyBEaXNwYXRjaE1haW5RdWV1ZSgpOworICAgIHNfZ2xvYmFsUXVldWUgPSBu
ZXcgRGlzcGF0Y2hHbG9iYWxRdWV1ZSgpOworfQorCitQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+
IERpc3BhdGNoUXVldWU6OmNyZWF0ZVNlcmlhbFF1ZXVlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IERpc3BhdGNoU2VyaWFsUXVldWUoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZS5oIGIvU291cmNlL1dURi93
dGYvRGlzcGF0Y2hRdWV1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjYzM2YmY0YzI0OTAwYTQ4ZTMyNzIxM2Q0
ZTBlYjc5N2ZlNWFjZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRj
aFF1ZXVlLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21w
YW55IDEwMCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGlzcGF0Y2hRdWV1ZV9oCisjZGVmaW5lIERp
c3BhdGNoUXVldWVfaAorCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8vIFRoaXMg
Y2xhc3MgaXMgYSBzaW1wbGUgd3JhcHBlciBhcm91bmQgbGliZGlzcGF0Y2guCisvLyBXZSBhbHNv
IHByb3ZpZGUgYSBnZW5lcmljICh0aHJlYWQgcG9vbCkgaW1wbGVtZW5ldGF0aW9uIHNvIHRoYXQK
Ky8vIGFsbCB0aGUgcG9ydHMgY2FuIHVzZSB0aGUgc2FtZSBBUEkuCitjbGFzcyBEaXNwYXRjaFF1
ZXVlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERpc3BhdGNoUXVldWU+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplRGlzcGF0Y2hRdWV1ZSgpOworICAgIHN0YXRp
YyBEaXNwYXRjaFF1ZXVlKiBnbG9iYWxRdWV1ZSgpOworICAgIHN0YXRpYyBEaXNwYXRjaFF1ZXVl
KiBtYWluUXVldWUoKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBjcmVh
dGVTZXJpYWxRdWV1ZSgpOworCisgICAgdmlydHVhbCB+RGlzcGF0Y2hRdWV1ZSgpIHsgfQorCisg
ICAgdmlydHVhbCB2b2lkIGFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKSA9IDA7CisKK3By
b3RlY3RlZDoKKyAgICBzdGF0aWMgRGlzcGF0Y2hRdWV1ZSogc19nbG9iYWxRdWV1ZTsKKyAgICBz
dGF0aWMgRGlzcGF0Y2hRdWV1ZSogc19tYWluUXVldWU7CisKKyAgICBEaXNwYXRjaFF1ZXVlKCkg
eyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpEaXNwYXRjaFF1ZXVl
OworCisjZW5kaWYgLy8gRGlzcGF0Y2hRdWV1ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvRGlzcGF0
Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNWM3ZDU4OWE2MDIxOTJhNjQy
ZWJkNGQ2MDEyOGRiMzk1NmMxZjZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
RGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcApAQCAtMCwwICsxLDI2NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmICFFTkFCTEUoVEhSRUFESU5HX0xJQkRJU1BBVENIKQorCisjaW5jbHVk
ZSAiRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmgiCisKKyNpbmNsdWRlIDxsaW1pdHM+Cisj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisK
K25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBFeGVjdXRvclBvb2w7CisKK2NsYXNzIEV4ZWN1dG9y
IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFeGVjdXRvcik7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgRXhlY3V0b3IoKTsKKyAgICB+RXhlY3V0b3IoKTsK
KworICAgIHZvaWQgZXhlY3V0ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CisKKyAgICBzdGF0
aWMgdm9pZCB3b3JrZXJUaHJlYWQodm9pZCopOworCisgICAgdm9pZCBhY3F1aXJlKCkgeyBtX2Fj
cXVpcmVDb3VudCsrOyB9CisgICAgdm9pZCByZWxlYXNlKCkgeyBtX2FjcXVpcmVDb3VudC0tOyB9
CisgICAgaW50IGFjcXVpcmVDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNxdWlyZUNvdW50OyB9
CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX3J1bm5pbmc7CisgICAgaW50IG1fYWNxdWlyZUNvdW50
OworCisgICAgTXV0ZXggbV9tdXRleDsKKyAgICBUaHJlYWRDb25kaXRpb24gbV9mdW5jdGlvblF1
ZXVlRW1wdHlDb25kaXRpb247CisgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4gPiBtX2Z1bmN0
aW9uUXVldWU7Cit9OworCitFeGVjdXRvcjo6RXhlY3V0b3IoKQorICAgIDogbV9ydW5uaW5nKHRy
dWUpCisgICAgLCBtX2FjcXVpcmVDb3VudCgxKQoreworICAgIC8vIFdlIG5lZWQgYSBtdXRleCBo
ZXJlIGZvciB2aXNpYmlsaXR5IGluIEV4ZWN1dG9yOjp3b3JrZXJUaHJlYWQuCisgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSUQgPSBj
cmVhdGVUaHJlYWQoJkV4ZWN1dG9yOjp3b3JrZXJUaHJlYWQsIHRoaXMsICJFeGVjdXRvciB3b3Jr
ZXIiKTsKKyAgICBkZXRhY2hUaHJlYWQodGhyZWFkSUQpOworfQorCitFeGVjdXRvcjo6fkV4ZWN1
dG9yKCkKK3sKKyAgICAvLyBPbmNlIHdlIGNyZWF0ZSBhbiBleGVjdXRvciwgd2UgbmV2ZXIgZGVz
dHJveXMgaXQuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgRXhlY3V0b3I6
OmV4ZWN1dGUoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCit7CisgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQoZnVuY3Rp
b24pOworCisgICAgbV9mdW5jdGlvblF1ZXVlRW1wdHlDb25kaXRpb24uc2lnbmFsKCk7Cit9CisK
K3ZvaWQgRXhlY3V0b3I6OndvcmtlclRocmVhZCh2b2lkKiB0aHJlYWREYXRhKQoreworICAgIEV4
ZWN1dG9yKiBleGVjdXRvciA9IHJlaW50ZXJwcmV0X2Nhc3Q8RXhlY3V0b3IqPih0aHJlYWREYXRh
KTsKKworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+
ID4gZnVuY3Rpb25RdWV1ZTsKKyAgICAgICAgeworICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKGV4ZWN1dG9yLT5tX211dGV4KTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWSghZXhlY3V0
b3ItPm1fcnVubmluZykpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgd2hp
bGUgKGV4ZWN1dG9yLT5tX2Z1bmN0aW9uUXVldWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAg
IGV4ZWN1dG9yLT5tX2Z1bmN0aW9uUXVldWVFbXB0eUNvbmRpdGlvbi53YWl0KGV4ZWN1dG9yLT5t
X211dGV4KTsKKyAgICAgICAgICAgIGV4ZWN1dG9yLT5tX2Z1bmN0aW9uUXVldWUuc3dhcChmdW5j
dGlvblF1ZXVlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
ZnVuY3Rpb25RdWV1ZS5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIGZ1bmN0aW9uUXVldWVbaV0o
KTsKKyAgICB9Cit9CisKK2NsYXNzIEV4ZWN1dG9yUG9vbCB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoRXhlY3V0b3JQb29sKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplRXhlY3V0b3JQb29sKCk7CisKKyAgICBmcmll
bmQgRXhlY3V0b3JQb29sKiBleGVjdXRvclBvb2woKTsKKyAgICB+RXhlY3V0b3JQb29sKCk7CisK
KyAgICB2b2lkIGV4ZWN1dGUoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOworICAgIEV4ZWN1dG9y
KiBhY3F1aXJlU2VyaWFsRXhlY3V0b3IoKTsKKyAgICB2b2lkIHJlbGVhc2VTZXJpYWxFeGVjdXRv
cihFeGVjdXRvciopOworCitwcml2YXRlOgorICAgIHN0YXRpYyBFeGVjdXRvclBvb2wqIHNfZXhl
Y3V0b3JQb29sOworICAgIEV4ZWN1dG9yUG9vbCgpOworICAgIEV4ZWN1dG9yKiBuZXh0RXhlY3V0
b3IoKTsKKyAgICBFeGVjdXRvciogc2VyaWFsRXhlY3V0b3JXaXRoTWluaW11bUFjcXVpcmVDb3Vu
dCgpOworCisgICAgTXV0ZXggbV9tdXRleDsKKyAgICBWZWN0b3I8RXhlY3V0b3IqPiBtX2V4ZWN1
dG9yUG9vbDsKK307CisKK0V4ZWN1dG9yUG9vbCogRXhlY3V0b3JQb29sOjpzX2V4ZWN1dG9yUG9v
bDsKKwordm9pZCBFeGVjdXRvclBvb2w6OmluaXRpYWxpemVFeGVjdXRvclBvb2woKQoreworICAg
IGlmICghc19leGVjdXRvclBvb2wpCisgICAgICAgIHNfZXhlY3V0b3JQb29sID0gbmV3IEV4ZWN1
dG9yUG9vbDsKK30KKworRXhlY3V0b3JQb29sKiBleGVjdXRvclBvb2woKQoreworICAgIHJldHVy
biBFeGVjdXRvclBvb2w6OnNfZXhlY3V0b3JQb29sOworfQorCitFeGVjdXRvclBvb2w6OkV4ZWN1
dG9yUG9vbCgpCit7CisgICAgbV9leGVjdXRvclBvb2wucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShu
dW1iZXJPZlByb2Nlc3NvckNvcmVzKCkpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtYmVy
T2ZQcm9jZXNzb3JDb3JlcygpOyBpKyspCisgICAgICAgIG1fZXhlY3V0b3JQb29sLmFwcGVuZChu
ZXcgRXhlY3V0b3IoKSk7Cit9CisKK0V4ZWN1dG9yUG9vbDo6fkV4ZWN1dG9yUG9vbCgpCit7Cit9
CisKK3ZvaWQgRXhlY3V0b3JQb29sOjpleGVjdXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1
bmN0aW9uKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBuZXh0RXhl
Y3V0b3IoKS0+ZXhlY3V0ZShmdW5jdGlvbik7Cit9CisKK0V4ZWN1dG9yKiBFeGVjdXRvclBvb2w6
Om5leHRFeGVjdXRvcigpCit7CisgICAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbmV4dCA9IDA7Cisg
ICAgaW50IGluZGV4ID0gbmV4dCAlIG1fZXhlY3V0b3JQb29sLnNpemUoKTsKKyAgICBuZXh0Kys7
CisgICAgcmV0dXJuIG1fZXhlY3V0b3JQb29sW2luZGV4XTsKK30KKworRXhlY3V0b3IqIEV4ZWN1
dG9yUG9vbDo6YWNxdWlyZVNlcmlhbEV4ZWN1dG9yKCkKK3sKKyAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9tdXRleCk7CisgICAgRXhlY3V0b3IqIGV4ZWN1dG9yID0gc2VyaWFsRXhlY3V0b3JXaXRo
TWluaW11bUFjcXVpcmVDb3VudCgpOworICAgIGV4ZWN1dG9yLT5hY3F1aXJlKCk7CisgICAgcmV0
dXJuIGV4ZWN1dG9yOworfQorCit2b2lkIEV4ZWN1dG9yUG9vbDo6cmVsZWFzZVNlcmlhbEV4ZWN1
dG9yKEV4ZWN1dG9yKiBleGVjdXRvcikKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRl
eCk7CisgICAgZXhlY3V0b3ItPnJlbGVhc2UoKTsKK30KKworLy8gRklYTUU6IFdlIHNpbXBseSBy
ZXR1cm5zIHRoZSBleGVjdXRvciB3aXRoIHRoZSBtaW5pbXVtIGFjcXVpcmUgY291bnRzLgorLy8g
VGhpcyB2YWx1ZSBkb2VzIG5vdCByZWZsZWN0IHRoZSByZWFsIHN5c3RlbSBsb2FkLgorRXhlY3V0
b3IqIEV4ZWN1dG9yUG9vbDo6c2VyaWFsRXhlY3V0b3JXaXRoTWluaW11bUFjcXVpcmVDb3VudCgp
Cit7CisgICAgaW50IG1pbmltdW1BY3F1aXJlQ291bnQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGlu
dD46Om1heCgpOworICAgIGludCBpbmRleCA9IG1fZXhlY3V0b3JQb29sLnNpemUoKTsKKworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9leGVjdXRvclBvb2wuc2l6ZSgpOyBpKyspIHsKKyAg
ICAgICAgaWYgKG1fZXhlY3V0b3JQb29sW2ldLT5hY3F1aXJlQ291bnQoKSA8IG1pbmltdW1BY3F1
aXJlQ291bnQpIHsKKyAgICAgICAgICAgIG1pbmltdW1BY3F1aXJlQ291bnQgPSBtX2V4ZWN1dG9y
UG9vbFtpXS0+YWNxdWlyZUNvdW50KCk7CisgICAgICAgICAgICBpbmRleCA9IGk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBBU1NFUlQoaW5kZXggPCBtX2V4ZWN1dG9yUG9vbC5zaXplKCkpOwor
ICAgIHJldHVybiBtX2V4ZWN1dG9yUG9vbFtpbmRleF07Cit9CisKK0Rpc3BhdGNoR2xvYmFsUXVl
dWVQcml2YXRlOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpCit7CisgICAgRXhlY3V0b3JQ
b29sOjppbml0aWFsaXplRXhlY3V0b3JQb29sKCk7Cit9CisKK0Rpc3BhdGNoR2xvYmFsUXVldWVQ
cml2YXRlOjp+RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKQoreworICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworfQorCit2b2lkIERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjphc3luYyhj
b25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKK3sKKyAgICBleGVjdXRvclBvb2woKS0+
ZXhlY3V0ZShmdW5jdGlvbik7Cit9CisKK0Rpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjpEaXNw
YXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSgpCisgICAgOiBtX2V4ZWN1dG9yU3RhdHVzKFJ1bm5pbmcp
Cit7CisgICAgbV9zZXJpYWxFeGVjdXRvciA9IGV4ZWN1dG9yUG9vbCgpLT5hY3F1aXJlU2VyaWFs
RXhlY3V0b3IoKTsKK30KKworRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6On5EaXNwYXRjaFNl
cmlhbFF1ZXVlUHJpdmF0ZSgpCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZXhlY3V0b3JT
dGF0dXNNdXRleCk7CisgICAgbV9leGVjdXRvclN0YXR1cyA9IFRlcm1pbmF0aW9uQmVndW47CisK
KyAgICBtX3NlcmlhbEV4ZWN1dG9yLT5leGVjdXRlKGJpbmQoJkRpc3BhdGNoU2VyaWFsUXVldWVQ
cml2YXRlOjplbnN1cmVUZXJtaW5hdGUsIHRoaXMpKTsKKyAgICB3aGlsZSAobV9leGVjdXRvclN0
YXR1cyAhPSBUZXJtaW5pYXRpb25Db21wbGV0ZWQpCisgICAgICAgIG1fdGVybWluYXRpb25Db21w
bGV0ZWQud2FpdChtX2V4ZWN1dG9yU3RhdHVzTXV0ZXgpOworICAgIGV4ZWN1dG9yUG9vbCgpLT5y
ZWxlYXNlU2VyaWFsRXhlY3V0b3IobV9zZXJpYWxFeGVjdXRvcik7Cit9CisKK3ZvaWQgRGlzcGF0
Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmVuc3VyZVRlcm1pbmF0ZSgpCit7CisgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fZXhlY3V0b3JTdGF0dXNNdXRleCk7CisgICAgQVNTRVJUKG1fZXhlY3V0b3JT
dGF0dXMgPT0gVGVybWluYXRpb25CZWd1bik7CisgICAgbV9leGVjdXRvclN0YXR1cyA9IFRlcm1p
bmlhdGlvbkNvbXBsZXRlZDsKKyAgICBtX3Rlcm1pbmF0aW9uQ29tcGxldGVkLnNpZ25hbCgpOwor
fQorCitzdGF0aWMgdm9pZCBjYW5jZWxhYmxlRnVuY3Rpb24oRGlzcGF0Y2hTZXJpYWxRdWV1ZVBy
aXZhdGUqIHNlcmlhbFF1ZXVlLCBjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKK3sK
KyAgICBpZiAoVU5MSUtFTFkoc2VyaWFsUXVldWUtPmhhc1Rlcm1pbmF0aW9uQmVndW4oKSkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGZ1bmN0aW9uKCk7Cit9CisKK3ZvaWQgRGlzcGF0Y2hTZXJp
YWxRdWV1ZVByaXZhdGU6OmFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQor
eworICAgIEFTU0VSVChtX2V4ZWN1dG9yU3RhdHVzID09IFJ1bm5pbmcpOworICAgIG1fc2VyaWFs
RXhlY3V0b3ItPmV4ZWN1dGUoYmluZChjYW5jZWxhYmxlRnVuY3Rpb24sIHRoaXMsIGZ1bmN0aW9u
KSk7Cit9CisKK2Jvb2wgRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6Omhhc1Rlcm1pbmF0aW9u
QmVndW4oKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2V4ZWN1dG9yU3RhdHVzTXV0ZXgp
OworICAgIEFTU0VSVChtX2V4ZWN1dG9yU3RhdHVzICE9IFRlcm1pbmlhdGlvbkNvbXBsZXRlZCk7
CisgICAgcmV0dXJuIG1fZXhlY3V0b3JTdGF0dXMgPT0gVGVybWluYXRpb25CZWd1bjsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBFTkFCTEUoVEhSRUFESU5HX0xJQkRJU1BB
VENIKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5l
cmljLmggYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZmU0OWE2MTQ4ZTRhZjMyZmM2MDAyMWM3ODEyMThjNTg1NmE3N2JkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmgK
QEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljX2gKKyNkZWZp
bmUgRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljX2gKKworI2lmICFFTkFCTEUoVEhSRUFESU5H
X0xJQkRJU1BBVENIKQorCisjaW5jbHVkZSAiRGlzcGF0Y2hRdWV1ZS5oIgorCisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIERpc3BhdGNoR2xv
YmFsUXVldWVQcml2YXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEaXNwYXRjaEdsb2Jh
bFF1ZXVlUHJpdmF0ZSk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NPd25QdHI8RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU+IGNyZWF0ZSgp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERpc3BhdGNoR2xvYmFsUXVldWVQ
cml2YXRlKCkpOworICAgIH0KKworICAgIH5EaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpOwor
CisgICAgdm9pZCBhc3luYyhjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CisKK3ByaXZhdGU6Cisg
ICAgRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKTsKK307CisKK2NsYXNzIEV4ZWN1dG9yOwor
CitjbGFzcyBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUpOworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPERpc3BhdGNoU2VyaWFsUXVl
dWVQcml2YXRlPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBE
aXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSgpKTsKKyAgICB9CisKKyAgICB+RGlzcGF0Y2hTZXJp
YWxRdWV1ZVByaXZhdGUoKTsKKworICAgIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgp
PiYpOworCisgICAgYm9vbCBoYXNUZXJtaW5hdGlvbkJlZ3VuKCk7CisKK3ByaXZhdGU6CisgICAg
RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUoKTsKKyAgICB2b2lkIGVuc3VyZVRlcm1pbmF0ZSgp
OworCisgICAgZW51bSBFeGVjdXRvclN0YXR1cyB7IFJ1bm5pbmcsIFRlcm1pbmF0aW9uQmVndW4s
IFRlcm1pbmlhdGlvbkNvbXBsZXRlZCB9OworICAgIE11dGV4IG1fZXhlY3V0b3JTdGF0dXNNdXRl
eDsKKyAgICBFeGVjdXRvclN0YXR1cyBtX2V4ZWN1dG9yU3RhdHVzOworICAgIFRocmVhZENvbmRp
dGlvbiBtX3Rlcm1pbmF0aW9uQ29tcGxldGVkOworCisgICAgRXhlY3V0b3IqIG1fc2VyaWFsRXhl
Y3V0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vICFFTkFCTEUoVEhS
RUFESU5HX0xJQkRJU1BBVENIKQorCisjZW5kaWYgLy8gRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5l
cmljX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGli
ZGlzcGF0Y2guY3BwIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNw
YXRjaC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk5N2NhZWMwNmMzN2NjYzc5MmZiZDY1ODA2ZDY1NTVhM2Zm
NTVjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2
YXRlTGliZGlzcGF0Y2guY3BwCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIENvbXBhbnkgMTAwIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKFRIUkVBRElOR19MSUJESVNQQVRDSCkKKworI2luY2x1ZGUgIkRpc3BhdGNoUXVl
dWVQcml2YXRlTGliZGlzcGF0Y2guaCIKKworbmFtZXNwYWNlIFdURiB7CisKK0Rpc3BhdGNoR2xv
YmFsUXVldWVQcml2YXRlOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpCit7CisgICAgbV9k
aXNwYXRjaFF1ZXVlID0gZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9Q
UklPUklUWV9ERUZBVUxULCAwKTsKK30KKworRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6On5E
aXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Cit9CisKK3N0cnVjdCBGdW5jdGlvbkJveCB7CisgICAgRnVuY3Rpb25Cb3goY29uc3QgRnVuY3Rp
b248dm9pZCgpPiYgZnVuY3Rpb24pCisgICAgICAgIDogbV9mdW5jdGlvbihmdW5jdGlvbikKKyAg
ICB7CisgICAgfQorCisgICAgRnVuY3Rpb248dm9pZCgpPiBtX2Z1bmN0aW9uOworfTsKKwordm9p
ZCBEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6YXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgp
PiYgZnVuY3Rpb24pCit7CisgICAgRnVuY3Rpb25Cb3gqIGJveCA9IG5ldyBGdW5jdGlvbkJveChm
dW5jdGlvbik7CisgICAgZGlzcGF0Y2hfYXN5bmNfZihtX2Rpc3BhdGNoUXVldWUsIHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCo+KGJveCksICZEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6aW52b2tl
RnVuY3Rpb24pOworfQorCit2b2lkIERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjppbnZva2VG
dW5jdGlvbih2b2lkKiBjb250ZXh0KQoreworICAgIEZ1bmN0aW9uQm94KiBib3ggPSByZWludGVy
cHJldF9jYXN0PEZ1bmN0aW9uQm94Kj4oY29udGV4dCk7CisgICAgYm94LT5tX2Z1bmN0aW9uKCk7
CisgICAgZGVsZXRlIGJveDsKK30KKworRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OkRpc3Bh
dGNoU2VyaWFsUXVldWVQcml2YXRlKCkKKyAgICA6IG1faGFzVGVybWluYXRpb25CZWd1bihmYWxz
ZSkKK3sKKyAgICBtX2Rpc3BhdGNoR3JvdXAgPSBkaXNwYXRjaF9ncm91cF9jcmVhdGUoKTsKKyAg
ICBtX2Rpc3BhdGNoUXVldWUgPSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoMCwgMCk7Cit9CisKK0Rp
c3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjp+RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUoKQor
eworICAgIHRlcm1pbmF0ZSgpOworICAgIGRpc3BhdGNoX3JlbGVhc2UobV9kaXNwYXRjaEdyb3Vw
KTsKKyAgICBkaXNwYXRjaF9yZWxlYXNlKG1fZGlzcGF0Y2hRdWV1ZSk7Cit9CisKK3ZvaWQgRGlz
cGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OnRlcm1pbmF0ZSgpCit7CisgICAgeworICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9oYXNUZXJtaW5hdGlvbkJlZ3VuTXV0ZXgpOworICAgICAgICBt
X2hhc1Rlcm1pbmF0aW9uQmVndW4gPSB0cnVlOworICAgIH0KKyAgICBkaXNwYXRjaF9ncm91cF93
YWl0KG1fZGlzcGF0Y2hHcm91cCwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKK30KKworc3RydWN0
IENhbmNlbGFibGVGdW5jdGlvbkJveCB7CisgICAgQ2FuY2VsYWJsZUZ1bmN0aW9uQm94KGNvbnN0
IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uLCBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSog
cXVldWUpCisgICAgICAgIDogbV9mdW5jdGlvbihmdW5jdGlvbikKKyAgICAgICAgLCBtX3F1ZXVl
KHF1ZXVlKQorICAgIHsKKyAgICB9CisKKyAgICBGdW5jdGlvbjx2b2lkKCk+IG1fZnVuY3Rpb247
CisgICAgRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUqIG1fcXVldWU7Cit9OworCit2b2lkIERp
c3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjppbnZva2VGdW5jdGlvbih2b2lkKiBjb250ZXh0KQor
eworICAgIENhbmNlbGFibGVGdW5jdGlvbkJveCogYm94ID0gcmVpbnRlcnByZXRfY2FzdDxDYW5j
ZWxhYmxlRnVuY3Rpb25Cb3gqPihjb250ZXh0KTsKKworICAgIGJvb2wgaXNDYW5jZWxlZDsKKyAg
ICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihib3gtPm1fcXVldWUtPm1faGFzVGVybWlu
YXRpb25CZWd1bk11dGV4KTsKKyAgICAgICAgaXNDYW5jZWxlZCA9IGJveC0+bV9xdWV1ZS0+bV9o
YXNUZXJtaW5hdGlvbkJlZ3VuOworICAgIH0KKyAgICBpZiAoTElLRUxZKCFpc0NhbmNlbGVkKSkK
KyAgICAgICAgYm94LT5tX2Z1bmN0aW9uKCk7CisKKyAgICBkZWxldGUgYm94OworfQorCit2b2lk
IERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjphc3luYyhjb25zdCBGdW5jdGlvbjx2b2lkKCk+
JiBmdW5jdGlvbikKK3sKKyAgICBBU1NFUlQoIW1faGFzVGVybWluYXRpb25CZWd1bik7CisKKyAg
ICBDYW5jZWxhYmxlRnVuY3Rpb25Cb3gqIGJveCA9IG5ldyBDYW5jZWxhYmxlRnVuY3Rpb25Cb3go
ZnVuY3Rpb24sIHRoaXMpOworICAgIGRpc3BhdGNoX2dyb3VwX2FzeW5jX2YobV9kaXNwYXRjaEdy
b3VwLCBtX2Rpc3BhdGNoUXVldWUsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGJveCksICZEaXNw
YXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6aW52b2tlRnVuY3Rpb24pOworfQorCit9IC8vIG5hbWVz
cGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShUSFJFQURJTkdfTElCRElTUEFUQ0gpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZWM5MDdmZWVkNjc2NjIzZWQ0NzNhOWMxOGNjOTAwMjYwYTFhNDM0NAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2gu
aApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAw
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoX2gK
KyNkZWZpbmUgRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaF9oCisKKyNpZiBFTkFCTEUo
VEhSRUFESU5HX0xJQkRJU1BBVENIKQorCisjaW5jbHVkZSAiRGlzcGF0Y2hRdWV1ZS5oIgorCisj
aW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUg
eworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKTsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093
blB0cjxEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZT4gY3JlYXRlKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFB0cihuZXcgRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKSk7CisgICAg
fQorCisgICAgfkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKCk7CisKKyAgICB2b2lkIGFzeW5j
KGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKKworcHJpdmF0ZToKKyAgICBEaXNwYXRjaEdsb2Jh
bFF1ZXVlUHJpdmF0ZSgpOworICAgIHN0YXRpYyB2b2lkIGludm9rZUZ1bmN0aW9uKHZvaWQqIGNv
bnRleHQpOworCisgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2Rpc3BhdGNoUXVldWU7Cit9OworCitj
bGFzcyBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPERpc3BhdGNoU2VyaWFsUXVldWVQ
cml2YXRlPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEaXNw
YXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSgpKTsKKyAgICB9CisKKyAgICB+RGlzcGF0Y2hTZXJpYWxR
dWV1ZVByaXZhdGUoKTsKKworICAgIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYp
OworCitwcml2YXRlOgorICAgIERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKCk7CisgICAgc3Rh
dGljIHZvaWQgaW52b2tlRnVuY3Rpb24odm9pZCogY29udGV4dCk7CisKKyAgICB2b2lkIHRlcm1p
bmF0ZSgpOworCisgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2Rpc3BhdGNoUXVldWU7CisgICAgZGlz
cGF0Y2hfZ3JvdXBfdCBtX2Rpc3BhdGNoR3JvdXA7CisgICAgTXV0ZXggbV9oYXNUZXJtaW5hdGlv
bkJlZ3VuTXV0ZXg7CisgICAgYm9vbCBtX2hhc1Rlcm1pbmF0aW9uQmVndW47Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShUSFJFQURJTkdfTElCRElTUEFUQ0gp
CisKKyNlbmRpZiAvLyBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZGluZ1B0aHJlYWRzLmNwcAppbmRleCA1MTAxNzNkMDk4MTJjZDlmYzAyNWQ3ZGNlOWZl
MmE2MzE4MTY1MmQ3Li4zNDRiMGJiODBjY2QzYWRmMzg0ODk0NjgwYTYxYjBiY2M0MDc1Nzg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSAiVGhyZWFkSWRlbnRpZmllckRhdGFQdGhyZWFkcy5oIgogI2luY2x1ZGUgIlRocmVhZFNw
ZWNpZmljLmgiCiAjaW5jbHVkZSAiVW51c2VkUGFyYW0uaCIKKyNpbmNsdWRlIDx3dGYvRGlzcGF0
Y2hRdWV1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9XVEZUaHJlYWREYXRhLmg+CkBAIC05NCw2ICs5NSw3IEBA
IHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgd3RmVGhyZWFkRGF0YSgpOwogICAgIHNf
ZHRvYVA1TXV0ZXggPSBuZXcgTXV0ZXg7CiAgICAgaW5pdGlhbGl6ZURhdGVzKCk7CisgICAgRGlz
cGF0Y2hRdWV1ZTo6aW5pdGlhbGl6ZURpc3BhdGNoUXVldWUoKTsKIH0KIAogdm9pZCBsb2NrQXRv
bWljYWxseUluaXRpYWxpemVkU3RhdGljTXV0ZXgoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKaW5k
ZXggZDMzOTczZGFmNzhjOWI2ZTYwZDdkMWMzZTk0YmE2ZmI2ZDg0OWI0NS4uNDg1NjdkMDFiM2Rj
Y2FkODczYzgyOTgyZTRhYzkzZmZhZjA2MTZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
VGhyZWFkaW5nV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCkBA
IC05Myw2ICs5Myw3IEBACiAjaW5jbHVkZSAiVGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uLmgiCiAj
aW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1
ZGUgPHd0Zi9EaXNwYXRjaFF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTE3OSw2
ICsxODAsNyBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogICAgIHd0ZlRocmVhZERhdGEo
KTsKICAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAgIGluaXRpYWxpemVEYXRlcygp
OworICAgIERpc3BhdGNoUXVldWU6OmluaXRpYWxpemVEaXNwYXRjaFF1ZXVlKCk7CiB9CiAKIHN0
YXRpYyBIYXNoTWFwPERXT1JELCBIQU5ETEU+JiB0aHJlYWRNYXAoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvY2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAKaW5kZXggOWU2NTkyYjU3MTU2Nzlh
ZTJiYzlhNmQxYTBiNmYzYjhjOWUxOGU4MS4uNGY5YjQzN2UxOTkwOTcyZDM3NWE5MDM1MTM4NmVj
YzQ2NDk0NmNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY2hyb21pdW0vTWFpblRocmVh
ZENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hy
b21pdW0uY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJBc3NlcnRpb25zLmgiCiAj
aW5jbHVkZSAiQ2hyb21pdW1UaHJlYWRpbmcuaCIKKyNpbmNsdWRlICJGdW5jdGlvbmFsLmgiCiAj
aW5jbHVkZSAiVGhyZWFkaW5nLmgiCiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtNTQsNiArNTUsMTgg
QEAgdm9pZCBjYWxsT25NYWluVGhyZWFkKE1haW5UaHJlYWRGdW5jdGlvbiogZnVuY3Rpb24sIHZv
aWQqIGNvbnRleHQpCiAgICAgQ2hyb21pdW1UaHJlYWRpbmc6OmNhbGxPbk1haW5UaHJlYWQoZnVu
Y3Rpb24sIGNvbnRleHQpOwogfQogCitzdGF0aWMgdm9pZCBjYWxsRnVuY3Rpb25PYmplY3Qodm9p
ZCogY29udGV4dCkKK3sKKyAgICBGdW5jdGlvbjx2b2lkICgpPiogZnVuY3Rpb24gPSBzdGF0aWNf
Y2FzdDxGdW5jdGlvbjx2b2lkICgpPio+KGNvbnRleHQpOworICAgICgqZnVuY3Rpb24pKCk7Cisg
ICAgZGVsZXRlIGZ1bmN0aW9uOworfQorCit2b2lkIGNhbGxPbk1haW5UaHJlYWQoY29uc3QgRnVu
Y3Rpb248dm9pZCAoKT4mIGZ1bmN0aW9uKQoreworICAgIGNhbGxPbk1haW5UaHJlYWQoY2FsbEZ1
bmN0aW9uT2JqZWN0LCBuZXcgRnVuY3Rpb248dm9pZCAoKT4oZnVuY3Rpb24pKTsKK30KKwogdm9p
ZCBjYWxsT25NYWluVGhyZWFkQW5kV2FpdChNYWluVGhyZWFkRnVuY3Rpb24qLCB2b2lkKikKIHsK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150924</attachid>
            <date>2012-07-05 04:26:05 -0700</date>
            <delta_ts>2012-08-01 01:37:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90584-20120705202541.patch</filename>
            <type>text/plain</type>
            <size>42489</size>
            <attacher name="Kwonjin Jeong">gram</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDQ5MjU3OTQxMWViNzk3NWVmNGJhMzFl
ZTFkNjVkYjIwZGMzMzRkYWUuLjllYTMzZTNmMzI3NmY3MDAwMzlhZTE2NjgwZTA0NjM0ZDQ4MGNi
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTE4IEBACisyMDEyLTA3LTA1ICBLd29uamluIEplb25nICA8Z3Jh
bUBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBBZGQgRGlzcGF0Y2hRdWV1ZSBjbGFzcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNTg0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXV0aG9yZWQgYnkg
S3dvbmppbiBKZW9uZyBhbmQgRG9uZ3N1bmcgSHVhbmcuCisKKyAgICAgICAgRGlzcGF0Y2hRdWV1
ZSBpcyBhIHNpbXBsZSBDKysgd3JhcHBlciBhcm91bmQgbGliZGlzcGF0Y2ggKEdDRCkuIEEgdGhy
ZWFkIHBvb2wgYmFzZWQKKyAgICAgICAgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gaXMgYWxzbyBh
dmFpYWJsZS4gU28gcG9ydHMgd2l0aG91dCBsaWJkaXNwYXRjaCBjYW4gdXNlIHRoZSBzYW1lIEFQ
SS4KKworICAgICAgICBJdCBwcm92aWRlcyBvbmx5IHRoZSBzbWFsbCBzdWJzZXQgb2YgdGhlIG9y
aWdpbmFsIGxpYmRpc3BhdGNoIEFQSS4gVGhlcmUgYXJlIHRocmVlIHR5cGVzCisgICAgICAgIG9m
IERpc3BhdGNoUXVldWU6IHNlcmlhbCwgZ2xvYmFsIGFuZCBtYWluLiBUaGVzZSBxdWV1ZXMgY29y
cmVzcG9uZCB0byB0aGUgc2VyaWFsLAorICAgICAgICBjb25jdXJyZW50IGdsb2JhbCBhbmQgbWFp
biBxdWV1ZSBpbiBsaWJkaXNwYXRjaC4KKworICAgICAgICBEaXNwYXRjaFF1ZXVlOjphc3luYyhj
b25zdCBGdW5jdGlvbjx2b2lkKCk+JikgbWV0aG9kIGlzIHVzZWQgdG8gc2NoZWR1bGUgYSB0YXNr
IHJlZ2FyZGxlc3MKKyAgICAgICAgb2YgdGhlIHF1ZXVlIHR5cGUuCisKKyAgICAgICAgQ3VycmVu
dGx5LCBpdCBpcyB1c2VkIGJ5IHBhcmFsbGVsIGltYWdlIGRlY29kZXJzIHRvIHBlcmZvcm0gaW1h
Z2UgZGVjb2RpbmcgY29uY3VycmVudGx5LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBXVEYuZ3lwaToKKyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdU
Ri52Y3Byb2ovV1RGLnZjcHJvajoKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0Rpc3Bh
dGNoUXVldWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChEaXNwYXRjaE1h
aW5RdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoTWFpblF1ZXVlOjp+RGlzcGF0Y2hNYWlu
UXVldWUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaE1haW5RdWV1ZTo6YXN5bmMpOgorICAgICAg
ICAoV1RGOjpEaXNwYXRjaE1haW5RdWV1ZTo6RGlzcGF0Y2hNYWluUXVldWUpOgorICAgICAgICAo
RGlzcGF0Y2hHbG9iYWxRdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoR2xvYmFsUXVldWU6
On5EaXNwYXRjaEdsb2JhbFF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1
ZTo6YXN5bmMpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlOjpEaXNwYXRjaEds
b2JhbFF1ZXVlKToKKyAgICAgICAgKERpc3BhdGNoU2VyaWFsUXVldWUpOgorICAgICAgICAoV1RG
OjpEaXNwYXRjaFNlcmlhbFF1ZXVlOjp+RGlzcGF0Y2hTZXJpYWxRdWV1ZSk6CisgICAgICAgIChX
VEY6OkRpc3BhdGNoU2VyaWFsUXVldWU6OmFzeW5jKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hT
ZXJpYWxRdWV1ZTo6RGlzcGF0Y2hTZXJpYWxRdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNo
UXVldWU6Omdsb2JhbFF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hRdWV1ZTo6bWFpblF1
ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hRdWV1ZTo6aW5pdGlhbGl6ZURpc3BhdGNoUXVl
dWUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFF1ZXVlOjpjcmVhdGVTZXJpYWxRdWV1ZSk6Cisg
ICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWUuaDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAg
ICAgICAoRGlzcGF0Y2hRdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoUXVldWU6On5EaXNw
YXRjaFF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hRdWV1ZTo6RGlzcGF0Y2hRdWV1ZSk6
CisgICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHA6IEFkZGVkLgor
ICAgICAgICAoV1RGKToKKyAgICAgICAgKEV4ZWN1dG9yKToKKyAgICAgICAgKFdURjo6RXhlY3V0
b3I6OmFjcXVpcmUpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6cmVsZWFzZSk6CisgICAgICAg
IChXVEY6OkV4ZWN1dG9yOjphY3F1aXJlQ291bnQpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6
RXhlY3V0b3IpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6fkV4ZWN1dG9yKToKKyAgICAgICAg
KFdURjo6RXhlY3V0b3I6OmV4ZWN1dGUpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6d29ya2Vy
VGhyZWFkKToKKyAgICAgICAgKEV4ZWN1dG9yUG9vbCk6CisgICAgICAgIChXVEY6OkV4ZWN1dG9y
UG9vbDo6aW5pdGlhbGl6ZUV4ZWN1dG9yUG9vbCk6CisgICAgICAgIChXVEY6OmV4ZWN1dG9yUG9v
bCk6CisgICAgICAgIChXVEY6OkV4ZWN1dG9yUG9vbDo6RXhlY3V0b3JQb29sKToKKyAgICAgICAg
KFdURjo6RXhlY3V0b3JQb29sOjp+RXhlY3V0b3JQb29sKToKKyAgICAgICAgKFdURjo6RXhlY3V0
b3JQb29sOjpleGVjdXRlKToKKyAgICAgICAgKFdURjo6RXhlY3V0b3JQb29sOjpuZXh0RXhlY3V0
b3IpOgorICAgICAgICAoV1RGOjpFeGVjdXRvclBvb2w6OmFjcXVpcmVTZXJpYWxFeGVjdXRvcik6
CisgICAgICAgIChXVEY6OkV4ZWN1dG9yUG9vbDo6cmVsZWFzZVNlcmlhbEV4ZWN1dG9yKToKKyAg
ICAgICAgKFdURjo6RXhlY3V0b3JQb29sOjpzZXJpYWxFeGVjdXRvcldpdGhNaW5pbXVtQWNxdWly
ZUNvdW50KToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6OkRpc3Bh
dGNoR2xvYmFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1
ZVByaXZhdGU6On5EaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAgIChXVEY6OkRp
c3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjphc3luYyk6CisgICAgICAgIChXVEY6OkRpc3BhdGNo
U2VyaWFsUXVldWVQcml2YXRlOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAg
IChXVEY6OkRpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjp+RGlzcGF0Y2hTZXJpYWxRdWV1ZVBy
aXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6ZW5zdXJl
VGVybWluYXRlKToKKyAgICAgICAgKFdURjo6Y2FuY2VsYWJsZUZ1bmN0aW9uKToKKyAgICAgICAg
KFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmFzeW5jKToKKyAgICAgICAgKFdURjo6
RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6Omhhc1Rlcm1pbmF0aW9uQmVndW4pOgorICAgICAg
ICAqIHd0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaDogQWRkZWQuCisgICAgICAgIChX
VEYpOgorICAgICAgICAoRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RG
OjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKERpc3BhdGNo
U2VyaWFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVBy
aXZhdGU6OmNyZWF0ZSk6CisgICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlz
cGF0Y2guY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OkRpc3BhdGNo
R2xvYmFsUXVldWVQcml2YXRlOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAg
IChXVEY6OkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjp+RGlzcGF0Y2hHbG9iYWxRdWV1ZVBy
aXZhdGUpOgorICAgICAgICAoV1RGOjpGdW5jdGlvbkJveDo6RnVuY3Rpb25Cb3gpOgorICAgICAg
ICAoRnVuY3Rpb25Cb3gpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0
ZTo6YXN5bmMpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6aW52
b2tlRnVuY3Rpb24pOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6
RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlh
bFF1ZXVlUHJpdmF0ZTo6fkRpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdU
Rjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OnRlcm1pbmF0ZSk6CisgICAgICAgIChXVEY6
OkNhbmNlbGFibGVGdW5jdGlvbkJveDo6Q2FuY2VsYWJsZUZ1bmN0aW9uQm94KToKKyAgICAgICAg
KENhbmNlbGFibGVGdW5jdGlvbkJveCk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoU2VyaWFsUXVl
dWVQcml2YXRlOjppbnZva2VGdW5jdGlvbik6CisgICAgICAgIChXVEY6OkRpc3BhdGNoU2VyaWFs
UXVldWVQcml2YXRlOjphc3luYyk6CisgICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRl
TGliZGlzcGF0Y2guaDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAgICAgICAoRGlzcGF0Y2hH
bG9iYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJp
dmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKToKKyAg
ICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmNyZWF0ZSk6CisgICAgICAg
ICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZVRo
cmVhZGluZyk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5jcHA6CisgICAgICAgIChXVEY6
OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHd0Zi9jaHJvbWl1bS9NYWluVGhyZWFk
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV1RGOjpjYWxsRnVuY3Rpb25PYmplY3QpOgorICAgICAg
ICAoV1RGKToKKyAgICAgICAgKFdURjo6Y2FsbE9uTWFpblRocmVhZCk6CisKIDIwMTItMDctMDQg
IFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAg
IFtRdF0gR2V0IHJpZCBvZiB1bi1uZWVkZWQgUVQgKz0gZGVjbGFyYXRpdmUgZm9yIFF0IDUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05V
bWFrZWZpbGUubGlzdC5hbQppbmRleCBjNWY0OGE2Y2U1NTlhMjRjYzIwYjcwNzU4ZGY4YmM0YTg0
ZGM5ZWVkLi5lYmE0NGI4YTg4MDczN2ViNDUxMjlhYjZmMDAwZDE4ZjMxZDMxYzYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVt
YWtlZmlsZS5saXN0LmFtCkBAIC0zNyw2ICszNywxMiBAQCB3dGZfc291cmNlcyArPSBcCiAgICAg
U291cmNlL1dURi93dGYvRGVjb2Rlci5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9EZXF1ZS5oIFwK
ICAgICBTb3VyY2UvV1RGL3d0Zi9EaXNhbGxvd0NUeXBlLmggXAorICAgIFNvdXJjZS9XVEYvd3Rm
L0Rpc3BhdGNoUXVldWUuY3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlLmgg
XAorICAgIFNvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgXAor
ICAgIFNvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oIFwKKyAgICBT
b3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCBcCisgICAg
U291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oIFwKICAgICBT
b3VyY2UvV1RGL3d0Zi9Eb3VibHlMaW5rZWRMaXN0LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0R5
bmFtaWNBbm5vdGF0aW9ucy5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL0R5bmFtaWNBbm5vdGF0
aW9ucy5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2UvV1RGL1dU
Ri5neXBpCmluZGV4IDg2NzU4NTUwNjFkMzc0ZWZhZmZlN2Q2MmUxNTNkZWIxMWJiYWQwMzkuLmMy
ZDVlYjQzNjk5MzYyNGU4ZWYyNjU5YTFlMzE1MjNjNWMxNjM3YTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvV1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtMTM3LDYgKzEzNywx
MiBAQAogICAgICAgICAgICAgJ3d0Zi9EYXRhTG9nLmNwcCcsCiAgICAgICAgICAgICAnd3RmL0Rh
dGVNYXRoLmNwcCcsCiAgICAgICAgICAgICAnd3RmL0RlY2ltYWxOdW1iZXIuY3BwJywKKyAgICAg
ICAgICAgICd3dGYvRGlzcGF0Y2hRdWV1ZS5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9EaXNwYXRj
aFF1ZXVlLmgnLAorICAgICAgICAgICAgJ3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMu
Y3BwJywKKyAgICAgICAgICAgICd3dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmgnLAor
ICAgICAgICAgICAgJ3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCcsCisg
ICAgICAgICAgICAnd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guaCcsCiAgICAg
ICAgICAgICAnd3RmL0R5bmFtaWNBbm5vdGF0aW9ucy5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9E
eW5hbWljQW5ub3RhdGlvbnMuaCcsCiAgICAgICAgICAgICAnd3RmL0Zhc3RNYWxsb2MuY3BwJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnBybyBiL1NvdXJjZS9XVEYvV1RGLnBybwppbmRl
eCAwOTYyZWYwYjUwYTUxN2JkMGUyZDQ1NjJkZjhkZWZkNmY1MWExZjA0Li42ODBhYjMyMjBjZTY0
MTU3OWQ3ZDEzMDAxZGFjNzIwZTIzMWRlMjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5w
cm8KKysrIGIvU291cmNlL1dURi9XVEYucHJvCkBAIC0xNzcsNiArMTc3LDkgQEAgU09VUkNFUyAr
PSBcCiAgICAgRGF0ZU1hdGguY3BwIFwKICAgICBEYXRhTG9nLmNwcCBcCiAgICAgRGVjaW1hbE51
bWJlci5jcHAgXAorICAgIERpc3BhdGNoUXVldWUuY3BwIFwKKyAgICBEaXNwYXRjaFF1ZXVlUHJp
dmF0ZUxpYmRpc3BhdGNoLmNwcCBcCisgICAgRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNw
cCBcCiAgICAgZHRvYS5jcHAgXAogICAgIGR0b2EvYmlnbnVtLWR0b2EuY2MgXAogICAgIGR0b2Ev
YmlnbnVtLmNjIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9q
IGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKaW5kZXggMjE5MGRhZTFlZmZlYWUz
Mzk1MzMyN2UzY2I3M2U3N2U2ZWU0NmQ1OC4uNGY2ZDUzYWRlY2M5MDQwZDI2NmUyMjM1YmQ2ZjZm
YTU4MDFiNWYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oK
KysrIGIvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2oKQEAgLTcwMSw2ICs3MDEsMzAg
QEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGlz
cGF0Y2hRdWV1ZS5jcHAiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0
aD0iLi5cd3RmXERpc3BhdGNoUXVldWUuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJ
UmVsYXRpdmVQYXRoPSIuLlx3dGZcRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCIKKwkJ
CT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGlzcGF0Y2hR
dWV1ZVByaXZhdGVHZW5lcmljLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0
aXZlUGF0aD0iLi5cd3RmXERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwIgorCQkJ
PgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxEaXNwYXRjaFF1
ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJCVJl
bGF0aXZlUGF0aD0iLi5cd3RmXERvdWJseUxpbmtlZExpc3QuaCIKIAkJCT4KIAkJPC9GaWxlPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzcyMDQ2MWUyNjQ2
NjFmYzhlOTQzNWU5MDg4MTY3NGJjZDFiNzY1OC4uZmI5YWY4ZDk3OWQ2MmVjMTZlNWIzNTA0MmRh
N2UwMzg3ZjY3N2JiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC00OCw2ICs0OCwxMiBAQAogCQlBOEE0NzNBNDE1MUE4MjVCMDA0MTIzRkYgLyogRGVjb2Rl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcy
N0QxNTFBODI1QTAwNDEyM0ZGIC8qIERlY29kZXIuaCAqLzsgfTsKIAkJQThBNDczQTUxNTFBODI1
QjAwNDEyM0ZGIC8qIERlcXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEE0NzI3RTE1MUE4MjVBMDA0MTIzRkYgLyogRGVxdWUuaCAqLzsgfTsKIAkJ
QThBNDczQTYxNTFBODI1QjAwNDEyM0ZGIC8qIERpc2FsbG93Q1R5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgyNUEwMDQxMjNG
RiAvKiBEaXNhbGxvd0NUeXBlLmggKi87IH07CisJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGOSAv
KiBEaXNwYXRjaFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgyNUEwMDQxMjNGRiAvKiBEaXNwYXRjaFF1ZXVlLmNwcCAq
LzsgfTsKKwkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZBIC8qIERpc3BhdGNoUXVldWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgy
NUEwMDQxMjNGRiAvKiBEaXNwYXRjaFF1ZXVlLmggKi87IH07CisJCUE4QTQ3M0E3MTUxQTgyNUIw
MDQxMjNGQiAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyN0YxNTFBODI1QTAwNDEyM0ZG
IC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgKi87IH07CisJCUE4QTQ3M0E3MTUx
QTgyNUIwMDQxMjNGQyAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdGMTUxQTgyNUEwMDQx
MjNGRiAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCAqLzsgfTsKKwkJQThBNDczQTcx
NTFBODI1QjAwNDEyM0ZEIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyN0YxNTFB
ODI1QTAwNDEyM0ZGIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwICovOyB9
OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJk
aXNwYXRjaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThBNDcyN0YxNTFBODI1QTAwNDEyM0ZGIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0
Y2guaCAqLzsgfTsKIAkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZGIC8qIERvdWJseUxpbmtlZExp
c3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3
MjgwMTUxQTgyNUEwMDQxMjNGRiAvKiBEb3VibHlMaW5rZWRMaXN0LmggKi87IH07CiAJCUE4QTQ3
M0E4MTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0tZHRvYS5jYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjgyMTUxQTgyNUEwMDQxMjNGRiAvKiBi
aWdudW0tZHRvYS5jYyAqLzsgfTsKIAkJQThBNDczQTkxNTFBODI1QjAwNDEyM0ZGIC8qIGJpZ251
bS1kdG9hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEE0NzI4MzE1MUE4MjVBMDA0MTIzRkYgLyogYmlnbnVtLWR0b2EuaCAqLzsgfTsKQEAgLTI5Myw2
ICsyOTksMTIgQEAKIAkJQThBNDcyN0QxNTFBODI1QTAwNDEyM0ZGIC8qIERlY29kZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVjb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBOEE0NzI3RTE1MUE4MjVBMDA0MTIzRkYgLyogRGVxdWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGVxdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQThBNDcyN0YxNTFBODI1QTAwNDEyM0ZGIC8qIERpc2FsbG93Q1R5cGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzYWxsb3dDVHlwZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRjkgLyogRGlzcGF0Y2hR
dWV1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BhdGNoUXVldWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIz
RkEgLyogRGlzcGF0Y2hRdWV1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
aXNwYXRjaFF1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4QTQ3MjgwMTUx
QTgyNUEwMDQxMjNGQiAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRkMg
LyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRkQgLyogRGlzcGF0Y2hRdWV1ZVBy
aXZhdGVMaWJkaXNwYXRjaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERp
c3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVM
aWJkaXNwYXRjaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwYXRjaFF1
ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4
QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRiAvKiBEb3VibHlMaW5rZWRMaXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvdWJseUxpbmtlZExpc3QuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQThBNDcyODIxNTFBODI1QTAwNDEyM0ZGIC8qIGJpZ251bS1kdG9hLmNj
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gImJpZ251bS1kdG9hLmNjIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyODMxNTFBODI1QTAwNDEyM0ZGIC8q
IGJpZ251bS1kdG9hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9ICJiaWdudW0t
ZHRvYS5oIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4Myw2ICs1OTUsMTIgQEAK
IAkJCQlBOEE0NzI3RDE1MUE4MjVBMDA0MTIzRkYgLyogRGVjb2Rlci5oICovLAogCQkJCUE4QTQ3
MjdFMTUxQTgyNUEwMDQxMjNGRiAvKiBEZXF1ZS5oICovLAogCQkJCUE4QTQ3MjdGMTUxQTgyNUEw
MDQxMjNGRiAvKiBEaXNhbGxvd0NUeXBlLmggKi8sCisJCQkJQThBNDcyODAxNTFBODI1QTAwNDEy
M0Y5IC8qIERpc3BhdGNoUXVldWUuY3BwICovLAorCQkJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNG
QSAvKiBEaXNwYXRjaFF1ZXVlLmggKi8sCisJCQkJQThBNDcyODAxNTFBODI1QTAwNDEyM0ZCIC8q
IERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgKi8sCisJCQkJQThBNDcyODAxNTFBODI1
QTAwNDEyM0ZDIC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oICovLAorCQkJCUE4QTQ3
MjgwMTUxQTgyNUEwMDQxMjNGRCAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNw
cCAqLywKKwkJCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZh
dGVMaWJkaXNwYXRjaC5oICovLAogCQkJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRiAvKiBEb3Vi
bHlMaW5rZWRMaXN0LmggKi8sCiAJCQkJQThBNDcyODExNTFBODI1QTAwNDEyM0ZGIC8qIGR0b2Eg
Ki8sCiAJCQkJQThBNDcyOTcxNTFBODI1QTAwNDEyM0ZGIC8qIGR0b2EuY3BwICovLApAQCAtODkz
LDYgKzkxMSw5IEBACiAJCQkJQThBNDczQTQxNTFBODI1QjAwNDEyM0ZGIC8qIERlY29kZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0E1MTUxQTgyNUIwMDQxMjNGRiAvKiBEZXF1ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQTYxNTFBODI1QjAwNDEyM0ZGIC8qIERpc2FsbG93Q1R5
cGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGQSAvKiBEaXNw
YXRjaFF1ZXVlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkMg
LyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEE0
NzNBNzE1MUE4MjVCMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZGIC8qIERvdWJseUxp
bmtlZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0E5MTUxQTgyNUIwMDQxMjNGRiAv
KiBiaWdudW0tZHRvYS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQUIxNTFBODI1QjAwNDEy
M0ZGIC8qIGJpZ251bS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTM4LDYgKzExNTksOSBAQAogCQkJ
CUE4QTQ3MzlFMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRhTG9nLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QTQ3M0EwMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRlTWF0aC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzNBMjE1MUE4MjVCMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRjkgLyogRGlzcGF0Y2hRdWV1
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkIgLyogRGlz
cGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4QTQ3M0E3
MTUxQTgyNUIwMDQxMjNGRCAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0E4MTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0tZHRv
YS5jYyBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0FBMTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdu
dW0uY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNBQzE1MUE4MjVCMDA0MTIzRkYgLyogY2Fj
aGVkLXBvd2Vycy5jYyBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCAyNzRm
MDRjOTc0OTMxOWFlZjQ4MDQ0NzkxNmRkMjI4MjcyNTA4NjhmLi41NTgzNTU3MjI4OTU0OGJlZGY5
ODhhMDNmOWE5ZDcxNzgxYWE5MmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxp
c3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMjAsNiArMjAs
OSBAQCBTRVQoV1RGX0hFQURFUlMKICAgICBEZWNvZGVyLmgKICAgICBEZXF1ZS5oCiAgICAgRGlz
YWxsb3dDVHlwZS5oCisgICAgRGlzcGF0Y2hRdWV1ZS5oCisgICAgRGlzcGF0Y2hRdWV1ZVByaXZh
dGVHZW5lcmljLmgKKyAgICBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgKICAgICBE
b3VibHlMaW5rZWRMaXN0LmgKICAgICBEeW5hbWljQW5ub3RhdGlvbnMuaAogICAgIEVuY29kZXIu
aApAQCAtMTQyLDYgKzE0NSw5IEBAIFNFVChXVEZfU09VUkNFUwogICAgIERhdGVNYXRoLmNwcAog
ICAgIERhdGFMb2cuY3BwCiAgICAgRGVjaW1hbE51bWJlci5jcHAKKyAgICBEaXNwYXRjaFF1ZXVl
LmNwcAorICAgIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwCisgICAgRGlzcGF0
Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcAogICAgIER5bmFtaWNBbm5vdGF0aW9ucy5jcHAKICAg
ICBGYXN0TWFsbG9jLmNwcAogICAgIEhhc2hUYWJsZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0Rpc3BhdGNoUXVldWUuY3BwIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmQ5ZWEzNjYyMmUyNzA5YWMwNjY4MWExYzUxYWZkYzcwM2I2MmZhMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWUuY3BwCkBAIC0w
LDAgKzEsMTE3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAwIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpc3BhdGNoUXVldWUuaCIK
KworI2lmIEVOQUJMRShUSFJFQURJTkdfTElCRElTUEFUQ0gpCisjaW5jbHVkZSAiRGlzcGF0Y2hR
dWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oIgorI2Vsc2UKKyNpbmNsdWRlICJEaXNwYXRjaFF1ZXVl
UHJpdmF0ZUdlbmVyaWMuaCIKKyNlbmRpZgorCisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4K
KyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBEaXNw
YXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTsKK2NsYXNzIERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRl
OworCitEaXNwYXRjaFF1ZXVlKiBEaXNwYXRjaFF1ZXVlOjpzX2dsb2JhbFF1ZXVlOworRGlzcGF0
Y2hRdWV1ZSogRGlzcGF0Y2hRdWV1ZTo6c19tYWluUXVldWU7CisKK2NsYXNzIERpc3BhdGNoTWFp
blF1ZXVlIDogcHVibGljIERpc3BhdGNoUXVldWUgeworcHVibGljOgorICAgIGZyaWVuZCBjbGFz
cyBEaXNwYXRjaFF1ZXVlOworICAgIHZpcnR1YWwgfkRpc3BhdGNoTWFpblF1ZXVlKCkgeyB9CisK
KyAgICAvLyBJbiBjYXNlIG9mIHRoZSBtYWluIHF1ZXVlLCB3ZSBzaW1wbHkgcmV1c2UgY2FsbE9u
TWFpblRocmVhZC4KKyAgICB2aXJ0dWFsIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgp
PiYgZnVuY3Rpb24pCisgICAgeworICAgICAgICBjYWxsT25NYWluVGhyZWFkKGZ1bmN0aW9uKTsK
KyAgICB9CisKKworcHJpdmF0ZToKKyAgICBEaXNwYXRjaE1haW5RdWV1ZSgpIHsgfQorfTsKKwor
Y2xhc3MgRGlzcGF0Y2hHbG9iYWxRdWV1ZSA6IHB1YmxpYyBEaXNwYXRjaFF1ZXVlIHsKK3B1Ymxp
YzoKKyAgICBmcmllbmQgY2xhc3MgRGlzcGF0Y2hRdWV1ZTsKKyAgICB2aXJ0dWFsIH5EaXNwYXRj
aEdsb2JhbFF1ZXVlKCkgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rp
b248dm9pZCgpPiYgZnVuY3Rpb24pCisgICAgeworICAgICAgICBtX3ByaXZhdGUtPmFzeW5jKGZ1
bmN0aW9uKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRGlzcGF0Y2hHbG9iYWxRdWV1ZSgpCisg
ICAgICAgIDogbV9wcml2YXRlKERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjpjcmVhdGUoKSkg
eyB9CisKKyAgICBPd25QdHI8RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU+IG1fcHJpdmF0ZTsK
K307CisKK2NsYXNzIERpc3BhdGNoU2VyaWFsUXVldWUgOiBwdWJsaWMgRGlzcGF0Y2hRdWV1ZSB7
CitwdWJsaWM6CisgICAgZnJpZW5kIGNsYXNzIERpc3BhdGNoUXVldWU7CisgICAgdmlydHVhbCB+
RGlzcGF0Y2hTZXJpYWxRdWV1ZSgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGFzeW5jKGNvbnN0
IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQorICAgIHsKKyAgICAgICAgbV9wcml2YXRlLT5h
c3luYyhmdW5jdGlvbik7CisgICAgfQorCitwcml2YXRlOgorICAgIERpc3BhdGNoU2VyaWFsUXVl
dWUoKQorICAgICAgICA6IG1fcHJpdmF0ZShEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6Y3Jl
YXRlKCkpIHsgfQorCisgICAgT3duUHRyPERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlPiBtX3By
aXZhdGU7Cit9OworCitEaXNwYXRjaFF1ZXVlKiBEaXNwYXRjaFF1ZXVlOjpnbG9iYWxRdWV1ZSgp
Cit7CisgICAgcmV0dXJuIHNfZ2xvYmFsUXVldWU7Cit9CisKK0Rpc3BhdGNoUXVldWUqIERpc3Bh
dGNoUXVldWU6Om1haW5RdWV1ZSgpCit7CisgICAgcmV0dXJuIHNfbWFpblF1ZXVlOworfQorCit2
b2lkIERpc3BhdGNoUXVldWU6OmluaXRpYWxpemVEaXNwYXRjaFF1ZXVlKCkKK3sKKyAgICBzX21h
aW5RdWV1ZSA9IG5ldyBEaXNwYXRjaE1haW5RdWV1ZSgpOworICAgIHNfZ2xvYmFsUXVldWUgPSBu
ZXcgRGlzcGF0Y2hHbG9iYWxRdWV1ZSgpOworfQorCitQYXNzUmVmUHRyPERpc3BhdGNoUXVldWU+
IERpc3BhdGNoUXVldWU6OmNyZWF0ZVNlcmlhbFF1ZXVlKCkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IERpc3BhdGNoU2VyaWFsUXVldWUoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZS5oIGIvU291cmNlL1dURi93
dGYvRGlzcGF0Y2hRdWV1ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjYzM2YmY0YzI0OTAwYTQ4ZTMyNzIxM2Q0
ZTBlYjc5N2ZlNWFjZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRj
aFF1ZXVlLmgKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21w
YW55IDEwMCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRGlzcGF0Y2hRdWV1ZV9oCisjZGVmaW5lIERp
c3BhdGNoUXVldWVfaAorCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdURiB7CisKKy8vIFRoaXMg
Y2xhc3MgaXMgYSBzaW1wbGUgd3JhcHBlciBhcm91bmQgbGliZGlzcGF0Y2guCisvLyBXZSBhbHNv
IHByb3ZpZGUgYSBnZW5lcmljICh0aHJlYWQgcG9vbCkgaW1wbGVtZW5ldGF0aW9uIHNvIHRoYXQK
Ky8vIGFsbCB0aGUgcG9ydHMgY2FuIHVzZSB0aGUgc2FtZSBBUEkuCitjbGFzcyBEaXNwYXRjaFF1
ZXVlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPERpc3BhdGNoUXVldWU+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplRGlzcGF0Y2hRdWV1ZSgpOworICAgIHN0YXRp
YyBEaXNwYXRjaFF1ZXVlKiBnbG9iYWxRdWV1ZSgpOworICAgIHN0YXRpYyBEaXNwYXRjaFF1ZXVl
KiBtYWluUXVldWUoKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBjcmVh
dGVTZXJpYWxRdWV1ZSgpOworCisgICAgdmlydHVhbCB+RGlzcGF0Y2hRdWV1ZSgpIHsgfQorCisg
ICAgdmlydHVhbCB2b2lkIGFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKSA9IDA7CisKK3By
b3RlY3RlZDoKKyAgICBzdGF0aWMgRGlzcGF0Y2hRdWV1ZSogc19nbG9iYWxRdWV1ZTsKKyAgICBz
dGF0aWMgRGlzcGF0Y2hRdWV1ZSogc19tYWluUXVldWU7CisKKyAgICBEaXNwYXRjaFF1ZXVlKCkg
eyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpEaXNwYXRjaFF1ZXVl
OworCisjZW5kaWYgLy8gRGlzcGF0Y2hRdWV1ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwIGIvU291cmNlL1dURi93dGYvRGlzcGF0
Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNWM3ZDU4OWE2MDIxOTJhNjQy
ZWJkNGQ2MDEyOGRiMzk1NmMxZjZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYv
RGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcApAQCAtMCwwICsxLDI2NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKworI2lmICFFTkFCTEUoVEhSRUFESU5HX0xJQkRJU1BBVENIKQorCisjaW5jbHVk
ZSAiRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmgiCisKKyNpbmNsdWRlIDxsaW1pdHM+Cisj
aW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTnVtYmVyT2ZDb3Jlcy5o
PgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisK
K25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBFeGVjdXRvclBvb2w7CisKK2NsYXNzIEV4ZWN1dG9y
IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFeGVjdXRvcik7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgRXhlY3V0b3IoKTsKKyAgICB+RXhlY3V0b3IoKTsK
KworICAgIHZvaWQgZXhlY3V0ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CisKKyAgICBzdGF0
aWMgdm9pZCB3b3JrZXJUaHJlYWQodm9pZCopOworCisgICAgdm9pZCBhY3F1aXJlKCkgeyBtX2Fj
cXVpcmVDb3VudCsrOyB9CisgICAgdm9pZCByZWxlYXNlKCkgeyBtX2FjcXVpcmVDb3VudC0tOyB9
CisgICAgaW50IGFjcXVpcmVDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNxdWlyZUNvdW50OyB9
CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX3J1bm5pbmc7CisgICAgaW50IG1fYWNxdWlyZUNvdW50
OworCisgICAgTXV0ZXggbV9tdXRleDsKKyAgICBUaHJlYWRDb25kaXRpb24gbV9mdW5jdGlvblF1
ZXVlRW1wdHlDb25kaXRpb247CisgICAgVmVjdG9yPEZ1bmN0aW9uPHZvaWQoKT4gPiBtX2Z1bmN0
aW9uUXVldWU7Cit9OworCitFeGVjdXRvcjo6RXhlY3V0b3IoKQorICAgIDogbV9ydW5uaW5nKHRy
dWUpCisgICAgLCBtX2FjcXVpcmVDb3VudCgxKQoreworICAgIC8vIFdlIG5lZWQgYSBtdXRleCBo
ZXJlIGZvciB2aXNpYmlsaXR5IGluIEV4ZWN1dG9yOjp3b3JrZXJUaHJlYWQuCisgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIFRocmVhZElkZW50aWZpZXIgdGhyZWFkSUQgPSBj
cmVhdGVUaHJlYWQoJkV4ZWN1dG9yOjp3b3JrZXJUaHJlYWQsIHRoaXMsICJFeGVjdXRvciB3b3Jr
ZXIiKTsKKyAgICBkZXRhY2hUaHJlYWQodGhyZWFkSUQpOworfQorCitFeGVjdXRvcjo6fkV4ZWN1
dG9yKCkKK3sKKyAgICAvLyBPbmNlIHdlIGNyZWF0ZSBhbiBleGVjdXRvciwgd2UgbmV2ZXIgZGVz
dHJveXMgaXQuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgRXhlY3V0b3I6
OmV4ZWN1dGUoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCit7CisgICAgTXV0ZXhM
b2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAgIG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQoZnVuY3Rp
b24pOworCisgICAgbV9mdW5jdGlvblF1ZXVlRW1wdHlDb25kaXRpb24uc2lnbmFsKCk7Cit9CisK
K3ZvaWQgRXhlY3V0b3I6OndvcmtlclRocmVhZCh2b2lkKiB0aHJlYWREYXRhKQoreworICAgIEV4
ZWN1dG9yKiBleGVjdXRvciA9IHJlaW50ZXJwcmV0X2Nhc3Q8RXhlY3V0b3IqPih0aHJlYWREYXRh
KTsKKworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+
ID4gZnVuY3Rpb25RdWV1ZTsKKyAgICAgICAgeworICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9j
a2VyKGV4ZWN1dG9yLT5tX211dGV4KTsKKyAgICAgICAgICAgIGlmIChVTkxJS0VMWSghZXhlY3V0
b3ItPm1fcnVubmluZykpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgd2hp
bGUgKGV4ZWN1dG9yLT5tX2Z1bmN0aW9uUXVldWUuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAg
IGV4ZWN1dG9yLT5tX2Z1bmN0aW9uUXVldWVFbXB0eUNvbmRpdGlvbi53YWl0KGV4ZWN1dG9yLT5t
X211dGV4KTsKKyAgICAgICAgICAgIGV4ZWN1dG9yLT5tX2Z1bmN0aW9uUXVldWUuc3dhcChmdW5j
dGlvblF1ZXVlKTsKKyAgICAgICAgfQorCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
ZnVuY3Rpb25RdWV1ZS5zaXplKCk7ICsraSkKKyAgICAgICAgICAgIGZ1bmN0aW9uUXVldWVbaV0o
KTsKKyAgICB9Cit9CisKK2NsYXNzIEV4ZWN1dG9yUG9vbCB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoRXhlY3V0b3JQb29sKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplRXhlY3V0b3JQb29sKCk7CisKKyAgICBmcmll
bmQgRXhlY3V0b3JQb29sKiBleGVjdXRvclBvb2woKTsKKyAgICB+RXhlY3V0b3JQb29sKCk7CisK
KyAgICB2b2lkIGV4ZWN1dGUoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOworICAgIEV4ZWN1dG9y
KiBhY3F1aXJlU2VyaWFsRXhlY3V0b3IoKTsKKyAgICB2b2lkIHJlbGVhc2VTZXJpYWxFeGVjdXRv
cihFeGVjdXRvciopOworCitwcml2YXRlOgorICAgIHN0YXRpYyBFeGVjdXRvclBvb2wqIHNfZXhl
Y3V0b3JQb29sOworICAgIEV4ZWN1dG9yUG9vbCgpOworICAgIEV4ZWN1dG9yKiBuZXh0RXhlY3V0
b3IoKTsKKyAgICBFeGVjdXRvciogc2VyaWFsRXhlY3V0b3JXaXRoTWluaW11bUFjcXVpcmVDb3Vu
dCgpOworCisgICAgTXV0ZXggbV9tdXRleDsKKyAgICBWZWN0b3I8RXhlY3V0b3IqPiBtX2V4ZWN1
dG9yUG9vbDsKK307CisKK0V4ZWN1dG9yUG9vbCogRXhlY3V0b3JQb29sOjpzX2V4ZWN1dG9yUG9v
bDsKKwordm9pZCBFeGVjdXRvclBvb2w6OmluaXRpYWxpemVFeGVjdXRvclBvb2woKQoreworICAg
IGlmICghc19leGVjdXRvclBvb2wpCisgICAgICAgIHNfZXhlY3V0b3JQb29sID0gbmV3IEV4ZWN1
dG9yUG9vbDsKK30KKworRXhlY3V0b3JQb29sKiBleGVjdXRvclBvb2woKQoreworICAgIHJldHVy
biBFeGVjdXRvclBvb2w6OnNfZXhlY3V0b3JQb29sOworfQorCitFeGVjdXRvclBvb2w6OkV4ZWN1
dG9yUG9vbCgpCit7CisgICAgbV9leGVjdXRvclBvb2wucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShu
dW1iZXJPZlByb2Nlc3NvckNvcmVzKCkpOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbnVtYmVy
T2ZQcm9jZXNzb3JDb3JlcygpOyBpKyspCisgICAgICAgIG1fZXhlY3V0b3JQb29sLmFwcGVuZChu
ZXcgRXhlY3V0b3IoKSk7Cit9CisKK0V4ZWN1dG9yUG9vbDo6fkV4ZWN1dG9yUG9vbCgpCit7Cit9
CisKK3ZvaWQgRXhlY3V0b3JQb29sOjpleGVjdXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1
bmN0aW9uKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBuZXh0RXhl
Y3V0b3IoKS0+ZXhlY3V0ZShmdW5jdGlvbik7Cit9CisKK0V4ZWN1dG9yKiBFeGVjdXRvclBvb2w6
Om5leHRFeGVjdXRvcigpCit7CisgICAgc3RhdGljIHVuc2lnbmVkIGxvbmcgbmV4dCA9IDA7Cisg
ICAgaW50IGluZGV4ID0gbmV4dCAlIG1fZXhlY3V0b3JQb29sLnNpemUoKTsKKyAgICBuZXh0Kys7
CisgICAgcmV0dXJuIG1fZXhlY3V0b3JQb29sW2luZGV4XTsKK30KKworRXhlY3V0b3IqIEV4ZWN1
dG9yUG9vbDo6YWNxdWlyZVNlcmlhbEV4ZWN1dG9yKCkKK3sKKyAgICBNdXRleExvY2tlciBsb2Nr
ZXIobV9tdXRleCk7CisgICAgRXhlY3V0b3IqIGV4ZWN1dG9yID0gc2VyaWFsRXhlY3V0b3JXaXRo
TWluaW11bUFjcXVpcmVDb3VudCgpOworICAgIGV4ZWN1dG9yLT5hY3F1aXJlKCk7CisgICAgcmV0
dXJuIGV4ZWN1dG9yOworfQorCit2b2lkIEV4ZWN1dG9yUG9vbDo6cmVsZWFzZVNlcmlhbEV4ZWN1
dG9yKEV4ZWN1dG9yKiBleGVjdXRvcikKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRl
eCk7CisgICAgZXhlY3V0b3ItPnJlbGVhc2UoKTsKK30KKworLy8gRklYTUU6IFdlIHNpbXBseSBy
ZXR1cm5zIHRoZSBleGVjdXRvciB3aXRoIHRoZSBtaW5pbXVtIGFjcXVpcmUgY291bnRzLgorLy8g
VGhpcyB2YWx1ZSBkb2VzIG5vdCByZWZsZWN0IHRoZSByZWFsIHN5c3RlbSBsb2FkLgorRXhlY3V0
b3IqIEV4ZWN1dG9yUG9vbDo6c2VyaWFsRXhlY3V0b3JXaXRoTWluaW11bUFjcXVpcmVDb3VudCgp
Cit7CisgICAgaW50IG1pbmltdW1BY3F1aXJlQ291bnQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPGlu
dD46Om1heCgpOworICAgIGludCBpbmRleCA9IG1fZXhlY3V0b3JQb29sLnNpemUoKTsKKworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9leGVjdXRvclBvb2wuc2l6ZSgpOyBpKyspIHsKKyAg
ICAgICAgaWYgKG1fZXhlY3V0b3JQb29sW2ldLT5hY3F1aXJlQ291bnQoKSA8IG1pbmltdW1BY3F1
aXJlQ291bnQpIHsKKyAgICAgICAgICAgIG1pbmltdW1BY3F1aXJlQ291bnQgPSBtX2V4ZWN1dG9y
UG9vbFtpXS0+YWNxdWlyZUNvdW50KCk7CisgICAgICAgICAgICBpbmRleCA9IGk7CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBBU1NFUlQoaW5kZXggPCBtX2V4ZWN1dG9yUG9vbC5zaXplKCkpOwor
ICAgIHJldHVybiBtX2V4ZWN1dG9yUG9vbFtpbmRleF07Cit9CisKK0Rpc3BhdGNoR2xvYmFsUXVl
dWVQcml2YXRlOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpCit7CisgICAgRXhlY3V0b3JQ
b29sOjppbml0aWFsaXplRXhlY3V0b3JQb29sKCk7Cit9CisKK0Rpc3BhdGNoR2xvYmFsUXVldWVQ
cml2YXRlOjp+RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKQoreworICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworfQorCit2b2lkIERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjphc3luYyhj
b25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKK3sKKyAgICBleGVjdXRvclBvb2woKS0+
ZXhlY3V0ZShmdW5jdGlvbik7Cit9CisKK0Rpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjpEaXNw
YXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSgpCisgICAgOiBtX2V4ZWN1dG9yU3RhdHVzKFJ1bm5pbmcp
Cit7CisgICAgbV9zZXJpYWxFeGVjdXRvciA9IGV4ZWN1dG9yUG9vbCgpLT5hY3F1aXJlU2VyaWFs
RXhlY3V0b3IoKTsKK30KKworRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6On5EaXNwYXRjaFNl
cmlhbFF1ZXVlUHJpdmF0ZSgpCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZXhlY3V0b3JT
dGF0dXNNdXRleCk7CisgICAgbV9leGVjdXRvclN0YXR1cyA9IFRlcm1pbmF0aW9uQmVndW47CisK
KyAgICBtX3NlcmlhbEV4ZWN1dG9yLT5leGVjdXRlKGJpbmQoJkRpc3BhdGNoU2VyaWFsUXVldWVQ
cml2YXRlOjplbnN1cmVUZXJtaW5hdGUsIHRoaXMpKTsKKyAgICB3aGlsZSAobV9leGVjdXRvclN0
YXR1cyAhPSBUZXJtaW5pYXRpb25Db21wbGV0ZWQpCisgICAgICAgIG1fdGVybWluYXRpb25Db21w
bGV0ZWQud2FpdChtX2V4ZWN1dG9yU3RhdHVzTXV0ZXgpOworICAgIGV4ZWN1dG9yUG9vbCgpLT5y
ZWxlYXNlU2VyaWFsRXhlY3V0b3IobV9zZXJpYWxFeGVjdXRvcik7Cit9CisKK3ZvaWQgRGlzcGF0
Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmVuc3VyZVRlcm1pbmF0ZSgpCit7CisgICAgTXV0ZXhMb2Nr
ZXIgbG9ja2VyKG1fZXhlY3V0b3JTdGF0dXNNdXRleCk7CisgICAgQVNTRVJUKG1fZXhlY3V0b3JT
dGF0dXMgPT0gVGVybWluYXRpb25CZWd1bik7CisgICAgbV9leGVjdXRvclN0YXR1cyA9IFRlcm1p
bmlhdGlvbkNvbXBsZXRlZDsKKyAgICBtX3Rlcm1pbmF0aW9uQ29tcGxldGVkLnNpZ25hbCgpOwor
fQorCitzdGF0aWMgdm9pZCBjYW5jZWxhYmxlRnVuY3Rpb24oRGlzcGF0Y2hTZXJpYWxRdWV1ZVBy
aXZhdGUqIHNlcmlhbFF1ZXVlLCBjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKK3sK
KyAgICBpZiAoVU5MSUtFTFkoc2VyaWFsUXVldWUtPmhhc1Rlcm1pbmF0aW9uQmVndW4oKSkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGZ1bmN0aW9uKCk7Cit9CisKK3ZvaWQgRGlzcGF0Y2hTZXJp
YWxRdWV1ZVByaXZhdGU6OmFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQor
eworICAgIEFTU0VSVChtX2V4ZWN1dG9yU3RhdHVzID09IFJ1bm5pbmcpOworICAgIG1fc2VyaWFs
RXhlY3V0b3ItPmV4ZWN1dGUoYmluZChjYW5jZWxhYmxlRnVuY3Rpb24sIHRoaXMsIGZ1bmN0aW9u
KSk7Cit9CisKK2Jvb2wgRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6Omhhc1Rlcm1pbmF0aW9u
QmVndW4oKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2V4ZWN1dG9yU3RhdHVzTXV0ZXgp
OworICAgIEFTU0VSVChtX2V4ZWN1dG9yU3RhdHVzICE9IFRlcm1pbmlhdGlvbkNvbXBsZXRlZCk7
CisgICAgcmV0dXJuIG1fZXhlY3V0b3JTdGF0dXMgPT0gVGVybWluYXRpb25CZWd1bjsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBFTkFCTEUoVEhSRUFESU5HX0xJQkRJU1BB
VENIKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5l
cmljLmggYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zZmU0OWE2MTQ4ZTRhZjMyZmM2MDAyMWM3ODEyMThjNTg1NmE3N2JkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmgK
QEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljX2gKKyNkZWZp
bmUgRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljX2gKKworI2lmICFFTkFCTEUoVEhSRUFESU5H
X0xJQkRJU1BBVENIKQorCisjaW5jbHVkZSAiRGlzcGF0Y2hRdWV1ZS5oIgorCisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIERpc3BhdGNoR2xv
YmFsUXVldWVQcml2YXRlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEaXNwYXRjaEdsb2Jh
bFF1ZXVlUHJpdmF0ZSk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NPd25QdHI8RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU+IGNyZWF0ZSgp
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERpc3BhdGNoR2xvYmFsUXVldWVQ
cml2YXRlKCkpOworICAgIH0KKworICAgIH5EaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpOwor
CisgICAgdm9pZCBhc3luYyhjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CisKK3ByaXZhdGU6Cisg
ICAgRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKTsKK307CisKK2NsYXNzIEV4ZWN1dG9yOwor
CitjbGFzcyBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUpOworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPERpc3BhdGNoU2VyaWFsUXVl
dWVQcml2YXRlPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBE
aXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSgpKTsKKyAgICB9CisKKyAgICB+RGlzcGF0Y2hTZXJp
YWxRdWV1ZVByaXZhdGUoKTsKKworICAgIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgp
PiYpOworCisgICAgYm9vbCBoYXNUZXJtaW5hdGlvbkJlZ3VuKCk7CisKK3ByaXZhdGU6CisgICAg
RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUoKTsKKyAgICB2b2lkIGVuc3VyZVRlcm1pbmF0ZSgp
OworCisgICAgZW51bSBFeGVjdXRvclN0YXR1cyB7IFJ1bm5pbmcsIFRlcm1pbmF0aW9uQmVndW4s
IFRlcm1pbmlhdGlvbkNvbXBsZXRlZCB9OworICAgIE11dGV4IG1fZXhlY3V0b3JTdGF0dXNNdXRl
eDsKKyAgICBFeGVjdXRvclN0YXR1cyBtX2V4ZWN1dG9yU3RhdHVzOworICAgIFRocmVhZENvbmRp
dGlvbiBtX3Rlcm1pbmF0aW9uQ29tcGxldGVkOworCisgICAgRXhlY3V0b3IqIG1fc2VyaWFsRXhl
Y3V0b3I7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vICFFTkFCTEUoVEhS
RUFESU5HX0xJQkRJU1BBVENIKQorCisjZW5kaWYgLy8gRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5l
cmljX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGli
ZGlzcGF0Y2guY3BwIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNw
YXRjaC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk5N2NhZWMwNmMzN2NjYzc5MmZiZDY1ODA2ZDY1NTVhM2Zm
NTVjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2
YXRlTGliZGlzcGF0Y2guY3BwCkBAIC0wLDAgKzEsMTI1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIENvbXBhbnkgMTAwIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisj
aWYgRU5BQkxFKFRIUkVBRElOR19MSUJESVNQQVRDSCkKKworI2luY2x1ZGUgIkRpc3BhdGNoUXVl
dWVQcml2YXRlTGliZGlzcGF0Y2guaCIKKworbmFtZXNwYWNlIFdURiB7CisKK0Rpc3BhdGNoR2xv
YmFsUXVldWVQcml2YXRlOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpCit7CisgICAgbV9k
aXNwYXRjaFF1ZXVlID0gZGlzcGF0Y2hfZ2V0X2dsb2JhbF9xdWV1ZShESVNQQVRDSF9RVUVVRV9Q
UklPUklUWV9ERUZBVUxULCAwKTsKK30KKworRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6On5E
aXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Cit9CisKK3N0cnVjdCBGdW5jdGlvbkJveCB7CisgICAgRnVuY3Rpb25Cb3goY29uc3QgRnVuY3Rp
b248dm9pZCgpPiYgZnVuY3Rpb24pCisgICAgICAgIDogbV9mdW5jdGlvbihmdW5jdGlvbikKKyAg
ICB7CisgICAgfQorCisgICAgRnVuY3Rpb248dm9pZCgpPiBtX2Z1bmN0aW9uOworfTsKKwordm9p
ZCBEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6YXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgp
PiYgZnVuY3Rpb24pCit7CisgICAgRnVuY3Rpb25Cb3gqIGJveCA9IG5ldyBGdW5jdGlvbkJveChm
dW5jdGlvbik7CisgICAgZGlzcGF0Y2hfYXN5bmNfZihtX2Rpc3BhdGNoUXVldWUsIHJlaW50ZXJw
cmV0X2Nhc3Q8dm9pZCo+KGJveCksICZEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6aW52b2tl
RnVuY3Rpb24pOworfQorCit2b2lkIERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjppbnZva2VG
dW5jdGlvbih2b2lkKiBjb250ZXh0KQoreworICAgIEZ1bmN0aW9uQm94KiBib3ggPSByZWludGVy
cHJldF9jYXN0PEZ1bmN0aW9uQm94Kj4oY29udGV4dCk7CisgICAgYm94LT5tX2Z1bmN0aW9uKCk7
CisgICAgZGVsZXRlIGJveDsKK30KKworRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OkRpc3Bh
dGNoU2VyaWFsUXVldWVQcml2YXRlKCkKKyAgICA6IG1faGFzVGVybWluYXRpb25CZWd1bihmYWxz
ZSkKK3sKKyAgICBtX2Rpc3BhdGNoR3JvdXAgPSBkaXNwYXRjaF9ncm91cF9jcmVhdGUoKTsKKyAg
ICBtX2Rpc3BhdGNoUXVldWUgPSBkaXNwYXRjaF9xdWV1ZV9jcmVhdGUoMCwgMCk7Cit9CisKK0Rp
c3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjp+RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUoKQor
eworICAgIHRlcm1pbmF0ZSgpOworICAgIGRpc3BhdGNoX3JlbGVhc2UobV9kaXNwYXRjaEdyb3Vw
KTsKKyAgICBkaXNwYXRjaF9yZWxlYXNlKG1fZGlzcGF0Y2hRdWV1ZSk7Cit9CisKK3ZvaWQgRGlz
cGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OnRlcm1pbmF0ZSgpCit7CisgICAgeworICAgICAgICBN
dXRleExvY2tlciBsb2NrZXIobV9oYXNUZXJtaW5hdGlvbkJlZ3VuTXV0ZXgpOworICAgICAgICBt
X2hhc1Rlcm1pbmF0aW9uQmVndW4gPSB0cnVlOworICAgIH0KKyAgICBkaXNwYXRjaF9ncm91cF93
YWl0KG1fZGlzcGF0Y2hHcm91cCwgRElTUEFUQ0hfVElNRV9GT1JFVkVSKTsKK30KKworc3RydWN0
IENhbmNlbGFibGVGdW5jdGlvbkJveCB7CisgICAgQ2FuY2VsYWJsZUZ1bmN0aW9uQm94KGNvbnN0
IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uLCBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSog
cXVldWUpCisgICAgICAgIDogbV9mdW5jdGlvbihmdW5jdGlvbikKKyAgICAgICAgLCBtX3F1ZXVl
KHF1ZXVlKQorICAgIHsKKyAgICB9CisKKyAgICBGdW5jdGlvbjx2b2lkKCk+IG1fZnVuY3Rpb247
CisgICAgRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUqIG1fcXVldWU7Cit9OworCit2b2lkIERp
c3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjppbnZva2VGdW5jdGlvbih2b2lkKiBjb250ZXh0KQor
eworICAgIENhbmNlbGFibGVGdW5jdGlvbkJveCogYm94ID0gcmVpbnRlcnByZXRfY2FzdDxDYW5j
ZWxhYmxlRnVuY3Rpb25Cb3gqPihjb250ZXh0KTsKKworICAgIGJvb2wgaXNDYW5jZWxlZDsKKyAg
ICB7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihib3gtPm1fcXVldWUtPm1faGFzVGVybWlu
YXRpb25CZWd1bk11dGV4KTsKKyAgICAgICAgaXNDYW5jZWxlZCA9IGJveC0+bV9xdWV1ZS0+bV9o
YXNUZXJtaW5hdGlvbkJlZ3VuOworICAgIH0KKyAgICBpZiAoTElLRUxZKCFpc0NhbmNlbGVkKSkK
KyAgICAgICAgYm94LT5tX2Z1bmN0aW9uKCk7CisKKyAgICBkZWxldGUgYm94OworfQorCit2b2lk
IERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjphc3luYyhjb25zdCBGdW5jdGlvbjx2b2lkKCk+
JiBmdW5jdGlvbikKK3sKKyAgICBBU1NFUlQoIW1faGFzVGVybWluYXRpb25CZWd1bik7CisKKyAg
ICBDYW5jZWxhYmxlRnVuY3Rpb25Cb3gqIGJveCA9IG5ldyBDYW5jZWxhYmxlRnVuY3Rpb25Cb3go
ZnVuY3Rpb24sIHRoaXMpOworICAgIGRpc3BhdGNoX2dyb3VwX2FzeW5jX2YobV9kaXNwYXRjaEdy
b3VwLCBtX2Rpc3BhdGNoUXVldWUsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGJveCksICZEaXNw
YXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6aW52b2tlRnVuY3Rpb24pOworfQorCit9IC8vIG5hbWVz
cGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShUSFJFQURJTkdfTElCRElTUEFUQ0gpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZWM5MDdmZWVkNjc2NjIzZWQ0NzNhOWMxOGNjOTAwMjYwYTFhNDM0NAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2gu
aApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAw
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoX2gK
KyNkZWZpbmUgRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaF9oCisKKyNpZiBFTkFCTEUo
VEhSRUFESU5HX0xJQkRJU1BBVENIKQorCisjaW5jbHVkZSAiRGlzcGF0Y2hRdWV1ZS5oIgorCisj
aW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUg
eworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKTsK
KyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093
blB0cjxEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZT4gY3JlYXRlKCkKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFB0cihuZXcgRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKSk7CisgICAg
fQorCisgICAgfkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKCk7CisKKyAgICB2b2lkIGFzeW5j
KGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKKworcHJpdmF0ZToKKyAgICBEaXNwYXRjaEdsb2Jh
bFF1ZXVlUHJpdmF0ZSgpOworICAgIHN0YXRpYyB2b2lkIGludm9rZUZ1bmN0aW9uKHZvaWQqIGNv
bnRleHQpOworCisgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2Rpc3BhdGNoUXVldWU7Cit9OworCitj
bGFzcyBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPERpc3BhdGNoU2VyaWFsUXVldWVQ
cml2YXRlPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEaXNw
YXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSgpKTsKKyAgICB9CisKKyAgICB+RGlzcGF0Y2hTZXJpYWxR
dWV1ZVByaXZhdGUoKTsKKworICAgIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYp
OworCitwcml2YXRlOgorICAgIERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKCk7CisgICAgc3Rh
dGljIHZvaWQgaW52b2tlRnVuY3Rpb24odm9pZCogY29udGV4dCk7CisKKyAgICB2b2lkIHRlcm1p
bmF0ZSgpOworCisgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2Rpc3BhdGNoUXVldWU7CisgICAgZGlz
cGF0Y2hfZ3JvdXBfdCBtX2Rpc3BhdGNoR3JvdXA7CisgICAgTXV0ZXggbV9oYXNUZXJtaW5hdGlv
bkJlZ3VuTXV0ZXg7CisgICAgYm9vbCBtX2hhc1Rlcm1pbmF0aW9uQmVndW47Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShUSFJFQURJTkdfTElCRElTUEFUQ0gp
CisKKyNlbmRpZiAvLyBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZGluZ1B0aHJlYWRzLmNwcAppbmRleCA1MTAxNzNkMDk4MTJjZDlmYzAyNWQ3ZGNlOWZl
MmE2MzE4MTY1MmQ3Li4zNDRiMGJiODBjY2QzYWRmMzg0ODk0NjgwYTYxYjBiY2M0MDc1Nzg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKKysrIGIvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAjaW5j
bHVkZSAiVGhyZWFkSWRlbnRpZmllckRhdGFQdGhyZWFkcy5oIgogI2luY2x1ZGUgIlRocmVhZFNw
ZWNpZmljLmgiCiAjaW5jbHVkZSAiVW51c2VkUGFyYW0uaCIKKyNpbmNsdWRlIDx3dGYvRGlzcGF0
Y2hRdWV1ZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093
blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9XVEZUaHJlYWREYXRhLmg+CkBAIC05NCw2ICs5NSw3IEBA
IHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgd3RmVGhyZWFkRGF0YSgpOwogICAgIHNf
ZHRvYVA1TXV0ZXggPSBuZXcgTXV0ZXg7CiAgICAgaW5pdGlhbGl6ZURhdGVzKCk7CisgICAgRGlz
cGF0Y2hRdWV1ZTo6aW5pdGlhbGl6ZURpc3BhdGNoUXVldWUoKTsKIH0KIAogdm9pZCBsb2NrQXRv
bWljYWxseUluaXRpYWxpemVkU3RhdGljTXV0ZXgoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKaW5k
ZXggZDMzOTczZGFmNzhjOWI2ZTYwZDdkMWMzZTk0YmE2ZmI2ZDg0OWI0NS4uNDg1NjdkMDFiM2Rj
Y2FkODczYzgyOTgyZTRhYzkzZmZhZjA2MTZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
VGhyZWFkaW5nV2luLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCkBA
IC05Myw2ICs5Myw3IEBACiAjaW5jbHVkZSAiVGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uLmgiCiAj
aW5jbHVkZSA8d2luZG93cy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1
ZGUgPHd0Zi9EaXNwYXRjaFF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTE3OSw2
ICsxODAsNyBAQCB2b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogICAgIHd0ZlRocmVhZERhdGEo
KTsKICAgICBzX2R0b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAgIGluaXRpYWxpemVEYXRlcygp
OworICAgIERpc3BhdGNoUXVldWU6OmluaXRpYWxpemVEaXNwYXRjaFF1ZXVlKCk7CiB9CiAKIHN0
YXRpYyBIYXNoTWFwPERXT1JELCBIQU5ETEU+JiB0aHJlYWRNYXAoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvY2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAKaW5kZXggOWU2NTkyYjU3MTU2Nzlh
ZTJiYzlhNmQxYTBiNmYzYjhjOWUxOGU4MS4uYWU1ZmM4MTk2YjFjYTY5ZmEyYTE1MTRlZTI4NmMx
M2Y5ZTcyNDIwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY2hyb21pdW0vTWFpblRocmVh
ZENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hy
b21pdW0uY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJBc3NlcnRpb25zLmgiCiAj
aW5jbHVkZSAiQ2hyb21pdW1UaHJlYWRpbmcuaCIKKyNpbmNsdWRlICJGdW5jdGlvbmFsLmgiCiAj
aW5jbHVkZSAiVGhyZWFkaW5nLmgiCiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtNTQsNiArNTUsMTgg
QEAgdm9pZCBjYWxsT25NYWluVGhyZWFkKE1haW5UaHJlYWRGdW5jdGlvbiogZnVuY3Rpb24sIHZv
aWQqIGNvbnRleHQpCiAgICAgQ2hyb21pdW1UaHJlYWRpbmc6OmNhbGxPbk1haW5UaHJlYWQoZnVu
Y3Rpb24sIGNvbnRleHQpOwogfQogCitzdGF0aWMgdm9pZCBjYWxsRnVuY3Rpb25PYmplY3Qodm9p
ZCogY29udGV4dCkKK3sKKyAgICBGdW5jdGlvbjx2b2lkKCk+KiBmdW5jdGlvbiA9IHN0YXRpY19j
YXN0PEZ1bmN0aW9uPHZvaWQoKT4qPihjb250ZXh0KTsKKyAgICAoKmZ1bmN0aW9uKSgpOworICAg
IGRlbGV0ZSBmdW5jdGlvbjsKK30KKwordm9pZCBjYWxsT25NYWluVGhyZWFkKGNvbnN0IEZ1bmN0
aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQoreworICAgIGNhbGxPbk1haW5UaHJlYWQoY2FsbEZ1bmN0
aW9uT2JqZWN0LCBuZXcgRnVuY3Rpb248dm9pZCAoKT4oZnVuY3Rpb24pKTsKK30KKwogdm9pZCBj
YWxsT25NYWluVGhyZWFkQW5kV2FpdChNYWluVGhyZWFkRnVuY3Rpb24qLCB2b2lkKikKIHsKICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155751</attachid>
            <date>2012-08-01 01:37:27 -0700</date>
            <delta_ts>2012-08-01 02:27:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90584-20120801173658.patch</filename>
            <type>text/plain</type>
            <size>43067</size>
            <attacher name="Kwonjin Jeong">gram</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzExCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NTEwOGFlNzU4NzIwNjlmNzc5Yzk3MDliOGM3MzU1Nzk3OTIyZGY0Li5mYTFlNjgyYWRlOWQ3M2Nh
YjcyYjk2YWMyNDBhZWZlNzZmZGM4ZDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxMi0wOC0wMSAgS3dvbmppbiBKZW9uZyAgPGdyYW1AY29tcGFueTEwMC5u
ZXQ+CisKKyAgICAgICAgQWRkIERpc3BhdGNoUXVldWUgY2xhc3MuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDU4NAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF1dGhvcmVkIGJ5IEt3b25qaW4gSmVvbmcg
YW5kIERvbmdzdW5nIEh1YW5nLgorCisgICAgICAgIERpc3BhdGNoUXVldWUgaXMgYSBzaW1wbGUg
QysrIHdyYXBwZXIgYXJvdW5kIGxpYmRpc3BhdGNoIChHQ0QpLiBBIHRocmVhZCBwb29sIGJhc2Vk
CisgICAgICAgIGZhbGxiYWNrIGltcGxlbWVudGF0aW9uIGlzIGFsc28gYXZhaWFibGUuIFNvIHBv
cnRzIHdpdGhvdXQgbGliZGlzcGF0Y2ggY2FuIHVzZSB0aGUgc2FtZSBBUEkuCisKKyAgICAgICAg
SXQgcHJvdmlkZXMgb25seSB0aGUgc21hbGwgc3Vic2V0IG9mIHRoZSBvcmlnaW5hbCBsaWJkaXNw
YXRjaCBBUEkuIFRoZXJlIGFyZSB0aHJlZSB0eXBlcworICAgICAgICBvZiBEaXNwYXRjaFF1ZXVl
OiBzZXJpYWwsIGdsb2JhbCBhbmQgbWFpbi4gVGhlc2UgcXVldWVzIGNvcnJlc3BvbmQgdG8gdGhl
IHNlcmlhbCwKKyAgICAgICAgY29uY3VycmVudCBnbG9iYWwgYW5kIG1haW4gcXVldWUgaW4gbGli
ZGlzcGF0Y2guCisKKyAgICAgICAgRGlzcGF0Y2hRdWV1ZTo6YXN5bmMoY29uc3QgRnVuY3Rpb248
dm9pZCgpPiYpIG1ldGhvZCBpcyB1c2VkIHRvIHNjaGVkdWxlIGEgdGFzayByZWdhcmRsZXNzCisg
ICAgICAgIG9mIHRoZSBxdWV1ZSB0eXBlLgorCisgICAgICAgIEN1cnJlbnRseSwgaXQgaXMgdXNl
ZCBieSBwYXJhbGxlbCBpbWFnZSBkZWNvZGVycyB0byBwZXJmb3JtIGltYWdlIGRlY29kaW5nIGNv
bmN1cnJlbnRseS4KKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLm9yZGVyOgorCiAyMDEyLTA3
LTMxICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IHRoZSBXaW5k
b3dzIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwppbmRleCAxMGUyMDJjMGQwMjU4NmUxMmNlOTI3YjA3ZGI0N2RiMTliZmIxMjc5
Li4zOGM1MjEyYmE1NTNmMGMxNzFlNDU5MGY3YmZmZWI3MTQzODY1N2U5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDExOCBAQAorMjAxMi0wOC0wMSAgS3dvbmppbiBKZW9uZyAgPGdyYW1AY29tcGFueTEwMC5uZXQ+
CisKKyAgICAgICAgQWRkIERpc3BhdGNoUXVldWUgY2xhc3MuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MDU4NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF1dGhvcmVkIGJ5IEt3b25qaW4gSmVvbmcgYW5k
IERvbmdzdW5nIEh1YW5nLgorCisgICAgICAgIERpc3BhdGNoUXVldWUgaXMgYSBzaW1wbGUgQysr
IHdyYXBwZXIgYXJvdW5kIGxpYmRpc3BhdGNoIChHQ0QpLiBBIHRocmVhZCBwb29sIGJhc2VkCisg
ICAgICAgIGZhbGxiYWNrIGltcGxlbWVudGF0aW9uIGlzIGFsc28gYXZhaWFibGUuIFNvIHBvcnRz
IHdpdGhvdXQgbGliZGlzcGF0Y2ggY2FuIHVzZSB0aGUgc2FtZSBBUEkuCisKKyAgICAgICAgSXQg
cHJvdmlkZXMgb25seSB0aGUgc21hbGwgc3Vic2V0IG9mIHRoZSBvcmlnaW5hbCBsaWJkaXNwYXRj
aCBBUEkuIFRoZXJlIGFyZSB0aHJlZSB0eXBlcworICAgICAgICBvZiBEaXNwYXRjaFF1ZXVlOiBz
ZXJpYWwsIGdsb2JhbCBhbmQgbWFpbi4gVGhlc2UgcXVldWVzIGNvcnJlc3BvbmQgdG8gdGhlIHNl
cmlhbCwKKyAgICAgICAgY29uY3VycmVudCBnbG9iYWwgYW5kIG1haW4gcXVldWUgaW4gbGliZGlz
cGF0Y2guCisKKyAgICAgICAgRGlzcGF0Y2hRdWV1ZTo6YXN5bmMoY29uc3QgRnVuY3Rpb248dm9p
ZCgpPiYpIG1ldGhvZCBpcyB1c2VkIHRvIHNjaGVkdWxlIGEgdGFzayByZWdhcmRsZXNzCisgICAg
ICAgIG9mIHRoZSBxdWV1ZSB0eXBlLgorCisgICAgICAgIEN1cnJlbnRseSwgaXQgaXMgdXNlZCBi
eSBwYXJhbGxlbCBpbWFnZSBkZWNvZGVycyB0byBwZXJmb3JtIGltYWdlIGRlY29kaW5nIGNvbmN1
cnJlbnRseS4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV1RG
Lmd5cGk6CisgICAgICAgICogV1RGLnBybzoKKyAgICAgICAgKiBXVEYudmNwcm9qL1dURi52Y3By
b2o6CisgICAgICAgICogV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
d3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9EaXNwYXRjaFF1ZXVlLmNwcDogQWRk
ZWQuCisgICAgICAgIChXVEYpOgorICAgICAgICAoRGlzcGF0Y2hNYWluUXVldWUpOgorICAgICAg
ICAoV1RGOjpEaXNwYXRjaE1haW5RdWV1ZTo6fkRpc3BhdGNoTWFpblF1ZXVlKToKKyAgICAgICAg
KFdURjo6RGlzcGF0Y2hNYWluUXVldWU6OmFzeW5jKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hN
YWluUXVldWU6OkRpc3BhdGNoTWFpblF1ZXVlKToKKyAgICAgICAgKERpc3BhdGNoR2xvYmFsUXVl
dWUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlOjp+RGlzcGF0Y2hHbG9iYWxR
dWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoR2xvYmFsUXVldWU6OmFzeW5jKToKKyAgICAg
ICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1ZTo6RGlzcGF0Y2hHbG9iYWxRdWV1ZSk6CisgICAg
ICAgIChEaXNwYXRjaFNlcmlhbFF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxR
dWV1ZTo6fkRpc3BhdGNoU2VyaWFsUXVldWUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlh
bFF1ZXVlOjphc3luYyk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoU2VyaWFsUXVldWU6OkRpc3Bh
dGNoU2VyaWFsUXVldWUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFF1ZXVlOjpnbG9iYWxRdWV1
ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoUXVldWU6Om1haW5RdWV1ZSk6CisgICAgICAgIChX
VEY6OkRpc3BhdGNoUXVldWU6OmluaXRpYWxpemVEaXNwYXRjaFF1ZXVlKToKKyAgICAgICAgKFdU
Rjo6RGlzcGF0Y2hRdWV1ZTo6Y3JlYXRlU2VyaWFsUXVldWUpOgorICAgICAgICAqIHd0Zi9EaXNw
YXRjaFF1ZXVlLmg6IEFkZGVkLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKERpc3BhdGNoUXVl
dWUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFF1ZXVlOjp+RGlzcGF0Y2hRdWV1ZSk6CisgICAg
ICAgIChXVEY6OkRpc3BhdGNoUXVldWU6OkRpc3BhdGNoUXVldWUpOgorICAgICAgICAqIHd0Zi9E
aXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURik6Cisg
ICAgICAgIChFeGVjdXRvcik6CisgICAgICAgIChXVEY6OkV4ZWN1dG9yOjphY3F1aXJlKToKKyAg
ICAgICAgKFdURjo6RXhlY3V0b3I6OnJlbGVhc2UpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6
YWNxdWlyZUNvdW50KToKKyAgICAgICAgKFdURjo6RXhlY3V0b3I6OkV4ZWN1dG9yKToKKyAgICAg
ICAgKFdURjo6RXhlY3V0b3I6On5FeGVjdXRvcik6CisgICAgICAgIChXVEY6OkV4ZWN1dG9yOjpl
eGVjdXRlKToKKyAgICAgICAgKFdURjo6RXhlY3V0b3I6OndvcmtlclRocmVhZCk6CisgICAgICAg
IChFeGVjdXRvclBvb2wpOgorICAgICAgICAoV1RGOjpFeGVjdXRvclBvb2w6OmluaXRpYWxpemVF
eGVjdXRvclBvb2wpOgorICAgICAgICAoV1RGOjpleGVjdXRvclBvb2wpOgorICAgICAgICAoV1RG
OjpFeGVjdXRvclBvb2w6OkV4ZWN1dG9yUG9vbCk6CisgICAgICAgIChXVEY6OkV4ZWN1dG9yUG9v
bDo6fkV4ZWN1dG9yUG9vbCk6CisgICAgICAgIChXVEY6OkV4ZWN1dG9yUG9vbDo6ZXhlY3V0ZSk6
CisgICAgICAgIChXVEY6OkV4ZWN1dG9yUG9vbDo6bmV4dEV4ZWN1dG9yKToKKyAgICAgICAgKFdU
Rjo6RXhlY3V0b3JQb29sOjphY3F1aXJlU2VyaWFsRXhlY3V0b3IpOgorICAgICAgICAoV1RGOjpF
eGVjdXRvclBvb2w6OnJlbGVhc2VTZXJpYWxFeGVjdXRvcik6CisgICAgICAgIChXVEY6OkV4ZWN1
dG9yUG9vbDo6c2VyaWFsRXhlY3V0b3JXaXRoTWluaW11bUFjcXVpcmVDb3VudCk6CisgICAgICAg
IChXVEY6OkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJp
dmF0ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjp+RGlzcGF0
Y2hHbG9iYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVl
UHJpdmF0ZTo6YXN5bmMpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0
ZTo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNl
cmlhbFF1ZXVlUHJpdmF0ZTo6fkRpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKToKKyAgICAgICAg
KFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmVuc3VyZVRlcm1pbmF0ZSk6CisgICAg
ICAgIChXVEY6OmNhbmNlbGFibGVGdW5jdGlvbik6CisgICAgICAgIChXVEY6OkRpc3BhdGNoU2Vy
aWFsUXVldWVQcml2YXRlOjphc3luYyk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoU2VyaWFsUXVl
dWVQcml2YXRlOjpoYXNUZXJtaW5hdGlvbkJlZ3VuKToKKyAgICAgICAgKiB3dGYvRGlzcGF0Y2hR
dWV1ZVByaXZhdGVHZW5lcmljLmg6IEFkZGVkLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKERp
c3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxR
dWV1ZVByaXZhdGU6OmNyZWF0ZSk6CisgICAgICAgIChEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0
ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjpjcmVhdGUpOgor
ICAgICAgICAqIHd0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcDogQWRkZWQu
CisgICAgICAgIChXVEYpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0
ZTo6RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEds
b2JhbFF1ZXVlUHJpdmF0ZTo6fkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKToKKyAgICAgICAg
KFdURjo6RnVuY3Rpb25Cb3g6OkZ1bmN0aW9uQm94KToKKyAgICAgICAgKEZ1bmN0aW9uQm94KToK
KyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6OmFzeW5jKToKKyAgICAg
ICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6Omludm9rZUZ1bmN0aW9uKToKKyAg
ICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OkRpc3BhdGNoU2VyaWFsUXVl
dWVQcml2YXRlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6On5E
aXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoU2VyaWFs
UXVldWVQcml2YXRlOjp0ZXJtaW5hdGUpOgorICAgICAgICAoV1RGOjpDYW5jZWxhYmxlRnVuY3Rp
b25Cb3g6OkNhbmNlbGFibGVGdW5jdGlvbkJveCk6CisgICAgICAgIChDYW5jZWxhYmxlRnVuY3Rp
b25Cb3gpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6aW52b2tl
RnVuY3Rpb24pOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6YXN5
bmMpOgorICAgICAgICAqIHd0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmg6IEFk
ZGVkLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRl
KToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6OmNyZWF0ZSk6Cisg
ICAgICAgIChEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAgIChXVEY6OkRpc3Bh
dGNoU2VyaWFsUXVldWVQcml2YXRlOjpjcmVhdGUpOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQ
dGhyZWFkcy5jcHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAg
ICAqIHd0Zi9UaHJlYWRpbmdXaW4uY3BwOgorICAgICAgICAoV1RGOjppbml0aWFsaXplVGhyZWFk
aW5nKToKKyAgICAgICAgKiB3dGYvY2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcDoKKyAg
ICAgICAgKFdURjo6Y2FsbEZ1bmN0aW9uT2JqZWN0KToKKyAgICAgICAgKFdURik6CisgICAgICAg
IChXVEY6OmNhbGxPbk1haW5UaHJlYWQpOgorCiAyMDEyLTA3LTMxICBTYW0gV2VpbmlnICA8c2Ft
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgU3RvcCBtYXNraW5nIDggYml0cyBvZmYgb2YgdGhlIHZp
c2l0ZWQgbGluayBoYXNoLiBXZSBuZWVkIGFsbCB0aGUgYml0cyEKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlciBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgppbmRleCAwNzQyYTBhMGUyYjZkY2RkODRiZWY3OGNi
YzE2ZTdlYWI4OTlhNTJiLi5lM2IxODdhYjNmN2NiMjM3ZDMxOTYxOWMxNzkzOTFlOTEwNWUyY2Zm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCkBAIC0xLDQg
KzEsNSBAQAogX19aTjNXVEYxMGZhc3RNYWxsb2NFbQorX19aTjNXVEYxM0Rpc3BhdGNoUXVldWUy
M2luaXRpYWxpemVEaXNwYXRjaFF1ZXVlRXYKIF9fWk4zV1RGMjBUQ01hbGxvY19UaHJlYWRDYWNo
ZTEwSW5pdE1vZHVsZUV2CiBfX1pOM1dURkwxNUluaXRTaXplQ2xhc3Nlc0V2CiBfX1oyMFRDTWFs
bG9jX1N5c3RlbUFsbG9jbVBtbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDJiODQ0YWYyNTQ5
NDM5M2UyY2Q5YTVhODYyYjA3NDI1NDM5OTY4NzYuLmY5YjM0NDkxNGRjMGVhODRhMzhiN2Q5ZjUw
MzhkZTM2NTVmODYwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM3LDYgKzM3LDEyIEBA
IHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9EZWNvZGVyLmggXAogICAgIFNv
dXJjZS9XVEYvd3RmL0RlcXVlLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0Rpc2FsbG93Q1R5cGUu
aCBcCisgICAgU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZS5jcHAgXAorICAgIFNvdXJjZS9X
VEYvd3RmL0Rpc3BhdGNoUXVldWUuaCBcCisgICAgU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1
ZVByaXZhdGVHZW5lcmljLmNwcCBcCisgICAgU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVBy
aXZhdGVHZW5lcmljLmggXAorICAgIFNvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRl
TGliZGlzcGF0Y2guY3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0
ZUxpYmRpc3BhdGNoLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0RvdWJseUxpbmtlZExpc3QuaCBc
CiAgICAgU291cmNlL1dURi93dGYvRHluYW1pY0Fubm90YXRpb25zLmNwcCBcCiAgICAgU291cmNl
L1dURi93dGYvRHluYW1pY0Fubm90YXRpb25zLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9X
VEYuZ3lwaSBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKaW5kZXggNjY0YjQwZGVhOGY1YWJhYTBkMTgy
ZWIxNTA3YjE0YWUxMTM4MGJiOC4uNTVkNzA0OGMxYjQxODdjOWQ4OTAwZmFlYzBlOTA4ZmRmOTA4
ZmFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYuZ3lwaQorKysgYi9Tb3VyY2UvV1RGL1dU
Ri5neXBpCkBAIC0xMzksNiArMTM5LDEyIEBACiAgICAgICAgICAgICAnd3RmL0RhdGFMb2cuY3Bw
JywKICAgICAgICAgICAgICd3dGYvRGF0ZU1hdGguY3BwJywKICAgICAgICAgICAgICd3dGYvRGVj
aW1hbE51bWJlci5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9EaXNwYXRjaFF1ZXVlLmNwcCcsCisg
ICAgICAgICAgICAnd3RmL0Rpc3BhdGNoUXVldWUuaCcsCisgICAgICAgICAgICAnd3RmL0Rpc3Bh
dGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9EaXNwYXRjaFF1
ZXVlUHJpdmF0ZUdlbmVyaWMuaCcsCisgICAgICAgICAgICAnd3RmL0Rpc3BhdGNoUXVldWVQcml2
YXRlTGliZGlzcGF0Y2guY3BwJywKKyAgICAgICAgICAgICd3dGYvRGlzcGF0Y2hRdWV1ZVByaXZh
dGVMaWJkaXNwYXRjaC5oJywKICAgICAgICAgICAgICd3dGYvRHluYW1pY0Fubm90YXRpb25zLmNw
cCcsCiAgICAgICAgICAgICAnd3RmL0R5bmFtaWNBbm5vdGF0aW9ucy5oJywKICAgICAgICAgICAg
ICd3dGYvRmFzdE1hbGxvYy5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJvIGIv
U291cmNlL1dURi9XVEYucHJvCmluZGV4IDcyZDFkNzEyYTg2NjJjNGE2NTBiOWRjYjZlNGJkMjA3
Y2MxYjUxYmIuLjg4NzAyZTgxMGVlNWFjMDllYjc0NTUzM2U3OWQyMmJjOTg2MjFlOWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTE4
MCw2ICsxODAsOSBAQCBTT1VSQ0VTICs9IFwKICAgICBEYXRlTWF0aC5jcHAgXAogICAgIERhdGFM
b2cuY3BwIFwKICAgICBEZWNpbWFsTnVtYmVyLmNwcCBcCisgICAgRGlzcGF0Y2hRdWV1ZS5jcHAg
XAorICAgIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwIFwKKyAgICBEaXNwYXRj
aFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwIFwKICAgICBkdG9hLmNwcCBcCiAgICAgZHRvYS9iaWdu
dW0tZHRvYS5jYyBcCiAgICAgZHRvYS9iaWdudW0uY2MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJv
agppbmRleCA5NGU4MzI2ZjM5OTQ5ZGU4ZjJlZWU0M2E2MWJiMjYxYjQ3ZTIxZWU1Li5mYTUzZmUw
ZGFkZjBkNDdhZDM5YmJmOWJkNWY2N2YxNTA4YTdhYTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZj
cHJvagpAQCAtNzA5LDYgKzcwOSwzMCBAQAogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCisJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxEaXNwYXRjaFF1ZXVlLmNwcCIKKwkJCT4KKwkJPC9GaWxlPgor
CQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGlzcGF0Y2hRdWV1ZS5oIgorCQkJPgor
CQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxEaXNwYXRjaFF1ZXVl
UHJpdmF0ZUdlbmVyaWMuY3BwIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHd0ZlxEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCIKKwkJCT4KKwkJPC9G
aWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRGlzcGF0Y2hRdWV1ZVByaXZh
dGVMaWJkaXNwYXRjaC5jcHAiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0aXZl
UGF0aD0iLi5cd3RmXERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guaCIKKwkJCT4KKwkJ
PC9GaWxlPgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcRG91Ymx5TGlua2VkTGlz
dC5oIgogCQkJPgogCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBmNTM0N2IyNGRjY2MyNzM0ZWJmN2RmZmM5MTNmYTNiOTY1MzkzOWMzLi5hODFm
OTI4MDJmMGJjNGVlYjAzNzg1NTIxOWU3ZmI5YTY4MGQ5NWFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUxLDYgKzUxLDEyIEBACiAJCUE4QTQ3M0E0MTUx
QTgyNUIwMDQxMjNGRiAvKiBEZWNvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI3RDE1MUE4MjVBMDA0MTIzRkYgLyogRGVjb2Rlci5oICov
OyB9OwogCQlBOEE0NzNBNTE1MUE4MjVCMDA0MTIzRkYgLyogRGVxdWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjdFMTUxQTgyNUEwMDQxMjNG
RiAvKiBEZXF1ZS5oICovOyB9OwogCQlBOEE0NzNBNjE1MUE4MjVCMDA0MTIzRkYgLyogRGlzYWxs
b3dDVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QThBNDcyN0YxNTFBODI1QTAwNDEyM0ZGIC8qIERpc2FsbG93Q1R5cGUuaCAqLzsgfTsKKwkJQThB
NDczQTcxNTFBODI1QjAwNDEyM0Y5IC8qIERpc3BhdGNoUXVldWUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyN0YxNTFBODI1QTAwNDEyM0ZG
IC8qIERpc3BhdGNoUXVldWUuY3BwICovOyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkEg
LyogRGlzcGF0Y2hRdWV1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQThBNDcyN0YxNTFBODI1QTAwNDEyM0ZGIC8qIERpc3BhdGNoUXVldWUuaCAqLzsg
fTsKKwkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZCIC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2Vu
ZXJpYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
OEE0NzI3RjE1MUE4MjVBMDA0MTIzRkYgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNw
cCAqLzsgfTsKKwkJQThBNDczQTcxNTFBODI1QjAwNDEyM0ZDIC8qIERpc3BhdGNoUXVldWVQcml2
YXRlR2VuZXJpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQThBNDcyN0YxNTFBODI1QTAwNDEyM0ZGIC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJp
Yy5oICovOyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkQgLyogRGlzcGF0Y2hRdWV1ZVBy
aXZhdGVMaWJkaXNwYXRjaC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBOEE0NzI3RjE1MUE4MjVBMDA0MTIzRkYgLyogRGlzcGF0Y2hRdWV1ZVByaXZh
dGVMaWJkaXNwYXRjaC5jcHAgKi87IH07CisJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGRSAvKiBE
aXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI3RjE1MUE4MjVBMDA0MTIzRkYgLyogRGlzcGF0
Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oICovOyB9OwogCQlBOEE0NzNBNzE1MUE4MjVCMDA0
MTIzRkYgLyogRG91Ymx5TGlua2VkTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQThBNDcyODAxNTFBODI1QTAwNDEyM0ZGIC8qIERvdWJseUxpbmtl
ZExpc3QuaCAqLzsgfTsKIAkJQThBNDczQTgxNTFBODI1QjAwNDEyM0ZGIC8qIGJpZ251bS1kdG9h
LmNjIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcy
ODIxNTFBODI1QTAwNDEyM0ZGIC8qIGJpZ251bS1kdG9hLmNjICovOyB9OwogCQlBOEE0NzNBOTE1
MUE4MjVCMDA0MTIzRkYgLyogYmlnbnVtLWR0b2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3MjgzMTUxQTgyNUEwMDQxMjNGRiAvKiBiaWdudW0t
ZHRvYS5oICovOyB9OwpAQCAtMzAxLDYgKzMwNywxMiBAQAogCQlBOEE0NzI3RDE1MUE4MjVBMDA0
MTIzRkYgLyogRGVjb2Rlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWNv
ZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QTQ3MjdFMTUxQTgyNUEwMDQx
MjNGRiAvKiBEZXF1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXF1ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzI3RjE1MUE4MjVBMDA0MTIzRkYg
LyogRGlzYWxsb3dDVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNh
bGxvd0NUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4QTQ3MjgwMTUxQTgy
NUEwMDQxMjNGOSAvKiBEaXNwYXRjaFF1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGlzcGF0Y2hRdWV1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNGQSAvKiBEaXNwYXRjaFF1ZXVlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BhdGNoUXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJQThBNDcyODAxNTFBODI1QTAwNDEyM0ZCIC8qIERpc3BhdGNoUXVldWVQcml2
YXRlR2VuZXJpYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BhdGNo
UXVldWVQcml2YXRlR2VuZXJpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4
QTQ3MjgwMTUxQTgyNUEwMDQxMjNGQyAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5l
cmljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4QTQ3MjgwMTUxQTgyNUEwMDQx
MjNGRCAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRSAv
KiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThBNDcyODAxNTFBODI1QTAwNDEyM0ZGIC8qIERvdWJseUxp
bmtlZExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG91Ymx5TGlua2Vk
TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzI4MjE1MUE4MjVBMDA0
MTIzRkYgLyogYmlnbnVtLWR0b2EuY2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSAiYmlnbnVtLWR0b2EuY2MiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0
NzI4MzE1MUE4MjVBMDA0MTIzRkYgLyogYmlnbnVtLWR0b2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gImJpZ251bS1kdG9hLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNTk3LDYgKzYwOSwxMiBAQAogCQkJCUE4QTQ3MjdEMTUxQTgyNUEwMDQxMjNGRiAvKiBE
ZWNvZGVyLmggKi8sCiAJCQkJQThBNDcyN0UxNTFBODI1QTAwNDEyM0ZGIC8qIERlcXVlLmggKi8s
CiAJCQkJQThBNDcyN0YxNTFBODI1QTAwNDEyM0ZGIC8qIERpc2FsbG93Q1R5cGUuaCAqLywKKwkJ
CQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRjkgLyogRGlzcGF0Y2hRdWV1ZS5jcHAgKi8sCisJCQkJ
QThBNDcyODAxNTFBODI1QTAwNDEyM0ZBIC8qIERpc3BhdGNoUXVldWUuaCAqLywKKwkJCQlBOEE0
NzI4MDE1MUE4MjVBMDA0MTIzRkIgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCAq
LywKKwkJCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRkMgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVH
ZW5lcmljLmggKi8sCisJCQkJQThBNDcyODAxNTFBODI1QTAwNDEyM0ZEIC8qIERpc3BhdGNoUXVl
dWVQcml2YXRlTGliZGlzcGF0Y2guY3BwICovLAorCQkJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNG
RSAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmggKi8sCiAJCQkJQThBNDcyODAx
NTFBODI1QTAwNDEyM0ZGIC8qIERvdWJseUxpbmtlZExpc3QuaCAqLywKIAkJCQlBOEE0NzI5NzE1
MUE4MjVBMDA0MTIzRkYgLyogZHRvYS5jcHAgKi8sCiAJCQkJQThBNDcyOTgxNTFBODI1QTAwNDEy
M0ZGIC8qIGR0b2EuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMu
dHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggNDYzNmI1ZTUyYzljYmVh
MTk0YzQxNTBkYWQ5ZjM0MzIwMTRkMjRiYy4uNzI4NGRhYmE4MjZlOGZjNGZkNWViMmEyMzg1MzIz
ZDYxODFlMmY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysr
IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTIwLDYgKzIwLDkgQEAgU0VUKFdU
Rl9IRUFERVJTCiAgICAgRGVjb2Rlci5oCiAgICAgRGVxdWUuaAogICAgIERpc2FsbG93Q1R5cGUu
aAorICAgIERpc3BhdGNoUXVldWUuaAorICAgIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5o
CisgICAgRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oCiAgICAgRG91Ymx5TGlua2Vk
TGlzdC5oCiAgICAgRHluYW1pY0Fubm90YXRpb25zLmgKICAgICBFbmNvZGVyLmgKQEAgLTE0NSw2
ICsxNDgsOSBAQCBTRVQoV1RGX1NPVVJDRVMKICAgICBEYXRlTWF0aC5jcHAKICAgICBEYXRhTG9n
LmNwcAogICAgIERlY2ltYWxOdW1iZXIuY3BwCisgICAgRGlzcGF0Y2hRdWV1ZS5jcHAKKyAgICBE
aXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcAorICAgIERpc3BhdGNoUXVldWVQcml2
YXRlR2VuZXJpYy5jcHAKICAgICBEeW5hbWljQW5ub3RhdGlvbnMuY3BwCiAgICAgRmFzdE1hbGxv
Yy5jcHAKICAgICBIYXNoVGFibGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EaXNw
YXRjaFF1ZXVlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZkOWVhMzY2MjJlMjcwOWFjMDY2ODFhMWM1MWFmZGM3MDNiNjJmYTAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlLmNwcApAQCAtMCwwICsxLDExNyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaXNwYXRjaFF1ZXVlLmgiCisKKyNpZiBFTkFC
TEUoVEhSRUFESU5HX0xJQkRJU1BBVENIKQorI2luY2x1ZGUgIkRpc3BhdGNoUXVldWVQcml2YXRl
TGliZGlzcGF0Y2guaCIKKyNlbHNlCisjaW5jbHVkZSAiRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5l
cmljLmgiCisjZW5kaWYKKworI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8
d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgRGlzcGF0Y2hHbG9iYWxR
dWV1ZVByaXZhdGU7CitjbGFzcyBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTsKKworRGlzcGF0
Y2hRdWV1ZSogRGlzcGF0Y2hRdWV1ZTo6c19nbG9iYWxRdWV1ZTsKK0Rpc3BhdGNoUXVldWUqIERp
c3BhdGNoUXVldWU6OnNfbWFpblF1ZXVlOworCitjbGFzcyBEaXNwYXRjaE1haW5RdWV1ZSA6IHB1
YmxpYyBEaXNwYXRjaFF1ZXVlIHsKK3B1YmxpYzoKKyAgICBmcmllbmQgY2xhc3MgRGlzcGF0Y2hR
dWV1ZTsKKyAgICB2aXJ0dWFsIH5EaXNwYXRjaE1haW5RdWV1ZSgpIHsgfQorCisgICAgLy8gSW4g
Y2FzZSBvZiB0aGUgbWFpbiBxdWV1ZSwgd2Ugc2ltcGx5IHJldXNlIGNhbGxPbk1haW5UaHJlYWQu
CisgICAgdmlydHVhbCB2b2lkIGFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9u
KQorICAgIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChmdW5jdGlvbik7CisgICAgfQorCisK
K3ByaXZhdGU6CisgICAgRGlzcGF0Y2hNYWluUXVldWUoKSB7IH0KK307CisKK2NsYXNzIERpc3Bh
dGNoR2xvYmFsUXVldWUgOiBwdWJsaWMgRGlzcGF0Y2hRdWV1ZSB7CitwdWJsaWM6CisgICAgZnJp
ZW5kIGNsYXNzIERpc3BhdGNoUXVldWU7CisgICAgdmlydHVhbCB+RGlzcGF0Y2hHbG9iYWxRdWV1
ZSgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4m
IGZ1bmN0aW9uKQorICAgIHsKKyAgICAgICAgbV9wcml2YXRlLT5hc3luYyhmdW5jdGlvbik7Cisg
ICAgfQorCitwcml2YXRlOgorICAgIERpc3BhdGNoR2xvYmFsUXVldWUoKQorICAgICAgICA6IG1f
cHJpdmF0ZShEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6Y3JlYXRlKCkpIHsgfQorCisgICAg
T3duUHRyPERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlPiBtX3ByaXZhdGU7Cit9OworCitjbGFz
cyBEaXNwYXRjaFNlcmlhbFF1ZXVlIDogcHVibGljIERpc3BhdGNoUXVldWUgeworcHVibGljOgor
ICAgIGZyaWVuZCBjbGFzcyBEaXNwYXRjaFF1ZXVlOworICAgIHZpcnR1YWwgfkRpc3BhdGNoU2Vy
aWFsUXVldWUoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBhc3luYyhjb25zdCBGdW5jdGlvbjx2
b2lkKCk+JiBmdW5jdGlvbikKKyAgICB7CisgICAgICAgIG1fcHJpdmF0ZS0+YXN5bmMoZnVuY3Rp
b24pOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaXNwYXRjaFNlcmlhbFF1ZXVlKCkKKyAgICAg
ICAgOiBtX3ByaXZhdGUoRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmNyZWF0ZSgpKSB7IH0K
KworICAgIE93blB0cjxEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZT4gbV9wcml2YXRlOworfTsK
KworRGlzcGF0Y2hRdWV1ZSogRGlzcGF0Y2hRdWV1ZTo6Z2xvYmFsUXVldWUoKQoreworICAgIHJl
dHVybiBzX2dsb2JhbFF1ZXVlOworfQorCitEaXNwYXRjaFF1ZXVlKiBEaXNwYXRjaFF1ZXVlOjpt
YWluUXVldWUoKQoreworICAgIHJldHVybiBzX21haW5RdWV1ZTsKK30KKwordm9pZCBEaXNwYXRj
aFF1ZXVlOjppbml0aWFsaXplRGlzcGF0Y2hRdWV1ZSgpCit7CisgICAgc19tYWluUXVldWUgPSBu
ZXcgRGlzcGF0Y2hNYWluUXVldWUoKTsKKyAgICBzX2dsb2JhbFF1ZXVlID0gbmV3IERpc3BhdGNo
R2xvYmFsUXVldWUoKTsKK30KKworUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBEaXNwYXRjaFF1
ZXVlOjpjcmVhdGVTZXJpYWxRdWV1ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBEaXNw
YXRjaFNlcmlhbFF1ZXVlKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWUuaCBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNo
UXVldWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kOWQ5ZThjMGU2ZTQ2NWE1YWEwNDI1Y2U2YzY3MWIzNDMzYTgy
MjhjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZS5oCkBA
IC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ29tcGFueSAxMDAgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIERpc3BhdGNoUXVldWVfaAorI2RlZmluZSBEaXNwYXRjaFF1ZXVl
X2gKKworI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNh
ZmVSZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXVEYgeworCisvLyBUaGlzIGNsYXNzIGlzIGEg
c2ltcGxlIHdyYXBwZXIgYXJvdW5kIGxpYmRpc3BhdGNoLgorLy8gV2UgYWxzbyBwcm92aWRlIGEg
Z2VuZXJpYyAodGhyZWFkIHBvb2wpIGltcGxlbWVuZXRhdGlvbiBzbyB0aGF0CisvLyBhbGwgdGhl
IHBvcnRzIGNhbiB1c2UgdGhlIHNhbWUgQVBJLgorY2xhc3MgRGlzcGF0Y2hRdWV1ZSA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEaXNwYXRjaFF1ZXVlPiB7CitwdWJsaWM6CisgICAgV1RG
X0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGluaXRpYWxpemVEaXNwYXRjaFF1ZXVlKCk7Cisg
ICAgc3RhdGljIERpc3BhdGNoUXVldWUqIGdsb2JhbFF1ZXVlKCk7CisgICAgc3RhdGljIERpc3Bh
dGNoUXVldWUqIG1haW5RdWV1ZSgpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPERpc3BhdGNoUXVl
dWU+IGNyZWF0ZVNlcmlhbFF1ZXVlKCk7CisKKyAgICB2aXJ0dWFsIH5EaXNwYXRjaFF1ZXVlKCkg
eyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpID0g
MDsKKworcHJvdGVjdGVkOgorICAgIHN0YXRpYyBEaXNwYXRjaFF1ZXVlKiBzX2dsb2JhbFF1ZXVl
OworICAgIHN0YXRpYyBEaXNwYXRjaFF1ZXVlKiBzX21haW5RdWV1ZTsKKworICAgIERpc3BhdGNo
UXVldWUoKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCit1c2luZyBXVEY6OkRpc3Bh
dGNoUXVldWU7CisKKyNlbmRpZiAvLyBEaXNwYXRjaFF1ZXVlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1YzdkNTg5YTYw
MjE5MmE2NDJlYmQ0ZDYwMTI4ZGIzOTU2YzFmNmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwCkBAIC0wLDAgKzEsMjY2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAwIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCisjaWYgIUVOQUJMRShUSFJFQURJTkdfTElCRElTUEFUQ0gpCisK
KyNpbmNsdWRlICJEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCIKKworI2luY2x1ZGUgPGxp
bWl0cz4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9OdW1iZXJP
ZkNvcmVzLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIEV4ZWN1dG9yUG9vbDsKKworY2xhc3Mg
RXhlY3V0b3IgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEV4ZWN1dG9yKTsKKyAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBFeGVjdXRvcigpOworICAgIH5FeGVj
dXRvcigpOworCisgICAgdm9pZCBleGVjdXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKKwor
ICAgIHN0YXRpYyB2b2lkIHdvcmtlclRocmVhZCh2b2lkKik7CisKKyAgICB2b2lkIGFjcXVpcmUo
KSB7IG1fYWNxdWlyZUNvdW50Kys7IH0KKyAgICB2b2lkIHJlbGVhc2UoKSB7IG1fYWNxdWlyZUNv
dW50LS07IH0KKyAgICBpbnQgYWNxdWlyZUNvdW50KCkgY29uc3QgeyByZXR1cm4gbV9hY3F1aXJl
Q291bnQ7IH0KKworcHJpdmF0ZToKKyAgICBib29sIG1fcnVubmluZzsKKyAgICBpbnQgbV9hY3F1
aXJlQ291bnQ7CisKKyAgICBNdXRleCBtX211dGV4OworICAgIFRocmVhZENvbmRpdGlvbiBtX2Z1
bmN0aW9uUXVldWVFbXB0eUNvbmRpdGlvbjsKKyAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPiA+
IG1fZnVuY3Rpb25RdWV1ZTsKK307CisKK0V4ZWN1dG9yOjpFeGVjdXRvcigpCisgICAgOiBtX3J1
bm5pbmcodHJ1ZSkKKyAgICAsIG1fYWNxdWlyZUNvdW50KDEpCit7CisgICAgLy8gV2UgbmVlZCBh
IG11dGV4IGhlcmUgZm9yIHZpc2liaWxpdHkgaW4gRXhlY3V0b3I6OndvcmtlclRocmVhZC4KKyAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgVGhyZWFkSWRlbnRpZmllciB0aHJl
YWRJRCA9IGNyZWF0ZVRocmVhZCgmRXhlY3V0b3I6OndvcmtlclRocmVhZCwgdGhpcywgIkV4ZWN1
dG9yIHdvcmtlciIpOworICAgIGRldGFjaFRocmVhZCh0aHJlYWRJRCk7Cit9CisKK0V4ZWN1dG9y
Ojp+RXhlY3V0b3IoKQoreworICAgIC8vIE9uY2Ugd2UgY3JlYXRlIGFuIGV4ZWN1dG9yLCB3ZSBu
ZXZlciBkZXN0cm95cyBpdC4KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBF
eGVjdXRvcjo6ZXhlY3V0ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKK3sKKyAg
ICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgbV9mdW5jdGlvblF1ZXVlLmFwcGVu
ZChmdW5jdGlvbik7CisKKyAgICBtX2Z1bmN0aW9uUXVldWVFbXB0eUNvbmRpdGlvbi5zaWduYWwo
KTsKK30KKwordm9pZCBFeGVjdXRvcjo6d29ya2VyVGhyZWFkKHZvaWQqIHRocmVhZERhdGEpCit7
CisgICAgRXhlY3V0b3IqIGV4ZWN1dG9yID0gcmVpbnRlcnByZXRfY2FzdDxFeGVjdXRvcio+KHRo
cmVhZERhdGEpOworCisgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgVmVjdG9yPEZ1bmN0aW9u
PHZvaWQoKT4gPiBmdW5jdGlvblF1ZXVlOworICAgICAgICB7CisgICAgICAgICAgICBNdXRleExv
Y2tlciBsb2NrZXIoZXhlY3V0b3ItPm1fbXV0ZXgpOworICAgICAgICAgICAgaWYgKFVOTElLRUxZ
KCFleGVjdXRvci0+bV9ydW5uaW5nKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB3aGlsZSAoZXhlY3V0b3ItPm1fZnVuY3Rpb25RdWV1ZS5pc0VtcHR5KCkpCisgICAgICAg
ICAgICAgICAgZXhlY3V0b3ItPm1fZnVuY3Rpb25RdWV1ZUVtcHR5Q29uZGl0aW9uLndhaXQoZXhl
Y3V0b3ItPm1fbXV0ZXgpOworICAgICAgICAgICAgZXhlY3V0b3ItPm1fZnVuY3Rpb25RdWV1ZS5z
d2FwKGZ1bmN0aW9uUXVldWUpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBmdW5jdGlvblF1ZXVlLnNpemUoKTsgKytpKQorICAgICAgICAgICAgZnVuY3Rpb25R
dWV1ZVtpXSgpOworICAgIH0KK30KKworY2xhc3MgRXhlY3V0b3JQb29sIHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShFeGVjdXRvclBvb2wpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVFeGVjdXRvclBvb2woKTsKKwor
ICAgIGZyaWVuZCBFeGVjdXRvclBvb2wqIGV4ZWN1dG9yUG9vbCgpOworICAgIH5FeGVjdXRvclBv
b2woKTsKKworICAgIHZvaWQgZXhlY3V0ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CisgICAg
RXhlY3V0b3IqIGFjcXVpcmVTZXJpYWxFeGVjdXRvcigpOworICAgIHZvaWQgcmVsZWFzZVNlcmlh
bEV4ZWN1dG9yKEV4ZWN1dG9yKik7CisKK3ByaXZhdGU6CisgICAgc3RhdGljIEV4ZWN1dG9yUG9v
bCogc19leGVjdXRvclBvb2w7CisgICAgRXhlY3V0b3JQb29sKCk7CisgICAgRXhlY3V0b3IqIG5l
eHRFeGVjdXRvcigpOworICAgIEV4ZWN1dG9yKiBzZXJpYWxFeGVjdXRvcldpdGhNaW5pbXVtQWNx
dWlyZUNvdW50KCk7CisKKyAgICBNdXRleCBtX211dGV4OworICAgIFZlY3RvcjxFeGVjdXRvcio+
IG1fZXhlY3V0b3JQb29sOworfTsKKworRXhlY3V0b3JQb29sKiBFeGVjdXRvclBvb2w6OnNfZXhl
Y3V0b3JQb29sOworCit2b2lkIEV4ZWN1dG9yUG9vbDo6aW5pdGlhbGl6ZUV4ZWN1dG9yUG9vbCgp
Cit7CisgICAgaWYgKCFzX2V4ZWN1dG9yUG9vbCkKKyAgICAgICAgc19leGVjdXRvclBvb2wgPSBu
ZXcgRXhlY3V0b3JQb29sOworfQorCitFeGVjdXRvclBvb2wqIGV4ZWN1dG9yUG9vbCgpCit7Cisg
ICAgcmV0dXJuIEV4ZWN1dG9yUG9vbDo6c19leGVjdXRvclBvb2w7Cit9CisKK0V4ZWN1dG9yUG9v
bDo6RXhlY3V0b3JQb29sKCkKK3sKKyAgICBtX2V4ZWN1dG9yUG9vbC5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KG51bWJlck9mUHJvY2Vzc29yQ29yZXMoKSk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBudW1iZXJPZlByb2Nlc3NvckNvcmVzKCk7IGkrKykKKyAgICAgICAgbV9leGVjdXRvclBvb2wu
YXBwZW5kKG5ldyBFeGVjdXRvcigpKTsKK30KKworRXhlY3V0b3JQb29sOjp+RXhlY3V0b3JQb29s
KCkKK3sKK30KKwordm9pZCBFeGVjdXRvclBvb2w6OmV4ZWN1dGUoY29uc3QgRnVuY3Rpb248dm9p
ZCgpPiYgZnVuY3Rpb24pCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworICAg
IG5leHRFeGVjdXRvcigpLT5leGVjdXRlKGZ1bmN0aW9uKTsKK30KKworRXhlY3V0b3IqIEV4ZWN1
dG9yUG9vbDo6bmV4dEV4ZWN1dG9yKCkKK3sKKyAgICBzdGF0aWMgdW5zaWduZWQgbG9uZyBuZXh0
ID0gMDsKKyAgICBpbnQgaW5kZXggPSBuZXh0ICUgbV9leGVjdXRvclBvb2wuc2l6ZSgpOworICAg
IG5leHQrKzsKKyAgICByZXR1cm4gbV9leGVjdXRvclBvb2xbaW5kZXhdOworfQorCitFeGVjdXRv
ciogRXhlY3V0b3JQb29sOjphY3F1aXJlU2VyaWFsRXhlY3V0b3IoKQoreworICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBFeGVjdXRvciogZXhlY3V0b3IgPSBzZXJpYWxFeGVj
dXRvcldpdGhNaW5pbXVtQWNxdWlyZUNvdW50KCk7CisgICAgZXhlY3V0b3ItPmFjcXVpcmUoKTsK
KyAgICByZXR1cm4gZXhlY3V0b3I7Cit9CisKK3ZvaWQgRXhlY3V0b3JQb29sOjpyZWxlYXNlU2Vy
aWFsRXhlY3V0b3IoRXhlY3V0b3IqIGV4ZWN1dG9yKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX211dGV4KTsKKyAgICBleGVjdXRvci0+cmVsZWFzZSgpOworfQorCisvLyBGSVhNRTogV2Ug
c2ltcGx5IHJldHVybnMgdGhlIGV4ZWN1dG9yIHdpdGggdGhlIG1pbmltdW0gYWNxdWlyZSBjb3Vu
dHMuCisvLyBUaGlzIHZhbHVlIGRvZXMgbm90IHJlZmxlY3QgdGhlIHJlYWwgc3lzdGVtIGxvYWQu
CitFeGVjdXRvciogRXhlY3V0b3JQb29sOjpzZXJpYWxFeGVjdXRvcldpdGhNaW5pbXVtQWNxdWly
ZUNvdW50KCkKK3sKKyAgICBpbnQgbWluaW11bUFjcXVpcmVDb3VudCA9IHN0ZDo6bnVtZXJpY19s
aW1pdHM8aW50Pjo6bWF4KCk7CisgICAgaW50IGluZGV4ID0gbV9leGVjdXRvclBvb2wuc2l6ZSgp
OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2V4ZWN1dG9yUG9vbC5zaXplKCk7IGkr
KykgeworICAgICAgICBpZiAobV9leGVjdXRvclBvb2xbaV0tPmFjcXVpcmVDb3VudCgpIDwgbWlu
aW11bUFjcXVpcmVDb3VudCkgeworICAgICAgICAgICAgbWluaW11bUFjcXVpcmVDb3VudCA9IG1f
ZXhlY3V0b3JQb29sW2ldLT5hY3F1aXJlQ291bnQoKTsKKyAgICAgICAgICAgIGluZGV4ID0gaTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIEFTU0VSVChpbmRleCA8IG1fZXhlY3V0b3JQb29sLnNp
emUoKSk7CisgICAgcmV0dXJuIG1fZXhlY3V0b3JQb29sW2luZGV4XTsKK30KKworRGlzcGF0Y2hH
bG9iYWxRdWV1ZVByaXZhdGU6OkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKCkKK3sKKyAgICBF
eGVjdXRvclBvb2w6OmluaXRpYWxpemVFeGVjdXRvclBvb2woKTsKK30KKworRGlzcGF0Y2hHbG9i
YWxRdWV1ZVByaXZhdGU6On5EaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpCit7CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6
OmFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQoreworICAgIGV4ZWN1dG9y
UG9vbCgpLT5leGVjdXRlKGZ1bmN0aW9uKTsKK30KKworRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZh
dGU6OkRpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKCkKKyAgICA6IG1fZXhlY3V0b3JTdGF0dXMo
UnVubmluZykKK3sKKyAgICBtX3NlcmlhbEV4ZWN1dG9yID0gZXhlY3V0b3JQb29sKCktPmFjcXVp
cmVTZXJpYWxFeGVjdXRvcigpOworfQorCitEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6fkRp
c3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKCkKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9l
eGVjdXRvclN0YXR1c011dGV4KTsKKyAgICBtX2V4ZWN1dG9yU3RhdHVzID0gVGVybWluYXRpb25C
ZWd1bjsKKworICAgIG1fc2VyaWFsRXhlY3V0b3ItPmV4ZWN1dGUoYmluZCgmRGlzcGF0Y2hTZXJp
YWxRdWV1ZVByaXZhdGU6OmVuc3VyZVRlcm1pbmF0ZSwgdGhpcykpOworICAgIHdoaWxlIChtX2V4
ZWN1dG9yU3RhdHVzICE9IFRlcm1pbmlhdGlvbkNvbXBsZXRlZCkKKyAgICAgICAgbV90ZXJtaW5h
dGlvbkNvbXBsZXRlZC53YWl0KG1fZXhlY3V0b3JTdGF0dXNNdXRleCk7CisgICAgZXhlY3V0b3JQ
b29sKCktPnJlbGVhc2VTZXJpYWxFeGVjdXRvcihtX3NlcmlhbEV4ZWN1dG9yKTsKK30KKwordm9p
ZCBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6ZW5zdXJlVGVybWluYXRlKCkKK3sKKyAgICBN
dXRleExvY2tlciBsb2NrZXIobV9leGVjdXRvclN0YXR1c011dGV4KTsKKyAgICBBU1NFUlQobV9l
eGVjdXRvclN0YXR1cyA9PSBUZXJtaW5hdGlvbkJlZ3VuKTsKKyAgICBtX2V4ZWN1dG9yU3RhdHVz
ID0gVGVybWluaWF0aW9uQ29tcGxldGVkOworICAgIG1fdGVybWluYXRpb25Db21wbGV0ZWQuc2ln
bmFsKCk7Cit9CisKK3N0YXRpYyB2b2lkIGNhbmNlbGFibGVGdW5jdGlvbihEaXNwYXRjaFNlcmlh
bFF1ZXVlUHJpdmF0ZSogc2VyaWFsUXVldWUsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0
aW9uKQoreworICAgIGlmIChVTkxJS0VMWShzZXJpYWxRdWV1ZS0+aGFzVGVybWluYXRpb25CZWd1
bigpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZnVuY3Rpb24oKTsKK30KKwordm9pZCBEaXNw
YXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6YXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVu
Y3Rpb24pCit7CisgICAgQVNTRVJUKG1fZXhlY3V0b3JTdGF0dXMgPT0gUnVubmluZyk7CisgICAg
bV9zZXJpYWxFeGVjdXRvci0+ZXhlY3V0ZShiaW5kKGNhbmNlbGFibGVGdW5jdGlvbiwgdGhpcywg
ZnVuY3Rpb24pKTsKK30KKworYm9vbCBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6aGFzVGVy
bWluYXRpb25CZWd1bigpCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fZXhlY3V0b3JTdGF0
dXNNdXRleCk7CisgICAgQVNTRVJUKG1fZXhlY3V0b3JTdGF0dXMgIT0gVGVybWluaWF0aW9uQ29t
cGxldGVkKTsKKyAgICByZXR1cm4gbV9leGVjdXRvclN0YXR1cyA9PSBUZXJtaW5hdGlvbkJlZ3Vu
OworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vIEVOQUJMRShUSFJFQURJTkdf
TElCRElTUEFUQ0gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJp
dmF0ZUdlbmVyaWMuaCBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJp
Yy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNmZTQ5YTYxNDhlNGFmMzJmYzYwMDIxYzc4MTIxOGM1ODU2YTc3YmQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdl
bmVyaWMuaApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBh
bnkgMTAwIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWNf
aAorI2RlZmluZSBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWNfaAorCisjaWYgIUVOQUJMRShU
SFJFQURJTkdfTElCRElTUEFUQ0gpCisKKyNpbmNsdWRlICJEaXNwYXRjaFF1ZXVlLmgiCisKKyNp
bmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgRGlz
cGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERpc3Bh
dGNoR2xvYmFsUXVldWVQcml2YXRlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZT4g
Y3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGlzcGF0Y2hHbG9i
YWxRdWV1ZVByaXZhdGUoKSk7CisgICAgfQorCisgICAgfkRpc3BhdGNoR2xvYmFsUXVldWVQcml2
YXRlKCk7CisKKyAgICB2b2lkIGFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKKworcHJp
dmF0ZToKKyAgICBEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpOworfTsKKworY2xhc3MgRXhl
Y3V0b3I7CisKK2NsYXNzIERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlIHsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSk7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8RGlzcGF0Y2hT
ZXJpYWxRdWV1ZVByaXZhdGU+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKCkpOworICAgIH0KKworICAgIH5EaXNw
YXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSgpOworCisgICAgdm9pZCBhc3luYyhjb25zdCBGdW5jdGlv
bjx2b2lkKCk+Jik7CisKKyAgICBib29sIGhhc1Rlcm1pbmF0aW9uQmVndW4oKTsKKworcHJpdmF0
ZToKKyAgICBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSgpOworICAgIHZvaWQgZW5zdXJlVGVy
bWluYXRlKCk7CisKKyAgICBlbnVtIEV4ZWN1dG9yU3RhdHVzIHsgUnVubmluZywgVGVybWluYXRp
b25CZWd1biwgVGVybWluaWF0aW9uQ29tcGxldGVkIH07CisgICAgTXV0ZXggbV9leGVjdXRvclN0
YXR1c011dGV4OworICAgIEV4ZWN1dG9yU3RhdHVzIG1fZXhlY3V0b3JTdGF0dXM7CisgICAgVGhy
ZWFkQ29uZGl0aW9uIG1fdGVybWluYXRpb25Db21wbGV0ZWQ7CisKKyAgICBFeGVjdXRvciogbV9z
ZXJpYWxFeGVjdXRvcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gIUVO
QUJMRShUSFJFQURJTkdfTElCRElTUEFUQ0gpCisKKyNlbmRpZiAvLyBEaXNwYXRjaFF1ZXVlUHJp
dmF0ZUdlbmVyaWNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVBy
aXZhdGVMaWJkaXNwYXRjaC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0
ZUxpYmRpc3BhdGNoLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOTk3Y2FlYzA2YzM3Y2NjNzkyZmJkNjU4MDZk
NjU1NWEzZmY1NWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hR
dWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5jcHAKQEAgLTAsMCArMSwxMjUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgQ29tcGFueSAxMDAgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoVEhSRUFESU5HX0xJQkRJU1BBVENIKQorCisjaW5jbHVkZSAiRGlz
cGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oIgorCituYW1lc3BhY2UgV1RGIHsKKworRGlz
cGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6OkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKCkKK3sK
KyAgICBtX2Rpc3BhdGNoUXVldWUgPSBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENI
X1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApOworfQorCitEaXNwYXRjaEdsb2JhbFF1ZXVlUHJp
dmF0ZTo6fkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKK30KKworc3RydWN0IEZ1bmN0aW9uQm94IHsKKyAgICBGdW5jdGlvbkJveChjb25z
dCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKKyAgICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0
aW9uKQorICAgIHsKKyAgICB9CisKKyAgICBGdW5jdGlvbjx2b2lkKCk+IG1fZnVuY3Rpb247Cit9
OworCit2b2lkIERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjphc3luYyhjb25zdCBGdW5jdGlv
bjx2b2lkKCk+JiBmdW5jdGlvbikKK3sKKyAgICBGdW5jdGlvbkJveCogYm94ID0gbmV3IEZ1bmN0
aW9uQm94KGZ1bmN0aW9uKTsKKyAgICBkaXNwYXRjaF9hc3luY19mKG1fZGlzcGF0Y2hRdWV1ZSwg
cmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oYm94KSwgJkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRl
OjppbnZva2VGdW5jdGlvbik7Cit9CisKK3ZvaWQgRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6
Omludm9rZUZ1bmN0aW9uKHZvaWQqIGNvbnRleHQpCit7CisgICAgRnVuY3Rpb25Cb3gqIGJveCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8RnVuY3Rpb25Cb3gqPihjb250ZXh0KTsKKyAgICBib3gtPm1fZnVu
Y3Rpb24oKTsKKyAgICBkZWxldGUgYm94OworfQorCitEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0
ZTo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUoKQorICAgIDogbV9oYXNUZXJtaW5hdGlvbkJl
Z3VuKGZhbHNlKQoreworICAgIG1fZGlzcGF0Y2hHcm91cCA9IGRpc3BhdGNoX2dyb3VwX2NyZWF0
ZSgpOworICAgIG1fZGlzcGF0Y2hRdWV1ZSA9IGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgwLCAwKTsK
K30KKworRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6On5EaXNwYXRjaFNlcmlhbFF1ZXVlUHJp
dmF0ZSgpCit7CisgICAgdGVybWluYXRlKCk7CisgICAgZGlzcGF0Y2hfcmVsZWFzZShtX2Rpc3Bh
dGNoR3JvdXApOworICAgIGRpc3BhdGNoX3JlbGVhc2UobV9kaXNwYXRjaFF1ZXVlKTsKK30KKwor
dm9pZCBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6dGVybWluYXRlKCkKK3sKKyAgICB7Cisg
ICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2hhc1Rlcm1pbmF0aW9uQmVndW5NdXRleCk7Cisg
ICAgICAgIG1faGFzVGVybWluYXRpb25CZWd1biA9IHRydWU7CisgICAgfQorICAgIGRpc3BhdGNo
X2dyb3VwX3dhaXQobV9kaXNwYXRjaEdyb3VwLCBESVNQQVRDSF9USU1FX0ZPUkVWRVIpOworfQor
CitzdHJ1Y3QgQ2FuY2VsYWJsZUZ1bmN0aW9uQm94IHsKKyAgICBDYW5jZWxhYmxlRnVuY3Rpb25C
b3goY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24sIERpc3BhdGNoU2VyaWFsUXVldWVQ
cml2YXRlKiBxdWV1ZSkKKyAgICAgICAgOiBtX2Z1bmN0aW9uKGZ1bmN0aW9uKQorICAgICAgICAs
IG1fcXVldWUocXVldWUpCisgICAgeworICAgIH0KKworICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9m
dW5jdGlvbjsKKyAgICBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSogbV9xdWV1ZTsKK307CisK
K3ZvaWQgRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6Omludm9rZUZ1bmN0aW9uKHZvaWQqIGNv
bnRleHQpCit7CisgICAgQ2FuY2VsYWJsZUZ1bmN0aW9uQm94KiBib3ggPSByZWludGVycHJldF9j
YXN0PENhbmNlbGFibGVGdW5jdGlvbkJveCo+KGNvbnRleHQpOworCisgICAgYm9vbCBpc0NhbmNl
bGVkOworICAgIHsKKyAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKGJveC0+bV9xdWV1ZS0+bV9o
YXNUZXJtaW5hdGlvbkJlZ3VuTXV0ZXgpOworICAgICAgICBpc0NhbmNlbGVkID0gYm94LT5tX3F1
ZXVlLT5tX2hhc1Rlcm1pbmF0aW9uQmVndW47CisgICAgfQorICAgIGlmIChMSUtFTFkoIWlzQ2Fu
Y2VsZWQpKQorICAgICAgICBib3gtPm1fZnVuY3Rpb24oKTsKKworICAgIGRlbGV0ZSBib3g7Cit9
CisKK3ZvaWQgRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmFzeW5jKGNvbnN0IEZ1bmN0aW9u
PHZvaWQoKT4mIGZ1bmN0aW9uKQoreworICAgIEFTU0VSVCghbV9oYXNUZXJtaW5hdGlvbkJlZ3Vu
KTsKKworICAgIENhbmNlbGFibGVGdW5jdGlvbkJveCogYm94ID0gbmV3IENhbmNlbGFibGVGdW5j
dGlvbkJveChmdW5jdGlvbiwgdGhpcyk7CisgICAgZGlzcGF0Y2hfZ3JvdXBfYXN5bmNfZihtX2Rp
c3BhdGNoR3JvdXAsIG1fZGlzcGF0Y2hRdWV1ZSwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oYm94
KSwgJkRpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjppbnZva2VGdW5jdGlvbik7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKFRIUkVBRElOR19MSUJESVNQQVRD
SCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlz
cGF0Y2guaCBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2gu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lYzkwN2ZlZWQ2NzY2MjNlZDQ3M2E5YzE4Y2M5MDAyNjBhMWE0MzQ0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJk
aXNwYXRjaC5oCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ29t
cGFueSAxMDAgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlz
cGF0Y2hfaAorI2RlZmluZSBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoX2gKKworI2lm
IEVOQUJMRShUSFJFQURJTkdfTElCRElTUEFUQ0gpCisKKyNpbmNsdWRlICJEaXNwYXRjaFF1ZXVl
LmgiCisKKyNpbmNsdWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBEaXNwYXRjaEdsb2JhbFF1ZXVl
UHJpdmF0ZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGlzcGF0Y2hHbG9iYWxRdWV1ZVBy
aXZhdGUpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzT3duUHRyPERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlPiBjcmVhdGUoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgp
KTsKKyAgICB9CisKKyAgICB+RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKTsKKworICAgIHZv
aWQgYXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOworCitwcml2YXRlOgorICAgIERpc3Bh
dGNoR2xvYmFsUXVldWVQcml2YXRlKCk7CisgICAgc3RhdGljIHZvaWQgaW52b2tlRnVuY3Rpb24o
dm9pZCogY29udGV4dCk7CisKKyAgICBkaXNwYXRjaF9xdWV1ZV90IG1fZGlzcGF0Y2hRdWV1ZTsK
K307CisKK2NsYXNzIERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlIHsKKyAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSk7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8RGlzcGF0Y2hTZXJp
YWxRdWV1ZVByaXZhdGU+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKCkpOworICAgIH0KKworICAgIH5EaXNwYXRj
aFNlcmlhbFF1ZXVlUHJpdmF0ZSgpOworCisgICAgdm9pZCBhc3luYyhjb25zdCBGdW5jdGlvbjx2
b2lkKCk+Jik7CisKK3ByaXZhdGU6CisgICAgRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUoKTsK
KyAgICBzdGF0aWMgdm9pZCBpbnZva2VGdW5jdGlvbih2b2lkKiBjb250ZXh0KTsKKworICAgIHZv
aWQgdGVybWluYXRlKCk7CisKKyAgICBkaXNwYXRjaF9xdWV1ZV90IG1fZGlzcGF0Y2hRdWV1ZTsK
KyAgICBkaXNwYXRjaF9ncm91cF90IG1fZGlzcGF0Y2hHcm91cDsKKyAgICBNdXRleCBtX2hhc1Rl
cm1pbmF0aW9uQmVndW5NdXRleDsKKyAgICBib29sIG1faGFzVGVybWluYXRpb25CZWd1bjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKFRIUkVBRElOR19MSUJE
SVNQQVRDSCkKKworI2VuZGlmIC8vIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2hfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwIGIvU291cmNl
L1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCmluZGV4IDkyMWRkM2JlN2NlNGQwZTgwMDg0
YzBlNjdlMGMwYmU4ZjhhYzdhNzguLjBiYTY3YzYzNjdjMGRmZjczZjUxNWI3ZGFiMjY0MGY3ODRk
M2ZhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKQEAgLTQ0LDYgKzQ0LDcg
QEAKICNpbmNsdWRlICJUaHJlYWRJZGVudGlmaWVyRGF0YVB0aHJlYWRzLmgiCiAjaW5jbHVkZSAi
VGhyZWFkU3BlY2lmaWMuaCIKICNpbmNsdWRlICJVbnVzZWRQYXJhbS5oIgorI2luY2x1ZGUgPHd0
Zi9EaXNwYXRjaFF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1dURlRocmVhZERhdGEuaD4KQEAgLTg5LDYg
KzkwLDcgQEAgdm9pZCBpbml0aWFsaXplVGhyZWFkaW5nKCkKICAgICB3dGZUaHJlYWREYXRhKCk7
CiAgICAgc19kdG9hUDVNdXRleCA9IG5ldyBNdXRleDsKICAgICBpbml0aWFsaXplRGF0ZXMoKTsK
KyAgICBEaXNwYXRjaFF1ZXVlOjppbml0aWFsaXplRGlzcGF0Y2hRdWV1ZSgpOwogfQogCiB2b2lk
IGxvY2tBdG9taWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWNNdXRleCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2lu
LmNwcAppbmRleCBkMzM5NzNkYWY3OGM5YjZlNjBkN2QxYzNlOTRiYTZmYjZkODQ5YjQ1Li40ODU2
N2QwMWIzZGNjYWQ4NzNjODI5ODJlNGFjOTNmZmFmMDYxNmQwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dp
bi5jcHAKQEAgLTkzLDYgKzkzLDcgQEAKICNpbmNsdWRlICJUaHJlYWRGdW5jdGlvbkludm9jYXRp
b24uaCIKICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CisjaW5jbHVkZSA8d3RmL0Rpc3BhdGNoUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpA
QCAtMTc5LDYgKzE4MCw3IEBAIHZvaWQgaW5pdGlhbGl6ZVRocmVhZGluZygpCiAgICAgd3RmVGhy
ZWFkRGF0YSgpOwogICAgIHNfZHRvYVA1TXV0ZXggPSBuZXcgTXV0ZXg7CiAgICAgaW5pdGlhbGl6
ZURhdGVzKCk7CisgICAgRGlzcGF0Y2hRdWV1ZTo6aW5pdGlhbGl6ZURpc3BhdGNoUXVldWUoKTsK
IH0KIAogc3RhdGljIEhhc2hNYXA8RFdPUkQsIEhBTkRMRT4mIHRocmVhZE1hcCgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3BwIGIvU291
cmNlL1dURi93dGYvY2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcAppbmRleCA5ZTY1OTJi
NTcxNTY3OWFlMmJjOWE2ZDFhMGI2ZjNiOGM5ZTE4ZTgxLi5hZTVmYzgxOTZiMWNhNjlmYTJhMTUx
NGVlMjg2YzEzZjllNzI0MjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9jaHJvbWl1bS9N
YWluVGhyZWFkQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2Nocm9taXVtL01haW5U
aHJlYWRDaHJvbWl1bS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkFzc2VydGlv
bnMuaCIKICNpbmNsdWRlICJDaHJvbWl1bVRocmVhZGluZy5oIgorI2luY2x1ZGUgIkZ1bmN0aW9u
YWwuaCIKICNpbmNsdWRlICJUaHJlYWRpbmcuaCIKIAogbmFtZXNwYWNlIFdURiB7CkBAIC01NCw2
ICs1NSwxOCBAQCB2b2lkIGNhbGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9uKiBmdW5j
dGlvbiwgdm9pZCogY29udGV4dCkKICAgICBDaHJvbWl1bVRocmVhZGluZzo6Y2FsbE9uTWFpblRo
cmVhZChmdW5jdGlvbiwgY29udGV4dCk7CiB9CiAKK3N0YXRpYyB2b2lkIGNhbGxGdW5jdGlvbk9i
amVjdCh2b2lkKiBjb250ZXh0KQoreworICAgIEZ1bmN0aW9uPHZvaWQoKT4qIGZ1bmN0aW9uID0g
c3RhdGljX2Nhc3Q8RnVuY3Rpb248dm9pZCgpPio+KGNvbnRleHQpOworICAgICgqZnVuY3Rpb24p
KCk7CisgICAgZGVsZXRlIGZ1bmN0aW9uOworfQorCit2b2lkIGNhbGxPbk1haW5UaHJlYWQoY29u
c3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCit7CisgICAgY2FsbE9uTWFpblRocmVhZChj
YWxsRnVuY3Rpb25PYmplY3QsIG5ldyBGdW5jdGlvbjx2b2lkICgpPihmdW5jdGlvbikpOworfQor
CiB2b2lkIGNhbGxPbk1haW5UaHJlYWRBbmRXYWl0KE1haW5UaHJlYWRGdW5jdGlvbiosIHZvaWQq
KQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155763</attachid>
            <date>2012-08-01 02:27:46 -0700</date>
            <delta_ts>2012-08-01 02:36:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-90584-20120801182717.patch</filename>
            <type>text/plain</type>
            <size>42487</size>
            <attacher name="Kwonjin Jeong">gram</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDEwZTIwMmMwZDAyNTg2ZTEyY2U5Mjdi
MDdkYjQ3ZGIxOWJmYjEyNzkuLjM4YzUyMTJiYTU1M2YwYzE3MWU0NTkwZjdiZmZlYjcxNDM4NjU3
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTE4IEBACisyMDEyLTA4LTAxICBLd29uamluIEplb25nICA8Z3Jh
bUBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBBZGQgRGlzcGF0Y2hRdWV1ZSBjbGFzcy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNTg0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXV0aG9yZWQgYnkg
S3dvbmppbiBKZW9uZyBhbmQgRG9uZ3N1bmcgSHVhbmcuCisKKyAgICAgICAgRGlzcGF0Y2hRdWV1
ZSBpcyBhIHNpbXBsZSBDKysgd3JhcHBlciBhcm91bmQgbGliZGlzcGF0Y2ggKEdDRCkuIEEgdGhy
ZWFkIHBvb2wgYmFzZWQKKyAgICAgICAgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gaXMgYWxzbyBh
dmFpYWJsZS4gU28gcG9ydHMgd2l0aG91dCBsaWJkaXNwYXRjaCBjYW4gdXNlIHRoZSBzYW1lIEFQ
SS4KKworICAgICAgICBJdCBwcm92aWRlcyBvbmx5IHRoZSBzbWFsbCBzdWJzZXQgb2YgdGhlIG9y
aWdpbmFsIGxpYmRpc3BhdGNoIEFQSS4gVGhlcmUgYXJlIHRocmVlIHR5cGVzCisgICAgICAgIG9m
IERpc3BhdGNoUXVldWU6IHNlcmlhbCwgZ2xvYmFsIGFuZCBtYWluLiBUaGVzZSBxdWV1ZXMgY29y
cmVzcG9uZCB0byB0aGUgc2VyaWFsLAorICAgICAgICBjb25jdXJyZW50IGdsb2JhbCBhbmQgbWFp
biBxdWV1ZSBpbiBsaWJkaXNwYXRjaC4KKworICAgICAgICBEaXNwYXRjaFF1ZXVlOjphc3luYyhj
b25zdCBGdW5jdGlvbjx2b2lkKCk+JikgbWV0aG9kIGlzIHVzZWQgdG8gc2NoZWR1bGUgYSB0YXNr
IHJlZ2FyZGxlc3MKKyAgICAgICAgb2YgdGhlIHF1ZXVlIHR5cGUuCisKKyAgICAgICAgQ3VycmVu
dGx5LCBpdCBpcyB1c2VkIGJ5IHBhcmFsbGVsIGltYWdlIGRlY29kZXJzIHRvIHBlcmZvcm0gaW1h
Z2UgZGVjb2RpbmcgY29uY3VycmVudGx5LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBXVEYuZ3lwaToKKyAgICAgICAgKiBXVEYucHJvOgorICAgICAgICAqIFdU
Ri52Y3Byb2ovV1RGLnZjcHJvajoKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0Rpc3Bh
dGNoUXVldWUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChEaXNwYXRjaE1h
aW5RdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoTWFpblF1ZXVlOjp+RGlzcGF0Y2hNYWlu
UXVldWUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaE1haW5RdWV1ZTo6YXN5bmMpOgorICAgICAg
ICAoV1RGOjpEaXNwYXRjaE1haW5RdWV1ZTo6RGlzcGF0Y2hNYWluUXVldWUpOgorICAgICAgICAo
RGlzcGF0Y2hHbG9iYWxRdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoR2xvYmFsUXVldWU6
On5EaXNwYXRjaEdsb2JhbFF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1
ZTo6YXN5bmMpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlOjpEaXNwYXRjaEds
b2JhbFF1ZXVlKToKKyAgICAgICAgKERpc3BhdGNoU2VyaWFsUXVldWUpOgorICAgICAgICAoV1RG
OjpEaXNwYXRjaFNlcmlhbFF1ZXVlOjp+RGlzcGF0Y2hTZXJpYWxRdWV1ZSk6CisgICAgICAgIChX
VEY6OkRpc3BhdGNoU2VyaWFsUXVldWU6OmFzeW5jKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hT
ZXJpYWxRdWV1ZTo6RGlzcGF0Y2hTZXJpYWxRdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNo
UXVldWU6Omdsb2JhbFF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hRdWV1ZTo6bWFpblF1
ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hRdWV1ZTo6aW5pdGlhbGl6ZURpc3BhdGNoUXVl
dWUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFF1ZXVlOjpjcmVhdGVTZXJpYWxRdWV1ZSk6Cisg
ICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWUuaDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAg
ICAgICAoRGlzcGF0Y2hRdWV1ZSk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoUXVldWU6On5EaXNw
YXRjaFF1ZXVlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hRdWV1ZTo6RGlzcGF0Y2hRdWV1ZSk6
CisgICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHA6IEFkZGVkLgor
ICAgICAgICAoV1RGKToKKyAgICAgICAgKEV4ZWN1dG9yKToKKyAgICAgICAgKFdURjo6RXhlY3V0
b3I6OmFjcXVpcmUpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6cmVsZWFzZSk6CisgICAgICAg
IChXVEY6OkV4ZWN1dG9yOjphY3F1aXJlQ291bnQpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6
RXhlY3V0b3IpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6fkV4ZWN1dG9yKToKKyAgICAgICAg
KFdURjo6RXhlY3V0b3I6OmV4ZWN1dGUpOgorICAgICAgICAoV1RGOjpFeGVjdXRvcjo6d29ya2Vy
VGhyZWFkKToKKyAgICAgICAgKEV4ZWN1dG9yUG9vbCk6CisgICAgICAgIChXVEY6OkV4ZWN1dG9y
UG9vbDo6aW5pdGlhbGl6ZUV4ZWN1dG9yUG9vbCk6CisgICAgICAgIChXVEY6OmV4ZWN1dG9yUG9v
bCk6CisgICAgICAgIChXVEY6OkV4ZWN1dG9yUG9vbDo6RXhlY3V0b3JQb29sKToKKyAgICAgICAg
KFdURjo6RXhlY3V0b3JQb29sOjp+RXhlY3V0b3JQb29sKToKKyAgICAgICAgKFdURjo6RXhlY3V0
b3JQb29sOjpleGVjdXRlKToKKyAgICAgICAgKFdURjo6RXhlY3V0b3JQb29sOjpuZXh0RXhlY3V0
b3IpOgorICAgICAgICAoV1RGOjpFeGVjdXRvclBvb2w6OmFjcXVpcmVTZXJpYWxFeGVjdXRvcik6
CisgICAgICAgIChXVEY6OkV4ZWN1dG9yUG9vbDo6cmVsZWFzZVNlcmlhbEV4ZWN1dG9yKToKKyAg
ICAgICAgKFdURjo6RXhlY3V0b3JQb29sOjpzZXJpYWxFeGVjdXRvcldpdGhNaW5pbXVtQWNxdWly
ZUNvdW50KToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6OkRpc3Bh
dGNoR2xvYmFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hHbG9iYWxRdWV1
ZVByaXZhdGU6On5EaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAgIChXVEY6OkRp
c3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjphc3luYyk6CisgICAgICAgIChXVEY6OkRpc3BhdGNo
U2VyaWFsUXVldWVQcml2YXRlOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAg
IChXVEY6OkRpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjp+RGlzcGF0Y2hTZXJpYWxRdWV1ZVBy
aXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6ZW5zdXJl
VGVybWluYXRlKToKKyAgICAgICAgKFdURjo6Y2FuY2VsYWJsZUZ1bmN0aW9uKToKKyAgICAgICAg
KFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmFzeW5jKToKKyAgICAgICAgKFdURjo6
RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6Omhhc1Rlcm1pbmF0aW9uQmVndW4pOgorICAgICAg
ICAqIHd0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaDogQWRkZWQuCisgICAgICAgIChX
VEYpOgorICAgICAgICAoRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RG
OjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKERpc3BhdGNo
U2VyaWFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVBy
aXZhdGU6OmNyZWF0ZSk6CisgICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlz
cGF0Y2guY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChXVEY6OkRpc3BhdGNo
R2xvYmFsUXVldWVQcml2YXRlOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSk6CisgICAgICAg
IChXVEY6OkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjp+RGlzcGF0Y2hHbG9iYWxRdWV1ZVBy
aXZhdGUpOgorICAgICAgICAoV1RGOjpGdW5jdGlvbkJveDo6RnVuY3Rpb25Cb3gpOgorICAgICAg
ICAoRnVuY3Rpb25Cb3gpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0
ZTo6YXN5bmMpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6aW52
b2tlRnVuY3Rpb24pOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6
RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaFNlcmlh
bFF1ZXVlUHJpdmF0ZTo6fkRpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKToKKyAgICAgICAgKFdU
Rjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OnRlcm1pbmF0ZSk6CisgICAgICAgIChXVEY6
OkNhbmNlbGFibGVGdW5jdGlvbkJveDo6Q2FuY2VsYWJsZUZ1bmN0aW9uQm94KToKKyAgICAgICAg
KENhbmNlbGFibGVGdW5jdGlvbkJveCk6CisgICAgICAgIChXVEY6OkRpc3BhdGNoU2VyaWFsUXVl
dWVQcml2YXRlOjppbnZva2VGdW5jdGlvbik6CisgICAgICAgIChXVEY6OkRpc3BhdGNoU2VyaWFs
UXVldWVQcml2YXRlOjphc3luYyk6CisgICAgICAgICogd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRl
TGliZGlzcGF0Y2guaDogQWRkZWQuCisgICAgICAgIChXVEYpOgorICAgICAgICAoRGlzcGF0Y2hH
bG9iYWxRdWV1ZVByaXZhdGUpOgorICAgICAgICAoV1RGOjpEaXNwYXRjaEdsb2JhbFF1ZXVlUHJp
dmF0ZTo6Y3JlYXRlKToKKyAgICAgICAgKERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKToKKyAg
ICAgICAgKFdURjo6RGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmNyZWF0ZSk6CisgICAgICAg
ICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZVRo
cmVhZGluZyk6CisgICAgICAgICogd3RmL1RocmVhZGluZ1dpbi5jcHA6CisgICAgICAgIChXVEY6
OmluaXRpYWxpemVUaHJlYWRpbmcpOgorICAgICAgICAqIHd0Zi9jaHJvbWl1bS9NYWluVGhyZWFk
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV1RGOjpjYWxsRnVuY3Rpb25PYmplY3QpOgorICAgICAg
ICAoV1RGKToKKyAgICAgICAgKFdURjo6Y2FsbE9uTWFpblRocmVhZCk6CisKIDIwMTItMDctMzEg
IFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBTdG9wIG1hc2tpbmcgOCBi
aXRzIG9mZiBvZiB0aGUgdmlzaXRlZCBsaW5rIGhhc2guIFdlIG5lZWQgYWxsIHRoZSBiaXRzIQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dURi9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDJiODQ0YWYyNTQ5NDM5M2UyY2Q5YTVhODYyYjA3NDI1
NDM5OTY4NzYuLmY5YjM0NDkxNGRjMGVhODRhMzhiN2Q5ZjUwMzhkZTM2NTVmODYwYTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV1RGL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM3LDYgKzM3LDEyIEBAIHd0Zl9zb3VyY2VzICs9IFwKICAg
ICBTb3VyY2UvV1RGL3d0Zi9EZWNvZGVyLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0RlcXVlLmgg
XAogICAgIFNvdXJjZS9XVEYvd3RmL0Rpc2FsbG93Q1R5cGUuaCBcCisgICAgU291cmNlL1dURi93
dGYvRGlzcGF0Y2hRdWV1ZS5jcHAgXAorICAgIFNvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWUu
aCBcCisgICAgU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCBc
CisgICAgU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmggXAorICAg
IFNvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwIFwKKyAg
ICBTb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmggXAogICAg
IFNvdXJjZS9XVEYvd3RmL0RvdWJseUxpbmtlZExpc3QuaCBcCiAgICAgU291cmNlL1dURi93dGYv
RHluYW1pY0Fubm90YXRpb25zLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvRHluYW1pY0Fubm90
YXRpb25zLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYuZ3lwaSBiL1NvdXJjZS9XVEYv
V1RGLmd5cGkKaW5kZXggNjY0YjQwZGVhOGY1YWJhYTBkMTgyZWIxNTA3YjE0YWUxMTM4MGJiOC4u
NTVkNzA0OGMxYjQxODdjOWQ4OTAwZmFlYzBlOTA4ZmRmOTA4ZmFkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9XVEYuZ3lwaQorKysgYi9Tb3VyY2UvV1RGL1dURi5neXBpCkBAIC0xMzksNiArMTM5
LDEyIEBACiAgICAgICAgICAgICAnd3RmL0RhdGFMb2cuY3BwJywKICAgICAgICAgICAgICd3dGYv
RGF0ZU1hdGguY3BwJywKICAgICAgICAgICAgICd3dGYvRGVjaW1hbE51bWJlci5jcHAnLAorICAg
ICAgICAgICAgJ3d0Zi9EaXNwYXRjaFF1ZXVlLmNwcCcsCisgICAgICAgICAgICAnd3RmL0Rpc3Bh
dGNoUXVldWUuaCcsCisgICAgICAgICAgICAnd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJp
Yy5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCcs
CisgICAgICAgICAgICAnd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2guY3BwJywK
KyAgICAgICAgICAgICd3dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oJywKICAg
ICAgICAgICAgICd3dGYvRHluYW1pY0Fubm90YXRpb25zLmNwcCcsCiAgICAgICAgICAgICAnd3Rm
L0R5bmFtaWNBbm5vdGF0aW9ucy5oJywKICAgICAgICAgICAgICd3dGYvRmFzdE1hbGxvYy5jcHAn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dURi9XVEYucHJvCmlu
ZGV4IDcyZDFkNzEyYTg2NjJjNGE2NTBiOWRjYjZlNGJkMjA3Y2MxYjUxYmIuLjg4NzAyZTgxMGVl
NWFjMDllYjc0NTUzM2U3OWQyMmJjOTg2MjFlOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RG
LnBybworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTE4MCw2ICsxODAsOSBAQCBTT1VSQ0VT
ICs9IFwKICAgICBEYXRlTWF0aC5jcHAgXAogICAgIERhdGFMb2cuY3BwIFwKICAgICBEZWNpbWFs
TnVtYmVyLmNwcCBcCisgICAgRGlzcGF0Y2hRdWV1ZS5jcHAgXAorICAgIERpc3BhdGNoUXVldWVQ
cml2YXRlTGliZGlzcGF0Y2guY3BwIFwKKyAgICBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMu
Y3BwIFwKICAgICBkdG9hLmNwcCBcCiAgICAgZHRvYS9iaWdudW0tZHRvYS5jYyBcCiAgICAgZHRv
YS9iaWdudW0uY2MgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3By
b2ogYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagppbmRleCA5NGU4MzI2ZjM5OTQ5
ZGU4ZjJlZWU0M2E2MWJiMjYxYjQ3ZTIxZWU1Li5mYTUzZmUwZGFkZjBkNDdhZDM5YmJmOWJkNWY2
N2YxNTA4YTdhYTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJv
agorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagpAQCAtNzA5LDYgKzcwOSwz
MCBAQAogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxE
aXNwYXRjaFF1ZXVlLmNwcCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVsYXRpdmVQ
YXRoPSIuLlx3dGZcRGlzcGF0Y2hRdWV1ZS5oIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuY3BwIgor
CQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCisJCQlSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxEaXNwYXRj
aFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQorCQkJUmVs
YXRpdmVQYXRoPSIuLlx3dGZcRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5jcHAiCisJ
CQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKKwkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXERpc3BhdGNo
UXVldWVQcml2YXRlTGliZGlzcGF0Y2guaCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkJ
UmVsYXRpdmVQYXRoPSIuLlx3dGZcRG91Ymx5TGlua2VkTGlzdC5oIgogCQkJPgogCQk8L0ZpbGU+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmNTM0N2IyNGRj
Y2MyNzM0ZWJmN2RmZmM5MTNmYTNiOTY1MzkzOWMzLi5mOWIzOWZhM2QzM2RkMWViYjc5NGU1M2Uy
MTljY2YzY2NkOWZiZjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTUxLDYgKzUxLDEyIEBACiAJCUE4QTQ3M0E0MTUxQTgyNUIwMDQxMjNGRiAvKiBEZWNv
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0
NzI3RDE1MUE4MjVBMDA0MTIzRkYgLyogRGVjb2Rlci5oICovOyB9OwogCQlBOEE0NzNBNTE1MUE4
MjVCMDA0MTIzRkYgLyogRGVxdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEE4QTQ3MjdFMTUxQTgyNUEwMDQxMjNGRiAvKiBEZXF1ZS5oICovOyB9Owog
CQlBOEE0NzNBNjE1MUE4MjVCMDA0MTIzRkYgLyogRGlzYWxsb3dDVHlwZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyN0YxNTFBODI1QTAwNDEy
M0ZGIC8qIERpc2FsbG93Q1R5cGUuaCAqLzsgfTsKKwkJQThBNDczQTcxNTFBODI1QjAwNDEyM0Y5
IC8qIERpc3BhdGNoUXVldWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQThBNDcyODAxNTFBODI1QTAwNDEyM0Y5IC8qIERpc3BhdGNoUXVldWUuY3Bw
ICovOyB9OworCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkEgLyogRGlzcGF0Y2hRdWV1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyODAxNTFB
ODI1QTAwNDEyM0ZBIC8qIERpc3BhdGNoUXVldWUuaCAqLzsgfTsKKwkJQThBNDczQTcxNTFBODI1
QjAwNDEyM0ZCIC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI4MDE1MUE4MjVBMDA0MTIz
RkIgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCAqLzsgfTsKKwkJQThBNDczQTcx
NTFBODI1QjAwNDEyM0ZDIC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyODAxNTFBODI1QTAw
NDEyM0ZDIC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oICovOyB9OworCQlBOEE0NzNB
NzE1MUE4MjVCMDA0MTIzRkQgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEE0NzI4MDE1
MUE4MjVBMDA0MTIzRkQgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5jcHAgKi87
IH07CisJCUE4QTQ3M0E3MTUxQTgyNUIwMDQxMjNGRSAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxp
YmRpc3BhdGNoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRkUgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNw
YXRjaC5oICovOyB9OwogCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkYgLyogRG91Ymx5TGlua2Vk
TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThB
NDcyODAxNTFBODI1QTAwNDEyM0ZGIC8qIERvdWJseUxpbmtlZExpc3QuaCAqLzsgfTsKIAkJQThB
NDczQTgxNTFBODI1QjAwNDEyM0ZGIC8qIGJpZ251bS1kdG9hLmNjIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThBNDcyODIxNTFBODI1QTAwNDEyM0ZGIC8q
IGJpZ251bS1kdG9hLmNjICovOyB9OwogCQlBOEE0NzNBOTE1MUE4MjVCMDA0MTIzRkYgLyogYmln
bnVtLWR0b2EuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEE4QTQ3MjgzMTUxQTgyNUEwMDQxMjNGRiAvKiBiaWdudW0tZHRvYS5oICovOyB9OwpAQCAtMzAx
LDYgKzMwNywxMiBAQAogCQlBOEE0NzI3RDE1MUE4MjVBMDA0MTIzRkYgLyogRGVjb2Rlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWNvZGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUE4QTQ3MjdFMTUxQTgyNUEwMDQxMjNGRiAvKiBEZXF1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXF1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBOEE0NzI3RjE1MUE4MjVBMDA0MTIzRkYgLyogRGlzYWxsb3dDVHlwZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNhbGxvd0NUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNGOSAvKiBEaXNwYXRj
aFF1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGF0Y2hRdWV1
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4QTQ3MjgwMTUxQTgyNUEwMDQx
MjNGQSAvKiBEaXNwYXRjaFF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERpc3BhdGNoUXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQThBNDcyODAx
NTFBODI1QTAwNDEyM0ZCIC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNG
QyAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUdlbmVyaWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRCAvKiBEaXNwYXRjaFF1ZXVl
UHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRSAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0
ZUxpYmRpc3BhdGNoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BhdGNo
UXVldWVQcml2YXRlTGliZGlzcGF0Y2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QThBNDcyODAxNTFBODI1QTAwNDEyM0ZGIC8qIERvdWJseUxpbmtlZExpc3QuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRG91Ymx5TGlua2VkTGlzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBOEE0NzI4MjE1MUE4MjVBMDA0MTIzRkYgLyogYmlnbnVtLWR0b2Eu
Y2MgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSAiYmlnbnVtLWR0b2EuY2Mi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEE0NzI4MzE1MUE4MjVBMDA0MTIzRkYg
LyogYmlnbnVtLWR0b2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gImJpZ251
bS1kdG9hLmgiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTk3LDYgKzYwOSwxMiBA
QAogCQkJCUE4QTQ3MjdEMTUxQTgyNUEwMDQxMjNGRiAvKiBEZWNvZGVyLmggKi8sCiAJCQkJQThB
NDcyN0UxNTFBODI1QTAwNDEyM0ZGIC8qIERlcXVlLmggKi8sCiAJCQkJQThBNDcyN0YxNTFBODI1
QTAwNDEyM0ZGIC8qIERpc2FsbG93Q1R5cGUuaCAqLywKKwkJCQlBOEE0NzI4MDE1MUE4MjVBMDA0
MTIzRjkgLyogRGlzcGF0Y2hRdWV1ZS5jcHAgKi8sCisJCQkJQThBNDcyODAxNTFBODI1QTAwNDEy
M0ZBIC8qIERpc3BhdGNoUXVldWUuaCAqLywKKwkJCQlBOEE0NzI4MDE1MUE4MjVBMDA0MTIzRkIg
LyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCAqLywKKwkJCQlBOEE0NzI4MDE1MUE4
MjVBMDA0MTIzRkMgLyogRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmggKi8sCisJCQkJQThB
NDcyODAxNTFBODI1QTAwNDEyM0ZEIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2gu
Y3BwICovLAorCQkJCUE4QTQ3MjgwMTUxQTgyNUEwMDQxMjNGRSAvKiBEaXNwYXRjaFF1ZXVlUHJp
dmF0ZUxpYmRpc3BhdGNoLmggKi8sCiAJCQkJQThBNDcyODAxNTFBODI1QTAwNDEyM0ZGIC8qIERv
dWJseUxpbmtlZExpc3QuaCAqLywKIAkJCQlBOEE0NzI5NzE1MUE4MjVBMDA0MTIzRkYgLyogZHRv
YS5jcHAgKi8sCiAJCQkJQThBNDcyOTgxNTFBODI1QTAwNDEyM0ZGIC8qIGR0b2EuaCAqLywKQEAg
LTkyMCw2ICs5MzgsOSBAQAogCQkJCUE4QTQ3M0E0MTUxQTgyNUIwMDQxMjNGRiAvKiBEZWNvZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNBNTE1MUE4MjVCMDA0MTIzRkYgLyogRGVxdWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0E2MTUxQTgyNUIwMDQxMjNGRiAvKiBEaXNhbGxv
d0NUeXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkEgLyog
RGlzcGF0Y2hRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQThBNDczQTcxNTFBODI1QjAwNDEy
M0ZDIC8qIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QThBNDczQTcxNTFBODI1QjAwNDEyM0ZFIC8qIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0
Y2guaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0FGMTUxQTgyNUIwMDQxMjNGRiAvKiBkaXkt
ZnAuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0IxMTUxQTgyNUIwMDQxMjNGRiAvKiBkb3Vi
bGUtY29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczQjIxNTFBODI1QjAwNDEy
M0ZGIC8qIGRvdWJsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTY1LDYgKzExODYsOSBAQAogCQkJ
CUE4QTQ3MzlFMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRhTG9nLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUE4QTQ3M0EwMTUxQTgyNUIwMDQxMjNGRiAvKiBEYXRlTWF0aC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBOEE0NzNBMjE1MUE4MjVCMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRjkgLyogRGlzcGF0Y2hRdWV1
ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlBOEE0NzNBNzE1MUE4MjVCMDA0MTIzRkIgLyogRGlz
cGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUE4QTQ3M0E3
MTUxQTgyNUIwMDQxMjNGRCAvKiBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0FFMTUxQTgyNUIwMDQxMjNGRiAvKiBkaXktZnAuY2Mg
aW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCMDE1MUE4MjVCMDA0MTIzRkYgLyogZG91YmxlLWNv
bnZlcnNpb24uY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCQTE1MUE4MjVCMDA0MTIzRkYg
LyogZHRvYS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggNDYzNmI1
ZTUyYzljYmVhMTk0YzQxNTBkYWQ5ZjM0MzIwMTRkMjRiYy4uNzI4NGRhYmE4MjZlOGZjNGZkNWVi
MmEyMzg1MzIzZDYxODFlMmY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTIwLDYgKzIwLDkg
QEAgU0VUKFdURl9IRUFERVJTCiAgICAgRGVjb2Rlci5oCiAgICAgRGVxdWUuaAogICAgIERpc2Fs
bG93Q1R5cGUuaAorICAgIERpc3BhdGNoUXVldWUuaAorICAgIERpc3BhdGNoUXVldWVQcml2YXRl
R2VuZXJpYy5oCisgICAgRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oCiAgICAgRG91
Ymx5TGlua2VkTGlzdC5oCiAgICAgRHluYW1pY0Fubm90YXRpb25zLmgKICAgICBFbmNvZGVyLmgK
QEAgLTE0NSw2ICsxNDgsOSBAQCBTRVQoV1RGX1NPVVJDRVMKICAgICBEYXRlTWF0aC5jcHAKICAg
ICBEYXRhTG9nLmNwcAogICAgIERlY2ltYWxOdW1iZXIuY3BwCisgICAgRGlzcGF0Y2hRdWV1ZS5j
cHAKKyAgICBEaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmNwcAorICAgIERpc3BhdGNo
UXVldWVQcml2YXRlR2VuZXJpYy5jcHAKICAgICBEeW5hbWljQW5ub3RhdGlvbnMuY3BwCiAgICAg
RmFzdE1hbGxvYy5jcHAKICAgICBIYXNoVGFibGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9EaXNwYXRjaFF1ZXVlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZkOWVhMzY2MjJlMjcwOWFjMDY2ODFhMWM1MWFmZGM3MDNiNjJmYTAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlLmNwcApAQCAtMCww
ICsxLDExNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaXNwYXRjaFF1ZXVlLmgiCisK
KyNpZiBFTkFCTEUoVEhSRUFESU5HX0xJQkRJU1BBVENIKQorI2luY2x1ZGUgIkRpc3BhdGNoUXVl
dWVQcml2YXRlTGliZGlzcGF0Y2guaCIKKyNlbHNlCisjaW5jbHVkZSAiRGlzcGF0Y2hRdWV1ZVBy
aXZhdGVHZW5lcmljLmgiCisjZW5kaWYKKworI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Cisj
aW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV1RGIHsKKworY2xhc3MgRGlzcGF0
Y2hHbG9iYWxRdWV1ZVByaXZhdGU7CitjbGFzcyBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTsK
KworRGlzcGF0Y2hRdWV1ZSogRGlzcGF0Y2hRdWV1ZTo6c19nbG9iYWxRdWV1ZTsKK0Rpc3BhdGNo
UXVldWUqIERpc3BhdGNoUXVldWU6OnNfbWFpblF1ZXVlOworCitjbGFzcyBEaXNwYXRjaE1haW5R
dWV1ZSA6IHB1YmxpYyBEaXNwYXRjaFF1ZXVlIHsKK3B1YmxpYzoKKyAgICBmcmllbmQgY2xhc3Mg
RGlzcGF0Y2hRdWV1ZTsKKyAgICB2aXJ0dWFsIH5EaXNwYXRjaE1haW5RdWV1ZSgpIHsgfQorCisg
ICAgLy8gSW4gY2FzZSBvZiB0aGUgbWFpbiBxdWV1ZSwgd2Ugc2ltcGx5IHJldXNlIGNhbGxPbk1h
aW5UaHJlYWQuCisgICAgdmlydHVhbCB2b2lkIGFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4m
IGZ1bmN0aW9uKQorICAgIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChmdW5jdGlvbik7Cisg
ICAgfQorCisKK3ByaXZhdGU6CisgICAgRGlzcGF0Y2hNYWluUXVldWUoKSB7IH0KK307CisKK2Ns
YXNzIERpc3BhdGNoR2xvYmFsUXVldWUgOiBwdWJsaWMgRGlzcGF0Y2hRdWV1ZSB7CitwdWJsaWM6
CisgICAgZnJpZW5kIGNsYXNzIERpc3BhdGNoUXVldWU7CisgICAgdmlydHVhbCB+RGlzcGF0Y2hH
bG9iYWxRdWV1ZSgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGFzeW5jKGNvbnN0IEZ1bmN0aW9u
PHZvaWQoKT4mIGZ1bmN0aW9uKQorICAgIHsKKyAgICAgICAgbV9wcml2YXRlLT5hc3luYyhmdW5j
dGlvbik7CisgICAgfQorCitwcml2YXRlOgorICAgIERpc3BhdGNoR2xvYmFsUXVldWUoKQorICAg
ICAgICA6IG1fcHJpdmF0ZShEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6Y3JlYXRlKCkpIHsg
fQorCisgICAgT3duUHRyPERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlPiBtX3ByaXZhdGU7Cit9
OworCitjbGFzcyBEaXNwYXRjaFNlcmlhbFF1ZXVlIDogcHVibGljIERpc3BhdGNoUXVldWUgewor
cHVibGljOgorICAgIGZyaWVuZCBjbGFzcyBEaXNwYXRjaFF1ZXVlOworICAgIHZpcnR1YWwgfkRp
c3BhdGNoU2VyaWFsUXVldWUoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBhc3luYyhjb25zdCBG
dW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKKyAgICB7CisgICAgICAgIG1fcHJpdmF0ZS0+YXN5
bmMoZnVuY3Rpb24pOworICAgIH0KKworcHJpdmF0ZToKKyAgICBEaXNwYXRjaFNlcmlhbFF1ZXVl
KCkKKyAgICAgICAgOiBtX3ByaXZhdGUoRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGU6OmNyZWF0
ZSgpKSB7IH0KKworICAgIE93blB0cjxEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZT4gbV9wcml2
YXRlOworfTsKKworRGlzcGF0Y2hRdWV1ZSogRGlzcGF0Y2hRdWV1ZTo6Z2xvYmFsUXVldWUoKQor
eworICAgIHJldHVybiBzX2dsb2JhbFF1ZXVlOworfQorCitEaXNwYXRjaFF1ZXVlKiBEaXNwYXRj
aFF1ZXVlOjptYWluUXVldWUoKQoreworICAgIHJldHVybiBzX21haW5RdWV1ZTsKK30KKwordm9p
ZCBEaXNwYXRjaFF1ZXVlOjppbml0aWFsaXplRGlzcGF0Y2hRdWV1ZSgpCit7CisgICAgc19tYWlu
UXVldWUgPSBuZXcgRGlzcGF0Y2hNYWluUXVldWUoKTsKKyAgICBzX2dsb2JhbFF1ZXVlID0gbmV3
IERpc3BhdGNoR2xvYmFsUXVldWUoKTsKK30KKworUGFzc1JlZlB0cjxEaXNwYXRjaFF1ZXVlPiBE
aXNwYXRjaFF1ZXVlOjpjcmVhdGVTZXJpYWxRdWV1ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBEaXNwYXRjaFNlcmlhbFF1ZXVlKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWUuaCBiL1NvdXJjZS9XVEYvd3Rm
L0Rpc3BhdGNoUXVldWUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jY2MzNmJmNGMyNDkwMGE0OGUzMjcyMTNkNGUw
ZWI3OTdmZTVhY2U2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hR
dWV1ZS5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ29tcGFu
eSAxMDAgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERpc3BhdGNoUXVldWVfaAorI2RlZmluZSBEaXNw
YXRjaFF1ZXVlX2gKKworI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbmFsLmg+CisjaW5jbHVkZSA8d3Rm
L1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXVEYgeworCisvLyBUaGlzIGNs
YXNzIGlzIGEgc2ltcGxlIHdyYXBwZXIgYXJvdW5kIGxpYmRpc3BhdGNoLgorLy8gV2UgYWxzbyBw
cm92aWRlIGEgZ2VuZXJpYyAodGhyZWFkIHBvb2wpIGltcGxlbWVuZXRhdGlvbiBzbyB0aGF0Cisv
LyBhbGwgdGhlIHBvcnRzIGNhbiB1c2UgdGhlIHNhbWUgQVBJLgorY2xhc3MgRGlzcGF0Y2hRdWV1
ZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxEaXNwYXRjaFF1ZXVlPiB7CitwdWJsaWM6
CisgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZURpc3BhdGNoUXVldWUoKTsKKyAgICBzdGF0aWMg
RGlzcGF0Y2hRdWV1ZSogZ2xvYmFsUXVldWUoKTsKKyAgICBzdGF0aWMgRGlzcGF0Y2hRdWV1ZSog
bWFpblF1ZXVlKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RGlzcGF0Y2hRdWV1ZT4gY3JlYXRl
U2VyaWFsUXVldWUoKTsKKworICAgIHZpcnR1YWwgfkRpc3BhdGNoUXVldWUoKSB7IH0KKworICAg
IHZpcnR1YWwgdm9pZCBhc3luYyhjb25zdCBGdW5jdGlvbjx2b2lkKCk+JikgPSAwOworCitwcm90
ZWN0ZWQ6CisgICAgc3RhdGljIERpc3BhdGNoUXVldWUqIHNfZ2xvYmFsUXVldWU7CisgICAgc3Rh
dGljIERpc3BhdGNoUXVldWUqIHNfbWFpblF1ZXVlOworCisgICAgRGlzcGF0Y2hRdWV1ZSgpIHsg
fQorfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6RGlzcGF0Y2hRdWV1ZTsK
KworI2VuZGlmIC8vIERpc3BhdGNoUXVldWVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
RGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNo
UXVldWVQcml2YXRlR2VuZXJpYy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTVjN2Q1ODlhNjAyMTkyYTY0MmVi
ZDRkNjAxMjhkYjM5NTZjMWY2ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rp
c3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5jcHAKQEAgLTAsMCArMSwyNjYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgQ29tcGFueSAxMDAgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiAhRU5BQkxFKFRIUkVBRElOR19MSUJESVNQQVRDSCkKKworI2luY2x1ZGUg
IkRpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oIgorCisjaW5jbHVkZSA8bGltaXRzPgorI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4K
KyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCitu
YW1lc3BhY2UgV1RGIHsKKworY2xhc3MgRXhlY3V0b3JQb29sOworCitjbGFzcyBFeGVjdXRvciB7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRXhlY3V0b3IpOworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIEV4ZWN1dG9yKCk7CisgICAgfkV4ZWN1dG9yKCk7CisK
KyAgICB2b2lkIGV4ZWN1dGUoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOworCisgICAgc3RhdGlj
IHZvaWQgd29ya2VyVGhyZWFkKHZvaWQqKTsKKworICAgIHZvaWQgYWNxdWlyZSgpIHsgbV9hY3F1
aXJlQ291bnQrKzsgfQorICAgIHZvaWQgcmVsZWFzZSgpIHsgbV9hY3F1aXJlQ291bnQtLTsgfQor
ICAgIGludCBhY3F1aXJlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX2FjcXVpcmVDb3VudDsgfQor
Citwcml2YXRlOgorICAgIGJvb2wgbV9ydW5uaW5nOworICAgIGludCBtX2FjcXVpcmVDb3VudDsK
KworICAgIE11dGV4IG1fbXV0ZXg7CisgICAgVGhyZWFkQ29uZGl0aW9uIG1fZnVuY3Rpb25RdWV1
ZUVtcHR5Q29uZGl0aW9uOworICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+ID4gbV9mdW5jdGlv
blF1ZXVlOworfTsKKworRXhlY3V0b3I6OkV4ZWN1dG9yKCkKKyAgICA6IG1fcnVubmluZyh0cnVl
KQorICAgICwgbV9hY3F1aXJlQ291bnQoMSkKK3sKKyAgICAvLyBXZSBuZWVkIGEgbXV0ZXggaGVy
ZSBmb3IgdmlzaWJpbGl0eSBpbiBFeGVjdXRvcjo6d29ya2VyVGhyZWFkLgorICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEID0gY3Jl
YXRlVGhyZWFkKCZFeGVjdXRvcjo6d29ya2VyVGhyZWFkLCB0aGlzLCAiRXhlY3V0b3Igd29ya2Vy
Iik7CisgICAgZGV0YWNoVGhyZWFkKHRocmVhZElEKTsKK30KKworRXhlY3V0b3I6On5FeGVjdXRv
cigpCit7CisgICAgLy8gT25jZSB3ZSBjcmVhdGUgYW4gZXhlY3V0b3IsIHdlIG5ldmVyIGRlc3Ry
b3lzIGl0LgorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIEV4ZWN1dG9yOjpl
eGVjdXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mIGZ1bmN0aW9uKQoreworICAgIE11dGV4TG9j
a2VyIGxvY2tlcihtX211dGV4KTsKKyAgICBtX2Z1bmN0aW9uUXVldWUuYXBwZW5kKGZ1bmN0aW9u
KTsKKworICAgIG1fZnVuY3Rpb25RdWV1ZUVtcHR5Q29uZGl0aW9uLnNpZ25hbCgpOworfQorCit2
b2lkIEV4ZWN1dG9yOjp3b3JrZXJUaHJlYWQodm9pZCogdGhyZWFkRGF0YSkKK3sKKyAgICBFeGVj
dXRvciogZXhlY3V0b3IgPSByZWludGVycHJldF9jYXN0PEV4ZWN1dG9yKj4odGhyZWFkRGF0YSk7
CisKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPiA+
IGZ1bmN0aW9uUXVldWU7CisgICAgICAgIHsKKyAgICAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihleGVjdXRvci0+bV9tdXRleCk7CisgICAgICAgICAgICBpZiAoVU5MSUtFTFkoIWV4ZWN1dG9y
LT5tX3J1bm5pbmcpKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHdoaWxl
IChleGVjdXRvci0+bV9mdW5jdGlvblF1ZXVlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBl
eGVjdXRvci0+bV9mdW5jdGlvblF1ZXVlRW1wdHlDb25kaXRpb24ud2FpdChleGVjdXRvci0+bV9t
dXRleCk7CisgICAgICAgICAgICBleGVjdXRvci0+bV9mdW5jdGlvblF1ZXVlLnN3YXAoZnVuY3Rp
b25RdWV1ZSk7CisgICAgICAgIH0KKworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZ1
bmN0aW9uUXVldWUuc2l6ZSgpOyArK2kpCisgICAgICAgICAgICBmdW5jdGlvblF1ZXVlW2ldKCk7
CisgICAgfQorfQorCitjbGFzcyBFeGVjdXRvclBvb2wgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEV4ZWN1dG9yUG9vbCk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6
CisgICAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUV4ZWN1dG9yUG9vbCgpOworCisgICAgZnJpZW5k
IEV4ZWN1dG9yUG9vbCogZXhlY3V0b3JQb29sKCk7CisgICAgfkV4ZWN1dG9yUG9vbCgpOworCisg
ICAgdm9pZCBleGVjdXRlKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsKKyAgICBFeGVjdXRvciog
YWNxdWlyZVNlcmlhbEV4ZWN1dG9yKCk7CisgICAgdm9pZCByZWxlYXNlU2VyaWFsRXhlY3V0b3Io
RXhlY3V0b3IqKTsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgRXhlY3V0b3JQb29sKiBzX2V4ZWN1
dG9yUG9vbDsKKyAgICBFeGVjdXRvclBvb2woKTsKKyAgICBFeGVjdXRvciogbmV4dEV4ZWN1dG9y
KCk7CisgICAgRXhlY3V0b3IqIHNlcmlhbEV4ZWN1dG9yV2l0aE1pbmltdW1BY3F1aXJlQ291bnQo
KTsKKworICAgIE11dGV4IG1fbXV0ZXg7CisgICAgVmVjdG9yPEV4ZWN1dG9yKj4gbV9leGVjdXRv
clBvb2w7Cit9OworCitFeGVjdXRvclBvb2wqIEV4ZWN1dG9yUG9vbDo6c19leGVjdXRvclBvb2w7
CisKK3ZvaWQgRXhlY3V0b3JQb29sOjppbml0aWFsaXplRXhlY3V0b3JQb29sKCkKK3sKKyAgICBp
ZiAoIXNfZXhlY3V0b3JQb29sKQorICAgICAgICBzX2V4ZWN1dG9yUG9vbCA9IG5ldyBFeGVjdXRv
clBvb2w7Cit9CisKK0V4ZWN1dG9yUG9vbCogZXhlY3V0b3JQb29sKCkKK3sKKyAgICByZXR1cm4g
RXhlY3V0b3JQb29sOjpzX2V4ZWN1dG9yUG9vbDsKK30KKworRXhlY3V0b3JQb29sOjpFeGVjdXRv
clBvb2woKQoreworICAgIG1fZXhlY3V0b3JQb29sLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobnVt
YmVyT2ZQcm9jZXNzb3JDb3JlcygpKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bWJlck9m
UHJvY2Vzc29yQ29yZXMoKTsgaSsrKQorICAgICAgICBtX2V4ZWN1dG9yUG9vbC5hcHBlbmQobmV3
IEV4ZWN1dG9yKCkpOworfQorCitFeGVjdXRvclBvb2w6On5FeGVjdXRvclBvb2woKQoreworfQor
Cit2b2lkIEV4ZWN1dG9yUG9vbDo6ZXhlY3V0ZShjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5j
dGlvbikKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CisgICAgbmV4dEV4ZWN1
dG9yKCktPmV4ZWN1dGUoZnVuY3Rpb24pOworfQorCitFeGVjdXRvciogRXhlY3V0b3JQb29sOjpu
ZXh0RXhlY3V0b3IoKQoreworICAgIHN0YXRpYyB1bnNpZ25lZCBsb25nIG5leHQgPSAwOworICAg
IGludCBpbmRleCA9IG5leHQgJSBtX2V4ZWN1dG9yUG9vbC5zaXplKCk7CisgICAgbmV4dCsrOwor
ICAgIHJldHVybiBtX2V4ZWN1dG9yUG9vbFtpbmRleF07Cit9CisKK0V4ZWN1dG9yKiBFeGVjdXRv
clBvb2w6OmFjcXVpcmVTZXJpYWxFeGVjdXRvcigpCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1fbXV0ZXgpOworICAgIEV4ZWN1dG9yKiBleGVjdXRvciA9IHNlcmlhbEV4ZWN1dG9yV2l0aE1p
bmltdW1BY3F1aXJlQ291bnQoKTsKKyAgICBleGVjdXRvci0+YWNxdWlyZSgpOworICAgIHJldHVy
biBleGVjdXRvcjsKK30KKwordm9pZCBFeGVjdXRvclBvb2w6OnJlbGVhc2VTZXJpYWxFeGVjdXRv
cihFeGVjdXRvciogZXhlY3V0b3IpCit7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgp
OworICAgIGV4ZWN1dG9yLT5yZWxlYXNlKCk7Cit9CisKKy8vIEZJWE1FOiBXZSBzaW1wbHkgcmV0
dXJucyB0aGUgZXhlY3V0b3Igd2l0aCB0aGUgbWluaW11bSBhY3F1aXJlIGNvdW50cy4KKy8vIFRo
aXMgdmFsdWUgZG9lcyBub3QgcmVmbGVjdCB0aGUgcmVhbCBzeXN0ZW0gbG9hZC4KK0V4ZWN1dG9y
KiBFeGVjdXRvclBvb2w6OnNlcmlhbEV4ZWN1dG9yV2l0aE1pbmltdW1BY3F1aXJlQ291bnQoKQor
eworICAgIGludCBtaW5pbXVtQWNxdWlyZUNvdW50ID0gc3RkOjpudW1lcmljX2xpbWl0czxpbnQ+
OjptYXgoKTsKKyAgICBpbnQgaW5kZXggPSBtX2V4ZWN1dG9yUG9vbC5zaXplKCk7CisKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG1fZXhlY3V0b3JQb29sLnNpemUoKTsgaSsrKSB7CisgICAg
ICAgIGlmIChtX2V4ZWN1dG9yUG9vbFtpXS0+YWNxdWlyZUNvdW50KCkgPCBtaW5pbXVtQWNxdWly
ZUNvdW50KSB7CisgICAgICAgICAgICBtaW5pbXVtQWNxdWlyZUNvdW50ID0gbV9leGVjdXRvclBv
b2xbaV0tPmFjcXVpcmVDb3VudCgpOworICAgICAgICAgICAgaW5kZXggPSBpOworICAgICAgICB9
CisgICAgfQorCisgICAgQVNTRVJUKGluZGV4IDwgbV9leGVjdXRvclBvb2wuc2l6ZSgpKTsKKyAg
ICByZXR1cm4gbV9leGVjdXRvclBvb2xbaW5kZXhdOworfQorCitEaXNwYXRjaEdsb2JhbFF1ZXVl
UHJpdmF0ZTo6RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKQoreworICAgIEV4ZWN1dG9yUG9v
bDo6aW5pdGlhbGl6ZUV4ZWN1dG9yUG9vbCgpOworfQorCitEaXNwYXRjaEdsb2JhbFF1ZXVlUHJp
dmF0ZTo6fkRpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKK30KKwordm9pZCBEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6YXN5bmMoY29u
c3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCit7CisgICAgZXhlY3V0b3JQb29sKCktPmV4
ZWN1dGUoZnVuY3Rpb24pOworfQorCitEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6RGlzcGF0
Y2hTZXJpYWxRdWV1ZVByaXZhdGUoKQorICAgIDogbV9leGVjdXRvclN0YXR1cyhSdW5uaW5nKQor
eworICAgIG1fc2VyaWFsRXhlY3V0b3IgPSBleGVjdXRvclBvb2woKS0+YWNxdWlyZVNlcmlhbEV4
ZWN1dG9yKCk7Cit9CisKK0Rpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjp+RGlzcGF0Y2hTZXJp
YWxRdWV1ZVByaXZhdGUoKQoreworICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX2V4ZWN1dG9yU3Rh
dHVzTXV0ZXgpOworICAgIG1fZXhlY3V0b3JTdGF0dXMgPSBUZXJtaW5hdGlvbkJlZ3VuOworCisg
ICAgbV9zZXJpYWxFeGVjdXRvci0+ZXhlY3V0ZShiaW5kKCZEaXNwYXRjaFNlcmlhbFF1ZXVlUHJp
dmF0ZTo6ZW5zdXJlVGVybWluYXRlLCB0aGlzKSk7CisgICAgd2hpbGUgKG1fZXhlY3V0b3JTdGF0
dXMgIT0gVGVybWluaWF0aW9uQ29tcGxldGVkKQorICAgICAgICBtX3Rlcm1pbmF0aW9uQ29tcGxl
dGVkLndhaXQobV9leGVjdXRvclN0YXR1c011dGV4KTsKKyAgICBleGVjdXRvclBvb2woKS0+cmVs
ZWFzZVNlcmlhbEV4ZWN1dG9yKG1fc2VyaWFsRXhlY3V0b3IpOworfQorCit2b2lkIERpc3BhdGNo
U2VyaWFsUXVldWVQcml2YXRlOjplbnN1cmVUZXJtaW5hdGUoKQoreworICAgIE11dGV4TG9ja2Vy
IGxvY2tlcihtX2V4ZWN1dG9yU3RhdHVzTXV0ZXgpOworICAgIEFTU0VSVChtX2V4ZWN1dG9yU3Rh
dHVzID09IFRlcm1pbmF0aW9uQmVndW4pOworICAgIG1fZXhlY3V0b3JTdGF0dXMgPSBUZXJtaW5p
YXRpb25Db21wbGV0ZWQ7CisgICAgbV90ZXJtaW5hdGlvbkNvbXBsZXRlZC5zaWduYWwoKTsKK30K
Kworc3RhdGljIHZvaWQgY2FuY2VsYWJsZUZ1bmN0aW9uKERpc3BhdGNoU2VyaWFsUXVldWVQcml2
YXRlKiBzZXJpYWxRdWV1ZSwgY29uc3QgRnVuY3Rpb248dm9pZCgpPiYgZnVuY3Rpb24pCit7Cisg
ICAgaWYgKFVOTElLRUxZKHNlcmlhbFF1ZXVlLT5oYXNUZXJtaW5hdGlvbkJlZ3VuKCkpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBmdW5jdGlvbigpOworfQorCit2b2lkIERpc3BhdGNoU2VyaWFs
UXVldWVQcml2YXRlOjphc3luYyhjb25zdCBGdW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbikKK3sK
KyAgICBBU1NFUlQobV9leGVjdXRvclN0YXR1cyA9PSBSdW5uaW5nKTsKKyAgICBtX3NlcmlhbEV4
ZWN1dG9yLT5leGVjdXRlKGJpbmQoY2FuY2VsYWJsZUZ1bmN0aW9uLCB0aGlzLCBmdW5jdGlvbikp
OworfQorCitib29sIERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjpoYXNUZXJtaW5hdGlvbkJl
Z3VuKCkKK3sKKyAgICBNdXRleExvY2tlciBsb2NrZXIobV9leGVjdXRvclN0YXR1c011dGV4KTsK
KyAgICBBU1NFUlQobV9leGVjdXRvclN0YXR1cyAhPSBUZXJtaW5pYXRpb25Db21wbGV0ZWQpOwor
ICAgIHJldHVybiBtX2V4ZWN1dG9yU3RhdHVzID09IFRlcm1pbmF0aW9uQmVndW47Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5BQkxFKFRIUkVBRElOR19MSUJESVNQQVRD
SCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJp
Yy5oIGIvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVHZW5lcmljLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2ZlNDlhNjE0OGU0YWYzMmZjNjAwMjFjNzgxMjE4YzU4NTZhNzdiZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpYy5oCkBA
IC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQ29tcGFueSAxMDAgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpY19oCisjZGVmaW5l
IERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJpY19oCisKKyNpZiAhRU5BQkxFKFRIUkVBRElOR19M
SUJESVNQQVRDSCkKKworI2luY2x1ZGUgIkRpc3BhdGNoUXVldWUuaCIKKworI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBEaXNwYXRjaEdsb2Jh
bFF1ZXVlUHJpdmF0ZSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGlzcGF0Y2hHbG9iYWxR
dWV1ZVByaXZhdGUpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzT3duUHRyPERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlPiBjcmVhdGUoKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEaXNwYXRjaEdsb2JhbFF1ZXVlUHJp
dmF0ZSgpKTsKKyAgICB9CisKKyAgICB+RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKTsKKwor
ICAgIHZvaWQgYXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYpOworCitwcml2YXRlOgorICAg
IERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKCk7Cit9OworCitjbGFzcyBFeGVjdXRvcjsKKwor
Y2xhc3MgRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxEaXNwYXRjaFNlcmlhbFF1ZXVl
UHJpdmF0ZT4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGlz
cGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUoKSk7CisgICAgfQorCisgICAgfkRpc3BhdGNoU2VyaWFs
UXVldWVQcml2YXRlKCk7CisKKyAgICB2b2lkIGFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4m
KTsKKworICAgIGJvb2wgaGFzVGVybWluYXRpb25CZWd1bigpOworCitwcml2YXRlOgorICAgIERp
c3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKCk7CisgICAgdm9pZCBlbnN1cmVUZXJtaW5hdGUoKTsK
KworICAgIGVudW0gRXhlY3V0b3JTdGF0dXMgeyBSdW5uaW5nLCBUZXJtaW5hdGlvbkJlZ3VuLCBU
ZXJtaW5pYXRpb25Db21wbGV0ZWQgfTsKKyAgICBNdXRleCBtX2V4ZWN1dG9yU3RhdHVzTXV0ZXg7
CisgICAgRXhlY3V0b3JTdGF0dXMgbV9leGVjdXRvclN0YXR1czsKKyAgICBUaHJlYWRDb25kaXRp
b24gbV90ZXJtaW5hdGlvbkNvbXBsZXRlZDsKKworICAgIEV4ZWN1dG9yKiBtX3NlcmlhbEV4ZWN1
dG9yOworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyAhRU5BQkxFKFRIUkVB
RElOR19MSUJESVNQQVRDSCkKKworI2VuZGlmIC8vIERpc3BhdGNoUXVldWVQcml2YXRlR2VuZXJp
Y19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRp
c3BhdGNoLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Rpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0
Y2guY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjI5OTdjYWVjMDZjMzdjY2M3OTJmYmQ2NTgwNmQ2NTU1YTNmZjU1
Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0
ZUxpYmRpc3BhdGNoLmNwcApAQCAtMCwwICsxLDEyNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBDb21wYW55IDEwMCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lm
IEVOQUJMRShUSFJFQURJTkdfTElCRElTUEFUQ0gpCisKKyNpbmNsdWRlICJEaXNwYXRjaFF1ZXVl
UHJpdmF0ZUxpYmRpc3BhdGNoLmgiCisKK25hbWVzcGFjZSBXVEYgeworCitEaXNwYXRjaEdsb2Jh
bFF1ZXVlUHJpdmF0ZTo6RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKQoreworICAgIG1fZGlz
cGF0Y2hRdWV1ZSA9IGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJ
T1JJVFlfREVGQVVMVCwgMCk7Cit9CisKK0Rpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlOjp+RGlz
cGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGUoKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
fQorCitzdHJ1Y3QgRnVuY3Rpb25Cb3ggeworICAgIEZ1bmN0aW9uQm94KGNvbnN0IEZ1bmN0aW9u
PHZvaWQoKT4mIGZ1bmN0aW9uKQorICAgICAgICA6IG1fZnVuY3Rpb24oZnVuY3Rpb24pCisgICAg
eworICAgIH0KKworICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9mdW5jdGlvbjsKK307CisKK3ZvaWQg
RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6OmFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4m
IGZ1bmN0aW9uKQoreworICAgIEZ1bmN0aW9uQm94KiBib3ggPSBuZXcgRnVuY3Rpb25Cb3goZnVu
Y3Rpb24pOworICAgIGRpc3BhdGNoX2FzeW5jX2YobV9kaXNwYXRjaFF1ZXVlLCByZWludGVycHJl
dF9jYXN0PHZvaWQqPihib3gpLCAmRGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU6Omludm9rZUZ1
bmN0aW9uKTsKK30KKwordm9pZCBEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZTo6aW52b2tlRnVu
Y3Rpb24odm9pZCogY29udGV4dCkKK3sKKyAgICBGdW5jdGlvbkJveCogYm94ID0gcmVpbnRlcnBy
ZXRfY2FzdDxGdW5jdGlvbkJveCo+KGNvbnRleHQpOworICAgIGJveC0+bV9mdW5jdGlvbigpOwor
ICAgIGRlbGV0ZSBib3g7Cit9CisKK0Rpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlOjpEaXNwYXRj
aFNlcmlhbFF1ZXVlUHJpdmF0ZSgpCisgICAgOiBtX2hhc1Rlcm1pbmF0aW9uQmVndW4oZmFsc2Up
Cit7CisgICAgbV9kaXNwYXRjaEdyb3VwID0gZGlzcGF0Y2hfZ3JvdXBfY3JlYXRlKCk7CisgICAg
bV9kaXNwYXRjaFF1ZXVlID0gZGlzcGF0Y2hfcXVldWVfY3JlYXRlKDAsIDApOworfQorCitEaXNw
YXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6fkRpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKCkKK3sK
KyAgICB0ZXJtaW5hdGUoKTsKKyAgICBkaXNwYXRjaF9yZWxlYXNlKG1fZGlzcGF0Y2hHcm91cCk7
CisgICAgZGlzcGF0Y2hfcmVsZWFzZShtX2Rpc3BhdGNoUXVldWUpOworfQorCit2b2lkIERpc3Bh
dGNoU2VyaWFsUXVldWVQcml2YXRlOjp0ZXJtaW5hdGUoKQoreworICAgIHsKKyAgICAgICAgTXV0
ZXhMb2NrZXIgbG9ja2VyKG1faGFzVGVybWluYXRpb25CZWd1bk11dGV4KTsKKyAgICAgICAgbV9o
YXNUZXJtaW5hdGlvbkJlZ3VuID0gdHJ1ZTsKKyAgICB9CisgICAgZGlzcGF0Y2hfZ3JvdXBfd2Fp
dChtX2Rpc3BhdGNoR3JvdXAsIERJU1BBVENIX1RJTUVfRk9SRVZFUik7Cit9CisKK3N0cnVjdCBD
YW5jZWxhYmxlRnVuY3Rpb25Cb3ggeworICAgIENhbmNlbGFibGVGdW5jdGlvbkJveChjb25zdCBG
dW5jdGlvbjx2b2lkKCk+JiBmdW5jdGlvbiwgRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUqIHF1
ZXVlKQorICAgICAgICA6IG1fZnVuY3Rpb24oZnVuY3Rpb24pCisgICAgICAgICwgbV9xdWV1ZShx
dWV1ZSkKKyAgICB7CisgICAgfQorCisgICAgRnVuY3Rpb248dm9pZCgpPiBtX2Z1bmN0aW9uOwor
ICAgIERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKiBtX3F1ZXVlOworfTsKKwordm9pZCBEaXNw
YXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6aW52b2tlRnVuY3Rpb24odm9pZCogY29udGV4dCkKK3sK
KyAgICBDYW5jZWxhYmxlRnVuY3Rpb25Cb3gqIGJveCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Q2FuY2Vs
YWJsZUZ1bmN0aW9uQm94Kj4oY29udGV4dCk7CisKKyAgICBib29sIGlzQ2FuY2VsZWQ7CisgICAg
eworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIoYm94LT5tX3F1ZXVlLT5tX2hhc1Rlcm1pbmF0
aW9uQmVndW5NdXRleCk7CisgICAgICAgIGlzQ2FuY2VsZWQgPSBib3gtPm1fcXVldWUtPm1faGFz
VGVybWluYXRpb25CZWd1bjsKKyAgICB9CisgICAgaWYgKExJS0VMWSghaXNDYW5jZWxlZCkpCisg
ICAgICAgIGJveC0+bV9mdW5jdGlvbigpOworCisgICAgZGVsZXRlIGJveDsKK30KKwordm9pZCBE
aXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZTo6YXN5bmMoY29uc3QgRnVuY3Rpb248dm9pZCgpPiYg
ZnVuY3Rpb24pCit7CisgICAgQVNTRVJUKCFtX2hhc1Rlcm1pbmF0aW9uQmVndW4pOworCisgICAg
Q2FuY2VsYWJsZUZ1bmN0aW9uQm94KiBib3ggPSBuZXcgQ2FuY2VsYWJsZUZ1bmN0aW9uQm94KGZ1
bmN0aW9uLCB0aGlzKTsKKyAgICBkaXNwYXRjaF9ncm91cF9hc3luY19mKG1fZGlzcGF0Y2hHcm91
cCwgbV9kaXNwYXRjaFF1ZXVlLCByZWludGVycHJldF9jYXN0PHZvaWQqPihib3gpLCAmRGlzcGF0
Y2hTZXJpYWxRdWV1ZVByaXZhdGU6Omludm9rZUZ1bmN0aW9uKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCisKKyNlbmRpZiAvLyBFTkFCTEUoVEhSRUFESU5HX0xJQkRJU1BBVENIKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oIGIv
U291cmNlL1dURi93dGYvRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVjOTA3ZmVlZDY3NjYyM2VkNDczYTljMThjYzkwMDI2MGExYTQzNDQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9EaXNwYXRjaFF1ZXVlUHJpdmF0ZUxpYmRpc3BhdGNoLmgK
QEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55IDEwMCBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaF9oCisj
ZGVmaW5lIERpc3BhdGNoUXVldWVQcml2YXRlTGliZGlzcGF0Y2hfaAorCisjaWYgRU5BQkxFKFRI
UkVBRElOR19MSUJESVNQQVRDSCkKKworI2luY2x1ZGUgIkRpc3BhdGNoUXVldWUuaCIKKworI2lu
Y2x1ZGUgPGRpc3BhdGNoL2Rpc3BhdGNoLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
KworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlIHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSk7Cisg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25Q
dHI8RGlzcGF0Y2hHbG9iYWxRdWV1ZVByaXZhdGU+IGNyZWF0ZSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IERpc3BhdGNoR2xvYmFsUXVldWVQcml2YXRlKCkpOworICAgIH0K
KworICAgIH5EaXNwYXRjaEdsb2JhbFF1ZXVlUHJpdmF0ZSgpOworCisgICAgdm9pZCBhc3luYyhj
b25zdCBGdW5jdGlvbjx2b2lkKCk+Jik7CisKK3ByaXZhdGU6CisgICAgRGlzcGF0Y2hHbG9iYWxR
dWV1ZVByaXZhdGUoKTsKKyAgICBzdGF0aWMgdm9pZCBpbnZva2VGdW5jdGlvbih2b2lkKiBjb250
ZXh0KTsKKworICAgIGRpc3BhdGNoX3F1ZXVlX3QgbV9kaXNwYXRjaFF1ZXVlOworfTsKKworY2xh
c3MgRGlzcGF0Y2hTZXJpYWxRdWV1ZVByaXZhdGUgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KERpc3BhdGNoU2VyaWFsUXVldWVQcml2YXRlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093blB0cjxEaXNwYXRjaFNlcmlhbFF1ZXVlUHJp
dmF0ZT4gY3JlYXRlKCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGlzcGF0
Y2hTZXJpYWxRdWV1ZVByaXZhdGUoKSk7CisgICAgfQorCisgICAgfkRpc3BhdGNoU2VyaWFsUXVl
dWVQcml2YXRlKCk7CisKKyAgICB2b2lkIGFzeW5jKGNvbnN0IEZ1bmN0aW9uPHZvaWQoKT4mKTsK
KworcHJpdmF0ZToKKyAgICBEaXNwYXRjaFNlcmlhbFF1ZXVlUHJpdmF0ZSgpOworICAgIHN0YXRp
YyB2b2lkIGludm9rZUZ1bmN0aW9uKHZvaWQqIGNvbnRleHQpOworCisgICAgdm9pZCB0ZXJtaW5h
dGUoKTsKKworICAgIGRpc3BhdGNoX3F1ZXVlX3QgbV9kaXNwYXRjaFF1ZXVlOworICAgIGRpc3Bh
dGNoX2dyb3VwX3QgbV9kaXNwYXRjaEdyb3VwOworICAgIE11dGV4IG1faGFzVGVybWluYXRpb25C
ZWd1bk11dGV4OworICAgIGJvb2wgbV9oYXNUZXJtaW5hdGlvbkJlZ3VuOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyBFTkFCTEUoVEhSRUFESU5HX0xJQkRJU1BBVENIKQor
CisjZW5kaWYgLy8gRGlzcGF0Y2hRdWV1ZVByaXZhdGVMaWJkaXNwYXRjaF9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9U
aHJlYWRpbmdQdGhyZWFkcy5jcHAKaW5kZXggOTIxZGQzYmU3Y2U0ZDBlODAwODRjMGU2N2UwYzBi
ZThmOGFjN2E3OC4uMGJhNjdjNjM2N2MwZGZmNzNmNTE1YjdkYWIyNjQwZjc4NGQzZmE2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcApAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1
ZGUgIlRocmVhZElkZW50aWZpZXJEYXRhUHRocmVhZHMuaCIKICNpbmNsdWRlICJUaHJlYWRTcGVj
aWZpYy5oIgogI2luY2x1ZGUgIlVudXNlZFBhcmFtLmgiCisjaW5jbHVkZSA8d3RmL0Rpc3BhdGNo
UXVldWUuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvV1RGVGhyZWFkRGF0YS5oPgpAQCAtODksNiArOTAsNyBAQCB2
b2lkIGluaXRpYWxpemVUaHJlYWRpbmcoKQogICAgIHd0ZlRocmVhZERhdGEoKTsKICAgICBzX2R0
b2FQNU11dGV4ID0gbmV3IE11dGV4OwogICAgIGluaXRpYWxpemVEYXRlcygpOworICAgIERpc3Bh
dGNoUXVldWU6OmluaXRpYWxpemVEaXNwYXRjaFF1ZXVlKCk7CiB9CiAKIHZvaWQgbG9ja0F0b21p
Y2FsbHlJbml0aWFsaXplZFN0YXRpY011dGV4KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZGluZ1dpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCmluZGV4
IGQzMzk3M2RhZjc4YzliNmU2MGQ3ZDFjM2U5NGJhNmZiNmQ4NDliNDUuLjQ4NTY3ZDAxYjNkY2Nh
ZDg3M2M4Mjk4MmU0YWM5M2ZmYWYwNjE2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1Ro
cmVhZGluZ1dpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcApAQCAt
OTMsNiArOTMsNyBAQAogI2luY2x1ZGUgIlRocmVhZEZ1bmN0aW9uSW52b2NhdGlvbi5oIgogI2lu
Y2x1ZGUgPHdpbmRvd3MuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRl
IDx3dGYvRGlzcGF0Y2hRdWV1ZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0xNzksNiAr
MTgwLDcgQEAgdm9pZCBpbml0aWFsaXplVGhyZWFkaW5nKCkKICAgICB3dGZUaHJlYWREYXRhKCk7
CiAgICAgc19kdG9hUDVNdXRleCA9IG5ldyBNdXRleDsKICAgICBpbml0aWFsaXplRGF0ZXMoKTsK
KyAgICBEaXNwYXRjaFF1ZXVlOjppbml0aWFsaXplRGlzcGF0Y2hRdWV1ZSgpOwogfQogCiBzdGF0
aWMgSGFzaE1hcDxEV09SRCwgSEFORExFPiYgdGhyZWFkTWFwKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3BwCmluZGV4IDllNjU5MmI1NzE1Njc5YWUy
YmM5YTZkMWEwYjZmM2I4YzllMThlODEuLmFlNWZjODE5NmIxY2E2OWZhMmExNTE0ZWUyODZjMTNm
OWU3MjQyMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2Nocm9taXVtL01haW5UaHJlYWRD
aHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvY2hyb21pdW0vTWFpblRocmVhZENocm9t
aXVtLmNwcApAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiQXNzZXJ0aW9ucy5oIgogI2lu
Y2x1ZGUgIkNocm9taXVtVGhyZWFkaW5nLmgiCisjaW5jbHVkZSAiRnVuY3Rpb25hbC5oIgogI2lu
Y2x1ZGUgIlRocmVhZGluZy5oIgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTU0LDYgKzU1LDE4IEBA
IHZvaWQgY2FsbE9uTWFpblRocmVhZChNYWluVGhyZWFkRnVuY3Rpb24qIGZ1bmN0aW9uLCB2b2lk
KiBjb250ZXh0KQogICAgIENocm9taXVtVGhyZWFkaW5nOjpjYWxsT25NYWluVGhyZWFkKGZ1bmN0
aW9uLCBjb250ZXh0KTsKIH0KIAorc3RhdGljIHZvaWQgY2FsbEZ1bmN0aW9uT2JqZWN0KHZvaWQq
IGNvbnRleHQpCit7CisgICAgRnVuY3Rpb248dm9pZCgpPiogZnVuY3Rpb24gPSBzdGF0aWNfY2Fz
dDxGdW5jdGlvbjx2b2lkKCk+Kj4oY29udGV4dCk7CisgICAgKCpmdW5jdGlvbikoKTsKKyAgICBk
ZWxldGUgZnVuY3Rpb247Cit9CisKK3ZvaWQgY2FsbE9uTWFpblRocmVhZChjb25zdCBGdW5jdGlv
bjx2b2lkKCk+JiBmdW5jdGlvbikKK3sKKyAgICBjYWxsT25NYWluVGhyZWFkKGNhbGxGdW5jdGlv
bk9iamVjdCwgbmV3IEZ1bmN0aW9uPHZvaWQgKCk+KGZ1bmN0aW9uKSk7Cit9CisKIHZvaWQgY2Fs
bE9uTWFpblRocmVhZEFuZFdhaXQoTWFpblRocmVhZEZ1bmN0aW9uKiwgdm9pZCopCiB7CiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Cg==
</data>
<flag name="commit-queue"
          id="165291"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>