<?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>109658</bug_id>
          
          <creation_ts>2013-02-12 21:00:18 -0800</creation_ts>
          <short_desc>Unify GraphicsLayer::setContentsToMedia and setContentsToCanvas</short_desc>
          <delta_ts>2014-08-25 15:16:22 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Tien-Ren Chen">trchen</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jaepark</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luciano.wolf</cc>
    
    <cc>luiz</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mrobinson</cc>
    
    <cc>noam</cc>
    
    <cc>pnormand</cc>
    
    <cc>rego+ews</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>sun.shin</cc>
    
    <cc>thorton</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>xingri</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>831588</commentid>
    <comment_count>0</comment_count>
    <who name="Tien-Ren Chen">trchen</who>
    <bug_when>2013-02-12 21:00:18 -0800</bug_when>
    <thetext>Per discussion in https://bugs.webkit.org/show_bug.cgi?id=109560
trchen: Per off-line discussion with aelias@, we think we should make a GraphicsLayerChromium::setContentsToCoordinatedScrollbar extension. Does that sound cleaner?
smfr:  You could do that, but it might be better to make a more general setContentsToCustomSomething() function that can live on GraphicsLayer.
jamesr: As far as I can see, implementations of GraphicsLayer do not do anything different for setContentsToMedia(PlatformLayer*) and setContentsToCanvas(PlatformLayer*). GraphicsLayerCA and GraphicsLayerChromium set the contentsLayerPurpose, but this doesn&apos;t appear to be used for anything.  I think we should just fold them together into one function that accepts any sort of PlatformLayer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946757</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-04 11:45:13 -0800</bug_when>
    <thetext>Taking this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946775</commentid>
    <comment_count>2</comment_count>
      <attachid>215943</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-04 12:34:55 -0800</bug_when>
    <thetext>Created attachment 215943
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946776</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-04 12:37:04 -0800</bug_when>
    <thetext>It&apos;s possible we should get rid of ContentsLayerPurpose entirely, since it&apos;s only used to know if we need to dirty an added canvas layer (and know that some other way) or maybe we should use it more, and add it to our layer logging!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946791</commentid>
    <comment_count>4</comment_count>
      <attachid>215943</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-04 12:50:21 -0800</bug_when>
    <thetext>Comment on attachment 215943
patch

Attachment 215943 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/19648819</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946795</commentid>
    <comment_count>5</comment_count>
      <attachid>215943</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-11-04 13:07:15 -0800</bug_when>
    <thetext>Comment on attachment 215943
patch

Attachment 215943 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/19648826</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946796</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-11-04 13:10:00 -0800</bug_when>
    <thetext>Oh dear, somehow I missed CoordinatedGraphicsLayer::setContentsToCanvas and that might make this entirely infeasible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946804</commentid>
    <comment_count>7</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-11-04 13:47:04 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Oh dear, somehow I missed CoordinatedGraphicsLayer::setContentsToCanvas and that might make this entirely infeasible.

I think it&apos;s fine, CoordinatedGraphicsLayer an query the platform layer to see if it needs to go via that special code path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946805</commentid>
    <comment_count>8</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-11-04 13:47:51 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; Oh dear, somehow I missed CoordinatedGraphicsLayer::setContentsToCanvas and that might make this entirely infeasible.
&gt; 
&gt; I think it&apos;s fine, CoordinatedGraphicsLayer an query the platform layer to see if it needs to go via that special code path.

(I can probably try to do that tomorrow)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946832</commentid>
    <comment_count>9</comment_count>
      <attachid>215943</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2013-11-04 14:47:22 -0800</bug_when>
    <thetext>Comment on attachment 215943
patch

Attachment 215943 did not pass gtk-ews (gtk):
Output: http://webkit-queues.appspot.com/results/19648834</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006601</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-05-05 06:09:48 -0700</bug_when>
    <thetext>What&apos;s up with this patch? Any reason why it didn&apos;t land?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029606</commentid>
    <comment_count>11</comment_count>
      <attachid>236712</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-08-16 06:04:56 -0700</bug_when>
    <thetext>Created attachment 236712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029607</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-16 06:06:40 -0700</bug_when>
    <thetext>Attachment 236712 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:235:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:92:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:93:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 3 in 12 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>1029608</commentid>
    <comment_count>13</comment_count>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-08-16 06:07:50 -0700</bug_when>
    <thetext>Patch set #2 requires https://bugs.webkit.org/show_bug.cgi?id=136017 .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029609</commentid>
    <comment_count>14</comment_count>
      <attachid>236713</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-08-16 06:19:55 -0700</bug_when>
    <thetext>Created attachment 236713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029610</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-16 06:21:23 -0700</bug_when>
    <thetext>Attachment 236713 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:235:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:92:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:93:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 3 in 12 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>1029617</commentid>
    <comment_count>16</comment_count>
      <attachid>236715</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-08-16 07:35:02 -0700</bug_when>
    <thetext>Created attachment 236715
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029618</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-16 07:37:15 -0700</bug_when>
    <thetext>Attachment 236715 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:235:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:92:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:93:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 3 in 12 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>1029619</commentid>
    <comment_count>18</comment_count>
      <attachid>236716</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-08-16 08:14:41 -0700</bug_when>
    <thetext>Created attachment 236716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029620</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-16 08:16:49 -0700</bug_when>
    <thetext>Attachment 236716 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:235:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:92:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:93:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 3 in 13 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>1029657</commentid>
    <comment_count>20</comment_count>
      <attachid>236727</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-08-17 01:41:43 -0700</bug_when>
    <thetext>Created attachment 236727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029658</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-17 01:43:32 -0700</bug_when>
    <thetext>Attachment 236727 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:235:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:92:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:93:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 3 in 13 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>1029662</commentid>
    <comment_count>22</comment_count>
      <attachid>236729</attachid>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-08-17 03:28:13 -0700</bug_when>
    <thetext>Created attachment 236729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1029663</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-17 03:30:39 -0700</bug_when>
    <thetext>Attachment 236729 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:235:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:92:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:93:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 3 in 15 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>1030639</commentid>
    <comment_count>24</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-08-21 19:17:08 -0700</bug_when>
    <thetext>Looks just refactoring patch. So, looks fine for coordinated graphics. Simon, could you take a look this patch again ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030754</commentid>
    <comment_count>25</comment_count>
      <attachid>236729</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-08-22 10:46:55 -0700</bug_when>
    <thetext>Comment on attachment 236729
Patch

Based on Simon&apos;s earlier review, Gyuyoung&apos;s opinion, and a look through the texture mapper changes, I feel pretty comfortable r+ing this. We can roll out if there are problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030865</commentid>
    <comment_count>26</comment_count>
      <attachid>236729</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-22 18:43:47 -0700</bug_when>
    <thetext>Comment on attachment 236729
Patch

Rejecting attachment 236729 from commit-queue.

sun.shin@lge.com does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/contributors.json.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/contributors.json by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030866</commentid>
    <comment_count>27</comment_count>
      <attachid>236729</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-22 18:48:33 -0700</bug_when>
    <thetext>Comment on attachment 236729
Patch

Rejecting attachment 236729 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 236729, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
atching file Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h
patching file Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h
patching file Source/WebCore/rendering/RenderLayerBacking.cpp
patching file Source/WebKit2/Shared/CoordinatedGraphics/CoordinatedGraphicsArgumentCoders.cpp

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Martin Robinson&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/5709631116541952</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030869</commentid>
    <comment_count>28</comment_count>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-08-22 18:57:34 -0700</bug_when>
    <thetext>@Gyuyoung,  I will rebase the patch it again soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030874</commentid>
    <comment_count>29</comment_count>
      <attachid>237022</attachid>
    <who name="Byungseon Shin">xingri</who>
    <bug_when>2014-08-22 19:27:14 -0700</bug_when>
    <thetext>Created attachment 237022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030875</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-22 19:30:07 -0700</bug_when>
    <thetext>Attachment 237022 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:235:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:92:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:93:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 3 in 15 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>1030877</commentid>
    <comment_count>31</comment_count>
    <who name="Byungseon(Sun) Shin">sun.shin</who>
    <bug_when>2014-08-22 20:16:13 -0700</bug_when>
    <thetext>@Gyuyoung, I have rebased the patch. 
There was an WEBCORE_EXPORTS update Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030880</commentid>
    <comment_count>32</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-08-22 20:52:31 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; @Gyuyoung, I have rebased the patch. 
&gt; There was an WEBCORE_EXPORTS update Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h .

You already got r+ed from Martin. In that case, you can add his name to ChangeLog. Then, just request cq?. If so, committer&apos;s able to land your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030919</commentid>
    <comment_count>33</comment_count>
      <attachid>237030</attachid>
    <who name="Byungseon Shin">xingri</who>
    <bug_when>2014-08-23 01:43:36 -0700</bug_when>
    <thetext>Created attachment 237030
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030920</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-23 01:45:43 -0700</bug_when>
    <thetext>Attachment 237030 did not pass style-queue:


ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:235:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:92:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
ERROR: Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:93:  Please declare enum bitfields as unsigned integral types.  [runtime/enum_bitfields] [5]
Total errors found: 3 in 15 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>1030921</commentid>
    <comment_count>35</comment_count>
    <who name="Byungseon Shin">xingri</who>
    <bug_when>2014-08-23 01:49:51 -0700</bug_when>
    <thetext>@Gyuyoung, thanks for the advice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1030924</commentid>
    <comment_count>36</comment_count>
      <attachid>237030</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-08-23 02:24:56 -0700</bug_when>
    <thetext>Comment on attachment 237030
Patch

Clearing flags on attachment: 237030

Committed r172889: &lt;http://trac.webkit.org/changeset/172889&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031071</commentid>
    <comment_count>37</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-08-25 02:18:17 -0700</bug_when>
    <thetext>I suppose this can be closed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1031231</commentid>
    <comment_count>38</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-08-25 15:16:22 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; (From update of attachment 237030 [details])
&gt; Clearing flags on attachment: 237030
&gt; 
&gt; Committed r172889: &lt;http://trac.webkit.org/changeset/172889&gt;

This broke the iOS build. Committed build fix in &lt;http://trac.webkit.org/changeset/172938&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215943</attachid>
            <date>2013-11-04 12:34:55 -0800</date>
            <delta_ts>2013-11-04 14:47:22 -0800</delta_ts>
            <desc>patch</desc>
            <filename>media.diff</filename>
            <type>text/plain</type>
            <size>20845</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhODNiYWU2Li40MTBkNjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTgg
QEAKKzIwMTMtMTEtMDQgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgVW5pZnkgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRD
b250ZW50c1RvQ2FudmFzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDk2NTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBNZXJnZSBzZXRDb250ZW50c1RvTWVkaWEgYW5kIHNldENvbnRlbnRzVG9DYW52YXMg
aW50byBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllci4KKworICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOgorICAgICAgICBBZGp1c3QgZXhwb3J0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgTW92ZSBDb250ZW50c0xheWVyUHVycG9zZSBl
bnVtIHVwIG91dCBvZiBHcmFwaGljc0xheWVyQ0EgKyBHcmFwaGljc0xheWVyQmxhY2tCZXJyeQor
ICAgICAgICBhbmQgaW50byBHcmFwaGljc0xheWVyLCBzbyB3ZSBjYW4gdXNlIGl0IGFzIGEgcGFy
YW1ldGVyLgorICAgICAgICBBZGQgQ29udGVudHNMYXllckZvclBsdWdpbi4KKworICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIpOgorICAg
ICAgICBSZW1vdmUgc2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzLCBh
bmQgcmVwbGFjZSB0aGVtCisgICAgICAgIHdpdGggc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIs
IHdoaWNoIHByZXZpb3VzbHkgZXhpc3RlZCBidXQgd2FzIHVudXNlZAorICAgICAgICBhbmQgc2lt
cGx5IGNhbGxlZCBzZXRDb250ZW50c1RvTWVkaWEuCisgICAgICAgIHNldENvbnRlbnRzVG9QbGF0
Zm9ybUxheWVyIHRha2VzIGEgQ29udGVudHNMYXllclB1cnBvc2UsIHByaW1hcmlseQorICAgICAg
ICBzbyB0aGF0IEdyYXBoaWNzTGF5ZXJDQSBjYW4ga25vdyB3aGV0aGVyIGl0IG5lZWRzIHRvIHNl
dE5lZWRzRGlzcGxheQorICAgICAgICB0aGUgbGF5ZXIgd2hlbiBwYXJlbnRpbmcgaXQgKGNhbnZh
cykgb3Igbm90IChldmVyeXRoaW5nIGVsc2UpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYmxhY2tiZXJyeS9HcmFwaGljc0xheWVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0xheWVyQmxhY2tCZXJyeTo6c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvR3JhcGhpY3NMYXllckJs
YWNrQmVycnkuaDoKKyAgICAgICAgUmVtb3ZlIHNldENvbnRlbnRzVG9DYW52YXMsIHJlbmFtZSBz
ZXRDb250ZW50c1RvTWVkaWEuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFw
aGljc0xheWVyQ0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRD
b250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAgICAgIFJlbmFtZSBmdW5jdGlvbiBzZXRDb250
ZW50c1RvTWVkaWEgLT4gc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIuCisgICAgICAgIFJlbmFt
ZSBhcmd1bWVudCBtZWRpYUxheWVyIC0+IHBsYXRmb3JtTGF5ZXIuCisgICAgICAgIFN0b3JlIHRo
ZSBwYXNzZWQtaW4gQ29udGVudHNMYXllclB1cnBvc2UuCisgICAgICAgIFJlbW92ZSBzZXRDb250
ZW50c1RvQ2FudmFzLgorCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNvbW1p
dExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzUGxhdGZvcm1MYXllcik6CisgICAgICAgIFJlbW92ZSB1
cGRhdGVDb250ZW50c01lZGlhTGF5ZXIgYW5kIHVwZGF0ZUNvbnRlbnRzQ2FudmFzIGxheWVyLAor
ICAgICAgICBhZGQgdXBkYXRlQ29udGVudHNQbGF0Zm9ybUxheWVyLgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgIERvIHRoZSBzYW1l
IHRvIHRoZSBMYXllckNoYW5nZSBlbnVtLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvSW1hZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnNldENvbnRlbnRzVG9QbGF0
Zm9ybUxheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIuaDoKKyAgICAgICAgRm9sZCB0aGVzZSB0b2dldGhlciBpbiB0aGUg
c2FtZSB3YXkgYXMgZWxzZXdoZXJlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZUdyYXBoaWNzTGF5ZXJDb25maWd1cmF0aW9uKToKKyAgICAgICAgVXNlIHRoZSBuZXcgc2V0Q29u
dGVudHNUb1BsYXRmb3JtTGF5ZXIsIHBhc3NpbmcgaW4gdGhlIHJlbGV2YW50IENvbnRlbnRzTGF5
ZXJQdXJwb3NlLgorCiAyMDEzLTExLTA0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUu
Y29tPgogCiAgICAgICAgIEltcGxlbWVudCBnZW5lcmF0ZUtleSBmb3IgSE1BQyBhbmQgQUVTLUNC
QwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBhZTIzZGE0Li5kYzY4OGY4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgpAQCAtNTMzLDEyICs1MzMsMTAgQEAgX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVy
Q0ExN3N1c3BlbmRBbmltYXRpb25zRWQKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMThz
ZXRBbGxvd1RpbGVkTGF5ZXJFYgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOHNldEJh
Y2tncm91bmRDb2xvckVSS05TXzVDb2xvckUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNB
MThzZXRDb250ZW50c1RvSW1hZ2VFUE5TXzVJbWFnZUUKLV9fWk43V2ViQ29yZTE1R3JhcGhpY3NM
YXllckNBMThzZXRDb250ZW50c1RvTWVkaWFFUDdDQUxheWVyCiBfX1pON1dlYkNvcmUxNUdyYXBo
aWNzTGF5ZXJDQTE4c2V0Q29udGVudHNWaXNpYmxlRWIKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NM
YXllckNBMThzZXRPcGFjaXR5SW50ZXJuYWxFZgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVy
Q0ExOHNldFJlcGxpY2F0ZWRMYXllckVQTlNfMTNHcmFwaGljc0xheWVyRQogX19aTjdXZWJDb3Jl
MTVHcmFwaGljc0xheWVyQ0ExOHNldFNob3dEZWJ1Z0JvcmRlckViCi1fX1pON1dlYkNvcmUxNUdy
YXBoaWNzTGF5ZXJDQTE5c2V0Q29udGVudHNUb0NhbnZhc0VQN0NBTGF5ZXIKIF9fWk43V2ViQ29y
ZTE1R3JhcGhpY3NMYXllckNBMjBzZXRDaGlsZHJlblRyYW5zZm9ybUVSS05TXzIwVHJhbnNmb3Jt
YXRpb25NYXRyaXhFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTIwc2V0UmVwbGljYXRl
ZEJ5TGF5ZXJFUE5TXzEzR3JhcGhpY3NMYXllckUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXll
ckNBMjFmbHVzaENvbXBvc2l0aW5nU3RhdGVFUktOU185RmxvYXRSZWN0RQpAQCAtNTUxLDYgKzU0
OSw3IEBAIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjNzZXRDb250ZW50c05lZWRzRGlz
cGxheUV2CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTIzc2V0Q29udGVudHNUb1NvbGlk
Q29sb3JFUktOU181Q29sb3JFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTIzc2V0RGVi
dWdCYWNrZ3JvdW5kQ29sb3JFUktOU181Q29sb3JFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5
ZXJDQTI2c2V0TWFpbnRhaW5zUGl4ZWxBbGlnbm1lbnRFYgorX19aTjdXZWJDb3JlMTVHcmFwaGlj
c0xheWVyQ0EyNnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyRVA3Q0FMYXllck5TXzEzR3JhcGhp
Y3NMYXllcjIwQ29udGVudHNMYXllclB1cnBvc2VFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5
ZXJDQTI4cGxhdGZvcm1DQUxheWVyUGFpbnRDb250ZW50c0VQTlNfMTVQbGF0Zm9ybUNBTGF5ZXJF
Uk5TXzE1R3JhcGhpY3NDb250ZXh0RVJLTlNfN0ludFJlY3RFCiBfX1pON1dlYkNvcmUxNUdyYXBo
aWNzTGF5ZXJDQTMwZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkRXYKIF9fWk43V2ViQ29y
ZTE1R3JhcGhpY3NMYXllckNBMzFwbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkRWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRl
eCA3OWMwZDc4Li4yNGY3YWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0yNDYsNiArMjQ2LDE1IEBAIHB1YmxpYzoKICAgICAv
LyBSZXR1cm5zIHRydWUgaWYgdGhlIGNoaWxkIGxpc3QgY2hhbmdlZC4KICAgICB2aXJ0dWFsIGJv
b2wgc2V0Q2hpbGRyZW4oY29uc3QgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYpOwogCisgICAgZW51
bSBDb250ZW50c0xheWVyUHVycG9zZSB7CisgICAgICAgIE5vQ29udGVudHNMYXllciA9IDAsCisg
ICAgICAgIENvbnRlbnRzTGF5ZXJGb3JJbWFnZSwKKyAgICAgICAgQ29udGVudHNMYXllckZvck1l
ZGlhLAorICAgICAgICBDb250ZW50c0xheWVyRm9yQ2FudmFzLAorICAgICAgICBDb250ZW50c0xh
eWVyRm9yQmFja2dyb3VuZENvbG9yLAorICAgICAgICBDb250ZW50c0xheWVyRm9yUGx1Z2luCisg
ICAgfTsKKwogICAgIC8vIEFkZCBjaGlsZCBsYXllcnMuIElmIHRoZSBjaGlsZCBpcyBhbHJlYWR5
IHBhcmVudGVkLCBpdCB3aWxsIGJlIHJlbW92ZWQgZnJvbSBpdHMgb2xkIHBhcmVudC4KICAgICB2
aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoR3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBh
ZGRDaGlsZEF0SW5kZXgoR3JhcGhpY3NMYXllciosIGludCBpbmRleCk7CkBAIC0zODMsMTMgKzM5
Miw5IEBAIHB1YmxpYzoKICAgICAvLyBMYXllciBjb250ZW50cwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGly
ZWN0bHlDb21wb3NpdGVJbWFnZShJbWFnZSopIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb01lZGlhKFBsYXRmb3JtTGF5ZXIqKSB7IH0gLy8gdmlk
ZW8gb3IgcGx1Zy1pbgogICAgIC8vIFBhc3MgYW4gaW52YWxpZCBjb2xvciB0byByZW1vdmUgdGhl
IGNvbnRlbnRzIGxheWVyLgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvU29saWRDb2xv
cihjb25zdCBDb2xvciYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvQ2FudmFz
KFBsYXRmb3JtTGF5ZXIqKSB7IH0KLSAgICAvLyBGSVhNRTogd2Via2l0Lm9yZy9iLzEwOTY1OAot
ICAgIC8vIFNob3VsZCB1bmlmeSBzZXRDb250ZW50c1RvTWVkaWEgYW5kIHNldENvbnRlbnRzVG9D
YW52YXMKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZv
cm1MYXllciogbGF5ZXIpIHsgc2V0Q29udGVudHNUb01lZGlhKGxheWVyKTsgfQorICAgIHZpcnR1
YWwgdm9pZCBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiwgQ29udGVu
dHNMYXllclB1cnBvc2UpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBoYXNDb250ZW50c0xheWVyKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIENhbGxiYWNrIGZyb20gdGhlIHVuZGVy
bHlpbmcgZ3JhcGhpY3Mgc3lzdGVtIHRvIGRyYXcgbGF5ZXIgY29udGVudHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0dyYXBoaWNzTGF5
ZXJCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNr
YmVycnkvR3JhcGhpY3NMYXllckJsYWNrQmVycnkuY3BwCmluZGV4IDg2ZDU2MDUuLmE0MTQ4MzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkv
R3JhcGhpY3NMYXllckJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvR3JhcGhpY3NMYXllckJsYWNrQmVycnkuY3BwCkBAIC01Mjgs
NDAgKzUyOCwxNCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJCbGFja0JlcnJ5Ojp1cGRhdGVDb250ZW50
c0ltYWdlKEltYWdlKiBpbWFnZSkKICAgICB9CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckJsYWNr
QmVycnk6OnNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcikK
LXsKLSAgICBib29sIGNoaWxkcmVuQ2hhbmdlZCA9IGZhbHNlOwotICAgIGlmIChwbGF0Zm9ybUxh
eWVyKSB7Ci0gICAgICAgIHBsYXRmb3JtTGF5ZXItPnNldE93bmVyKHRoaXMpOwotICAgICAgICBp
ZiAobV9jb250ZW50c0xheWVyLmdldCgpICE9IHBsYXRmb3JtTGF5ZXIpIHsKLSAgICAgICAgICAg
IHNldHVwQ29udGVudHNMYXllcihwbGF0Zm9ybUxheWVyKTsKLSAgICAgICAgICAgIG1fY29udGVu
dHNMYXllciA9IHBsYXRmb3JtTGF5ZXI7Ci0gICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXJQdXJw
b3NlID0gQ29udGVudHNMYXllckZvckNhbnZhczsKLSAgICAgICAgICAgIGNoaWxkcmVuQ2hhbmdl
ZCA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgbV9jb250ZW50c0xheWVyLT5zZXROZWVkc0Rp
c3BsYXkoKTsKLSAgICAgICAgdXBkYXRlQ29udGVudHNSZWN0KCk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgaWYgKG1fY29udGVudHNMYXllcikgewotICAgICAgICAgICAgY2hpbGRyZW5DaGFuZ2Vk
ID0gdHJ1ZTsKLQotICAgICAgICAgICAgLy8gVGhlIG9sZCBjb250ZW50cyBsYXllciB3aWxsIGJl
IHJlbW92ZWQgdmlhIHVwZGF0ZVN1YmxheWVyTGlzdC4KLSAgICAgICAgICAgIG1fY29udGVudHNM
YXllciA9IDA7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoY2hpbGRyZW5DaGFuZ2VkKQot
ICAgICAgICB1cGRhdGVTdWJsYXllckxpc3QoKTsKLX0KLQotdm9pZCBHcmFwaGljc0xheWVyQmxh
Y2tCZXJyeTo6c2V0Q29udGVudHNUb01lZGlhKFBsYXRmb3JtTGF5ZXIqIGxheWVyKQordm9pZCBH
cmFwaGljc0xheWVyQmxhY2tCZXJyeTo6c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZv
cm1MYXllciogbGF5ZXIsIENvbnRlbnRzTGF5ZXJQdXJwb3NlIHB1cnBvc2UpCiB7CiAgICAgYm9v
bCBjaGlsZHJlbkNoYW5nZWQgPSBmYWxzZTsKICAgICBpZiAobGF5ZXIpIHsKICAgICAgICAgaWYg
KCFtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkgfHwgbV9jb250ZW50c0xheWVyUHVycG9zZSAhPSBDb250
ZW50c0xheWVyRm9yVmlkZW8pIHsKICAgICAgICAgICAgIHNldHVwQ29udGVudHNMYXllcihsYXll
cik7CiAgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBsYXllcjsKLSAgICAgICAgICAgIG1f
Y29udGVudHNMYXllclB1cnBvc2UgPSBDb250ZW50c0xheWVyRm9yVmlkZW87CisgICAgICAgICAg
ICBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID0gcHVycG9zZTsKICAgICAgICAgICAgIGNoaWxkcmVu
Q2hhbmdlZCA9IHRydWU7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9HcmFwaGljc0xheWVyQmxhY2tCZXJyeS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9HcmFwaGljc0xheWVy
QmxhY2tCZXJyeS5oCmluZGV4IDc2ZWJlODMuLmE0OWY2NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvR3JhcGhpY3NMYXllckJsYWNrQmVy
cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0dy
YXBoaWNzTGF5ZXJCbGFja0JlcnJ5LmgKQEAgLTEwNCw4ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250ZW50c1RvSW1hZ2UoSW1hZ2UqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb01l
ZGlhKFBsYXRmb3JtTGF5ZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0NhbnZh
cyhQbGF0Zm9ybUxheWVyKik7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9y
bUxheWVyKFBsYXRmb3JtTGF5ZXIqLCBDb250ZW50c0xheWVyUHVycG9zZSk7CiAKICAgICB2aXJ0
dWFsIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKIApAQCAtMTcxLDEzICsx
NzAsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxSZWZQdHI8TGF5ZXJBbmltYXRpb24+ID4gbV9z
dXNwZW5kZWRBbmltYXRpb25zOwogICAgIGRvdWJsZSBtX3N1c3BlbmRUaW1lOwogCi0gICAgZW51
bSBDb250ZW50c0xheWVyUHVycG9zZSB7Ci0gICAgICAgIE5vQ29udGVudHNMYXllciA9IDAsCi0g
ICAgICAgIENvbnRlbnRzTGF5ZXJGb3JJbWFnZSwKLSAgICAgICAgQ29udGVudHNMYXllckZvclZp
ZGVvLAotICAgICAgICBDb250ZW50c0xheWVyRm9yQ2FudmFzLAotICAgIH07Ci0KICAgICBDb250
ZW50c0xheWVyUHVycG9zZSBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5j
cHAKaW5kZXggZTA3OWUxNi4uYTBhZWM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC04NzQsNDAgKzg3
NCwyNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBp
bWFnZSkKICAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ29udGVudHNJbWFnZUNoYW5nZWQp
OwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb01lZGlhKFBsYXRmb3Jt
TGF5ZXIqIG1lZGlhTGF5ZXIpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1Bs
YXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllciwgQ29udGVudHNMYXllclB1
cnBvc2UgcHVycG9zZSkKIHsKLSAgICBpZiAobV9jb250ZW50c0xheWVyICYmIG1lZGlhTGF5ZXIg
PT0gbV9jb250ZW50c0xheWVyLT5wbGF0Zm9ybUxheWVyKCkpCisgICAgaWYgKG1fY29udGVudHNM
YXllciAmJiBwbGF0Zm9ybUxheWVyID09IG1fY29udGVudHNMYXllci0+cGxhdGZvcm1MYXllcigp
KQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAotICAgIC8vIEZJWE1FOiBUaGUgcGFzc2VkIGlu
IGxheWVyIG1pZ2h0IGJlIGEgcmF3IGxheWVyIG9yIGFuIGV4dGVybmFsbHkgY3JlYXRlZCAKKwor
ICAgIC8vIEZJWE1FOiBUaGUgcGFzc2VkIGluIGxheWVyIG1pZ2h0IGJlIGEgcmF3IGxheWVyIG9y
IGFuIGV4dGVybmFsbHkgY3JlYXRlZAogICAgIC8vIFBsYXRmb3JtQ0FMYXllci4gVG8gZGV0ZXJt
aW5lIHRoaXMgd2UgYXR0ZW1wdCB0byBnZXQgdGhlCiAgICAgLy8gUGxhdGZvcm1DQUxheWVyIHBv
aW50ZXIuIElmIHRoaXMgcmV0dXJucyBhIG51bGwgcG9pbnRlciB3ZSBhc3N1bWUgaXQncwogICAg
IC8vIHJhdy4gVGhpcyB0ZXN0IG1pZ2h0IGJlIGludmFsaWQgaWYgdGhlIHJhdyBsYXllciBpcywg
Zm9yIGluc3RhbmNlLCB0aGUKICAgICAvLyBQbGF0Zm9ybUNBTGF5ZXIgaXMgdXNpbmcgYSB1c2Vy
IGRhdGEgcG9pbnRlciBpbiB0aGUgcmF3IGxheWVyLCBhbmQKICAgICAvLyB0aGUgY3JlYXRvciBv
ZiB0aGUgcmF3IGxheWVyIGlzIHVzaW5nIGl0IGZvciBzb21lIG90aGVyIHB1cnBvc2UuCiAgICAg
Ly8gRm9yIG5vdyB3ZSBkb24ndCBzdXBwb3J0IHN1Y2ggYSBjYXNlLgotICAgIFBsYXRmb3JtQ0FM
YXllciogcGxhdGZvcm1DQUxheWVyID0gUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIo
bWVkaWFMYXllcik7Ci0gICAgbV9jb250ZW50c0xheWVyID0gbWVkaWFMYXllciA/IChwbGF0Zm9y
bUNBTGF5ZXIgPyBwbGF0Zm9ybUNBTGF5ZXIgOiBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIobWVkaWFM
YXllciwgdGhpcykpIDogMDsKLSAgICBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID0gbWVkaWFMYXll
ciA/IENvbnRlbnRzTGF5ZXJGb3JNZWRpYSA6IE5vQ29udGVudHNMYXllcjsKKyAgICBQbGF0Zm9y
bUNBTGF5ZXIqIHBsYXRmb3JtQ0FMYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxh
eWVyKHBsYXRmb3JtTGF5ZXIpOworICAgIG1fY29udGVudHNMYXllciA9IHBsYXRmb3JtTGF5ZXIg
PyAocGxhdGZvcm1DQUxheWVyID8gcGxhdGZvcm1DQUxheWVyIDogY3JlYXRlUGxhdGZvcm1DQUxh
eWVyKHBsYXRmb3JtTGF5ZXIsIHRoaXMpKSA6IDA7CisgICAgbV9jb250ZW50c0xheWVyUHVycG9z
ZSA9IHBsYXRmb3JtTGF5ZXIgPyBwdXJwb3NlIDogTm9Db250ZW50c0xheWVyOwogCiAgICAgbm90
ZVN1YmxheWVyc0NoYW5nZWQoKTsKLSAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ29udGVu
dHNNZWRpYUxheWVyQ2hhbmdlZCk7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRl
bnRzUGxhdGZvcm1MYXllckNoYW5nZWQpOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0
Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKiBjYW52YXNMYXllcikKLXsKLSAgICBpZiAo
bV9jb250ZW50c0xheWVyICYmIGNhbnZhc0xheWVyID09IG1fY29udGVudHNMYXllci0+cGxhdGZv
cm1MYXllcigpKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgLy8gQ3JlYXRlIHRoZSBQbGF0
Zm9ybUNBTGF5ZXIgdG8gd3JhcCB0aGUgaW5jb21pbmcgbGF5ZXIKLSAgICBtX2NvbnRlbnRzTGF5
ZXIgPSBjYW52YXNMYXllciA/IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihjYW52YXNMYXllciwgdGhp
cykgOiAwOwotICAgIAotICAgIG1fY29udGVudHNMYXllclB1cnBvc2UgPSBjYW52YXNMYXllciA/
IENvbnRlbnRzTGF5ZXJGb3JDYW52YXMgOiBOb0NvbnRlbnRzTGF5ZXI7Ci0KLSAgICBub3RlU3Vi
bGF5ZXJzQ2hhbmdlZCgpOwotICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50c0Nh
bnZhc0xheWVyQ2hhbmdlZCk7Ci19Ci0gICAgCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6bGF5ZXJE
aWREaXNwbGF5KFBsYXRmb3JtTGF5ZXIqIGxheWVyKQogewogICAgIFBsYXRmb3JtQ0FMYXllciog
Y3VycmVudExheWVyID0gUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIobGF5ZXIpOwpA
QCAtMTI2NiwxMSArMTI1Miw4IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNo
YW5nZXNCZWZvcmVTdWJsYXllcnMoQ29tbWl0U3RhdGUmIGNvbW1pdFN0YXRlCiAgICAgaWYgKG1f
dW5jb21taXR0ZWRDaGFuZ2VzICYgQ29udGVudHNJbWFnZUNoYW5nZWQpIC8vIE5lZWRzIHRvIGhh
cHBlbiBiZWZvcmUgQ2hpbGRyZW5DaGFuZ2VkCiAgICAgICAgIHVwZGF0ZUNvbnRlbnRzSW1hZ2Uo
KTsKICAgICAgICAgCi0gICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ29udGVudHNNZWRp
YUxheWVyQ2hhbmdlZCkgLy8gTmVlZHMgdG8gaGFwcGVuIGJlZm9yZSBDaGlsZHJlbkNoYW5nZWQK
LSAgICAgICAgdXBkYXRlQ29udGVudHNNZWRpYUxheWVyKCk7Ci0gICAgCi0gICAgaWYgKG1fdW5j
b21taXR0ZWRDaGFuZ2VzICYgQ29udGVudHNDYW52YXNMYXllckNoYW5nZWQpIC8vIE5lZWRzIHRv
IGhhcHBlbiBiZWZvcmUgQ2hpbGRyZW5DaGFuZ2VkCi0gICAgICAgIHVwZGF0ZUNvbnRlbnRzQ2Fu
dmFzTGF5ZXIoKTsKKyAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBDb250ZW50c1BsYXRm
b3JtTGF5ZXJDaGFuZ2VkKSAvLyBOZWVkcyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdl
ZAorICAgICAgICB1cGRhdGVDb250ZW50c1BsYXRmb3JtTGF5ZXIoKTsKIAogICAgIGlmIChtX3Vu
Y29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzQ29sb3JMYXllckNoYW5nZWQpIC8vIE5lZWRzIHRv
IGhhcHBlbiBiZWZvcmUgQ2hpbGRyZW5DaGFuZ2VkCiAgICAgICAgIHVwZGF0ZUNvbnRlbnRzQ29s
b3JMYXllcigpOwpAQCAtMTg0OCwyNCArMTgzMSwxNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6
dXBkYXRlQ29udGVudHNJbWFnZSgpCiAgICAgfQogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6
dXBkYXRlQ29udGVudHNNZWRpYUxheWVyKCkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVD
b250ZW50c1BsYXRmb3JtTGF5ZXIoKQogewotICAgIGlmICghbV9jb250ZW50c0xheWVyIHx8IG1f
Y29udGVudHNMYXllclB1cnBvc2UgIT0gQ29udGVudHNMYXllckZvck1lZGlhKQorICAgIGlmICgh
bV9jb250ZW50c0xheWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBWaWRlbyBsYXllciB3
YXMgc2V0IGFzIG1fY29udGVudHNMYXllciwgYW5kIHdpbGwgZ2V0IHBhcmVudGVkIGluIHVwZGF0
ZVN1YmxheWVyTGlzdCgpLgorICAgIC8vIFBsYXRmb3JtIGxheWVyIHdhcyBzZXQgYXMgbV9jb250
ZW50c0xheWVyLCBhbmQgd2lsbCBnZXQgcGFyZW50ZWQgaW4gdXBkYXRlU3VibGF5ZXJMaXN0KCku
CiAgICAgc2V0dXBDb250ZW50c0xheWVyKG1fY29udGVudHNMYXllci5nZXQoKSk7Ci0gICAgdXBk
YXRlQ29udGVudHNSZWN0cygpOwotfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29u
dGVudHNDYW52YXNMYXllcigpCi17Ci0gICAgaWYgKCFtX2NvbnRlbnRzTGF5ZXIgfHwgbV9jb250
ZW50c0xheWVyUHVycG9zZSAhPSBDb250ZW50c0xheWVyRm9yQ2FudmFzKQotICAgICAgICByZXR1
cm47CisgICAgaWYgKG1fY29udGVudHNMYXllclB1cnBvc2UgPT0gQ29udGVudHNMYXllckZvckNh
bnZhcykKKyAgICAgICAgbV9jb250ZW50c0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKIAotICAg
IC8vIENhbnZhc0xheWVyIHdhcyBzZXQgYXMgbV9jb250ZW50c0xheWVyLCBhbmQgd2lsbCBnZXQg
cGFyZW50ZWQgaW4gdXBkYXRlU3VibGF5ZXJMaXN0KCkuCi0gICAgc2V0dXBDb250ZW50c0xheWVy
KG1fY29udGVudHNMYXllci5nZXQoKSk7Ci0gICAgbV9jb250ZW50c0xheWVyLT5zZXROZWVkc0Rp
c3BsYXkoKTsKICAgICB1cGRhdGVDb250ZW50c1JlY3RzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXgg
OTYzZGMzNS4uNjVjYzRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTExOCw4ICsxMTgsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbihjb25zdCBTdHJpbmcmIGFuaW1hdGlv
bk5hbWUpOwogCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFnZSopOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvTWVkaWEoUGxhdGZvcm1MYXllciopOwotICAg
IHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIqKTsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciosIENv
bnRlbnRzTGF5ZXJQdXJwb3NlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1NvbGlk
Q29sb3IoY29uc3QgQ29sb3ImKTsKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNDb250ZW50c0xheWVy
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c0xheWVyOyB9CkBAIC0zNTAsOCArMzQ5LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUJhY2tncm91bmRDb2xvcigpOwogCiAgICAgdm9pZCB1
cGRhdGVDb250ZW50c0ltYWdlKCk7Ci0gICAgdm9pZCB1cGRhdGVDb250ZW50c01lZGlhTGF5ZXIo
KTsKLSAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzQ2FudmFzTGF5ZXIoKTsKKyAgICB2b2lkIHVwZGF0
ZUNvbnRlbnRzUGxhdGZvcm1MYXllcigpOwogICAgIHZvaWQgdXBkYXRlQ29udGVudHNDb2xvckxh
eWVyKCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c1JlY3RzKCk7CiAgICAgdm9pZCB1cGRhdGVN
YXNrTGF5ZXIoKTsKQEAgLTQwNiwyMSArNDA0LDIwIEBAIHByaXZhdGU6CiAgICAgICAgIEFuaW1h
dGlvbkNoYW5nZWQgPSAxIDw8IDEzLAogICAgICAgICBEaXJ0eVJlY3RzQ2hhbmdlZCA9IDEgPDwg
MTQsCiAgICAgICAgIENvbnRlbnRzSW1hZ2VDaGFuZ2VkID0gMSA8PCAxNSwKLSAgICAgICAgQ29u
dGVudHNNZWRpYUxheWVyQ2hhbmdlZCA9IDEgPDwgMTYsCi0gICAgICAgIENvbnRlbnRzQ2FudmFz
TGF5ZXJDaGFuZ2VkID0gMSA8PCAxNywKLSAgICAgICAgQ29udGVudHNDb2xvckxheWVyQ2hhbmdl
ZCA9IDEgPDwgMTgsCi0gICAgICAgIENvbnRlbnRzUmVjdHNDaGFuZ2VkID0gMSA8PCAxOSwKLSAg
ICAgICAgTWFza0xheWVyQ2hhbmdlZCA9IDEgPDwgMjAsCi0gICAgICAgIFJlcGxpY2F0ZWRMYXll
ckNoYW5nZWQgPSAxIDw8IDIxLAotICAgICAgICBDb250ZW50c05lZWRzRGlzcGxheSA9IDEgPDwg
MjIsCi0gICAgICAgIEFjY2VsZXJhdGVzRHJhd2luZ0NoYW5nZWQgPSAxIDw8IDIzLAotICAgICAg
ICBDb250ZW50c1NjYWxlQ2hhbmdlZCA9IDEgPDwgMjQsCi0gICAgICAgIENvbnRlbnRzVmlzaWJp
bGl0eUNoYW5nZWQgPSAxIDw8IDI1LAotICAgICAgICBWaXNpYmxlUmVjdENoYW5nZWQgPSAxIDw8
IDI2LAotICAgICAgICBGaWx0ZXJzQ2hhbmdlZCA9IDEgPDwgMjcsCi0gICAgICAgIFRpbGluZ0Fy
ZWFDaGFuZ2VkID0gMSA8PCAyOCwKLSAgICAgICAgVGlsZXNBZGRlZCA9IDEgPCAyOSwKLSAgICAg
ICAgRGVidWdJbmRpY2F0b3JzQ2hhbmdlZCA9IDEgPDwgMzAKKyAgICAgICAgQ29udGVudHNQbGF0
Zm9ybUxheWVyQ2hhbmdlZCA9IDEgPDwgMTYsCisgICAgICAgIENvbnRlbnRzQ29sb3JMYXllckNo
YW5nZWQgPSAxIDw8IDE3LAorICAgICAgICBDb250ZW50c1JlY3RzQ2hhbmdlZCA9IDEgPDwgMTgs
CisgICAgICAgIE1hc2tMYXllckNoYW5nZWQgPSAxIDw8IDE5LAorICAgICAgICBSZXBsaWNhdGVk
TGF5ZXJDaGFuZ2VkID0gMSA8PCAyMCwKKyAgICAgICAgQ29udGVudHNOZWVkc0Rpc3BsYXkgPSAx
IDw8IDIxLAorICAgICAgICBBY2NlbGVyYXRlc0RyYXdpbmdDaGFuZ2VkID0gMSA8PCAyMiwKKyAg
ICAgICAgQ29udGVudHNTY2FsZUNoYW5nZWQgPSAxIDw8IDIzLAorICAgICAgICBDb250ZW50c1Zp
c2liaWxpdHlDaGFuZ2VkID0gMSA8PCAyNCwKKyAgICAgICAgVmlzaWJsZVJlY3RDaGFuZ2VkID0g
MSA8PCAyNSwKKyAgICAgICAgRmlsdGVyc0NoYW5nZWQgPSAxIDw8IDI2LAorICAgICAgICBUaWxp
bmdBcmVhQ2hhbmdlZCA9IDEgPDwgMjcsCisgICAgICAgIFRpbGVzQWRkZWQgPSAxIDwgMjgsCisg
ICAgICAgIERlYnVnSW5kaWNhdG9yc0NoYW5nZWQgPSAxIDw8IDI5CiAgICAgfTsKICAgICB0eXBl
ZGVmIHVuc2lnbmVkIExheWVyQ2hhbmdlRmxhZ3M7CiAgICAgZW51bSBTY2hlZHVsZUZsdXNoT3JO
b3QgeyBTY2hlZHVsZUZsdXNoLCBEb250U2NoZWR1bGVGbHVzaCB9OwpAQCAtNDQ3LDE0ICs0NDQs
NiBAQCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCBtX3Zpc2libGVSZWN0OwogICAgIEZsb2F0U2l6
ZSBtX3NpemVBdExhc3RWaXNpYmxlUmVjdFVwZGF0ZTsKICAgICAKLSAgICBlbnVtIENvbnRlbnRz
TGF5ZXJQdXJwb3NlIHsKLSAgICAgICAgTm9Db250ZW50c0xheWVyID0gMCwKLSAgICAgICAgQ29u
dGVudHNMYXllckZvckltYWdlLAotICAgICAgICBDb250ZW50c0xheWVyRm9yTWVkaWEsCi0gICAg
ICAgIENvbnRlbnRzTGF5ZXJGb3JDYW52YXMsCi0gICAgICAgIENvbnRlbnRzTGF5ZXJGb3JCYWNr
Z3JvdW5kQ29sb3IKLSAgICB9OwotICAgIAogICAgIENvbnRlbnRzTGF5ZXJQdXJwb3NlIG1fY29u
dGVudHNMYXllclB1cnBvc2U7CiAgICAgYm9vbCBtX2FsbG93VGlsZWRMYXllciA6IDE7CiAgICAg
Ym9vbCBtX2lzUGFnZVRpbGVkQmFja2luZ0xheWVyIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IGU3NjRmNWMuLmE2Yzg4NjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtMzcwLDE3ICszNzAsMTcgQEAg
dm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdl
KiBpbWFnZSkKICAgICAgICAgbV9jb21wb3NpdGVkSW1hZ2UgPSAwOwogICAgIH0KIAotICAgIHNl
dENvbnRlbnRzVG9NZWRpYShtX2NvbXBvc2l0ZWRJbWFnZS5nZXQoKSk7CisgICAgc2V0Q29udGVu
dHNUb1BsYXRmb3JtTGF5ZXIobV9jb21wb3NpdGVkSW1hZ2UuZ2V0KCkpOwogICAgIG5vdGlmeUNo
YW5nZShDb250ZW50Q2hhbmdlKTsKICAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvSW1h
Z2UoaW1hZ2UpOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250
ZW50c1RvTWVkaWEoVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIqIG1lZGlhKQordm9pZCBHcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXIqIG1lZGlhLCBDb250ZW50c0xheWVyUHVycG9zZSkKIHsKICAg
ICBpZiAobWVkaWEgPT0gbV9jb250ZW50c0xheWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBH
cmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvTWVkaWEobWVkaWEpOworICAgIEdyYXBoaWNzTGF5
ZXI6OnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKG1lZGlhKTsKICAgICBub3RpZnlDaGFuZ2Uo
Q29udGVudENoYW5nZSk7CiAKICAgICBpZiAobV9jb250ZW50c0xheWVyKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAppbmRleCAwMTUxZDY1Li5mZmJjN2I4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaApAQCAtNjgsOCArNjgsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFnZSopOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYpOwogICAgIENv
bG9yIHNvbGlkQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX3NvbGlkQ29sb3I7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgc2V0Q29udGVudHNUb01lZGlhKFBsYXRmb3JtTGF5ZXIqKTsKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKiBjYW52YXMpIHsgc2V0Q29u
dGVudHNUb01lZGlhKGNhbnZhcyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1Bs
YXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQdXJwb3NlKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IHdpZHRoKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wpIE9WRVJSSURF
OwpAQCAtMTEyLDcgKzExMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcmVwYXJlQmFja2luZ1N0
b3JlSWZOZWVkZWQoKTsKICAgICBib29sIHNob3VsZEhhdmVCYWNraW5nU3RvcmUoKSBjb25zdDsK
IAotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUxheWVyV2lsbEJlRGVzdHJveWVkKCkgT1ZFUlJJ
REUgeyBzZXRDb250ZW50c1RvTWVkaWEoMCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1M
YXllcldpbGxCZURlc3Ryb3llZCgpIE9WRVJSSURFIHsgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5
ZXIoMCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0UGxhdGZvcm1MYXllck5lZWRzRGlzcGxheSgp
IE9WRVJSSURFIHsgc2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsgfQogCiAgICAgLy8gVGhpcyBz
ZXQgb2YgZmxhZ3MgaGVscCB1cyBkZWZlciB3aGljaCBwcm9wZXJ0aWVzIG9mIHRoZSBsYXllciBo
YXZlIGJlZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKaW5kZXggNzExYzY0Yy4uYThiMzc5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTU1NywxOSArNTU3LDE5IEBAIGJvb2wg
UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVHcmFwaGljc0xheWVyQ29uZmlndXJhdGlvbigpCiAg
ICAgaWYgKHJlbmRlcmVyKCkuaXNFbWJlZGRlZE9iamVjdCgpICYmIHRvUmVuZGVyRW1iZWRkZWRP
YmplY3QoJnJlbmRlcmVyKCkpLT5hbGxvd3NBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkpIHsKICAg
ICAgICAgUGx1Z2luVmlld0Jhc2UqIHBsdWdpblZpZXdCYXNlID0gdG9QbHVnaW5WaWV3QmFzZSh0
b1JlbmRlcldpZGdldCgmcmVuZGVyZXIoKSktPndpZGdldCgpKTsKICAgICAgICAgaWYgKCFwbHVn
aW5WaWV3QmFzZS0+c2hvdWxkTm90QWRkTGF5ZXIoKSkKLSAgICAgICAgICAgIG1fZ3JhcGhpY3NM
YXllci0+c2V0Q29udGVudHNUb01lZGlhKHBsdWdpblZpZXdCYXNlLT5wbGF0Zm9ybUxheWVyKCkp
OworICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RvUGxhdGZvcm1MYXll
cihwbHVnaW5WaWV3QmFzZS0+cGxhdGZvcm1MYXllcigpLCBHcmFwaGljc0xheWVyOjpDb250ZW50
c0xheWVyRm9yUGx1Z2luKTsKICAgICB9CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGVsc2UgaWYg
KHJlbmRlcmVyKCkuaXNWaWRlbygpKSB7CiAgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlh
RWxlbWVudCA9IHRvSFRNTE1lZGlhRWxlbWVudChyZW5kZXJlcigpLmVsZW1lbnQoKSk7Ci0gICAg
ICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNUb01lZGlhKG1lZGlhRWxlbWVudC0+cGxh
dGZvcm1MYXllcigpKTsKKyAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RvUGxh
dGZvcm1MYXllcihtZWRpYUVsZW1lbnQtPnBsYXRmb3JtTGF5ZXIoKSwgR3JhcGhpY3NMYXllcjo6
Q29udGVudHNMYXllckZvck1lZGlhKTsKICAgICB9CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCR0wp
IHx8IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCiAgICAgZWxzZSBpZiAoaXNBY2NlbGVy
YXRlZENhbnZhcygmcmVuZGVyZXIoKSkpIHsKICAgICAgICAgY29uc3QgSFRNTENhbnZhc0VsZW1l
bnQqIGNhbnZhcyA9IHRvSFRNTENhbnZhc0VsZW1lbnQocmVuZGVyZXIoKS5lbGVtZW50KCkpOwog
ICAgICAgICBpZiAoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IGNhbnZhcy0+cmVu
ZGVyaW5nQ29udGV4dCgpKQotICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50
c1RvQ2FudmFzKGNvbnRleHQtPnBsYXRmb3JtTGF5ZXIoKSk7CisgICAgICAgICAgICBtX2dyYXBo
aWNzTGF5ZXItPnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKGNvbnRleHQtPnBsYXRmb3JtTGF5
ZXIoKSwgR3JhcGhpY3NMYXllcjo6Q29udGVudHNMYXllckZvckNhbnZhcyk7CiAgICAgICAgIGxh
eWVyQ29uZmlnQ2hhbmdlZCA9IHRydWU7CiAgICAgfQogI2VuZGlmCg==
</data>
<flag name="review"
          id="238808"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="238811"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236712</attachid>
            <date>2014-08-16 06:04:56 -0700</date>
            <delta_ts>2014-08-16 06:19:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109658-20140816220448.patch</filename>
            <type>text/plain</type>
            <size>35690</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwZDAzNjViNGI0MmEx
OTljNjlkZWQzNGZiYjFmN2U0ZGZlOTJkZi4uN2MzYzNmZWRhYmVhNzc2YzgwODRmZGJjNDQwY2Nk
MWUyZTgwNDJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE0LTA4LTE2ICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgVW5pZnkgR3JhcGhpY3NM
YXllcjo6c2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk2NTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiBwYXRjaCBv
cmlnaW5hbGx5IHdyaXR0ZW4gYnkgVGltIEhvcnRvbi4KKyAgICAgICAgTWVyZ2Ugc2V0Q29udGVu
dHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzIGludG8gc2V0Q29udGVudHNUb1BsYXRm
b3JtTGF5ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6
CisgICAgICAgIE1vdmUgQ29udGVudHNMYXllclB1cnBvc2UgZW51bSB1cCBvdXQgb2YgR3JhcGhp
Y3NMYXllciBwbGF0Zm9ybSBpbXBsbWVudGF0aW9ucworICAgICAgICBhbmQgaW50byBHcmFwaGlj
c0xheWVyLCBzbyB3ZSBjYW4gdXNlIGl0IGFzIGEgcGFyYW1ldGVyLgorICAgICAgICBBZGQgQ29u
dGVudHNMYXllckZvclBsdWdpbi4KKworICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6
c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICBSZW1vdmUgc2V0Q29udGVudHNU
b01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzLCBhbmQgcmVwbGFjZSB0aGVtCisgICAgICAg
IHdpdGggc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIsIHdoaWNoIHByZXZpb3VzbHkgZXhpc3Rl
ZCBidXQgd2FzIHVudXNlZAorICAgICAgICBhbmQgc2ltcGx5IGNhbGxlZCBzZXRDb250ZW50c1Rv
TWVkaWEuCisgICAgICAgIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyIHRha2VzIGEgQ29udGVu
dHNMYXllclB1cnBvc2UsIHByaW1hcmlseQorICAgICAgICBzbyB0aGF0IEdyYXBoaWNzTGF5ZXJD
QSBjYW4ga25vdyB3aGV0aGVyIGl0IG5lZWRzIHRvIHNldE5lZWRzRGlzcGxheQorICAgICAgICB0
aGUgbGF5ZXIgd2hlbiBwYXJlbnRpbmcgaXQgKGNhbnZhcykgb3Igbm90IChldmVyeXRoaW5nIGVs
c2UpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1BsYXRm
b3JtTGF5ZXIpOgorICAgICAgICBSZW5hbWUgZnVuY3Rpb24gc2V0Q29udGVudHNUb01lZGlhIC0+
IHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyLgorICAgICAgICBSZW5hbWUgYXJndW1lbnQgbWVk
aWFMYXllciAtPiBwbGF0Zm9ybUxheWVyLgorICAgICAgICBTdG9yZSB0aGUgcGFzc2VkLWluIENv
bnRlbnRzTGF5ZXJQdXJwb3NlLgorICAgICAgICBSZW1vdmUgc2V0Q29udGVudHNUb0NhbnZhcy4K
KworICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNC
ZWZvcmVTdWJsYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRh
dGVDb250ZW50c1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICBSZW1vdmUgdXBkYXRlQ29udGVudHNN
ZWRpYUxheWVyIGFuZCB1cGRhdGVDb250ZW50c0NhbnZhcyBsYXllciwKKyAgICAgICAgYWRkIHVw
ZGF0ZUNvbnRlbnRzUGxhdGZvcm1MYXllci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICBEbyB0aGUgc2FtZSB0byB0aGUgTGF5ZXJD
aGFuZ2UgZW51bS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGlj
c0xheWVyVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNU
b1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzeW5jUGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OmRlc3Ryb3lQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENv
bXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgRm9sZCB0aGVzZSB0b2dl
dGhlciBpbiB0aGUgc2FtZSB3YXkgYXMgZWxzZXdoZXJlLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgor
ICAgICAgICBEbyB0aGUgc2FtZSB0byB0aGUgTGF5ZXJDaGFuZ2UgZW51bS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
U2NlbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpj
cmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lOjpzeW5jUGxhdGZvcm1MYXllcklmTmVlZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5l
ZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExh
eWVyU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyU3RhdGUpOgorICAgICAgICBSZW5hbWUgY2FudmFzTGF5ZXIgLT4gcGxhdGZvcm1M
YXllci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9uKToK
KyAgICAgICAgVXNlIHRoZSBuZXcgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIsIHBhc3Npbmcg
aW4gdGhlIHJlbGV2YW50IENvbnRlbnRzTGF5ZXJQdXJwb3NlLgorCiAyMDE0LTA4LTE1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90IHVzZSBGbG9hdFJl
Y3Q6OmluZmluaXRlUmVjdCgpIHRvIGZsYWcgZnVsbCByZXBhaW50cy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA0Nzg5MWI4NmZl
NzgyYjYyOGM5MTVhMjFmZDMzY2NmYWY1ZjY2YjM5Li42ZDg4ZDg0NWM0OWUzMDA2Zjk3ZjAwMjE1
YmQxZWQyMmNmOWFlZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllci5oCkBAIC0yNTEsNiArMjUxLDE1IEBAIHB1YmxpYzoKICAgICAvLyBS
ZXR1cm5zIHRydWUgaWYgdGhlIGNoaWxkIGxpc3QgY2hhbmdlZC4KICAgICB2aXJ0dWFsIGJvb2wg
c2V0Q2hpbGRyZW4oY29uc3QgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYpOwogCisgICAgZW51bSBD
b250ZW50c0xheWVyUHVycG9zZSB7CisgICAgICAgIE5vQ29udGVudHNMYXllciA9IDAsCisgICAg
ICAgIENvbnRlbnRzTGF5ZXJGb3JJbWFnZSwKKyAgICAgICAgQ29udGVudHNMYXllckZvck1lZGlh
LAorICAgICAgICBDb250ZW50c0xheWVyRm9yQ2FudmFzLAorICAgICAgICBDb250ZW50c0xheWVy
Rm9yQmFja2dyb3VuZENvbG9yLAorICAgICAgICBDb250ZW50c0xheWVyRm9yUGx1Z2luCisgICAg
fTsKKwogICAgIC8vIEFkZCBjaGlsZCBsYXllcnMuIElmIHRoZSBjaGlsZCBpcyBhbHJlYWR5IHBh
cmVudGVkLCBpdCB3aWxsIGJlIHJlbW92ZWQgZnJvbSBpdHMgb2xkIHBhcmVudC4KICAgICB2aXJ0
dWFsIHZvaWQgYWRkQ2hpbGQoR3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBhZGRD
aGlsZEF0SW5kZXgoR3JhcGhpY3NMYXllciosIGludCBpbmRleCk7CkBAIC00MDUsMTYgKzQxNCwx
MiBAQCBwdWJsaWM6CiAgICAgLy8gTGF5ZXIgY29udGVudHMKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Q29udGVudHNUb0ltYWdlKEltYWdlKikgeyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZERpcmVj
dGx5Q29tcG9zaXRlSW1hZ2UoSW1hZ2UqKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmly
dHVhbCB2b2lkIHNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKikgeyB9IC8vIHZpZGVv
IG9yIHBsdWctaW4KICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVy
KiBjb250ZW50c0xheWVyRm9yTWVkaWEoKSBjb25zdCB7IHJldHVybiAwOyB9CiAjZW5kaWYKICAg
ICAvLyBQYXNzIGFuIGludmFsaWQgY29sb3IgdG8gcmVtb3ZlIHRoZSBjb250ZW50cyBsYXllci4K
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImKSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKikg
eyB9Ci0gICAgLy8gRklYTUU6IHdlYmtpdC5vcmcvYi8xMDk2NTgKLSAgICAvLyBTaG91bGQgdW5p
Znkgc2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzCi0gICAgdmlydHVh
bCB2b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqIGxheWVyKSB7
IHNldENvbnRlbnRzVG9NZWRpYShsYXllcik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVu
dHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQdXJwb3NlKSB7
IH0KICAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgLy8gQ2FsbGJhY2sgZnJvbSB0aGUgdW5kZXJseWluZyBncmFwaGljcyBz
eXN0ZW0gdG8gZHJhdyBsYXllciBjb250ZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDg5NmI2ZWQy
ZjZlNjJhMmVlOTNlYjllZDkyMGRlZjA0ZTVjYjA2NGUuLjQwYmQ5NTA2MmEzMWQ4NmZjMjlkZTM5
ODA1MGJjODMzYjMzYWIxYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtOTE4LDIxICs5MTgsMjEgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCiAg
ICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzSW1hZ2VDaGFuZ2VkKTsKIH0KIAot
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKiBt
ZWRpYUxheWVyKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9QbGF0Zm9ybUxh
eWVyKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIsIENvbnRlbnRzTGF5ZXJQdXJwb3NlIHB1
cnBvc2UpCiB7Ci0gICAgaWYgKG1fY29udGVudHNMYXllciAmJiBtZWRpYUxheWVyID09IG1fY29u
dGVudHNMYXllci0+cGxhdGZvcm1MYXllcigpKQorICAgIGlmIChtX2NvbnRlbnRzTGF5ZXIgJiYg
cGxhdGZvcm1MYXllciA9PSBtX2NvbnRlbnRzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAKLSAgICAvLyBGSVhNRTogVGhlIHBhc3NlZCBpbiBsYXllciBt
aWdodCBiZSBhIHJhdyBsYXllciBvciBhbiBleHRlcm5hbGx5IGNyZWF0ZWQgCisKKyAgICAvLyBG
SVhNRTogVGhlIHBhc3NlZCBpbiBsYXllciBtaWdodCBiZSBhIHJhdyBsYXllciBvciBhbiBleHRl
cm5hbGx5IGNyZWF0ZWQKICAgICAvLyBQbGF0Zm9ybUNBTGF5ZXIuIFRvIGRldGVybWluZSB0aGlz
IHdlIGF0dGVtcHQgdG8gZ2V0IHRoZQogICAgIC8vIFBsYXRmb3JtQ0FMYXllciBwb2ludGVyLiBJ
ZiB0aGlzIHJldHVybnMgYSBudWxsIHBvaW50ZXIgd2UgYXNzdW1lIGl0J3MKICAgICAvLyByYXcu
IFRoaXMgdGVzdCBtaWdodCBiZSBpbnZhbGlkIGlmIHRoZSByYXcgbGF5ZXIgaXMsIGZvciBpbnN0
YW5jZSwgdGhlCiAgICAgLy8gUGxhdGZvcm1DQUxheWVyIGlzIHVzaW5nIGEgdXNlciBkYXRhIHBv
aW50ZXIgaW4gdGhlIHJhdyBsYXllciwgYW5kCiAgICAgLy8gdGhlIGNyZWF0b3Igb2YgdGhlIHJh
dyBsYXllciBpcyB1c2luZyBpdCBmb3Igc29tZSBvdGhlciBwdXJwb3NlLgogICAgIC8vIEZvciBu
b3cgd2UgZG9uJ3Qgc3VwcG9ydCBzdWNoIGEgY2FzZS4KLSAgICBQbGF0Zm9ybUNBTGF5ZXIqIHBs
YXRmb3JtQ0FMYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKG1lZGlhTGF5
ZXIpOwotICAgIG1fY29udGVudHNMYXllciA9IG1lZGlhTGF5ZXIgPyAocGxhdGZvcm1DQUxheWVy
ID8gcGxhdGZvcm1DQUxheWVyIDogY3JlYXRlUGxhdGZvcm1DQUxheWVyKG1lZGlhTGF5ZXIsIHRo
aXMpKSA6IDA7Ci0gICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IG1lZGlhTGF5ZXIgPyBDb250
ZW50c0xheWVyRm9yTWVkaWEgOiBOb0NvbnRlbnRzTGF5ZXI7CisgICAgUGxhdGZvcm1DQUxheWVy
KiBwbGF0Zm9ybUNBTGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcihwbGF0
Zm9ybUxheWVyKTsKKyAgICBtX2NvbnRlbnRzTGF5ZXIgPSBwbGF0Zm9ybUxheWVyID8gKHBsYXRm
b3JtQ0FMYXllciA/IHBsYXRmb3JtQ0FMYXllciA6IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihwbGF0
Zm9ybUxheWVyLCB0aGlzKSkgOiAwOworICAgIG1fY29udGVudHNMYXllclB1cnBvc2UgPSBwbGF0
Zm9ybUxheWVyID8gcHVycG9zZSA6IE5vQ29udGVudHNMYXllcjsKIAogICAgIG5vdGVTdWJsYXll
cnNDaGFuZ2VkKCk7CiAgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzTWVkaWFM
YXllckNoYW5nZWQpOwpAQCAtOTQ1LDIwICs5NDUsNiBAQCBQbGF0Zm9ybUxheWVyKiBHcmFwaGlj
c0xheWVyQ0E6OmNvbnRlbnRzTGF5ZXJGb3JNZWRpYSgpIGNvbnN0CiB9CiAjZW5kaWYKIAotdm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciogY2Fu
dmFzTGF5ZXIpCi17Ci0gICAgaWYgKG1fY29udGVudHNMYXllciAmJiBjYW52YXNMYXllciA9PSBt
X2NvbnRlbnRzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAot
ICAgIC8vIENyZWF0ZSB0aGUgUGxhdGZvcm1DQUxheWVyIHRvIHdyYXAgdGhlIGluY29taW5nIGxh
eWVyCi0gICAgbV9jb250ZW50c0xheWVyID0gY2FudmFzTGF5ZXIgPyBjcmVhdGVQbGF0Zm9ybUNB
TGF5ZXIoY2FudmFzTGF5ZXIsIHRoaXMpIDogMDsKLSAgICAKLSAgICBtX2NvbnRlbnRzTGF5ZXJQ
dXJwb3NlID0gY2FudmFzTGF5ZXIgPyBDb250ZW50c0xheWVyRm9yQ2FudmFzIDogTm9Db250ZW50
c0xheWVyOwotCi0gICAgbm90ZVN1YmxheWVyc0NoYW5nZWQoKTsKLSAgICBub3RlTGF5ZXJQcm9w
ZXJ0eUNoYW5nZWQoQ29udGVudHNDYW52YXNMYXllckNoYW5nZWQpOwotfQotICAgIAogdm9pZCBH
cmFwaGljc0xheWVyQ0E6OmxheWVyRGlkRGlzcGxheShQbGF0Zm9ybUNBTGF5ZXIqIGxheWVyKQog
ewogICAgIExheWVyTWFwKiBsYXllckNsb25lTWFwOwpAQCAtMTMwMywxMSArMTI4OSw4IEBAIHZv
aWQgR3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZvcmVTdWJsYXllcnMoQ29t
bWl0U3RhdGUmIGNvbW1pdFN0YXRlCiAgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ29u
dGVudHNJbWFnZUNoYW5nZWQpIC8vIE5lZWRzIHRvIGhhcHBlbiBiZWZvcmUgQ2hpbGRyZW5DaGFu
Z2VkCiAgICAgICAgIHVwZGF0ZUNvbnRlbnRzSW1hZ2UoKTsKICAgICAgICAgCi0gICAgaWYgKG1f
dW5jb21taXR0ZWRDaGFuZ2VzICYgQ29udGVudHNNZWRpYUxheWVyQ2hhbmdlZCkgLy8gTmVlZHMg
dG8gaGFwcGVuIGJlZm9yZSBDaGlsZHJlbkNoYW5nZWQKLSAgICAgICAgdXBkYXRlQ29udGVudHNN
ZWRpYUxheWVyKCk7Ci0gICAgCi0gICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ29udGVu
dHNDYW52YXNMYXllckNoYW5nZWQpIC8vIE5lZWRzIHRvIGhhcHBlbiBiZWZvcmUgQ2hpbGRyZW5D
aGFuZ2VkCi0gICAgICAgIHVwZGF0ZUNvbnRlbnRzQ2FudmFzTGF5ZXIoKTsKKyAgICBpZiAobV91
bmNvbW1pdHRlZENoYW5nZXMgJiBDb250ZW50c1BsYXRmb3JtTGF5ZXJDaGFuZ2VkKSAvLyBOZWVk
cyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAorICAgICAgICB1cGRhdGVDb250ZW50
c1BsYXRmb3JtTGF5ZXIoKTsKIAogICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRl
bnRzQ29sb3JMYXllckNoYW5nZWQpIC8vIE5lZWRzIHRvIGhhcHBlbiBiZWZvcmUgQ2hpbGRyZW5D
aGFuZ2VkCiAgICAgICAgIHVwZGF0ZUNvbnRlbnRzQ29sb3JMYXllcigpOwpAQCAtMTkzNiwyNCAr
MTkxOSwxNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNJbWFnZSgpCiAg
ICAgfQogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNNZWRpYUxheWVy
KCkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c1BsYXRmb3JtTGF5ZXIoKQog
ewotICAgIGlmICghbV9jb250ZW50c0xheWVyIHx8IG1fY29udGVudHNMYXllclB1cnBvc2UgIT0g
Q29udGVudHNMYXllckZvck1lZGlhKQorICAgIGlmICghbV9jb250ZW50c0xheWVyKQogICAgICAg
ICByZXR1cm47CiAKLSAgICAvLyBWaWRlbyBsYXllciB3YXMgc2V0IGFzIG1fY29udGVudHNMYXll
ciwgYW5kIHdpbGwgZ2V0IHBhcmVudGVkIGluIHVwZGF0ZVN1YmxheWVyTGlzdCgpLgorICAgIC8v
IFBsYXRmb3JtIGxheWVyIHdhcyBzZXQgYXMgbV9jb250ZW50c0xheWVyLCBhbmQgd2lsbCBnZXQg
cGFyZW50ZWQgaW4gdXBkYXRlU3VibGF5ZXJMaXN0KCkuCiAgICAgc2V0dXBDb250ZW50c0xheWVy
KG1fY29udGVudHNMYXllci5nZXQoKSk7Ci0gICAgdXBkYXRlQ29udGVudHNSZWN0cygpOwotfQog
Ci12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNDYW52YXNMYXllcigpCi17Ci0g
ICAgaWYgKCFtX2NvbnRlbnRzTGF5ZXIgfHwgbV9jb250ZW50c0xheWVyUHVycG9zZSAhPSBDb250
ZW50c0xheWVyRm9yQ2FudmFzKQotICAgICAgICByZXR1cm47CisgICAgaWYgKG1fY29udGVudHNM
YXllclB1cnBvc2UgPT0gQ29udGVudHNMYXllckZvckNhbnZhcykKKyAgICAgICAgbV9jb250ZW50
c0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKIAotICAgIC8vIENhbnZhc0xheWVyIHdhcyBzZXQg
YXMgbV9jb250ZW50c0xheWVyLCBhbmQgd2lsbCBnZXQgcGFyZW50ZWQgaW4gdXBkYXRlU3VibGF5
ZXJMaXN0KCkuCi0gICAgc2V0dXBDb250ZW50c0xheWVyKG1fY29udGVudHNMYXllci5nZXQoKSk7
Ci0gICAgbV9jb250ZW50c0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKICAgICB1cGRhdGVDb250
ZW50c1JlY3RzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggZGIzZDJkNzI5MDE2NWEyYTljN2IwZmU0
NTI0ZjlkNGYzMWFjYmU1MS4uZjZlNjVkYmFkYzhjZDI3OWIyYjBjZjY5MTdjMmE2ZTUyOThmMmM0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhp
Y3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmgKQEAgLTEyNiwxMSArMTI2LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSkgb3ZlcnJp
ZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKEltYWdlKikgb3ZlcnJp
ZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKikg
b3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciog
Y29udGVudHNMYXllckZvck1lZGlhKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICB2aXJ0
dWFsIHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIq
LCBDb250ZW50c0xheWVyUHVycG9zZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9T
b2xpZENvbG9yKGNvbnN0IENvbG9yJikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIGJvb2wgdXNl
c0NvbnRlbnRzTGF5ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NvbnRlbnRzTGF5ZXJQ
dXJwb3NlICE9IE5vQ29udGVudHNMYXllcjsgfQpAQCAtMzczLDggKzM3Miw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCB1cGRhdGVCYWNrZ3JvdW5kQ29sb3IoKTsKIAogICAgIHZvaWQgdXBkYXRlQ29u
dGVudHNJbWFnZSgpOwotICAgIHZvaWQgdXBkYXRlQ29udGVudHNNZWRpYUxheWVyKCk7Ci0gICAg
dm9pZCB1cGRhdGVDb250ZW50c0NhbnZhc0xheWVyKCk7CisgICAgdm9pZCB1cGRhdGVDb250ZW50
c1BsYXRmb3JtTGF5ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzQ29sb3JMYXllcigpOwog
ICAgIHZvaWQgdXBkYXRlQ29udGVudHNSZWN0cygpOwogICAgIHZvaWQgdXBkYXRlTWFza0xheWVy
KCk7CkBAIC00MjgsMjQgKzQyNiwyMyBAQCBwcml2YXRlOgogICAgICAgICBBbmltYXRpb25DaGFu
Z2VkID0gMUxMVSA8PCAxMywKICAgICAgICAgRGlydHlSZWN0c0NoYW5nZWQgPSAxTExVIDw8IDE0
LAogICAgICAgICBDb250ZW50c0ltYWdlQ2hhbmdlZCA9IDFMTFUgPDwgMTUsCi0gICAgICAgIENv
bnRlbnRzTWVkaWFMYXllckNoYW5nZWQgPSAxTExVIDw8IDE2LAotICAgICAgICBDb250ZW50c0Nh
bnZhc0xheWVyQ2hhbmdlZCA9IDFMTFUgPDwgMTcsCi0gICAgICAgIENvbnRlbnRzQ29sb3JMYXll
ckNoYW5nZWQgPSAxTExVIDw8IDE4LAotICAgICAgICBDb250ZW50c1JlY3RzQ2hhbmdlZCA9IDFM
TFUgPDwgMTksCi0gICAgICAgIE1hc2tMYXllckNoYW5nZWQgPSAxTExVIDw8IDIwLAotICAgICAg
ICBSZXBsaWNhdGVkTGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAyMSwKLSAgICAgICAgQ29udGVudHNO
ZWVkc0Rpc3BsYXkgPSAxTExVIDw8IDIyLAotICAgICAgICBBY2NlbGVyYXRlc0RyYXdpbmdDaGFu
Z2VkID0gMUxMVSA8PCAyMywKLSAgICAgICAgQ29udGVudHNTY2FsZUNoYW5nZWQgPSAxTExVIDw8
IDI0LAotICAgICAgICBDb250ZW50c1Zpc2liaWxpdHlDaGFuZ2VkID0gMUxMVSA8PCAyNSwKLSAg
ICAgICAgVmlzaWJsZVJlY3RDaGFuZ2VkID0gMUxMVSA8PCAyNiwKLSAgICAgICAgRmlsdGVyc0No
YW5nZWQgPSAxTExVIDw8IDI3LAotICAgICAgICBUaWxpbmdBcmVhQ2hhbmdlZCA9IDFMTFUgPDwg
MjgsCi0gICAgICAgIFRpbGVzQWRkZWQgPSAxTExVIDwgMjksCi0gICAgICAgIERlYnVnSW5kaWNh
dG9yc0NoYW5nZWQgPSAxTExVIDw8IDMwLAotICAgICAgICBDdXN0b21BcHBlYXJhbmNlQ2hhbmdl
ZCA9IDFMTFUgPDwgMzEsCi0gICAgICAgIEN1c3RvbUJlaGF2aW9yQ2hhbmdlZCA9IDFMTFUgPDwg
MzIsCi0gICAgICAgIEJsZW5kTW9kZUNoYW5nZWQgPSAxTExVIDw8IDMzCisgICAgICAgIENvbnRl
bnRzUGxhdGZvcm1MYXllckNoYW5nZWQgPSAxTExVIDw8IDE2LAorICAgICAgICBDb250ZW50c0Nv
bG9yTGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAxNywKKyAgICAgICAgQ29udGVudHNSZWN0c0NoYW5n
ZWQgPSAxTExVIDw8IDE4LAorICAgICAgICBNYXNrTGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAxOSwK
KyAgICAgICAgUmVwbGljYXRlZExheWVyQ2hhbmdlZCA9IDFMTFUgPDwgMjAsCisgICAgICAgIENv
bnRlbnRzTmVlZHNEaXNwbGF5ID0gMUxMVSA8PCAyMSwKKyAgICAgICAgQWNjZWxlcmF0ZXNEcmF3
aW5nQ2hhbmdlZCA9IDFMTFUgPDwgMjIsCisgICAgICAgIENvbnRlbnRzU2NhbGVDaGFuZ2VkID0g
MUxMVSA8PCAyMywKKyAgICAgICAgQ29udGVudHNWaXNpYmlsaXR5Q2hhbmdlZCA9IDFMTFUgPDwg
MjQsCisgICAgICAgIFZpc2libGVSZWN0Q2hhbmdlZCA9IDFMTFUgPDwgMjUsCisgICAgICAgIEZp
bHRlcnNDaGFuZ2VkID0gMUxMVSA8PCAyNiwKKyAgICAgICAgVGlsaW5nQXJlYUNoYW5nZWQgPSAx
TExVIDw8IDI3LAorICAgICAgICBUaWxlc0FkZGVkID0gMUxMVSA8IDI4LAorICAgICAgICBEZWJ1
Z0luZGljYXRvcnNDaGFuZ2VkID0gMUxMVSA8PCAyOSwKKyAgICAgICAgQ3VzdG9tQXBwZWFyYW5j
ZUNoYW5nZWQgPSAxTExVIDw8IDMwLAorICAgICAgICBDdXN0b21CZWhhdmlvckNoYW5nZWQgPSAx
TExVIDw8IDMxLAorICAgICAgICBCbGVuZE1vZGVDaGFuZ2VkID0gMUxMVSA8PCAzMgogICAgIH07
CiAgICAgdHlwZWRlZiB1aW50NjRfdCBMYXllckNoYW5nZUZsYWdzOwogICAgIGVudW0gU2NoZWR1
bGVGbHVzaE9yTm90IHsgU2NoZWR1bGVGbHVzaCwgRG9udFNjaGVkdWxlRmx1c2ggfTsKQEAgLTQ3
MiwxNCArNDY5LDYgQEAgcHJpdmF0ZToKICAgICBGbG9hdFJlY3QgbV92aXNpYmxlUmVjdDsKICAg
ICBGbG9hdFNpemUgbV9zaXplQXRMYXN0VmlzaWJsZVJlY3RVcGRhdGU7CiAgICAgCi0gICAgZW51
bSBDb250ZW50c0xheWVyUHVycG9zZSB7Ci0gICAgICAgIE5vQ29udGVudHNMYXllciA9IDAsCi0g
ICAgICAgIENvbnRlbnRzTGF5ZXJGb3JJbWFnZSwKLSAgICAgICAgQ29udGVudHNMYXllckZvck1l
ZGlhLAotICAgICAgICBDb250ZW50c0xheWVyRm9yQ2FudmFzLAotICAgICAgICBDb250ZW50c0xh
eWVyRm9yQmFja2dyb3VuZENvbG9yCi0gICAgfTsKLSAgICAKICAgICBDb250ZW50c0xheWVyUHVy
cG9zZSBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlOwogICAgIGJvb2wgbV9pc1BhZ2VUaWxlZEJhY2tp
bmdMYXllciA6IDE7CiAgICAgYm9vbCBtX25lZWRzRnVsbFJlcGFpbnQgOiAxOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggMTc0Y2M1NDk4ZjVjZmQ5Y2E4
NDM1OWU0N2RmNWI3NDhhOTAxMmUyMC4uYjgzZjNiYzY0ZDM1MzgwNWU2MGE2ODdlNTc2OTg1Y2Ri
OGE3YjJhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCkBA
IC0zNjgsMTcgKzM2OCwxNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRD
b250ZW50c1RvSW1hZ2UoSW1hZ2UqIGltYWdlKQogICAgICAgICBtX2NvbXBvc2l0ZWRJbWFnZSA9
IDA7CiAgICAgfQogCi0gICAgc2V0Q29udGVudHNUb01lZGlhKG1fY29tcG9zaXRlZEltYWdlLmdl
dCgpKTsKKyAgICBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihtX2NvbXBvc2l0ZWRJbWFnZS5n
ZXQoKSwgQ29udGVudHNMYXllckZvckltYWdlKTsKICAgICBub3RpZnlDaGFuZ2UoQ29udGVudENo
YW5nZSk7CiAgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0ltYWdlKGltYWdlKTsKIH0K
IAotdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb01lZGlhKFRl
eHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyKiBtZWRpYSkKK3ZvaWQgR3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXI6OnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFRleHR1cmVNYXBwZXJQbGF0Zm9y
bUxheWVyKiBtZWRpYSwgQ29udGVudHNMYXllclB1cnBvc2UgcHVycG9zZSkKIHsKICAgICBpZiAo
bWVkaWEgPT0gbV9jb250ZW50c0xheWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBHcmFwaGlj
c0xheWVyOjpzZXRDb250ZW50c1RvTWVkaWEobWVkaWEpOworICAgIEdyYXBoaWNzTGF5ZXI6OnNl
dENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKG1lZGlhLCBwdXJwb3NlKTsKICAgICBub3RpZnlDaGFu
Z2UoQ29udGVudENoYW5nZSk7CiAKICAgICBpZiAobV9jb250ZW50c0xheWVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAppbmRleCBjYWNlY2IzNzYzMjljMjA0NTVhZGEx
ZWEzMjg3ZDk1YWM1NTQyMjgyLi44MmY4Y2FiNWU5ZGU0MWJlYjYzYTIzZGI5MDk5NTkzZDUyY2Q4
OTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaApAQCAtNjgsOCAr
NjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFn
ZSopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xv
ciYpOwogICAgIENvbG9yIHNvbGlkQ29sb3IoKSBjb25zdCB7IHJldHVybiBtX3NvbGlkQ29sb3I7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb01lZGlhKFBsYXRmb3JtTGF5ZXIqKTsK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKiBjYW52
YXMpIHsgc2V0Q29udGVudHNUb01lZGlhKGNhbnZhcyk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQdXJw
b3NlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IHdp
ZHRoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJv
b2wpIG92ZXJyaWRlOwpAQCAtMTEyLDcgKzExMSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcmVw
YXJlQmFja2luZ1N0b3JlSWZOZWVkZWQoKTsKICAgICBib29sIHNob3VsZEhhdmVCYWNraW5nU3Rv
cmUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUxheWVyV2lsbEJlRGVzdHJv
eWVkKCkgb3ZlcnJpZGUgeyBzZXRDb250ZW50c1RvTWVkaWEoMCk7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgcGxhdGZvcm1MYXllcldpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlIHsgc2V0Q29udGVudHNU
b1BsYXRmb3JtTGF5ZXIoMCwgTm9Db250ZW50c0xheWVyKTsgfQogICAgIHZpcnR1YWwgdm9pZCBz
ZXRQbGF0Zm9ybUxheWVyTmVlZHNEaXNwbGF5KCkgb3ZlcnJpZGUgeyBzZXRDb250ZW50c05lZWRz
RGlzcGxheSgpOyB9CiAKICAgICAvLyBUaGlzIHNldCBvZiBmbGFncyBoZWxwIHVzIGRlZmVyIHdo
aWNoIHByb3BlcnRpZXMgb2YgdGhlIGxheWVyIGhhdmUgYmVlbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCBmNjRmZWYy
ODljN2FlNTg5ZWUxYTE1MmVlYTMzZDY5NjAzNDdhZDZmLi41NmU0Yjg4OTc2MDY2MmYyZjFlN2E5
MDdkNDFkMzRmMTAyMDUyODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtMTIxLDEyICsxMjEsMTIgQEAgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXll
ckNsaWVudCYgY2xpZW50KQogICAgICwgbV9wZW5kaW5nQ29udGVudHNTY2FsZUFkanVzdG1lbnQo
ZmFsc2UpCiAgICAgLCBtX3BlbmRpbmdWaXNpYmxlUmVjdEFkanVzdG1lbnQoZmFsc2UpCiAjaWYg
VVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgLCBtX2lzVmFsaWRDYW52YXMoZmFsc2UpCi0gICAg
LCBtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24oTm9uZSkKKyAgICAsIG1faXNWYWxpZFBsYXRmb3Jt
TGF5ZXIoZmFsc2UpCisgICAgLCBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uKE5vbmUp
CiAjZW5kaWYKICAgICAsIG1fY29vcmRpbmF0b3IoMCkKICAgICAsIG1fY29tcG9zaXRlZE5hdGl2
ZUltYWdlUHRyKDApCi0gICAgLCBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIoMCkKKyAgICAsIG1fcGxh
dGZvcm1MYXllcigwKQogICAgICwgbV9hbmltYXRpb25TdGFydGVkVGltZXIodGhpcywgJkNvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6YW5pbWF0aW9uU3RhcnRlZFRpbWVyRmlyZWQpCiAgICAgLCBt
X3Njcm9sbGFibGVBcmVhKDApCiB7CkBAIC0zODMsMzYgKzM4MywzNyBAQCBib29sIEdyYXBoaWNz
TGF5ZXI6OnN1cHBvcnRzQ29udGVudHNUaWxpbmcoKQogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KCkKIHsKICNpZiBVU0UoR1JBUEhJQ1NfU1VS
RkFDRSkKLSAgICBpZiAobV9jYW52YXNQbGF0Zm9ybUxheWVyKQotICAgICAgICBtX3BlbmRpbmdD
YW52YXNPcGVyYXRpb24gfD0gU3luY0NhbnZhczsKKyAgICBpZiAobV9wbGF0Zm9ybUxheWVyKQor
ICAgICAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uIHw9IFN5bmNQbGF0Zm9ybUxh
eWVyOwogI2VuZGlmCiAKICAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7CiAgICAgYWRkUmVwYWlu
dFJlY3QoY29udGVudHNSZWN0KCkpOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6c2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKQordm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBs
YXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIsIENvbnRlbnRzTGF5ZXJQdXJwb3NlIHB1cnBvc2Up
CiB7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgaWYgKG1fY2FudmFzUGxhdGZvcm1M
YXllcikgewotICAgICAgICBBU1NFUlQobV9jYW52YXNUb2tlbi5pc1ZhbGlkKCkpOworICAgIGlm
IChtX3BsYXRmb3JtTGF5ZXIpIHsKKyAgICAgICAgQVNTRVJUKG1fcGxhdGZvcm1MYXllclRva2Vu
LmlzVmFsaWQoKSk7CiAgICAgICAgIGlmICghcGxhdGZvcm1MYXllcikgewotICAgICAgICAgICAg
bV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHw9IERlc3Ryb3lDYW52YXM7Ci0gICAgICAgICAgICBt
X3BlbmRpbmdDYW52YXNPcGVyYXRpb24gJj0gfkNyZWF0ZUNhbnZhczsKLSAgICAgICAgfSAgZWxz
ZSBpZiAoKG1fY2FudmFzU2l6ZSAhPSBwbGF0Zm9ybUxheWVyLT5wbGF0Zm9ybUxheWVyU2l6ZSgp
KSB8fCAobV9jYW52YXNUb2tlbiAhPSBwbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZhY2VUb2tl
bigpKSkgewotICAgICAgICAgICAgLy8gbV9jYW52YXNUb2tlbiBjYW4gYmUgZGlmZmVyZW50IHRv
IHBsYXRmb3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2VuKCksIGV2ZW4gaWYgbV9jYW52YXNQ
bGF0Zm9ybUxheWVyIGVxdWFscyBwbGF0Zm9ybUxheWVyLgotICAgICAgICAgICAgbV9wZW5kaW5n
Q2FudmFzT3BlcmF0aW9uIHw9IFJlY3JlYXRlQ2FudmFzOworICAgICAgICAgICAgbV9wZW5kaW5n
UGxhdGZvcm1MYXllck9wZXJhdGlvbiB8PSBEZXN0cm95UGxhdGZvcm1MYXllcjsKKyAgICAgICAg
ICAgIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gJj0gfkNyZWF0ZVBsYXRmb3JtTGF5
ZXI7CisgICAgICAgIH0gIGVsc2UgaWYgKChtX3BsYXRmb3JtTGF5ZXJTaXplICE9IHBsYXRmb3Jt
TGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCkpIHx8IChtX3BsYXRmb3JtTGF5ZXJUb2tlbiAhPSBw
bGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZhY2VUb2tlbigpKSkgeworICAgICAgICAgICAgLy8g
bV9wbGF0Zm9ybUxheWVyVG9rZW4gY2FuIGJlIGRpZmZlcmVudCB0byBwbGF0Zm9ybUxheWVyLT5n
cmFwaGljc1N1cmZhY2VUb2tlbigpLCBldmVuIGlmIG1fcGxhdGZvcm1MYXllciBlcXVhbHMgcGxh
dGZvcm1MYXllci4KKyAgICAgICAgICAgIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24g
fD0gUmVjcmVhdGVQbGF0Zm9ybUxheWVyOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgaWYgKHBsYXRmb3JtTGF5ZXIpCi0gICAgICAgICAgICBtX3BlbmRpbmdDYW52YXNPcGVyYXRp
b24gfD0gQ3JlYXRlQW5kU3luY0NhbnZhczsKKyAgICAgICAgICAgIG1fcGVuZGluZ1BsYXRmb3Jt
TGF5ZXJPcGVyYXRpb24gfD0gQ3JlYXRlQW5kU3luY1BsYXRmb3JtTGF5ZXI7CiAgICAgfQogCi0g
ICAgbV9jYW52YXNQbGF0Zm9ybUxheWVyID0gcGxhdGZvcm1MYXllcjsKLSAgICAvLyBtX2NhbnZh
c1Rva2VuIGlzIHVwZGF0ZWQgb25seSBoZXJlLiBJbiBkZXRhaWwsIHdoZW4gR3JhcGhpY3NDb250
ZXh0M0QgaXMgY2hhbmdlZCBvciByZXNoYXBlZCwgbV9jYW52YXNUb2tlbiBpcyBjaGFuZ2VkIGFu
ZCBzZXRDb250ZW50c1RvQ2FudmFzKCkgaXMgYWx3YXlzIGNhbGxlZC4KLSAgICBtX2NhbnZhc1Np
emUgPSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgPyBtX2NhbnZhc1BsYXRmb3JtTGF5ZXItPnBsYXRm
b3JtTGF5ZXJTaXplKCkgOiBJbnRTaXplKCk7Ci0gICAgbV9jYW52YXNUb2tlbiA9IG1fY2FudmFz
UGxhdGZvcm1MYXllciA/IG1fY2FudmFzUGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9r
ZW4oKSA6IEdyYXBoaWNzU3VyZmFjZVRva2VuKCk7Ci0gICAgQVNTRVJUKCEoIW1fY2FudmFzVG9r
ZW4uaXNWYWxpZCgpICYmIG1fY2FudmFzUGxhdGZvcm1MYXllcikpOworICAgIG1fcGxhdGZvcm1M
YXllciA9IHBsYXRmb3JtTGF5ZXI7CisgICAgLy8gbV9wbGF0Zm9ybUxheWVyVG9rZW4gaXMgdXBk
YXRlZCBvbmx5IGhlcmUuIAorICAgIC8vIEluIGRldGFpbCwgd2hlbiBHcmFwaGljc0NvbnRleHQz
RCBpcyBjaGFuZ2VkIG9yIHJlc2hhcGVkLCBtX3BsYXRmb3JtTGF5ZXJUb2tlbiBpcyBjaGFuZ2Vk
IGFuZCBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcigpIGlzIGFsd2F5cyBjYWxsZWQuCisgICAg
bV9wbGF0Zm9ybUxheWVyU2l6ZSA9IG1fcGxhdGZvcm1MYXllciA/IG1fcGxhdGZvcm1MYXllci0+
cGxhdGZvcm1MYXllclNpemUoKSA6IEludFNpemUoKTsKKyAgICBtX3BsYXRmb3JtTGF5ZXJUb2tl
biA9IG1fcGxhdGZvcm1MYXllciA/IG1fcGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9r
ZW4oKSA6IEdyYXBoaWNzU3VyZmFjZVRva2VuKCk7CisgICAgQVNTRVJUKCEoIW1fcGxhdGZvcm1M
YXllclRva2VuLmlzVmFsaWQoKSAmJiBtX3BsYXRmb3JtTGF5ZXIpKTsKIAogICAgIG5vdGlmeUZs
dXNoUmVxdWlyZWQoKTsKICNlbHNlCkBAIC03MjAsNTMgKzcyMSw1MyBAQCB2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6c3luY0FuaW1hdGlvbnMoKQogfQogCiAjaWYgVVNFKEdSQVBISUNT
X1NVUkZBQ0UpCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0NhbnZhcygpCit2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY1BsYXRmb3JtTGF5ZXIoKQogewotICAg
IGRlc3Ryb3lDYW52YXNJZk5lZWRlZCgpOwotICAgIGNyZWF0ZUNhbnZhc0lmTmVlZGVkKCk7Cisg
ICAgZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRlZCgpOworICAgIGNyZWF0ZVBsYXRmb3JtTGF5
ZXJJZk5lZWRlZCgpOwogCi0gICAgaWYgKCEobV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uICYgU3lu
Y0NhbnZhcykpCisgICAgaWYgKCEobV9wZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbiAmIFN5
bmNQbGF0Zm9ybUxheWVyKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wZW5kaW5nQ2FudmFz
T3BlcmF0aW9uICY9IH5TeW5jQ2FudmFzOworICAgIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVy
YXRpb24gJj0gflN5bmNQbGF0Zm9ybUxheWVyOwogCi0gICAgaWYgKCFtX2lzVmFsaWRDYW52YXMp
CisgICAgaWYgKCFtX2lzVmFsaWRQbGF0Zm9ybUxheWVyKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBBU1NFUlQobV9jYW52YXNQbGF0Zm9ybUxheWVyKTsKLSAgICBtX2xheWVyU3RhdGUuY2FudmFz
RnJvbnRCdWZmZXIgPSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXItPmNvcHlUb0dyYXBoaWNzU3VyZmFj
ZSgpOwotICAgIG1fbGF5ZXJTdGF0ZS5jYW52YXNTaG91bGRTd2FwQnVmZmVycyA9IHRydWU7Cisg
ICAgQVNTRVJUKG1fcGxhdGZvcm1MYXllcik7CisgICAgbV9sYXllclN0YXRlLnBsYXRmb3JtTGF5
ZXJGcm9udEJ1ZmZlciA9IG1fcGxhdGZvcm1MYXllci0+Y29weVRvR3JhcGhpY3NTdXJmYWNlKCk7
CisgICAgbV9sYXllclN0YXRlLnBsYXRmb3JtTGF5ZXJTaG91bGRTd2FwQnVmZmVycyA9IHRydWU7
CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkZXN0cm95Q2FudmFzSWZOZWVk
ZWQoKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRlc3Ryb3lQbGF0Zm9ybUxheWVy
SWZOZWVkZWQoKQogewotICAgIGlmICghKG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiAmIERlc3Ry
b3lDYW52YXMpKQorICAgIGlmICghKG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gJiBE
ZXN0cm95UGxhdGZvcm1MYXllcikpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtX2lzVmFs
aWRDYW52YXMpIHsKLSAgICAgICAgbV9pc1ZhbGlkQ2FudmFzID0gZmFsc2U7Ci0gICAgICAgIG1f
bGF5ZXJTdGF0ZS5jYW52YXNUb2tlbiA9IEdyYXBoaWNzU3VyZmFjZVRva2VuKCk7Ci0gICAgICAg
IG1fbGF5ZXJTdGF0ZS5jYW52YXNDaGFuZ2VkID0gdHJ1ZTsKKyAgICBpZiAobV9pc1ZhbGlkUGxh
dGZvcm1MYXllcikgeworICAgICAgICBtX2lzVmFsaWRQbGF0Zm9ybUxheWVyID0gZmFsc2U7Cisg
ICAgICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4gPSBHcmFwaGljc1N1cmZhY2VU
b2tlbigpOworICAgICAgICBtX2xheWVyU3RhdGUucGxhdGZvcm1MYXllckNoYW5nZWQgPSB0cnVl
OwogICAgIH0KIAotICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiAmPSB+RGVzdHJveUNhbnZh
czsKKyAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uICY9IH5EZXN0cm95UGxhdGZv
cm1MYXllcjsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZUNhbnZh
c0lmTmVlZGVkKCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVQbGF0Zm9y
bUxheWVySWZOZWVkZWQoKQogewotICAgIGlmICghKG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiAm
IENyZWF0ZUNhbnZhcykpCisgICAgaWYgKCEobV9wZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlv
biAmIENyZWF0ZVBsYXRmb3JtTGF5ZXIpKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQo
bV9jYW52YXNQbGF0Zm9ybUxheWVyKTsKLSAgICBpZiAoIW1faXNWYWxpZENhbnZhcykgewotICAg
ICAgICBtX2xheWVyU3RhdGUuY2FudmFzU2l6ZSA9IG1fY2FudmFzUGxhdGZvcm1MYXllci0+cGxh
dGZvcm1MYXllclNpemUoKTsKLSAgICAgICAgbV9sYXllclN0YXRlLmNhbnZhc1Rva2VuID0gbV9j
YW52YXNQbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZhY2VUb2tlbigpOwotICAgICAgICBtX2xh
eWVyU3RhdGUuY2FudmFzU3VyZmFjZUZsYWdzID0gbV9jYW52YXNQbGF0Zm9ybUxheWVyLT5ncmFw
aGljc1N1cmZhY2VGbGFncygpOwotICAgICAgICBtX2xheWVyU3RhdGUuY2FudmFzQ2hhbmdlZCA9
IHRydWU7Ci0gICAgICAgIG1faXNWYWxpZENhbnZhcyA9IHRydWU7CisgICAgQVNTRVJUKG1fcGxh
dGZvcm1MYXllcik7CisgICAgaWYgKCFtX2lzVmFsaWRQbGF0Zm9ybUxheWVyKSB7CisgICAgICAg
IG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyU2l6ZSA9IG1fcGxhdGZvcm1MYXllci0+cGxhdGZv
cm1MYXllclNpemUoKTsKKyAgICAgICAgbV9sYXllclN0YXRlLnBsYXRmb3JtTGF5ZXJUb2tlbiA9
IG1fcGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKTsKKyAgICAgICAgbV9sYXll
clN0YXRlLnBsYXRmb3JtTGF5ZXJTdXJmYWNlRmxhZ3MgPSBtX3BsYXRmb3JtTGF5ZXItPmdyYXBo
aWNzU3VyZmFjZUZsYWdzKCk7CisgICAgICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyQ2hh
bmdlZCA9IHRydWU7CisgICAgICAgIG1faXNWYWxpZFBsYXRmb3JtTGF5ZXIgPSB0cnVlOwogICAg
IH0KIAotICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiAmPSB+Q3JlYXRlQ2FudmFzOworICAg
IG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gJj0gfkNyZWF0ZVBsYXRmb3JtTGF5ZXI7
CiB9CiAjZW5kaWYKIApAQCAtNzkxLDcgKzc5Miw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkKICAgICBzeW5j
RmlsdGVycygpOwogI2VuZGlmCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgc3luY0Nh
bnZhcygpOworICAgIHN5bmNQbGF0Zm9ybUxheWVyKCk7CiAjZW5kaWYKIAogICAgIC8vIE9ubHkg
dW5zZXQgbV9tb3ZpbmdWaXNpYmxlUmVjdCBhZnRlciB3ZSBoYXZlIHVwZGF0ZWQgdGhlIHZpc2li
bGUgcmVjdCBhZnRlciB0aGUgYW5pbWF0aW9uIHN0b3BwZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggMTQ4NmMyMDdiZTI4
NjQwNDQ4YjUwNjEzN2E2YjBiNDM0MjAxMTRlYi4uYTZhNThmMzJiNDc0NmUyNzVlZjUxYzg2NDY1
YjRiZTllNjg1NzRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcihib29sKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGREaXJlY3RseUNvbXBvc2l0ZUltYWdlKEltYWdlKikgY29uc3Qgb3ZlcnJpZGU7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciopIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9y
bUxheWVyKiwgQ29udGVudHNMYXllclB1cnBvc2UpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRNYXNrTGF5ZXIoR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRSZXBsaWNhdGVkQnlMYXllcihHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheSgpIG92ZXJyaWRlOwpAQCAtMTA5LDcgKzEwOSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhkb3VibGUgdGlt
ZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbnRlbnRzTGF5ZXIoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgfHwgbV9jb21wb3NpdGVkSW1hZ2U7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgdXNlc0NvbnRlbnRzTGF5ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX3BsYXRmb3JtTGF5ZXIgfHwgbV9jb21wb3NpdGVkSW1hZ2U7IH0KIAogICAgIHZvaWQgc3lu
Y1BlbmRpbmdTdGF0ZUNoYW5nZXNJbmNsdWRpbmdTdWJMYXllcnMoKTsKICAgICB2b2lkIHVwZGF0
ZUNvbnRlbnRCdWZmZXJzSW5jbHVkaW5nU3ViTGF5ZXJzKCk7CkBAIC0xNTQsMTggKzE1NCwxOCBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgZW51
bSBQZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHsKKyAgICBlbnVtIFBlbmRpbmdQbGF0Zm9ybUxheWVy
T3BlcmF0aW9uIHsKICAgICAgICAgTm9uZSA9IDB4MDAsCi0gICAgICAgIENyZWF0ZUNhbnZhcyA9
IDB4MDEsCi0gICAgICAgIERlc3Ryb3lDYW52YXMgPSAweDAyLAotICAgICAgICBTeW5jQ2FudmFz
ID0gMHgwNCwKLSAgICAgICAgQ3JlYXRlQW5kU3luY0NhbnZhcyA9IENyZWF0ZUNhbnZhcyB8IFN5
bmNDYW52YXMsCi0gICAgICAgIFJlY3JlYXRlQ2FudmFzID0gQ3JlYXRlQW5kU3luY0NhbnZhcyB8
IERlc3Ryb3lDYW52YXMKKyAgICAgICAgQ3JlYXRlUGxhdGZvcm1MYXllciA9IDB4MDEsCisgICAg
ICAgIERlc3Ryb3lQbGF0Zm9ybUxheWVyID0gMHgwMiwKKyAgICAgICAgU3luY1BsYXRmb3JtTGF5
ZXIgPSAweDA0LAorICAgICAgICBDcmVhdGVBbmRTeW5jUGxhdGZvcm1MYXllciA9IENyZWF0ZVBs
YXRmb3JtTGF5ZXIgfCBTeW5jUGxhdGZvcm1MYXllciwKKyAgICAgICAgUmVjcmVhdGVQbGF0Zm9y
bUxheWVyID0gQ3JlYXRlQW5kU3luY1BsYXRmb3JtTGF5ZXIgfCBEZXN0cm95UGxhdGZvcm1MYXll
cgogICAgIH07CiAKLSAgICB2b2lkIHN5bmNDYW52YXMoKTsKLSAgICB2b2lkIGRlc3Ryb3lDYW52
YXNJZk5lZWRlZCgpOwotICAgIHZvaWQgY3JlYXRlQ2FudmFzSWZOZWVkZWQoKTsKKyAgICB2b2lk
IHN5bmNQbGF0Zm9ybUxheWVyKCk7CisgICAgdm9pZCBkZXN0cm95UGxhdGZvcm1MYXllcklmTmVl
ZGVkKCk7CisgICAgdm9pZCBjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQoKTsKICNlbmRpZgog
CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiwgZmxvYXQgd2lk
dGgpIG92ZXJyaWRlOwpAQCAtMjMyLDggKzIzMiw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Bl
bmRpbmdDb250ZW50c1NjYWxlQWRqdXN0bWVudCA6IDE7CiAgICAgYm9vbCBtX3BlbmRpbmdWaXNp
YmxlUmVjdEFkanVzdG1lbnQgOiAxOwogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIGJv
b2wgbV9pc1ZhbGlkQ2FudmFzIDogMTsKLSAgICB1bnNpZ25lZCBtX3BlbmRpbmdDYW52YXNPcGVy
YXRpb24gOiAzOworICAgIGJvb2wgbV9pc1ZhbGlkUGxhdGZvcm1MYXllciA6IDE7CisgICAgdW5z
aWduZWQgbV9wZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbiA6IDM7CiAjZW5kaWYKIAogICAg
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCogbV9jb29yZGluYXRvcjsKQEAgLTI0NCwx
MCArMjQ0LDEwIEBAIHByaXZhdGU6CiAgICAgTmF0aXZlSW1hZ2VQdHIgbV9jb21wb3NpdGVkTmF0
aXZlSW1hZ2VQdHI7CiAgICAgUmVmUHRyPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiBtX2Nvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nOwogCi0gICAgUGxhdGZvcm1MYXllciogbV9jYW52YXNQbGF0Zm9y
bUxheWVyOworICAgIFBsYXRmb3JtTGF5ZXIqIG1fcGxhdGZvcm1MYXllcjsKICNpZiBVU0UoR1JB
UEhJQ1NfU1VSRkFDRSkKLSAgICBJbnRTaXplIG1fY2FudmFzU2l6ZTsKLSAgICBHcmFwaGljc1N1
cmZhY2VUb2tlbiBtX2NhbnZhc1Rva2VuOworICAgIEludFNpemUgbV9wbGF0Zm9ybUxheWVyU2l6
ZTsKKyAgICBHcmFwaGljc1N1cmZhY2VUb2tlbiBtX3BsYXRmb3JtTGF5ZXJUb2tlbjsKICNlbmRp
ZgogICAgIFRpbWVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcj4gbV9hbmltYXRpb25TdGFydGVk
VGltZXI7CiAgICAgR3JhcGhpY3NMYXllckFuaW1hdGlvbnMgbV9hbmltYXRpb25zOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcApp
bmRleCBlZTYzYzU3MzNmNTcxYTAwM2RiMWRiZDVlMTA0YTg0Mzg0NWUxY2UxLi40OTE0MDNiMzQy
NjIzNzZmYTc0MjY4M2UwYzg2ZGU1MjQ3YTQzMWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcApAQCAtMTY1LDM3ICsxNjUs
MzcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmFkanVzdFBvc2l0aW9uRm9yRml4
ZWRMYXllcnMoKQogfQogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi12b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZTo6Y3JlYXRlQ2FudmFzSWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVy
KiBsYXllciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmIHN0YXRlKQordm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJJZk5lZWRlZChU
ZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJT
dGF0ZSYgc3RhdGUpCiB7Ci0gICAgaWYgKCFzdGF0ZS5jYW52YXNUb2tlbi5pc1ZhbGlkKCkpCisg
ICAgaWYgKCFzdGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4uaXNWYWxpZCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBSZWZQdHI8VGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU+IGNhbnZh
c0JhY2tpbmdTdG9yZShUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZTo6Y3JlYXRlKCkp
OwotICAgIG1fc3VyZmFjZUJhY2tpbmdTdG9yZXMuc2V0KGxheWVyLCBjYW52YXNCYWNraW5nU3Rv
cmUpOwotICAgIGNhbnZhc0JhY2tpbmdTdG9yZS0+c2V0R3JhcGhpY3NTdXJmYWNlKEdyYXBoaWNz
U3VyZmFjZTo6Y3JlYXRlKHN0YXRlLmNhbnZhc1NpemUsIHN0YXRlLmNhbnZhc1N1cmZhY2VGbGFn
cywgc3RhdGUuY2FudmFzVG9rZW4pKTsKLSAgICBsYXllci0+c2V0Q29udGVudHNMYXllcihjYW52
YXNCYWNraW5nU3RvcmUuZ2V0KCkpOworICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyU3VyZmFjZUJh
Y2tpbmdTdG9yZT4gcGxhdGZvcm1MYXllckJhY2tpbmdTdG9yZShUZXh0dXJlTWFwcGVyU3VyZmFj
ZUJhY2tpbmdTdG9yZTo6Y3JlYXRlKCkpOworICAgIG1fc3VyZmFjZUJhY2tpbmdTdG9yZXMuc2V0
KGxheWVyLCBwbGF0Zm9ybUxheWVyQmFja2luZ1N0b3JlKTsKKyAgICBwbGF0Zm9ybUxheWVyQmFj
a2luZ1N0b3JlLT5zZXRHcmFwaGljc1N1cmZhY2UoR3JhcGhpY3NTdXJmYWNlOjpjcmVhdGUoc3Rh
dGUucGxhdGZvcm1MYXllclNpemUsIHN0YXRlLnBsYXRmb3JtTGF5ZXJTdXJmYWNlRmxhZ3MsIHN0
YXRlLnBsYXRmb3JtTGF5ZXJUb2tlbikpOworICAgIGxheWVyLT5zZXRDb250ZW50c0xheWVyKHBs
YXRmb3JtTGF5ZXJCYWNraW5nU3RvcmUuZ2V0KCkpOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6c3luY0NhbnZhc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIs
IGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJiBzdGF0ZSkKK3ZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lOjpzeW5jUGxhdGZvcm1MYXllcklmTmVlZGVkKFRleHR1cmVNYXBw
ZXJMYXllciogbGF5ZXIsIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJiBzdGF0
ZSkKIHsKICAgICBBU1NFUlQobV90ZXh0dXJlTWFwcGVyKTsKIAotICAgIGlmIChzdGF0ZS5jYW52
YXNDaGFuZ2VkKSB7Ci0gICAgICAgIGRlc3Ryb3lDYW52YXNJZk5lZWRlZChsYXllciwgc3RhdGUp
OwotICAgICAgICBjcmVhdGVDYW52YXNJZk5lZWRlZChsYXllciwgc3RhdGUpOworICAgIGlmIChz
dGF0ZS5wbGF0Zm9ybUxheWVyQ2hhbmdlZCkgeworICAgICAgICBkZXN0cm95UGxhdGZvcm1MYXll
cklmTmVlZGVkKGxheWVyLCBzdGF0ZSk7CisgICAgICAgIGNyZWF0ZVBsYXRmb3JtTGF5ZXJJZk5l
ZWRlZChsYXllciwgc3RhdGUpOwogICAgIH0KIAotICAgIGlmIChzdGF0ZS5jYW52YXNTaG91bGRT
d2FwQnVmZmVycykgeworICAgIGlmIChzdGF0ZS5wbGF0Zm9ybUxheWVyU2hvdWxkU3dhcEJ1ZmZl
cnMpIHsKICAgICAgICAgQVNTRVJUKG1fc3VyZmFjZUJhY2tpbmdTdG9yZXMuY29udGFpbnMobGF5
ZXIpKTsKICAgICAgICAgU3VyZmFjZUJhY2tpbmdTdG9yZU1hcDo6aXRlcmF0b3IgaXQgPSBtX3N1
cmZhY2VCYWNraW5nU3RvcmVzLmZpbmQobGF5ZXIpOwotICAgICAgICBSZWZQdHI8VGV4dHVyZU1h
cHBlclN1cmZhY2VCYWNraW5nU3RvcmU+IGNhbnZhc0JhY2tpbmdTdG9yZSA9IGl0LT52YWx1ZTsK
LSAgICAgICAgY2FudmFzQmFja2luZ1N0b3JlLT5zd2FwQnVmZmVyc0lmTmVlZGVkKHN0YXRlLmNh
bnZhc0Zyb250QnVmZmVyKTsKKyAgICAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTdXJmYWNlQmFj
a2luZ1N0b3JlPiBwbGF0Zm9ybUxheWVyQmFja2luZ1N0b3JlID0gaXQtPnZhbHVlOworICAgICAg
ICBwbGF0Zm9ybUxheWVyQmFja2luZ1N0b3JlLT5zd2FwQnVmZmVyc0lmTmVlZGVkKHN0YXRlLnBs
YXRmb3JtTGF5ZXJGcm9udEJ1ZmZlcik7CiAgICAgfQogfQogCi12b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZTo6ZGVzdHJveUNhbnZhc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciogbGF5
ZXIsIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJiBzdGF0ZSkKK3ZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpkZXN0cm95UGxhdGZvcm1MYXllcklmTmVlZGVkKFRleHR1
cmVNYXBwZXJMYXllciogbGF5ZXIsIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRl
JiBzdGF0ZSkKIHsKLSAgICBpZiAoc3RhdGUuY2FudmFzVG9rZW4uaXNWYWxpZCgpKQorICAgIGlm
IChzdGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4uaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBtX3N1cmZhY2VCYWNraW5nU3RvcmVzLnJlbW92ZShsYXllcik7CkBAIC0zMTksNyArMzE5
LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVyU3RhdGUoQ29vcmRp
bmF0ZWRMYXllcklEIGlkLCBjb25zdCBDb29yZGkKICNlbmRpZgogICAgIHNldExheWVyQW5pbWF0
aW9uc0lmTmVlZGVkKGxheWVyLCBsYXllclN0YXRlKTsKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFD
RSkKLSAgICBzeW5jQ2FudmFzSWZOZWVkZWQobGF5ZXIsIGxheWVyU3RhdGUpOworICAgIHN5bmNQ
bGF0Zm9ybUxheWVySWZOZWVkZWQobGF5ZXIsIGxheWVyU3RhdGUpOwogI2VuZGlmCiAgICAgc2V0
TGF5ZXJSZXBhaW50Q291bnRJZk5lZWRlZChsYXllciwgbGF5ZXJTdGF0ZSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQv
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKaW5kZXgg
NzVhNDcyZDRkMTI5YzMzOTc4MWU5OTY3YmMxZDlhZGM0ZmFhNzhkYi4uNjVlNWFhMTA1YTlhNjJi
MTVkNjkwMmViOGU5YTc0ZWFhYTJhZDRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaApAQCAtMTAwLDkgKzEwMCw5IEBAIHByaXZh
dGU6CiAjZW5kaWYKICAgICB2b2lkIHNldExheWVyQW5pbWF0aW9uc0lmTmVlZGVkKFRleHR1cmVN
YXBwZXJMYXllciosIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CiAjaWYg
VVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgdm9pZCBjcmVhdGVDYW52YXNJZk5lZWRlZChUZXh0
dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwot
ICAgIHZvaWQgc3luY0NhbnZhc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0IENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7Ci0gICAgdm9pZCBkZXN0cm95Q2FudmFzSWZO
ZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
U3RhdGUmKTsKKyAgICB2b2lkIGNyZWF0ZVBsYXRmb3JtTGF5ZXJJZk5lZWRlZChUZXh0dXJlTWFw
cGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOworICAgIHZv
aWQgc3luY1BsYXRmb3JtTGF5ZXJJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOworICAgIHZvaWQgZGVzdHJveVBsYXRmb3Jt
SWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyU3RhdGUmKTsKICNlbmRpZgogICAgIHZvaWQgc2V0TGF5ZXJSZXBhaW50Q291bnRJZk5lZWRl
ZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0
ZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c1N0YXRlLmgKaW5kZXggZDZjMGFhZTlmMDBmYWNiYzgyZTUyNzk5NWIxYTA5ZmU5Yjc2YTE0Yi4u
Nzc1MmE3Zjc0ZmZlODVjNDI2ODhhODIzZmRmOWI3MGE0M2I1YTk5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaApAQCAtODksOCAr
ODksOCBAQCBzdHJ1Y3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUgewogICAgICAgICAg
ICAgYm9vbCBmaWx0ZXJzQ2hhbmdlZDogMTsKICAgICAgICAgICAgIGJvb2wgY2hpbGRyZW5DaGFu
Z2VkOiAxOwogICAgICAgICAgICAgYm9vbCByZXBhaW50Q291bnRDaGFuZ2VkIDogMTsKLSAgICAg
ICAgICAgIGJvb2wgY2FudmFzQ2hhbmdlZDogMTsKLSAgICAgICAgICAgIGJvb2wgY2FudmFzU2hv
dWxkU3dhcEJ1ZmZlcnM6IDE7CisgICAgICAgICAgICBib29sIHBsYXRmb3JtTGF5ZXJDaGFuZ2Vk
OiAxOworICAgICAgICAgICAgYm9vbCBwbGF0Zm9ybUxheWVyU2hvdWxkU3dhcEJ1ZmZlcnM6IDE7
CiAgICAgICAgICAgICBib29sIGlzU2Nyb2xsYWJsZUNoYW5nZWQ6IDE7CiAgICAgICAgICAgICBi
b29sIGNvbW1pdHRlZFNjcm9sbE9mZnNldENoYW5nZWQ6IDE7CiAgICAgICAgICAgICBib29sIGNv
bnRlbnRzVGlsaW5nQ2hhbmdlZDogMTsKQEAgLTEzMSw3ICsxMzEsNyBAQCBzdHJ1Y3QgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyU3RhdGUgewogICAgICAgICAsIG1hc2soSW52YWxpZENvb3JkaW5h
dGVkTGF5ZXJJRCkKICAgICAgICAgLCBpbWFnZUlEKEludmFsaWRDb29yZGluYXRlZEltYWdlQmFj
a2luZ0lEKQogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgICAgICAsIGNhbnZhc0Zyb250
QnVmZmVyKDApCisgICAgICAgICwgcGxhdGZvcm1MYXllckZyb250QnVmZmVyKDApCiAjZW5kaWYK
ICAgICB7CiAgICAgfQpAQCAtMTYzLDEwICsxNjMsMTAgQEAgc3RydWN0IENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllclN0YXRlIHsKICAgICBWZWN0b3I8VGlsZVVwZGF0ZUluZm8+IHRpbGVzVG9VcGRh
dGU7CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICBJbnRTaXplIGNhbnZhc1NpemU7
Ci0gICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4gY2FudmFzVG9rZW47Ci0gICAgdWludDMyX3QgY2Fu
dmFzRnJvbnRCdWZmZXI7Ci0gICAgR3JhcGhpY3NTdXJmYWNlOjpGbGFncyBjYW52YXNTdXJmYWNl
RmxhZ3M7CisgICAgSW50U2l6ZSBwbGF0Zm9ybUxheWVyU2l6ZTsKKyAgICBHcmFwaGljc1N1cmZh
Y2VUb2tlbiBwbGF0Zm9ybUxheWVyVG9rZW47CisgICAgdWludDMyX3QgcGxhdGZvcm1MYXllckZy
b250QnVmZmVyOworICAgIEdyYXBoaWNzU3VyZmFjZTo6RmxhZ3MgcGxhdGZvcm1MYXllclN1cmZh
Y2VGbGFnczsKICNlbmRpZgogCiAgICAgSW50U2l6ZSBjb21taXR0ZWRTY3JvbGxPZmZzZXQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4
IDBmNzAwMTllYWQ4ZWM0YjVlZGNmYjRkOGViMDIzYWJmMDQxNGJiY2UuLjJmNTA0ZTJiYjMzOWEy
MWI5ZGFmNjMwNTE3OGQ0NWU2YTAzZTJlODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC01ODksMjAgKzU4OSwyMCBAQCBib29sIFJl
bmRlckxheWVyQmFja2luZzo6dXBkYXRlQ29uZmlndXJhdGlvbigpCiAgICAgICAgIH0KICNlbHNl
CiAgICAgICAgIGlmICghcGx1Z2luVmlld0Jhc2UtPnNob3VsZE5vdEFkZExheWVyKCkpCi0gICAg
ICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9NZWRpYShwbHVnaW5WaWV3QmFz
ZS0+cGxhdGZvcm1MYXllcigpKTsKKyAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29u
dGVudHNUb1BsYXRmb3JtTGF5ZXIocGx1Z2luVmlld0Jhc2UtPnBsYXRmb3JtTGF5ZXIoKSwgR3Jh
cGhpY3NMYXllcjo6Q29udGVudHNMYXllckZvclBsdWdpbik7CiAjZW5kaWYKICAgICB9CiAjaWYg
RU5BQkxFKFZJREVPKQogICAgIGVsc2UgaWYgKHJlbmRlcmVyKCkuaXNWaWRlbygpKSB7CiAgICAg
ICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvSFRNTE1lZGlhRWxlbWVudChy
ZW5kZXJlcigpLmVsZW1lbnQoKSk7Ci0gICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVu
dHNUb01lZGlhKG1lZGlhRWxlbWVudC0+cGxhdGZvcm1MYXllcigpKTsKKyAgICAgICAgbV9ncmFw
aGljc0xheWVyLT5zZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihtZWRpYUVsZW1lbnQtPnBsYXRm
b3JtTGF5ZXIoKSwgR3JhcGhpY3NMYXllcjo6Q29udGVudHNMYXllckZvck1lZGlhKTsKICAgICB9
CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCR0wpIHx8IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5W
QVMpCiAgICAgZWxzZSBpZiAocmVuZGVyZXIoKS5pc0NhbnZhcygpICYmIGNhbnZhc0NvbXBvc2l0
aW5nU3RyYXRlZ3kocmVuZGVyZXIoKSkgPT0gQ2FudmFzQXNMYXllckNvbnRlbnRzKSB7CiAgICAg
ICAgIGNvbnN0IEhUTUxDYW52YXNFbGVtZW50KiBjYW52YXMgPSB0b0hUTUxDYW52YXNFbGVtZW50
KHJlbmRlcmVyKCkuZWxlbWVudCgpKTsKICAgICAgICAgaWYgKENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQqIGNvbnRleHQgPSBjYW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKSkKLSAgICAgICAgICAgIG1f
Z3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNUb0NhbnZhcyhjb250ZXh0LT5wbGF0Zm9ybUxheWVy
KCkpOworICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RvUGxhdGZvcm1M
YXllcihjb250ZXh0LT5wbGF0Zm9ybUxheWVyKCksIEdyYXBoaWNzTGF5ZXI6OkNvbnRlbnRzTGF5
ZXJGb3JDYW52YXMpOwogICAgICAgICBsYXllckNvbmZpZ0NoYW5nZWQgPSB0cnVlOwogICAgIH0K
ICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236713</attachid>
            <date>2014-08-16 06:19:55 -0700</date>
            <delta_ts>2014-08-16 07:34:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109658-20140816221948.patch</filename>
            <type>text/plain</type>
            <size>35775</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwZDAzNjViNGI0MmEx
OTljNjlkZWQzNGZiYjFmN2U0ZGZlOTJkZi4uN2MzYzNmZWRhYmVhNzc2YzgwODRmZGJjNDQwY2Nk
MWUyZTgwNDJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE0LTA4LTE2ICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgVW5pZnkgR3JhcGhpY3NM
YXllcjo6c2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk2NTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiBwYXRjaCBv
cmlnaW5hbGx5IHdyaXR0ZW4gYnkgVGltIEhvcnRvbi4KKyAgICAgICAgTWVyZ2Ugc2V0Q29udGVu
dHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzIGludG8gc2V0Q29udGVudHNUb1BsYXRm
b3JtTGF5ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6
CisgICAgICAgIE1vdmUgQ29udGVudHNMYXllclB1cnBvc2UgZW51bSB1cCBvdXQgb2YgR3JhcGhp
Y3NMYXllciBwbGF0Zm9ybSBpbXBsbWVudGF0aW9ucworICAgICAgICBhbmQgaW50byBHcmFwaGlj
c0xheWVyLCBzbyB3ZSBjYW4gdXNlIGl0IGFzIGEgcGFyYW1ldGVyLgorICAgICAgICBBZGQgQ29u
dGVudHNMYXllckZvclBsdWdpbi4KKworICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6
c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICBSZW1vdmUgc2V0Q29udGVudHNU
b01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzLCBhbmQgcmVwbGFjZSB0aGVtCisgICAgICAg
IHdpdGggc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIsIHdoaWNoIHByZXZpb3VzbHkgZXhpc3Rl
ZCBidXQgd2FzIHVudXNlZAorICAgICAgICBhbmQgc2ltcGx5IGNhbGxlZCBzZXRDb250ZW50c1Rv
TWVkaWEuCisgICAgICAgIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyIHRha2VzIGEgQ29udGVu
dHNMYXllclB1cnBvc2UsIHByaW1hcmlseQorICAgICAgICBzbyB0aGF0IEdyYXBoaWNzTGF5ZXJD
QSBjYW4ga25vdyB3aGV0aGVyIGl0IG5lZWRzIHRvIHNldE5lZWRzRGlzcGxheQorICAgICAgICB0
aGUgbGF5ZXIgd2hlbiBwYXJlbnRpbmcgaXQgKGNhbnZhcykgb3Igbm90IChldmVyeXRoaW5nIGVs
c2UpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1BsYXRm
b3JtTGF5ZXIpOgorICAgICAgICBSZW5hbWUgZnVuY3Rpb24gc2V0Q29udGVudHNUb01lZGlhIC0+
IHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyLgorICAgICAgICBSZW5hbWUgYXJndW1lbnQgbWVk
aWFMYXllciAtPiBwbGF0Zm9ybUxheWVyLgorICAgICAgICBTdG9yZSB0aGUgcGFzc2VkLWluIENv
bnRlbnRzTGF5ZXJQdXJwb3NlLgorICAgICAgICBSZW1vdmUgc2V0Q29udGVudHNUb0NhbnZhcy4K
KworICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNC
ZWZvcmVTdWJsYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRh
dGVDb250ZW50c1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICBSZW1vdmUgdXBkYXRlQ29udGVudHNN
ZWRpYUxheWVyIGFuZCB1cGRhdGVDb250ZW50c0NhbnZhcyBsYXllciwKKyAgICAgICAgYWRkIHVw
ZGF0ZUNvbnRlbnRzUGxhdGZvcm1MYXllci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICBEbyB0aGUgc2FtZSB0byB0aGUgTGF5ZXJD
aGFuZ2UgZW51bS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGlj
c0xheWVyVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJD
b3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KToK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNU
b1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzeW5jUGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OmRlc3Ryb3lQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVk
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENv
bXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgRm9sZCB0aGVzZSB0b2dl
dGhlciBpbiB0aGUgc2FtZSB3YXkgYXMgZWxzZXdoZXJlLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgor
ICAgICAgICBEbyB0aGUgc2FtZSB0byB0aGUgTGF5ZXJDaGFuZ2UgZW51bS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNz
U2NlbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpj
cmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lOjpzeW5jUGxhdGZvcm1MYXllcklmTmVlZGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5l
ZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExh
eWVyU3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmg6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyU3RhdGUpOgorICAgICAgICBSZW5hbWUgY2FudmFzTGF5ZXIgLT4gcGxhdGZvcm1M
YXllci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9uKToK
KyAgICAgICAgVXNlIHRoZSBuZXcgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIsIHBhc3Npbmcg
aW4gdGhlIHJlbGV2YW50IENvbnRlbnRzTGF5ZXJQdXJwb3NlLgorCiAyMDE0LTA4LTE1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90IHVzZSBGbG9hdFJl
Y3Q6OmluZmluaXRlUmVjdCgpIHRvIGZsYWcgZnVsbCByZXBhaW50cy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA0Nzg5MWI4NmZl
NzgyYjYyOGM5MTVhMjFmZDMzY2NmYWY1ZjY2YjM5Li42ZDg4ZDg0NWM0OWUzMDA2Zjk3ZjAwMjE1
YmQxZWQyMmNmOWFlZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NMYXllci5oCkBAIC0yNTEsNiArMjUxLDE1IEBAIHB1YmxpYzoKICAgICAvLyBS
ZXR1cm5zIHRydWUgaWYgdGhlIGNoaWxkIGxpc3QgY2hhbmdlZC4KICAgICB2aXJ0dWFsIGJvb2wg
c2V0Q2hpbGRyZW4oY29uc3QgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYpOwogCisgICAgZW51bSBD
b250ZW50c0xheWVyUHVycG9zZSB7CisgICAgICAgIE5vQ29udGVudHNMYXllciA9IDAsCisgICAg
ICAgIENvbnRlbnRzTGF5ZXJGb3JJbWFnZSwKKyAgICAgICAgQ29udGVudHNMYXllckZvck1lZGlh
LAorICAgICAgICBDb250ZW50c0xheWVyRm9yQ2FudmFzLAorICAgICAgICBDb250ZW50c0xheWVy
Rm9yQmFja2dyb3VuZENvbG9yLAorICAgICAgICBDb250ZW50c0xheWVyRm9yUGx1Z2luCisgICAg
fTsKKwogICAgIC8vIEFkZCBjaGlsZCBsYXllcnMuIElmIHRoZSBjaGlsZCBpcyBhbHJlYWR5IHBh
cmVudGVkLCBpdCB3aWxsIGJlIHJlbW92ZWQgZnJvbSBpdHMgb2xkIHBhcmVudC4KICAgICB2aXJ0
dWFsIHZvaWQgYWRkQ2hpbGQoR3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBhZGRD
aGlsZEF0SW5kZXgoR3JhcGhpY3NMYXllciosIGludCBpbmRleCk7CkBAIC00MDUsMTYgKzQxNCwx
MiBAQCBwdWJsaWM6CiAgICAgLy8gTGF5ZXIgY29udGVudHMKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Q29udGVudHNUb0ltYWdlKEltYWdlKikgeyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZERpcmVj
dGx5Q29tcG9zaXRlSW1hZ2UoSW1hZ2UqKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmly
dHVhbCB2b2lkIHNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKikgeyB9IC8vIHZpZGVv
IG9yIHBsdWctaW4KICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVy
KiBjb250ZW50c0xheWVyRm9yTWVkaWEoKSBjb25zdCB7IHJldHVybiAwOyB9CiAjZW5kaWYKICAg
ICAvLyBQYXNzIGFuIGludmFsaWQgY29sb3IgdG8gcmVtb3ZlIHRoZSBjb250ZW50cyBsYXllci4K
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImKSB7
IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKikg
eyB9Ci0gICAgLy8gRklYTUU6IHdlYmtpdC5vcmcvYi8xMDk2NTgKLSAgICAvLyBTaG91bGQgdW5p
Znkgc2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzCi0gICAgdmlydHVh
bCB2b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqIGxheWVyKSB7
IHNldENvbnRlbnRzVG9NZWRpYShsYXllcik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVu
dHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQdXJwb3NlKSB7
IH0KICAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgLy8gQ2FsbGJhY2sgZnJvbSB0aGUgdW5kZXJseWluZyBncmFwaGljcyBz
eXN0ZW0gdG8gZHJhdyBsYXllciBjb250ZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDg5NmI2ZWQy
ZjZlNjJhMmVlOTNlYjllZDkyMGRlZjA0ZTVjYjA2NGUuLjkxOWI5OGEwMDY5MDQwZGJjMjE2NGJm
Nzc1MGJlMjMyZmQ1YTdjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtOTE4LDI0ICs5MTgsMjQgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCiAg
ICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzSW1hZ2VDaGFuZ2VkKTsKIH0KIAot
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKiBt
ZWRpYUxheWVyKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9QbGF0Zm9ybUxh
eWVyKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIsIENvbnRlbnRzTGF5ZXJQdXJwb3NlIHB1
cnBvc2UpCiB7Ci0gICAgaWYgKG1fY29udGVudHNMYXllciAmJiBtZWRpYUxheWVyID09IG1fY29u
dGVudHNMYXllci0+cGxhdGZvcm1MYXllcigpKQorICAgIGlmIChtX2NvbnRlbnRzTGF5ZXIgJiYg
cGxhdGZvcm1MYXllciA9PSBtX2NvbnRlbnRzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAKLSAgICAvLyBGSVhNRTogVGhlIHBhc3NlZCBpbiBsYXllciBt
aWdodCBiZSBhIHJhdyBsYXllciBvciBhbiBleHRlcm5hbGx5IGNyZWF0ZWQgCisKKyAgICAvLyBG
SVhNRTogVGhlIHBhc3NlZCBpbiBsYXllciBtaWdodCBiZSBhIHJhdyBsYXllciBvciBhbiBleHRl
cm5hbGx5IGNyZWF0ZWQKICAgICAvLyBQbGF0Zm9ybUNBTGF5ZXIuIFRvIGRldGVybWluZSB0aGlz
IHdlIGF0dGVtcHQgdG8gZ2V0IHRoZQogICAgIC8vIFBsYXRmb3JtQ0FMYXllciBwb2ludGVyLiBJ
ZiB0aGlzIHJldHVybnMgYSBudWxsIHBvaW50ZXIgd2UgYXNzdW1lIGl0J3MKICAgICAvLyByYXcu
IFRoaXMgdGVzdCBtaWdodCBiZSBpbnZhbGlkIGlmIHRoZSByYXcgbGF5ZXIgaXMsIGZvciBpbnN0
YW5jZSwgdGhlCiAgICAgLy8gUGxhdGZvcm1DQUxheWVyIGlzIHVzaW5nIGEgdXNlciBkYXRhIHBv
aW50ZXIgaW4gdGhlIHJhdyBsYXllciwgYW5kCiAgICAgLy8gdGhlIGNyZWF0b3Igb2YgdGhlIHJh
dyBsYXllciBpcyB1c2luZyBpdCBmb3Igc29tZSBvdGhlciBwdXJwb3NlLgogICAgIC8vIEZvciBu
b3cgd2UgZG9uJ3Qgc3VwcG9ydCBzdWNoIGEgY2FzZS4KLSAgICBQbGF0Zm9ybUNBTGF5ZXIqIHBs
YXRmb3JtQ0FMYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKG1lZGlhTGF5
ZXIpOwotICAgIG1fY29udGVudHNMYXllciA9IG1lZGlhTGF5ZXIgPyAocGxhdGZvcm1DQUxheWVy
ID8gcGxhdGZvcm1DQUxheWVyIDogY3JlYXRlUGxhdGZvcm1DQUxheWVyKG1lZGlhTGF5ZXIsIHRo
aXMpKSA6IDA7Ci0gICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IG1lZGlhTGF5ZXIgPyBDb250
ZW50c0xheWVyRm9yTWVkaWEgOiBOb0NvbnRlbnRzTGF5ZXI7CisgICAgUGxhdGZvcm1DQUxheWVy
KiBwbGF0Zm9ybUNBTGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcihwbGF0
Zm9ybUxheWVyKTsKKyAgICBtX2NvbnRlbnRzTGF5ZXIgPSBwbGF0Zm9ybUxheWVyID8gKHBsYXRm
b3JtQ0FMYXllciA/IHBsYXRmb3JtQ0FMYXllciA6IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihwbGF0
Zm9ybUxheWVyLCB0aGlzKSkgOiAwOworICAgIG1fY29udGVudHNMYXllclB1cnBvc2UgPSBwbGF0
Zm9ybUxheWVyID8gcHVycG9zZSA6IE5vQ29udGVudHNMYXllcjsKIAogICAgIG5vdGVTdWJsYXll
cnNDaGFuZ2VkKCk7Ci0gICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzTWVkaWFM
YXllckNoYW5nZWQpOworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50c1BsYXRm
b3JtTGF5ZXJDaGFuZ2VkKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTk0NSwyMCArOTQ1
LDYgQEAgUGxhdGZvcm1MYXllciogR3JhcGhpY3NMYXllckNBOjpjb250ZW50c0xheWVyRm9yTWVk
aWEoKSBjb25zdAogfQogI2VuZGlmCiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50
c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIqIGNhbnZhc0xheWVyKQotewotICAgIGlmIChtX2NvbnRl
bnRzTGF5ZXIgJiYgY2FudmFzTGF5ZXIgPT0gbV9jb250ZW50c0xheWVyLT5wbGF0Zm9ybUxheWVy
KCkpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICAvLyBDcmVhdGUgdGhlIFBsYXRmb3JtQ0FM
YXllciB0byB3cmFwIHRoZSBpbmNvbWluZyBsYXllcgotICAgIG1fY29udGVudHNMYXllciA9IGNh
bnZhc0xheWVyID8gY3JlYXRlUGxhdGZvcm1DQUxheWVyKGNhbnZhc0xheWVyLCB0aGlzKSA6IDA7
Ci0gICAgCi0gICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IGNhbnZhc0xheWVyID8gQ29udGVu
dHNMYXllckZvckNhbnZhcyA6IE5vQ29udGVudHNMYXllcjsKLQotICAgIG5vdGVTdWJsYXllcnND
aGFuZ2VkKCk7Ci0gICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzQ2FudmFzTGF5
ZXJDaGFuZ2VkKTsKLX0KLSAgICAKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpsYXllckRpZERpc3Bs
YXkoUGxhdGZvcm1DQUxheWVyKiBsYXllcikKIHsKICAgICBMYXllck1hcCogbGF5ZXJDbG9uZU1h
cDsKQEAgLTEzMDMsMTEgKzEyODksOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6Y29tbWl0TGF5
ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZQogICAgIGlm
IChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzSW1hZ2VDaGFuZ2VkKSAvLyBOZWVkcyB0
byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAogICAgICAgICB1cGRhdGVDb250ZW50c0lt
YWdlKCk7CiAgICAgICAgIAotICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRz
TWVkaWFMYXllckNoYW5nZWQpIC8vIE5lZWRzIHRvIGhhcHBlbiBiZWZvcmUgQ2hpbGRyZW5DaGFu
Z2VkCi0gICAgICAgIHVwZGF0ZUNvbnRlbnRzTWVkaWFMYXllcigpOwotICAgIAotICAgIGlmICht
X3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzQ2FudmFzTGF5ZXJDaGFuZ2VkKSAvLyBOZWVk
cyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAotICAgICAgICB1cGRhdGVDb250ZW50
c0NhbnZhc0xheWVyKCk7CisgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ29udGVudHNQ
bGF0Zm9ybUxheWVyQ2hhbmdlZCkgLy8gTmVlZHMgdG8gaGFwcGVuIGJlZm9yZSBDaGlsZHJlbkNo
YW5nZWQKKyAgICAgICAgdXBkYXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKCk7CiAKICAgICBpZiAo
bV91bmNvbW1pdHRlZENoYW5nZXMgJiBDb250ZW50c0NvbG9yTGF5ZXJDaGFuZ2VkKSAvLyBOZWVk
cyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAogICAgICAgICB1cGRhdGVDb250ZW50
c0NvbG9yTGF5ZXIoKTsKQEAgLTE5MzYsMjQgKzE5MTksMTcgQEAgdm9pZCBHcmFwaGljc0xheWVy
Q0E6OnVwZGF0ZUNvbnRlbnRzSW1hZ2UoKQogICAgIH0KIH0KIAotdm9pZCBHcmFwaGljc0xheWVy
Q0E6OnVwZGF0ZUNvbnRlbnRzTWVkaWFMYXllcigpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBk
YXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKCkKIHsKLSAgICBpZiAoIW1fY29udGVudHNMYXllciB8
fCBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlICE9IENvbnRlbnRzTGF5ZXJGb3JNZWRpYSkKKyAgICBp
ZiAoIW1fY29udGVudHNMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVmlkZW8gbGF5
ZXIgd2FzIHNldCBhcyBtX2NvbnRlbnRzTGF5ZXIsIGFuZCB3aWxsIGdldCBwYXJlbnRlZCBpbiB1
cGRhdGVTdWJsYXllckxpc3QoKS4KKyAgICAvLyBQbGF0Zm9ybSBsYXllciB3YXMgc2V0IGFzIG1f
Y29udGVudHNMYXllciwgYW5kIHdpbGwgZ2V0IHBhcmVudGVkIGluIHVwZGF0ZVN1YmxheWVyTGlz
dCgpLgogICAgIHNldHVwQ29udGVudHNMYXllcihtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkpOwotICAg
IHVwZGF0ZUNvbnRlbnRzUmVjdHMoKTsKLX0KIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0
ZUNvbnRlbnRzQ2FudmFzTGF5ZXIoKQotewotICAgIGlmICghbV9jb250ZW50c0xheWVyIHx8IG1f
Y29udGVudHNMYXllclB1cnBvc2UgIT0gQ29udGVudHNMYXllckZvckNhbnZhcykKLSAgICAgICAg
cmV0dXJuOworICAgIGlmIChtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID09IENvbnRlbnRzTGF5ZXJG
b3JDYW52YXMpCisgICAgICAgIG1fY29udGVudHNMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CiAK
LSAgICAvLyBDYW52YXNMYXllciB3YXMgc2V0IGFzIG1fY29udGVudHNMYXllciwgYW5kIHdpbGwg
Z2V0IHBhcmVudGVkIGluIHVwZGF0ZVN1YmxheWVyTGlzdCgpLgotICAgIHNldHVwQ29udGVudHNM
YXllcihtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkpOwotICAgIG1fY29udGVudHNMYXllci0+c2V0TmVl
ZHNEaXNwbGF5KCk7CiAgICAgdXBkYXRlQ29udGVudHNSZWN0cygpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmlu
ZGV4IGRiM2QyZDcyOTAxNjVhMmE5YzdiMGZlNDUyNGY5ZDRmMzFhY2JlNTEuLmY2ZTY1ZGJhZGM4
Y2QyNzliMmIwY2Y2OTE3YzJhNmU1Mjk4ZjJjNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0xMjYsMTEgKzEy
NiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbihjb25zdCBT
dHJpbmcmIGFuaW1hdGlvbk5hbWUpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNldENv
bnRlbnRzVG9JbWFnZShJbWFnZSopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250
ZW50c1RvTWVkaWEoUGxhdGZvcm1MYXllciopIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykK
ICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIGNvbnRlbnRzTGF5ZXJGb3JNZWRpYSgpIGNvbnN0
IG92ZXJyaWRlOwogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9DYW52YXMo
UGxhdGZvcm1MYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1Rv
UGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiwgQ29udGVudHNMYXllclB1cnBvc2UpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYpIG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCBib29sIHVzZXNDb250ZW50c0xheWVyKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9jb250ZW50c0xheWVyUHVycG9zZSAhPSBOb0NvbnRlbnRzTGF5ZXI7IH0K
QEAgLTM3Myw4ICszNzIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQmFja2dyb3VuZENv
bG9yKCk7CiAKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzSW1hZ2UoKTsKLSAgICB2b2lkIHVwZGF0
ZUNvbnRlbnRzTWVkaWFMYXllcigpOwotICAgIHZvaWQgdXBkYXRlQ29udGVudHNDYW52YXNMYXll
cigpOworICAgIHZvaWQgdXBkYXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKCk7CiAgICAgdm9pZCB1
cGRhdGVDb250ZW50c0NvbG9yTGF5ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzUmVjdHMo
KTsKICAgICB2b2lkIHVwZGF0ZU1hc2tMYXllcigpOwpAQCAtNDI4LDI0ICs0MjYsMjMgQEAgcHJp
dmF0ZToKICAgICAgICAgQW5pbWF0aW9uQ2hhbmdlZCA9IDFMTFUgPDwgMTMsCiAgICAgICAgIERp
cnR5UmVjdHNDaGFuZ2VkID0gMUxMVSA8PCAxNCwKICAgICAgICAgQ29udGVudHNJbWFnZUNoYW5n
ZWQgPSAxTExVIDw8IDE1LAotICAgICAgICBDb250ZW50c01lZGlhTGF5ZXJDaGFuZ2VkID0gMUxM
VSA8PCAxNiwKLSAgICAgICAgQ29udGVudHNDYW52YXNMYXllckNoYW5nZWQgPSAxTExVIDw8IDE3
LAotICAgICAgICBDb250ZW50c0NvbG9yTGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAxOCwKLSAgICAg
ICAgQ29udGVudHNSZWN0c0NoYW5nZWQgPSAxTExVIDw8IDE5LAotICAgICAgICBNYXNrTGF5ZXJD
aGFuZ2VkID0gMUxMVSA8PCAyMCwKLSAgICAgICAgUmVwbGljYXRlZExheWVyQ2hhbmdlZCA9IDFM
TFUgPDwgMjEsCi0gICAgICAgIENvbnRlbnRzTmVlZHNEaXNwbGF5ID0gMUxMVSA8PCAyMiwKLSAg
ICAgICAgQWNjZWxlcmF0ZXNEcmF3aW5nQ2hhbmdlZCA9IDFMTFUgPDwgMjMsCi0gICAgICAgIENv
bnRlbnRzU2NhbGVDaGFuZ2VkID0gMUxMVSA8PCAyNCwKLSAgICAgICAgQ29udGVudHNWaXNpYmls
aXR5Q2hhbmdlZCA9IDFMTFUgPDwgMjUsCi0gICAgICAgIFZpc2libGVSZWN0Q2hhbmdlZCA9IDFM
TFUgPDwgMjYsCi0gICAgICAgIEZpbHRlcnNDaGFuZ2VkID0gMUxMVSA8PCAyNywKLSAgICAgICAg
VGlsaW5nQXJlYUNoYW5nZWQgPSAxTExVIDw8IDI4LAotICAgICAgICBUaWxlc0FkZGVkID0gMUxM
VSA8IDI5LAotICAgICAgICBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkID0gMUxMVSA8PCAzMCwKLSAg
ICAgICAgQ3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQgPSAxTExVIDw8IDMxLAotICAgICAgICBDdXN0
b21CZWhhdmlvckNoYW5nZWQgPSAxTExVIDw8IDMyLAotICAgICAgICBCbGVuZE1vZGVDaGFuZ2Vk
ID0gMUxMVSA8PCAzMworICAgICAgICBDb250ZW50c1BsYXRmb3JtTGF5ZXJDaGFuZ2VkID0gMUxM
VSA8PCAxNiwKKyAgICAgICAgQ29udGVudHNDb2xvckxheWVyQ2hhbmdlZCA9IDFMTFUgPDwgMTcs
CisgICAgICAgIENvbnRlbnRzUmVjdHNDaGFuZ2VkID0gMUxMVSA8PCAxOCwKKyAgICAgICAgTWFz
a0xheWVyQ2hhbmdlZCA9IDFMTFUgPDwgMTksCisgICAgICAgIFJlcGxpY2F0ZWRMYXllckNoYW5n
ZWQgPSAxTExVIDw8IDIwLAorICAgICAgICBDb250ZW50c05lZWRzRGlzcGxheSA9IDFMTFUgPDwg
MjEsCisgICAgICAgIEFjY2VsZXJhdGVzRHJhd2luZ0NoYW5nZWQgPSAxTExVIDw8IDIyLAorICAg
ICAgICBDb250ZW50c1NjYWxlQ2hhbmdlZCA9IDFMTFUgPDwgMjMsCisgICAgICAgIENvbnRlbnRz
VmlzaWJpbGl0eUNoYW5nZWQgPSAxTExVIDw8IDI0LAorICAgICAgICBWaXNpYmxlUmVjdENoYW5n
ZWQgPSAxTExVIDw8IDI1LAorICAgICAgICBGaWx0ZXJzQ2hhbmdlZCA9IDFMTFUgPDwgMjYsCisg
ICAgICAgIFRpbGluZ0FyZWFDaGFuZ2VkID0gMUxMVSA8PCAyNywKKyAgICAgICAgVGlsZXNBZGRl
ZCA9IDFMTFUgPCAyOCwKKyAgICAgICAgRGVidWdJbmRpY2F0b3JzQ2hhbmdlZCA9IDFMTFUgPDwg
MjksCisgICAgICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkID0gMUxMVSA8PCAzMCwKKyAgICAg
ICAgQ3VzdG9tQmVoYXZpb3JDaGFuZ2VkID0gMUxMVSA8PCAzMSwKKyAgICAgICAgQmxlbmRNb2Rl
Q2hhbmdlZCA9IDFMTFUgPDwgMzIKICAgICB9OwogICAgIHR5cGVkZWYgdWludDY0X3QgTGF5ZXJD
aGFuZ2VGbGFnczsKICAgICBlbnVtIFNjaGVkdWxlRmx1c2hPck5vdCB7IFNjaGVkdWxlRmx1c2gs
IERvbnRTY2hlZHVsZUZsdXNoIH07CkBAIC00NzIsMTQgKzQ2OSw2IEBAIHByaXZhdGU6CiAgICAg
RmxvYXRSZWN0IG1fdmlzaWJsZVJlY3Q7CiAgICAgRmxvYXRTaXplIG1fc2l6ZUF0TGFzdFZpc2li
bGVSZWN0VXBkYXRlOwogICAgIAotICAgIGVudW0gQ29udGVudHNMYXllclB1cnBvc2UgewotICAg
ICAgICBOb0NvbnRlbnRzTGF5ZXIgPSAwLAotICAgICAgICBDb250ZW50c0xheWVyRm9ySW1hZ2Us
Ci0gICAgICAgIENvbnRlbnRzTGF5ZXJGb3JNZWRpYSwKLSAgICAgICAgQ29udGVudHNMYXllckZv
ckNhbnZhcywKLSAgICAgICAgQ29udGVudHNMYXllckZvckJhY2tncm91bmRDb2xvcgotICAgIH07
Ci0gICAgCiAgICAgQ29udGVudHNMYXllclB1cnBvc2UgbV9jb250ZW50c0xheWVyUHVycG9zZTsK
ICAgICBib29sIG1faXNQYWdlVGlsZWRCYWNraW5nTGF5ZXIgOiAxOwogICAgIGJvb2wgbV9uZWVk
c0Z1bGxSZXBhaW50IDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIu
Y3BwCmluZGV4IDE3NGNjNTQ5OGY1Y2ZkOWNhODQzNTllNDdkZjViNzQ4YTkwMTJlMjAuLmI4M2Yz
YmM2NGQzNTM4MDVlNjBhNjg3ZTU3Njk4NWNkYjhhN2IyYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtMzY4LDE3ICszNjgsMTcgQEAgdm9pZCBHcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkK
ICAgICAgICAgbV9jb21wb3NpdGVkSW1hZ2UgPSAwOwogICAgIH0KIAotICAgIHNldENvbnRlbnRz
VG9NZWRpYShtX2NvbXBvc2l0ZWRJbWFnZS5nZXQoKSk7CisgICAgc2V0Q29udGVudHNUb1BsYXRm
b3JtTGF5ZXIobV9jb21wb3NpdGVkSW1hZ2UuZ2V0KCksIENvbnRlbnRzTGF5ZXJGb3JJbWFnZSk7
CiAgICAgbm90aWZ5Q2hhbmdlKENvbnRlbnRDaGFuZ2UpOwogICAgIEdyYXBoaWNzTGF5ZXI6OnNl
dENvbnRlbnRzVG9JbWFnZShpbWFnZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXI6OnNldENvbnRlbnRzVG9NZWRpYShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllciogbWVk
aWEpCit2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvUGxhdGZv
cm1MYXllcihUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllciogbWVkaWEsIENvbnRlbnRzTGF5ZXJQ
dXJwb3NlIHB1cnBvc2UpCiB7CiAgICAgaWYgKG1lZGlhID09IG1fY29udGVudHNMYXllcikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb01lZGlhKG1l
ZGlhKTsKKyAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihtZWRp
YSwgcHVycG9zZSk7CiAgICAgbm90aWZ5Q2hhbmdlKENvbnRlbnRDaGFuZ2UpOwogCiAgICAgaWYg
KG1fY29udGVudHNMYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgK
aW5kZXggY2FjZWNiMzc2MzI5YzIwNDU1YWRhMWVhMzI4N2Q5NWFjNTU0MjI4Mi4uODJmOGNhYjVl
OWRlNDFiZWI2M2EyM2RiOTA5OTU5M2Q1MmNkODkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyLmgKQEAgLTY4LDggKzY4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImKTsKICAgICBDb2xvciBzb2xpZENvbG9yKCkg
Y29uc3QgeyByZXR1cm4gbV9zb2xpZENvbG9yOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRl
bnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKik7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRz
VG9DYW52YXMoUGxhdGZvcm1MYXllciogY2FudmFzKSB7IHNldENvbnRlbnRzVG9NZWRpYShjYW52
YXMpOyB9CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRm
b3JtTGF5ZXIqLCBDb250ZW50c0xheWVyUHVycG9zZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNo
b3dEZWJ1Z0JvcmRlcihib29sKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdC
b3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCB3aWR0aCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHNldFNob3dSZXBhaW50Q291bnRlcihib29sKSBvdmVycmlkZTsKQEAgLTExMiw3ICsxMTEs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJlcGFyZUJhY2tpbmdTdG9yZUlmTmVlZGVkKCk7CiAg
ICAgYm9vbCBzaG91bGRIYXZlQmFja2luZ1N0b3JlKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgcGxhdGZvcm1MYXllcldpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlIHsgc2V0Q29udGVudHNU
b01lZGlhKDApOyB9CisgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtTGF5ZXJXaWxsQmVEZXN0cm95
ZWQoKSBvdmVycmlkZSB7IHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKDAsIE5vQ29udGVudHNM
YXllcik7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0UGxhdGZvcm1MYXllck5lZWRzRGlzcGxheSgp
IG92ZXJyaWRlIHsgc2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsgfQogCiAgICAgLy8gVGhpcyBz
ZXQgb2YgZmxhZ3MgaGVscCB1cyBkZWZlciB3aGljaCBwcm9wZXJ0aWVzIG9mIHRoZSBsYXllciBo
YXZlIGJlZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5jcHAKaW5kZXggZjY0ZmVmMjg5YzdhZTU4OWVlMWExNTJlZWEzM2Q2OTYwMzQ3
YWQ2Zi4uNTZlNGI4ODk3NjA2NjJmMmYxZTdhOTA3ZDQxZDM0ZjEwMjA1MjgxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAK
QEAgLTEyMSwxMiArMTIxLDEyIEBAIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKICAgICAsIG1fcGVu
ZGluZ0NvbnRlbnRzU2NhbGVBZGp1c3RtZW50KGZhbHNlKQogICAgICwgbV9wZW5kaW5nVmlzaWJs
ZVJlY3RBZGp1c3RtZW50KGZhbHNlKQogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgICwg
bV9pc1ZhbGlkQ2FudmFzKGZhbHNlKQotICAgICwgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uKE5v
bmUpCisgICAgLCBtX2lzVmFsaWRQbGF0Zm9ybUxheWVyKGZhbHNlKQorICAgICwgbV9wZW5kaW5n
UGxhdGZvcm1MYXllck9wZXJhdGlvbihOb25lKQogI2VuZGlmCiAgICAgLCBtX2Nvb3JkaW5hdG9y
KDApCiAgICAgLCBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0cigwKQotICAgICwgbV9jYW52YXNQ
bGF0Zm9ybUxheWVyKDApCisgICAgLCBtX3BsYXRmb3JtTGF5ZXIoMCkKICAgICAsIG1fYW5pbWF0
aW9uU3RhcnRlZFRpbWVyKHRoaXMsICZDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlv
blN0YXJ0ZWRUaW1lckZpcmVkKQogICAgICwgbV9zY3JvbGxhYmxlQXJlYSgwKQogewpAQCAtMzgz
LDM2ICszODMsMzcgQEAgYm9vbCBHcmFwaGljc0xheWVyOjpzdXBwb3J0c0NvbnRlbnRzVGlsaW5n
KCkKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c05lZWRzRGlzcGxh
eSgpCiB7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgaWYgKG1fY2FudmFzUGxhdGZv
cm1MYXllcikKLSAgICAgICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHw9IFN5bmNDYW52YXM7
CisgICAgaWYgKG1fcGxhdGZvcm1MYXllcikKKyAgICAgICAgbV9wZW5kaW5nUGxhdGZvcm1MYXll
ck9wZXJhdGlvbiB8PSBTeW5jUGxhdGZvcm1MYXllcjsKICNlbmRpZgogCiAgICAgbm90aWZ5Rmx1
c2hSZXF1aXJlZCgpOwogICAgIGFkZFJlcGFpbnRSZWN0KGNvbnRlbnRzUmVjdCgpKTsKIH0KIAot
dm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZv
cm1MYXllciogcGxhdGZvcm1MYXllcikKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpz
ZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyLCBD
b250ZW50c0xheWVyUHVycG9zZSBwdXJwb3NlKQogewogI2lmIFVTRShHUkFQSElDU19TVVJGQUNF
KQotICAgIGlmIChtX2NhbnZhc1BsYXRmb3JtTGF5ZXIpIHsKLSAgICAgICAgQVNTRVJUKG1fY2Fu
dmFzVG9rZW4uaXNWYWxpZCgpKTsKKyAgICBpZiAobV9wbGF0Zm9ybUxheWVyKSB7CisgICAgICAg
IEFTU0VSVChtX3BsYXRmb3JtTGF5ZXJUb2tlbi5pc1ZhbGlkKCkpOwogICAgICAgICBpZiAoIXBs
YXRmb3JtTGF5ZXIpIHsKLSAgICAgICAgICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiB8PSBE
ZXN0cm95Q2FudmFzOwotICAgICAgICAgICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uICY9IH5D
cmVhdGVDYW52YXM7Ci0gICAgICAgIH0gIGVsc2UgaWYgKChtX2NhbnZhc1NpemUgIT0gcGxhdGZv
cm1MYXllci0+cGxhdGZvcm1MYXllclNpemUoKSkgfHwgKG1fY2FudmFzVG9rZW4gIT0gcGxhdGZv
cm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKSkpIHsKLSAgICAgICAgICAgIC8vIG1fY2Fu
dmFzVG9rZW4gY2FuIGJlIGRpZmZlcmVudCB0byBwbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZh
Y2VUb2tlbigpLCBldmVuIGlmIG1fY2FudmFzUGxhdGZvcm1MYXllciBlcXVhbHMgcGxhdGZvcm1M
YXllci4KLSAgICAgICAgICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiB8PSBSZWNyZWF0ZUNh
bnZhczsKKyAgICAgICAgICAgIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gfD0gRGVz
dHJveVBsYXRmb3JtTGF5ZXI7CisgICAgICAgICAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3Bl
cmF0aW9uICY9IH5DcmVhdGVQbGF0Zm9ybUxheWVyOworICAgICAgICB9ICBlbHNlIGlmICgobV9w
bGF0Zm9ybUxheWVyU2l6ZSAhPSBwbGF0Zm9ybUxheWVyLT5wbGF0Zm9ybUxheWVyU2l6ZSgpKSB8
fCAobV9wbGF0Zm9ybUxheWVyVG9rZW4gIT0gcGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNl
VG9rZW4oKSkpIHsKKyAgICAgICAgICAgIC8vIG1fcGxhdGZvcm1MYXllclRva2VuIGNhbiBiZSBk
aWZmZXJlbnQgdG8gcGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKSwgZXZlbiBp
ZiBtX3BsYXRmb3JtTGF5ZXIgZXF1YWxzIHBsYXRmb3JtTGF5ZXIuCisgICAgICAgICAgICBtX3Bl
bmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uIHw9IFJlY3JlYXRlUGxhdGZvcm1MYXllcjsKICAg
ICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChwbGF0Zm9ybUxheWVyKQotICAgICAg
ICAgICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHw9IENyZWF0ZUFuZFN5bmNDYW52YXM7Cisg
ICAgICAgICAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uIHw9IENyZWF0ZUFuZFN5
bmNQbGF0Zm9ybUxheWVyOwogICAgIH0KIAotICAgIG1fY2FudmFzUGxhdGZvcm1MYXllciA9IHBs
YXRmb3JtTGF5ZXI7Ci0gICAgLy8gbV9jYW52YXNUb2tlbiBpcyB1cGRhdGVkIG9ubHkgaGVyZS4g
SW4gZGV0YWlsLCB3aGVuIEdyYXBoaWNzQ29udGV4dDNEIGlzIGNoYW5nZWQgb3IgcmVzaGFwZWQs
IG1fY2FudmFzVG9rZW4gaXMgY2hhbmdlZCBhbmQgc2V0Q29udGVudHNUb0NhbnZhcygpIGlzIGFs
d2F5cyBjYWxsZWQuCi0gICAgbV9jYW52YXNTaXplID0gbV9jYW52YXNQbGF0Zm9ybUxheWVyID8g
bV9jYW52YXNQbGF0Zm9ybUxheWVyLT5wbGF0Zm9ybUxheWVyU2l6ZSgpIDogSW50U2l6ZSgpOwot
ICAgIG1fY2FudmFzVG9rZW4gPSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgPyBtX2NhbnZhc1BsYXRm
b3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2VuKCkgOiBHcmFwaGljc1N1cmZhY2VUb2tlbigp
OwotICAgIEFTU0VSVCghKCFtX2NhbnZhc1Rva2VuLmlzVmFsaWQoKSAmJiBtX2NhbnZhc1BsYXRm
b3JtTGF5ZXIpKTsKKyAgICBtX3BsYXRmb3JtTGF5ZXIgPSBwbGF0Zm9ybUxheWVyOworICAgIC8v
IG1fcGxhdGZvcm1MYXllclRva2VuIGlzIHVwZGF0ZWQgb25seSBoZXJlLiAKKyAgICAvLyBJbiBk
ZXRhaWwsIHdoZW4gR3JhcGhpY3NDb250ZXh0M0QgaXMgY2hhbmdlZCBvciByZXNoYXBlZCwgbV9w
bGF0Zm9ybUxheWVyVG9rZW4gaXMgY2hhbmdlZCBhbmQgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5
ZXIoKSBpcyBhbHdheXMgY2FsbGVkLgorICAgIG1fcGxhdGZvcm1MYXllclNpemUgPSBtX3BsYXRm
b3JtTGF5ZXIgPyBtX3BsYXRmb3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCkgOiBJbnRTaXpl
KCk7CisgICAgbV9wbGF0Zm9ybUxheWVyVG9rZW4gPSBtX3BsYXRmb3JtTGF5ZXIgPyBtX3BsYXRm
b3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2VuKCkgOiBHcmFwaGljc1N1cmZhY2VUb2tlbigp
OworICAgIEFTU0VSVCghKCFtX3BsYXRmb3JtTGF5ZXJUb2tlbi5pc1ZhbGlkKCkgJiYgbV9wbGF0
Zm9ybUxheWVyKSk7CiAKICAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7CiAjZWxzZQpAQCAtNzIw
LDUzICs3MjEsNTMgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNBbmltYXRp
b25zKCkKIH0KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OnN5bmNDYW52YXMoKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OnN5bmNQbGF0Zm9ybUxheWVyKCkKIHsKLSAgICBkZXN0cm95Q2FudmFzSWZOZWVkZWQoKTsKLSAg
ICBjcmVhdGVDYW52YXNJZk5lZWRlZCgpOworICAgIGRlc3Ryb3lQbGF0Zm9ybUxheWVySWZOZWVk
ZWQoKTsKKyAgICBjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQoKTsKIAotICAgIGlmICghKG1f
cGVuZGluZ0NhbnZhc09wZXJhdGlvbiAmIFN5bmNDYW52YXMpKQorICAgIGlmICghKG1fcGVuZGlu
Z1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gJiBTeW5jUGxhdGZvcm1MYXllcikpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiAmPSB+U3luY0NhbnZhczsKKyAg
ICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uICY9IH5TeW5jUGxhdGZvcm1MYXllcjsK
IAotICAgIGlmICghbV9pc1ZhbGlkQ2FudmFzKQorICAgIGlmICghbV9pc1ZhbGlkUGxhdGZvcm1M
YXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1fY2FudmFzUGxhdGZvcm1MYXll
cik7Ci0gICAgbV9sYXllclN0YXRlLmNhbnZhc0Zyb250QnVmZmVyID0gbV9jYW52YXNQbGF0Zm9y
bUxheWVyLT5jb3B5VG9HcmFwaGljc1N1cmZhY2UoKTsKLSAgICBtX2xheWVyU3RhdGUuY2FudmFz
U2hvdWxkU3dhcEJ1ZmZlcnMgPSB0cnVlOworICAgIEFTU0VSVChtX3BsYXRmb3JtTGF5ZXIpOwor
ICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyRnJvbnRCdWZmZXIgPSBtX3BsYXRmb3JtTGF5
ZXItPmNvcHlUb0dyYXBoaWNzU3VyZmFjZSgpOworICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxh
eWVyU2hvdWxkU3dhcEJ1ZmZlcnMgPSB0cnVlOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcjo6ZGVzdHJveUNhbnZhc0lmTmVlZGVkKCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjpkZXN0cm95UGxhdGZvcm1MYXllcklmTmVlZGVkKCkKIHsKLSAgICBpZiAoIShtX3Bl
bmRpbmdDYW52YXNPcGVyYXRpb24gJiBEZXN0cm95Q2FudmFzKSkKKyAgICBpZiAoIShtX3BlbmRp
bmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uICYgRGVzdHJveVBsYXRmb3JtTGF5ZXIpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAobV9pc1ZhbGlkQ2FudmFzKSB7Ci0gICAgICAgIG1faXNWYWxp
ZENhbnZhcyA9IGZhbHNlOwotICAgICAgICBtX2xheWVyU3RhdGUuY2FudmFzVG9rZW4gPSBHcmFw
aGljc1N1cmZhY2VUb2tlbigpOwotICAgICAgICBtX2xheWVyU3RhdGUuY2FudmFzQ2hhbmdlZCA9
IHRydWU7CisgICAgaWYgKG1faXNWYWxpZFBsYXRmb3JtTGF5ZXIpIHsKKyAgICAgICAgbV9pc1Zh
bGlkUGxhdGZvcm1MYXllciA9IGZhbHNlOworICAgICAgICBtX2xheWVyU3RhdGUucGxhdGZvcm1M
YXllclRva2VuID0gR3JhcGhpY3NTdXJmYWNlVG9rZW4oKTsKKyAgICAgICAgbV9sYXllclN0YXRl
LnBsYXRmb3JtTGF5ZXJDaGFuZ2VkID0gdHJ1ZTsKICAgICB9CiAKLSAgICBtX3BlbmRpbmdDYW52
YXNPcGVyYXRpb24gJj0gfkRlc3Ryb3lDYW52YXM7CisgICAgbV9wZW5kaW5nUGxhdGZvcm1MYXll
ck9wZXJhdGlvbiAmPSB+RGVzdHJveVBsYXRmb3JtTGF5ZXI7CiB9CiAKLXZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVDYW52YXNJZk5lZWRlZCgpCit2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6Y3JlYXRlUGxhdGZvcm1MYXllcklmTmVlZGVkKCkKIHsKLSAgICBpZiAo
IShtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24gJiBDcmVhdGVDYW52YXMpKQorICAgIGlmICghKG1f
cGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gJiBDcmVhdGVQbGF0Zm9ybUxheWVyKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1fY2FudmFzUGxhdGZvcm1MYXllcik7Ci0gICAg
aWYgKCFtX2lzVmFsaWRDYW52YXMpIHsKLSAgICAgICAgbV9sYXllclN0YXRlLmNhbnZhc1NpemUg
PSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCk7Ci0gICAgICAgIG1f
bGF5ZXJTdGF0ZS5jYW52YXNUb2tlbiA9IG1fY2FudmFzUGxhdGZvcm1MYXllci0+Z3JhcGhpY3NT
dXJmYWNlVG9rZW4oKTsKLSAgICAgICAgbV9sYXllclN0YXRlLmNhbnZhc1N1cmZhY2VGbGFncyA9
IG1fY2FudmFzUGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlRmxhZ3MoKTsKLSAgICAgICAg
bV9sYXllclN0YXRlLmNhbnZhc0NoYW5nZWQgPSB0cnVlOwotICAgICAgICBtX2lzVmFsaWRDYW52
YXMgPSB0cnVlOworICAgIEFTU0VSVChtX3BsYXRmb3JtTGF5ZXIpOworICAgIGlmICghbV9pc1Zh
bGlkUGxhdGZvcm1MYXllcikgeworICAgICAgICBtX2xheWVyU3RhdGUucGxhdGZvcm1MYXllclNp
emUgPSBtX3BsYXRmb3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCk7CisgICAgICAgIG1fbGF5
ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4gPSBtX3BsYXRmb3JtTGF5ZXItPmdyYXBoaWNzU3Vy
ZmFjZVRva2VuKCk7CisgICAgICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyU3VyZmFjZUZs
YWdzID0gbV9wbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZhY2VGbGFncygpOworICAgICAgICBt
X2xheWVyU3RhdGUucGxhdGZvcm1MYXllckNoYW5nZWQgPSB0cnVlOworICAgICAgICBtX2lzVmFs
aWRQbGF0Zm9ybUxheWVyID0gdHJ1ZTsKICAgICB9CiAKLSAgICBtX3BlbmRpbmdDYW52YXNPcGVy
YXRpb24gJj0gfkNyZWF0ZUNhbnZhczsKKyAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0
aW9uICY9IH5DcmVhdGVQbGF0Zm9ybUxheWVyOwogfQogI2VuZGlmCiAKQEAgLTc5MSw3ICs3OTIs
NyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRl
Rm9yVGhpc0xheWVyT25seSgpCiAgICAgc3luY0ZpbHRlcnMoKTsKICNlbmRpZgogI2lmIFVTRShH
UkFQSElDU19TVVJGQUNFKQotICAgIHN5bmNDYW52YXMoKTsKKyAgICBzeW5jUGxhdGZvcm1MYXll
cigpOwogI2VuZGlmCiAKICAgICAvLyBPbmx5IHVuc2V0IG1fbW92aW5nVmlzaWJsZVJlY3QgYWZ0
ZXIgd2UgaGF2ZSB1cGRhdGVkIHRoZSB2aXNpYmxlIHJlY3QgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBz
dG9wcGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5oCmluZGV4IDE0ODZjMjA3YmUyODY0MDQ0OGI1MDYxMzdhNmIwYjQzNDIwMTE0ZWIu
LmE2YTU4ZjMyYjQ3NDZlMjc1ZWY1MWM4NjQ2NWI0YmU5ZTY4NTc0YmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTkyLDcg
KzkyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93RGVidWdCb3JkZXIoYm9v
bCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dSZXBhaW50Q291bnRlcihib29s
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGlyZWN0bHlDb21wb3NpdGVJbWFn
ZShJbWFnZSopIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1Rv
Q2FudmFzKFBsYXRmb3JtTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQdXJwb3Nl
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWFza0xheWVyKEdyYXBoaWNzTGF5ZXIq
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3JhcGhp
Y3NMYXllciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBv
dmVycmlkZTsKQEAgLTEwOSw3ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJl
bW92ZUFuaW1hdGlvbihjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCByZXN1bWVBbmltYXRpb25zKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIHVzZXNDb250
ZW50c0xheWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jYW52YXNQbGF0Zm9ybUxheWVy
IHx8IG1fY29tcG9zaXRlZEltYWdlOyB9CisgICAgdmlydHVhbCBib29sIHVzZXNDb250ZW50c0xh
eWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wbGF0Zm9ybUxheWVyIHx8IG1fY29tcG9z
aXRlZEltYWdlOyB9CiAKICAgICB2b2lkIHN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5jbHVkaW5n
U3ViTGF5ZXJzKCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50QnVmZmVyc0luY2x1ZGluZ1N1Ykxh
eWVycygpOwpAQCAtMTU0LDE4ICsxNTQsMTggQEAgcHVibGljOgogCiBwcml2YXRlOgogI2lmIFVT
RShHUkFQSElDU19TVVJGQUNFKQotICAgIGVudW0gUGVuZGluZ0NhbnZhc09wZXJhdGlvbiB7Cisg
ICAgZW51bSBQZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbiB7CiAgICAgICAgIE5vbmUgPSAw
eDAwLAotICAgICAgICBDcmVhdGVDYW52YXMgPSAweDAxLAotICAgICAgICBEZXN0cm95Q2FudmFz
ID0gMHgwMiwKLSAgICAgICAgU3luY0NhbnZhcyA9IDB4MDQsCi0gICAgICAgIENyZWF0ZUFuZFN5
bmNDYW52YXMgPSBDcmVhdGVDYW52YXMgfCBTeW5jQ2FudmFzLAotICAgICAgICBSZWNyZWF0ZUNh
bnZhcyA9IENyZWF0ZUFuZFN5bmNDYW52YXMgfCBEZXN0cm95Q2FudmFzCisgICAgICAgIENyZWF0
ZVBsYXRmb3JtTGF5ZXIgPSAweDAxLAorICAgICAgICBEZXN0cm95UGxhdGZvcm1MYXllciA9IDB4
MDIsCisgICAgICAgIFN5bmNQbGF0Zm9ybUxheWVyID0gMHgwNCwKKyAgICAgICAgQ3JlYXRlQW5k
U3luY1BsYXRmb3JtTGF5ZXIgPSBDcmVhdGVQbGF0Zm9ybUxheWVyIHwgU3luY1BsYXRmb3JtTGF5
ZXIsCisgICAgICAgIFJlY3JlYXRlUGxhdGZvcm1MYXllciA9IENyZWF0ZUFuZFN5bmNQbGF0Zm9y
bUxheWVyIHwgRGVzdHJveVBsYXRmb3JtTGF5ZXIKICAgICB9OwogCi0gICAgdm9pZCBzeW5jQ2Fu
dmFzKCk7Ci0gICAgdm9pZCBkZXN0cm95Q2FudmFzSWZOZWVkZWQoKTsKLSAgICB2b2lkIGNyZWF0
ZUNhbnZhc0lmTmVlZGVkKCk7CisgICAgdm9pZCBzeW5jUGxhdGZvcm1MYXllcigpOworICAgIHZv
aWQgZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRlZCgpOworICAgIHZvaWQgY3JlYXRlUGxhdGZv
cm1MYXllcklmTmVlZGVkKCk7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0Jv
cmRlcihjb25zdCBDb2xvciYsIGZsb2F0IHdpZHRoKSBvdmVycmlkZTsKQEAgLTIzMiw4ICsyMzIs
OCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wZW5kaW5nQ29udGVudHNTY2FsZUFkanVzdG1lbnQg
OiAxOwogICAgIGJvb2wgbV9wZW5kaW5nVmlzaWJsZVJlY3RBZGp1c3RtZW50IDogMTsKICNpZiBV
U0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICBib29sIG1faXNWYWxpZENhbnZhcyA6IDE7Ci0gICAg
dW5zaWduZWQgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIDogMzsKKyAgICBib29sIG1faXNWYWxp
ZFBsYXRmb3JtTGF5ZXIgOiAxOworICAgIHVuc2lnbmVkIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJP
cGVyYXRpb24gOiAzOwogI2VuZGlmCiAKICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGll
bnQqIG1fY29vcmRpbmF0b3I7CkBAIC0yNDQsMTAgKzI0NCwxMCBAQCBwcml2YXRlOgogICAgIE5h
dGl2ZUltYWdlUHRyIG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyOwogICAgIFJlZlB0cjxDb29y
ZGluYXRlZEltYWdlQmFja2luZz4gbV9jb29yZGluYXRlZEltYWdlQmFja2luZzsKIAotICAgIFBs
YXRmb3JtTGF5ZXIqIG1fY2FudmFzUGxhdGZvcm1MYXllcjsKKyAgICBQbGF0Zm9ybUxheWVyKiBt
X3BsYXRmb3JtTGF5ZXI7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgSW50U2l6ZSBt
X2NhbnZhc1NpemU7Ci0gICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4gbV9jYW52YXNUb2tlbjsKKyAg
ICBJbnRTaXplIG1fcGxhdGZvcm1MYXllclNpemU7CisgICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4g
bV9wbGF0Zm9ybUxheWVyVG9rZW47CiAjZW5kaWYKICAgICBUaW1lcjxDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI+IG1fYW5pbWF0aW9uU3RhcnRlZFRpbWVyOwogICAgIEdyYXBoaWNzTGF5ZXJBbmlt
YXRpb25zIG1fYW5pbWF0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKaW5kZXggZWU2M2M1NzMzZjU3MWEwMDNkYjFkYmQ1
ZTEwNGE4NDM4NDVlMWNlMS4uNDkxNDAzYjM0MjYyMzc2ZmE3NDI2ODNlMGM4NmRlNTI0N2E0MzFi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZS5jcHAKQEAgLTE2NSwzNyArMTY1LDM3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZpeGVkTGF5ZXJzKCkKIH0KIAogI2lmIFVTRShHUkFQ
SElDU19TVVJGQUNFKQotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNyZWF0ZUNhbnZh
c0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIsIGNvbnN0IENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllclN0YXRlJiBzdGF0ZSkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpj
cmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiBsYXllciwgY29u
c3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmIHN0YXRlKQogewotICAgIGlmICghc3Rh
dGUuY2FudmFzVG9rZW4uaXNWYWxpZCgpKQorICAgIGlmICghc3RhdGUucGxhdGZvcm1MYXllclRv
a2VuLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPFRleHR1cmVNYXBw
ZXJTdXJmYWNlQmFja2luZ1N0b3JlPiBjYW52YXNCYWNraW5nU3RvcmUoVGV4dHVyZU1hcHBlclN1
cmZhY2VCYWNraW5nU3RvcmU6OmNyZWF0ZSgpKTsKLSAgICBtX3N1cmZhY2VCYWNraW5nU3RvcmVz
LnNldChsYXllciwgY2FudmFzQmFja2luZ1N0b3JlKTsKLSAgICBjYW52YXNCYWNraW5nU3RvcmUt
PnNldEdyYXBoaWNzU3VyZmFjZShHcmFwaGljc1N1cmZhY2U6OmNyZWF0ZShzdGF0ZS5jYW52YXNT
aXplLCBzdGF0ZS5jYW52YXNTdXJmYWNlRmxhZ3MsIHN0YXRlLmNhbnZhc1Rva2VuKSk7Ci0gICAg
bGF5ZXItPnNldENvbnRlbnRzTGF5ZXIoY2FudmFzQmFja2luZ1N0b3JlLmdldCgpKTsKKyAgICBS
ZWZQdHI8VGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU+IHBsYXRmb3JtTGF5ZXJCYWNr
aW5nU3RvcmUoVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU6OmNyZWF0ZSgpKTsKKyAg
ICBtX3N1cmZhY2VCYWNraW5nU3RvcmVzLnNldChsYXllciwgcGxhdGZvcm1MYXllckJhY2tpbmdT
dG9yZSk7CisgICAgcGxhdGZvcm1MYXllckJhY2tpbmdTdG9yZS0+c2V0R3JhcGhpY3NTdXJmYWNl
KEdyYXBoaWNzU3VyZmFjZTo6Y3JlYXRlKHN0YXRlLnBsYXRmb3JtTGF5ZXJTaXplLCBzdGF0ZS5w
bGF0Zm9ybUxheWVyU3VyZmFjZUZsYWdzLCBzdGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4pKTsKKyAg
ICBsYXllci0+c2V0Q29udGVudHNMYXllcihwbGF0Zm9ybUxheWVyQmFja2luZ1N0b3JlLmdldCgp
KTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnN5bmNDYW52YXNJZk5lZWRl
ZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXJTdGF0ZSYgc3RhdGUpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c3luY1BsYXRm
b3JtTGF5ZXJJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCiB7CiAgICAgQVNTRVJUKG1fdGV4dHVyZU1h
cHBlcik7CiAKLSAgICBpZiAoc3RhdGUuY2FudmFzQ2hhbmdlZCkgewotICAgICAgICBkZXN0cm95
Q2FudmFzSWZOZWVkZWQobGF5ZXIsIHN0YXRlKTsKLSAgICAgICAgY3JlYXRlQ2FudmFzSWZOZWVk
ZWQobGF5ZXIsIHN0YXRlKTsKKyAgICBpZiAoc3RhdGUucGxhdGZvcm1MYXllckNoYW5nZWQpIHsK
KyAgICAgICAgZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRlZChsYXllciwgc3RhdGUpOworICAg
ICAgICBjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQobGF5ZXIsIHN0YXRlKTsKICAgICB9CiAK
LSAgICBpZiAoc3RhdGUuY2FudmFzU2hvdWxkU3dhcEJ1ZmZlcnMpIHsKKyAgICBpZiAoc3RhdGUu
cGxhdGZvcm1MYXllclNob3VsZFN3YXBCdWZmZXJzKSB7CiAgICAgICAgIEFTU0VSVChtX3N1cmZh
Y2VCYWNraW5nU3RvcmVzLmNvbnRhaW5zKGxheWVyKSk7CiAgICAgICAgIFN1cmZhY2VCYWNraW5n
U3RvcmVNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zdXJmYWNlQmFja2luZ1N0b3Jlcy5maW5kKGxheWVy
KTsKLSAgICAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlPiBjYW52
YXNCYWNraW5nU3RvcmUgPSBpdC0+dmFsdWU7Ci0gICAgICAgIGNhbnZhc0JhY2tpbmdTdG9yZS0+
c3dhcEJ1ZmZlcnNJZk5lZWRlZChzdGF0ZS5jYW52YXNGcm9udEJ1ZmZlcik7CisgICAgICAgIFJl
ZlB0cjxUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZT4gcGxhdGZvcm1MYXllckJhY2tp
bmdTdG9yZSA9IGl0LT52YWx1ZTsKKyAgICAgICAgcGxhdGZvcm1MYXllckJhY2tpbmdTdG9yZS0+
c3dhcEJ1ZmZlcnNJZk5lZWRlZChzdGF0ZS5wbGF0Zm9ybUxheWVyRnJvbnRCdWZmZXIpOwogICAg
IH0KIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmRlc3Ryb3lDYW52YXNJZk5l
ZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJTdGF0ZSYgc3RhdGUpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGVzdHJv
eVBsYXRmb3JtTGF5ZXJJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgaWYgKHN0YXRlLmNh
bnZhc1Rva2VuLmlzVmFsaWQoKSkKKyAgICBpZiAoc3RhdGUucGxhdGZvcm1MYXllclRva2VuLmlz
VmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zdXJmYWNlQmFja2luZ1N0b3Jlcy5y
ZW1vdmUobGF5ZXIpOwpAQCAtMzE5LDcgKzMxOSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lOjpzZXRMYXllclN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgQ29vcmRp
CiAjZW5kaWYKICAgICBzZXRMYXllckFuaW1hdGlvbnNJZk5lZWRlZChsYXllciwgbGF5ZXJTdGF0
ZSk7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgc3luY0NhbnZhc0lmTmVlZGVkKGxh
eWVyLCBsYXllclN0YXRlKTsKKyAgICBzeW5jUGxhdGZvcm1MYXllcklmTmVlZGVkKGxheWVyLCBs
YXllclN0YXRlKTsKICNlbmRpZgogICAgIHNldExheWVyUmVwYWludENvdW50SWZOZWVkZWQobGF5
ZXIsIGxheWVyU3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZS5oCmluZGV4IDc1YTQ3MmQ0ZDEyOWMzMzk3ODFlOTk2N2JjMWQ5
YWRjNGZhYTc4ZGIuLjY1ZTVhYTEwNWE5YTYyYjE1ZDY5MDJlYjhlOWE3NGVhYWEyYWQ0ZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
LmgKQEAgLTEwMCw5ICsxMDAsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgdm9pZCBzZXRMYXll
ckFuaW1hdGlvbnNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIHZv
aWQgY3JlYXRlQ2FudmFzSWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKLSAgICB2b2lkIHN5bmNDYW52YXNJZk5lZWRlZChU
ZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYp
OwotICAgIHZvaWQgZGVzdHJveUNhbnZhc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciosIGNv
bnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CisgICAgdm9pZCBjcmVhdGVQbGF0
Zm9ybUxheWVySWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyU3RhdGUmKTsKKyAgICB2b2lkIHN5bmNQbGF0Zm9ybUxheWVySWZOZWVkZWQo
VGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUm
KTsKKyAgICB2b2lkIGRlc3Ryb3lQbGF0Zm9ybUlmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllcios
IGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CiAjZW5kaWYKICAgICB2b2lk
IHNldExheWVyUmVwYWludENvdW50SWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3Qg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oCmluZGV4IGQ2YzBhYWU5ZjAwZmFj
YmM4MmU1Mjc5OTViMWEwOWZlOWI3NmExNGIuLjc3NTJhN2Y3NGZmZTg1YzQyNjg4YTgyM2ZkZjli
NzBhNDNiNWE5OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc1N0YXRlLmgKQEAgLTg5LDggKzg5LDggQEAgc3RydWN0IENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllclN0YXRlIHsKICAgICAgICAgICAgIGJvb2wgZmlsdGVyc0NoYW5nZWQ6IDE7CiAg
ICAgICAgICAgICBib29sIGNoaWxkcmVuQ2hhbmdlZDogMTsKICAgICAgICAgICAgIGJvb2wgcmVw
YWludENvdW50Q2hhbmdlZCA6IDE7Ci0gICAgICAgICAgICBib29sIGNhbnZhc0NoYW5nZWQ6IDE7
Ci0gICAgICAgICAgICBib29sIGNhbnZhc1Nob3VsZFN3YXBCdWZmZXJzOiAxOworICAgICAgICAg
ICAgYm9vbCBwbGF0Zm9ybUxheWVyQ2hhbmdlZDogMTsKKyAgICAgICAgICAgIGJvb2wgcGxhdGZv
cm1MYXllclNob3VsZFN3YXBCdWZmZXJzOiAxOwogICAgICAgICAgICAgYm9vbCBpc1Njcm9sbGFi
bGVDaGFuZ2VkOiAxOwogICAgICAgICAgICAgYm9vbCBjb21taXR0ZWRTY3JvbGxPZmZzZXRDaGFu
Z2VkOiAxOwogICAgICAgICAgICAgYm9vbCBjb250ZW50c1RpbGluZ0NoYW5nZWQ6IDE7CkBAIC0x
MzEsNyArMTMxLDcgQEAgc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlIHsKICAg
ICAgICAgLCBtYXNrKEludmFsaWRDb29yZGluYXRlZExheWVySUQpCiAgICAgICAgICwgaW1hZ2VJ
RChJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkKICNpZiBVU0UoR1JBUEhJQ1NfU1VS
RkFDRSkKLSAgICAgICAgLCBjYW52YXNGcm9udEJ1ZmZlcigwKQorICAgICAgICAsIHBsYXRmb3Jt
TGF5ZXJGcm9udEJ1ZmZlcigwKQogI2VuZGlmCiAgICAgewogICAgIH0KQEAgLTE2MywxMCArMTYz
LDEwIEBAIHN0cnVjdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSB7CiAgICAgVmVjdG9y
PFRpbGVVcGRhdGVJbmZvPiB0aWxlc1RvVXBkYXRlOwogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZB
Q0UpCi0gICAgSW50U2l6ZSBjYW52YXNTaXplOwotICAgIEdyYXBoaWNzU3VyZmFjZVRva2VuIGNh
bnZhc1Rva2VuOwotICAgIHVpbnQzMl90IGNhbnZhc0Zyb250QnVmZmVyOwotICAgIEdyYXBoaWNz
U3VyZmFjZTo6RmxhZ3MgY2FudmFzU3VyZmFjZUZsYWdzOworICAgIEludFNpemUgcGxhdGZvcm1M
YXllclNpemU7CisgICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4gcGxhdGZvcm1MYXllclRva2VuOwor
ICAgIHVpbnQzMl90IHBsYXRmb3JtTGF5ZXJGcm9udEJ1ZmZlcjsKKyAgICBHcmFwaGljc1N1cmZh
Y2U6OkZsYWdzIHBsYXRmb3JtTGF5ZXJTdXJmYWNlRmxhZ3M7CiAjZW5kaWYKIAogICAgIEludFNp
emUgY29tbWl0dGVkU2Nyb2xsT2Zmc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCAwZjcwMDE5ZWFkOGVjNGI1ZWRjZmI0ZDhlYjAy
M2FiZjA0MTRiYmNlLi4yZjUwNGUyYmIzMzlhMjFiOWRhZjYzMDUxNzhkNDVlNmEwM2UyZTgwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApA
QCAtNTg5LDIwICs1ODksMjAgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNvbmZp
Z3VyYXRpb24oKQogICAgICAgICB9CiAjZWxzZQogICAgICAgICBpZiAoIXBsdWdpblZpZXdCYXNl
LT5zaG91bGROb3RBZGRMYXllcigpKQotICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRD
b250ZW50c1RvTWVkaWEocGx1Z2luVmlld0Jhc2UtPnBsYXRmb3JtTGF5ZXIoKSk7CisgICAgICAg
ICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKHBsdWdpblZp
ZXdCYXNlLT5wbGF0Zm9ybUxheWVyKCksIEdyYXBoaWNzTGF5ZXI6OkNvbnRlbnRzTGF5ZXJGb3JQ
bHVnaW4pOwogI2VuZGlmCiAgICAgfQogI2lmIEVOQUJMRShWSURFTykKICAgICBlbHNlIGlmIChy
ZW5kZXJlcigpLmlzVmlkZW8oKSkgewogICAgICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVs
ZW1lbnQgPSB0b0hUTUxNZWRpYUVsZW1lbnQocmVuZGVyZXIoKS5lbGVtZW50KCkpOwotICAgICAg
ICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9NZWRpYShtZWRpYUVsZW1lbnQtPnBsYXRm
b3JtTGF5ZXIoKSk7CisgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNUb1BsYXRm
b3JtTGF5ZXIobWVkaWFFbGVtZW50LT5wbGF0Zm9ybUxheWVyKCksIEdyYXBoaWNzTGF5ZXI6OkNv
bnRlbnRzTGF5ZXJGb3JNZWRpYSk7CiAgICAgfQogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkdMKSB8
fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIGVsc2UgaWYgKHJlbmRlcmVyKCku
aXNDYW52YXMoKSAmJiBjYW52YXNDb21wb3NpdGluZ1N0cmF0ZWd5KHJlbmRlcmVyKCkpID09IENh
bnZhc0FzTGF5ZXJDb250ZW50cykgewogICAgICAgICBjb25zdCBIVE1MQ2FudmFzRWxlbWVudCog
Y2FudmFzID0gdG9IVE1MQ2FudmFzRWxlbWVudChyZW5kZXJlcigpLmVsZW1lbnQoKSk7CiAgICAg
ICAgIGlmIChDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gY2FudmFzLT5yZW5kZXJp
bmdDb250ZXh0KCkpCi0gICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9D
YW52YXMoY29udGV4dC0+cGxhdGZvcm1MYXllcigpKTsKKyAgICAgICAgICAgIG1fZ3JhcGhpY3NM
YXllci0+c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoY29udGV4dC0+cGxhdGZvcm1MYXllcigp
LCBHcmFwaGljc0xheWVyOjpDb250ZW50c0xheWVyRm9yQ2FudmFzKTsKICAgICAgICAgbGF5ZXJD
b25maWdDaGFuZ2VkID0gdHJ1ZTsKICAgICB9CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236715</attachid>
            <date>2014-08-16 07:35:02 -0700</date>
            <delta_ts>2014-08-16 08:14:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109658-20140816233454.patch</filename>
            <type>text/plain</type>
            <size>36954</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwZDAzNjViNGI0MmEx
OTljNjlkZWQzNGZiYjFmN2U0ZGZlOTJkZi4uZmIwZDQxODVlMzZkYzU3ZjU0NTcxNmI3MzIyYTMw
ZmJmZGNiODBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE0LTA4LTE2ICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgVW5pZnkgR3JhcGhpY3NM
YXllcjo6c2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk2NTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiBwYXRjaCBv
cmlnaW5hbGx5IHdyaXR0ZW4gYnkgVGltIEhvcnRvbi4KKyAgICAgICAgTWVyZ2Ugc2V0Q29udGVu
dHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzIGludG8gc2V0Q29udGVudHNUb1BsYXRm
b3JtTGF5ZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRqdXN0IGV4
cG9ydHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6Cisg
ICAgICAgIE1vdmUgQ29udGVudHNMYXllclB1cnBvc2UgZW51bSB1cCBvdXQgb2YgR3JhcGhpY3NM
YXllciBwbGF0Zm9ybSBpbXBsbWVudGF0aW9ucworICAgICAgICBhbmQgaW50byBHcmFwaGljc0xh
eWVyLCBzbyB3ZSBjYW4gdXNlIGl0IGFzIGEgcGFyYW1ldGVyLgorICAgICAgICBBZGQgQ29udGVu
dHNMYXllckZvclBsdWdpbi4KKworICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6c2V0
Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICBSZW1vdmUgc2V0Q29udGVudHNUb01l
ZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzLCBhbmQgcmVwbGFjZSB0aGVtCisgICAgICAgIHdp
dGggc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIsIHdoaWNoIHByZXZpb3VzbHkgZXhpc3RlZCBi
dXQgd2FzIHVudXNlZAorICAgICAgICBhbmQgc2ltcGx5IGNhbGxlZCBzZXRDb250ZW50c1RvTWVk
aWEuCisgICAgICAgIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyIHRha2VzIGEgQ29udGVudHNM
YXllclB1cnBvc2UsIHByaW1hcmlseQorICAgICAgICBzbyB0aGF0IEdyYXBoaWNzTGF5ZXJDQSBj
YW4ga25vdyB3aGV0aGVyIGl0IG5lZWRzIHRvIHNldE5lZWRzRGlzcGxheQorICAgICAgICB0aGUg
bGF5ZXIgd2hlbiBwYXJlbnRpbmcgaXQgKGNhbnZhcykgb3Igbm90IChldmVyeXRoaW5nIGVsc2Up
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1BsYXRmb3Jt
TGF5ZXIpOgorICAgICAgICBSZW5hbWUgZnVuY3Rpb24gc2V0Q29udGVudHNUb01lZGlhIC0+IHNl
dENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyLgorICAgICAgICBSZW5hbWUgYXJndW1lbnQgbWVkaWFM
YXllciAtPiBwbGF0Zm9ybUxheWVyLgorICAgICAgICBTdG9yZSB0aGUgcGFzc2VkLWluIENvbnRl
bnRzTGF5ZXJQdXJwb3NlLgorICAgICAgICBSZW1vdmUgc2V0Q29udGVudHNUb0NhbnZhcy4KKwor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZv
cmVTdWJsYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVD
b250ZW50c1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICBSZW1vdmUgdXBkYXRlQ29udGVudHNNZWRp
YUxheWVyIGFuZCB1cGRhdGVDb250ZW50c0NhbnZhcyBsYXllciwKKyAgICAgICAgYWRkIHVwZGF0
ZUNvbnRlbnRzUGxhdGZvcm1MYXllci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICBEbyB0aGUgc2FtZSB0byB0aGUgTGF5ZXJDaGFu
Z2UgZW51bS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb1Bs
YXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzeW5jUGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmRlc3Ryb3lQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBv
c2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgRm9sZCB0aGVzZSB0b2dldGhl
ciBpbiB0aGUgc2FtZSB3YXkgYXMgZWxzZXdoZXJlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAg
ICAgICBEbyB0aGUgc2FtZSB0byB0aGUgTGF5ZXJDaGFuZ2UgZW51bS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjcmVh
dGVQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lOjpzeW5jUGxhdGZvcm1MYXllcklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVy
U3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZTo6Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyU3RhdGUpOgorICAgICAgICBSZW5hbWUgY2FudmFzTGF5ZXIgLT4gcGxhdGZvcm1MYXll
ci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9uKToKKyAg
ICAgICAgVXNlIHRoZSBuZXcgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIsIHBhc3NpbmcgaW4g
dGhlIHJlbGV2YW50IENvbnRlbnRzTGF5ZXJQdXJwb3NlLgorCiAyMDE0LTA4LTE1ICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90IHVzZSBGbG9hdFJlY3Q6
OmluZmluaXRlUmVjdCgpIHRvIGZsYWcgZnVsbCByZXBhaW50cy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
aW5kZXggNTI1ZTM1NGIwM2YyZDZmZDZlOGU1MmU0ZDY1YWEwNWI1OTFjZjU0NS4uNmRhOGVjYzU4
YmNlZTI2MWZiOGJlMGI1YWQxODA2MmY3YmQ2MWY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAg
LTU3OCwxMiArNTc4LDEwIEBAIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTdzZXRDdXN0
b21CZWhhdmlvckVOU18xM0dyYXBoaWNzTGF5ZXIxNEN1c3RvbUJlaGF2CiBfX1pON1dlYkNvcmUx
NUdyYXBoaWNzTGF5ZXJDQTE3c3VzcGVuZEFuaW1hdGlvbnNFZAogX19aTjdXZWJDb3JlMTVHcmFw
aGljc0xheWVyQ0ExOHNldEJhY2tncm91bmRDb2xvckVSS05TXzVDb2xvckUKIF9fWk43V2ViQ29y
ZTE1R3JhcGhpY3NMYXllckNBMThzZXRDb250ZW50c1RvSW1hZ2VFUE5TXzVJbWFnZUUKLV9fWk43
V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRDb250ZW50c1RvTWVkaWFFUDdDQUxheWVyCiBf
X1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE4c2V0Q29udGVudHNWaXNpYmxlRWIKIF9fWk43
V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRPcGFjaXR5SW50ZXJuYWxFZgogX19aTjdXZWJD
b3JlMTVHcmFwaGljc0xheWVyQ0ExOHNldFJlcGxpY2F0ZWRMYXllckVQTlNfMTNHcmFwaGljc0xh
eWVyRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOHNldFNob3dEZWJ1Z0JvcmRlckVi
Ci1fX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE5c2V0Q29udGVudHNUb0NhbnZhc0VQN0NB
TGF5ZXIKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTlzZXRDdXN0b21BcHBlYXJhbmNl
RU5TXzEzR3JhcGhpY3NMYXllcjE2Q3VzdG9tQXBwZWFyYW5jZUUKIF9fWk43V2ViQ29yZTE1R3Jh
cGhpY3NMYXllckNBMjBzZXRDaGlsZHJlblRyYW5zZm9ybUVSS05TXzIwVHJhbnNmb3JtYXRpb25N
YXRyaXhFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTIwc2V0UmVwbGljYXRlZEJ5TGF5
ZXJFUE5TXzEzR3JhcGhpY3NMYXllckUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA0Nzg5MWI4NmZlNzgyYjYyOGM5MTVhMjFmZDMz
Y2NmYWY1ZjY2YjM5Li42ZDg4ZDg0NWM0OWUzMDA2Zjk3ZjAwMjE1YmQxZWQyMmNmOWFlZWU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5o
CkBAIC0yNTEsNiArMjUxLDE1IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhl
IGNoaWxkIGxpc3QgY2hhbmdlZC4KICAgICB2aXJ0dWFsIGJvb2wgc2V0Q2hpbGRyZW4oY29uc3Qg
VmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYpOwogCisgICAgZW51bSBDb250ZW50c0xheWVyUHVycG9z
ZSB7CisgICAgICAgIE5vQ29udGVudHNMYXllciA9IDAsCisgICAgICAgIENvbnRlbnRzTGF5ZXJG
b3JJbWFnZSwKKyAgICAgICAgQ29udGVudHNMYXllckZvck1lZGlhLAorICAgICAgICBDb250ZW50
c0xheWVyRm9yQ2FudmFzLAorICAgICAgICBDb250ZW50c0xheWVyRm9yQmFja2dyb3VuZENvbG9y
LAorICAgICAgICBDb250ZW50c0xheWVyRm9yUGx1Z2luCisgICAgfTsKKwogICAgIC8vIEFkZCBj
aGlsZCBsYXllcnMuIElmIHRoZSBjaGlsZCBpcyBhbHJlYWR5IHBhcmVudGVkLCBpdCB3aWxsIGJl
IHJlbW92ZWQgZnJvbSBpdHMgb2xkIHBhcmVudC4KICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQo
R3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZEF0SW5kZXgoR3JhcGhp
Y3NMYXllciosIGludCBpbmRleCk7CkBAIC00MDUsMTYgKzQxNCwxMiBAQCBwdWJsaWM6CiAgICAg
Ly8gTGF5ZXIgY29udGVudHMKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKElt
YWdlKikgeyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZERpcmVjdGx5Q29tcG9zaXRlSW1hZ2Uo
SW1hZ2UqKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRl
bnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKikgeyB9IC8vIHZpZGVvIG9yIHBsdWctaW4KICNpZiBQ
TEFURk9STShJT1MpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBjb250ZW50c0xheWVyRm9y
TWVkaWEoKSBjb25zdCB7IHJldHVybiAwOyB9CiAjZW5kaWYKICAgICAvLyBQYXNzIGFuIGludmFs
aWQgY29sb3IgdG8gcmVtb3ZlIHRoZSBjb250ZW50cyBsYXllci4KICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKikgeyB9Ci0gICAgLy8gRklYTUU6
IHdlYmtpdC5vcmcvYi8xMDk2NTgKLSAgICAvLyBTaG91bGQgdW5pZnkgc2V0Q29udGVudHNUb01l
ZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRz
VG9QbGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqIGxheWVyKSB7IHNldENvbnRlbnRzVG9NZWRp
YShsYXllcik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIo
UGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQdXJwb3NlKSB7IH0KICAgICB2aXJ0dWFsIGJv
b2wgdXNlc0NvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgLy8g
Q2FsbGJhY2sgZnJvbSB0aGUgdW5kZXJseWluZyBncmFwaGljcyBzeXN0ZW0gdG8gZHJhdyBsYXll
ciBjb250ZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDg5NmI2ZWQyZjZlNjJhMmVlOTNlYjllZDky
MGRlZjA0ZTVjYjA2NGUuLjkxOWI5OGEwMDY5MDQwZGJjMjE2NGJmNzc1MGJlMjMyZmQ1YTdjOTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNz
TGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmNwcApAQCAtOTE4LDI0ICs5MTgsMjQgQEAgdm9pZCBHcmFwaGljc0xheWVy
Q0E6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCiAgICAgbm90ZUxheWVyUHJvcGVy
dHlDaGFuZ2VkKENvbnRlbnRzSW1hZ2VDaGFuZ2VkKTsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVy
Q0E6OnNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKiBtZWRpYUxheWVyKQordm9pZCBH
cmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIq
IHBsYXRmb3JtTGF5ZXIsIENvbnRlbnRzTGF5ZXJQdXJwb3NlIHB1cnBvc2UpCiB7Ci0gICAgaWYg
KG1fY29udGVudHNMYXllciAmJiBtZWRpYUxheWVyID09IG1fY29udGVudHNMYXllci0+cGxhdGZv
cm1MYXllcigpKQorICAgIGlmIChtX2NvbnRlbnRzTGF5ZXIgJiYgcGxhdGZvcm1MYXllciA9PSBt
X2NvbnRlbnRzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAKLSAgICAvLyBGSVhNRTogVGhlIHBhc3NlZCBpbiBsYXllciBtaWdodCBiZSBhIHJhdyBsYXll
ciBvciBhbiBleHRlcm5hbGx5IGNyZWF0ZWQgCisKKyAgICAvLyBGSVhNRTogVGhlIHBhc3NlZCBp
biBsYXllciBtaWdodCBiZSBhIHJhdyBsYXllciBvciBhbiBleHRlcm5hbGx5IGNyZWF0ZWQKICAg
ICAvLyBQbGF0Zm9ybUNBTGF5ZXIuIFRvIGRldGVybWluZSB0aGlzIHdlIGF0dGVtcHQgdG8gZ2V0
IHRoZQogICAgIC8vIFBsYXRmb3JtQ0FMYXllciBwb2ludGVyLiBJZiB0aGlzIHJldHVybnMgYSBu
dWxsIHBvaW50ZXIgd2UgYXNzdW1lIGl0J3MKICAgICAvLyByYXcuIFRoaXMgdGVzdCBtaWdodCBi
ZSBpbnZhbGlkIGlmIHRoZSByYXcgbGF5ZXIgaXMsIGZvciBpbnN0YW5jZSwgdGhlCiAgICAgLy8g
UGxhdGZvcm1DQUxheWVyIGlzIHVzaW5nIGEgdXNlciBkYXRhIHBvaW50ZXIgaW4gdGhlIHJhdyBs
YXllciwgYW5kCiAgICAgLy8gdGhlIGNyZWF0b3Igb2YgdGhlIHJhdyBsYXllciBpcyB1c2luZyBp
dCBmb3Igc29tZSBvdGhlciBwdXJwb3NlLgogICAgIC8vIEZvciBub3cgd2UgZG9uJ3Qgc3VwcG9y
dCBzdWNoIGEgY2FzZS4KLSAgICBQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRmb3JtQ0FMYXllciA9IFBs
YXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKG1lZGlhTGF5ZXIpOwotICAgIG1fY29udGVu
dHNMYXllciA9IG1lZGlhTGF5ZXIgPyAocGxhdGZvcm1DQUxheWVyID8gcGxhdGZvcm1DQUxheWVy
IDogY3JlYXRlUGxhdGZvcm1DQUxheWVyKG1lZGlhTGF5ZXIsIHRoaXMpKSA6IDA7Ci0gICAgbV9j
b250ZW50c0xheWVyUHVycG9zZSA9IG1lZGlhTGF5ZXIgPyBDb250ZW50c0xheWVyRm9yTWVkaWEg
OiBOb0NvbnRlbnRzTGF5ZXI7CisgICAgUGxhdGZvcm1DQUxheWVyKiBwbGF0Zm9ybUNBTGF5ZXIg
PSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcihwbGF0Zm9ybUxheWVyKTsKKyAgICBt
X2NvbnRlbnRzTGF5ZXIgPSBwbGF0Zm9ybUxheWVyID8gKHBsYXRmb3JtQ0FMYXllciA/IHBsYXRm
b3JtQ0FMYXllciA6IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihwbGF0Zm9ybUxheWVyLCB0aGlzKSkg
OiAwOworICAgIG1fY29udGVudHNMYXllclB1cnBvc2UgPSBwbGF0Zm9ybUxheWVyID8gcHVycG9z
ZSA6IE5vQ29udGVudHNMYXllcjsKIAogICAgIG5vdGVTdWJsYXllcnNDaGFuZ2VkKCk7Ci0gICAg
bm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzTWVkaWFMYXllckNoYW5nZWQpOworICAg
IG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50c1BsYXRmb3JtTGF5ZXJDaGFuZ2VkKTsK
IH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTk0NSwyMCArOTQ1LDYgQEAgUGxhdGZvcm1MYXll
ciogR3JhcGhpY3NMYXllckNBOjpjb250ZW50c0xheWVyRm9yTWVkaWEoKSBjb25zdAogfQogI2Vu
ZGlmCiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvQ2FudmFzKFBsYXRmb3Jt
TGF5ZXIqIGNhbnZhc0xheWVyKQotewotICAgIGlmIChtX2NvbnRlbnRzTGF5ZXIgJiYgY2FudmFz
TGF5ZXIgPT0gbV9jb250ZW50c0xheWVyLT5wbGF0Zm9ybUxheWVyKCkpCi0gICAgICAgIHJldHVy
bjsKLSAgICAKLSAgICAvLyBDcmVhdGUgdGhlIFBsYXRmb3JtQ0FMYXllciB0byB3cmFwIHRoZSBp
bmNvbWluZyBsYXllcgotICAgIG1fY29udGVudHNMYXllciA9IGNhbnZhc0xheWVyID8gY3JlYXRl
UGxhdGZvcm1DQUxheWVyKGNhbnZhc0xheWVyLCB0aGlzKSA6IDA7Ci0gICAgCi0gICAgbV9jb250
ZW50c0xheWVyUHVycG9zZSA9IGNhbnZhc0xheWVyID8gQ29udGVudHNMYXllckZvckNhbnZhcyA6
IE5vQ29udGVudHNMYXllcjsKLQotICAgIG5vdGVTdWJsYXllcnNDaGFuZ2VkKCk7Ci0gICAgbm90
ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzQ2FudmFzTGF5ZXJDaGFuZ2VkKTsKLX0KLSAg
ICAKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpsYXllckRpZERpc3BsYXkoUGxhdGZvcm1DQUxheWVy
KiBsYXllcikKIHsKICAgICBMYXllck1hcCogbGF5ZXJDbG9uZU1hcDsKQEAgLTEzMDMsMTEgKzEy
ODksOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3Vi
bGF5ZXJzKENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZQogICAgIGlmIChtX3VuY29tbWl0dGVkQ2hh
bmdlcyAmIENvbnRlbnRzSW1hZ2VDaGFuZ2VkKSAvLyBOZWVkcyB0byBoYXBwZW4gYmVmb3JlIENo
aWxkcmVuQ2hhbmdlZAogICAgICAgICB1cGRhdGVDb250ZW50c0ltYWdlKCk7CiAgICAgICAgIAot
ICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzTWVkaWFMYXllckNoYW5nZWQp
IC8vIE5lZWRzIHRvIGhhcHBlbiBiZWZvcmUgQ2hpbGRyZW5DaGFuZ2VkCi0gICAgICAgIHVwZGF0
ZUNvbnRlbnRzTWVkaWFMYXllcigpOwotICAgIAotICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdl
cyAmIENvbnRlbnRzQ2FudmFzTGF5ZXJDaGFuZ2VkKSAvLyBOZWVkcyB0byBoYXBwZW4gYmVmb3Jl
IENoaWxkcmVuQ2hhbmdlZAotICAgICAgICB1cGRhdGVDb250ZW50c0NhbnZhc0xheWVyKCk7Cisg
ICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ29udGVudHNQbGF0Zm9ybUxheWVyQ2hhbmdl
ZCkgLy8gTmVlZHMgdG8gaGFwcGVuIGJlZm9yZSBDaGlsZHJlbkNoYW5nZWQKKyAgICAgICAgdXBk
YXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKCk7CiAKICAgICBpZiAobV91bmNvbW1pdHRlZENoYW5n
ZXMgJiBDb250ZW50c0NvbG9yTGF5ZXJDaGFuZ2VkKSAvLyBOZWVkcyB0byBoYXBwZW4gYmVmb3Jl
IENoaWxkcmVuQ2hhbmdlZAogICAgICAgICB1cGRhdGVDb250ZW50c0NvbG9yTGF5ZXIoKTsKQEAg
LTE5MzYsMjQgKzE5MTksMTcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRz
SW1hZ2UoKQogICAgIH0KIH0KIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRz
TWVkaWFMYXllcigpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNQbGF0Zm9y
bUxheWVyKCkKIHsKLSAgICBpZiAoIW1fY29udGVudHNMYXllciB8fCBtX2NvbnRlbnRzTGF5ZXJQ
dXJwb3NlICE9IENvbnRlbnRzTGF5ZXJGb3JNZWRpYSkKKyAgICBpZiAoIW1fY29udGVudHNMYXll
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVmlkZW8gbGF5ZXIgd2FzIHNldCBhcyBtX2Nv
bnRlbnRzTGF5ZXIsIGFuZCB3aWxsIGdldCBwYXJlbnRlZCBpbiB1cGRhdGVTdWJsYXllckxpc3Qo
KS4KKyAgICAvLyBQbGF0Zm9ybSBsYXllciB3YXMgc2V0IGFzIG1fY29udGVudHNMYXllciwgYW5k
IHdpbGwgZ2V0IHBhcmVudGVkIGluIHVwZGF0ZVN1YmxheWVyTGlzdCgpLgogICAgIHNldHVwQ29u
dGVudHNMYXllcihtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkpOwotICAgIHVwZGF0ZUNvbnRlbnRzUmVj
dHMoKTsKLX0KIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzQ2FudmFzTGF5
ZXIoKQotewotICAgIGlmICghbV9jb250ZW50c0xheWVyIHx8IG1fY29udGVudHNMYXllclB1cnBv
c2UgIT0gQ29udGVudHNMYXllckZvckNhbnZhcykKLSAgICAgICAgcmV0dXJuOworICAgIGlmICht
X2NvbnRlbnRzTGF5ZXJQdXJwb3NlID09IENvbnRlbnRzTGF5ZXJGb3JDYW52YXMpCisgICAgICAg
IG1fY29udGVudHNMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CiAKLSAgICAvLyBDYW52YXNMYXll
ciB3YXMgc2V0IGFzIG1fY29udGVudHNMYXllciwgYW5kIHdpbGwgZ2V0IHBhcmVudGVkIGluIHVw
ZGF0ZVN1YmxheWVyTGlzdCgpLgotICAgIHNldHVwQ29udGVudHNMYXllcihtX2NvbnRlbnRzTGF5
ZXIuZ2V0KCkpOwotICAgIG1fY29udGVudHNMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CiAgICAg
dXBkYXRlQ29udGVudHNSZWN0cygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IGRiM2QyZDcyOTAxNjVh
MmE5YzdiMGZlNDUyNGY5ZDRmMzFhY2JlNTEuLmY2ZTY1ZGJhZGM4Y2QyNzliMmIwY2Y2OTE3YzJh
NmU1Mjk4ZjJjNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0xMjYsMTEgKzEyNiwxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbihjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5h
bWUpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFn
ZSopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvTWVkaWEoUGxhdGZv
cm1MYXllciopIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIFBsYXRm
b3JtTGF5ZXIqIGNvbnRlbnRzTGF5ZXJGb3JNZWRpYSgpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlm
Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciopIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0
Zm9ybUxheWVyKiwgQ29udGVudHNMYXllclB1cnBvc2UpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYpIG92ZXJyaWRlOwogCiAgICAgdmlydHVh
bCBib29sIHVzZXNDb250ZW50c0xheWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jb250
ZW50c0xheWVyUHVycG9zZSAhPSBOb0NvbnRlbnRzTGF5ZXI7IH0KQEAgLTM3Myw4ICszNzIsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQmFja2dyb3VuZENvbG9yKCk7CiAKICAgICB2b2lk
IHVwZGF0ZUNvbnRlbnRzSW1hZ2UoKTsKLSAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzTWVkaWFMYXll
cigpOwotICAgIHZvaWQgdXBkYXRlQ29udGVudHNDYW52YXNMYXllcigpOworICAgIHZvaWQgdXBk
YXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c0NvbG9y
TGF5ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzUmVjdHMoKTsKICAgICB2b2lkIHVwZGF0
ZU1hc2tMYXllcigpOwpAQCAtNDI4LDI0ICs0MjYsMjMgQEAgcHJpdmF0ZToKICAgICAgICAgQW5p
bWF0aW9uQ2hhbmdlZCA9IDFMTFUgPDwgMTMsCiAgICAgICAgIERpcnR5UmVjdHNDaGFuZ2VkID0g
MUxMVSA8PCAxNCwKICAgICAgICAgQ29udGVudHNJbWFnZUNoYW5nZWQgPSAxTExVIDw8IDE1LAot
ICAgICAgICBDb250ZW50c01lZGlhTGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAxNiwKLSAgICAgICAg
Q29udGVudHNDYW52YXNMYXllckNoYW5nZWQgPSAxTExVIDw8IDE3LAotICAgICAgICBDb250ZW50
c0NvbG9yTGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAxOCwKLSAgICAgICAgQ29udGVudHNSZWN0c0No
YW5nZWQgPSAxTExVIDw8IDE5LAotICAgICAgICBNYXNrTGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAy
MCwKLSAgICAgICAgUmVwbGljYXRlZExheWVyQ2hhbmdlZCA9IDFMTFUgPDwgMjEsCi0gICAgICAg
IENvbnRlbnRzTmVlZHNEaXNwbGF5ID0gMUxMVSA8PCAyMiwKLSAgICAgICAgQWNjZWxlcmF0ZXNE
cmF3aW5nQ2hhbmdlZCA9IDFMTFUgPDwgMjMsCi0gICAgICAgIENvbnRlbnRzU2NhbGVDaGFuZ2Vk
ID0gMUxMVSA8PCAyNCwKLSAgICAgICAgQ29udGVudHNWaXNpYmlsaXR5Q2hhbmdlZCA9IDFMTFUg
PDwgMjUsCi0gICAgICAgIFZpc2libGVSZWN0Q2hhbmdlZCA9IDFMTFUgPDwgMjYsCi0gICAgICAg
IEZpbHRlcnNDaGFuZ2VkID0gMUxMVSA8PCAyNywKLSAgICAgICAgVGlsaW5nQXJlYUNoYW5nZWQg
PSAxTExVIDw8IDI4LAotICAgICAgICBUaWxlc0FkZGVkID0gMUxMVSA8IDI5LAotICAgICAgICBE
ZWJ1Z0luZGljYXRvcnNDaGFuZ2VkID0gMUxMVSA8PCAzMCwKLSAgICAgICAgQ3VzdG9tQXBwZWFy
YW5jZUNoYW5nZWQgPSAxTExVIDw8IDMxLAotICAgICAgICBDdXN0b21CZWhhdmlvckNoYW5nZWQg
PSAxTExVIDw8IDMyLAotICAgICAgICBCbGVuZE1vZGVDaGFuZ2VkID0gMUxMVSA8PCAzMworICAg
ICAgICBDb250ZW50c1BsYXRmb3JtTGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAxNiwKKyAgICAgICAg
Q29udGVudHNDb2xvckxheWVyQ2hhbmdlZCA9IDFMTFUgPDwgMTcsCisgICAgICAgIENvbnRlbnRz
UmVjdHNDaGFuZ2VkID0gMUxMVSA8PCAxOCwKKyAgICAgICAgTWFza0xheWVyQ2hhbmdlZCA9IDFM
TFUgPDwgMTksCisgICAgICAgIFJlcGxpY2F0ZWRMYXllckNoYW5nZWQgPSAxTExVIDw8IDIwLAor
ICAgICAgICBDb250ZW50c05lZWRzRGlzcGxheSA9IDFMTFUgPDwgMjEsCisgICAgICAgIEFjY2Vs
ZXJhdGVzRHJhd2luZ0NoYW5nZWQgPSAxTExVIDw8IDIyLAorICAgICAgICBDb250ZW50c1NjYWxl
Q2hhbmdlZCA9IDFMTFUgPDwgMjMsCisgICAgICAgIENvbnRlbnRzVmlzaWJpbGl0eUNoYW5nZWQg
PSAxTExVIDw8IDI0LAorICAgICAgICBWaXNpYmxlUmVjdENoYW5nZWQgPSAxTExVIDw8IDI1LAor
ICAgICAgICBGaWx0ZXJzQ2hhbmdlZCA9IDFMTFUgPDwgMjYsCisgICAgICAgIFRpbGluZ0FyZWFD
aGFuZ2VkID0gMUxMVSA8PCAyNywKKyAgICAgICAgVGlsZXNBZGRlZCA9IDFMTFUgPCAyOCwKKyAg
ICAgICAgRGVidWdJbmRpY2F0b3JzQ2hhbmdlZCA9IDFMTFUgPDwgMjksCisgICAgICAgIEN1c3Rv
bUFwcGVhcmFuY2VDaGFuZ2VkID0gMUxMVSA8PCAzMCwKKyAgICAgICAgQ3VzdG9tQmVoYXZpb3JD
aGFuZ2VkID0gMUxMVSA8PCAzMSwKKyAgICAgICAgQmxlbmRNb2RlQ2hhbmdlZCA9IDFMTFUgPDwg
MzIKICAgICB9OwogICAgIHR5cGVkZWYgdWludDY0X3QgTGF5ZXJDaGFuZ2VGbGFnczsKICAgICBl
bnVtIFNjaGVkdWxlRmx1c2hPck5vdCB7IFNjaGVkdWxlRmx1c2gsIERvbnRTY2hlZHVsZUZsdXNo
IH07CkBAIC00NzIsMTQgKzQ2OSw2IEBAIHByaXZhdGU6CiAgICAgRmxvYXRSZWN0IG1fdmlzaWJs
ZVJlY3Q7CiAgICAgRmxvYXRTaXplIG1fc2l6ZUF0TGFzdFZpc2libGVSZWN0VXBkYXRlOwogICAg
IAotICAgIGVudW0gQ29udGVudHNMYXllclB1cnBvc2UgewotICAgICAgICBOb0NvbnRlbnRzTGF5
ZXIgPSAwLAotICAgICAgICBDb250ZW50c0xheWVyRm9ySW1hZ2UsCi0gICAgICAgIENvbnRlbnRz
TGF5ZXJGb3JNZWRpYSwKLSAgICAgICAgQ29udGVudHNMYXllckZvckNhbnZhcywKLSAgICAgICAg
Q29udGVudHNMYXllckZvckJhY2tncm91bmRDb2xvcgotICAgIH07Ci0gICAgCiAgICAgQ29udGVu
dHNMYXllclB1cnBvc2UgbV9jb250ZW50c0xheWVyUHVycG9zZTsKICAgICBib29sIG1faXNQYWdl
VGlsZWRCYWNraW5nTGF5ZXIgOiAxOwogICAgIGJvb2wgbV9uZWVkc0Z1bGxSZXBhaW50IDogMTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCmluZGV4IDE3NGNjNTQ5
OGY1Y2ZkOWNhODQzNTllNDdkZjViNzQ4YTkwMTJlMjAuLmI4M2YzYmM2NGQzNTM4MDVlNjBhNjg3
ZTU3Njk4NWNkYjhhN2IyYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyLmNwcApAQCAtMzY4LDE3ICszNjgsMTcgQEAgdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkKICAgICAgICAgbV9jb21wb3Np
dGVkSW1hZ2UgPSAwOwogICAgIH0KIAotICAgIHNldENvbnRlbnRzVG9NZWRpYShtX2NvbXBvc2l0
ZWRJbWFnZS5nZXQoKSk7CisgICAgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIobV9jb21wb3Np
dGVkSW1hZ2UuZ2V0KCksIENvbnRlbnRzTGF5ZXJGb3JJbWFnZSk7CiAgICAgbm90aWZ5Q2hhbmdl
KENvbnRlbnRDaGFuZ2UpOwogICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9JbWFnZShp
bWFnZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnNldENvbnRlbnRz
VG9NZWRpYShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllciogbWVkaWEpCit2b2lkIEdyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihUZXh0dXJlTWFw
cGVyUGxhdGZvcm1MYXllciogbWVkaWEsIENvbnRlbnRzTGF5ZXJQdXJwb3NlIHB1cnBvc2UpCiB7
CiAgICAgaWYgKG1lZGlhID09IG1fY29udGVudHNMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb01lZGlhKG1lZGlhKTsKKyAgICBHcmFwaGlj
c0xheWVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihtZWRpYSwgcHVycG9zZSk7CiAgICAg
bm90aWZ5Q2hhbmdlKENvbnRlbnRDaGFuZ2UpOwogCiAgICAgaWYgKG1fY29udGVudHNMYXllcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKaW5kZXggY2FjZWNiMzc2MzI5
YzIwNDU1YWRhMWVhMzI4N2Q5NWFjNTU0MjI4Mi4uODJmOGNhYjVlOWRlNDFiZWI2M2EyM2RiOTA5
OTU5M2Q1MmNkODkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgK
QEAgLTY4LDggKzY4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1Rv
SW1hZ2UoSW1hZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1NvbGlkQ29sb3Io
Y29uc3QgQ29sb3ImKTsKICAgICBDb2xvciBzb2xpZENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9z
b2xpZENvbG9yOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9y
bUxheWVyKik7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1M
YXllciogY2FudmFzKSB7IHNldENvbnRlbnRzVG9NZWRpYShjYW52YXMpOyB9CisgICAgdmlydHVh
bCB2b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqLCBDb250ZW50
c0xheWVyUHVycG9zZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcihib29s
KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3JkZXIoY29uc3QgQ29sb3Im
LCBmbG9hdCB3aWR0aCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dSZXBhaW50
Q291bnRlcihib29sKSBvdmVycmlkZTsKQEAgLTExMiw3ICsxMTEsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgcHJlcGFyZUJhY2tpbmdTdG9yZUlmTmVlZGVkKCk7CiAgICAgYm9vbCBzaG91bGRIYXZl
QmFja2luZ1N0b3JlKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1MYXllcldp
bGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlIHsgc2V0Q29udGVudHNUb01lZGlhKDApOyB9CisgICAg
dmlydHVhbCB2b2lkIHBsYXRmb3JtTGF5ZXJXaWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZSB7IHNl
dENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKDAsIE5vQ29udGVudHNMYXllcik7IH0KICAgICB2aXJ0
dWFsIHZvaWQgc2V0UGxhdGZvcm1MYXllck5lZWRzRGlzcGxheSgpIG92ZXJyaWRlIHsgc2V0Q29u
dGVudHNOZWVkc0Rpc3BsYXkoKTsgfQogCiAgICAgLy8gVGhpcyBzZXQgb2YgZmxhZ3MgaGVscCB1
cyBkZWZlciB3aGljaCBwcm9wZXJ0aWVzIG9mIHRoZSBsYXllciBoYXZlIGJlZW4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5k
ZXggZjY0ZmVmMjg5YzdhZTU4OWVlMWExNTJlZWEzM2Q2OTYwMzQ3YWQ2Zi4uNTZlNGI4ODk3NjA2
NjJmMmYxZTdhOTA3ZDQxZDM0ZjEwMjA1MjgxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTEyMSwxMiArMTIxLDEy
IEBAIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKEdy
YXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKICAgICAsIG1fcGVuZGluZ0NvbnRlbnRzU2NhbGVB
ZGp1c3RtZW50KGZhbHNlKQogICAgICwgbV9wZW5kaW5nVmlzaWJsZVJlY3RBZGp1c3RtZW50KGZh
bHNlKQogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgICwgbV9pc1ZhbGlkQ2FudmFzKGZh
bHNlKQotICAgICwgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uKE5vbmUpCisgICAgLCBtX2lzVmFs
aWRQbGF0Zm9ybUxheWVyKGZhbHNlKQorICAgICwgbV9wZW5kaW5nUGxhdGZvcm1MYXllck9wZXJh
dGlvbihOb25lKQogI2VuZGlmCiAgICAgLCBtX2Nvb3JkaW5hdG9yKDApCiAgICAgLCBtX2NvbXBv
c2l0ZWROYXRpdmVJbWFnZVB0cigwKQotICAgICwgbV9jYW52YXNQbGF0Zm9ybUxheWVyKDApCisg
ICAgLCBtX3BsYXRmb3JtTGF5ZXIoMCkKICAgICAsIG1fYW5pbWF0aW9uU3RhcnRlZFRpbWVyKHRo
aXMsICZDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvblN0YXJ0ZWRUaW1lckZpcmVk
KQogICAgICwgbV9zY3JvbGxhYmxlQXJlYSgwKQogewpAQCAtMzgzLDM2ICszODMsMzcgQEAgYm9v
bCBHcmFwaGljc0xheWVyOjpzdXBwb3J0c0NvbnRlbnRzVGlsaW5nKCkKIHZvaWQgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c05lZWRzRGlzcGxheSgpCiB7CiAjaWYgVVNFKEdS
QVBISUNTX1NVUkZBQ0UpCi0gICAgaWYgKG1fY2FudmFzUGxhdGZvcm1MYXllcikKLSAgICAgICAg
bV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHw9IFN5bmNDYW52YXM7CisgICAgaWYgKG1fcGxhdGZv
cm1MYXllcikKKyAgICAgICAgbV9wZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbiB8PSBTeW5j
UGxhdGZvcm1MYXllcjsKICNlbmRpZgogCiAgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogICAg
IGFkZFJlcGFpbnRSZWN0KGNvbnRlbnRzUmVjdCgpKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciogcGxhdGZvcm1M
YXllcikKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvUGxhdGZv
cm1MYXllcihQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyLCBDb250ZW50c0xheWVyUHVycG9z
ZSBwdXJwb3NlKQogewogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIGlmIChtX2NhbnZh
c1BsYXRmb3JtTGF5ZXIpIHsKLSAgICAgICAgQVNTRVJUKG1fY2FudmFzVG9rZW4uaXNWYWxpZCgp
KTsKKyAgICBpZiAobV9wbGF0Zm9ybUxheWVyKSB7CisgICAgICAgIEFTU0VSVChtX3BsYXRmb3Jt
TGF5ZXJUb2tlbi5pc1ZhbGlkKCkpOwogICAgICAgICBpZiAoIXBsYXRmb3JtTGF5ZXIpIHsKLSAg
ICAgICAgICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiB8PSBEZXN0cm95Q2FudmFzOwotICAg
ICAgICAgICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uICY9IH5DcmVhdGVDYW52YXM7Ci0gICAg
ICAgIH0gIGVsc2UgaWYgKChtX2NhbnZhc1NpemUgIT0gcGxhdGZvcm1MYXllci0+cGxhdGZvcm1M
YXllclNpemUoKSkgfHwgKG1fY2FudmFzVG9rZW4gIT0gcGxhdGZvcm1MYXllci0+Z3JhcGhpY3NT
dXJmYWNlVG9rZW4oKSkpIHsKLSAgICAgICAgICAgIC8vIG1fY2FudmFzVG9rZW4gY2FuIGJlIGRp
ZmZlcmVudCB0byBwbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZhY2VUb2tlbigpLCBldmVuIGlm
IG1fY2FudmFzUGxhdGZvcm1MYXllciBlcXVhbHMgcGxhdGZvcm1MYXllci4KLSAgICAgICAgICAg
IG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiB8PSBSZWNyZWF0ZUNhbnZhczsKKyAgICAgICAgICAg
IG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gfD0gRGVzdHJveVBsYXRmb3JtTGF5ZXI7
CisgICAgICAgICAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uICY9IH5DcmVhdGVQ
bGF0Zm9ybUxheWVyOworICAgICAgICB9ICBlbHNlIGlmICgobV9wbGF0Zm9ybUxheWVyU2l6ZSAh
PSBwbGF0Zm9ybUxheWVyLT5wbGF0Zm9ybUxheWVyU2l6ZSgpKSB8fCAobV9wbGF0Zm9ybUxheWVy
VG9rZW4gIT0gcGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKSkpIHsKKyAgICAg
ICAgICAgIC8vIG1fcGxhdGZvcm1MYXllclRva2VuIGNhbiBiZSBkaWZmZXJlbnQgdG8gcGxhdGZv
cm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKSwgZXZlbiBpZiBtX3BsYXRmb3JtTGF5ZXIg
ZXF1YWxzIHBsYXRmb3JtTGF5ZXIuCisgICAgICAgICAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVy
T3BlcmF0aW9uIHw9IFJlY3JlYXRlUGxhdGZvcm1MYXllcjsKICAgICAgICAgfQogICAgIH0gZWxz
ZSB7CiAgICAgICAgIGlmIChwbGF0Zm9ybUxheWVyKQotICAgICAgICAgICAgbV9wZW5kaW5nQ2Fu
dmFzT3BlcmF0aW9uIHw9IENyZWF0ZUFuZFN5bmNDYW52YXM7CisgICAgICAgICAgICBtX3BlbmRp
bmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uIHw9IENyZWF0ZUFuZFN5bmNQbGF0Zm9ybUxheWVyOwog
ICAgIH0KIAotICAgIG1fY2FudmFzUGxhdGZvcm1MYXllciA9IHBsYXRmb3JtTGF5ZXI7Ci0gICAg
Ly8gbV9jYW52YXNUb2tlbiBpcyB1cGRhdGVkIG9ubHkgaGVyZS4gSW4gZGV0YWlsLCB3aGVuIEdy
YXBoaWNzQ29udGV4dDNEIGlzIGNoYW5nZWQgb3IgcmVzaGFwZWQsIG1fY2FudmFzVG9rZW4gaXMg
Y2hhbmdlZCBhbmQgc2V0Q29udGVudHNUb0NhbnZhcygpIGlzIGFsd2F5cyBjYWxsZWQuCi0gICAg
bV9jYW52YXNTaXplID0gbV9jYW52YXNQbGF0Zm9ybUxheWVyID8gbV9jYW52YXNQbGF0Zm9ybUxh
eWVyLT5wbGF0Zm9ybUxheWVyU2l6ZSgpIDogSW50U2l6ZSgpOwotICAgIG1fY2FudmFzVG9rZW4g
PSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgPyBtX2NhbnZhc1BsYXRmb3JtTGF5ZXItPmdyYXBoaWNz
U3VyZmFjZVRva2VuKCkgOiBHcmFwaGljc1N1cmZhY2VUb2tlbigpOwotICAgIEFTU0VSVCghKCFt
X2NhbnZhc1Rva2VuLmlzVmFsaWQoKSAmJiBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIpKTsKKyAgICBt
X3BsYXRmb3JtTGF5ZXIgPSBwbGF0Zm9ybUxheWVyOworICAgIC8vIG1fcGxhdGZvcm1MYXllclRv
a2VuIGlzIHVwZGF0ZWQgb25seSBoZXJlLiAKKyAgICAvLyBJbiBkZXRhaWwsIHdoZW4gR3JhcGhp
Y3NDb250ZXh0M0QgaXMgY2hhbmdlZCBvciByZXNoYXBlZCwgbV9wbGF0Zm9ybUxheWVyVG9rZW4g
aXMgY2hhbmdlZCBhbmQgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoKSBpcyBhbHdheXMgY2Fs
bGVkLgorICAgIG1fcGxhdGZvcm1MYXllclNpemUgPSBtX3BsYXRmb3JtTGF5ZXIgPyBtX3BsYXRm
b3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCkgOiBJbnRTaXplKCk7CisgICAgbV9wbGF0Zm9y
bUxheWVyVG9rZW4gPSBtX3BsYXRmb3JtTGF5ZXIgPyBtX3BsYXRmb3JtTGF5ZXItPmdyYXBoaWNz
U3VyZmFjZVRva2VuKCkgOiBHcmFwaGljc1N1cmZhY2VUb2tlbigpOworICAgIEFTU0VSVCghKCFt
X3BsYXRmb3JtTGF5ZXJUb2tlbi5pc1ZhbGlkKCkgJiYgbV9wbGF0Zm9ybUxheWVyKSk7CiAKICAg
ICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7CiAjZWxzZQpAQCAtNzIwLDUzICs3MjEsNTMgQEAgdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNBbmltYXRpb25zKCkKIH0KIAogI2lmIFVT
RShHUkFQSElDU19TVVJGQUNFKQotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmND
YW52YXMoKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNQbGF0Zm9ybUxheWVy
KCkKIHsKLSAgICBkZXN0cm95Q2FudmFzSWZOZWVkZWQoKTsKLSAgICBjcmVhdGVDYW52YXNJZk5l
ZWRlZCgpOworICAgIGRlc3Ryb3lQbGF0Zm9ybUxheWVySWZOZWVkZWQoKTsKKyAgICBjcmVhdGVQ
bGF0Zm9ybUxheWVySWZOZWVkZWQoKTsKIAotICAgIGlmICghKG1fcGVuZGluZ0NhbnZhc09wZXJh
dGlvbiAmIFN5bmNDYW52YXMpKQorICAgIGlmICghKG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVy
YXRpb24gJiBTeW5jUGxhdGZvcm1MYXllcikpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGVu
ZGluZ0NhbnZhc09wZXJhdGlvbiAmPSB+U3luY0NhbnZhczsKKyAgICBtX3BlbmRpbmdQbGF0Zm9y
bUxheWVyT3BlcmF0aW9uICY9IH5TeW5jUGxhdGZvcm1MYXllcjsKIAotICAgIGlmICghbV9pc1Zh
bGlkQ2FudmFzKQorICAgIGlmICghbV9pc1ZhbGlkUGxhdGZvcm1MYXllcikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgQVNTRVJUKG1fY2FudmFzUGxhdGZvcm1MYXllcik7Ci0gICAgbV9sYXllclN0
YXRlLmNhbnZhc0Zyb250QnVmZmVyID0gbV9jYW52YXNQbGF0Zm9ybUxheWVyLT5jb3B5VG9HcmFw
aGljc1N1cmZhY2UoKTsKLSAgICBtX2xheWVyU3RhdGUuY2FudmFzU2hvdWxkU3dhcEJ1ZmZlcnMg
PSB0cnVlOworICAgIEFTU0VSVChtX3BsYXRmb3JtTGF5ZXIpOworICAgIG1fbGF5ZXJTdGF0ZS5w
bGF0Zm9ybUxheWVyRnJvbnRCdWZmZXIgPSBtX3BsYXRmb3JtTGF5ZXItPmNvcHlUb0dyYXBoaWNz
U3VyZmFjZSgpOworICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyU2hvdWxkU3dhcEJ1ZmZl
cnMgPSB0cnVlOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGVzdHJveUNh
bnZhc0lmTmVlZGVkKCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpkZXN0cm95UGxh
dGZvcm1MYXllcklmTmVlZGVkKCkKIHsKLSAgICBpZiAoIShtX3BlbmRpbmdDYW52YXNPcGVyYXRp
b24gJiBEZXN0cm95Q2FudmFzKSkKKyAgICBpZiAoIShtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3Bl
cmF0aW9uICYgRGVzdHJveVBsYXRmb3JtTGF5ZXIpKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAobV9pc1ZhbGlkQ2FudmFzKSB7Ci0gICAgICAgIG1faXNWYWxpZENhbnZhcyA9IGZhbHNlOwot
ICAgICAgICBtX2xheWVyU3RhdGUuY2FudmFzVG9rZW4gPSBHcmFwaGljc1N1cmZhY2VUb2tlbigp
OwotICAgICAgICBtX2xheWVyU3RhdGUuY2FudmFzQ2hhbmdlZCA9IHRydWU7CisgICAgaWYgKG1f
aXNWYWxpZFBsYXRmb3JtTGF5ZXIpIHsKKyAgICAgICAgbV9pc1ZhbGlkUGxhdGZvcm1MYXllciA9
IGZhbHNlOworICAgICAgICBtX2xheWVyU3RhdGUucGxhdGZvcm1MYXllclRva2VuID0gR3JhcGhp
Y3NTdXJmYWNlVG9rZW4oKTsKKyAgICAgICAgbV9sYXllclN0YXRlLnBsYXRmb3JtTGF5ZXJDaGFu
Z2VkID0gdHJ1ZTsKICAgICB9CiAKLSAgICBtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24gJj0gfkRl
c3Ryb3lDYW52YXM7CisgICAgbV9wZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbiAmPSB+RGVz
dHJveVBsYXRmb3JtTGF5ZXI7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpj
cmVhdGVDYW52YXNJZk5lZWRlZCgpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Y3Jl
YXRlUGxhdGZvcm1MYXllcklmTmVlZGVkKCkKIHsKLSAgICBpZiAoIShtX3BlbmRpbmdDYW52YXNP
cGVyYXRpb24gJiBDcmVhdGVDYW52YXMpKQorICAgIGlmICghKG1fcGVuZGluZ1BsYXRmb3JtTGF5
ZXJPcGVyYXRpb24gJiBDcmVhdGVQbGF0Zm9ybUxheWVyKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgQVNTRVJUKG1fY2FudmFzUGxhdGZvcm1MYXllcik7Ci0gICAgaWYgKCFtX2lzVmFsaWRDYW52
YXMpIHsKLSAgICAgICAgbV9sYXllclN0YXRlLmNhbnZhc1NpemUgPSBtX2NhbnZhc1BsYXRmb3Jt
TGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCk7Ci0gICAgICAgIG1fbGF5ZXJTdGF0ZS5jYW52YXNU
b2tlbiA9IG1fY2FudmFzUGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKTsKLSAg
ICAgICAgbV9sYXllclN0YXRlLmNhbnZhc1N1cmZhY2VGbGFncyA9IG1fY2FudmFzUGxhdGZvcm1M
YXllci0+Z3JhcGhpY3NTdXJmYWNlRmxhZ3MoKTsKLSAgICAgICAgbV9sYXllclN0YXRlLmNhbnZh
c0NoYW5nZWQgPSB0cnVlOwotICAgICAgICBtX2lzVmFsaWRDYW52YXMgPSB0cnVlOworICAgIEFT
U0VSVChtX3BsYXRmb3JtTGF5ZXIpOworICAgIGlmICghbV9pc1ZhbGlkUGxhdGZvcm1MYXllcikg
eworICAgICAgICBtX2xheWVyU3RhdGUucGxhdGZvcm1MYXllclNpemUgPSBtX3BsYXRmb3JtTGF5
ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCk7CisgICAgICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxh
eWVyVG9rZW4gPSBtX3BsYXRmb3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2VuKCk7CisgICAg
ICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyU3VyZmFjZUZsYWdzID0gbV9wbGF0Zm9ybUxh
eWVyLT5ncmFwaGljc1N1cmZhY2VGbGFncygpOworICAgICAgICBtX2xheWVyU3RhdGUucGxhdGZv
cm1MYXllckNoYW5nZWQgPSB0cnVlOworICAgICAgICBtX2lzVmFsaWRQbGF0Zm9ybUxheWVyID0g
dHJ1ZTsKICAgICB9CiAKLSAgICBtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24gJj0gfkNyZWF0ZUNh
bnZhczsKKyAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uICY9IH5DcmVhdGVQbGF0
Zm9ybUxheWVyOwogfQogI2VuZGlmCiAKQEAgLTc5MSw3ICs3OTIsNyBAQCB2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgp
CiAgICAgc3luY0ZpbHRlcnMoKTsKICNlbmRpZgogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQot
ICAgIHN5bmNDYW52YXMoKTsKKyAgICBzeW5jUGxhdGZvcm1MYXllcigpOwogI2VuZGlmCiAKICAg
ICAvLyBPbmx5IHVuc2V0IG1fbW92aW5nVmlzaWJsZVJlY3QgYWZ0ZXIgd2UgaGF2ZSB1cGRhdGVk
IHRoZSB2aXNpYmxlIHJlY3QgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBzdG9wcGVkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IDE0
ODZjMjA3YmUyODY0MDQ0OGI1MDYxMzdhNmIwYjQzNDIwMTE0ZWIuLmE2YTU4ZjMyYjQ3NDZlMjc1
ZWY1MWM4NjQ2NWI0YmU5ZTY4NTc0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTkyLDcgKzkyLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93RGVidWdCb3JkZXIoYm9vbCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHNldFNob3dSZXBhaW50Q291bnRlcihib29sKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRGlyZWN0bHlDb21wb3NpdGVJbWFnZShJbWFnZSopIGNvbnN0IG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5
ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5
ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQdXJwb3NlKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0TWFza0xheWVyKEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3JhcGhpY3NMYXllciopIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVycmlkZTsKQEAgLTEwOSw3
ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbihjb25z
dCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMo
ZG91YmxlIHRpbWUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCByZXN1bWVBbmltYXRpb25z
KCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIHVzZXNDb250ZW50c0xheWVyKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9jYW52YXNQbGF0Zm9ybUxheWVyIHx8IG1fY29tcG9zaXRlZElt
YWdlOyB9CisgICAgdmlydHVhbCBib29sIHVzZXNDb250ZW50c0xheWVyKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gbV9wbGF0Zm9ybUxheWVyIHx8IG1fY29tcG9zaXRlZEltYWdlOyB9CiAKICAg
ICB2b2lkIHN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5jbHVkaW5nU3ViTGF5ZXJzKCk7CiAgICAg
dm9pZCB1cGRhdGVDb250ZW50QnVmZmVyc0luY2x1ZGluZ1N1YkxheWVycygpOwpAQCAtMTU0LDE4
ICsxNTQsMTggQEAgcHVibGljOgogCiBwcml2YXRlOgogI2lmIFVTRShHUkFQSElDU19TVVJGQUNF
KQotICAgIGVudW0gUGVuZGluZ0NhbnZhc09wZXJhdGlvbiB7CisgICAgZW51bSBQZW5kaW5nUGxh
dGZvcm1MYXllck9wZXJhdGlvbiB7CiAgICAgICAgIE5vbmUgPSAweDAwLAotICAgICAgICBDcmVh
dGVDYW52YXMgPSAweDAxLAotICAgICAgICBEZXN0cm95Q2FudmFzID0gMHgwMiwKLSAgICAgICAg
U3luY0NhbnZhcyA9IDB4MDQsCi0gICAgICAgIENyZWF0ZUFuZFN5bmNDYW52YXMgPSBDcmVhdGVD
YW52YXMgfCBTeW5jQ2FudmFzLAotICAgICAgICBSZWNyZWF0ZUNhbnZhcyA9IENyZWF0ZUFuZFN5
bmNDYW52YXMgfCBEZXN0cm95Q2FudmFzCisgICAgICAgIENyZWF0ZVBsYXRmb3JtTGF5ZXIgPSAw
eDAxLAorICAgICAgICBEZXN0cm95UGxhdGZvcm1MYXllciA9IDB4MDIsCisgICAgICAgIFN5bmNQ
bGF0Zm9ybUxheWVyID0gMHgwNCwKKyAgICAgICAgQ3JlYXRlQW5kU3luY1BsYXRmb3JtTGF5ZXIg
PSBDcmVhdGVQbGF0Zm9ybUxheWVyIHwgU3luY1BsYXRmb3JtTGF5ZXIsCisgICAgICAgIFJlY3Jl
YXRlUGxhdGZvcm1MYXllciA9IENyZWF0ZUFuZFN5bmNQbGF0Zm9ybUxheWVyIHwgRGVzdHJveVBs
YXRmb3JtTGF5ZXIKICAgICB9OwogCi0gICAgdm9pZCBzeW5jQ2FudmFzKCk7Ci0gICAgdm9pZCBk
ZXN0cm95Q2FudmFzSWZOZWVkZWQoKTsKLSAgICB2b2lkIGNyZWF0ZUNhbnZhc0lmTmVlZGVkKCk7
CisgICAgdm9pZCBzeW5jUGxhdGZvcm1MYXllcigpOworICAgIHZvaWQgZGVzdHJveVBsYXRmb3Jt
TGF5ZXJJZk5lZWRlZCgpOworICAgIHZvaWQgY3JlYXRlUGxhdGZvcm1MYXllcklmTmVlZGVkKCk7
CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYs
IGZsb2F0IHdpZHRoKSBvdmVycmlkZTsKQEAgLTIzMiw4ICsyMzIsOCBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9wZW5kaW5nQ29udGVudHNTY2FsZUFkanVzdG1lbnQgOiAxOwogICAgIGJvb2wgbV9w
ZW5kaW5nVmlzaWJsZVJlY3RBZGp1c3RtZW50IDogMTsKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFD
RSkKLSAgICBib29sIG1faXNWYWxpZENhbnZhcyA6IDE7Ci0gICAgdW5zaWduZWQgbV9wZW5kaW5n
Q2FudmFzT3BlcmF0aW9uIDogMzsKKyAgICBib29sIG1faXNWYWxpZFBsYXRmb3JtTGF5ZXIgOiAx
OworICAgIHVuc2lnbmVkIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gOiAzOwogI2Vu
ZGlmCiAKICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQqIG1fY29vcmRpbmF0b3I7
CkBAIC0yNDQsMTAgKzI0NCwxMCBAQCBwcml2YXRlOgogICAgIE5hdGl2ZUltYWdlUHRyIG1fY29t
cG9zaXRlZE5hdGl2ZUltYWdlUHRyOwogICAgIFJlZlB0cjxDb29yZGluYXRlZEltYWdlQmFja2lu
Zz4gbV9jb29yZGluYXRlZEltYWdlQmFja2luZzsKIAotICAgIFBsYXRmb3JtTGF5ZXIqIG1fY2Fu
dmFzUGxhdGZvcm1MYXllcjsKKyAgICBQbGF0Zm9ybUxheWVyKiBtX3BsYXRmb3JtTGF5ZXI7CiAj
aWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgSW50U2l6ZSBtX2NhbnZhc1NpemU7Ci0gICAg
R3JhcGhpY3NTdXJmYWNlVG9rZW4gbV9jYW52YXNUb2tlbjsKKyAgICBJbnRTaXplIG1fcGxhdGZv
cm1MYXllclNpemU7CisgICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4gbV9wbGF0Zm9ybUxheWVyVG9r
ZW47CiAjZW5kaWYKICAgICBUaW1lcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI+IG1fYW5pbWF0
aW9uU3RhcnRlZFRpbWVyOwogICAgIEdyYXBoaWNzTGF5ZXJBbmltYXRpb25zIG1fYW5pbWF0aW9u
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZS5jcHAKaW5kZXggZWU2M2M1NzMzZjU3MWEwMDNkYjFkYmQ1ZTEwNGE4NDM4NDVlMWNlMS4u
NDkxNDAzYjM0MjYyMzc2ZmE3NDI2ODNlMGM4NmRlNTI0N2E0MzFiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKQEAgLTE2
NSwzNyArMTY1LDM3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphZGp1c3RQb3Np
dGlvbkZvckZpeGVkTGF5ZXJzKCkKIH0KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNyZWF0ZUNhbnZhc0lmTmVlZGVkKFRleHR1cmVN
YXBwZXJMYXllciogbGF5ZXIsIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJiBz
dGF0ZSkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjcmVhdGVQbGF0Zm9ybUxheWVy
SWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiBsYXllciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyU3RhdGUmIHN0YXRlKQogewotICAgIGlmICghc3RhdGUuY2FudmFzVG9rZW4uaXNW
YWxpZCgpKQorICAgIGlmICghc3RhdGUucGxhdGZvcm1MYXllclRva2VuLmlzVmFsaWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0
b3JlPiBjYW52YXNCYWNraW5nU3RvcmUoVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU6
OmNyZWF0ZSgpKTsKLSAgICBtX3N1cmZhY2VCYWNraW5nU3RvcmVzLnNldChsYXllciwgY2FudmFz
QmFja2luZ1N0b3JlKTsKLSAgICBjYW52YXNCYWNraW5nU3RvcmUtPnNldEdyYXBoaWNzU3VyZmFj
ZShHcmFwaGljc1N1cmZhY2U6OmNyZWF0ZShzdGF0ZS5jYW52YXNTaXplLCBzdGF0ZS5jYW52YXNT
dXJmYWNlRmxhZ3MsIHN0YXRlLmNhbnZhc1Rva2VuKSk7Ci0gICAgbGF5ZXItPnNldENvbnRlbnRz
TGF5ZXIoY2FudmFzQmFja2luZ1N0b3JlLmdldCgpKTsKKyAgICBSZWZQdHI8VGV4dHVyZU1hcHBl
clN1cmZhY2VCYWNraW5nU3RvcmU+IHBsYXRmb3JtTGF5ZXJCYWNraW5nU3RvcmUoVGV4dHVyZU1h
cHBlclN1cmZhY2VCYWNraW5nU3RvcmU6OmNyZWF0ZSgpKTsKKyAgICBtX3N1cmZhY2VCYWNraW5n
U3RvcmVzLnNldChsYXllciwgcGxhdGZvcm1MYXllckJhY2tpbmdTdG9yZSk7CisgICAgcGxhdGZv
cm1MYXllckJhY2tpbmdTdG9yZS0+c2V0R3JhcGhpY3NTdXJmYWNlKEdyYXBoaWNzU3VyZmFjZTo6
Y3JlYXRlKHN0YXRlLnBsYXRmb3JtTGF5ZXJTaXplLCBzdGF0ZS5wbGF0Zm9ybUxheWVyU3VyZmFj
ZUZsYWdzLCBzdGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4pKTsKKyAgICBsYXllci0+c2V0Q29udGVu
dHNMYXllcihwbGF0Zm9ybUxheWVyQmFja2luZ1N0b3JlLmdldCgpKTsKIH0KIAotdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmU6OnN5bmNDYW52YXNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5
ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCit2
b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c3luY1BsYXRmb3JtTGF5ZXJJZk5lZWRlZChU
ZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJT
dGF0ZSYgc3RhdGUpCiB7CiAgICAgQVNTRVJUKG1fdGV4dHVyZU1hcHBlcik7CiAKLSAgICBpZiAo
c3RhdGUuY2FudmFzQ2hhbmdlZCkgewotICAgICAgICBkZXN0cm95Q2FudmFzSWZOZWVkZWQobGF5
ZXIsIHN0YXRlKTsKLSAgICAgICAgY3JlYXRlQ2FudmFzSWZOZWVkZWQobGF5ZXIsIHN0YXRlKTsK
KyAgICBpZiAoc3RhdGUucGxhdGZvcm1MYXllckNoYW5nZWQpIHsKKyAgICAgICAgZGVzdHJveVBs
YXRmb3JtTGF5ZXJJZk5lZWRlZChsYXllciwgc3RhdGUpOworICAgICAgICBjcmVhdGVQbGF0Zm9y
bUxheWVySWZOZWVkZWQobGF5ZXIsIHN0YXRlKTsKICAgICB9CiAKLSAgICBpZiAoc3RhdGUuY2Fu
dmFzU2hvdWxkU3dhcEJ1ZmZlcnMpIHsKKyAgICBpZiAoc3RhdGUucGxhdGZvcm1MYXllclNob3Vs
ZFN3YXBCdWZmZXJzKSB7CiAgICAgICAgIEFTU0VSVChtX3N1cmZhY2VCYWNraW5nU3RvcmVzLmNv
bnRhaW5zKGxheWVyKSk7CiAgICAgICAgIFN1cmZhY2VCYWNraW5nU3RvcmVNYXA6Oml0ZXJhdG9y
IGl0ID0gbV9zdXJmYWNlQmFja2luZ1N0b3Jlcy5maW5kKGxheWVyKTsKLSAgICAgICAgUmVmUHRy
PFRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlPiBjYW52YXNCYWNraW5nU3RvcmUgPSBp
dC0+dmFsdWU7Ci0gICAgICAgIGNhbnZhc0JhY2tpbmdTdG9yZS0+c3dhcEJ1ZmZlcnNJZk5lZWRl
ZChzdGF0ZS5jYW52YXNGcm9udEJ1ZmZlcik7CisgICAgICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVy
U3VyZmFjZUJhY2tpbmdTdG9yZT4gcGxhdGZvcm1MYXllckJhY2tpbmdTdG9yZSA9IGl0LT52YWx1
ZTsKKyAgICAgICAgcGxhdGZvcm1MYXllckJhY2tpbmdTdG9yZS0+c3dhcEJ1ZmZlcnNJZk5lZWRl
ZChzdGF0ZS5wbGF0Zm9ybUxheWVyRnJvbnRCdWZmZXIpOwogICAgIH0KIH0KIAotdm9pZCBDb29y
ZGluYXRlZEdyYXBoaWNzU2NlbmU6OmRlc3Ryb3lDYW52YXNJZk5lZWRlZChUZXh0dXJlTWFwcGVy
TGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUp
Cit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5l
ZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgaWYgKHN0YXRlLmNhbnZhc1Rva2VuLmlzVmFsaWQo
KSkKKyAgICBpZiAoc3RhdGUucGxhdGZvcm1MYXllclRva2VuLmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgbV9zdXJmYWNlQmFja2luZ1N0b3Jlcy5yZW1vdmUobGF5ZXIpOwpAQCAt
MzE5LDcgKzMxOSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRMYXllclN0
YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgQ29vcmRpCiAjZW5kaWYKICAgICBzZXRM
YXllckFuaW1hdGlvbnNJZk5lZWRlZChsYXllciwgbGF5ZXJTdGF0ZSk7CiAjaWYgVVNFKEdSQVBI
SUNTX1NVUkZBQ0UpCi0gICAgc3luY0NhbnZhc0lmTmVlZGVkKGxheWVyLCBsYXllclN0YXRlKTsK
KyAgICBzeW5jUGxhdGZvcm1MYXllcklmTmVlZGVkKGxheWVyLCBsYXllclN0YXRlKTsKICNlbmRp
ZgogICAgIHNldExheWVyUmVwYWludENvdW50SWZOZWVkZWQobGF5ZXIsIGxheWVyU3RhdGUpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZS5oCmluZGV4IDc1YTQ3MmQ0ZDEyOWMzMzk3ODFlOTk2N2JjMWQ5YWRjNGZhYTc4ZGIuLjY1ZTVh
YTEwNWE5YTYyYjE1ZDY5MDJlYjhlOWE3NGVhYWEyYWQ0ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdy
YXBoaWNzU2NlbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgKQEAgLTEwMCw5ICsxMDAs
OSBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgdm9pZCBzZXRMYXllckFuaW1hdGlvbnNJZk5lZWRl
ZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0
ZSYpOwogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIHZvaWQgY3JlYXRlQ2FudmFzSWZO
ZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
U3RhdGUmKTsKLSAgICB2b2lkIHN5bmNDYW52YXNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIq
LCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwotICAgIHZvaWQgZGVzdHJv
eUNhbnZhc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0IENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllclN0YXRlJik7CisgICAgdm9pZCBjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQo
VGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUm
KTsKKyAgICB2b2lkIHN5bmNQbGF0Zm9ybUxheWVySWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVy
KiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKKyAgICB2b2lkIGRlc3Ry
b3lQbGF0Zm9ybUlmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0IENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllclN0YXRlJik7CiAjZW5kaWYKICAgICB2b2lkIHNldExheWVyUmVwYWludENv
dW50SWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyU3RhdGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NTdGF0ZS5oCmluZGV4IGQ2YzBhYWU5ZjAwZmFjYmM4MmU1Mjc5OTViMWEwOWZl
OWI3NmExNGIuLjc3NTJhN2Y3NGZmZTg1YzQyNjg4YTgyM2ZkZjliNzBhNDNiNWE5OTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmgK
QEAgLTg5LDggKzg5LDggQEAgc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlIHsK
ICAgICAgICAgICAgIGJvb2wgZmlsdGVyc0NoYW5nZWQ6IDE7CiAgICAgICAgICAgICBib29sIGNo
aWxkcmVuQ2hhbmdlZDogMTsKICAgICAgICAgICAgIGJvb2wgcmVwYWludENvdW50Q2hhbmdlZCA6
IDE7Ci0gICAgICAgICAgICBib29sIGNhbnZhc0NoYW5nZWQ6IDE7Ci0gICAgICAgICAgICBib29s
IGNhbnZhc1Nob3VsZFN3YXBCdWZmZXJzOiAxOworICAgICAgICAgICAgYm9vbCBwbGF0Zm9ybUxh
eWVyQ2hhbmdlZDogMTsKKyAgICAgICAgICAgIGJvb2wgcGxhdGZvcm1MYXllclNob3VsZFN3YXBC
dWZmZXJzOiAxOwogICAgICAgICAgICAgYm9vbCBpc1Njcm9sbGFibGVDaGFuZ2VkOiAxOwogICAg
ICAgICAgICAgYm9vbCBjb21taXR0ZWRTY3JvbGxPZmZzZXRDaGFuZ2VkOiAxOwogICAgICAgICAg
ICAgYm9vbCBjb250ZW50c1RpbGluZ0NoYW5nZWQ6IDE7CkBAIC0xMzEsNyArMTMxLDcgQEAgc3Ry
dWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlIHsKICAgICAgICAgLCBtYXNrKEludmFs
aWRDb29yZGluYXRlZExheWVySUQpCiAgICAgICAgICwgaW1hZ2VJRChJbnZhbGlkQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmdJRCkKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICAgICAgLCBj
YW52YXNGcm9udEJ1ZmZlcigwKQorICAgICAgICAsIHBsYXRmb3JtTGF5ZXJGcm9udEJ1ZmZlcigw
KQogI2VuZGlmCiAgICAgewogICAgIH0KQEAgLTE2MywxMCArMTYzLDEwIEBAIHN0cnVjdCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSB7CiAgICAgVmVjdG9yPFRpbGVVcGRhdGVJbmZvPiB0
aWxlc1RvVXBkYXRlOwogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgSW50U2l6ZSBj
YW52YXNTaXplOwotICAgIEdyYXBoaWNzU3VyZmFjZVRva2VuIGNhbnZhc1Rva2VuOwotICAgIHVp
bnQzMl90IGNhbnZhc0Zyb250QnVmZmVyOwotICAgIEdyYXBoaWNzU3VyZmFjZTo6RmxhZ3MgY2Fu
dmFzU3VyZmFjZUZsYWdzOworICAgIEludFNpemUgcGxhdGZvcm1MYXllclNpemU7CisgICAgR3Jh
cGhpY3NTdXJmYWNlVG9rZW4gcGxhdGZvcm1MYXllclRva2VuOworICAgIHVpbnQzMl90IHBsYXRm
b3JtTGF5ZXJGcm9udEJ1ZmZlcjsKKyAgICBHcmFwaGljc1N1cmZhY2U6OkZsYWdzIHBsYXRmb3Jt
TGF5ZXJTdXJmYWNlRmxhZ3M7CiAjZW5kaWYKIAogICAgIEludFNpemUgY29tbWl0dGVkU2Nyb2xs
T2Zmc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcAppbmRleCAwZjcwMDE5ZWFkOGVjNGI1ZWRjZmI0ZDhlYjAyM2FiZjA0MTRiYmNlLi4yZjUw
NGUyYmIzMzlhMjFiOWRhZjYzMDUxNzhkNDVlNmEwM2UyZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtNTg5LDIwICs1ODksMjAg
QEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNvbmZpZ3VyYXRpb24oKQogICAgICAg
ICB9CiAjZWxzZQogICAgICAgICBpZiAoIXBsdWdpblZpZXdCYXNlLT5zaG91bGROb3RBZGRMYXll
cigpKQotICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RvTWVkaWEocGx1
Z2luVmlld0Jhc2UtPnBsYXRmb3JtTGF5ZXIoKSk7CisgICAgICAgICAgICBtX2dyYXBoaWNzTGF5
ZXItPnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKHBsdWdpblZpZXdCYXNlLT5wbGF0Zm9ybUxh
eWVyKCksIEdyYXBoaWNzTGF5ZXI6OkNvbnRlbnRzTGF5ZXJGb3JQbHVnaW4pOwogI2VuZGlmCiAg
ICAgfQogI2lmIEVOQUJMRShWSURFTykKICAgICBlbHNlIGlmIChyZW5kZXJlcigpLmlzVmlkZW8o
KSkgewogICAgICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSB0b0hUTUxNZWRp
YUVsZW1lbnQocmVuZGVyZXIoKS5lbGVtZW50KCkpOwotICAgICAgICBtX2dyYXBoaWNzTGF5ZXIt
PnNldENvbnRlbnRzVG9NZWRpYShtZWRpYUVsZW1lbnQtPnBsYXRmb3JtTGF5ZXIoKSk7CisgICAg
ICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIobWVkaWFFbGVt
ZW50LT5wbGF0Zm9ybUxheWVyKCksIEdyYXBoaWNzTGF5ZXI6OkNvbnRlbnRzTGF5ZXJGb3JNZWRp
YSk7CiAgICAgfQogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFCTEUoQUNDRUxFUkFU
RURfMkRfQ0FOVkFTKQogICAgIGVsc2UgaWYgKHJlbmRlcmVyKCkuaXNDYW52YXMoKSAmJiBjYW52
YXNDb21wb3NpdGluZ1N0cmF0ZWd5KHJlbmRlcmVyKCkpID09IENhbnZhc0FzTGF5ZXJDb250ZW50
cykgewogICAgICAgICBjb25zdCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFzID0gdG9IVE1MQ2Fu
dmFzRWxlbWVudChyZW5kZXJlcigpLmVsZW1lbnQoKSk7CiAgICAgICAgIGlmIChDYW52YXNSZW5k
ZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0KCkpCi0gICAg
ICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9DYW52YXMoY29udGV4dC0+cGxh
dGZvcm1MYXllcigpKTsKKyAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNU
b1BsYXRmb3JtTGF5ZXIoY29udGV4dC0+cGxhdGZvcm1MYXllcigpLCBHcmFwaGljc0xheWVyOjpD
b250ZW50c0xheWVyRm9yQ2FudmFzKTsKICAgICAgICAgbGF5ZXJDb25maWdDaGFuZ2VkID0gdHJ1
ZTsKICAgICB9CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236716</attachid>
            <date>2014-08-16 08:14:41 -0700</date>
            <delta_ts>2014-08-17 01:41:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109658-20140817001433.patch</filename>
            <type>text/plain</type>
            <size>37605</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTAwZDAzNjViNGI0MmEx
OTljNjlkZWQzNGZiYjFmN2U0ZGZlOTJkZi4uZmIwZDQxODVlMzZkYzU3ZjU0NTcxNmI3MzIyYTMw
ZmJmZGNiODBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE0LTA4LTE2ICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgVW5pZnkgR3JhcGhpY3NM
YXllcjo6c2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk2NTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiBwYXRjaCBv
cmlnaW5hbGx5IHdyaXR0ZW4gYnkgVGltIEhvcnRvbi4KKyAgICAgICAgTWVyZ2Ugc2V0Q29udGVu
dHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzIGludG8gc2V0Q29udGVudHNUb1BsYXRm
b3JtTGF5ZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRqdXN0IGV4
cG9ydHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6Cisg
ICAgICAgIE1vdmUgQ29udGVudHNMYXllclB1cnBvc2UgZW51bSB1cCBvdXQgb2YgR3JhcGhpY3NM
YXllciBwbGF0Zm9ybSBpbXBsbWVudGF0aW9ucworICAgICAgICBhbmQgaW50byBHcmFwaGljc0xh
eWVyLCBzbyB3ZSBjYW4gdXNlIGl0IGFzIGEgcGFyYW1ldGVyLgorICAgICAgICBBZGQgQ29udGVu
dHNMYXllckZvclBsdWdpbi4KKworICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6c2V0
Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICBSZW1vdmUgc2V0Q29udGVudHNUb01l
ZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzLCBhbmQgcmVwbGFjZSB0aGVtCisgICAgICAgIHdp
dGggc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIsIHdoaWNoIHByZXZpb3VzbHkgZXhpc3RlZCBi
dXQgd2FzIHVudXNlZAorICAgICAgICBhbmQgc2ltcGx5IGNhbGxlZCBzZXRDb250ZW50c1RvTWVk
aWEuCisgICAgICAgIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyIHRha2VzIGEgQ29udGVudHNM
YXllclB1cnBvc2UsIHByaW1hcmlseQorICAgICAgICBzbyB0aGF0IEdyYXBoaWNzTGF5ZXJDQSBj
YW4ga25vdyB3aGV0aGVyIGl0IG5lZWRzIHRvIHNldE5lZWRzRGlzcGxheQorICAgICAgICB0aGUg
bGF5ZXIgd2hlbiBwYXJlbnRpbmcgaXQgKGNhbnZhcykgb3Igbm90IChldmVyeXRoaW5nIGVsc2Up
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1BsYXRmb3Jt
TGF5ZXIpOgorICAgICAgICBSZW5hbWUgZnVuY3Rpb24gc2V0Q29udGVudHNUb01lZGlhIC0+IHNl
dENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyLgorICAgICAgICBSZW5hbWUgYXJndW1lbnQgbWVkaWFM
YXllciAtPiBwbGF0Zm9ybUxheWVyLgorICAgICAgICBTdG9yZSB0aGUgcGFzc2VkLWluIENvbnRl
bnRzTGF5ZXJQdXJwb3NlLgorICAgICAgICBSZW1vdmUgc2V0Q29udGVudHNUb0NhbnZhcy4KKwor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZv
cmVTdWJsYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVD
b250ZW50c1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICBSZW1vdmUgdXBkYXRlQ29udGVudHNNZWRp
YUxheWVyIGFuZCB1cGRhdGVDb250ZW50c0NhbnZhcyBsYXllciwKKyAgICAgICAgYWRkIHVwZGF0
ZUNvbnRlbnRzUGxhdGZvcm1MYXllci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICBEbyB0aGUgc2FtZSB0byB0aGUgTGF5ZXJDaGFu
Z2UgZW51bS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb1Bs
YXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzeW5jUGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmRlc3Ryb3lQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBv
c2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgRm9sZCB0aGVzZSB0b2dldGhl
ciBpbiB0aGUgc2FtZSB3YXkgYXMgZWxzZXdoZXJlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAg
ICAgICBEbyB0aGUgc2FtZSB0byB0aGUgTGF5ZXJDaGFuZ2UgZW51bS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjcmVh
dGVQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lOjpzeW5jUGxhdGZvcm1MYXllcklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVy
U3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZTo6Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyU3RhdGUpOgorICAgICAgICBSZW5hbWUgY2FudmFzTGF5ZXIgLT4gcGxhdGZvcm1MYXll
ci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9uKToKKyAg
ICAgICAgVXNlIHRoZSBuZXcgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIsIHBhc3NpbmcgaW4g
dGhlIHJlbGV2YW50IENvbnRlbnRzTGF5ZXJQdXJwb3NlLgorCiAyMDE0LTA4LTE1ICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgRG8gbm90IHVzZSBGbG9hdFJlY3Q6
OmluZmluaXRlUmVjdCgpIHRvIGZsYWcgZnVsbCByZXBhaW50cy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
aW5kZXggNTI1ZTM1NGIwM2YyZDZmZDZlOGU1MmU0ZDY1YWEwNWI1OTFjZjU0NS4uN2ZkZWZkNTI4
NTEyNjNiYWFkZjc5NDdlYzczYTc4ZjMyMGJiY2NiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAg
LTU3OCwxMiArNTc4LDEwIEBAIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTdzZXRDdXN0
b21CZWhhdmlvckVOU18xM0dyYXBoaWNzTGF5ZXIxNEN1c3RvbUJlaGF2CiBfX1pON1dlYkNvcmUx
NUdyYXBoaWNzTGF5ZXJDQTE3c3VzcGVuZEFuaW1hdGlvbnNFZAogX19aTjdXZWJDb3JlMTVHcmFw
aGljc0xheWVyQ0ExOHNldEJhY2tncm91bmRDb2xvckVSS05TXzVDb2xvckUKIF9fWk43V2ViQ29y
ZTE1R3JhcGhpY3NMYXllckNBMThzZXRDb250ZW50c1RvSW1hZ2VFUE5TXzVJbWFnZUUKLV9fWk43
V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRDb250ZW50c1RvTWVkaWFFUDdDQUxheWVyCiBf
X1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE4c2V0Q29udGVudHNWaXNpYmxlRWIKIF9fWk43
V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRPcGFjaXR5SW50ZXJuYWxFZgogX19aTjdXZWJD
b3JlMTVHcmFwaGljc0xheWVyQ0ExOHNldFJlcGxpY2F0ZWRMYXllckVQTlNfMTNHcmFwaGljc0xh
eWVyRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOHNldFNob3dEZWJ1Z0JvcmRlckVi
Ci1fX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE5c2V0Q29udGVudHNUb0NhbnZhc0VQN0NB
TGF5ZXIKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTlzZXRDdXN0b21BcHBlYXJhbmNl
RU5TXzEzR3JhcGhpY3NMYXllcjE2Q3VzdG9tQXBwZWFyYW5jZUUKIF9fWk43V2ViQ29yZTE1R3Jh
cGhpY3NMYXllckNBMjBzZXRDaGlsZHJlblRyYW5zZm9ybUVSS05TXzIwVHJhbnNmb3JtYXRpb25N
YXRyaXhFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTIwc2V0UmVwbGljYXRlZEJ5TGF5
ZXJFUE5TXzEzR3JhcGhpY3NMYXllckUKQEAgLTU5Niw2ICs1OTQsNyBAQCBfX1pON1dlYkNvcmUx
NUdyYXBoaWNzTGF5ZXJDQTIzc2V0Q29udGVudHNDbGlwcGluZ1JlY3RFUktOU185RmxvYXRSZWN0
RQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EyM3NldENvbnRlbnRzTmVlZHNEaXNwbGF5
RXYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjNzZXRDb250ZW50c1RvU29saWRDb2xv
ckVSS05TXzVDb2xvckUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjNzZXREZWJ1Z0Jh
Y2tncm91bmRDb2xvckVSS05TXzVDb2xvckUKK19fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNB
MjZzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllckVQN0NBTGF5ZXJOU18xM0dyYXBoaWNzTGF5ZXIy
MENvbnRlbnRzTGF5ZXJQdXJwb3NlRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EyOHBs
YXRmb3JtQ0FMYXllclBhaW50Q29udGVudHNFUE5TXzE1UGxhdGZvcm1DQUxheWVyRVJOU18xNUdy
YXBoaWNzQ29udGV4dEVSS05TXzlGbG9hdFJlY3RFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5
ZXJDQTMwZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkRXYKIF9fWk43V2ViQ29yZTE1R3Jh
cGhpY3NMYXllckNBMzFwbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkRWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA0Nzg5
MWI4NmZlNzgyYjYyOGM5MTVhMjFmZDMzY2NmYWY1ZjY2YjM5Li42ZDg4ZDg0NWM0OWUzMDA2Zjk3
ZjAwMjE1YmQxZWQyMmNmOWFlZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0yNTEsNiArMjUxLDE1IEBAIHB1YmxpYzoKICAg
ICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGNoaWxkIGxpc3QgY2hhbmdlZC4KICAgICB2aXJ0dWFs
IGJvb2wgc2V0Q2hpbGRyZW4oY29uc3QgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYpOwogCisgICAg
ZW51bSBDb250ZW50c0xheWVyUHVycG9zZSB7CisgICAgICAgIE5vQ29udGVudHNMYXllciA9IDAs
CisgICAgICAgIENvbnRlbnRzTGF5ZXJGb3JJbWFnZSwKKyAgICAgICAgQ29udGVudHNMYXllckZv
ck1lZGlhLAorICAgICAgICBDb250ZW50c0xheWVyRm9yQ2FudmFzLAorICAgICAgICBDb250ZW50
c0xheWVyRm9yQmFja2dyb3VuZENvbG9yLAorICAgICAgICBDb250ZW50c0xheWVyRm9yUGx1Z2lu
CisgICAgfTsKKwogICAgIC8vIEFkZCBjaGlsZCBsYXllcnMuIElmIHRoZSBjaGlsZCBpcyBhbHJl
YWR5IHBhcmVudGVkLCBpdCB3aWxsIGJlIHJlbW92ZWQgZnJvbSBpdHMgb2xkIHBhcmVudC4KICAg
ICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoR3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9p
ZCBhZGRDaGlsZEF0SW5kZXgoR3JhcGhpY3NMYXllciosIGludCBpbmRleCk7CkBAIC00MDUsMTYg
KzQxNCwxMiBAQCBwdWJsaWM6CiAgICAgLy8gTGF5ZXIgY29udGVudHMKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q29udGVudHNUb0ltYWdlKEltYWdlKikgeyB9CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZERpcmVjdGx5Q29tcG9zaXRlSW1hZ2UoSW1hZ2UqKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKikgeyB9IC8v
IHZpZGVvIG9yIHBsdWctaW4KICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBQbGF0Zm9y
bUxheWVyKiBjb250ZW50c0xheWVyRm9yTWVkaWEoKSBjb25zdCB7IHJldHVybiAwOyB9CiAjZW5k
aWYKICAgICAvLyBQYXNzIGFuIGludmFsaWQgY29sb3IgdG8gcmVtb3ZlIHRoZSBjb250ZW50cyBs
YXllci4KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29s
b3ImKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxh
eWVyKikgeyB9Ci0gICAgLy8gRklYTUU6IHdlYmtpdC5vcmcvYi8xMDk2NTgKLSAgICAvLyBTaG91
bGQgdW5pZnkgc2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzCi0gICAg
dmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqIGxh
eWVyKSB7IHNldENvbnRlbnRzVG9NZWRpYShsYXllcik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQdXJw
b3NlKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogCiAgICAgLy8gQ2FsbGJhY2sgZnJvbSB0aGUgdW5kZXJseWluZyBncmFw
aGljcyBzeXN0ZW0gdG8gZHJhdyBsYXllciBjb250ZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDg5
NmI2ZWQyZjZlNjJhMmVlOTNlYjllZDkyMGRlZjA0ZTVjYjA2NGUuLjkxOWI5OGEwMDY5MDQwZGJj
MjE2NGJmNzc1MGJlMjMyZmQ1YTdjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtOTE4LDI0ICs5MTgs
MjQgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1h
Z2UpCiAgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzSW1hZ2VDaGFuZ2VkKTsK
IH0KIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxh
eWVyKiBtZWRpYUxheWVyKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9QbGF0
Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIsIENvbnRlbnRzTGF5ZXJQdXJw
b3NlIHB1cnBvc2UpCiB7Ci0gICAgaWYgKG1fY29udGVudHNMYXllciAmJiBtZWRpYUxheWVyID09
IG1fY29udGVudHNMYXllci0+cGxhdGZvcm1MYXllcigpKQorICAgIGlmIChtX2NvbnRlbnRzTGF5
ZXIgJiYgcGxhdGZvcm1MYXllciA9PSBtX2NvbnRlbnRzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSkK
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAgICAvLyBGSVhNRTogVGhlIHBhc3NlZCBpbiBs
YXllciBtaWdodCBiZSBhIHJhdyBsYXllciBvciBhbiBleHRlcm5hbGx5IGNyZWF0ZWQgCisKKyAg
ICAvLyBGSVhNRTogVGhlIHBhc3NlZCBpbiBsYXllciBtaWdodCBiZSBhIHJhdyBsYXllciBvciBh
biBleHRlcm5hbGx5IGNyZWF0ZWQKICAgICAvLyBQbGF0Zm9ybUNBTGF5ZXIuIFRvIGRldGVybWlu
ZSB0aGlzIHdlIGF0dGVtcHQgdG8gZ2V0IHRoZQogICAgIC8vIFBsYXRmb3JtQ0FMYXllciBwb2lu
dGVyLiBJZiB0aGlzIHJldHVybnMgYSBudWxsIHBvaW50ZXIgd2UgYXNzdW1lIGl0J3MKICAgICAv
LyByYXcuIFRoaXMgdGVzdCBtaWdodCBiZSBpbnZhbGlkIGlmIHRoZSByYXcgbGF5ZXIgaXMsIGZv
ciBpbnN0YW5jZSwgdGhlCiAgICAgLy8gUGxhdGZvcm1DQUxheWVyIGlzIHVzaW5nIGEgdXNlciBk
YXRhIHBvaW50ZXIgaW4gdGhlIHJhdyBsYXllciwgYW5kCiAgICAgLy8gdGhlIGNyZWF0b3Igb2Yg
dGhlIHJhdyBsYXllciBpcyB1c2luZyBpdCBmb3Igc29tZSBvdGhlciBwdXJwb3NlLgogICAgIC8v
IEZvciBub3cgd2UgZG9uJ3Qgc3VwcG9ydCBzdWNoIGEgY2FzZS4KLSAgICBQbGF0Zm9ybUNBTGF5
ZXIqIHBsYXRmb3JtQ0FMYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKG1l
ZGlhTGF5ZXIpOwotICAgIG1fY29udGVudHNMYXllciA9IG1lZGlhTGF5ZXIgPyAocGxhdGZvcm1D
QUxheWVyID8gcGxhdGZvcm1DQUxheWVyIDogY3JlYXRlUGxhdGZvcm1DQUxheWVyKG1lZGlhTGF5
ZXIsIHRoaXMpKSA6IDA7Ci0gICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IG1lZGlhTGF5ZXIg
PyBDb250ZW50c0xheWVyRm9yTWVkaWEgOiBOb0NvbnRlbnRzTGF5ZXI7CisgICAgUGxhdGZvcm1D
QUxheWVyKiBwbGF0Zm9ybUNBTGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXll
cihwbGF0Zm9ybUxheWVyKTsKKyAgICBtX2NvbnRlbnRzTGF5ZXIgPSBwbGF0Zm9ybUxheWVyID8g
KHBsYXRmb3JtQ0FMYXllciA/IHBsYXRmb3JtQ0FMYXllciA6IGNyZWF0ZVBsYXRmb3JtQ0FMYXll
cihwbGF0Zm9ybUxheWVyLCB0aGlzKSkgOiAwOworICAgIG1fY29udGVudHNMYXllclB1cnBvc2Ug
PSBwbGF0Zm9ybUxheWVyID8gcHVycG9zZSA6IE5vQ29udGVudHNMYXllcjsKIAogICAgIG5vdGVT
dWJsYXllcnNDaGFuZ2VkKCk7Ci0gICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRz
TWVkaWFMYXllckNoYW5nZWQpOworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50
c1BsYXRmb3JtTGF5ZXJDaGFuZ2VkKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTk0NSwy
MCArOTQ1LDYgQEAgUGxhdGZvcm1MYXllciogR3JhcGhpY3NMYXllckNBOjpjb250ZW50c0xheWVy
Rm9yTWVkaWEoKSBjb25zdAogfQogI2VuZGlmCiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRD
b250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIqIGNhbnZhc0xheWVyKQotewotICAgIGlmICht
X2NvbnRlbnRzTGF5ZXIgJiYgY2FudmFzTGF5ZXIgPT0gbV9jb250ZW50c0xheWVyLT5wbGF0Zm9y
bUxheWVyKCkpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICAvLyBDcmVhdGUgdGhlIFBsYXRm
b3JtQ0FMYXllciB0byB3cmFwIHRoZSBpbmNvbWluZyBsYXllcgotICAgIG1fY29udGVudHNMYXll
ciA9IGNhbnZhc0xheWVyID8gY3JlYXRlUGxhdGZvcm1DQUxheWVyKGNhbnZhc0xheWVyLCB0aGlz
KSA6IDA7Ci0gICAgCi0gICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IGNhbnZhc0xheWVyID8g
Q29udGVudHNMYXllckZvckNhbnZhcyA6IE5vQ29udGVudHNMYXllcjsKLQotICAgIG5vdGVTdWJs
YXllcnNDaGFuZ2VkKCk7Ci0gICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzQ2Fu
dmFzTGF5ZXJDaGFuZ2VkKTsKLX0KLSAgICAKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpsYXllckRp
ZERpc3BsYXkoUGxhdGZvcm1DQUxheWVyKiBsYXllcikKIHsKICAgICBMYXllck1hcCogbGF5ZXJD
bG9uZU1hcDsKQEAgLTEzMDMsMTEgKzEyODksOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6Y29t
bWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZQog
ICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzSW1hZ2VDaGFuZ2VkKSAvLyBO
ZWVkcyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAogICAgICAgICB1cGRhdGVDb250
ZW50c0ltYWdlKCk7CiAgICAgICAgIAotICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENv
bnRlbnRzTWVkaWFMYXllckNoYW5nZWQpIC8vIE5lZWRzIHRvIGhhcHBlbiBiZWZvcmUgQ2hpbGRy
ZW5DaGFuZ2VkCi0gICAgICAgIHVwZGF0ZUNvbnRlbnRzTWVkaWFMYXllcigpOwotICAgIAotICAg
IGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzQ2FudmFzTGF5ZXJDaGFuZ2VkKSAv
LyBOZWVkcyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAotICAgICAgICB1cGRhdGVD
b250ZW50c0NhbnZhc0xheWVyKCk7CisgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ29u
dGVudHNQbGF0Zm9ybUxheWVyQ2hhbmdlZCkgLy8gTmVlZHMgdG8gaGFwcGVuIGJlZm9yZSBDaGls
ZHJlbkNoYW5nZWQKKyAgICAgICAgdXBkYXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKCk7CiAKICAg
ICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBDb250ZW50c0NvbG9yTGF5ZXJDaGFuZ2VkKSAv
LyBOZWVkcyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAogICAgICAgICB1cGRhdGVD
b250ZW50c0NvbG9yTGF5ZXIoKTsKQEAgLTE5MzYsMjQgKzE5MTksMTcgQEAgdm9pZCBHcmFwaGlj
c0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzSW1hZ2UoKQogICAgIH0KIH0KIAotdm9pZCBHcmFwaGlj
c0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzTWVkaWFMYXllcigpCit2b2lkIEdyYXBoaWNzTGF5ZXJD
QTo6dXBkYXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKCkKIHsKLSAgICBpZiAoIW1fY29udGVudHNM
YXllciB8fCBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlICE9IENvbnRlbnRzTGF5ZXJGb3JNZWRpYSkK
KyAgICBpZiAoIW1fY29udGVudHNMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVmlk
ZW8gbGF5ZXIgd2FzIHNldCBhcyBtX2NvbnRlbnRzTGF5ZXIsIGFuZCB3aWxsIGdldCBwYXJlbnRl
ZCBpbiB1cGRhdGVTdWJsYXllckxpc3QoKS4KKyAgICAvLyBQbGF0Zm9ybSBsYXllciB3YXMgc2V0
IGFzIG1fY29udGVudHNMYXllciwgYW5kIHdpbGwgZ2V0IHBhcmVudGVkIGluIHVwZGF0ZVN1Ymxh
eWVyTGlzdCgpLgogICAgIHNldHVwQ29udGVudHNMYXllcihtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkp
OwotICAgIHVwZGF0ZUNvbnRlbnRzUmVjdHMoKTsKLX0KIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6
OnVwZGF0ZUNvbnRlbnRzQ2FudmFzTGF5ZXIoKQotewotICAgIGlmICghbV9jb250ZW50c0xheWVy
IHx8IG1fY29udGVudHNMYXllclB1cnBvc2UgIT0gQ29udGVudHNMYXllckZvckNhbnZhcykKLSAg
ICAgICAgcmV0dXJuOworICAgIGlmIChtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID09IENvbnRlbnRz
TGF5ZXJGb3JDYW52YXMpCisgICAgICAgIG1fY29udGVudHNMYXllci0+c2V0TmVlZHNEaXNwbGF5
KCk7CiAKLSAgICAvLyBDYW52YXNMYXllciB3YXMgc2V0IGFzIG1fY29udGVudHNMYXllciwgYW5k
IHdpbGwgZ2V0IHBhcmVudGVkIGluIHVwZGF0ZVN1YmxheWVyTGlzdCgpLgotICAgIHNldHVwQ29u
dGVudHNMYXllcihtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkpOwotICAgIG1fY29udGVudHNMYXllci0+
c2V0TmVlZHNEaXNwbGF5KCk7CiAgICAgdXBkYXRlQ29udGVudHNSZWN0cygpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVy
Q0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5oCmluZGV4IGRiM2QyZDcyOTAxNjVhMmE5YzdiMGZlNDUyNGY5ZDRmMzFhY2JlNTEuLmY2ZTY1
ZGJhZGM4Y2QyNzliMmIwY2Y2OTE3YzJhNmU1Mjk4ZjJjNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0xMjYs
MTEgKzEyNiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbihj
b25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lk
IHNldENvbnRlbnRzVG9JbWFnZShJbWFnZSopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZW50c1RvTWVkaWEoUGxhdGZvcm1MYXllciopIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JN
KElPUykKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIGNvbnRlbnRzTGF5ZXJGb3JNZWRpYSgp
IGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9D
YW52YXMoUGxhdGZvcm1MYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250
ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiwgQ29udGVudHNMYXllclB1cnBvc2Up
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYp
IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHVzZXNDb250ZW50c0xheWVyKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9jb250ZW50c0xheWVyUHVycG9zZSAhPSBOb0NvbnRlbnRzTGF5
ZXI7IH0KQEAgLTM3Myw4ICszNzIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQmFja2dy
b3VuZENvbG9yKCk7CiAKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzSW1hZ2UoKTsKLSAgICB2b2lk
IHVwZGF0ZUNvbnRlbnRzTWVkaWFMYXllcigpOwotICAgIHZvaWQgdXBkYXRlQ29udGVudHNDYW52
YXNMYXllcigpOworICAgIHZvaWQgdXBkYXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKCk7CiAgICAg
dm9pZCB1cGRhdGVDb250ZW50c0NvbG9yTGF5ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRz
UmVjdHMoKTsKICAgICB2b2lkIHVwZGF0ZU1hc2tMYXllcigpOwpAQCAtNDI4LDI0ICs0MjYsMjMg
QEAgcHJpdmF0ZToKICAgICAgICAgQW5pbWF0aW9uQ2hhbmdlZCA9IDFMTFUgPDwgMTMsCiAgICAg
ICAgIERpcnR5UmVjdHNDaGFuZ2VkID0gMUxMVSA8PCAxNCwKICAgICAgICAgQ29udGVudHNJbWFn
ZUNoYW5nZWQgPSAxTExVIDw8IDE1LAotICAgICAgICBDb250ZW50c01lZGlhTGF5ZXJDaGFuZ2Vk
ID0gMUxMVSA8PCAxNiwKLSAgICAgICAgQ29udGVudHNDYW52YXNMYXllckNoYW5nZWQgPSAxTExV
IDw8IDE3LAotICAgICAgICBDb250ZW50c0NvbG9yTGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAxOCwK
LSAgICAgICAgQ29udGVudHNSZWN0c0NoYW5nZWQgPSAxTExVIDw8IDE5LAotICAgICAgICBNYXNr
TGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAyMCwKLSAgICAgICAgUmVwbGljYXRlZExheWVyQ2hhbmdl
ZCA9IDFMTFUgPDwgMjEsCi0gICAgICAgIENvbnRlbnRzTmVlZHNEaXNwbGF5ID0gMUxMVSA8PCAy
MiwKLSAgICAgICAgQWNjZWxlcmF0ZXNEcmF3aW5nQ2hhbmdlZCA9IDFMTFUgPDwgMjMsCi0gICAg
ICAgIENvbnRlbnRzU2NhbGVDaGFuZ2VkID0gMUxMVSA8PCAyNCwKLSAgICAgICAgQ29udGVudHNW
aXNpYmlsaXR5Q2hhbmdlZCA9IDFMTFUgPDwgMjUsCi0gICAgICAgIFZpc2libGVSZWN0Q2hhbmdl
ZCA9IDFMTFUgPDwgMjYsCi0gICAgICAgIEZpbHRlcnNDaGFuZ2VkID0gMUxMVSA8PCAyNywKLSAg
ICAgICAgVGlsaW5nQXJlYUNoYW5nZWQgPSAxTExVIDw8IDI4LAotICAgICAgICBUaWxlc0FkZGVk
ID0gMUxMVSA8IDI5LAotICAgICAgICBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkID0gMUxMVSA8PCAz
MCwKLSAgICAgICAgQ3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQgPSAxTExVIDw8IDMxLAotICAgICAg
ICBDdXN0b21CZWhhdmlvckNoYW5nZWQgPSAxTExVIDw8IDMyLAotICAgICAgICBCbGVuZE1vZGVD
aGFuZ2VkID0gMUxMVSA8PCAzMworICAgICAgICBDb250ZW50c1BsYXRmb3JtTGF5ZXJDaGFuZ2Vk
ID0gMUxMVSA8PCAxNiwKKyAgICAgICAgQ29udGVudHNDb2xvckxheWVyQ2hhbmdlZCA9IDFMTFUg
PDwgMTcsCisgICAgICAgIENvbnRlbnRzUmVjdHNDaGFuZ2VkID0gMUxMVSA8PCAxOCwKKyAgICAg
ICAgTWFza0xheWVyQ2hhbmdlZCA9IDFMTFUgPDwgMTksCisgICAgICAgIFJlcGxpY2F0ZWRMYXll
ckNoYW5nZWQgPSAxTExVIDw8IDIwLAorICAgICAgICBDb250ZW50c05lZWRzRGlzcGxheSA9IDFM
TFUgPDwgMjEsCisgICAgICAgIEFjY2VsZXJhdGVzRHJhd2luZ0NoYW5nZWQgPSAxTExVIDw8IDIy
LAorICAgICAgICBDb250ZW50c1NjYWxlQ2hhbmdlZCA9IDFMTFUgPDwgMjMsCisgICAgICAgIENv
bnRlbnRzVmlzaWJpbGl0eUNoYW5nZWQgPSAxTExVIDw8IDI0LAorICAgICAgICBWaXNpYmxlUmVj
dENoYW5nZWQgPSAxTExVIDw8IDI1LAorICAgICAgICBGaWx0ZXJzQ2hhbmdlZCA9IDFMTFUgPDwg
MjYsCisgICAgICAgIFRpbGluZ0FyZWFDaGFuZ2VkID0gMUxMVSA8PCAyNywKKyAgICAgICAgVGls
ZXNBZGRlZCA9IDFMTFUgPCAyOCwKKyAgICAgICAgRGVidWdJbmRpY2F0b3JzQ2hhbmdlZCA9IDFM
TFUgPDwgMjksCisgICAgICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkID0gMUxMVSA8PCAzMCwK
KyAgICAgICAgQ3VzdG9tQmVoYXZpb3JDaGFuZ2VkID0gMUxMVSA8PCAzMSwKKyAgICAgICAgQmxl
bmRNb2RlQ2hhbmdlZCA9IDFMTFUgPDwgMzIKICAgICB9OwogICAgIHR5cGVkZWYgdWludDY0X3Qg
TGF5ZXJDaGFuZ2VGbGFnczsKICAgICBlbnVtIFNjaGVkdWxlRmx1c2hPck5vdCB7IFNjaGVkdWxl
Rmx1c2gsIERvbnRTY2hlZHVsZUZsdXNoIH07CkBAIC00NzIsMTQgKzQ2OSw2IEBAIHByaXZhdGU6
CiAgICAgRmxvYXRSZWN0IG1fdmlzaWJsZVJlY3Q7CiAgICAgRmxvYXRTaXplIG1fc2l6ZUF0TGFz
dFZpc2libGVSZWN0VXBkYXRlOwogICAgIAotICAgIGVudW0gQ29udGVudHNMYXllclB1cnBvc2Ug
ewotICAgICAgICBOb0NvbnRlbnRzTGF5ZXIgPSAwLAotICAgICAgICBDb250ZW50c0xheWVyRm9y
SW1hZ2UsCi0gICAgICAgIENvbnRlbnRzTGF5ZXJGb3JNZWRpYSwKLSAgICAgICAgQ29udGVudHNM
YXllckZvckNhbnZhcywKLSAgICAgICAgQ29udGVudHNMYXllckZvckJhY2tncm91bmRDb2xvcgot
ICAgIH07Ci0gICAgCiAgICAgQ29udGVudHNMYXllclB1cnBvc2UgbV9jb250ZW50c0xheWVyUHVy
cG9zZTsKICAgICBib29sIG1faXNQYWdlVGlsZWRCYWNraW5nTGF5ZXIgOiAxOwogICAgIGJvb2wg
bV9uZWVkc0Z1bGxSZXBhaW50IDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIuY3BwCmluZGV4IDE3NGNjNTQ5OGY1Y2ZkOWNhODQzNTllNDdkZjViNzQ4YTkwMTJlMjAu
LmI4M2YzYmM2NGQzNTM4MDVlNjBhNjg3ZTU3Njk4NWNkYjhhN2IyYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtMzY4LDE3ICszNjgsMTcgQEAgdm9p
ZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBp
bWFnZSkKICAgICAgICAgbV9jb21wb3NpdGVkSW1hZ2UgPSAwOwogICAgIH0KIAotICAgIHNldENv
bnRlbnRzVG9NZWRpYShtX2NvbXBvc2l0ZWRJbWFnZS5nZXQoKSk7CisgICAgc2V0Q29udGVudHNU
b1BsYXRmb3JtTGF5ZXIobV9jb21wb3NpdGVkSW1hZ2UuZ2V0KCksIENvbnRlbnRzTGF5ZXJGb3JJ
bWFnZSk7CiAgICAgbm90aWZ5Q2hhbmdlKENvbnRlbnRDaGFuZ2UpOwogICAgIEdyYXBoaWNzTGF5
ZXI6OnNldENvbnRlbnRzVG9JbWFnZShpbWFnZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXI6OnNldENvbnRlbnRzVG9NZWRpYShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXll
ciogbWVkaWEpCit2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1Rv
UGxhdGZvcm1MYXllcihUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllciogbWVkaWEsIENvbnRlbnRz
TGF5ZXJQdXJwb3NlIHB1cnBvc2UpCiB7CiAgICAgaWYgKG1lZGlhID09IG1fY29udGVudHNMYXll
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb01l
ZGlhKG1lZGlhKTsKKyAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXll
cihtZWRpYSwgcHVycG9zZSk7CiAgICAgbm90aWZ5Q2hhbmdlKENvbnRlbnRDaGFuZ2UpOwogCiAg
ICAgaWYgKG1fY29udGVudHNMYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyLmgKaW5kZXggY2FjZWNiMzc2MzI5YzIwNDU1YWRhMWVhMzI4N2Q5NWFjNTU0MjI4Mi4uODJm
OGNhYjVlOWRlNDFiZWI2M2EyM2RiOTA5OTU5M2Q1MmNkODkzYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKQEAgLTY4LDggKzY4LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImKTsKICAgICBDb2xvciBzb2xpZENv
bG9yKCkgY29uc3QgeyByZXR1cm4gbV9zb2xpZENvbG9yOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNl
dENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKik7Ci0gICAgdmlydHVhbCB2b2lkIHNldENv
bnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciogY2FudmFzKSB7IHNldENvbnRlbnRzVG9NZWRp
YShjYW52YXMpOyB9CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVy
KFBsYXRmb3JtTGF5ZXIqLCBDb250ZW50c0xheWVyUHVycG9zZSk7CiAgICAgdmlydHVhbCB2b2lk
IHNldFNob3dEZWJ1Z0JvcmRlcihib29sKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
RGVidWdCb3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCB3aWR0aCkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHNldFNob3dSZXBhaW50Q291bnRlcihib29sKSBvdmVycmlkZTsKQEAgLTExMiw3
ICsxMTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJlcGFyZUJhY2tpbmdTdG9yZUlmTmVlZGVk
KCk7CiAgICAgYm9vbCBzaG91bGRIYXZlQmFja2luZ1N0b3JlKCkgY29uc3Q7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgcGxhdGZvcm1MYXllcldpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlIHsgc2V0Q29u
dGVudHNUb01lZGlhKDApOyB9CisgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtTGF5ZXJXaWxsQmVE
ZXN0cm95ZWQoKSBvdmVycmlkZSB7IHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKDAsIE5vQ29u
dGVudHNMYXllcik7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0UGxhdGZvcm1MYXllck5lZWRzRGlz
cGxheSgpIG92ZXJyaWRlIHsgc2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsgfQogCiAgICAgLy8g
VGhpcyBzZXQgb2YgZmxhZ3MgaGVscCB1cyBkZWZlciB3aGljaCBwcm9wZXJ0aWVzIG9mIHRoZSBs
YXllciBoYXZlIGJlZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggZjY0ZmVmMjg5YzdhZTU4OWVlMWExNTJlZWEzM2Q2
OTYwMzQ3YWQ2Zi4uNTZlNGI4ODk3NjA2NjJmMmYxZTdhOTA3ZDQxZDM0ZjEwMjA1MjgxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5jcHAKQEAgLTEyMSwxMiArMTIxLDEyIEBAIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKICAgICAs
IG1fcGVuZGluZ0NvbnRlbnRzU2NhbGVBZGp1c3RtZW50KGZhbHNlKQogICAgICwgbV9wZW5kaW5n
VmlzaWJsZVJlY3RBZGp1c3RtZW50KGZhbHNlKQogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQot
ICAgICwgbV9pc1ZhbGlkQ2FudmFzKGZhbHNlKQotICAgICwgbV9wZW5kaW5nQ2FudmFzT3BlcmF0
aW9uKE5vbmUpCisgICAgLCBtX2lzVmFsaWRQbGF0Zm9ybUxheWVyKGZhbHNlKQorICAgICwgbV9w
ZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbihOb25lKQogI2VuZGlmCiAgICAgLCBtX2Nvb3Jk
aW5hdG9yKDApCiAgICAgLCBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0cigwKQotICAgICwgbV9j
YW52YXNQbGF0Zm9ybUxheWVyKDApCisgICAgLCBtX3BsYXRmb3JtTGF5ZXIoMCkKICAgICAsIG1f
YW5pbWF0aW9uU3RhcnRlZFRpbWVyKHRoaXMsICZDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFu
aW1hdGlvblN0YXJ0ZWRUaW1lckZpcmVkKQogICAgICwgbV9zY3JvbGxhYmxlQXJlYSgwKQogewpA
QCAtMzgzLDM2ICszODMsMzcgQEAgYm9vbCBHcmFwaGljc0xheWVyOjpzdXBwb3J0c0NvbnRlbnRz
VGlsaW5nKCkKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c05lZWRz
RGlzcGxheSgpCiB7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgaWYgKG1fY2FudmFz
UGxhdGZvcm1MYXllcikKLSAgICAgICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHw9IFN5bmND
YW52YXM7CisgICAgaWYgKG1fcGxhdGZvcm1MYXllcikKKyAgICAgICAgbV9wZW5kaW5nUGxhdGZv
cm1MYXllck9wZXJhdGlvbiB8PSBTeW5jUGxhdGZvcm1MYXllcjsKICNlbmRpZgogCiAgICAgbm90
aWZ5Rmx1c2hSZXF1aXJlZCgpOwogICAgIGFkZFJlcGFpbnRSZWN0KGNvbnRlbnRzUmVjdCgpKTsK
IH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9DYW52YXMo
UGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcikKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxh
eWVyLCBDb250ZW50c0xheWVyUHVycG9zZSBwdXJwb3NlKQogewogI2lmIFVTRShHUkFQSElDU19T
VVJGQUNFKQotICAgIGlmIChtX2NhbnZhc1BsYXRmb3JtTGF5ZXIpIHsKLSAgICAgICAgQVNTRVJU
KG1fY2FudmFzVG9rZW4uaXNWYWxpZCgpKTsKKyAgICBpZiAobV9wbGF0Zm9ybUxheWVyKSB7Cisg
ICAgICAgIEFTU0VSVChtX3BsYXRmb3JtTGF5ZXJUb2tlbi5pc1ZhbGlkKCkpOwogICAgICAgICBp
ZiAoIXBsYXRmb3JtTGF5ZXIpIHsKLSAgICAgICAgICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlv
biB8PSBEZXN0cm95Q2FudmFzOwotICAgICAgICAgICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9u
ICY9IH5DcmVhdGVDYW52YXM7Ci0gICAgICAgIH0gIGVsc2UgaWYgKChtX2NhbnZhc1NpemUgIT0g
cGxhdGZvcm1MYXllci0+cGxhdGZvcm1MYXllclNpemUoKSkgfHwgKG1fY2FudmFzVG9rZW4gIT0g
cGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKSkpIHsKLSAgICAgICAgICAgIC8v
IG1fY2FudmFzVG9rZW4gY2FuIGJlIGRpZmZlcmVudCB0byBwbGF0Zm9ybUxheWVyLT5ncmFwaGlj
c1N1cmZhY2VUb2tlbigpLCBldmVuIGlmIG1fY2FudmFzUGxhdGZvcm1MYXllciBlcXVhbHMgcGxh
dGZvcm1MYXllci4KLSAgICAgICAgICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiB8PSBSZWNy
ZWF0ZUNhbnZhczsKKyAgICAgICAgICAgIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24g
fD0gRGVzdHJveVBsYXRmb3JtTGF5ZXI7CisgICAgICAgICAgICBtX3BlbmRpbmdQbGF0Zm9ybUxh
eWVyT3BlcmF0aW9uICY9IH5DcmVhdGVQbGF0Zm9ybUxheWVyOworICAgICAgICB9ICBlbHNlIGlm
ICgobV9wbGF0Zm9ybUxheWVyU2l6ZSAhPSBwbGF0Zm9ybUxheWVyLT5wbGF0Zm9ybUxheWVyU2l6
ZSgpKSB8fCAobV9wbGF0Zm9ybUxheWVyVG9rZW4gIT0gcGxhdGZvcm1MYXllci0+Z3JhcGhpY3NT
dXJmYWNlVG9rZW4oKSkpIHsKKyAgICAgICAgICAgIC8vIG1fcGxhdGZvcm1MYXllclRva2VuIGNh
biBiZSBkaWZmZXJlbnQgdG8gcGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKSwg
ZXZlbiBpZiBtX3BsYXRmb3JtTGF5ZXIgZXF1YWxzIHBsYXRmb3JtTGF5ZXIuCisgICAgICAgICAg
ICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uIHw9IFJlY3JlYXRlUGxhdGZvcm1MYXll
cjsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChwbGF0Zm9ybUxheWVyKQot
ICAgICAgICAgICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHw9IENyZWF0ZUFuZFN5bmNDYW52
YXM7CisgICAgICAgICAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uIHw9IENyZWF0
ZUFuZFN5bmNQbGF0Zm9ybUxheWVyOwogICAgIH0KIAotICAgIG1fY2FudmFzUGxhdGZvcm1MYXll
ciA9IHBsYXRmb3JtTGF5ZXI7Ci0gICAgLy8gbV9jYW52YXNUb2tlbiBpcyB1cGRhdGVkIG9ubHkg
aGVyZS4gSW4gZGV0YWlsLCB3aGVuIEdyYXBoaWNzQ29udGV4dDNEIGlzIGNoYW5nZWQgb3IgcmVz
aGFwZWQsIG1fY2FudmFzVG9rZW4gaXMgY2hhbmdlZCBhbmQgc2V0Q29udGVudHNUb0NhbnZhcygp
IGlzIGFsd2F5cyBjYWxsZWQuCi0gICAgbV9jYW52YXNTaXplID0gbV9jYW52YXNQbGF0Zm9ybUxh
eWVyID8gbV9jYW52YXNQbGF0Zm9ybUxheWVyLT5wbGF0Zm9ybUxheWVyU2l6ZSgpIDogSW50U2l6
ZSgpOwotICAgIG1fY2FudmFzVG9rZW4gPSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgPyBtX2NhbnZh
c1BsYXRmb3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2VuKCkgOiBHcmFwaGljc1N1cmZhY2VU
b2tlbigpOwotICAgIEFTU0VSVCghKCFtX2NhbnZhc1Rva2VuLmlzVmFsaWQoKSAmJiBtX2NhbnZh
c1BsYXRmb3JtTGF5ZXIpKTsKKyAgICBtX3BsYXRmb3JtTGF5ZXIgPSBwbGF0Zm9ybUxheWVyOwor
ICAgIC8vIG1fcGxhdGZvcm1MYXllclRva2VuIGlzIHVwZGF0ZWQgb25seSBoZXJlLiAKKyAgICAv
LyBJbiBkZXRhaWwsIHdoZW4gR3JhcGhpY3NDb250ZXh0M0QgaXMgY2hhbmdlZCBvciByZXNoYXBl
ZCwgbV9wbGF0Zm9ybUxheWVyVG9rZW4gaXMgY2hhbmdlZCBhbmQgc2V0Q29udGVudHNUb1BsYXRm
b3JtTGF5ZXIoKSBpcyBhbHdheXMgY2FsbGVkLgorICAgIG1fcGxhdGZvcm1MYXllclNpemUgPSBt
X3BsYXRmb3JtTGF5ZXIgPyBtX3BsYXRmb3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCkgOiBJ
bnRTaXplKCk7CisgICAgbV9wbGF0Zm9ybUxheWVyVG9rZW4gPSBtX3BsYXRmb3JtTGF5ZXIgPyBt
X3BsYXRmb3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2VuKCkgOiBHcmFwaGljc1N1cmZhY2VU
b2tlbigpOworICAgIEFTU0VSVCghKCFtX3BsYXRmb3JtTGF5ZXJUb2tlbi5pc1ZhbGlkKCkgJiYg
bV9wbGF0Zm9ybUxheWVyKSk7CiAKICAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7CiAjZWxzZQpA
QCAtNzIwLDUzICs3MjEsNTMgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNB
bmltYXRpb25zKCkKIH0KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNDYW52YXMoKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnN5bmNQbGF0Zm9ybUxheWVyKCkKIHsKLSAgICBkZXN0cm95Q2FudmFzSWZOZWVkZWQo
KTsKLSAgICBjcmVhdGVDYW52YXNJZk5lZWRlZCgpOworICAgIGRlc3Ryb3lQbGF0Zm9ybUxheWVy
SWZOZWVkZWQoKTsKKyAgICBjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQoKTsKIAotICAgIGlm
ICghKG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiAmIFN5bmNDYW52YXMpKQorICAgIGlmICghKG1f
cGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gJiBTeW5jUGxhdGZvcm1MYXllcikpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiAmPSB+U3luY0NhbnZh
czsKKyAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uICY9IH5TeW5jUGxhdGZvcm1M
YXllcjsKIAotICAgIGlmICghbV9pc1ZhbGlkQ2FudmFzKQorICAgIGlmICghbV9pc1ZhbGlkUGxh
dGZvcm1MYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1fY2FudmFzUGxhdGZv
cm1MYXllcik7Ci0gICAgbV9sYXllclN0YXRlLmNhbnZhc0Zyb250QnVmZmVyID0gbV9jYW52YXNQ
bGF0Zm9ybUxheWVyLT5jb3B5VG9HcmFwaGljc1N1cmZhY2UoKTsKLSAgICBtX2xheWVyU3RhdGUu
Y2FudmFzU2hvdWxkU3dhcEJ1ZmZlcnMgPSB0cnVlOworICAgIEFTU0VSVChtX3BsYXRmb3JtTGF5
ZXIpOworICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyRnJvbnRCdWZmZXIgPSBtX3BsYXRm
b3JtTGF5ZXItPmNvcHlUb0dyYXBoaWNzU3VyZmFjZSgpOworICAgIG1fbGF5ZXJTdGF0ZS5wbGF0
Zm9ybUxheWVyU2hvdWxkU3dhcEJ1ZmZlcnMgPSB0cnVlOwogfQogCi12b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6ZGVzdHJveUNhbnZhc0lmTmVlZGVkKCkKK3ZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpkZXN0cm95UGxhdGZvcm1MYXllcklmTmVlZGVkKCkKIHsKLSAgICBpZiAo
IShtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24gJiBEZXN0cm95Q2FudmFzKSkKKyAgICBpZiAoISht
X3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uICYgRGVzdHJveVBsYXRmb3JtTGF5ZXIpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV9pc1ZhbGlkQ2FudmFzKSB7Ci0gICAgICAgIG1f
aXNWYWxpZENhbnZhcyA9IGZhbHNlOwotICAgICAgICBtX2xheWVyU3RhdGUuY2FudmFzVG9rZW4g
PSBHcmFwaGljc1N1cmZhY2VUb2tlbigpOwotICAgICAgICBtX2xheWVyU3RhdGUuY2FudmFzQ2hh
bmdlZCA9IHRydWU7CisgICAgaWYgKG1faXNWYWxpZFBsYXRmb3JtTGF5ZXIpIHsKKyAgICAgICAg
bV9pc1ZhbGlkUGxhdGZvcm1MYXllciA9IGZhbHNlOworICAgICAgICBtX2xheWVyU3RhdGUucGxh
dGZvcm1MYXllclRva2VuID0gR3JhcGhpY3NTdXJmYWNlVG9rZW4oKTsKKyAgICAgICAgbV9sYXll
clN0YXRlLnBsYXRmb3JtTGF5ZXJDaGFuZ2VkID0gdHJ1ZTsKICAgICB9CiAKLSAgICBtX3BlbmRp
bmdDYW52YXNPcGVyYXRpb24gJj0gfkRlc3Ryb3lDYW52YXM7CisgICAgbV9wZW5kaW5nUGxhdGZv
cm1MYXllck9wZXJhdGlvbiAmPSB+RGVzdHJveVBsYXRmb3JtTGF5ZXI7CiB9CiAKLXZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVDYW52YXNJZk5lZWRlZCgpCit2b2lkIENvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllcjo6Y3JlYXRlUGxhdGZvcm1MYXllcklmTmVlZGVkKCkKIHsKLSAg
ICBpZiAoIShtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24gJiBDcmVhdGVDYW52YXMpKQorICAgIGlm
ICghKG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gJiBDcmVhdGVQbGF0Zm9ybUxheWVy
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1fY2FudmFzUGxhdGZvcm1MYXllcik7
Ci0gICAgaWYgKCFtX2lzVmFsaWRDYW52YXMpIHsKLSAgICAgICAgbV9sYXllclN0YXRlLmNhbnZh
c1NpemUgPSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCk7Ci0gICAg
ICAgIG1fbGF5ZXJTdGF0ZS5jYW52YXNUb2tlbiA9IG1fY2FudmFzUGxhdGZvcm1MYXllci0+Z3Jh
cGhpY3NTdXJmYWNlVG9rZW4oKTsKLSAgICAgICAgbV9sYXllclN0YXRlLmNhbnZhc1N1cmZhY2VG
bGFncyA9IG1fY2FudmFzUGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlRmxhZ3MoKTsKLSAg
ICAgICAgbV9sYXllclN0YXRlLmNhbnZhc0NoYW5nZWQgPSB0cnVlOwotICAgICAgICBtX2lzVmFs
aWRDYW52YXMgPSB0cnVlOworICAgIEFTU0VSVChtX3BsYXRmb3JtTGF5ZXIpOworICAgIGlmICgh
bV9pc1ZhbGlkUGxhdGZvcm1MYXllcikgeworICAgICAgICBtX2xheWVyU3RhdGUucGxhdGZvcm1M
YXllclNpemUgPSBtX3BsYXRmb3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCk7CisgICAgICAg
IG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4gPSBtX3BsYXRmb3JtTGF5ZXItPmdyYXBo
aWNzU3VyZmFjZVRva2VuKCk7CisgICAgICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyU3Vy
ZmFjZUZsYWdzID0gbV9wbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZhY2VGbGFncygpOworICAg
ICAgICBtX2xheWVyU3RhdGUucGxhdGZvcm1MYXllckNoYW5nZWQgPSB0cnVlOworICAgICAgICBt
X2lzVmFsaWRQbGF0Zm9ybUxheWVyID0gdHJ1ZTsKICAgICB9CiAKLSAgICBtX3BlbmRpbmdDYW52
YXNPcGVyYXRpb24gJj0gfkNyZWF0ZUNhbnZhczsKKyAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVy
T3BlcmF0aW9uICY9IH5DcmVhdGVQbGF0Zm9ybUxheWVyOwogfQogI2VuZGlmCiAKQEAgLTc5MSw3
ICs3OTIsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGlu
Z1N0YXRlRm9yVGhpc0xheWVyT25seSgpCiAgICAgc3luY0ZpbHRlcnMoKTsKICNlbmRpZgogI2lm
IFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIHN5bmNDYW52YXMoKTsKKyAgICBzeW5jUGxhdGZv
cm1MYXllcigpOwogI2VuZGlmCiAKICAgICAvLyBPbmx5IHVuc2V0IG1fbW92aW5nVmlzaWJsZVJl
Y3QgYWZ0ZXIgd2UgaGF2ZSB1cGRhdGVkIHRoZSB2aXNpYmxlIHJlY3QgYWZ0ZXIgdGhlIGFuaW1h
dGlvbiBzdG9wcGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5oCmluZGV4IDE0ODZjMjA3YmUyODY0MDQ0OGI1MDYxMzdhNmIwYjQzNDIw
MTE0ZWIuLmE2YTU4ZjMyYjQ3NDZlMjc1ZWY1MWM4NjQ2NWI0YmU5ZTY4NTc0YmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAg
LTkyLDcgKzkyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93RGVidWdCb3Jk
ZXIoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dSZXBhaW50Q291bnRl
cihib29sKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGlyZWN0bHlDb21wb3Np
dGVJbWFnZShJbWFnZSopIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250
ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQ
dXJwb3NlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWFza0xheWVyKEdyYXBoaWNz
TGF5ZXIqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwbGljYXRlZEJ5TGF5ZXIo
R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3Bs
YXkoKSBvdmVycmlkZTsKQEAgLTEwOSw3ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHJlbW92ZUFuaW1hdGlvbihjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgc3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCByZXN1bWVBbmltYXRpb25zKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIHVz
ZXNDb250ZW50c0xheWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jYW52YXNQbGF0Zm9y
bUxheWVyIHx8IG1fY29tcG9zaXRlZEltYWdlOyB9CisgICAgdmlydHVhbCBib29sIHVzZXNDb250
ZW50c0xheWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wbGF0Zm9ybUxheWVyIHx8IG1f
Y29tcG9zaXRlZEltYWdlOyB9CiAKICAgICB2b2lkIHN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5j
bHVkaW5nU3ViTGF5ZXJzKCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50QnVmZmVyc0luY2x1ZGlu
Z1N1YkxheWVycygpOwpAQCAtMTU0LDE4ICsxNTQsMTggQEAgcHVibGljOgogCiBwcml2YXRlOgog
I2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIGVudW0gUGVuZGluZ0NhbnZhc09wZXJhdGlv
biB7CisgICAgZW51bSBQZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbiB7CiAgICAgICAgIE5v
bmUgPSAweDAwLAotICAgICAgICBDcmVhdGVDYW52YXMgPSAweDAxLAotICAgICAgICBEZXN0cm95
Q2FudmFzID0gMHgwMiwKLSAgICAgICAgU3luY0NhbnZhcyA9IDB4MDQsCi0gICAgICAgIENyZWF0
ZUFuZFN5bmNDYW52YXMgPSBDcmVhdGVDYW52YXMgfCBTeW5jQ2FudmFzLAotICAgICAgICBSZWNy
ZWF0ZUNhbnZhcyA9IENyZWF0ZUFuZFN5bmNDYW52YXMgfCBEZXN0cm95Q2FudmFzCisgICAgICAg
IENyZWF0ZVBsYXRmb3JtTGF5ZXIgPSAweDAxLAorICAgICAgICBEZXN0cm95UGxhdGZvcm1MYXll
ciA9IDB4MDIsCisgICAgICAgIFN5bmNQbGF0Zm9ybUxheWVyID0gMHgwNCwKKyAgICAgICAgQ3Jl
YXRlQW5kU3luY1BsYXRmb3JtTGF5ZXIgPSBDcmVhdGVQbGF0Zm9ybUxheWVyIHwgU3luY1BsYXRm
b3JtTGF5ZXIsCisgICAgICAgIFJlY3JlYXRlUGxhdGZvcm1MYXllciA9IENyZWF0ZUFuZFN5bmNQ
bGF0Zm9ybUxheWVyIHwgRGVzdHJveVBsYXRmb3JtTGF5ZXIKICAgICB9OwogCi0gICAgdm9pZCBz
eW5jQ2FudmFzKCk7Ci0gICAgdm9pZCBkZXN0cm95Q2FudmFzSWZOZWVkZWQoKTsKLSAgICB2b2lk
IGNyZWF0ZUNhbnZhc0lmTmVlZGVkKCk7CisgICAgdm9pZCBzeW5jUGxhdGZvcm1MYXllcigpOwor
ICAgIHZvaWQgZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRlZCgpOworICAgIHZvaWQgY3JlYXRl
UGxhdGZvcm1MYXllcklmTmVlZGVkKCk7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRE
ZWJ1Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IHdpZHRoKSBvdmVycmlkZTsKQEAgLTIzMiw4
ICsyMzIsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wZW5kaW5nQ29udGVudHNTY2FsZUFkanVz
dG1lbnQgOiAxOwogICAgIGJvb2wgbV9wZW5kaW5nVmlzaWJsZVJlY3RBZGp1c3RtZW50IDogMTsK
ICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICBib29sIG1faXNWYWxpZENhbnZhcyA6IDE7
Ci0gICAgdW5zaWduZWQgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIDogMzsKKyAgICBib29sIG1f
aXNWYWxpZFBsYXRmb3JtTGF5ZXIgOiAxOworICAgIHVuc2lnbmVkIG1fcGVuZGluZ1BsYXRmb3Jt
TGF5ZXJPcGVyYXRpb24gOiAzOwogI2VuZGlmCiAKICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXJDbGllbnQqIG1fY29vcmRpbmF0b3I7CkBAIC0yNDQsMTAgKzI0NCwxMCBAQCBwcml2YXRlOgog
ICAgIE5hdGl2ZUltYWdlUHRyIG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyOwogICAgIFJlZlB0
cjxDb29yZGluYXRlZEltYWdlQmFja2luZz4gbV9jb29yZGluYXRlZEltYWdlQmFja2luZzsKIAot
ICAgIFBsYXRmb3JtTGF5ZXIqIG1fY2FudmFzUGxhdGZvcm1MYXllcjsKKyAgICBQbGF0Zm9ybUxh
eWVyKiBtX3BsYXRmb3JtTGF5ZXI7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgSW50
U2l6ZSBtX2NhbnZhc1NpemU7Ci0gICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4gbV9jYW52YXNUb2tl
bjsKKyAgICBJbnRTaXplIG1fcGxhdGZvcm1MYXllclNpemU7CisgICAgR3JhcGhpY3NTdXJmYWNl
VG9rZW4gbV9wbGF0Zm9ybUxheWVyVG9rZW47CiAjZW5kaWYKICAgICBUaW1lcjxDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI+IG1fYW5pbWF0aW9uU3RhcnRlZFRpbWVyOwogICAgIEdyYXBoaWNzTGF5
ZXJBbmltYXRpb25zIG1fYW5pbWF0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKaW5kZXggZWU2M2M1NzMzZjU3MWEwMDNk
YjFkYmQ1ZTEwNGE4NDM4NDVlMWNlMS4uNDkxNDAzYjM0MjYyMzc2ZmE3NDI2ODNlMGM4NmRlNTI0
N2E0MzFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZS5jcHAKQEAgLTE2NSwzNyArMTY1LDM3IEBAIHZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZpeGVkTGF5ZXJzKCkKIH0KIAogI2lmIFVT
RShHUkFQSElDU19TVVJGQUNFKQotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNyZWF0
ZUNhbnZhc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIsIGNvbnN0IENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllclN0YXRlJiBzdGF0ZSkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lOjpjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiBsYXll
ciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmIHN0YXRlKQogewotICAgIGlm
ICghc3RhdGUuY2FudmFzVG9rZW4uaXNWYWxpZCgpKQorICAgIGlmICghc3RhdGUucGxhdGZvcm1M
YXllclRva2VuLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPFRleHR1
cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlPiBjYW52YXNCYWNraW5nU3RvcmUoVGV4dHVyZU1h
cHBlclN1cmZhY2VCYWNraW5nU3RvcmU6OmNyZWF0ZSgpKTsKLSAgICBtX3N1cmZhY2VCYWNraW5n
U3RvcmVzLnNldChsYXllciwgY2FudmFzQmFja2luZ1N0b3JlKTsKLSAgICBjYW52YXNCYWNraW5n
U3RvcmUtPnNldEdyYXBoaWNzU3VyZmFjZShHcmFwaGljc1N1cmZhY2U6OmNyZWF0ZShzdGF0ZS5j
YW52YXNTaXplLCBzdGF0ZS5jYW52YXNTdXJmYWNlRmxhZ3MsIHN0YXRlLmNhbnZhc1Rva2VuKSk7
Ci0gICAgbGF5ZXItPnNldENvbnRlbnRzTGF5ZXIoY2FudmFzQmFja2luZ1N0b3JlLmdldCgpKTsK
KyAgICBSZWZQdHI8VGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU+IHBsYXRmb3JtTGF5
ZXJCYWNraW5nU3RvcmUoVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU6OmNyZWF0ZSgp
KTsKKyAgICBtX3N1cmZhY2VCYWNraW5nU3RvcmVzLnNldChsYXllciwgcGxhdGZvcm1MYXllckJh
Y2tpbmdTdG9yZSk7CisgICAgcGxhdGZvcm1MYXllckJhY2tpbmdTdG9yZS0+c2V0R3JhcGhpY3NT
dXJmYWNlKEdyYXBoaWNzU3VyZmFjZTo6Y3JlYXRlKHN0YXRlLnBsYXRmb3JtTGF5ZXJTaXplLCBz
dGF0ZS5wbGF0Zm9ybUxheWVyU3VyZmFjZUZsYWdzLCBzdGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4p
KTsKKyAgICBsYXllci0+c2V0Q29udGVudHNMYXllcihwbGF0Zm9ybUxheWVyQmFja2luZ1N0b3Jl
LmdldCgpKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnN5bmNDYW52YXNJ
Zk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c3lu
Y1BsYXRmb3JtTGF5ZXJJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCiB7CiAgICAgQVNTRVJUKG1fdGV4
dHVyZU1hcHBlcik7CiAKLSAgICBpZiAoc3RhdGUuY2FudmFzQ2hhbmdlZCkgewotICAgICAgICBk
ZXN0cm95Q2FudmFzSWZOZWVkZWQobGF5ZXIsIHN0YXRlKTsKLSAgICAgICAgY3JlYXRlQ2FudmFz
SWZOZWVkZWQobGF5ZXIsIHN0YXRlKTsKKyAgICBpZiAoc3RhdGUucGxhdGZvcm1MYXllckNoYW5n
ZWQpIHsKKyAgICAgICAgZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRlZChsYXllciwgc3RhdGUp
OworICAgICAgICBjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQobGF5ZXIsIHN0YXRlKTsKICAg
ICB9CiAKLSAgICBpZiAoc3RhdGUuY2FudmFzU2hvdWxkU3dhcEJ1ZmZlcnMpIHsKKyAgICBpZiAo
c3RhdGUucGxhdGZvcm1MYXllclNob3VsZFN3YXBCdWZmZXJzKSB7CiAgICAgICAgIEFTU0VSVCht
X3N1cmZhY2VCYWNraW5nU3RvcmVzLmNvbnRhaW5zKGxheWVyKSk7CiAgICAgICAgIFN1cmZhY2VC
YWNraW5nU3RvcmVNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zdXJmYWNlQmFja2luZ1N0b3Jlcy5maW5k
KGxheWVyKTsKLSAgICAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3Jl
PiBjYW52YXNCYWNraW5nU3RvcmUgPSBpdC0+dmFsdWU7Ci0gICAgICAgIGNhbnZhc0JhY2tpbmdT
dG9yZS0+c3dhcEJ1ZmZlcnNJZk5lZWRlZChzdGF0ZS5jYW52YXNGcm9udEJ1ZmZlcik7CisgICAg
ICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZT4gcGxhdGZvcm1MYXll
ckJhY2tpbmdTdG9yZSA9IGl0LT52YWx1ZTsKKyAgICAgICAgcGxhdGZvcm1MYXllckJhY2tpbmdT
dG9yZS0+c3dhcEJ1ZmZlcnNJZk5lZWRlZChzdGF0ZS5wbGF0Zm9ybUxheWVyRnJvbnRCdWZmZXIp
OwogICAgIH0KIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmRlc3Ryb3lDYW52
YXNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6
ZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBj
b25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgaWYgKHN0
YXRlLmNhbnZhc1Rva2VuLmlzVmFsaWQoKSkKKyAgICBpZiAoc3RhdGUucGxhdGZvcm1MYXllclRv
a2VuLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zdXJmYWNlQmFja2luZ1N0
b3Jlcy5yZW1vdmUobGF5ZXIpOwpAQCAtMzE5LDcgKzMxOSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lOjpzZXRMYXllclN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3Qg
Q29vcmRpCiAjZW5kaWYKICAgICBzZXRMYXllckFuaW1hdGlvbnNJZk5lZWRlZChsYXllciwgbGF5
ZXJTdGF0ZSk7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgc3luY0NhbnZhc0lmTmVl
ZGVkKGxheWVyLCBsYXllclN0YXRlKTsKKyAgICBzeW5jUGxhdGZvcm1MYXllcklmTmVlZGVkKGxh
eWVyLCBsYXllclN0YXRlKTsKICNlbmRpZgogICAgIHNldExheWVyUmVwYWludENvdW50SWZOZWVk
ZWQobGF5ZXIsIGxheWVyU3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCmluZGV4IDc1YTQ3MmQ0ZDEyOWMzMzk3ODFlOTk2
N2JjMWQ5YWRjNGZhYTc4ZGIuLjY1ZTVhYTEwNWE5YTYyYjE1ZDY5MDJlYjhlOWE3NGVhYWEyYWQ0
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9j
b29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lLmgKQEAgLTEwMCw5ICsxMDAsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgdm9pZCBz
ZXRMYXllckFuaW1hdGlvbnNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQot
ICAgIHZvaWQgY3JlYXRlQ2FudmFzSWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3Qg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKLSAgICB2b2lkIHN5bmNDYW52YXNJZk5l
ZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJT
dGF0ZSYpOwotICAgIHZvaWQgZGVzdHJveUNhbnZhc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXll
ciosIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CisgICAgdm9pZCBjcmVh
dGVQbGF0Zm9ybUxheWVySWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKKyAgICB2b2lkIHN5bmNQbGF0Zm9ybUxheWVySWZO
ZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
U3RhdGUmKTsKKyAgICB2b2lkIGRlc3Ryb3lQbGF0Zm9ybUlmTmVlZGVkKFRleHR1cmVNYXBwZXJM
YXllciosIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CiAjZW5kaWYKICAg
ICB2b2lkIHNldExheWVyUmVwYWludENvdW50SWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwg
Y29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oCmluZGV4IGQ2YzBhYWU5
ZjAwZmFjYmM4MmU1Mjc5OTViMWEwOWZlOWI3NmExNGIuLjc3NTJhN2Y3NGZmZTg1YzQyNjg4YTgy
M2ZkZjliNzBhNDNiNWE5OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29v
cmRpbmF0ZWRHcmFwaGljc1N0YXRlLmgKQEAgLTg5LDggKzg5LDggQEAgc3RydWN0IENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllclN0YXRlIHsKICAgICAgICAgICAgIGJvb2wgZmlsdGVyc0NoYW5nZWQ6
IDE7CiAgICAgICAgICAgICBib29sIGNoaWxkcmVuQ2hhbmdlZDogMTsKICAgICAgICAgICAgIGJv
b2wgcmVwYWludENvdW50Q2hhbmdlZCA6IDE7Ci0gICAgICAgICAgICBib29sIGNhbnZhc0NoYW5n
ZWQ6IDE7Ci0gICAgICAgICAgICBib29sIGNhbnZhc1Nob3VsZFN3YXBCdWZmZXJzOiAxOworICAg
ICAgICAgICAgYm9vbCBwbGF0Zm9ybUxheWVyQ2hhbmdlZDogMTsKKyAgICAgICAgICAgIGJvb2wg
cGxhdGZvcm1MYXllclNob3VsZFN3YXBCdWZmZXJzOiAxOwogICAgICAgICAgICAgYm9vbCBpc1Nj
cm9sbGFibGVDaGFuZ2VkOiAxOwogICAgICAgICAgICAgYm9vbCBjb21taXR0ZWRTY3JvbGxPZmZz
ZXRDaGFuZ2VkOiAxOwogICAgICAgICAgICAgYm9vbCBjb250ZW50c1RpbGluZ0NoYW5nZWQ6IDE7
CkBAIC0xMzEsNyArMTMxLDcgQEAgc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRl
IHsKICAgICAgICAgLCBtYXNrKEludmFsaWRDb29yZGluYXRlZExheWVySUQpCiAgICAgICAgICwg
aW1hZ2VJRChJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkKICNpZiBVU0UoR1JBUEhJ
Q1NfU1VSRkFDRSkKLSAgICAgICAgLCBjYW52YXNGcm9udEJ1ZmZlcigwKQorICAgICAgICAsIHBs
YXRmb3JtTGF5ZXJGcm9udEJ1ZmZlcigwKQogI2VuZGlmCiAgICAgewogICAgIH0KQEAgLTE2Mywx
MCArMTYzLDEwIEBAIHN0cnVjdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSB7CiAgICAg
VmVjdG9yPFRpbGVVcGRhdGVJbmZvPiB0aWxlc1RvVXBkYXRlOwogCiAjaWYgVVNFKEdSQVBISUNT
X1NVUkZBQ0UpCi0gICAgSW50U2l6ZSBjYW52YXNTaXplOwotICAgIEdyYXBoaWNzU3VyZmFjZVRv
a2VuIGNhbnZhc1Rva2VuOwotICAgIHVpbnQzMl90IGNhbnZhc0Zyb250QnVmZmVyOwotICAgIEdy
YXBoaWNzU3VyZmFjZTo6RmxhZ3MgY2FudmFzU3VyZmFjZUZsYWdzOworICAgIEludFNpemUgcGxh
dGZvcm1MYXllclNpemU7CisgICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4gcGxhdGZvcm1MYXllclRv
a2VuOworICAgIHVpbnQzMl90IHBsYXRmb3JtTGF5ZXJGcm9udEJ1ZmZlcjsKKyAgICBHcmFwaGlj
c1N1cmZhY2U6OkZsYWdzIHBsYXRmb3JtTGF5ZXJTdXJmYWNlRmxhZ3M7CiAjZW5kaWYKIAogICAg
IEludFNpemUgY29tbWl0dGVkU2Nyb2xsT2Zmc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCAwZjcwMDE5ZWFkOGVjNGI1ZWRjZmI0
ZDhlYjAyM2FiZjA0MTRiYmNlLi4yZjUwNGUyYmIzMzlhMjFiOWRhZjYzMDUxNzhkNDVlNmEwM2Uy
ZTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcApAQCAtNTg5LDIwICs1ODksMjAgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZUNvbmZpZ3VyYXRpb24oKQogICAgICAgICB9CiAjZWxzZQogICAgICAgICBpZiAoIXBsdWdpblZp
ZXdCYXNlLT5zaG91bGROb3RBZGRMYXllcigpKQotICAgICAgICAgICAgbV9ncmFwaGljc0xheWVy
LT5zZXRDb250ZW50c1RvTWVkaWEocGx1Z2luVmlld0Jhc2UtPnBsYXRmb3JtTGF5ZXIoKSk7Cisg
ICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKHBs
dWdpblZpZXdCYXNlLT5wbGF0Zm9ybUxheWVyKCksIEdyYXBoaWNzTGF5ZXI6OkNvbnRlbnRzTGF5
ZXJGb3JQbHVnaW4pOwogI2VuZGlmCiAgICAgfQogI2lmIEVOQUJMRShWSURFTykKICAgICBlbHNl
IGlmIChyZW5kZXJlcigpLmlzVmlkZW8oKSkgewogICAgICAgICBIVE1MTWVkaWFFbGVtZW50KiBt
ZWRpYUVsZW1lbnQgPSB0b0hUTUxNZWRpYUVsZW1lbnQocmVuZGVyZXIoKS5lbGVtZW50KCkpOwot
ICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9NZWRpYShtZWRpYUVsZW1lbnQt
PnBsYXRmb3JtTGF5ZXIoKSk7CisgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNU
b1BsYXRmb3JtTGF5ZXIobWVkaWFFbGVtZW50LT5wbGF0Zm9ybUxheWVyKCksIEdyYXBoaWNzTGF5
ZXI6OkNvbnRlbnRzTGF5ZXJGb3JNZWRpYSk7CiAgICAgfQogI2VuZGlmCiAjaWYgRU5BQkxFKFdF
QkdMKSB8fCBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIGVsc2UgaWYgKHJlbmRl
cmVyKCkuaXNDYW52YXMoKSAmJiBjYW52YXNDb21wb3NpdGluZ1N0cmF0ZWd5KHJlbmRlcmVyKCkp
ID09IENhbnZhc0FzTGF5ZXJDb250ZW50cykgewogICAgICAgICBjb25zdCBIVE1MQ2FudmFzRWxl
bWVudCogY2FudmFzID0gdG9IVE1MQ2FudmFzRWxlbWVudChyZW5kZXJlcigpLmVsZW1lbnQoKSk7
CiAgICAgICAgIGlmIChDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gY2FudmFzLT5y
ZW5kZXJpbmdDb250ZXh0KCkpCi0gICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRl
bnRzVG9DYW52YXMoY29udGV4dC0+cGxhdGZvcm1MYXllcigpKTsKKyAgICAgICAgICAgIG1fZ3Jh
cGhpY3NMYXllci0+c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoY29udGV4dC0+cGxhdGZvcm1M
YXllcigpLCBHcmFwaGljc0xheWVyOjpDb250ZW50c0xheWVyRm9yQ2FudmFzKTsKICAgICAgICAg
bGF5ZXJDb25maWdDaGFuZ2VkID0gdHJ1ZTsKICAgICB9CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236727</attachid>
            <date>2014-08-17 01:41:43 -0700</date>
            <delta_ts>2014-08-17 03:28:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109658-20140817174137.patch</filename>
            <type>text/plain</type>
            <size>37707</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDcyZTYyODc1ODkxYjll
MjU4MWY1MTBlMWM4MDUwYWI3ZmY0NmRkNi4uZjhmMzg2M2UwMjNhOWY0MWM2ODEwODdkODMyZjhk
Mjk2YjI2NzIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE0LTA4LTE2ICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgVW5pZnkgR3JhcGhpY3NM
YXllcjo6c2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk2NTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiBwYXRjaCBv
cmlnaW5hbGx5IHdyaXR0ZW4gYnkgVGltIEhvcnRvbi4KKyAgICAgICAgTWVyZ2Ugc2V0Q29udGVu
dHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzIGludG8gc2V0Q29udGVudHNUb1BsYXRm
b3JtTGF5ZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRqdXN0IGV4
cG9ydHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6Cisg
ICAgICAgIE1vdmUgQ29udGVudHNMYXllclB1cnBvc2UgZW51bSB1cCBvdXQgb2YgR3JhcGhpY3NM
YXllciBwbGF0Zm9ybSBpbXBsbWVudGF0aW9ucworICAgICAgICBhbmQgaW50byBHcmFwaGljc0xh
eWVyLCBzbyB3ZSBjYW4gdXNlIGl0IGFzIGEgcGFyYW1ldGVyLgorICAgICAgICBBZGQgQ29udGVu
dHNMYXllckZvclBsdWdpbi4KKworICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6c2V0
Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICBSZW1vdmUgc2V0Q29udGVudHNUb01l
ZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzLCBhbmQgcmVwbGFjZSB0aGVtCisgICAgICAgIHdp
dGggc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIsIHdoaWNoIHByZXZpb3VzbHkgZXhpc3RlZCBi
dXQgd2FzIHVudXNlZAorICAgICAgICBhbmQgc2ltcGx5IGNhbGxlZCBzZXRDb250ZW50c1RvTWVk
aWEuCisgICAgICAgIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyIHRha2VzIGEgQ29udGVudHNM
YXllclB1cnBvc2UsIHByaW1hcmlseQorICAgICAgICBzbyB0aGF0IEdyYXBoaWNzTGF5ZXJDQSBj
YW4ga25vdyB3aGV0aGVyIGl0IG5lZWRzIHRvIHNldE5lZWRzRGlzcGxheQorICAgICAgICB0aGUg
bGF5ZXIgd2hlbiBwYXJlbnRpbmcgaXQgKGNhbnZhcykgb3Igbm90IChldmVyeXRoaW5nIGVsc2Up
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1BsYXRmb3Jt
TGF5ZXIpOgorICAgICAgICBSZW5hbWUgZnVuY3Rpb24gc2V0Q29udGVudHNUb01lZGlhIC0+IHNl
dENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyLgorICAgICAgICBSZW5hbWUgYXJndW1lbnQgbWVkaWFM
YXllciAtPiBwbGF0Zm9ybUxheWVyLgorICAgICAgICBTdG9yZSB0aGUgcGFzc2VkLWluIENvbnRl
bnRzTGF5ZXJQdXJwb3NlLgorICAgICAgICBSZW1vdmUgc2V0Q29udGVudHNUb0NhbnZhcy4KKwor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZv
cmVTdWJsYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVD
b250ZW50c1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICBSZW1vdmUgdXBkYXRlQ29udGVudHNNZWRp
YUxheWVyIGFuZCB1cGRhdGVDb250ZW50c0NhbnZhcyBsYXllciwKKyAgICAgICAgYWRkIHVwZGF0
ZUNvbnRlbnRzUGxhdGZvcm1MYXllci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICBEbyB0aGUgc2FtZSB0byB0aGUgTGF5ZXJDaGFu
Z2UgZW51bS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb1Bs
YXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzeW5jUGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmRlc3Ryb3lQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBv
c2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgRm9sZCB0aGVzZSB0b2dldGhl
ciBpbiB0aGUgc2FtZSB3YXkgYXMgZWxzZXdoZXJlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAg
ICAgICBEbyB0aGUgc2FtZSB0byB0aGUgTGF5ZXJDaGFuZ2UgZW51bS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjcmVh
dGVQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lOjpzeW5jUGxhdGZvcm1MYXllcklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVy
U3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZTo6Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyU3RhdGUpOgorICAgICAgICBSZW5hbWUgY2FudmFzTGF5ZXIgLT4gcGxhdGZvcm1MYXll
ci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9uKToKKyAg
ICAgICAgVXNlIHRoZSBuZXcgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIsIHBhc3NpbmcgaW4g
dGhlIHJlbGV2YW50IENvbnRlbnRzTGF5ZXJQdXJwb3NlLgorCiAyMDE0LTA4LTE1ICBEZWFuIEph
Y2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTY0MTczKTog
U2FmYXJpIEF1dG9GaWxsIGJ1dHRvbiBpbiBwb3BvdmVyLCBkZWZhdWx0IGJ1dHRvbnMgb24gaUNs
b3VkIGNvbnRyb2wgcGFuZWwgYW5kIFNhZmFyaSBTYWZlIEJyb3dzaW5nIHBhZ2VzIGRvbid0IGhh
dmUgZGVmYXVsdCBhcHBlYXJhbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDUyNWUzNTRiMDNm
MmQ2ZmQ2ZThlNTJlNGQ2NWFhMDViNTkxY2Y1NDUuLjdmZGVmZDUyODUxMjYzYmFhZGY3OTQ3ZWM3
M2E3OGYzMjBiYmNjYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC01NzgsMTIgKzU3OCwxMCBA
QCBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE3c2V0Q3VzdG9tQmVoYXZpb3JFTlNfMTNH
cmFwaGljc0xheWVyMTRDdXN0b21CZWhhdgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0Ex
N3N1c3BlbmRBbmltYXRpb25zRWQKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRC
YWNrZ3JvdW5kQ29sb3JFUktOU181Q29sb3JFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJD
QTE4c2V0Q29udGVudHNUb0ltYWdlRVBOU181SW1hZ2VFCi1fX1pON1dlYkNvcmUxNUdyYXBoaWNz
TGF5ZXJDQTE4c2V0Q29udGVudHNUb01lZGlhRVA3Q0FMYXllcgogX19aTjdXZWJDb3JlMTVHcmFw
aGljc0xheWVyQ0ExOHNldENvbnRlbnRzVmlzaWJsZUViCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNz
TGF5ZXJDQTE4c2V0T3BhY2l0eUludGVybmFsRWYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXll
ckNBMThzZXRSZXBsaWNhdGVkTGF5ZXJFUE5TXzEzR3JhcGhpY3NMYXllckUKIF9fWk43V2ViQ29y
ZTE1R3JhcGhpY3NMYXllckNBMThzZXRTaG93RGVidWdCb3JkZXJFYgotX19aTjdXZWJDb3JlMTVH
cmFwaGljc0xheWVyQ0ExOXNldENvbnRlbnRzVG9DYW52YXNFUDdDQUxheWVyCiBfX1pON1dlYkNv
cmUxNUdyYXBoaWNzTGF5ZXJDQTE5c2V0Q3VzdG9tQXBwZWFyYW5jZUVOU18xM0dyYXBoaWNzTGF5
ZXIxNkN1c3RvbUFwcGVhcmFuY2VFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTIwc2V0
Q2hpbGRyZW5UcmFuc2Zvcm1FUktOU18yMFRyYW5zZm9ybWF0aW9uTWF0cml4RQogX19aTjdXZWJD
b3JlMTVHcmFwaGljc0xheWVyQ0EyMHNldFJlcGxpY2F0ZWRCeUxheWVyRVBOU18xM0dyYXBoaWNz
TGF5ZXJFCkBAIC01OTYsNiArNTk0LDcgQEAgX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0Ey
M3NldENvbnRlbnRzQ2xpcHBpbmdSZWN0RVJLTlNfOUZsb2F0UmVjdEUKIF9fWk43V2ViQ29yZTE1
R3JhcGhpY3NMYXllckNBMjNzZXRDb250ZW50c05lZWRzRGlzcGxheUV2CiBfX1pON1dlYkNvcmUx
NUdyYXBoaWNzTGF5ZXJDQTIzc2V0Q29udGVudHNUb1NvbGlkQ29sb3JFUktOU181Q29sb3JFCiBf
X1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTIzc2V0RGVidWdCYWNrZ3JvdW5kQ29sb3JFUktO
U181Q29sb3JFCitfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTI2c2V0Q29udGVudHNUb1Bs
YXRmb3JtTGF5ZXJFUDdDQUxheWVyTlNfMTNHcmFwaGljc0xheWVyMjBDb250ZW50c0xheWVyUHVy
cG9zZUUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjhwbGF0Zm9ybUNBTGF5ZXJQYWlu
dENvbnRlbnRzRVBOU18xNVBsYXRmb3JtQ0FMYXllckVSTlNfMTVHcmFwaGljc0NvbnRleHRFUktO
U185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EzMGRldmljZU9yUGFn
ZVNjYWxlRmFjdG9yQ2hhbmdlZEV2CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTMxcGxh
dGZvcm1DQUxheWVyQW5pbWF0aW9uU3RhcnRlZEVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggNDc4OTFiODZmZTc4MmI2MjhjOTE1
YTIxZmQzM2NjZmFmNWY2NmIzOS4uNmQ4OGQ4NDVjNDllMzAwNmY5N2YwMDIxNWJkMWVkMjJjZjlh
ZWVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaApAQCAtMjUxLDYgKzI1MSwxNSBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0cnVl
IGlmIHRoZSBjaGlsZCBsaXN0IGNoYW5nZWQuCiAgICAgdmlydHVhbCBib29sIHNldENoaWxkcmVu
KGNvbnN0IFZlY3RvcjxHcmFwaGljc0xheWVyKj4mKTsKIAorICAgIGVudW0gQ29udGVudHNMYXll
clB1cnBvc2UgeworICAgICAgICBOb0NvbnRlbnRzTGF5ZXIgPSAwLAorICAgICAgICBDb250ZW50
c0xheWVyRm9ySW1hZ2UsCisgICAgICAgIENvbnRlbnRzTGF5ZXJGb3JNZWRpYSwKKyAgICAgICAg
Q29udGVudHNMYXllckZvckNhbnZhcywKKyAgICAgICAgQ29udGVudHNMYXllckZvckJhY2tncm91
bmRDb2xvciwKKyAgICAgICAgQ29udGVudHNMYXllckZvclBsdWdpbgorICAgIH07CisKICAgICAv
LyBBZGQgY2hpbGQgbGF5ZXJzLiBJZiB0aGUgY2hpbGQgaXMgYWxyZWFkeSBwYXJlbnRlZCwgaXQg
d2lsbCBiZSByZW1vdmVkIGZyb20gaXRzIG9sZCBwYXJlbnQuCiAgICAgdmlydHVhbCB2b2lkIGFk
ZENoaWxkKEdyYXBoaWNzTGF5ZXIqKTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGRBdEluZGV4
KEdyYXBoaWNzTGF5ZXIqLCBpbnQgaW5kZXgpOwpAQCAtNDA1LDE2ICs0MTQsMTIgQEAgcHVibGlj
OgogICAgIC8vIExheWVyIGNvbnRlbnRzCiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9J
bWFnZShJbWFnZSopIHsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREaXJlY3RseUNvbXBvc2l0
ZUltYWdlKEltYWdlKikgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb250ZW50c1RvTWVkaWEoUGxhdGZvcm1MYXllciopIHsgfSAvLyB2aWRlbyBvciBwbHVnLWlu
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogY29udGVudHNM
YXllckZvck1lZGlhKCkgY29uc3QgeyByZXR1cm4gMDsgfQogI2VuZGlmCiAgICAgLy8gUGFzcyBh
biBpbnZhbGlkIGNvbG9yIHRvIHJlbW92ZSB0aGUgY29udGVudHMgbGF5ZXIuCiAgICAgdmlydHVh
bCB2b2lkIHNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJikgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIHNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciopIHsgfQotICAgIC8v
IEZJWE1FOiB3ZWJraXQub3JnL2IvMTA5NjU4Ci0gICAgLy8gU2hvdWxkIHVuaWZ5IHNldENvbnRl
bnRzVG9NZWRpYSBhbmQgc2V0Q29udGVudHNUb0NhbnZhcwotICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiBsYXllcikgeyBzZXRDb250ZW50
c1RvTWVkaWEobGF5ZXIpOyB9CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9y
bUxheWVyKFBsYXRmb3JtTGF5ZXIqLCBDb250ZW50c0xheWVyUHVycG9zZSkgeyB9CiAgICAgdmly
dHVhbCBib29sIHVzZXNDb250ZW50c0xheWVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAog
ICAgIC8vIENhbGxiYWNrIGZyb20gdGhlIHVuZGVybHlpbmcgZ3JhcGhpY3Mgc3lzdGVtIHRvIGRy
YXcgbGF5ZXIgY29udGVudHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCA4OTZiNmVkMmY2ZTYyYTJlZTkz
ZWI5ZWQ5MjBkZWYwNGU1Y2IwNjRlLi45MTliOThhMDA2OTA0MGRiYzIxNjRiZjc3NTBiZTIzMmZk
NWE3YzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9H
cmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTkxOCwyNCArOTE4LDI0IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjpzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqIGltYWdlKQogICAgIG5vdGVMYXll
clByb3BlcnR5Q2hhbmdlZChDb250ZW50c0ltYWdlQ2hhbmdlZCk7CiB9CiAKLXZvaWQgR3JhcGhp
Y3NMYXllckNBOjpzZXRDb250ZW50c1RvTWVkaWEoUGxhdGZvcm1MYXllciogbWVkaWFMYXllcikK
K3ZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9y
bUxheWVyKiBwbGF0Zm9ybUxheWVyLCBDb250ZW50c0xheWVyUHVycG9zZSBwdXJwb3NlKQogewot
ICAgIGlmIChtX2NvbnRlbnRzTGF5ZXIgJiYgbWVkaWFMYXllciA9PSBtX2NvbnRlbnRzTGF5ZXIt
PnBsYXRmb3JtTGF5ZXIoKSkKKyAgICBpZiAobV9jb250ZW50c0xheWVyICYmIHBsYXRmb3JtTGF5
ZXIgPT0gbV9jb250ZW50c0xheWVyLT5wbGF0Zm9ybUxheWVyKCkpCiAgICAgICAgIHJldHVybjsK
LSAgICAgICAgCi0gICAgLy8gRklYTUU6IFRoZSBwYXNzZWQgaW4gbGF5ZXIgbWlnaHQgYmUgYSBy
YXcgbGF5ZXIgb3IgYW4gZXh0ZXJuYWxseSBjcmVhdGVkIAorCisgICAgLy8gRklYTUU6IFRoZSBw
YXNzZWQgaW4gbGF5ZXIgbWlnaHQgYmUgYSByYXcgbGF5ZXIgb3IgYW4gZXh0ZXJuYWxseSBjcmVh
dGVkCiAgICAgLy8gUGxhdGZvcm1DQUxheWVyLiBUbyBkZXRlcm1pbmUgdGhpcyB3ZSBhdHRlbXB0
IHRvIGdldCB0aGUKICAgICAvLyBQbGF0Zm9ybUNBTGF5ZXIgcG9pbnRlci4gSWYgdGhpcyByZXR1
cm5zIGEgbnVsbCBwb2ludGVyIHdlIGFzc3VtZSBpdCdzCiAgICAgLy8gcmF3LiBUaGlzIHRlc3Qg
bWlnaHQgYmUgaW52YWxpZCBpZiB0aGUgcmF3IGxheWVyIGlzLCBmb3IgaW5zdGFuY2UsIHRoZQog
ICAgIC8vIFBsYXRmb3JtQ0FMYXllciBpcyB1c2luZyBhIHVzZXIgZGF0YSBwb2ludGVyIGluIHRo
ZSByYXcgbGF5ZXIsIGFuZAogICAgIC8vIHRoZSBjcmVhdG9yIG9mIHRoZSByYXcgbGF5ZXIgaXMg
dXNpbmcgaXQgZm9yIHNvbWUgb3RoZXIgcHVycG9zZS4KICAgICAvLyBGb3Igbm93IHdlIGRvbid0
IHN1cHBvcnQgc3VjaCBhIGNhc2UuCi0gICAgUGxhdGZvcm1DQUxheWVyKiBwbGF0Zm9ybUNBTGF5
ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcihtZWRpYUxheWVyKTsKLSAgICBt
X2NvbnRlbnRzTGF5ZXIgPSBtZWRpYUxheWVyID8gKHBsYXRmb3JtQ0FMYXllciA/IHBsYXRmb3Jt
Q0FMYXllciA6IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihtZWRpYUxheWVyLCB0aGlzKSkgOiAwOwot
ICAgIG1fY29udGVudHNMYXllclB1cnBvc2UgPSBtZWRpYUxheWVyID8gQ29udGVudHNMYXllckZv
ck1lZGlhIDogTm9Db250ZW50c0xheWVyOworICAgIFBsYXRmb3JtQ0FMYXllciogcGxhdGZvcm1D
QUxheWVyID0gUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIocGxhdGZvcm1MYXllcik7
CisgICAgbV9jb250ZW50c0xheWVyID0gcGxhdGZvcm1MYXllciA/IChwbGF0Zm9ybUNBTGF5ZXIg
PyBwbGF0Zm9ybUNBTGF5ZXIgOiBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIocGxhdGZvcm1MYXllciwg
dGhpcykpIDogMDsKKyAgICBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID0gcGxhdGZvcm1MYXllciA/
IHB1cnBvc2UgOiBOb0NvbnRlbnRzTGF5ZXI7CiAKICAgICBub3RlU3VibGF5ZXJzQ2hhbmdlZCgp
OwotICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50c01lZGlhTGF5ZXJDaGFuZ2Vk
KTsKKyAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ29udGVudHNQbGF0Zm9ybUxheWVyQ2hh
bmdlZCk7CiB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC05NDUsMjAgKzk0NSw2IEBAIFBsYXRm
b3JtTGF5ZXIqIEdyYXBoaWNzTGF5ZXJDQTo6Y29udGVudHNMYXllckZvck1lZGlhKCkgY29uc3QK
IH0KICNlbmRpZgogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb0NhbnZhcyhQ
bGF0Zm9ybUxheWVyKiBjYW52YXNMYXllcikKLXsKLSAgICBpZiAobV9jb250ZW50c0xheWVyICYm
IGNhbnZhc0xheWVyID09IG1fY29udGVudHNMYXllci0+cGxhdGZvcm1MYXllcigpKQotICAgICAg
ICByZXR1cm47Ci0gICAgCi0gICAgLy8gQ3JlYXRlIHRoZSBQbGF0Zm9ybUNBTGF5ZXIgdG8gd3Jh
cCB0aGUgaW5jb21pbmcgbGF5ZXIKLSAgICBtX2NvbnRlbnRzTGF5ZXIgPSBjYW52YXNMYXllciA/
IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihjYW52YXNMYXllciwgdGhpcykgOiAwOwotICAgIAotICAg
IG1fY29udGVudHNMYXllclB1cnBvc2UgPSBjYW52YXNMYXllciA/IENvbnRlbnRzTGF5ZXJGb3JD
YW52YXMgOiBOb0NvbnRlbnRzTGF5ZXI7Ci0KLSAgICBub3RlU3VibGF5ZXJzQ2hhbmdlZCgpOwot
ICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50c0NhbnZhc0xheWVyQ2hhbmdlZCk7
Ci19Ci0gICAgCiB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6bGF5ZXJEaWREaXNwbGF5KFBsYXRmb3Jt
Q0FMYXllciogbGF5ZXIpCiB7CiAgICAgTGF5ZXJNYXAqIGxheWVyQ2xvbmVNYXA7CkBAIC0xMzAz
LDExICsxMjg5LDggQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0Jl
Zm9yZVN1YmxheWVycyhDb21taXRTdGF0ZSYgY29tbWl0U3RhdGUKICAgICBpZiAobV91bmNvbW1p
dHRlZENoYW5nZXMgJiBDb250ZW50c0ltYWdlQ2hhbmdlZCkgLy8gTmVlZHMgdG8gaGFwcGVuIGJl
Zm9yZSBDaGlsZHJlbkNoYW5nZWQKICAgICAgICAgdXBkYXRlQ29udGVudHNJbWFnZSgpOwogICAg
ICAgICAKLSAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBDb250ZW50c01lZGlhTGF5ZXJD
aGFuZ2VkKSAvLyBOZWVkcyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAotICAgICAg
ICB1cGRhdGVDb250ZW50c01lZGlhTGF5ZXIoKTsKLSAgICAKLSAgICBpZiAobV91bmNvbW1pdHRl
ZENoYW5nZXMgJiBDb250ZW50c0NhbnZhc0xheWVyQ2hhbmdlZCkgLy8gTmVlZHMgdG8gaGFwcGVu
IGJlZm9yZSBDaGlsZHJlbkNoYW5nZWQKLSAgICAgICAgdXBkYXRlQ29udGVudHNDYW52YXNMYXll
cigpOworICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzUGxhdGZvcm1MYXll
ckNoYW5nZWQpIC8vIE5lZWRzIHRvIGhhcHBlbiBiZWZvcmUgQ2hpbGRyZW5DaGFuZ2VkCisgICAg
ICAgIHVwZGF0ZUNvbnRlbnRzUGxhdGZvcm1MYXllcigpOwogCiAgICAgaWYgKG1fdW5jb21taXR0
ZWRDaGFuZ2VzICYgQ29udGVudHNDb2xvckxheWVyQ2hhbmdlZCkgLy8gTmVlZHMgdG8gaGFwcGVu
IGJlZm9yZSBDaGlsZHJlbkNoYW5nZWQKICAgICAgICAgdXBkYXRlQ29udGVudHNDb2xvckxheWVy
KCk7CkBAIC0xOTM2LDI0ICsxOTE5LDE3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVD
b250ZW50c0ltYWdlKCkKICAgICB9CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVD
b250ZW50c01lZGlhTGF5ZXIoKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRz
UGxhdGZvcm1MYXllcigpCiB7Ci0gICAgaWYgKCFtX2NvbnRlbnRzTGF5ZXIgfHwgbV9jb250ZW50
c0xheWVyUHVycG9zZSAhPSBDb250ZW50c0xheWVyRm9yTWVkaWEpCisgICAgaWYgKCFtX2NvbnRl
bnRzTGF5ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIFZpZGVvIGxheWVyIHdhcyBzZXQg
YXMgbV9jb250ZW50c0xheWVyLCBhbmQgd2lsbCBnZXQgcGFyZW50ZWQgaW4gdXBkYXRlU3VibGF5
ZXJMaXN0KCkuCisgICAgLy8gUGxhdGZvcm0gbGF5ZXIgd2FzIHNldCBhcyBtX2NvbnRlbnRzTGF5
ZXIsIGFuZCB3aWxsIGdldCBwYXJlbnRlZCBpbiB1cGRhdGVTdWJsYXllckxpc3QoKS4KICAgICBz
ZXR1cENvbnRlbnRzTGF5ZXIobV9jb250ZW50c0xheWVyLmdldCgpKTsKLSAgICB1cGRhdGVDb250
ZW50c1JlY3RzKCk7Ci19CiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c0Nh
bnZhc0xheWVyKCkKLXsKLSAgICBpZiAoIW1fY29udGVudHNMYXllciB8fCBtX2NvbnRlbnRzTGF5
ZXJQdXJwb3NlICE9IENvbnRlbnRzTGF5ZXJGb3JDYW52YXMpCi0gICAgICAgIHJldHVybjsKKyAg
ICBpZiAobV9jb250ZW50c0xheWVyUHVycG9zZSA9PSBDb250ZW50c0xheWVyRm9yQ2FudmFzKQor
ICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogCi0gICAgLy8gQ2Fu
dmFzTGF5ZXIgd2FzIHNldCBhcyBtX2NvbnRlbnRzTGF5ZXIsIGFuZCB3aWxsIGdldCBwYXJlbnRl
ZCBpbiB1cGRhdGVTdWJsYXllckxpc3QoKS4KLSAgICBzZXR1cENvbnRlbnRzTGF5ZXIobV9jb250
ZW50c0xheWVyLmdldCgpKTsKLSAgICBtX2NvbnRlbnRzTGF5ZXItPnNldE5lZWRzRGlzcGxheSgp
OwogICAgIHVwZGF0ZUNvbnRlbnRzUmVjdHMoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAppbmRleCBkYjNkMmQ3
MjkwMTY1YTJhOWM3YjBmZTQ1MjRmOWQ0ZjMxYWNiZTUxLi5mNmU2NWRiYWRjOGNkMjc5YjJiMGNm
NjkxN2MyYTZlNTI5OGYyYzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaApAQCAtMTI2LDExICsxMjYsMTAgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbmltYXRpb24oY29uc3QgU3RyaW5nJiBhbmlt
YXRpb25OYW1lKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvSW1h
Z2UoSW1hZ2UqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb01lZGlh
KFBsYXRmb3JtTGF5ZXIqKSBvdmVycmlkZTsKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVh
bCBQbGF0Zm9ybUxheWVyKiBjb250ZW50c0xheWVyRm9yTWVkaWEoKSBjb25zdCBvdmVycmlkZTsK
ICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5
ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5
ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQdXJwb3NlKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImKSBvdmVycmlkZTsKIAogICAg
IHZpcnR1YWwgYm9vbCB1c2VzQ29udGVudHNMYXllcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fY29udGVudHNMYXllclB1cnBvc2UgIT0gTm9Db250ZW50c0xheWVyOyB9CkBAIC0zNzMsOCAr
MzcyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZUJhY2tncm91bmRDb2xvcigpOwogCiAg
ICAgdm9pZCB1cGRhdGVDb250ZW50c0ltYWdlKCk7Ci0gICAgdm9pZCB1cGRhdGVDb250ZW50c01l
ZGlhTGF5ZXIoKTsKLSAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzQ2FudmFzTGF5ZXIoKTsKKyAgICB2
b2lkIHVwZGF0ZUNvbnRlbnRzUGxhdGZvcm1MYXllcigpOwogICAgIHZvaWQgdXBkYXRlQ29udGVu
dHNDb2xvckxheWVyKCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50c1JlY3RzKCk7CiAgICAgdm9p
ZCB1cGRhdGVNYXNrTGF5ZXIoKTsKQEAgLTQyOCwyNCArNDI2LDIzIEBAIHByaXZhdGU6CiAgICAg
ICAgIEFuaW1hdGlvbkNoYW5nZWQgPSAxTExVIDw8IDEzLAogICAgICAgICBEaXJ0eVJlY3RzQ2hh
bmdlZCA9IDFMTFUgPDwgMTQsCiAgICAgICAgIENvbnRlbnRzSW1hZ2VDaGFuZ2VkID0gMUxMVSA8
PCAxNSwKLSAgICAgICAgQ29udGVudHNNZWRpYUxheWVyQ2hhbmdlZCA9IDFMTFUgPDwgMTYsCi0g
ICAgICAgIENvbnRlbnRzQ2FudmFzTGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAxNywKLSAgICAgICAg
Q29udGVudHNDb2xvckxheWVyQ2hhbmdlZCA9IDFMTFUgPDwgMTgsCi0gICAgICAgIENvbnRlbnRz
UmVjdHNDaGFuZ2VkID0gMUxMVSA8PCAxOSwKLSAgICAgICAgTWFza0xheWVyQ2hhbmdlZCA9IDFM
TFUgPDwgMjAsCi0gICAgICAgIFJlcGxpY2F0ZWRMYXllckNoYW5nZWQgPSAxTExVIDw8IDIxLAot
ICAgICAgICBDb250ZW50c05lZWRzRGlzcGxheSA9IDFMTFUgPDwgMjIsCi0gICAgICAgIEFjY2Vs
ZXJhdGVzRHJhd2luZ0NoYW5nZWQgPSAxTExVIDw8IDIzLAotICAgICAgICBDb250ZW50c1NjYWxl
Q2hhbmdlZCA9IDFMTFUgPDwgMjQsCi0gICAgICAgIENvbnRlbnRzVmlzaWJpbGl0eUNoYW5nZWQg
PSAxTExVIDw8IDI1LAotICAgICAgICBWaXNpYmxlUmVjdENoYW5nZWQgPSAxTExVIDw8IDI2LAot
ICAgICAgICBGaWx0ZXJzQ2hhbmdlZCA9IDFMTFUgPDwgMjcsCi0gICAgICAgIFRpbGluZ0FyZWFD
aGFuZ2VkID0gMUxMVSA8PCAyOCwKLSAgICAgICAgVGlsZXNBZGRlZCA9IDFMTFUgPCAyOSwKLSAg
ICAgICAgRGVidWdJbmRpY2F0b3JzQ2hhbmdlZCA9IDFMTFUgPDwgMzAsCi0gICAgICAgIEN1c3Rv
bUFwcGVhcmFuY2VDaGFuZ2VkID0gMUxMVSA8PCAzMSwKLSAgICAgICAgQ3VzdG9tQmVoYXZpb3JD
aGFuZ2VkID0gMUxMVSA8PCAzMiwKLSAgICAgICAgQmxlbmRNb2RlQ2hhbmdlZCA9IDFMTFUgPDwg
MzMKKyAgICAgICAgQ29udGVudHNQbGF0Zm9ybUxheWVyQ2hhbmdlZCA9IDFMTFUgPDwgMTYsCisg
ICAgICAgIENvbnRlbnRzQ29sb3JMYXllckNoYW5nZWQgPSAxTExVIDw8IDE3LAorICAgICAgICBD
b250ZW50c1JlY3RzQ2hhbmdlZCA9IDFMTFUgPDwgMTgsCisgICAgICAgIE1hc2tMYXllckNoYW5n
ZWQgPSAxTExVIDw8IDE5LAorICAgICAgICBSZXBsaWNhdGVkTGF5ZXJDaGFuZ2VkID0gMUxMVSA8
PCAyMCwKKyAgICAgICAgQ29udGVudHNOZWVkc0Rpc3BsYXkgPSAxTExVIDw8IDIxLAorICAgICAg
ICBBY2NlbGVyYXRlc0RyYXdpbmdDaGFuZ2VkID0gMUxMVSA8PCAyMiwKKyAgICAgICAgQ29udGVu
dHNTY2FsZUNoYW5nZWQgPSAxTExVIDw8IDIzLAorICAgICAgICBDb250ZW50c1Zpc2liaWxpdHlD
aGFuZ2VkID0gMUxMVSA8PCAyNCwKKyAgICAgICAgVmlzaWJsZVJlY3RDaGFuZ2VkID0gMUxMVSA8
PCAyNSwKKyAgICAgICAgRmlsdGVyc0NoYW5nZWQgPSAxTExVIDw8IDI2LAorICAgICAgICBUaWxp
bmdBcmVhQ2hhbmdlZCA9IDFMTFUgPDwgMjcsCisgICAgICAgIFRpbGVzQWRkZWQgPSAxTExVIDwg
MjgsCisgICAgICAgIERlYnVnSW5kaWNhdG9yc0NoYW5nZWQgPSAxTExVIDw8IDI5LAorICAgICAg
ICBDdXN0b21BcHBlYXJhbmNlQ2hhbmdlZCA9IDFMTFUgPDwgMzAsCisgICAgICAgIEN1c3RvbUJl
aGF2aW9yQ2hhbmdlZCA9IDFMTFUgPDwgMzEsCisgICAgICAgIEJsZW5kTW9kZUNoYW5nZWQgPSAx
TExVIDw8IDMyCiAgICAgfTsKICAgICB0eXBlZGVmIHVpbnQ2NF90IExheWVyQ2hhbmdlRmxhZ3M7
CiAgICAgZW51bSBTY2hlZHVsZUZsdXNoT3JOb3QgeyBTY2hlZHVsZUZsdXNoLCBEb250U2NoZWR1
bGVGbHVzaCB9OwpAQCAtNDcyLDE0ICs0NjksNiBAQCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCBt
X3Zpc2libGVSZWN0OwogICAgIEZsb2F0U2l6ZSBtX3NpemVBdExhc3RWaXNpYmxlUmVjdFVwZGF0
ZTsKICAgICAKLSAgICBlbnVtIENvbnRlbnRzTGF5ZXJQdXJwb3NlIHsKLSAgICAgICAgTm9Db250
ZW50c0xheWVyID0gMCwKLSAgICAgICAgQ29udGVudHNMYXllckZvckltYWdlLAotICAgICAgICBD
b250ZW50c0xheWVyRm9yTWVkaWEsCi0gICAgICAgIENvbnRlbnRzTGF5ZXJGb3JDYW52YXMsCi0g
ICAgICAgIENvbnRlbnRzTGF5ZXJGb3JCYWNrZ3JvdW5kQ29sb3IKLSAgICB9OwotICAgIAogICAg
IENvbnRlbnRzTGF5ZXJQdXJwb3NlIG1fY29udGVudHNMYXllclB1cnBvc2U7CiAgICAgYm9vbCBt
X2lzUGFnZVRpbGVkQmFja2luZ0xheWVyIDogMTsKICAgICBib29sIG1fbmVlZHNGdWxsUmVwYWlu
dCA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAppbmRleCAx
NzRjYzU0OThmNWNmZDljYTg0MzU5ZTQ3ZGY1Yjc0OGE5MDEyZTIwLi5iODNmM2JjNjRkMzUzODA1
ZTYwYTY4N2U1NzY5ODVjZGI4YTdiMmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlci5jcHAKQEAgLTM2OCwxNyArMzY4LDE3IEBAIHZvaWQgR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXI6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCiAgICAgICAgIG1f
Y29tcG9zaXRlZEltYWdlID0gMDsKICAgICB9CiAKLSAgICBzZXRDb250ZW50c1RvTWVkaWEobV9j
b21wb3NpdGVkSW1hZ2UuZ2V0KCkpOworICAgIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKG1f
Y29tcG9zaXRlZEltYWdlLmdldCgpLCBDb250ZW50c0xheWVyRm9ySW1hZ2UpOwogICAgIG5vdGlm
eUNoYW5nZShDb250ZW50Q2hhbmdlKTsKICAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1Rv
SW1hZ2UoaW1hZ2UpOwogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRD
b250ZW50c1RvTWVkaWEoVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIqIG1lZGlhKQordm9pZCBH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIqIG1lZGlhLCBDb250ZW50c0xheWVyUHVycG9zZSBwdXJw
b3NlKQogewogICAgIGlmIChtZWRpYSA9PSBtX2NvbnRlbnRzTGF5ZXIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9NZWRpYShtZWRpYSk7CisgICAg
R3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIobWVkaWEsIHB1cnBvc2Up
OwogICAgIG5vdGlmeUNoYW5nZShDb250ZW50Q2hhbmdlKTsKIAogICAgIGlmIChtX2NvbnRlbnRz
TGF5ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCmluZGV4IGNhY2Vj
YjM3NjMyOWMyMDQ1NWFkYTFlYTMyODdkOTVhYzU1NDIyODIuLjgyZjhjYWI1ZTlkZTQxYmViNjNh
MjNkYjkwOTk1OTNkNTJjZDg5M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlci5oCkBAIC02OCw4ICs2OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGVudHNUb0ltYWdlKEltYWdlKik7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9Tb2xp
ZENvbG9yKGNvbnN0IENvbG9yJik7CiAgICAgQ29sb3Igc29saWRDb2xvcigpIGNvbnN0IHsgcmV0
dXJuIG1fc29saWRDb2xvcjsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvTWVkaWEo
UGxhdGZvcm1MYXllciopOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvQ2FudmFzKFBs
YXRmb3JtTGF5ZXIqIGNhbnZhcykgeyBzZXRDb250ZW50c1RvTWVkaWEoY2FudmFzKTsgfQorICAg
IHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiwg
Q29udGVudHNMYXllclB1cnBvc2UpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93RGVidWdCb3Jk
ZXIoYm9vbCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQm9yZGVyKGNvbnN0
IENvbG9yJiwgZmxvYXQgd2lkdGgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93
UmVwYWludENvdW50ZXIoYm9vbCkgb3ZlcnJpZGU7CkBAIC0xMTIsNyArMTExLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHByZXBhcmVCYWNraW5nU3RvcmVJZk5lZWRlZCgpOwogICAgIGJvb2wgc2hv
dWxkSGF2ZUJhY2tpbmdTdG9yZSgpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHBsYXRmb3Jt
TGF5ZXJXaWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZSB7IHNldENvbnRlbnRzVG9NZWRpYSgwKTsg
fQorICAgIHZpcnR1YWwgdm9pZCBwbGF0Zm9ybUxheWVyV2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJp
ZGUgeyBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcigwLCBOb0NvbnRlbnRzTGF5ZXIpOyB9CiAg
ICAgdmlydHVhbCB2b2lkIHNldFBsYXRmb3JtTGF5ZXJOZWVkc0Rpc3BsYXkoKSBvdmVycmlkZSB7
IHNldENvbnRlbnRzTmVlZHNEaXNwbGF5KCk7IH0KIAogICAgIC8vIFRoaXMgc2V0IG9mIGZsYWdz
IGhlbHAgdXMgZGVmZXIgd2hpY2ggcHJvcGVydGllcyBvZiB0aGUgbGF5ZXIgaGF2ZSBiZWVuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRp
bmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIu
Y3BwCmluZGV4IGY2NGZlZjI4OWM3YWU1ODllZTFhMTUyZWVhMzNkNjk2MDM0N2FkNmYuLjU2ZTRi
ODg5NzYwNjYyZjJmMWU3YTkwN2Q0MWQzNGYxMDIwNTI4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC0xMjEsMTIg
KzEyMSwxMiBAQCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcihHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCiAgICAgLCBtX3BlbmRpbmdDb250ZW50
c1NjYWxlQWRqdXN0bWVudChmYWxzZSkKICAgICAsIG1fcGVuZGluZ1Zpc2libGVSZWN0QWRqdXN0
bWVudChmYWxzZSkKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICAsIG1faXNWYWxpZENh
bnZhcyhmYWxzZSkKLSAgICAsIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbihOb25lKQorICAgICwg
bV9pc1ZhbGlkUGxhdGZvcm1MYXllcihmYWxzZSkKKyAgICAsIG1fcGVuZGluZ1BsYXRmb3JtTGF5
ZXJPcGVyYXRpb24oTm9uZSkKICNlbmRpZgogICAgICwgbV9jb29yZGluYXRvcigwKQogICAgICwg
bV9jb21wb3NpdGVkTmF0aXZlSW1hZ2VQdHIoMCkKLSAgICAsIG1fY2FudmFzUGxhdGZvcm1MYXll
cigwKQorICAgICwgbV9wbGF0Zm9ybUxheWVyKDApCiAgICAgLCBtX2FuaW1hdGlvblN0YXJ0ZWRU
aW1lcih0aGlzLCAmQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjphbmltYXRpb25TdGFydGVkVGlt
ZXJGaXJlZCkKICAgICAsIG1fc2Nyb2xsYWJsZUFyZWEoMCkKIHsKQEAgLTM4MywzNiArMzgzLDM3
IEBAIGJvb2wgR3JhcGhpY3NMYXllcjo6c3VwcG9ydHNDb250ZW50c1RpbGluZygpCiB2b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKQogewogI2lm
IFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIGlmIChtX2NhbnZhc1BsYXRmb3JtTGF5ZXIpCi0g
ICAgICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiB8PSBTeW5jQ2FudmFzOworICAgIGlmICht
X3BsYXRmb3JtTGF5ZXIpCisgICAgICAgIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24g
fD0gU3luY1BsYXRmb3JtTGF5ZXI7CiAjZW5kaWYKIAogICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQo
KTsKICAgICBhZGRSZXBhaW50UmVjdChjb250ZW50c1JlY3QoKSk7CiB9CiAKLXZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIqIHBs
YXRmb3JtTGF5ZXIpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNU
b1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllciwgQ29udGVudHNMYXll
clB1cnBvc2UgcHVycG9zZSkKIHsKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICBpZiAo
bV9jYW52YXNQbGF0Zm9ybUxheWVyKSB7Ci0gICAgICAgIEFTU0VSVChtX2NhbnZhc1Rva2VuLmlz
VmFsaWQoKSk7CisgICAgaWYgKG1fcGxhdGZvcm1MYXllcikgeworICAgICAgICBBU1NFUlQobV9w
bGF0Zm9ybUxheWVyVG9rZW4uaXNWYWxpZCgpKTsKICAgICAgICAgaWYgKCFwbGF0Zm9ybUxheWVy
KSB7Ci0gICAgICAgICAgICBtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24gfD0gRGVzdHJveUNhbnZh
czsKLSAgICAgICAgICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiAmPSB+Q3JlYXRlQ2FudmFz
OwotICAgICAgICB9ICBlbHNlIGlmICgobV9jYW52YXNTaXplICE9IHBsYXRmb3JtTGF5ZXItPnBs
YXRmb3JtTGF5ZXJTaXplKCkpIHx8IChtX2NhbnZhc1Rva2VuICE9IHBsYXRmb3JtTGF5ZXItPmdy
YXBoaWNzU3VyZmFjZVRva2VuKCkpKSB7Ci0gICAgICAgICAgICAvLyBtX2NhbnZhc1Rva2VuIGNh
biBiZSBkaWZmZXJlbnQgdG8gcGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKSwg
ZXZlbiBpZiBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgZXF1YWxzIHBsYXRmb3JtTGF5ZXIuCi0gICAg
ICAgICAgICBtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24gfD0gUmVjcmVhdGVDYW52YXM7CisgICAg
ICAgICAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uIHw9IERlc3Ryb3lQbGF0Zm9y
bUxheWVyOworICAgICAgICAgICAgbV9wZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbiAmPSB+
Q3JlYXRlUGxhdGZvcm1MYXllcjsKKyAgICAgICAgfSAgZWxzZSBpZiAoKG1fcGxhdGZvcm1MYXll
clNpemUgIT0gcGxhdGZvcm1MYXllci0+cGxhdGZvcm1MYXllclNpemUoKSkgfHwgKG1fcGxhdGZv
cm1MYXllclRva2VuICE9IHBsYXRmb3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2VuKCkpKSB7
CisgICAgICAgICAgICAvLyBtX3BsYXRmb3JtTGF5ZXJUb2tlbiBjYW4gYmUgZGlmZmVyZW50IHRv
IHBsYXRmb3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2VuKCksIGV2ZW4gaWYgbV9wbGF0Zm9y
bUxheWVyIGVxdWFscyBwbGF0Zm9ybUxheWVyLgorICAgICAgICAgICAgbV9wZW5kaW5nUGxhdGZv
cm1MYXllck9wZXJhdGlvbiB8PSBSZWNyZWF0ZVBsYXRmb3JtTGF5ZXI7CiAgICAgICAgIH0KICAg
ICB9IGVsc2UgewogICAgICAgICBpZiAocGxhdGZvcm1MYXllcikKLSAgICAgICAgICAgIG1fcGVu
ZGluZ0NhbnZhc09wZXJhdGlvbiB8PSBDcmVhdGVBbmRTeW5jQ2FudmFzOworICAgICAgICAgICAg
bV9wZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbiB8PSBDcmVhdGVBbmRTeW5jUGxhdGZvcm1M
YXllcjsKICAgICB9CiAKLSAgICBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgPSBwbGF0Zm9ybUxheWVy
OwotICAgIC8vIG1fY2FudmFzVG9rZW4gaXMgdXBkYXRlZCBvbmx5IGhlcmUuIEluIGRldGFpbCwg
d2hlbiBHcmFwaGljc0NvbnRleHQzRCBpcyBjaGFuZ2VkIG9yIHJlc2hhcGVkLCBtX2NhbnZhc1Rv
a2VuIGlzIGNoYW5nZWQgYW5kIHNldENvbnRlbnRzVG9DYW52YXMoKSBpcyBhbHdheXMgY2FsbGVk
LgotICAgIG1fY2FudmFzU2l6ZSA9IG1fY2FudmFzUGxhdGZvcm1MYXllciA/IG1fY2FudmFzUGxh
dGZvcm1MYXllci0+cGxhdGZvcm1MYXllclNpemUoKSA6IEludFNpemUoKTsKLSAgICBtX2NhbnZh
c1Rva2VuID0gbV9jYW52YXNQbGF0Zm9ybUxheWVyID8gbV9jYW52YXNQbGF0Zm9ybUxheWVyLT5n
cmFwaGljc1N1cmZhY2VUb2tlbigpIDogR3JhcGhpY3NTdXJmYWNlVG9rZW4oKTsKLSAgICBBU1NF
UlQoISghbV9jYW52YXNUb2tlbi5pc1ZhbGlkKCkgJiYgbV9jYW52YXNQbGF0Zm9ybUxheWVyKSk7
CisgICAgbV9wbGF0Zm9ybUxheWVyID0gcGxhdGZvcm1MYXllcjsKKyAgICAvLyBtX3BsYXRmb3Jt
TGF5ZXJUb2tlbiBpcyB1cGRhdGVkIG9ubHkgaGVyZS4gCisgICAgLy8gSW4gZGV0YWlsLCB3aGVu
IEdyYXBoaWNzQ29udGV4dDNEIGlzIGNoYW5nZWQgb3IgcmVzaGFwZWQsIG1fcGxhdGZvcm1MYXll
clRva2VuIGlzIGNoYW5nZWQgYW5kIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKCkgaXMgYWx3
YXlzIGNhbGxlZC4KKyAgICBtX3BsYXRmb3JtTGF5ZXJTaXplID0gbV9wbGF0Zm9ybUxheWVyID8g
bV9wbGF0Zm9ybUxheWVyLT5wbGF0Zm9ybUxheWVyU2l6ZSgpIDogSW50U2l6ZSgpOworICAgIG1f
cGxhdGZvcm1MYXllclRva2VuID0gbV9wbGF0Zm9ybUxheWVyID8gbV9wbGF0Zm9ybUxheWVyLT5n
cmFwaGljc1N1cmZhY2VUb2tlbigpIDogR3JhcGhpY3NTdXJmYWNlVG9rZW4oKTsKKyAgICBBU1NF
UlQoISghbV9wbGF0Zm9ybUxheWVyVG9rZW4uaXNWYWxpZCgpICYmIG1fcGxhdGZvcm1MYXllcikp
OwogCiAgICAgbm90aWZ5Rmx1c2hSZXF1aXJlZCgpOwogI2Vsc2UKQEAgLTcyMCw1MyArNzIxLDUz
IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jQW5pbWF0aW9ucygpCiB9CiAK
ICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzeW5jQ2FudmFzKCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jUGxhdGZv
cm1MYXllcigpCiB7Ci0gICAgZGVzdHJveUNhbnZhc0lmTmVlZGVkKCk7Ci0gICAgY3JlYXRlQ2Fu
dmFzSWZOZWVkZWQoKTsKKyAgICBkZXN0cm95UGxhdGZvcm1MYXllcklmTmVlZGVkKCk7CisgICAg
Y3JlYXRlUGxhdGZvcm1MYXllcklmTmVlZGVkKCk7CiAKLSAgICBpZiAoIShtX3BlbmRpbmdDYW52
YXNPcGVyYXRpb24gJiBTeW5jQ2FudmFzKSkKKyAgICBpZiAoIShtX3BlbmRpbmdQbGF0Zm9ybUxh
eWVyT3BlcmF0aW9uICYgU3luY1BsYXRmb3JtTGF5ZXIpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24gJj0gflN5bmNDYW52YXM7CisgICAgbV9wZW5kaW5n
UGxhdGZvcm1MYXllck9wZXJhdGlvbiAmPSB+U3luY1BsYXRmb3JtTGF5ZXI7CiAKLSAgICBpZiAo
IW1faXNWYWxpZENhbnZhcykKKyAgICBpZiAoIW1faXNWYWxpZFBsYXRmb3JtTGF5ZXIpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIEFTU0VSVChtX2NhbnZhc1BsYXRmb3JtTGF5ZXIpOwotICAgIG1f
bGF5ZXJTdGF0ZS5jYW52YXNGcm9udEJ1ZmZlciA9IG1fY2FudmFzUGxhdGZvcm1MYXllci0+Y29w
eVRvR3JhcGhpY3NTdXJmYWNlKCk7Ci0gICAgbV9sYXllclN0YXRlLmNhbnZhc1Nob3VsZFN3YXBC
dWZmZXJzID0gdHJ1ZTsKKyAgICBBU1NFUlQobV9wbGF0Zm9ybUxheWVyKTsKKyAgICBtX2xheWVy
U3RhdGUucGxhdGZvcm1MYXllckZyb250QnVmZmVyID0gbV9wbGF0Zm9ybUxheWVyLT5jb3B5VG9H
cmFwaGljc1N1cmZhY2UoKTsKKyAgICBtX2xheWVyU3RhdGUucGxhdGZvcm1MYXllclNob3VsZFN3
YXBCdWZmZXJzID0gdHJ1ZTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmRl
c3Ryb3lDYW52YXNJZk5lZWRlZCgpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZGVz
dHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRlZCgpCiB7Ci0gICAgaWYgKCEobV9wZW5kaW5nQ2FudmFz
T3BlcmF0aW9uICYgRGVzdHJveUNhbnZhcykpCisgICAgaWYgKCEobV9wZW5kaW5nUGxhdGZvcm1M
YXllck9wZXJhdGlvbiAmIERlc3Ryb3lQbGF0Zm9ybUxheWVyKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgaWYgKG1faXNWYWxpZENhbnZhcykgewotICAgICAgICBtX2lzVmFsaWRDYW52YXMgPSBm
YWxzZTsKLSAgICAgICAgbV9sYXllclN0YXRlLmNhbnZhc1Rva2VuID0gR3JhcGhpY3NTdXJmYWNl
VG9rZW4oKTsKLSAgICAgICAgbV9sYXllclN0YXRlLmNhbnZhc0NoYW5nZWQgPSB0cnVlOworICAg
IGlmIChtX2lzVmFsaWRQbGF0Zm9ybUxheWVyKSB7CisgICAgICAgIG1faXNWYWxpZFBsYXRmb3Jt
TGF5ZXIgPSBmYWxzZTsKKyAgICAgICAgbV9sYXllclN0YXRlLnBsYXRmb3JtTGF5ZXJUb2tlbiA9
IEdyYXBoaWNzU3VyZmFjZVRva2VuKCk7CisgICAgICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxh
eWVyQ2hhbmdlZCA9IHRydWU7CiAgICAgfQogCi0gICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9u
ICY9IH5EZXN0cm95Q2FudmFzOworICAgIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24g
Jj0gfkRlc3Ryb3lQbGF0Zm9ybUxheWVyOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6Y3JlYXRlQ2FudmFzSWZOZWVkZWQoKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJJZk5lZWRlZCgpCiB7Ci0gICAgaWYgKCEobV9wZW5kaW5n
Q2FudmFzT3BlcmF0aW9uICYgQ3JlYXRlQ2FudmFzKSkKKyAgICBpZiAoIShtX3BlbmRpbmdQbGF0
Zm9ybUxheWVyT3BlcmF0aW9uICYgQ3JlYXRlUGxhdGZvcm1MYXllcikpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIEFTU0VSVChtX2NhbnZhc1BsYXRmb3JtTGF5ZXIpOwotICAgIGlmICghbV9pc1Zh
bGlkQ2FudmFzKSB7Ci0gICAgICAgIG1fbGF5ZXJTdGF0ZS5jYW52YXNTaXplID0gbV9jYW52YXNQ
bGF0Zm9ybUxheWVyLT5wbGF0Zm9ybUxheWVyU2l6ZSgpOwotICAgICAgICBtX2xheWVyU3RhdGUu
Y2FudmFzVG9rZW4gPSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2Vu
KCk7Ci0gICAgICAgIG1fbGF5ZXJTdGF0ZS5jYW52YXNTdXJmYWNlRmxhZ3MgPSBtX2NhbnZhc1Bs
YXRmb3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZUZsYWdzKCk7Ci0gICAgICAgIG1fbGF5ZXJTdGF0
ZS5jYW52YXNDaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgbV9pc1ZhbGlkQ2FudmFzID0gdHJ1ZTsK
KyAgICBBU1NFUlQobV9wbGF0Zm9ybUxheWVyKTsKKyAgICBpZiAoIW1faXNWYWxpZFBsYXRmb3Jt
TGF5ZXIpIHsKKyAgICAgICAgbV9sYXllclN0YXRlLnBsYXRmb3JtTGF5ZXJTaXplID0gbV9wbGF0
Zm9ybUxheWVyLT5wbGF0Zm9ybUxheWVyU2l6ZSgpOworICAgICAgICBtX2xheWVyU3RhdGUucGxh
dGZvcm1MYXllclRva2VuID0gbV9wbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZhY2VUb2tlbigp
OworICAgICAgICBtX2xheWVyU3RhdGUucGxhdGZvcm1MYXllclN1cmZhY2VGbGFncyA9IG1fcGxh
dGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlRmxhZ3MoKTsKKyAgICAgICAgbV9sYXllclN0YXRl
LnBsYXRmb3JtTGF5ZXJDaGFuZ2VkID0gdHJ1ZTsKKyAgICAgICAgbV9pc1ZhbGlkUGxhdGZvcm1M
YXllciA9IHRydWU7CiAgICAgfQogCi0gICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uICY9IH5D
cmVhdGVDYW52YXM7CisgICAgbV9wZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbiAmPSB+Q3Jl
YXRlUGxhdGZvcm1MYXllcjsKIH0KICNlbmRpZgogCkBAIC03OTEsNyArNzkyLDcgQEAgdm9pZCBD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXll
ck9ubHkoKQogICAgIHN5bmNGaWx0ZXJzKCk7CiAjZW5kaWYKICNpZiBVU0UoR1JBUEhJQ1NfU1VS
RkFDRSkKLSAgICBzeW5jQ2FudmFzKCk7CisgICAgc3luY1BsYXRmb3JtTGF5ZXIoKTsKICNlbmRp
ZgogCiAgICAgLy8gT25seSB1bnNldCBtX21vdmluZ1Zpc2libGVSZWN0IGFmdGVyIHdlIGhhdmUg
dXBkYXRlZCB0aGUgdmlzaWJsZSByZWN0IGFmdGVyIHRoZSBhbmltYXRpb24gc3RvcHBlZC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApp
bmRleCAxNDg2YzIwN2JlMjg2NDA0NDhiNTA2MTM3YTZiMGI0MzQyMDExNGViLi5hNmE1OGYzMmI0
NzQ2ZTI3NWVmNTFjODY0NjViNGJlOWU2ODU3NGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC05Miw3ICs5Miw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVyKGJvb2wpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UmVwYWludENvdW50ZXIoYm9vbCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCBib29sIHNob3VsZERpcmVjdGx5Q29tcG9zaXRlSW1hZ2UoSW1hZ2UqKSBj
b25zdCBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0
Zm9ybUxheWVyKikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9QbGF0
Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqLCBDb250ZW50c0xheWVyUHVycG9zZSkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIHNldE1hc2tMYXllcihHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIHNldFJlcGxpY2F0ZWRCeUxheWVyKEdyYXBoaWNzTGF5ZXIqKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCkgb3ZlcnJpZGU7CkBA
IC0xMDksNyArMTA5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbmltYXRp
b24oY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmRBbmlt
YXRpb25zKGRvdWJsZSB0aW1lKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzdW1lQW5p
bWF0aW9ucygpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9vbCB1c2VzQ29udGVudHNMYXllcigp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY2FudmFzUGxhdGZvcm1MYXllciB8fCBtX2NvbXBv
c2l0ZWRJbWFnZTsgfQorICAgIHZpcnR1YWwgYm9vbCB1c2VzQ29udGVudHNMYXllcigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fcGxhdGZvcm1MYXllciB8fCBtX2NvbXBvc2l0ZWRJbWFnZTsg
fQogCiAgICAgdm9pZCBzeW5jUGVuZGluZ1N0YXRlQ2hhbmdlc0luY2x1ZGluZ1N1YkxheWVycygp
OwogICAgIHZvaWQgdXBkYXRlQ29udGVudEJ1ZmZlcnNJbmNsdWRpbmdTdWJMYXllcnMoKTsKQEAg
LTE1NCwxOCArMTU0LDE4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICNpZiBVU0UoR1JBUEhJQ1Nf
U1VSRkFDRSkKLSAgICBlbnVtIFBlbmRpbmdDYW52YXNPcGVyYXRpb24geworICAgIGVudW0gUGVu
ZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gewogICAgICAgICBOb25lID0gMHgwMCwKLSAgICAg
ICAgQ3JlYXRlQ2FudmFzID0gMHgwMSwKLSAgICAgICAgRGVzdHJveUNhbnZhcyA9IDB4MDIsCi0g
ICAgICAgIFN5bmNDYW52YXMgPSAweDA0LAotICAgICAgICBDcmVhdGVBbmRTeW5jQ2FudmFzID0g
Q3JlYXRlQ2FudmFzIHwgU3luY0NhbnZhcywKLSAgICAgICAgUmVjcmVhdGVDYW52YXMgPSBDcmVh
dGVBbmRTeW5jQ2FudmFzIHwgRGVzdHJveUNhbnZhcworICAgICAgICBDcmVhdGVQbGF0Zm9ybUxh
eWVyID0gMHgwMSwKKyAgICAgICAgRGVzdHJveVBsYXRmb3JtTGF5ZXIgPSAweDAyLAorICAgICAg
ICBTeW5jUGxhdGZvcm1MYXllciA9IDB4MDQsCisgICAgICAgIENyZWF0ZUFuZFN5bmNQbGF0Zm9y
bUxheWVyID0gQ3JlYXRlUGxhdGZvcm1MYXllciB8IFN5bmNQbGF0Zm9ybUxheWVyLAorICAgICAg
ICBSZWNyZWF0ZVBsYXRmb3JtTGF5ZXIgPSBDcmVhdGVBbmRTeW5jUGxhdGZvcm1MYXllciB8IERl
c3Ryb3lQbGF0Zm9ybUxheWVyCiAgICAgfTsKIAotICAgIHZvaWQgc3luY0NhbnZhcygpOwotICAg
IHZvaWQgZGVzdHJveUNhbnZhc0lmTmVlZGVkKCk7Ci0gICAgdm9pZCBjcmVhdGVDYW52YXNJZk5l
ZWRlZCgpOworICAgIHZvaWQgc3luY1BsYXRmb3JtTGF5ZXIoKTsKKyAgICB2b2lkIGRlc3Ryb3lQ
bGF0Zm9ybUxheWVySWZOZWVkZWQoKTsKKyAgICB2b2lkIGNyZWF0ZVBsYXRmb3JtTGF5ZXJJZk5l
ZWRlZCgpOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3JkZXIoY29uc3Qg
Q29sb3ImLCBmbG9hdCB3aWR0aCkgb3ZlcnJpZGU7CkBAIC0yMzIsOCArMjMyLDggQEAgcHJpdmF0
ZToKICAgICBib29sIG1fcGVuZGluZ0NvbnRlbnRzU2NhbGVBZGp1c3RtZW50IDogMTsKICAgICBi
b29sIG1fcGVuZGluZ1Zpc2libGVSZWN0QWRqdXN0bWVudCA6IDE7CiAjaWYgVVNFKEdSQVBISUNT
X1NVUkZBQ0UpCi0gICAgYm9vbCBtX2lzVmFsaWRDYW52YXMgOiAxOwotICAgIHVuc2lnbmVkIG1f
cGVuZGluZ0NhbnZhc09wZXJhdGlvbiA6IDM7CisgICAgYm9vbCBtX2lzVmFsaWRQbGF0Zm9ybUxh
eWVyIDogMTsKKyAgICB1bnNpZ25lZCBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uIDog
MzsKICNlbmRpZgogCiAgICAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyQ2xpZW50KiBtX2Nvb3Jk
aW5hdG9yOwpAQCAtMjQ0LDEwICsyNDQsMTAgQEAgcHJpdmF0ZToKICAgICBOYXRpdmVJbWFnZVB0
ciBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0cjsKICAgICBSZWZQdHI8Q29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmc+IG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc7CiAKLSAgICBQbGF0Zm9ybUxheWVy
KiBtX2NhbnZhc1BsYXRmb3JtTGF5ZXI7CisgICAgUGxhdGZvcm1MYXllciogbV9wbGF0Zm9ybUxh
eWVyOwogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIEludFNpemUgbV9jYW52YXNTaXpl
OwotICAgIEdyYXBoaWNzU3VyZmFjZVRva2VuIG1fY2FudmFzVG9rZW47CisgICAgSW50U2l6ZSBt
X3BsYXRmb3JtTGF5ZXJTaXplOworICAgIEdyYXBoaWNzU3VyZmFjZVRva2VuIG1fcGxhdGZvcm1M
YXllclRva2VuOwogI2VuZGlmCiAgICAgVGltZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyPiBt
X2FuaW1hdGlvblN0YXJ0ZWRUaW1lcjsKICAgICBHcmFwaGljc0xheWVyQW5pbWF0aW9ucyBtX2Fu
aW1hdGlvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdy
YXBoaWNzU2NlbmUuY3BwCmluZGV4IGVlNjNjNTczM2Y1NzFhMDAzZGIxZGJkNWUxMDRhODQzODQ1
ZTFjZTEuLjQ5MTQwM2IzNDI2MjM3NmZhNzQyNjgzZTBjODZkZTUyNDdhNDMxYjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3Bw
CkBAIC0xNjUsMzcgKzE2NSwzNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6YWRq
dXN0UG9zaXRpb25Gb3JGaXhlZExheWVycygpCiB9CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFD
RSkKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjcmVhdGVDYW52YXNJZk5lZWRlZChU
ZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJT
dGF0ZSYgc3RhdGUpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6Y3JlYXRlUGxhdGZv
cm1MYXllcklmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIsIGNvbnN0IENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllclN0YXRlJiBzdGF0ZSkKIHsKLSAgICBpZiAoIXN0YXRlLmNhbnZhc1Rv
a2VuLmlzVmFsaWQoKSkKKyAgICBpZiAoIXN0YXRlLnBsYXRmb3JtTGF5ZXJUb2tlbi5pc1ZhbGlk
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyU3VyZmFjZUJh
Y2tpbmdTdG9yZT4gY2FudmFzQmFja2luZ1N0b3JlKFRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2lu
Z1N0b3JlOjpjcmVhdGUoKSk7Ci0gICAgbV9zdXJmYWNlQmFja2luZ1N0b3Jlcy5zZXQobGF5ZXIs
IGNhbnZhc0JhY2tpbmdTdG9yZSk7Ci0gICAgY2FudmFzQmFja2luZ1N0b3JlLT5zZXRHcmFwaGlj
c1N1cmZhY2UoR3JhcGhpY3NTdXJmYWNlOjpjcmVhdGUoc3RhdGUuY2FudmFzU2l6ZSwgc3RhdGUu
Y2FudmFzU3VyZmFjZUZsYWdzLCBzdGF0ZS5jYW52YXNUb2tlbikpOwotICAgIGxheWVyLT5zZXRD
b250ZW50c0xheWVyKGNhbnZhc0JhY2tpbmdTdG9yZS5nZXQoKSk7CisgICAgUmVmUHRyPFRleHR1
cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlPiBwbGF0Zm9ybUxheWVyQmFja2luZ1N0b3JlKFRl
eHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlOjpjcmVhdGUoKSk7CisgICAgbV9zdXJmYWNl
QmFja2luZ1N0b3Jlcy5zZXQobGF5ZXIsIHBsYXRmb3JtTGF5ZXJCYWNraW5nU3RvcmUpOworICAg
IHBsYXRmb3JtTGF5ZXJCYWNraW5nU3RvcmUtPnNldEdyYXBoaWNzU3VyZmFjZShHcmFwaGljc1N1
cmZhY2U6OmNyZWF0ZShzdGF0ZS5wbGF0Zm9ybUxheWVyU2l6ZSwgc3RhdGUucGxhdGZvcm1MYXll
clN1cmZhY2VGbGFncywgc3RhdGUucGxhdGZvcm1MYXllclRva2VuKSk7CisgICAgbGF5ZXItPnNl
dENvbnRlbnRzTGF5ZXIocGxhdGZvcm1MYXllckJhY2tpbmdTdG9yZS5nZXQoKSk7CiB9CiAKLXZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzeW5jQ2FudmFzSWZOZWVkZWQoVGV4dHVyZU1h
cHBlckxheWVyKiBsYXllciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmIHN0
YXRlKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnN5bmNQbGF0Zm9ybUxheWVySWZO
ZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiBsYXllciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyU3RhdGUmIHN0YXRlKQogewogICAgIEFTU0VSVChtX3RleHR1cmVNYXBwZXIpOwogCi0g
ICAgaWYgKHN0YXRlLmNhbnZhc0NoYW5nZWQpIHsKLSAgICAgICAgZGVzdHJveUNhbnZhc0lmTmVl
ZGVkKGxheWVyLCBzdGF0ZSk7Ci0gICAgICAgIGNyZWF0ZUNhbnZhc0lmTmVlZGVkKGxheWVyLCBz
dGF0ZSk7CisgICAgaWYgKHN0YXRlLnBsYXRmb3JtTGF5ZXJDaGFuZ2VkKSB7CisgICAgICAgIGRl
c3Ryb3lQbGF0Zm9ybUxheWVySWZOZWVkZWQobGF5ZXIsIHN0YXRlKTsKKyAgICAgICAgY3JlYXRl
UGxhdGZvcm1MYXllcklmTmVlZGVkKGxheWVyLCBzdGF0ZSk7CiAgICAgfQogCi0gICAgaWYgKHN0
YXRlLmNhbnZhc1Nob3VsZFN3YXBCdWZmZXJzKSB7CisgICAgaWYgKHN0YXRlLnBsYXRmb3JtTGF5
ZXJTaG91bGRTd2FwQnVmZmVycykgewogICAgICAgICBBU1NFUlQobV9zdXJmYWNlQmFja2luZ1N0
b3Jlcy5jb250YWlucyhsYXllcikpOwogICAgICAgICBTdXJmYWNlQmFja2luZ1N0b3JlTWFwOjpp
dGVyYXRvciBpdCA9IG1fc3VyZmFjZUJhY2tpbmdTdG9yZXMuZmluZChsYXllcik7Ci0gICAgICAg
IFJlZlB0cjxUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZT4gY2FudmFzQmFja2luZ1N0
b3JlID0gaXQtPnZhbHVlOwotICAgICAgICBjYW52YXNCYWNraW5nU3RvcmUtPnN3YXBCdWZmZXJz
SWZOZWVkZWQoc3RhdGUuY2FudmFzRnJvbnRCdWZmZXIpOworICAgICAgICBSZWZQdHI8VGV4dHVy
ZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU+IHBsYXRmb3JtTGF5ZXJCYWNraW5nU3RvcmUgPSBp
dC0+dmFsdWU7CisgICAgICAgIHBsYXRmb3JtTGF5ZXJCYWNraW5nU3RvcmUtPnN3YXBCdWZmZXJz
SWZOZWVkZWQoc3RhdGUucGxhdGZvcm1MYXllckZyb250QnVmZmVyKTsKICAgICB9CiB9CiAKLXZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpkZXN0cm95Q2FudmFzSWZOZWVkZWQoVGV4dHVy
ZU1hcHBlckxheWVyKiBsYXllciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUm
IHN0YXRlKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmRlc3Ryb3lQbGF0Zm9ybUxh
eWVySWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiBsYXllciwgY29uc3QgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyU3RhdGUmIHN0YXRlKQogewotICAgIGlmIChzdGF0ZS5jYW52YXNUb2tlbi5p
c1ZhbGlkKCkpCisgICAgaWYgKHN0YXRlLnBsYXRmb3JtTGF5ZXJUb2tlbi5pc1ZhbGlkKCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIG1fc3VyZmFjZUJhY2tpbmdTdG9yZXMucmVtb3ZlKGxheWVy
KTsKQEAgLTMxOSw3ICszMTksNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c2V0
TGF5ZXJTdGF0ZShDb29yZGluYXRlZExheWVySUQgaWQsIGNvbnN0IENvb3JkaQogI2VuZGlmCiAg
ICAgc2V0TGF5ZXJBbmltYXRpb25zSWZOZWVkZWQobGF5ZXIsIGxheWVyU3RhdGUpOwogI2lmIFVT
RShHUkFQSElDU19TVVJGQUNFKQotICAgIHN5bmNDYW52YXNJZk5lZWRlZChsYXllciwgbGF5ZXJT
dGF0ZSk7CisgICAgc3luY1BsYXRmb3JtTGF5ZXJJZk5lZWRlZChsYXllciwgbGF5ZXJTdGF0ZSk7
CiAjZW5kaWYKICAgICBzZXRMYXllclJlcGFpbnRDb3VudElmTmVlZGVkKGxheWVyLCBsYXllclN0
YXRlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBo
aWNzU2NlbmUuaAppbmRleCA3NWE0NzJkNGQxMjljMzM5NzgxZTk5NjdiYzFkOWFkYzRmYWE3OGRi
Li4zZDhjMDQyYzI1NGViZTNhNzY5YjU3YWY2ZDMwNzA4ZjkwMWQ2NjQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCkBAIC0xMDAs
OSArMTAwLDkgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25z
SWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyU3RhdGUmKTsKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICB2b2lkIGNyZWF0ZUNh
bnZhc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllclN0YXRlJik7Ci0gICAgdm9pZCBzeW5jQ2FudmFzSWZOZWVkZWQoVGV4dHVyZU1hcHBl
ckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKLSAgICB2b2lk
IGRlc3Ryb3lDYW52YXNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOworICAgIHZvaWQgY3JlYXRlUGxhdGZvcm1MYXllcklm
TmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
clN0YXRlJik7CisgICAgdm9pZCBzeW5jUGxhdGZvcm1MYXllcklmTmVlZGVkKFRleHR1cmVNYXBw
ZXJMYXllciosIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CisgICAgdm9p
ZCBkZXN0cm95UGxhdGZvcm1MYXllcklmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CiAjZW5kaWYKICAgICB2b2lkIHNldExh
eWVyUmVwYWludENvdW50SWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NT
dGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oCmluZGV4IGQ2YzBhYWU5ZjAwZmFjYmM4MmU1
Mjc5OTViMWEwOWZlOWI3NmExNGIuLjc3NTJhN2Y3NGZmZTg1YzQyNjg4YTgyM2ZkZjliNzBhNDNi
NWE5OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFw
aGljc1N0YXRlLmgKQEAgLTg5LDggKzg5LDggQEAgc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllclN0YXRlIHsKICAgICAgICAgICAgIGJvb2wgZmlsdGVyc0NoYW5nZWQ6IDE7CiAgICAgICAg
ICAgICBib29sIGNoaWxkcmVuQ2hhbmdlZDogMTsKICAgICAgICAgICAgIGJvb2wgcmVwYWludENv
dW50Q2hhbmdlZCA6IDE7Ci0gICAgICAgICAgICBib29sIGNhbnZhc0NoYW5nZWQ6IDE7Ci0gICAg
ICAgICAgICBib29sIGNhbnZhc1Nob3VsZFN3YXBCdWZmZXJzOiAxOworICAgICAgICAgICAgYm9v
bCBwbGF0Zm9ybUxheWVyQ2hhbmdlZDogMTsKKyAgICAgICAgICAgIGJvb2wgcGxhdGZvcm1MYXll
clNob3VsZFN3YXBCdWZmZXJzOiAxOwogICAgICAgICAgICAgYm9vbCBpc1Njcm9sbGFibGVDaGFu
Z2VkOiAxOwogICAgICAgICAgICAgYm9vbCBjb21taXR0ZWRTY3JvbGxPZmZzZXRDaGFuZ2VkOiAx
OwogICAgICAgICAgICAgYm9vbCBjb250ZW50c1RpbGluZ0NoYW5nZWQ6IDE7CkBAIC0xMzEsNyAr
MTMxLDcgQEAgc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlIHsKICAgICAgICAg
LCBtYXNrKEludmFsaWRDb29yZGluYXRlZExheWVySUQpCiAgICAgICAgICwgaW1hZ2VJRChJbnZh
bGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkK
LSAgICAgICAgLCBjYW52YXNGcm9udEJ1ZmZlcigwKQorICAgICAgICAsIHBsYXRmb3JtTGF5ZXJG
cm9udEJ1ZmZlcigwKQogI2VuZGlmCiAgICAgewogICAgIH0KQEAgLTE2MywxMCArMTYzLDEwIEBA
IHN0cnVjdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSB7CiAgICAgVmVjdG9yPFRpbGVV
cGRhdGVJbmZvPiB0aWxlc1RvVXBkYXRlOwogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0g
ICAgSW50U2l6ZSBjYW52YXNTaXplOwotICAgIEdyYXBoaWNzU3VyZmFjZVRva2VuIGNhbnZhc1Rv
a2VuOwotICAgIHVpbnQzMl90IGNhbnZhc0Zyb250QnVmZmVyOwotICAgIEdyYXBoaWNzU3VyZmFj
ZTo6RmxhZ3MgY2FudmFzU3VyZmFjZUZsYWdzOworICAgIEludFNpemUgcGxhdGZvcm1MYXllclNp
emU7CisgICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4gcGxhdGZvcm1MYXllclRva2VuOworICAgIHVp
bnQzMl90IHBsYXRmb3JtTGF5ZXJGcm9udEJ1ZmZlcjsKKyAgICBHcmFwaGljc1N1cmZhY2U6OkZs
YWdzIHBsYXRmb3JtTGF5ZXJTdXJmYWNlRmxhZ3M7CiAjZW5kaWYKIAogICAgIEludFNpemUgY29t
bWl0dGVkU2Nyb2xsT2Zmc2V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcAppbmRleCAwZjcwMDE5ZWFkOGVjNGI1ZWRjZmI0ZDhlYjAyM2FiZjA0
MTRiYmNlLi4yZjUwNGUyYmIzMzlhMjFiOWRhZjYzMDUxNzhkNDVlNmEwM2UyZTgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtNTg5
LDIwICs1ODksMjAgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNvbmZpZ3VyYXRp
b24oKQogICAgICAgICB9CiAjZWxzZQogICAgICAgICBpZiAoIXBsdWdpblZpZXdCYXNlLT5zaG91
bGROb3RBZGRMYXllcigpKQotICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50
c1RvTWVkaWEocGx1Z2luVmlld0Jhc2UtPnBsYXRmb3JtTGF5ZXIoKSk7CisgICAgICAgICAgICBt
X2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKHBsdWdpblZpZXdCYXNl
LT5wbGF0Zm9ybUxheWVyKCksIEdyYXBoaWNzTGF5ZXI6OkNvbnRlbnRzTGF5ZXJGb3JQbHVnaW4p
OwogI2VuZGlmCiAgICAgfQogI2lmIEVOQUJMRShWSURFTykKICAgICBlbHNlIGlmIChyZW5kZXJl
cigpLmlzVmlkZW8oKSkgewogICAgICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQg
PSB0b0hUTUxNZWRpYUVsZW1lbnQocmVuZGVyZXIoKS5lbGVtZW50KCkpOwotICAgICAgICBtX2dy
YXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9NZWRpYShtZWRpYUVsZW1lbnQtPnBsYXRmb3JtTGF5
ZXIoKSk7CisgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5
ZXIobWVkaWFFbGVtZW50LT5wbGF0Zm9ybUxheWVyKCksIEdyYXBoaWNzTGF5ZXI6OkNvbnRlbnRz
TGF5ZXJGb3JNZWRpYSk7CiAgICAgfQogI2VuZGlmCiAjaWYgRU5BQkxFKFdFQkdMKSB8fCBFTkFC
TEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIGVsc2UgaWYgKHJlbmRlcmVyKCkuaXNDYW52
YXMoKSAmJiBjYW52YXNDb21wb3NpdGluZ1N0cmF0ZWd5KHJlbmRlcmVyKCkpID09IENhbnZhc0Fz
TGF5ZXJDb250ZW50cykgewogICAgICAgICBjb25zdCBIVE1MQ2FudmFzRWxlbWVudCogY2FudmFz
ID0gdG9IVE1MQ2FudmFzRWxlbWVudChyZW5kZXJlcigpLmVsZW1lbnQoKSk7CiAgICAgICAgIGlm
IChDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0ID0gY2FudmFzLT5yZW5kZXJpbmdDb250
ZXh0KCkpCi0gICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9DYW52YXMo
Y29udGV4dC0+cGxhdGZvcm1MYXllcigpKTsKKyAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+
c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoY29udGV4dC0+cGxhdGZvcm1MYXllcigpLCBHcmFw
aGljc0xheWVyOjpDb250ZW50c0xheWVyRm9yQ2FudmFzKTsKICAgICAgICAgbGF5ZXJDb25maWdD
aGFuZ2VkID0gdHJ1ZTsKICAgICB9CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236729</attachid>
            <date>2014-08-17 03:28:13 -0700</date>
            <delta_ts>2014-08-22 18:48:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109658-20140817192807.patch</filename>
            <type>text/plain</type>
            <size>40553</size>
            <attacher name="Byungseon(Sun) Shin">sun.shin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyNjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDcyZTYyODc1ODkxYjll
MjU4MWY1MTBlMWM4MDUwYWI3ZmY0NmRkNi4uNTk1MjIyMjJjZjdkYTg1MTg3ZjE2OTZkNjk5YjQ4
NGFlMjY0ODIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE0LTA4LTE3ICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgVW5pZnkgR3JhcGhpY3NM
YXllcjo6c2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk2NTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiBwYXRjaCBv
cmlnaW5hbGx5IHdyaXR0ZW4gYnkgVGltIEhvcnRvbi4KKyAgICAgICAgTWVyZ2Ugc2V0Q29udGVu
dHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzIGludG8gc2V0Q29udGVudHNUb1BsYXRm
b3JtTGF5ZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRqdXN0IGV4
cG9ydHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6Cisg
ICAgICAgIE1vdmUgQ29udGVudHNMYXllclB1cnBvc2UgZW51bSB1cCBvdXQgb2YgR3JhcGhpY3NM
YXllciBwbGF0Zm9ybSBpbXBsbWVudGF0aW9ucworICAgICAgICBhbmQgaW50byBHcmFwaGljc0xh
eWVyLCBzbyB3ZSBjYW4gdXNlIGl0IGFzIGEgcGFyYW1ldGVyLgorICAgICAgICBBZGQgQ29udGVu
dHNMYXllckZvclBsdWdpbi4KKworICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6c2V0
Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICBSZW1vdmUgc2V0Q29udGVudHNUb01l
ZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzLCBhbmQgcmVwbGFjZSB0aGVtCisgICAgICAgIHdp
dGggc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIsIHdoaWNoIHByZXZpb3VzbHkgZXhpc3RlZCBi
dXQgd2FzIHVudXNlZAorICAgICAgICBhbmQgc2ltcGx5IGNhbGxlZCBzZXRDb250ZW50c1RvTWVk
aWEuCisgICAgICAgIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyIHRha2VzIGEgQ29udGVudHNM
YXllclB1cnBvc2UsIHByaW1hcmlseQorICAgICAgICBzbyB0aGF0IEdyYXBoaWNzTGF5ZXJDQSBj
YW4ga25vdyB3aGV0aGVyIGl0IG5lZWRzIHRvIHNldE5lZWRzRGlzcGxheQorICAgICAgICB0aGUg
bGF5ZXIgd2hlbiBwYXJlbnRpbmcgaXQgKGNhbnZhcykgb3Igbm90IChldmVyeXRoaW5nIGVsc2Up
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1BsYXRmb3Jt
TGF5ZXIpOgorICAgICAgICBSZW5hbWUgZnVuY3Rpb24gc2V0Q29udGVudHNUb01lZGlhIC0+IHNl
dENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyLgorICAgICAgICBSZW5hbWUgYXJndW1lbnQgbWVkaWFM
YXllciAtPiBwbGF0Zm9ybUxheWVyLgorICAgICAgICBTdG9yZSB0aGUgcGFzc2VkLWluIENvbnRl
bnRzTGF5ZXJQdXJwb3NlLgorICAgICAgICBSZW1vdmUgc2V0Q29udGVudHNUb0NhbnZhcy4KKwor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZv
cmVTdWJsYXllcnMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVD
b250ZW50c1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICBSZW1vdmUgdXBkYXRlQ29udGVudHNNZWRp
YUxheWVyIGFuZCB1cGRhdGVDb250ZW50c0NhbnZhcyBsYXllciwKKyAgICAgICAgYWRkIHVwZGF0
ZUNvbnRlbnRzUGxhdGZvcm1MYXllci4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nh
L0dyYXBoaWNzTGF5ZXJDQS5oOgorICAgICAgICBEbyB0aGUgc2FtZSB0byB0aGUgTGF5ZXJDaGFu
Z2UgZW51bS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJDb3Jl
OjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb1Bs
YXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzeW5jUGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmRlc3Ryb3lQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBv
c2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgRm9sZCB0aGVzZSB0b2dldGhl
ciBpbiB0aGUgc2FtZSB3YXkgYXMgZWxzZXdoZXJlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAg
ICAgICBEbyB0aGUgc2FtZSB0byB0aGUgTGF5ZXJDaGFuZ2UgZW51bS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjcmVh
dGVQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lOjpzeW5jUGxhdGZvcm1MYXllcklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnNldExheWVy
U3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZTo6Q29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyU3RhdGUpOgorICAgICAgICBSZW5hbWUgY2FudmFzTGF5ZXIgLT4gcGxhdGZvcm1MYXll
ci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1cmF0aW9uKToKKyAg
ICAgICAgVXNlIHRoZSBuZXcgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIsIHBhc3NpbmcgaW4g
dGhlIHJlbGV2YW50IENvbnRlbnRzTGF5ZXJQdXJwb3NlLgorCiAyMDE0LTA4LTE1ICBEZWFuIEph
Y2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTY0MTczKTog
U2FmYXJpIEF1dG9GaWxsIGJ1dHRvbiBpbiBwb3BvdmVyLCBkZWZhdWx0IGJ1dHRvbnMgb24gaUNs
b3VkIGNvbnRyb2wgcGFuZWwgYW5kIFNhZmFyaSBTYWZlIEJyb3dzaW5nIHBhZ2VzIGRvbid0IGhh
dmUgZGVmYXVsdCBhcHBlYXJhbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTYzODVmNzMzMTZmOWNkNWE2YmQ2
MTRkM2UxM2FlZjgzMDM2ZmM4Yi4uZWQ2YTFjYzFlYzVjNjE4ZTdmNGUyNjhiZmUzMzhkM2FjYWU1
ZGEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTA4LTE3ICBCeXVuZ3Nlb24g
U2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgVW5pZnkgR3JhcGhpY3NMYXllcjo6
c2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk2NTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCYXNlZCBvbiBwYXRjaCBvcmlnaW5h
bGx5IHdyaXR0ZW4gYnkgVGltIEhvcnRvbi4KKyAgICAgICAgTWVyZ2Ugc2V0Q29udGVudHNUb01l
ZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzIGludG8gc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5
ZXIuCisKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmRlY29kZSk6CisgICAg
ICAgIFJlbmFtZSBjYW52YXMgLT4gcGxhdGZvcm1MYXllci4KKwogMjAxNC0wOC0xNiAgUHJhdGlr
IFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIERpc2tDYWNo
ZU1vbml0b3IgdG8gTmV0d29ya0Rpc2tDYWNoZU1vbml0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5k
ZXggNTI1ZTM1NGIwM2YyZDZmZDZlOGU1MmU0ZDY1YWEwNWI1OTFjZjU0NS4uN2ZkZWZkNTI4NTEy
NjNiYWFkZjc5NDdlYzczYTc4ZjMyMGJiY2NiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTU3
OCwxMiArNTc4LDEwIEBAIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTdzZXRDdXN0b21C
ZWhhdmlvckVOU18xM0dyYXBoaWNzTGF5ZXIxNEN1c3RvbUJlaGF2CiBfX1pON1dlYkNvcmUxNUdy
YXBoaWNzTGF5ZXJDQTE3c3VzcGVuZEFuaW1hdGlvbnNFZAogX19aTjdXZWJDb3JlMTVHcmFwaGlj
c0xheWVyQ0ExOHNldEJhY2tncm91bmRDb2xvckVSS05TXzVDb2xvckUKIF9fWk43V2ViQ29yZTE1
R3JhcGhpY3NMYXllckNBMThzZXRDb250ZW50c1RvSW1hZ2VFUE5TXzVJbWFnZUUKLV9fWk43V2Vi
Q29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRDb250ZW50c1RvTWVkaWFFUDdDQUxheWVyCiBfX1pO
N1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE4c2V0Q29udGVudHNWaXNpYmxlRWIKIF9fWk43V2Vi
Q29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRPcGFjaXR5SW50ZXJuYWxFZgogX19aTjdXZWJDb3Jl
MTVHcmFwaGljc0xheWVyQ0ExOHNldFJlcGxpY2F0ZWRMYXllckVQTlNfMTNHcmFwaGljc0xheWVy
RQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOHNldFNob3dEZWJ1Z0JvcmRlckViCi1f
X1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE5c2V0Q29udGVudHNUb0NhbnZhc0VQN0NBTGF5
ZXIKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTlzZXRDdXN0b21BcHBlYXJhbmNlRU5T
XzEzR3JhcGhpY3NMYXllcjE2Q3VzdG9tQXBwZWFyYW5jZUUKIF9fWk43V2ViQ29yZTE1R3JhcGhp
Y3NMYXllckNBMjBzZXRDaGlsZHJlblRyYW5zZm9ybUVSS05TXzIwVHJhbnNmb3JtYXRpb25NYXRy
aXhFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTIwc2V0UmVwbGljYXRlZEJ5TGF5ZXJF
UE5TXzEzR3JhcGhpY3NMYXllckUKQEAgLTU5Niw2ICs1OTQsNyBAQCBfX1pON1dlYkNvcmUxNUdy
YXBoaWNzTGF5ZXJDQTIzc2V0Q29udGVudHNDbGlwcGluZ1JlY3RFUktOU185RmxvYXRSZWN0RQog
X19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EyM3NldENvbnRlbnRzTmVlZHNEaXNwbGF5RXYK
IF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjNzZXRDb250ZW50c1RvU29saWRDb2xvckVS
S05TXzVDb2xvckUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjNzZXREZWJ1Z0JhY2tn
cm91bmRDb2xvckVSS05TXzVDb2xvckUKK19fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjZz
ZXRDb250ZW50c1RvUGxhdGZvcm1MYXllckVQN0NBTGF5ZXJOU18xM0dyYXBoaWNzTGF5ZXIyMENv
bnRlbnRzTGF5ZXJQdXJwb3NlRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EyOHBsYXRm
b3JtQ0FMYXllclBhaW50Q29udGVudHNFUE5TXzE1UGxhdGZvcm1DQUxheWVyRVJOU18xNUdyYXBo
aWNzQ29udGV4dEVSS05TXzlGbG9hdFJlY3RFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJD
QTMwZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkRXYKIF9fWk43V2ViQ29yZTE1R3JhcGhp
Y3NMYXllckNBMzFwbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25TdGFydGVkRWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCA0Nzg5MWI4
NmZlNzgyYjYyOGM5MTVhMjFmZDMzY2NmYWY1ZjY2YjM5Li42ZDg4ZDg0NWM0OWUzMDA2Zjk3ZjAw
MjE1YmQxZWQyMmNmOWFlZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0yNTEsNiArMjUxLDE1IEBAIHB1YmxpYzoKICAgICAv
LyBSZXR1cm5zIHRydWUgaWYgdGhlIGNoaWxkIGxpc3QgY2hhbmdlZC4KICAgICB2aXJ0dWFsIGJv
b2wgc2V0Q2hpbGRyZW4oY29uc3QgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiYpOwogCisgICAgZW51
bSBDb250ZW50c0xheWVyUHVycG9zZSB7CisgICAgICAgIE5vQ29udGVudHNMYXllciA9IDAsCisg
ICAgICAgIENvbnRlbnRzTGF5ZXJGb3JJbWFnZSwKKyAgICAgICAgQ29udGVudHNMYXllckZvck1l
ZGlhLAorICAgICAgICBDb250ZW50c0xheWVyRm9yQ2FudmFzLAorICAgICAgICBDb250ZW50c0xh
eWVyRm9yQmFja2dyb3VuZENvbG9yLAorICAgICAgICBDb250ZW50c0xheWVyRm9yUGx1Z2luCisg
ICAgfTsKKwogICAgIC8vIEFkZCBjaGlsZCBsYXllcnMuIElmIHRoZSBjaGlsZCBpcyBhbHJlYWR5
IHBhcmVudGVkLCBpdCB3aWxsIGJlIHJlbW92ZWQgZnJvbSBpdHMgb2xkIHBhcmVudC4KICAgICB2
aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoR3JhcGhpY3NMYXllciopOwogICAgIHZpcnR1YWwgdm9pZCBh
ZGRDaGlsZEF0SW5kZXgoR3JhcGhpY3NMYXllciosIGludCBpbmRleCk7CkBAIC00MDUsMTYgKzQx
NCwxMiBAQCBwdWJsaWM6CiAgICAgLy8gTGF5ZXIgY29udGVudHMKICAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKikgeyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZERp
cmVjdGx5Q29tcG9zaXRlSW1hZ2UoSW1hZ2UqKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAg
dmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKikgeyB9IC8vIHZp
ZGVvIG9yIHBsdWctaW4KICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxh
eWVyKiBjb250ZW50c0xheWVyRm9yTWVkaWEoKSBjb25zdCB7IHJldHVybiAwOyB9CiAjZW5kaWYK
ICAgICAvLyBQYXNzIGFuIGludmFsaWQgY29sb3IgdG8gcmVtb3ZlIHRoZSBjb250ZW50cyBsYXll
ci4KICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3Im
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVy
KikgeyB9Ci0gICAgLy8gRklYTUU6IHdlYmtpdC5vcmcvYi8xMDk2NTgKLSAgICAvLyBTaG91bGQg
dW5pZnkgc2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzCi0gICAgdmly
dHVhbCB2b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqIGxheWVy
KSB7IHNldENvbnRlbnRzVG9NZWRpYShsYXllcik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQdXJwb3Nl
KSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogCiAgICAgLy8gQ2FsbGJhY2sgZnJvbSB0aGUgdW5kZXJseWluZyBncmFwaGlj
cyBzeXN0ZW0gdG8gZHJhdyBsYXllciBjb250ZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDg5NmI2
ZWQyZjZlNjJhMmVlOTNlYjllZDkyMGRlZjA0ZTVjYjA2NGUuLjkxOWI5OGEwMDY5MDQwZGJjMjE2
NGJmNzc1MGJlMjMyZmQ1YTdjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtOTE4LDI0ICs5MTgsMjQg
QEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2Up
CiAgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzSW1hZ2VDaGFuZ2VkKTsKIH0K
IAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVy
KiBtZWRpYUxheWVyKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9QbGF0Zm9y
bUxheWVyKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIsIENvbnRlbnRzTGF5ZXJQdXJwb3Nl
IHB1cnBvc2UpCiB7Ci0gICAgaWYgKG1fY29udGVudHNMYXllciAmJiBtZWRpYUxheWVyID09IG1f
Y29udGVudHNMYXllci0+cGxhdGZvcm1MYXllcigpKQorICAgIGlmIChtX2NvbnRlbnRzTGF5ZXIg
JiYgcGxhdGZvcm1MYXllciA9PSBtX2NvbnRlbnRzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSkKICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAKLSAgICAvLyBGSVhNRTogVGhlIHBhc3NlZCBpbiBsYXll
ciBtaWdodCBiZSBhIHJhdyBsYXllciBvciBhbiBleHRlcm5hbGx5IGNyZWF0ZWQgCisKKyAgICAv
LyBGSVhNRTogVGhlIHBhc3NlZCBpbiBsYXllciBtaWdodCBiZSBhIHJhdyBsYXllciBvciBhbiBl
eHRlcm5hbGx5IGNyZWF0ZWQKICAgICAvLyBQbGF0Zm9ybUNBTGF5ZXIuIFRvIGRldGVybWluZSB0
aGlzIHdlIGF0dGVtcHQgdG8gZ2V0IHRoZQogICAgIC8vIFBsYXRmb3JtQ0FMYXllciBwb2ludGVy
LiBJZiB0aGlzIHJldHVybnMgYSBudWxsIHBvaW50ZXIgd2UgYXNzdW1lIGl0J3MKICAgICAvLyBy
YXcuIFRoaXMgdGVzdCBtaWdodCBiZSBpbnZhbGlkIGlmIHRoZSByYXcgbGF5ZXIgaXMsIGZvciBp
bnN0YW5jZSwgdGhlCiAgICAgLy8gUGxhdGZvcm1DQUxheWVyIGlzIHVzaW5nIGEgdXNlciBkYXRh
IHBvaW50ZXIgaW4gdGhlIHJhdyBsYXllciwgYW5kCiAgICAgLy8gdGhlIGNyZWF0b3Igb2YgdGhl
IHJhdyBsYXllciBpcyB1c2luZyBpdCBmb3Igc29tZSBvdGhlciBwdXJwb3NlLgogICAgIC8vIEZv
ciBub3cgd2UgZG9uJ3Qgc3VwcG9ydCBzdWNoIGEgY2FzZS4KLSAgICBQbGF0Zm9ybUNBTGF5ZXIq
IHBsYXRmb3JtQ0FMYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKG1lZGlh
TGF5ZXIpOwotICAgIG1fY29udGVudHNMYXllciA9IG1lZGlhTGF5ZXIgPyAocGxhdGZvcm1DQUxh
eWVyID8gcGxhdGZvcm1DQUxheWVyIDogY3JlYXRlUGxhdGZvcm1DQUxheWVyKG1lZGlhTGF5ZXIs
IHRoaXMpKSA6IDA7Ci0gICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IG1lZGlhTGF5ZXIgPyBD
b250ZW50c0xheWVyRm9yTWVkaWEgOiBOb0NvbnRlbnRzTGF5ZXI7CisgICAgUGxhdGZvcm1DQUxh
eWVyKiBwbGF0Zm9ybUNBTGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcihw
bGF0Zm9ybUxheWVyKTsKKyAgICBtX2NvbnRlbnRzTGF5ZXIgPSBwbGF0Zm9ybUxheWVyID8gKHBs
YXRmb3JtQ0FMYXllciA/IHBsYXRmb3JtQ0FMYXllciA6IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihw
bGF0Zm9ybUxheWVyLCB0aGlzKSkgOiAwOworICAgIG1fY29udGVudHNMYXllclB1cnBvc2UgPSBw
bGF0Zm9ybUxheWVyID8gcHVycG9zZSA6IE5vQ29udGVudHNMYXllcjsKIAogICAgIG5vdGVTdWJs
YXllcnNDaGFuZ2VkKCk7Ci0gICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzTWVk
aWFMYXllckNoYW5nZWQpOworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50c1Bs
YXRmb3JtTGF5ZXJDaGFuZ2VkKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTk0NSwyMCAr
OTQ1LDYgQEAgUGxhdGZvcm1MYXllciogR3JhcGhpY3NMYXllckNBOjpjb250ZW50c0xheWVyRm9y
TWVkaWEoKSBjb25zdAogfQogI2VuZGlmCiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250
ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIqIGNhbnZhc0xheWVyKQotewotICAgIGlmIChtX2Nv
bnRlbnRzTGF5ZXIgJiYgY2FudmFzTGF5ZXIgPT0gbV9jb250ZW50c0xheWVyLT5wbGF0Zm9ybUxh
eWVyKCkpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICAvLyBDcmVhdGUgdGhlIFBsYXRmb3Jt
Q0FMYXllciB0byB3cmFwIHRoZSBpbmNvbWluZyBsYXllcgotICAgIG1fY29udGVudHNMYXllciA9
IGNhbnZhc0xheWVyID8gY3JlYXRlUGxhdGZvcm1DQUxheWVyKGNhbnZhc0xheWVyLCB0aGlzKSA6
IDA7Ci0gICAgCi0gICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IGNhbnZhc0xheWVyID8gQ29u
dGVudHNMYXllckZvckNhbnZhcyA6IE5vQ29udGVudHNMYXllcjsKLQotICAgIG5vdGVTdWJsYXll
cnNDaGFuZ2VkKCk7Ci0gICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzQ2FudmFz
TGF5ZXJDaGFuZ2VkKTsKLX0KLSAgICAKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpsYXllckRpZERp
c3BsYXkoUGxhdGZvcm1DQUxheWVyKiBsYXllcikKIHsKICAgICBMYXllck1hcCogbGF5ZXJDbG9u
ZU1hcDsKQEAgLTEzMDMsMTEgKzEyODksOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6Y29tbWl0
TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzKENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZQogICAg
IGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzSW1hZ2VDaGFuZ2VkKSAvLyBOZWVk
cyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAogICAgICAgICB1cGRhdGVDb250ZW50
c0ltYWdlKCk7CiAgICAgICAgIAotICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRl
bnRzTWVkaWFMYXllckNoYW5nZWQpIC8vIE5lZWRzIHRvIGhhcHBlbiBiZWZvcmUgQ2hpbGRyZW5D
aGFuZ2VkCi0gICAgICAgIHVwZGF0ZUNvbnRlbnRzTWVkaWFMYXllcigpOwotICAgIAotICAgIGlm
IChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzQ2FudmFzTGF5ZXJDaGFuZ2VkKSAvLyBO
ZWVkcyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAotICAgICAgICB1cGRhdGVDb250
ZW50c0NhbnZhc0xheWVyKCk7CisgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ29udGVu
dHNQbGF0Zm9ybUxheWVyQ2hhbmdlZCkgLy8gTmVlZHMgdG8gaGFwcGVuIGJlZm9yZSBDaGlsZHJl
bkNoYW5nZWQKKyAgICAgICAgdXBkYXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKCk7CiAKICAgICBp
ZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBDb250ZW50c0NvbG9yTGF5ZXJDaGFuZ2VkKSAvLyBO
ZWVkcyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAogICAgICAgICB1cGRhdGVDb250
ZW50c0NvbG9yTGF5ZXIoKTsKQEAgLTE5MzYsMjQgKzE5MTksMTcgQEAgdm9pZCBHcmFwaGljc0xh
eWVyQ0E6OnVwZGF0ZUNvbnRlbnRzSW1hZ2UoKQogICAgIH0KIH0KIAotdm9pZCBHcmFwaGljc0xh
eWVyQ0E6OnVwZGF0ZUNvbnRlbnRzTWVkaWFMYXllcigpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6
dXBkYXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKCkKIHsKLSAgICBpZiAoIW1fY29udGVudHNMYXll
ciB8fCBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlICE9IENvbnRlbnRzTGF5ZXJGb3JNZWRpYSkKKyAg
ICBpZiAoIW1fY29udGVudHNMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVmlkZW8g
bGF5ZXIgd2FzIHNldCBhcyBtX2NvbnRlbnRzTGF5ZXIsIGFuZCB3aWxsIGdldCBwYXJlbnRlZCBp
biB1cGRhdGVTdWJsYXllckxpc3QoKS4KKyAgICAvLyBQbGF0Zm9ybSBsYXllciB3YXMgc2V0IGFz
IG1fY29udGVudHNMYXllciwgYW5kIHdpbGwgZ2V0IHBhcmVudGVkIGluIHVwZGF0ZVN1YmxheWVy
TGlzdCgpLgogICAgIHNldHVwQ29udGVudHNMYXllcihtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkpOwot
ICAgIHVwZGF0ZUNvbnRlbnRzUmVjdHMoKTsKLX0KIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVw
ZGF0ZUNvbnRlbnRzQ2FudmFzTGF5ZXIoKQotewotICAgIGlmICghbV9jb250ZW50c0xheWVyIHx8
IG1fY29udGVudHNMYXllclB1cnBvc2UgIT0gQ29udGVudHNMYXllckZvckNhbnZhcykKLSAgICAg
ICAgcmV0dXJuOworICAgIGlmIChtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID09IENvbnRlbnRzTGF5
ZXJGb3JDYW52YXMpCisgICAgICAgIG1fY29udGVudHNMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7
CiAKLSAgICAvLyBDYW52YXNMYXllciB3YXMgc2V0IGFzIG1fY29udGVudHNMYXllciwgYW5kIHdp
bGwgZ2V0IHBhcmVudGVkIGluIHVwZGF0ZVN1YmxheWVyTGlzdCgpLgotICAgIHNldHVwQ29udGVu
dHNMYXllcihtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkpOwotICAgIG1fY29udGVudHNMYXllci0+c2V0
TmVlZHNEaXNwbGF5KCk7CiAgICAgdXBkYXRlQ29udGVudHNSZWN0cygpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5o
CmluZGV4IGRiM2QyZDcyOTAxNjVhMmE5YzdiMGZlNDUyNGY5ZDRmMzFhY2JlNTEuLmY2ZTY1ZGJh
ZGM4Y2QyNzliMmIwY2Y2OTE3YzJhNmU1Mjk4ZjJjNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0xMjYsMTEg
KzEyNiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbihjb25z
dCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHNl
dENvbnRlbnRzVG9JbWFnZShJbWFnZSopIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRD
b250ZW50c1RvTWVkaWEoUGxhdGZvcm1MYXllciopIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElP
UykKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIGNvbnRlbnRzTGF5ZXJGb3JNZWRpYSgpIGNv
bnN0IG92ZXJyaWRlOwogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9DYW52
YXMoUGxhdGZvcm1MYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50
c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiwgQ29udGVudHNMYXllclB1cnBvc2UpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYpIG92
ZXJyaWRlOwogCiAgICAgdmlydHVhbCBib29sIHVzZXNDb250ZW50c0xheWVyKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9jb250ZW50c0xheWVyUHVycG9zZSAhPSBOb0NvbnRlbnRzTGF5ZXI7
IH0KQEAgLTM3Myw4ICszNzIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQmFja2dyb3Vu
ZENvbG9yKCk7CiAKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzSW1hZ2UoKTsKLSAgICB2b2lkIHVw
ZGF0ZUNvbnRlbnRzTWVkaWFMYXllcigpOwotICAgIHZvaWQgdXBkYXRlQ29udGVudHNDYW52YXNM
YXllcigpOworICAgIHZvaWQgdXBkYXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKCk7CiAgICAgdm9p
ZCB1cGRhdGVDb250ZW50c0NvbG9yTGF5ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzUmVj
dHMoKTsKICAgICB2b2lkIHVwZGF0ZU1hc2tMYXllcigpOwpAQCAtNDI4LDI0ICs0MjYsMjMgQEAg
cHJpdmF0ZToKICAgICAgICAgQW5pbWF0aW9uQ2hhbmdlZCA9IDFMTFUgPDwgMTMsCiAgICAgICAg
IERpcnR5UmVjdHNDaGFuZ2VkID0gMUxMVSA8PCAxNCwKICAgICAgICAgQ29udGVudHNJbWFnZUNo
YW5nZWQgPSAxTExVIDw8IDE1LAotICAgICAgICBDb250ZW50c01lZGlhTGF5ZXJDaGFuZ2VkID0g
MUxMVSA8PCAxNiwKLSAgICAgICAgQ29udGVudHNDYW52YXNMYXllckNoYW5nZWQgPSAxTExVIDw8
IDE3LAotICAgICAgICBDb250ZW50c0NvbG9yTGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAxOCwKLSAg
ICAgICAgQ29udGVudHNSZWN0c0NoYW5nZWQgPSAxTExVIDw8IDE5LAotICAgICAgICBNYXNrTGF5
ZXJDaGFuZ2VkID0gMUxMVSA8PCAyMCwKLSAgICAgICAgUmVwbGljYXRlZExheWVyQ2hhbmdlZCA9
IDFMTFUgPDwgMjEsCi0gICAgICAgIENvbnRlbnRzTmVlZHNEaXNwbGF5ID0gMUxMVSA8PCAyMiwK
LSAgICAgICAgQWNjZWxlcmF0ZXNEcmF3aW5nQ2hhbmdlZCA9IDFMTFUgPDwgMjMsCi0gICAgICAg
IENvbnRlbnRzU2NhbGVDaGFuZ2VkID0gMUxMVSA8PCAyNCwKLSAgICAgICAgQ29udGVudHNWaXNp
YmlsaXR5Q2hhbmdlZCA9IDFMTFUgPDwgMjUsCi0gICAgICAgIFZpc2libGVSZWN0Q2hhbmdlZCA9
IDFMTFUgPDwgMjYsCi0gICAgICAgIEZpbHRlcnNDaGFuZ2VkID0gMUxMVSA8PCAyNywKLSAgICAg
ICAgVGlsaW5nQXJlYUNoYW5nZWQgPSAxTExVIDw8IDI4LAotICAgICAgICBUaWxlc0FkZGVkID0g
MUxMVSA8IDI5LAotICAgICAgICBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkID0gMUxMVSA8PCAzMCwK
LSAgICAgICAgQ3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQgPSAxTExVIDw8IDMxLAotICAgICAgICBD
dXN0b21CZWhhdmlvckNoYW5nZWQgPSAxTExVIDw8IDMyLAotICAgICAgICBCbGVuZE1vZGVDaGFu
Z2VkID0gMUxMVSA8PCAzMworICAgICAgICBDb250ZW50c1BsYXRmb3JtTGF5ZXJDaGFuZ2VkID0g
MUxMVSA8PCAxNiwKKyAgICAgICAgQ29udGVudHNDb2xvckxheWVyQ2hhbmdlZCA9IDFMTFUgPDwg
MTcsCisgICAgICAgIENvbnRlbnRzUmVjdHNDaGFuZ2VkID0gMUxMVSA8PCAxOCwKKyAgICAgICAg
TWFza0xheWVyQ2hhbmdlZCA9IDFMTFUgPDwgMTksCisgICAgICAgIFJlcGxpY2F0ZWRMYXllckNo
YW5nZWQgPSAxTExVIDw8IDIwLAorICAgICAgICBDb250ZW50c05lZWRzRGlzcGxheSA9IDFMTFUg
PDwgMjEsCisgICAgICAgIEFjY2VsZXJhdGVzRHJhd2luZ0NoYW5nZWQgPSAxTExVIDw8IDIyLAor
ICAgICAgICBDb250ZW50c1NjYWxlQ2hhbmdlZCA9IDFMTFUgPDwgMjMsCisgICAgICAgIENvbnRl
bnRzVmlzaWJpbGl0eUNoYW5nZWQgPSAxTExVIDw8IDI0LAorICAgICAgICBWaXNpYmxlUmVjdENo
YW5nZWQgPSAxTExVIDw8IDI1LAorICAgICAgICBGaWx0ZXJzQ2hhbmdlZCA9IDFMTFUgPDwgMjYs
CisgICAgICAgIFRpbGluZ0FyZWFDaGFuZ2VkID0gMUxMVSA8PCAyNywKKyAgICAgICAgVGlsZXNB
ZGRlZCA9IDFMTFUgPCAyOCwKKyAgICAgICAgRGVidWdJbmRpY2F0b3JzQ2hhbmdlZCA9IDFMTFUg
PDwgMjksCisgICAgICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkID0gMUxMVSA8PCAzMCwKKyAg
ICAgICAgQ3VzdG9tQmVoYXZpb3JDaGFuZ2VkID0gMUxMVSA8PCAzMSwKKyAgICAgICAgQmxlbmRN
b2RlQ2hhbmdlZCA9IDFMTFUgPDwgMzIKICAgICB9OwogICAgIHR5cGVkZWYgdWludDY0X3QgTGF5
ZXJDaGFuZ2VGbGFnczsKICAgICBlbnVtIFNjaGVkdWxlRmx1c2hPck5vdCB7IFNjaGVkdWxlRmx1
c2gsIERvbnRTY2hlZHVsZUZsdXNoIH07CkBAIC00NzIsMTQgKzQ2OSw2IEBAIHByaXZhdGU6CiAg
ICAgRmxvYXRSZWN0IG1fdmlzaWJsZVJlY3Q7CiAgICAgRmxvYXRTaXplIG1fc2l6ZUF0TGFzdFZp
c2libGVSZWN0VXBkYXRlOwogICAgIAotICAgIGVudW0gQ29udGVudHNMYXllclB1cnBvc2Ugewot
ICAgICAgICBOb0NvbnRlbnRzTGF5ZXIgPSAwLAotICAgICAgICBDb250ZW50c0xheWVyRm9ySW1h
Z2UsCi0gICAgICAgIENvbnRlbnRzTGF5ZXJGb3JNZWRpYSwKLSAgICAgICAgQ29udGVudHNMYXll
ckZvckNhbnZhcywKLSAgICAgICAgQ29udGVudHNMYXllckZvckJhY2tncm91bmRDb2xvcgotICAg
IH07Ci0gICAgCiAgICAgQ29udGVudHNMYXllclB1cnBvc2UgbV9jb250ZW50c0xheWVyUHVycG9z
ZTsKICAgICBib29sIG1faXNQYWdlVGlsZWRCYWNraW5nTGF5ZXIgOiAxOwogICAgIGJvb2wgbV9u
ZWVkc0Z1bGxSZXBhaW50IDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXIuY3BwCmluZGV4IDE3NGNjNTQ5OGY1Y2ZkOWNhODQzNTllNDdkZjViNzQ4YTkwMTJlMjAuLmI4
M2YzYmM2NGQzNTM4MDVlNjBhNjg3ZTU3Njk4NWNkYjhhN2IyYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtMzY4LDE3ICszNjgsMTcgQEAgdm9pZCBH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFn
ZSkKICAgICAgICAgbV9jb21wb3NpdGVkSW1hZ2UgPSAwOwogICAgIH0KIAotICAgIHNldENvbnRl
bnRzVG9NZWRpYShtX2NvbXBvc2l0ZWRJbWFnZS5nZXQoKSk7CisgICAgc2V0Q29udGVudHNUb1Bs
YXRmb3JtTGF5ZXIobV9jb21wb3NpdGVkSW1hZ2UuZ2V0KCksIENvbnRlbnRzTGF5ZXJGb3JJbWFn
ZSk7CiAgICAgbm90aWZ5Q2hhbmdlKENvbnRlbnRDaGFuZ2UpOwogICAgIEdyYXBoaWNzTGF5ZXI6
OnNldENvbnRlbnRzVG9JbWFnZShpbWFnZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXI6OnNldENvbnRlbnRzVG9NZWRpYShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllciog
bWVkaWEpCit2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvUGxh
dGZvcm1MYXllcihUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllciogbWVkaWEsIENvbnRlbnRzTGF5
ZXJQdXJwb3NlIHB1cnBvc2UpCiB7CiAgICAgaWYgKG1lZGlhID09IG1fY29udGVudHNMYXllcikK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb01lZGlh
KG1lZGlhKTsKKyAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllciht
ZWRpYSwgcHVycG9zZSk7CiAgICAgbm90aWZ5Q2hhbmdlKENvbnRlbnRDaGFuZ2UpOwogCiAgICAg
aWYgKG1fY29udGVudHNMYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
LmgKaW5kZXggY2FjZWNiMzc2MzI5YzIwNDU1YWRhMWVhMzI4N2Q5NWFjNTU0MjI4Mi4uODJmOGNh
YjVlOWRlNDFiZWI2M2EyM2RiOTA5OTU5M2Q1MmNkODkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyLmgKQEAgLTY4LDggKzY4LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImKTsKICAgICBDb2xvciBzb2xpZENvbG9y
KCkgY29uc3QgeyByZXR1cm4gbV9zb2xpZENvbG9yOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldENv
bnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKik7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRl
bnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciogY2FudmFzKSB7IHNldENvbnRlbnRzVG9NZWRpYShj
YW52YXMpOyB9CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBs
YXRmb3JtTGF5ZXIqLCBDb250ZW50c0xheWVyUHVycG9zZSk7CiAgICAgdmlydHVhbCB2b2lkIHNl
dFNob3dEZWJ1Z0JvcmRlcihib29sKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVi
dWdCb3JkZXIoY29uc3QgQ29sb3ImLCBmbG9hdCB3aWR0aCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIHNldFNob3dSZXBhaW50Q291bnRlcihib29sKSBvdmVycmlkZTsKQEAgLTExMiw3ICsx
MTEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJlcGFyZUJhY2tpbmdTdG9yZUlmTmVlZGVkKCk7
CiAgICAgYm9vbCBzaG91bGRIYXZlQmFja2luZ1N0b3JlKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgcGxhdGZvcm1MYXllcldpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlIHsgc2V0Q29udGVu
dHNUb01lZGlhKDApOyB9CisgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtTGF5ZXJXaWxsQmVEZXN0
cm95ZWQoKSBvdmVycmlkZSB7IHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKDAsIE5vQ29udGVu
dHNMYXllcik7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0UGxhdGZvcm1MYXllck5lZWRzRGlzcGxh
eSgpIG92ZXJyaWRlIHsgc2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsgfQogCiAgICAgLy8gVGhp
cyBzZXQgb2YgZmxhZ3MgaGVscCB1cyBkZWZlciB3aGljaCBwcm9wZXJ0aWVzIG9mIHRoZSBsYXll
ciBoYXZlIGJlZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5jcHAKaW5kZXggZjY0ZmVmMjg5YzdhZTU4OWVlMWExNTJlZWEzM2Q2OTYw
MzQ3YWQ2Zi4uNTZlNGI4ODk3NjA2NjJmMmYxZTdhOTA3ZDQxZDM0ZjEwMjA1MjgxNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5j
cHAKQEAgLTEyMSwxMiArMTIxLDEyIEBAIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKICAgICAsIG1f
cGVuZGluZ0NvbnRlbnRzU2NhbGVBZGp1c3RtZW50KGZhbHNlKQogICAgICwgbV9wZW5kaW5nVmlz
aWJsZVJlY3RBZGp1c3RtZW50KGZhbHNlKQogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAg
ICwgbV9pc1ZhbGlkQ2FudmFzKGZhbHNlKQotICAgICwgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9u
KE5vbmUpCisgICAgLCBtX2lzVmFsaWRQbGF0Zm9ybUxheWVyKGZhbHNlKQorICAgICwgbV9wZW5k
aW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbihOb25lKQogI2VuZGlmCiAgICAgLCBtX2Nvb3JkaW5h
dG9yKDApCiAgICAgLCBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0cigwKQotICAgICwgbV9jYW52
YXNQbGF0Zm9ybUxheWVyKDApCisgICAgLCBtX3BsYXRmb3JtTGF5ZXIoMCkKICAgICAsIG1fYW5p
bWF0aW9uU3RhcnRlZFRpbWVyKHRoaXMsICZDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFuaW1h
dGlvblN0YXJ0ZWRUaW1lckZpcmVkKQogICAgICwgbV9zY3JvbGxhYmxlQXJlYSgwKQogewpAQCAt
MzgzLDM2ICszODMsMzcgQEAgYm9vbCBHcmFwaGljc0xheWVyOjpzdXBwb3J0c0NvbnRlbnRzVGls
aW5nKCkKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c05lZWRzRGlz
cGxheSgpCiB7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgaWYgKG1fY2FudmFzUGxh
dGZvcm1MYXllcikKLSAgICAgICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHw9IFN5bmNDYW52
YXM7CisgICAgaWYgKG1fcGxhdGZvcm1MYXllcikKKyAgICAgICAgbV9wZW5kaW5nUGxhdGZvcm1M
YXllck9wZXJhdGlvbiB8PSBTeW5jUGxhdGZvcm1MYXllcjsKICNlbmRpZgogCiAgICAgbm90aWZ5
Rmx1c2hSZXF1aXJlZCgpOwogICAgIGFkZFJlcGFpbnRSZWN0KGNvbnRlbnRzUmVjdCgpKTsKIH0K
IAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9DYW52YXMoUGxh
dGZvcm1MYXllciogcGxhdGZvcm1MYXllcikKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVy
LCBDb250ZW50c0xheWVyUHVycG9zZSBwdXJwb3NlKQogewogI2lmIFVTRShHUkFQSElDU19TVVJG
QUNFKQotICAgIGlmIChtX2NhbnZhc1BsYXRmb3JtTGF5ZXIpIHsKLSAgICAgICAgQVNTRVJUKG1f
Y2FudmFzVG9rZW4uaXNWYWxpZCgpKTsKKyAgICBpZiAobV9wbGF0Zm9ybUxheWVyKSB7CisgICAg
ICAgIEFTU0VSVChtX3BsYXRmb3JtTGF5ZXJUb2tlbi5pc1ZhbGlkKCkpOwogICAgICAgICBpZiAo
IXBsYXRmb3JtTGF5ZXIpIHsKLSAgICAgICAgICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiB8
PSBEZXN0cm95Q2FudmFzOwotICAgICAgICAgICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uICY9
IH5DcmVhdGVDYW52YXM7Ci0gICAgICAgIH0gIGVsc2UgaWYgKChtX2NhbnZhc1NpemUgIT0gcGxh
dGZvcm1MYXllci0+cGxhdGZvcm1MYXllclNpemUoKSkgfHwgKG1fY2FudmFzVG9rZW4gIT0gcGxh
dGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKSkpIHsKLSAgICAgICAgICAgIC8vIG1f
Y2FudmFzVG9rZW4gY2FuIGJlIGRpZmZlcmVudCB0byBwbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1
cmZhY2VUb2tlbigpLCBldmVuIGlmIG1fY2FudmFzUGxhdGZvcm1MYXllciBlcXVhbHMgcGxhdGZv
cm1MYXllci4KLSAgICAgICAgICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiB8PSBSZWNyZWF0
ZUNhbnZhczsKKyAgICAgICAgICAgIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gfD0g
RGVzdHJveVBsYXRmb3JtTGF5ZXI7CisgICAgICAgICAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVy
T3BlcmF0aW9uICY9IH5DcmVhdGVQbGF0Zm9ybUxheWVyOworICAgICAgICB9ICBlbHNlIGlmICgo
bV9wbGF0Zm9ybUxheWVyU2l6ZSAhPSBwbGF0Zm9ybUxheWVyLT5wbGF0Zm9ybUxheWVyU2l6ZSgp
KSB8fCAobV9wbGF0Zm9ybUxheWVyVG9rZW4gIT0gcGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJm
YWNlVG9rZW4oKSkpIHsKKyAgICAgICAgICAgIC8vIG1fcGxhdGZvcm1MYXllclRva2VuIGNhbiBi
ZSBkaWZmZXJlbnQgdG8gcGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKSwgZXZl
biBpZiBtX3BsYXRmb3JtTGF5ZXIgZXF1YWxzIHBsYXRmb3JtTGF5ZXIuCisgICAgICAgICAgICBt
X3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uIHw9IFJlY3JlYXRlUGxhdGZvcm1MYXllcjsK
ICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChwbGF0Zm9ybUxheWVyKQotICAg
ICAgICAgICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHw9IENyZWF0ZUFuZFN5bmNDYW52YXM7
CisgICAgICAgICAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uIHw9IENyZWF0ZUFu
ZFN5bmNQbGF0Zm9ybUxheWVyOwogICAgIH0KIAotICAgIG1fY2FudmFzUGxhdGZvcm1MYXllciA9
IHBsYXRmb3JtTGF5ZXI7Ci0gICAgLy8gbV9jYW52YXNUb2tlbiBpcyB1cGRhdGVkIG9ubHkgaGVy
ZS4gSW4gZGV0YWlsLCB3aGVuIEdyYXBoaWNzQ29udGV4dDNEIGlzIGNoYW5nZWQgb3IgcmVzaGFw
ZWQsIG1fY2FudmFzVG9rZW4gaXMgY2hhbmdlZCBhbmQgc2V0Q29udGVudHNUb0NhbnZhcygpIGlz
IGFsd2F5cyBjYWxsZWQuCi0gICAgbV9jYW52YXNTaXplID0gbV9jYW52YXNQbGF0Zm9ybUxheWVy
ID8gbV9jYW52YXNQbGF0Zm9ybUxheWVyLT5wbGF0Zm9ybUxheWVyU2l6ZSgpIDogSW50U2l6ZSgp
OwotICAgIG1fY2FudmFzVG9rZW4gPSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgPyBtX2NhbnZhc1Bs
YXRmb3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2VuKCkgOiBHcmFwaGljc1N1cmZhY2VUb2tl
bigpOwotICAgIEFTU0VSVCghKCFtX2NhbnZhc1Rva2VuLmlzVmFsaWQoKSAmJiBtX2NhbnZhc1Bs
YXRmb3JtTGF5ZXIpKTsKKyAgICBtX3BsYXRmb3JtTGF5ZXIgPSBwbGF0Zm9ybUxheWVyOworICAg
IC8vIG1fcGxhdGZvcm1MYXllclRva2VuIGlzIHVwZGF0ZWQgb25seSBoZXJlLiAKKyAgICAvLyBJ
biBkZXRhaWwsIHdoZW4gR3JhcGhpY3NDb250ZXh0M0QgaXMgY2hhbmdlZCBvciByZXNoYXBlZCwg
bV9wbGF0Zm9ybUxheWVyVG9rZW4gaXMgY2hhbmdlZCBhbmQgc2V0Q29udGVudHNUb1BsYXRmb3Jt
TGF5ZXIoKSBpcyBhbHdheXMgY2FsbGVkLgorICAgIG1fcGxhdGZvcm1MYXllclNpemUgPSBtX3Bs
YXRmb3JtTGF5ZXIgPyBtX3BsYXRmb3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCkgOiBJbnRT
aXplKCk7CisgICAgbV9wbGF0Zm9ybUxheWVyVG9rZW4gPSBtX3BsYXRmb3JtTGF5ZXIgPyBtX3Bs
YXRmb3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2VuKCkgOiBHcmFwaGljc1N1cmZhY2VUb2tl
bigpOworICAgIEFTU0VSVCghKCFtX3BsYXRmb3JtTGF5ZXJUb2tlbi5pc1ZhbGlkKCkgJiYgbV9w
bGF0Zm9ybUxheWVyKSk7CiAKICAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7CiAjZWxzZQpAQCAt
NzIwLDUzICs3MjEsNTMgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNBbmlt
YXRpb25zKCkKIH0KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotdm9pZCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXI6OnN5bmNDYW52YXMoKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnN5bmNQbGF0Zm9ybUxheWVyKCkKIHsKLSAgICBkZXN0cm95Q2FudmFzSWZOZWVkZWQoKTsK
LSAgICBjcmVhdGVDYW52YXNJZk5lZWRlZCgpOworICAgIGRlc3Ryb3lQbGF0Zm9ybUxheWVySWZO
ZWVkZWQoKTsKKyAgICBjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQoKTsKIAotICAgIGlmICgh
KG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiAmIFN5bmNDYW52YXMpKQorICAgIGlmICghKG1fcGVu
ZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gJiBTeW5jUGxhdGZvcm1MYXllcikpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiAmPSB+U3luY0NhbnZhczsK
KyAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uICY9IH5TeW5jUGxhdGZvcm1MYXll
cjsKIAotICAgIGlmICghbV9pc1ZhbGlkQ2FudmFzKQorICAgIGlmICghbV9pc1ZhbGlkUGxhdGZv
cm1MYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1fY2FudmFzUGxhdGZvcm1M
YXllcik7Ci0gICAgbV9sYXllclN0YXRlLmNhbnZhc0Zyb250QnVmZmVyID0gbV9jYW52YXNQbGF0
Zm9ybUxheWVyLT5jb3B5VG9HcmFwaGljc1N1cmZhY2UoKTsKLSAgICBtX2xheWVyU3RhdGUuY2Fu
dmFzU2hvdWxkU3dhcEJ1ZmZlcnMgPSB0cnVlOworICAgIEFTU0VSVChtX3BsYXRmb3JtTGF5ZXIp
OworICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyRnJvbnRCdWZmZXIgPSBtX3BsYXRmb3Jt
TGF5ZXItPmNvcHlUb0dyYXBoaWNzU3VyZmFjZSgpOworICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9y
bUxheWVyU2hvdWxkU3dhcEJ1ZmZlcnMgPSB0cnVlOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6ZGVzdHJveUNhbnZhc0lmTmVlZGVkKCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjpkZXN0cm95UGxhdGZvcm1MYXllcklmTmVlZGVkKCkKIHsKLSAgICBpZiAoISht
X3BlbmRpbmdDYW52YXNPcGVyYXRpb24gJiBEZXN0cm95Q2FudmFzKSkKKyAgICBpZiAoIShtX3Bl
bmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uICYgRGVzdHJveVBsYXRmb3JtTGF5ZXIpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAobV9pc1ZhbGlkQ2FudmFzKSB7Ci0gICAgICAgIG1faXNW
YWxpZENhbnZhcyA9IGZhbHNlOwotICAgICAgICBtX2xheWVyU3RhdGUuY2FudmFzVG9rZW4gPSBH
cmFwaGljc1N1cmZhY2VUb2tlbigpOwotICAgICAgICBtX2xheWVyU3RhdGUuY2FudmFzQ2hhbmdl
ZCA9IHRydWU7CisgICAgaWYgKG1faXNWYWxpZFBsYXRmb3JtTGF5ZXIpIHsKKyAgICAgICAgbV9p
c1ZhbGlkUGxhdGZvcm1MYXllciA9IGZhbHNlOworICAgICAgICBtX2xheWVyU3RhdGUucGxhdGZv
cm1MYXllclRva2VuID0gR3JhcGhpY3NTdXJmYWNlVG9rZW4oKTsKKyAgICAgICAgbV9sYXllclN0
YXRlLnBsYXRmb3JtTGF5ZXJDaGFuZ2VkID0gdHJ1ZTsKICAgICB9CiAKLSAgICBtX3BlbmRpbmdD
YW52YXNPcGVyYXRpb24gJj0gfkRlc3Ryb3lDYW52YXM7CisgICAgbV9wZW5kaW5nUGxhdGZvcm1M
YXllck9wZXJhdGlvbiAmPSB+RGVzdHJveVBsYXRmb3JtTGF5ZXI7CiB9CiAKLXZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVDYW52YXNJZk5lZWRlZCgpCit2b2lkIENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcjo6Y3JlYXRlUGxhdGZvcm1MYXllcklmTmVlZGVkKCkKIHsKLSAgICBp
ZiAoIShtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24gJiBDcmVhdGVDYW52YXMpKQorICAgIGlmICgh
KG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gJiBDcmVhdGVQbGF0Zm9ybUxheWVyKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1fY2FudmFzUGxhdGZvcm1MYXllcik7Ci0g
ICAgaWYgKCFtX2lzVmFsaWRDYW52YXMpIHsKLSAgICAgICAgbV9sYXllclN0YXRlLmNhbnZhc1Np
emUgPSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCk7Ci0gICAgICAg
IG1fbGF5ZXJTdGF0ZS5jYW52YXNUb2tlbiA9IG1fY2FudmFzUGxhdGZvcm1MYXllci0+Z3JhcGhp
Y3NTdXJmYWNlVG9rZW4oKTsKLSAgICAgICAgbV9sYXllclN0YXRlLmNhbnZhc1N1cmZhY2VGbGFn
cyA9IG1fY2FudmFzUGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlRmxhZ3MoKTsKLSAgICAg
ICAgbV9sYXllclN0YXRlLmNhbnZhc0NoYW5nZWQgPSB0cnVlOwotICAgICAgICBtX2lzVmFsaWRD
YW52YXMgPSB0cnVlOworICAgIEFTU0VSVChtX3BsYXRmb3JtTGF5ZXIpOworICAgIGlmICghbV9p
c1ZhbGlkUGxhdGZvcm1MYXllcikgeworICAgICAgICBtX2xheWVyU3RhdGUucGxhdGZvcm1MYXll
clNpemUgPSBtX3BsYXRmb3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCk7CisgICAgICAgIG1f
bGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4gPSBtX3BsYXRmb3JtTGF5ZXItPmdyYXBoaWNz
U3VyZmFjZVRva2VuKCk7CisgICAgICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyU3VyZmFj
ZUZsYWdzID0gbV9wbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZhY2VGbGFncygpOworICAgICAg
ICBtX2xheWVyU3RhdGUucGxhdGZvcm1MYXllckNoYW5nZWQgPSB0cnVlOworICAgICAgICBtX2lz
VmFsaWRQbGF0Zm9ybUxheWVyID0gdHJ1ZTsKICAgICB9CiAKLSAgICBtX3BlbmRpbmdDYW52YXNP
cGVyYXRpb24gJj0gfkNyZWF0ZUNhbnZhczsKKyAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3Bl
cmF0aW9uICY9IH5DcmVhdGVQbGF0Zm9ybUxheWVyOwogfQogI2VuZGlmCiAKQEAgLTc5MSw3ICs3
OTIsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0
YXRlRm9yVGhpc0xheWVyT25seSgpCiAgICAgc3luY0ZpbHRlcnMoKTsKICNlbmRpZgogI2lmIFVT
RShHUkFQSElDU19TVVJGQUNFKQotICAgIHN5bmNDYW52YXMoKTsKKyAgICBzeW5jUGxhdGZvcm1M
YXllcigpOwogI2VuZGlmCiAKICAgICAvLyBPbmx5IHVuc2V0IG1fbW92aW5nVmlzaWJsZVJlY3Qg
YWZ0ZXIgd2UgaGF2ZSB1cGRhdGVkIHRoZSB2aXNpYmxlIHJlY3QgYWZ0ZXIgdGhlIGFuaW1hdGlv
biBzdG9wcGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5oCmluZGV4IDE0ODZjMjA3YmUyODY0MDQ0OGI1MDYxMzdhNmIwYjQzNDIwMTE0
ZWIuLmE2YTU4ZjMyYjQ3NDZlMjc1ZWY1MWM4NjQ2NWI0YmU5ZTY4NTc0YmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTky
LDcgKzkyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93RGVidWdCb3JkZXIo
Ym9vbCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dSZXBhaW50Q291bnRlcihi
b29sKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGlyZWN0bHlDb21wb3NpdGVJ
bWFnZShJbWFnZSopIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50
c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQdXJw
b3NlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWFza0xheWVyKEdyYXBoaWNzTGF5
ZXIqKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3Jh
cGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXko
KSBvdmVycmlkZTsKQEAgLTEwOSw3ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHJlbW92ZUFuaW1hdGlvbihjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgc3VzcGVuZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
dm9pZCByZXN1bWVBbmltYXRpb25zKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIHVzZXND
b250ZW50c0xheWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jYW52YXNQbGF0Zm9ybUxh
eWVyIHx8IG1fY29tcG9zaXRlZEltYWdlOyB9CisgICAgdmlydHVhbCBib29sIHVzZXNDb250ZW50
c0xheWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wbGF0Zm9ybUxheWVyIHx8IG1fY29t
cG9zaXRlZEltYWdlOyB9CiAKICAgICB2b2lkIHN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5jbHVk
aW5nU3ViTGF5ZXJzKCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50QnVmZmVyc0luY2x1ZGluZ1N1
YkxheWVycygpOwpAQCAtMTU0LDE4ICsxNTQsMTggQEAgcHVibGljOgogCiBwcml2YXRlOgogI2lm
IFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIGVudW0gUGVuZGluZ0NhbnZhc09wZXJhdGlvbiB7
CisgICAgZW51bSBQZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbiB7CiAgICAgICAgIE5vbmUg
PSAweDAwLAotICAgICAgICBDcmVhdGVDYW52YXMgPSAweDAxLAotICAgICAgICBEZXN0cm95Q2Fu
dmFzID0gMHgwMiwKLSAgICAgICAgU3luY0NhbnZhcyA9IDB4MDQsCi0gICAgICAgIENyZWF0ZUFu
ZFN5bmNDYW52YXMgPSBDcmVhdGVDYW52YXMgfCBTeW5jQ2FudmFzLAotICAgICAgICBSZWNyZWF0
ZUNhbnZhcyA9IENyZWF0ZUFuZFN5bmNDYW52YXMgfCBEZXN0cm95Q2FudmFzCisgICAgICAgIENy
ZWF0ZVBsYXRmb3JtTGF5ZXIgPSAweDAxLAorICAgICAgICBEZXN0cm95UGxhdGZvcm1MYXllciA9
IDB4MDIsCisgICAgICAgIFN5bmNQbGF0Zm9ybUxheWVyID0gMHgwNCwKKyAgICAgICAgQ3JlYXRl
QW5kU3luY1BsYXRmb3JtTGF5ZXIgPSBDcmVhdGVQbGF0Zm9ybUxheWVyIHwgU3luY1BsYXRmb3Jt
TGF5ZXIsCisgICAgICAgIFJlY3JlYXRlUGxhdGZvcm1MYXllciA9IENyZWF0ZUFuZFN5bmNQbGF0
Zm9ybUxheWVyIHwgRGVzdHJveVBsYXRmb3JtTGF5ZXIKICAgICB9OwogCi0gICAgdm9pZCBzeW5j
Q2FudmFzKCk7Ci0gICAgdm9pZCBkZXN0cm95Q2FudmFzSWZOZWVkZWQoKTsKLSAgICB2b2lkIGNy
ZWF0ZUNhbnZhc0lmTmVlZGVkKCk7CisgICAgdm9pZCBzeW5jUGxhdGZvcm1MYXllcigpOworICAg
IHZvaWQgZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRlZCgpOworICAgIHZvaWQgY3JlYXRlUGxh
dGZvcm1MYXllcklmTmVlZGVkKCk7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1
Z0JvcmRlcihjb25zdCBDb2xvciYsIGZsb2F0IHdpZHRoKSBvdmVycmlkZTsKQEAgLTIzMiw4ICsy
MzIsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9wZW5kaW5nQ29udGVudHNTY2FsZUFkanVzdG1l
bnQgOiAxOwogICAgIGJvb2wgbV9wZW5kaW5nVmlzaWJsZVJlY3RBZGp1c3RtZW50IDogMTsKICNp
ZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICBib29sIG1faXNWYWxpZENhbnZhcyA6IDE7Ci0g
ICAgdW5zaWduZWQgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIDogMzsKKyAgICBib29sIG1faXNW
YWxpZFBsYXRmb3JtTGF5ZXIgOiAxOworICAgIHVuc2lnbmVkIG1fcGVuZGluZ1BsYXRmb3JtTGF5
ZXJPcGVyYXRpb24gOiAzOwogI2VuZGlmCiAKICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJD
bGllbnQqIG1fY29vcmRpbmF0b3I7CkBAIC0yNDQsMTAgKzI0NCwxMCBAQCBwcml2YXRlOgogICAg
IE5hdGl2ZUltYWdlUHRyIG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyOwogICAgIFJlZlB0cjxD
b29yZGluYXRlZEltYWdlQmFja2luZz4gbV9jb29yZGluYXRlZEltYWdlQmFja2luZzsKIAotICAg
IFBsYXRmb3JtTGF5ZXIqIG1fY2FudmFzUGxhdGZvcm1MYXllcjsKKyAgICBQbGF0Zm9ybUxheWVy
KiBtX3BsYXRmb3JtTGF5ZXI7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgSW50U2l6
ZSBtX2NhbnZhc1NpemU7Ci0gICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4gbV9jYW52YXNUb2tlbjsK
KyAgICBJbnRTaXplIG1fcGxhdGZvcm1MYXllclNpemU7CisgICAgR3JhcGhpY3NTdXJmYWNlVG9r
ZW4gbV9wbGF0Zm9ybUxheWVyVG9rZW47CiAjZW5kaWYKICAgICBUaW1lcjxDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXI+IG1fYW5pbWF0aW9uU3RhcnRlZFRpbWVyOwogICAgIEdyYXBoaWNzTGF5ZXJB
bmltYXRpb25zIG1fYW5pbWF0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKaW5kZXggZWU2M2M1NzMzZjU3MWEwMDNkYjFk
YmQ1ZTEwNGE4NDM4NDVlMWNlMS4uNDkxNDAzYjM0MjYyMzc2ZmE3NDI2ODNlMGM4NmRlNTI0N2E0
MzFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZS5jcHAKQEAgLTE2NSwzNyArMTY1LDM3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lOjphZGp1c3RQb3NpdGlvbkZvckZpeGVkTGF5ZXJzKCkKIH0KIAogI2lmIFVTRShH
UkFQSElDU19TVVJGQUNFKQotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNyZWF0ZUNh
bnZhc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIsIGNvbnN0IENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllclN0YXRlJiBzdGF0ZSkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
OjpjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiBsYXllciwg
Y29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmIHN0YXRlKQogewotICAgIGlmICgh
c3RhdGUuY2FudmFzVG9rZW4uaXNWYWxpZCgpKQorICAgIGlmICghc3RhdGUucGxhdGZvcm1MYXll
clRva2VuLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPFRleHR1cmVN
YXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlPiBjYW52YXNCYWNraW5nU3RvcmUoVGV4dHVyZU1hcHBl
clN1cmZhY2VCYWNraW5nU3RvcmU6OmNyZWF0ZSgpKTsKLSAgICBtX3N1cmZhY2VCYWNraW5nU3Rv
cmVzLnNldChsYXllciwgY2FudmFzQmFja2luZ1N0b3JlKTsKLSAgICBjYW52YXNCYWNraW5nU3Rv
cmUtPnNldEdyYXBoaWNzU3VyZmFjZShHcmFwaGljc1N1cmZhY2U6OmNyZWF0ZShzdGF0ZS5jYW52
YXNTaXplLCBzdGF0ZS5jYW52YXNTdXJmYWNlRmxhZ3MsIHN0YXRlLmNhbnZhc1Rva2VuKSk7Ci0g
ICAgbGF5ZXItPnNldENvbnRlbnRzTGF5ZXIoY2FudmFzQmFja2luZ1N0b3JlLmdldCgpKTsKKyAg
ICBSZWZQdHI8VGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU+IHBsYXRmb3JtTGF5ZXJC
YWNraW5nU3RvcmUoVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU6OmNyZWF0ZSgpKTsK
KyAgICBtX3N1cmZhY2VCYWNraW5nU3RvcmVzLnNldChsYXllciwgcGxhdGZvcm1MYXllckJhY2tp
bmdTdG9yZSk7CisgICAgcGxhdGZvcm1MYXllckJhY2tpbmdTdG9yZS0+c2V0R3JhcGhpY3NTdXJm
YWNlKEdyYXBoaWNzU3VyZmFjZTo6Y3JlYXRlKHN0YXRlLnBsYXRmb3JtTGF5ZXJTaXplLCBzdGF0
ZS5wbGF0Zm9ybUxheWVyU3VyZmFjZUZsYWdzLCBzdGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4pKTsK
KyAgICBsYXllci0+c2V0Q29udGVudHNMYXllcihwbGF0Zm9ybUxheWVyQmFja2luZ1N0b3JlLmdl
dCgpKTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnN5bmNDYW52YXNJZk5l
ZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJTdGF0ZSYgc3RhdGUpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c3luY1Bs
YXRmb3JtTGF5ZXJJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCiB7CiAgICAgQVNTRVJUKG1fdGV4dHVy
ZU1hcHBlcik7CiAKLSAgICBpZiAoc3RhdGUuY2FudmFzQ2hhbmdlZCkgewotICAgICAgICBkZXN0
cm95Q2FudmFzSWZOZWVkZWQobGF5ZXIsIHN0YXRlKTsKLSAgICAgICAgY3JlYXRlQ2FudmFzSWZO
ZWVkZWQobGF5ZXIsIHN0YXRlKTsKKyAgICBpZiAoc3RhdGUucGxhdGZvcm1MYXllckNoYW5nZWQp
IHsKKyAgICAgICAgZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRlZChsYXllciwgc3RhdGUpOwor
ICAgICAgICBjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQobGF5ZXIsIHN0YXRlKTsKICAgICB9
CiAKLSAgICBpZiAoc3RhdGUuY2FudmFzU2hvdWxkU3dhcEJ1ZmZlcnMpIHsKKyAgICBpZiAoc3Rh
dGUucGxhdGZvcm1MYXllclNob3VsZFN3YXBCdWZmZXJzKSB7CiAgICAgICAgIEFTU0VSVChtX3N1
cmZhY2VCYWNraW5nU3RvcmVzLmNvbnRhaW5zKGxheWVyKSk7CiAgICAgICAgIFN1cmZhY2VCYWNr
aW5nU3RvcmVNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zdXJmYWNlQmFja2luZ1N0b3Jlcy5maW5kKGxh
eWVyKTsKLSAgICAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlPiBj
YW52YXNCYWNraW5nU3RvcmUgPSBpdC0+dmFsdWU7Ci0gICAgICAgIGNhbnZhc0JhY2tpbmdTdG9y
ZS0+c3dhcEJ1ZmZlcnNJZk5lZWRlZChzdGF0ZS5jYW52YXNGcm9udEJ1ZmZlcik7CisgICAgICAg
IFJlZlB0cjxUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZT4gcGxhdGZvcm1MYXllckJh
Y2tpbmdTdG9yZSA9IGl0LT52YWx1ZTsKKyAgICAgICAgcGxhdGZvcm1MYXllckJhY2tpbmdTdG9y
ZS0+c3dhcEJ1ZmZlcnNJZk5lZWRlZChzdGF0ZS5wbGF0Zm9ybUxheWVyRnJvbnRCdWZmZXIpOwog
ICAgIH0KIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmRlc3Ryb3lDYW52YXNJ
Zk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGVz
dHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25z
dCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgaWYgKHN0YXRl
LmNhbnZhc1Rva2VuLmlzVmFsaWQoKSkKKyAgICBpZiAoc3RhdGUucGxhdGZvcm1MYXllclRva2Vu
LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zdXJmYWNlQmFja2luZ1N0b3Jl
cy5yZW1vdmUobGF5ZXIpOwpAQCAtMzE5LDcgKzMxOSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lOjpzZXRMYXllclN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgQ29v
cmRpCiAjZW5kaWYKICAgICBzZXRMYXllckFuaW1hdGlvbnNJZk5lZWRlZChsYXllciwgbGF5ZXJT
dGF0ZSk7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgc3luY0NhbnZhc0lmTmVlZGVk
KGxheWVyLCBsYXllclN0YXRlKTsKKyAgICBzeW5jUGxhdGZvcm1MYXllcklmTmVlZGVkKGxheWVy
LCBsYXllclN0YXRlKTsKICNlbmRpZgogICAgIHNldExheWVyUmVwYWludENvdW50SWZOZWVkZWQo
bGF5ZXIsIGxheWVyU3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCmluZGV4IDc1YTQ3MmQ0ZDEyOWMzMzk3ODFlOTk2N2Jj
MWQ5YWRjNGZhYTc4ZGIuLjNkOGMwNDJjMjU0ZWJlM2E3NjliNTdhZjZkMzA3MDhmOTAxZDY2NDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lLmgKQEAgLTEwMCw5ICsxMDAsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgdm9pZCBzZXRM
YXllckFuaW1hdGlvbnNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAg
IHZvaWQgY3JlYXRlQ2FudmFzSWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKLSAgICB2b2lkIHN5bmNDYW52YXNJZk5lZWRl
ZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0
ZSYpOwotICAgIHZvaWQgZGVzdHJveUNhbnZhc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllcios
IGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CisgICAgdm9pZCBjcmVhdGVQ
bGF0Zm9ybUxheWVySWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKKyAgICB2b2lkIHN5bmNQbGF0Zm9ybUxheWVySWZOZWVk
ZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3Rh
dGUmKTsKKyAgICB2b2lkIGRlc3Ryb3lQbGF0Zm9ybUxheWVySWZOZWVkZWQoVGV4dHVyZU1hcHBl
ckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKICNlbmRpZgog
ICAgIHZvaWQgc2V0TGF5ZXJSZXBhaW50Q291bnRJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIq
LCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRp
bmF0ZWRHcmFwaGljc1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmgKaW5kZXggZDZjMGFh
ZTlmMDBmYWNiYzgyZTUyNzk5NWIxYTA5ZmU5Yjc2YTE0Yi4uNzc1MmE3Zjc0ZmZlODVjNDI2ODhh
ODIzZmRmOWI3MGE0M2I1YTk5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9D
b29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaApAQCAtODksOCArODksOCBAQCBzdHJ1Y3QgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyU3RhdGUgewogICAgICAgICAgICAgYm9vbCBmaWx0ZXJzQ2hhbmdl
ZDogMTsKICAgICAgICAgICAgIGJvb2wgY2hpbGRyZW5DaGFuZ2VkOiAxOwogICAgICAgICAgICAg
Ym9vbCByZXBhaW50Q291bnRDaGFuZ2VkIDogMTsKLSAgICAgICAgICAgIGJvb2wgY2FudmFzQ2hh
bmdlZDogMTsKLSAgICAgICAgICAgIGJvb2wgY2FudmFzU2hvdWxkU3dhcEJ1ZmZlcnM6IDE7Cisg
ICAgICAgICAgICBib29sIHBsYXRmb3JtTGF5ZXJDaGFuZ2VkOiAxOworICAgICAgICAgICAgYm9v
bCBwbGF0Zm9ybUxheWVyU2hvdWxkU3dhcEJ1ZmZlcnM6IDE7CiAgICAgICAgICAgICBib29sIGlz
U2Nyb2xsYWJsZUNoYW5nZWQ6IDE7CiAgICAgICAgICAgICBib29sIGNvbW1pdHRlZFNjcm9sbE9m
ZnNldENoYW5nZWQ6IDE7CiAgICAgICAgICAgICBib29sIGNvbnRlbnRzVGlsaW5nQ2hhbmdlZDog
MTsKQEAgLTEzMSw3ICsxMzEsNyBAQCBzdHJ1Y3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3Rh
dGUgewogICAgICAgICAsIG1hc2soSW52YWxpZENvb3JkaW5hdGVkTGF5ZXJJRCkKICAgICAgICAg
LCBpbWFnZUlEKEludmFsaWRDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKQogI2lmIFVTRShHUkFQ
SElDU19TVVJGQUNFKQotICAgICAgICAsIGNhbnZhc0Zyb250QnVmZmVyKDApCisgICAgICAgICwg
cGxhdGZvcm1MYXllckZyb250QnVmZmVyKDApCiAjZW5kaWYKICAgICB7CiAgICAgfQpAQCAtMTYz
LDEwICsxNjMsMTAgQEAgc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlIHsKICAg
ICBWZWN0b3I8VGlsZVVwZGF0ZUluZm8+IHRpbGVzVG9VcGRhdGU7CiAKICNpZiBVU0UoR1JBUEhJ
Q1NfU1VSRkFDRSkKLSAgICBJbnRTaXplIGNhbnZhc1NpemU7Ci0gICAgR3JhcGhpY3NTdXJmYWNl
VG9rZW4gY2FudmFzVG9rZW47Ci0gICAgdWludDMyX3QgY2FudmFzRnJvbnRCdWZmZXI7Ci0gICAg
R3JhcGhpY3NTdXJmYWNlOjpGbGFncyBjYW52YXNTdXJmYWNlRmxhZ3M7CisgICAgSW50U2l6ZSBw
bGF0Zm9ybUxheWVyU2l6ZTsKKyAgICBHcmFwaGljc1N1cmZhY2VUb2tlbiBwbGF0Zm9ybUxheWVy
VG9rZW47CisgICAgdWludDMyX3QgcGxhdGZvcm1MYXllckZyb250QnVmZmVyOworICAgIEdyYXBo
aWNzU3VyZmFjZTo6RmxhZ3MgcGxhdGZvcm1MYXllclN1cmZhY2VGbGFnczsKICNlbmRpZgogCiAg
ICAgSW50U2l6ZSBjb21taXR0ZWRTY3JvbGxPZmZzZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDBmNzAwMTllYWQ4ZWM0YjVlZGNm
YjRkOGViMDIzYWJmMDQxNGJiY2UuLjJmNTA0ZTJiYjMzOWEyMWI5ZGFmNjMwNTE3OGQ0NWU2YTAz
ZTJlODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCkBAIC01ODksMjAgKzU4OSwyMCBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBk
YXRlQ29uZmlndXJhdGlvbigpCiAgICAgICAgIH0KICNlbHNlCiAgICAgICAgIGlmICghcGx1Z2lu
Vmlld0Jhc2UtPnNob3VsZE5vdEFkZExheWVyKCkpCi0gICAgICAgICAgICBtX2dyYXBoaWNzTGF5
ZXItPnNldENvbnRlbnRzVG9NZWRpYShwbHVnaW5WaWV3QmFzZS0+cGxhdGZvcm1MYXllcigpKTsK
KyAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIo
cGx1Z2luVmlld0Jhc2UtPnBsYXRmb3JtTGF5ZXIoKSwgR3JhcGhpY3NMYXllcjo6Q29udGVudHNM
YXllckZvclBsdWdpbik7CiAjZW5kaWYKICAgICB9CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGVs
c2UgaWYgKHJlbmRlcmVyKCkuaXNWaWRlbygpKSB7CiAgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQq
IG1lZGlhRWxlbWVudCA9IHRvSFRNTE1lZGlhRWxlbWVudChyZW5kZXJlcigpLmVsZW1lbnQoKSk7
Ci0gICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNUb01lZGlhKG1lZGlhRWxlbWVu
dC0+cGxhdGZvcm1MYXllcigpKTsKKyAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50
c1RvUGxhdGZvcm1MYXllcihtZWRpYUVsZW1lbnQtPnBsYXRmb3JtTGF5ZXIoKSwgR3JhcGhpY3NM
YXllcjo6Q29udGVudHNMYXllckZvck1lZGlhKTsKICAgICB9CiAjZW5kaWYKICNpZiBFTkFCTEUo
V0VCR0wpIHx8IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCiAgICAgZWxzZSBpZiAocmVu
ZGVyZXIoKS5pc0NhbnZhcygpICYmIGNhbnZhc0NvbXBvc2l0aW5nU3RyYXRlZ3kocmVuZGVyZXIo
KSkgPT0gQ2FudmFzQXNMYXllckNvbnRlbnRzKSB7CiAgICAgICAgIGNvbnN0IEhUTUxDYW52YXNF
bGVtZW50KiBjYW52YXMgPSB0b0hUTUxDYW52YXNFbGVtZW50KHJlbmRlcmVyKCkuZWxlbWVudCgp
KTsKICAgICAgICAgaWYgKENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBjYW52YXMt
PnJlbmRlcmluZ0NvbnRleHQoKSkKLSAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29u
dGVudHNUb0NhbnZhcyhjb250ZXh0LT5wbGF0Zm9ybUxheWVyKCkpOworICAgICAgICAgICAgbV9n
cmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihjb250ZXh0LT5wbGF0Zm9y
bUxheWVyKCksIEdyYXBoaWNzTGF5ZXI6OkNvbnRlbnRzTGF5ZXJGb3JDYW52YXMpOwogICAgICAg
ICBsYXllckNvbmZpZ0NoYW5nZWQgPSB0cnVlOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFw
aGljc0FyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZTIx
NTZkNTY2NzNlMTFjOWIzMDdlYjkxZWEyMzVkMmFiYzc4ZmVmNy4uNTRhY2U1OTYxYTY0YWU1ZDlj
MjA4OTIyN2RlNmZiZjQ1MTg5OWVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCkBAIC02ODYsMTEgKzY4NiwxMSBAQCB2b2lk
IEFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjplbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZAogICAgIGVuY29kZXIgPDwgc3RhdGUudGlsZXNUb1VwZGF0ZTsK
IAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIGlmIChzdGF0ZS5jYW52YXNDaGFuZ2Vk
KSB7Ci0gICAgICAgIGVuY29kZXIgPDwgc3RhdGUuY2FudmFzU2l6ZTsKLSAgICAgICAgZW5jb2Rl
ciA8PCBzdGF0ZS5jYW52YXNUb2tlbjsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5jYW52YXNG
cm9udEJ1ZmZlcjsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5jYW52YXNTdXJmYWNlRmxhZ3M7
CisgICAgaWYgKHN0YXRlLnBsYXRmb3JtTGF5ZXJDaGFuZ2VkKSB7CisgICAgICAgIGVuY29kZXIg
PDwgc3RhdGUucGxhdGZvcm1MYXllclNpemU7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGUucGxh
dGZvcm1MYXllclRva2VuOworICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnBsYXRmb3JtTGF5ZXJG
cm9udEJ1ZmZlcjsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5wbGF0Zm9ybUxheWVyU3VyZmFj
ZUZsYWdzOwogICAgIH0KICNlbmRpZgogCkBAIC03NzYsMTcgKzc3NiwxNyBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBVU0UoR1JBUEhJQ1Nf
U1VSRkFDRSkKLSAgICBpZiAoc3RhdGUuY2FudmFzQ2hhbmdlZCkgewotICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHN0YXRlLmNhbnZhc1NpemUpKQorICAgIGlmIChzdGF0ZS5wbGF0Zm9ybUxh
eWVyQ2hhbmdlZCkgeworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRlLnBsYXRmb3Jt
TGF5ZXJTaXplKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHN0YXRlLmNhbnZhc1Rva2VuKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzdGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGUuY2FudmFzRnJvbnRCdWZmZXIp
KQorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRlLnBsYXRmb3JtTGF5ZXJGcm9udEJ1
ZmZlcikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShzdGF0ZS5jYW52YXNTdXJmYWNlRmxhZ3MpKQorICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHN0YXRlLnBsYXRmb3JtTGF5ZXJTdXJmYWNlRmxhZ3MpKQogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KICNlbmRpZgo=
</data>
<flag name="review"
          id="261402"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
    <flag name="commit-queue"
          id="261692"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237022</attachid>
            <date>2014-08-22 19:27:14 -0700</date>
            <delta_ts>2014-08-23 01:43:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109658-20140823113300.patch</filename>
            <type>text/plain</type>
            <size>41573</size>
            <attacher name="Byungseon Shin">xingri</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjc2ZjA2MTkzODJiOWM1
ODJlYTM4MDIzYTYxN2MxOTk2YjQzNmJkMy4uMTQ2NzE4YTBjZmZhYzgyNTI4NmVkNzQyNDQ3MzRi
MDA2ZWJjMzZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE0LTA4LTIyICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgIFVuaWZ5IEdyYXBoaWNz
TGF5ZXI6OnNldENvbnRlbnRzVG9NZWRpYSBhbmQgc2V0Q29udGVudHNUb0NhbnZhcworICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTY1OAorIAorICAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgCisgICAgICAgICBCYXNlZCBvbiBw
YXRjaCBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgVGltIEhvcnRvbi4KKyAgICAgICAgIE1lcmdlIHNl
dENvbnRlbnRzVG9NZWRpYSBhbmQgc2V0Q29udGVudHNUb0NhbnZhcyBpbnRvIHNldENvbnRlbnRz
VG9QbGF0Zm9ybUxheWVyLgorIAorICAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAg
IEFkanVzdCBleHBvcnRzLgorIAorICAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0xheWVyLmg6CisgICAgICAgICBNb3ZlIENvbnRlbnRzTGF5ZXJQdXJwb3NlIGVudW0gdXAgb3V0
IG9mIEdyYXBoaWNzTGF5ZXIgcGxhdGZvcm0gaW1wbG1lbnRhdGlvbnMKKyAgICAgICAgIGFuZCBp
bnRvIEdyYXBoaWNzTGF5ZXIsIHNvIHdlIGNhbiB1c2UgaXQgYXMgYSBwYXJhbWV0ZXIuCisgICAg
ICAgICBBZGQgQ29udGVudHNMYXllckZvclBsdWdpbi4KKyAKKyAgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAgICAgICBSZW1v
dmUgc2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzLCBhbmQgcmVwbGFj
ZSB0aGVtCisgICAgICAgICB3aXRoIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyLCB3aGljaCBw
cmV2aW91c2x5IGV4aXN0ZWQgYnV0IHdhcyB1bnVzZWQKKyAgICAgICAgIGFuZCBzaW1wbHkgY2Fs
bGVkIHNldENvbnRlbnRzVG9NZWRpYS4KKyAgICAgICAgIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxh
eWVyIHRha2VzIGEgQ29udGVudHNMYXllclB1cnBvc2UsIHByaW1hcmlseQorICAgICAgICAgc28g
dGhhdCBHcmFwaGljc0xheWVyQ0EgY2FuIGtub3cgd2hldGhlciBpdCBuZWVkcyB0byBzZXROZWVk
c0Rpc3BsYXkKKyAgICAgICAgIHRoZSBsYXllciB3aGVuIHBhcmVudGluZyBpdCAoY2FudmFzKSBv
ciBub3QgKGV2ZXJ5dGhpbmcgZWxzZSkuCisgCisgICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckNBOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAgICAgICBSZW5hbWUgZnVuY3Rp
b24gc2V0Q29udGVudHNUb01lZGlhIC0+IHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyLgorICAg
ICAgICAgUmVuYW1lIGFyZ3VtZW50IG1lZGlhTGF5ZXIgLT4gcGxhdGZvcm1MYXllci4KKyAgICAg
ICAgIFN0b3JlIHRoZSBwYXNzZWQtaW4gQ29udGVudHNMYXllclB1cnBvc2UuCisgICAgICAgICBS
ZW1vdmUgc2V0Q29udGVudHNUb0NhbnZhcy4KKyAKKyAgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyk6CisgICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c1BsYXRmb3JtTGF5ZXIpOgor
ICAgICAgICAgUmVtb3ZlIHVwZGF0ZUNvbnRlbnRzTWVkaWFMYXllciBhbmQgdXBkYXRlQ29udGVu
dHNDYW52YXMgbGF5ZXIsCisgICAgICAgICBhZGQgdXBkYXRlQ29udGVudHNQbGF0Zm9ybUxheWVy
LgorIAorICAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaDoK
KyAgICAgICAgIERvIHRoZSBzYW1lIHRvIHRoZSBMYXllckNoYW5nZSBlbnVtLgorIAorICAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIu
Y3BwOgorICAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRD
b250ZW50c1RvSW1hZ2UpOgorICAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oOgorICAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmNwcDoKKyAgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c05lZWRzRGlzcGxheSk6CisgICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXll
cik6CisgICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jUGxh
dGZvcm1MYXllcik6CisgICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpkZXN0cm95UGxhdGZvcm1MYXllcklmTmVlZGVkKToKKyAgICAgICAgIChXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJJZk5lZWRlZCk6CisgICAg
ICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBvc2l0aW5n
U3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgIEZvbGQgdGhlc2UgdG9nZXRoZXIgaW4g
dGhlIHNhbWUgd2F5IGFzIGVsc2V3aGVyZS4KKyAKKyAgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAgICAg
ICAgRG8gdGhlIHNhbWUgdG8gdGhlIExheWVyQ2hhbmdlIGVudW0uCisgCisgICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUuY3BwOgorICAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6Y3Jl
YXRlUGxhdGZvcm1MYXllcklmTmVlZGVkKToKKyAgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRl
ZEdyYXBoaWNzU2NlbmU6OnN5bmNQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAgICAgICAgKFdl
YkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5l
ZWRlZCk6CisgICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzZXRM
YXllclN0YXRlKToKKyAgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oOgorICAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmg6CisgICAg
ICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU6OkNvb3JkaW5hdGVk
R3JhcGhpY3NMYXllclN0YXRlKToKKyAgICAgICAgIFJlbmFtZSBjYW52YXNMYXllciAtPiBwbGF0
Zm9ybUxheWVyLgorIAorICAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cDoKKyAgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUNvbmZpZ3Vy
YXRpb24pOgorICAgICAgICAgVXNlIHRoZSBuZXcgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIs
IHBhc3NpbmcgaW4gdGhlIHJlbGV2YW50IENvbnRlbnRzTGF5ZXJQdXJwb3NlLgorCiAyMDE0LTA4
LTIyICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIHVudXNlZCBsZWdhY3kgSW5zcGVjdG9yRnJvbnRlbmRIb3N0IG1ldGhvZHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCAxZWU3MTMzYjA4ZDgzNzQzODA4ZGExMmYxNmQwNzFkZmQ3NTViNmYzLi4wODcwMjRlOGY1
ODQ1MDNmNDk2M2IxZDlhMDg2MDM0MDM0NDVmMTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTQtMDgtMjIgIEJ5dW5nc2VvbiBTaGluICA8c3VuLnNoaW5AbGdlLmNvbT4KKyAKKyAg
ICAgICAgIFVuaWZ5IEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9NZWRpYSBhbmQgc2V0Q29u
dGVudHNUb0NhbnZhcworICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwOTY1OAorIAorICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisg
CisgICAgICAgICBCYXNlZCBvbiBwYXRjaCBvcmlnaW5hbGx5IHdyaXR0ZW4gYnkgVGltIEhvcnRv
bi4KKyAgICAgICAgIE1lcmdlIHNldENvbnRlbnRzVG9NZWRpYSBhbmQgc2V0Q29udGVudHNUb0Nh
bnZhcyBpbnRvIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyLgorIAorICAgICAgICAgKiBTaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMu
Y3BwOgorICAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXJTdGF0ZT46OmVuY29kZSk6CisgICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllclN0YXRlPjo6ZGVjb2RlKToKKyAgICAgICAgIFJlbmFtZSBjYW52YXMg
LT4gcGxhdGZvcm1MYXllci4KKwogMjAxNC0wOC0yMiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE3Mjg2
Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYzI5ZjlhNTcyM2Q4MzEzNzY3NjU3ZTdkY2M4Nzli
YWI3MDk5MjUzOC4uMzU0Y2M1YjUyMDcxMzkzZjg0NGEyZTM3ZTBhYmYwYzRjMTY5OGY0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KQEAgLTU3OCwxMiArNTc4LDEwIEBAIF9fWk43V2ViQ29yZTE1R3Jh
cGhpY3NMYXllckNBMTdzZXRDdXN0b21CZWhhdmlvckVOU18xM0dyYXBoaWNzTGF5ZXIxNEN1c3Rv
bUJlaGF2CiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE3c3VzcGVuZEFuaW1hdGlvbnNF
ZAogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOHNldEJhY2tncm91bmRDb2xvckVSS05T
XzVDb2xvckUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRDb250ZW50c1RvSW1h
Z2VFUE5TXzVJbWFnZUUKLV9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRDb250ZW50
c1RvTWVkaWFFUDdDQUxheWVyCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE4c2V0Q29u
dGVudHNWaXNpYmxlRWIKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRPcGFjaXR5
SW50ZXJuYWxFZgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOHNldFJlcGxpY2F0ZWRM
YXllckVQTlNfMTNHcmFwaGljc0xheWVyRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0Ex
OHNldFNob3dEZWJ1Z0JvcmRlckViCi1fX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE5c2V0
Q29udGVudHNUb0NhbnZhc0VQN0NBTGF5ZXIKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNB
MTlzZXRDdXN0b21BcHBlYXJhbmNlRU5TXzEzR3JhcGhpY3NMYXllcjE2Q3VzdG9tQXBwZWFyYW5j
ZUUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjBzZXRDaGlsZHJlblRyYW5zZm9ybUVS
S05TXzIwVHJhbnNmb3JtYXRpb25NYXRyaXhFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJD
QTIwc2V0UmVwbGljYXRlZEJ5TGF5ZXJFUE5TXzEzR3JhcGhpY3NMYXllckUKQEAgLTU5Niw2ICs1
OTQsNyBAQCBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTIzc2V0Q29udGVudHNDbGlwcGlu
Z1JlY3RFUktOU185RmxvYXRSZWN0RQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EyM3Nl
dENvbnRlbnRzTmVlZHNEaXNwbGF5RXYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjNz
ZXRDb250ZW50c1RvU29saWRDb2xvckVSS05TXzVDb2xvckUKIF9fWk43V2ViQ29yZTE1R3JhcGhp
Y3NMYXllckNBMjNzZXREZWJ1Z0JhY2tncm91bmRDb2xvckVSS05TXzVDb2xvckUKK19fWk43V2Vi
Q29yZTE1R3JhcGhpY3NMYXllckNBMjZzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllckVQN0NBTGF5
ZXJOU18xM0dyYXBoaWNzTGF5ZXIyMENvbnRlbnRzTGF5ZXJQdXJwb3NlRQogX19aTjdXZWJDb3Jl
MTVHcmFwaGljc0xheWVyQ0EyOHBsYXRmb3JtQ0FMYXllclBhaW50Q29udGVudHNFUE5TXzE1UGxh
dGZvcm1DQUxheWVyRVJOU18xNUdyYXBoaWNzQ29udGV4dEVSS05TXzlGbG9hdFJlY3RFCiBfX1pO
N1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTI5cGxhdGZvcm1DQUxheWVyQW5pbWF0aW9uRW5kZWRF
UktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTMwZGV2aWNlT3JQ
YWdlU2NhbGVGYWN0b3JDaGFuZ2VkRXYKQEAgLTIwNjIsOSArMjA2MSw5IEBAIF9fWlRWTjdXZWJD
b3JlMjVEcm9wU2hhZG93RmlsdGVyT3BlcmF0aW9uRQogX19aVFZON1dlYkNvcmUyOEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWw4U2V0dGluZ3NFCiBfX1pUVk43V2ViQ29yZTMxQmFzaWNDb2xv
ck1hdHJpeEZpbHRlck9wZXJhdGlvbkUKIF9fWlRWTjdXZWJDb3JlMzdCYXNpY0NvbXBvbmVudFRy
YW5zZmVyRmlsdGVyT3BlcmF0aW9uRQorX19aVGhuPz8/X043V2ViQ29yZTE1R3JhcGhpY3NMYXll
ckNBMjhwbGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzRVBOU18xNVBsYXRmb3JtQ0FMYXllckVS
TlNfMTVHcmFwaGljc0NvbnRleHRFUktOU185RmxvYXRSZWN0RQogX19aVGhuPz8/X043V2ViQ29y
ZTE1R3JhcGhpY3NMYXllckNBMjlwbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25FbmRlZEVSS04zV1RG
NlN0cmluZ0UKIF9fWlRobj8/P19ON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTMxcGxhdGZvcm1D
QUxheWVyQW5pbWF0aW9uU3RhcnRlZEVSS04zV1RGNlN0cmluZ0VkCi1fX1pUaG4/Pz9fTjdXZWJD
b3JlMTVHcmFwaGljc0xheWVyQ0EyOHBsYXRmb3JtQ0FMYXllclBhaW50Q29udGVudHNFUE5TXzE1
UGxhdGZvcm1DQUxheWVyRVJOU18xNUdyYXBoaWNzQ29udGV4dEVSS05TXzlGbG9hdFJlY3RFCiBf
X1pUaG4/Pz9fTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EzMXBsYXRmb3JtQ0FMYXllckFuaW1h
dGlvblN0YXJ0ZWRFZAogX19aVGhuPz8/X043V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBNDBwbGF0
Zm9ybUNBTGF5ZXJTZXROZWVkc1RvUmV2YWxpZGF0ZVRpbGVzRXYKIF9fWlRobj8/P19OSzdXZWJD
b3JlMTVHcmFwaGljc0xheWVyQ0EyNnBsYXRmb3JtQ0FMYXllckV4cG9zZWRSZWN0RXYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCBk
MDA1YTZjZmU2MGMzNjc3OTAyOGM1ZDJhMThlZDhkYmU3YmM5NDhkLi4yNjgwMDljNTFkYWU5MWE2
ODU2Y2Q0ODkxOGU5NThkMGY1NTU3OTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBAIC0yNTEsNiArMjUxLDE1IEBAIHB1YmxpYzoK
ICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIGNoaWxkIGxpc3QgY2hhbmdlZC4KICAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIGJvb2wgc2V0Q2hpbGRyZW4oY29uc3QgVmVjdG9yPEdyYXBoaWNz
TGF5ZXIqPiYpOwogCisgICAgZW51bSBDb250ZW50c0xheWVyUHVycG9zZSB7CisgICAgICAgIE5v
Q29udGVudHNMYXllciA9IDAsCisgICAgICAgIENvbnRlbnRzTGF5ZXJGb3JJbWFnZSwKKyAgICAg
ICAgQ29udGVudHNMYXllckZvck1lZGlhLAorICAgICAgICBDb250ZW50c0xheWVyRm9yQ2FudmFz
LAorICAgICAgICBDb250ZW50c0xheWVyRm9yQmFja2dyb3VuZENvbG9yLAorICAgICAgICBDb250
ZW50c0xheWVyRm9yUGx1Z2luCisgICAgfTsKKwogICAgIC8vIEFkZCBjaGlsZCBsYXllcnMuIElm
IHRoZSBjaGlsZCBpcyBhbHJlYWR5IHBhcmVudGVkLCBpdCB3aWxsIGJlIHJlbW92ZWQgZnJvbSBp
dHMgb2xkIHBhcmVudC4KICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQo
R3JhcGhpY3NMYXllciopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBhZGRDaGls
ZEF0SW5kZXgoR3JhcGhpY3NMYXllciosIGludCBpbmRleCk7CkBAIC00MDUsMTYgKzQxNCwxMiBA
QCBwdWJsaWM6CiAgICAgLy8gTGF5ZXIgY29udGVudHMKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29u
dGVudHNUb0ltYWdlKEltYWdlKikgeyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZERpcmVjdGx5
Q29tcG9zaXRlSW1hZ2UoSW1hZ2UqKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0gICAgdmlydHVh
bCB2b2lkIHNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKikgeyB9IC8vIHZpZGVvIG9y
IHBsdWctaW4KICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBQbGF0Zm9ybUxheWVyKiBj
b250ZW50c0xheWVyRm9yTWVkaWEoKSBjb25zdCB7IHJldHVybiAwOyB9CiAjZW5kaWYKICAgICAv
LyBQYXNzIGFuIGludmFsaWQgY29sb3IgdG8gcmVtb3ZlIHRoZSBjb250ZW50cyBsYXllci4KICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKikgeyB9
Ci0gICAgLy8gRklYTUU6IHdlYmtpdC5vcmcvYi8xMDk2NTgKLSAgICAvLyBTaG91bGQgdW5pZnkg
c2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzCi0gICAgdmlydHVhbCB2
b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqIGxheWVyKSB7IHNl
dENvbnRlbnRzVG9NZWRpYShsYXllcik7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNU
b1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQdXJwb3NlKSB7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbnRlbnRzTGF5ZXIoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgLy8gQ2FsbGJhY2sgZnJvbSB0aGUgdW5kZXJseWluZyBncmFwaGljcyBzeXN0
ZW0gdG8gZHJhdyBsYXllciBjb250ZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCmluZGV4IDJjODg4N2E2OTAw
YjYwZDNjZTVjODcxZGExMTQ1MTU1NjlhZjY5MmIuLjk2NDZmMjY5ZWRlMzcyNDYzMjVhYWM1OGM3
YWU1MTU4OTBkODk3ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcApAQCAtOTIzLDI0ICs5MjMsMjQgQEAgdm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9JbWFnZShJbWFnZSogaW1hZ2UpCiAgICAg
bm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzSW1hZ2VDaGFuZ2VkKTsKIH0KIAotdm9p
ZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9ybUxheWVyKiBtZWRp
YUxheWVyKQordm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVy
KFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIsIENvbnRlbnRzTGF5ZXJQdXJwb3NlIHB1cnBv
c2UpCiB7Ci0gICAgaWYgKG1fY29udGVudHNMYXllciAmJiBtZWRpYUxheWVyID09IG1fY29udGVu
dHNMYXllci0+cGxhdGZvcm1MYXllcigpKQorICAgIGlmIChtX2NvbnRlbnRzTGF5ZXIgJiYgcGxh
dGZvcm1MYXllciA9PSBtX2NvbnRlbnRzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSkKICAgICAgICAg
cmV0dXJuOwotICAgICAgICAKLSAgICAvLyBGSVhNRTogVGhlIHBhc3NlZCBpbiBsYXllciBtaWdo
dCBiZSBhIHJhdyBsYXllciBvciBhbiBleHRlcm5hbGx5IGNyZWF0ZWQgCisKKyAgICAvLyBGSVhN
RTogVGhlIHBhc3NlZCBpbiBsYXllciBtaWdodCBiZSBhIHJhdyBsYXllciBvciBhbiBleHRlcm5h
bGx5IGNyZWF0ZWQKICAgICAvLyBQbGF0Zm9ybUNBTGF5ZXIuIFRvIGRldGVybWluZSB0aGlzIHdl
IGF0dGVtcHQgdG8gZ2V0IHRoZQogICAgIC8vIFBsYXRmb3JtQ0FMYXllciBwb2ludGVyLiBJZiB0
aGlzIHJldHVybnMgYSBudWxsIHBvaW50ZXIgd2UgYXNzdW1lIGl0J3MKICAgICAvLyByYXcuIFRo
aXMgdGVzdCBtaWdodCBiZSBpbnZhbGlkIGlmIHRoZSByYXcgbGF5ZXIgaXMsIGZvciBpbnN0YW5j
ZSwgdGhlCiAgICAgLy8gUGxhdGZvcm1DQUxheWVyIGlzIHVzaW5nIGEgdXNlciBkYXRhIHBvaW50
ZXIgaW4gdGhlIHJhdyBsYXllciwgYW5kCiAgICAgLy8gdGhlIGNyZWF0b3Igb2YgdGhlIHJhdyBs
YXllciBpcyB1c2luZyBpdCBmb3Igc29tZSBvdGhlciBwdXJwb3NlLgogICAgIC8vIEZvciBub3cg
d2UgZG9uJ3Qgc3VwcG9ydCBzdWNoIGEgY2FzZS4KLSAgICBQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRm
b3JtQ0FMYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKG1lZGlhTGF5ZXIp
OwotICAgIG1fY29udGVudHNMYXllciA9IG1lZGlhTGF5ZXIgPyAocGxhdGZvcm1DQUxheWVyID8g
cGxhdGZvcm1DQUxheWVyIDogY3JlYXRlUGxhdGZvcm1DQUxheWVyKG1lZGlhTGF5ZXIsIHRoaXMp
KSA6IDA7Ci0gICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IG1lZGlhTGF5ZXIgPyBDb250ZW50
c0xheWVyRm9yTWVkaWEgOiBOb0NvbnRlbnRzTGF5ZXI7CisgICAgUGxhdGZvcm1DQUxheWVyKiBw
bGF0Zm9ybUNBTGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXllcihwbGF0Zm9y
bUxheWVyKTsKKyAgICBtX2NvbnRlbnRzTGF5ZXIgPSBwbGF0Zm9ybUxheWVyID8gKHBsYXRmb3Jt
Q0FMYXllciA/IHBsYXRmb3JtQ0FMYXllciA6IGNyZWF0ZVBsYXRmb3JtQ0FMYXllcihwbGF0Zm9y
bUxheWVyLCB0aGlzKSkgOiAwOworICAgIG1fY29udGVudHNMYXllclB1cnBvc2UgPSBwbGF0Zm9y
bUxheWVyID8gcHVycG9zZSA6IE5vQ29udGVudHNMYXllcjsKIAogICAgIG5vdGVTdWJsYXllcnND
aGFuZ2VkKCk7Ci0gICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzTWVkaWFMYXll
ckNoYW5nZWQpOworICAgIG5vdGVMYXllclByb3BlcnR5Q2hhbmdlZChDb250ZW50c1BsYXRmb3Jt
TGF5ZXJDaGFuZ2VkKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTk1MCwyMCArOTUwLDYg
QEAgUGxhdGZvcm1MYXllciogR3JhcGhpY3NMYXllckNBOjpjb250ZW50c0xheWVyRm9yTWVkaWEo
KSBjb25zdAogfQogI2VuZGlmCiAKLXZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c1Rv
Q2FudmFzKFBsYXRmb3JtTGF5ZXIqIGNhbnZhc0xheWVyKQotewotICAgIGlmIChtX2NvbnRlbnRz
TGF5ZXIgJiYgY2FudmFzTGF5ZXIgPT0gbV9jb250ZW50c0xheWVyLT5wbGF0Zm9ybUxheWVyKCkp
Ci0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICAvLyBDcmVhdGUgdGhlIFBsYXRmb3JtQ0FMYXll
ciB0byB3cmFwIHRoZSBpbmNvbWluZyBsYXllcgotICAgIG1fY29udGVudHNMYXllciA9IGNhbnZh
c0xheWVyID8gY3JlYXRlUGxhdGZvcm1DQUxheWVyKGNhbnZhc0xheWVyLCB0aGlzKSA6IDA7Ci0g
ICAgCi0gICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IGNhbnZhc0xheWVyID8gQ29udGVudHNM
YXllckZvckNhbnZhcyA6IE5vQ29udGVudHNMYXllcjsKLQotICAgIG5vdGVTdWJsYXllcnNDaGFu
Z2VkKCk7Ci0gICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzQ2FudmFzTGF5ZXJD
aGFuZ2VkKTsKLX0KLSAgICAKIHZvaWQgR3JhcGhpY3NMYXllckNBOjpsYXllckRpZERpc3BsYXko
UGxhdGZvcm1DQUxheWVyKiBsYXllcikKIHsKICAgICBMYXllck1hcCogbGF5ZXJDbG9uZU1hcDsK
QEAgLTEzMDgsMTEgKzEyOTQsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJD
aGFuZ2VzQmVmb3JlU3VibGF5ZXJzKENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZQogICAgIGlmICht
X3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzSW1hZ2VDaGFuZ2VkKSAvLyBOZWVkcyB0byBo
YXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAogICAgICAgICB1cGRhdGVDb250ZW50c0ltYWdl
KCk7CiAgICAgICAgIAotICAgIGlmIChtX3VuY29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzTWVk
aWFMYXllckNoYW5nZWQpIC8vIE5lZWRzIHRvIGhhcHBlbiBiZWZvcmUgQ2hpbGRyZW5DaGFuZ2Vk
Ci0gICAgICAgIHVwZGF0ZUNvbnRlbnRzTWVkaWFMYXllcigpOwotICAgIAotICAgIGlmIChtX3Vu
Y29tbWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzQ2FudmFzTGF5ZXJDaGFuZ2VkKSAvLyBOZWVkcyB0
byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAotICAgICAgICB1cGRhdGVDb250ZW50c0Nh
bnZhc0xheWVyKCk7CisgICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ29udGVudHNQbGF0
Zm9ybUxheWVyQ2hhbmdlZCkgLy8gTmVlZHMgdG8gaGFwcGVuIGJlZm9yZSBDaGlsZHJlbkNoYW5n
ZWQKKyAgICAgICAgdXBkYXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKCk7CiAKICAgICBpZiAobV91
bmNvbW1pdHRlZENoYW5nZXMgJiBDb250ZW50c0NvbG9yTGF5ZXJDaGFuZ2VkKSAvLyBOZWVkcyB0
byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAogICAgICAgICB1cGRhdGVDb250ZW50c0Nv
bG9yTGF5ZXIoKTsKQEAgLTE5NDEsMjQgKzE5MjQsMTcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6
OnVwZGF0ZUNvbnRlbnRzSW1hZ2UoKQogICAgIH0KIH0KIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6
OnVwZGF0ZUNvbnRlbnRzTWVkaWFMYXllcigpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRl
Q29udGVudHNQbGF0Zm9ybUxheWVyKCkKIHsKLSAgICBpZiAoIW1fY29udGVudHNMYXllciB8fCBt
X2NvbnRlbnRzTGF5ZXJQdXJwb3NlICE9IENvbnRlbnRzTGF5ZXJGb3JNZWRpYSkKKyAgICBpZiAo
IW1fY29udGVudHNMYXllcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gVmlkZW8gbGF5ZXIg
d2FzIHNldCBhcyBtX2NvbnRlbnRzTGF5ZXIsIGFuZCB3aWxsIGdldCBwYXJlbnRlZCBpbiB1cGRh
dGVTdWJsYXllckxpc3QoKS4KKyAgICAvLyBQbGF0Zm9ybSBsYXllciB3YXMgc2V0IGFzIG1fY29u
dGVudHNMYXllciwgYW5kIHdpbGwgZ2V0IHBhcmVudGVkIGluIHVwZGF0ZVN1YmxheWVyTGlzdCgp
LgogICAgIHNldHVwQ29udGVudHNMYXllcihtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkpOwotICAgIHVw
ZGF0ZUNvbnRlbnRzUmVjdHMoKTsKLX0KIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNv
bnRlbnRzQ2FudmFzTGF5ZXIoKQotewotICAgIGlmICghbV9jb250ZW50c0xheWVyIHx8IG1fY29u
dGVudHNMYXllclB1cnBvc2UgIT0gQ29udGVudHNMYXllckZvckNhbnZhcykKLSAgICAgICAgcmV0
dXJuOworICAgIGlmIChtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID09IENvbnRlbnRzTGF5ZXJGb3JD
YW52YXMpCisgICAgICAgIG1fY29udGVudHNMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CiAKLSAg
ICAvLyBDYW52YXNMYXllciB3YXMgc2V0IGFzIG1fY29udGVudHNMYXllciwgYW5kIHdpbGwgZ2V0
IHBhcmVudGVkIGluIHVwZGF0ZVN1YmxheWVyTGlzdCgpLgotICAgIHNldHVwQ29udGVudHNMYXll
cihtX2NvbnRlbnRzTGF5ZXIuZ2V0KCkpOwotICAgIG1fY29udGVudHNMYXllci0+c2V0TmVlZHNE
aXNwbGF5KCk7CiAgICAgdXBkYXRlQ29udGVudHNSZWN0cygpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4
IGJkMjIwMTEwZGU5Njk3ZjVmMzEwMjY3OGMzMjVjMjlmZmQwODBlZDYuLmIyMDRmNGMzZmQ3YmI4
NTZlM2MxYWJlMTE4ZmExMWIzOTg5YmE2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCkBAIC0xMjYsMTEgKzEyNiwx
MCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1h
dGlvbihjb25zdCBTdHJpbmcmIGFuaW1hdGlvbk5hbWUpIG92ZXJyaWRlOwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9JbWFnZShJbWFnZSopIG92ZXJyaWRl
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvTWVkaWEoUGxh
dGZvcm1MYXllciopIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIGNvbnRlbnRzTGF5ZXJGb3JNZWRpYSgpIGNvbnN0
IG92ZXJyaWRlOwogI2VuZGlmCi0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNldENv
bnRlbnRzVG9DYW52YXMoUGxhdGZvcm1MYXllciopIG92ZXJyaWRlOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVy
KiwgQ29udGVudHNMYXllclB1cnBvc2UpIG92ZXJyaWRlOwogICAgIFdFQkNPUkVfRVhQT1JUIHZp
cnR1YWwgdm9pZCBzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYpIG92ZXJyaWRl
OwogCiAgICAgdmlydHVhbCBib29sIHVzZXNDb250ZW50c0xheWVyKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9jb250ZW50c0xheWVyUHVycG9zZSAhPSBOb0NvbnRlbnRzTGF5ZXI7IH0KQEAg
LTM3NCw4ICszNzMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlQmFja2dyb3VuZENvbG9y
KCk7CiAKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzSW1hZ2UoKTsKLSAgICB2b2lkIHVwZGF0ZUNv
bnRlbnRzTWVkaWFMYXllcigpOwotICAgIHZvaWQgdXBkYXRlQ29udGVudHNDYW52YXNMYXllcigp
OworICAgIHZvaWQgdXBkYXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKCk7CiAgICAgdm9pZCB1cGRh
dGVDb250ZW50c0NvbG9yTGF5ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRzUmVjdHMoKTsK
ICAgICB2b2lkIHVwZGF0ZU1hc2tMYXllcigpOwpAQCAtNDI5LDI0ICs0MjcsMjMgQEAgcHJpdmF0
ZToKICAgICAgICAgQW5pbWF0aW9uQ2hhbmdlZCA9IDFMTFUgPDwgMTMsCiAgICAgICAgIERpcnR5
UmVjdHNDaGFuZ2VkID0gMUxMVSA8PCAxNCwKICAgICAgICAgQ29udGVudHNJbWFnZUNoYW5nZWQg
PSAxTExVIDw8IDE1LAotICAgICAgICBDb250ZW50c01lZGlhTGF5ZXJDaGFuZ2VkID0gMUxMVSA8
PCAxNiwKLSAgICAgICAgQ29udGVudHNDYW52YXNMYXllckNoYW5nZWQgPSAxTExVIDw8IDE3LAot
ICAgICAgICBDb250ZW50c0NvbG9yTGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAxOCwKLSAgICAgICAg
Q29udGVudHNSZWN0c0NoYW5nZWQgPSAxTExVIDw8IDE5LAotICAgICAgICBNYXNrTGF5ZXJDaGFu
Z2VkID0gMUxMVSA8PCAyMCwKLSAgICAgICAgUmVwbGljYXRlZExheWVyQ2hhbmdlZCA9IDFMTFUg
PDwgMjEsCi0gICAgICAgIENvbnRlbnRzTmVlZHNEaXNwbGF5ID0gMUxMVSA8PCAyMiwKLSAgICAg
ICAgQWNjZWxlcmF0ZXNEcmF3aW5nQ2hhbmdlZCA9IDFMTFUgPDwgMjMsCi0gICAgICAgIENvbnRl
bnRzU2NhbGVDaGFuZ2VkID0gMUxMVSA8PCAyNCwKLSAgICAgICAgQ29udGVudHNWaXNpYmlsaXR5
Q2hhbmdlZCA9IDFMTFUgPDwgMjUsCi0gICAgICAgIFZpc2libGVSZWN0Q2hhbmdlZCA9IDFMTFUg
PDwgMjYsCi0gICAgICAgIEZpbHRlcnNDaGFuZ2VkID0gMUxMVSA8PCAyNywKLSAgICAgICAgVGls
aW5nQXJlYUNoYW5nZWQgPSAxTExVIDw8IDI4LAotICAgICAgICBUaWxlc0FkZGVkID0gMUxMVSA8
IDI5LAotICAgICAgICBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkID0gMUxMVSA8PCAzMCwKLSAgICAg
ICAgQ3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQgPSAxTExVIDw8IDMxLAotICAgICAgICBDdXN0b21C
ZWhhdmlvckNoYW5nZWQgPSAxTExVIDw8IDMyLAotICAgICAgICBCbGVuZE1vZGVDaGFuZ2VkID0g
MUxMVSA8PCAzMworICAgICAgICBDb250ZW50c1BsYXRmb3JtTGF5ZXJDaGFuZ2VkID0gMUxMVSA8
PCAxNiwKKyAgICAgICAgQ29udGVudHNDb2xvckxheWVyQ2hhbmdlZCA9IDFMTFUgPDwgMTcsCisg
ICAgICAgIENvbnRlbnRzUmVjdHNDaGFuZ2VkID0gMUxMVSA8PCAxOCwKKyAgICAgICAgTWFza0xh
eWVyQ2hhbmdlZCA9IDFMTFUgPDwgMTksCisgICAgICAgIFJlcGxpY2F0ZWRMYXllckNoYW5nZWQg
PSAxTExVIDw8IDIwLAorICAgICAgICBDb250ZW50c05lZWRzRGlzcGxheSA9IDFMTFUgPDwgMjEs
CisgICAgICAgIEFjY2VsZXJhdGVzRHJhd2luZ0NoYW5nZWQgPSAxTExVIDw8IDIyLAorICAgICAg
ICBDb250ZW50c1NjYWxlQ2hhbmdlZCA9IDFMTFUgPDwgMjMsCisgICAgICAgIENvbnRlbnRzVmlz
aWJpbGl0eUNoYW5nZWQgPSAxTExVIDw8IDI0LAorICAgICAgICBWaXNpYmxlUmVjdENoYW5nZWQg
PSAxTExVIDw8IDI1LAorICAgICAgICBGaWx0ZXJzQ2hhbmdlZCA9IDFMTFUgPDwgMjYsCisgICAg
ICAgIFRpbGluZ0FyZWFDaGFuZ2VkID0gMUxMVSA8PCAyNywKKyAgICAgICAgVGlsZXNBZGRlZCA9
IDFMTFUgPCAyOCwKKyAgICAgICAgRGVidWdJbmRpY2F0b3JzQ2hhbmdlZCA9IDFMTFUgPDwgMjks
CisgICAgICAgIEN1c3RvbUFwcGVhcmFuY2VDaGFuZ2VkID0gMUxMVSA8PCAzMCwKKyAgICAgICAg
Q3VzdG9tQmVoYXZpb3JDaGFuZ2VkID0gMUxMVSA8PCAzMSwKKyAgICAgICAgQmxlbmRNb2RlQ2hh
bmdlZCA9IDFMTFUgPDwgMzIKICAgICB9OwogICAgIHR5cGVkZWYgdWludDY0X3QgTGF5ZXJDaGFu
Z2VGbGFnczsKICAgICBlbnVtIFNjaGVkdWxlRmx1c2hPck5vdCB7IFNjaGVkdWxlRmx1c2gsIERv
bnRTY2hlZHVsZUZsdXNoIH07CkBAIC00NzMsMTQgKzQ3MCw2IEBAIHByaXZhdGU6CiAgICAgRmxv
YXRSZWN0IG1fdmlzaWJsZVJlY3Q7CiAgICAgRmxvYXRTaXplIG1fc2l6ZUF0TGFzdFZpc2libGVS
ZWN0VXBkYXRlOwogICAgIAotICAgIGVudW0gQ29udGVudHNMYXllclB1cnBvc2UgewotICAgICAg
ICBOb0NvbnRlbnRzTGF5ZXIgPSAwLAotICAgICAgICBDb250ZW50c0xheWVyRm9ySW1hZ2UsCi0g
ICAgICAgIENvbnRlbnRzTGF5ZXJGb3JNZWRpYSwKLSAgICAgICAgQ29udGVudHNMYXllckZvckNh
bnZhcywKLSAgICAgICAgQ29udGVudHNMYXllckZvckJhY2tncm91bmRDb2xvcgotICAgIH07Ci0g
ICAgCiAgICAgQ29udGVudHNMYXllclB1cnBvc2UgbV9jb250ZW50c0xheWVyUHVycG9zZTsKICAg
ICBib29sIG1faXNQYWdlVGlsZWRCYWNraW5nTGF5ZXIgOiAxOwogICAgIGJvb2wgbV9uZWVkc0Z1
bGxSZXBhaW50IDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3Bw
CmluZGV4IDkzMGRjN2YwNTk1MDZiMGI5MGQ3NDU3YWUxNDEwODNjMzg2MDIxYmEuLjg1MjAwMmU5
MmJmZjAxOTg3NmRiNzgwMmNmNjlkNWExMDdjN2Y0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyLmNwcApAQCAtMzY4LDE3ICszNjgsMTcgQEAgdm9pZCBHcmFwaGlj
c0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkKICAg
ICAgICAgbV9jb21wb3NpdGVkSW1hZ2UgPSAwOwogICAgIH0KIAotICAgIHNldENvbnRlbnRzVG9N
ZWRpYShtX2NvbXBvc2l0ZWRJbWFnZS5nZXQoKSk7CisgICAgc2V0Q29udGVudHNUb1BsYXRmb3Jt
TGF5ZXIobV9jb21wb3NpdGVkSW1hZ2UuZ2V0KCksIENvbnRlbnRzTGF5ZXJGb3JJbWFnZSk7CiAg
ICAgbm90aWZ5Q2hhbmdlKENvbnRlbnRDaGFuZ2UpOwogICAgIEdyYXBoaWNzTGF5ZXI6OnNldENv
bnRlbnRzVG9JbWFnZShpbWFnZSk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXI6OnNldENvbnRlbnRzVG9NZWRpYShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllciogbWVkaWEp
Cit2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1M
YXllcihUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllciogbWVkaWEsIENvbnRlbnRzTGF5ZXJQdXJw
b3NlIHB1cnBvc2UpCiB7CiAgICAgaWYgKG1lZGlhID09IG1fY29udGVudHNMYXllcikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb01lZGlhKG1lZGlh
KTsKKyAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihtZWRpYSwg
cHVycG9zZSk7CiAgICAgbm90aWZ5Q2hhbmdlKENvbnRlbnRDaGFuZ2UpOwogCiAgICAgaWYgKG1f
Y29udGVudHNMYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKaW5k
ZXggY2FjZWNiMzc2MzI5YzIwNDU1YWRhMWVhMzI4N2Q5NWFjNTU0MjI4Mi4uODJmOGNhYjVlOWRl
NDFiZWI2M2EyM2RiOTA5OTU5M2Q1MmNkODkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmgKQEAgLTY4LDggKzY4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVu
dHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImKTsKICAgICBDb2xvciBzb2xpZENvbG9yKCkgY29u
c3QgeyByZXR1cm4gbV9zb2xpZENvbG9yOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRz
VG9NZWRpYShQbGF0Zm9ybUxheWVyKik7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9D
YW52YXMoUGxhdGZvcm1MYXllciogY2FudmFzKSB7IHNldENvbnRlbnRzVG9NZWRpYShjYW52YXMp
OyB9CisgICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRmb3Jt
TGF5ZXIqLCBDb250ZW50c0xheWVyUHVycG9zZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dE
ZWJ1Z0JvcmRlcihib29sKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVidWdCb3Jk
ZXIoY29uc3QgQ29sb3ImLCBmbG9hdCB3aWR0aCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IHNldFNob3dSZXBhaW50Q291bnRlcihib29sKSBvdmVycmlkZTsKQEAgLTExMiw3ICsxMTEsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgcHJlcGFyZUJhY2tpbmdTdG9yZUlmTmVlZGVkKCk7CiAgICAg
Ym9vbCBzaG91bGRIYXZlQmFja2luZ1N0b3JlKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
cGxhdGZvcm1MYXllcldpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlIHsgc2V0Q29udGVudHNUb01l
ZGlhKDApOyB9CisgICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtTGF5ZXJXaWxsQmVEZXN0cm95ZWQo
KSBvdmVycmlkZSB7IHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKDAsIE5vQ29udGVudHNMYXll
cik7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0UGxhdGZvcm1MYXllck5lZWRzRGlzcGxheSgpIG92
ZXJyaWRlIHsgc2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsgfQogCiAgICAgLy8gVGhpcyBzZXQg
b2YgZmxhZ3MgaGVscCB1cyBkZWZlciB3aGljaCBwcm9wZXJ0aWVzIG9mIHRoZSBsYXllciBoYXZl
IGJlZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci5jcHAKaW5kZXggNTQ2ODA3NWZlMjFmZTg0ODZkODc3OTQwMTUyOWMzZDFmYzA0OTRh
YS4uNmE1Mjk1OThhNGUzMzcwYzBhM2I0NmYxMTE4ZmZjZDRjZDFhMzRlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAg
LTEyMSwxMiArMTIxLDEyIEBAIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKICAgICAsIG1fcGVuZGlu
Z0NvbnRlbnRzU2NhbGVBZGp1c3RtZW50KGZhbHNlKQogICAgICwgbV9wZW5kaW5nVmlzaWJsZVJl
Y3RBZGp1c3RtZW50KGZhbHNlKQogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgICwgbV9p
c1ZhbGlkQ2FudmFzKGZhbHNlKQotICAgICwgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uKE5vbmUp
CisgICAgLCBtX2lzVmFsaWRQbGF0Zm9ybUxheWVyKGZhbHNlKQorICAgICwgbV9wZW5kaW5nUGxh
dGZvcm1MYXllck9wZXJhdGlvbihOb25lKQogI2VuZGlmCiAgICAgLCBtX2Nvb3JkaW5hdG9yKDAp
CiAgICAgLCBtX2NvbXBvc2l0ZWROYXRpdmVJbWFnZVB0cigwKQotICAgICwgbV9jYW52YXNQbGF0
Zm9ybUxheWVyKDApCisgICAgLCBtX3BsYXRmb3JtTGF5ZXIoMCkKICAgICAsIG1fYW5pbWF0aW9u
U3RhcnRlZFRpbWVyKHRoaXMsICZDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvblN0
YXJ0ZWRUaW1lckZpcmVkKQogICAgICwgbV9zY3JvbGxhYmxlQXJlYSgwKQogewpAQCAtMzgzLDM2
ICszODMsMzcgQEAgYm9vbCBHcmFwaGljc0xheWVyOjpzdXBwb3J0c0NvbnRlbnRzVGlsaW5nKCkK
IHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c05lZWRzRGlzcGxheSgp
CiB7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgaWYgKG1fY2FudmFzUGxhdGZvcm1M
YXllcikKLSAgICAgICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHw9IFN5bmNDYW52YXM7Cisg
ICAgaWYgKG1fcGxhdGZvcm1MYXllcikKKyAgICAgICAgbV9wZW5kaW5nUGxhdGZvcm1MYXllck9w
ZXJhdGlvbiB8PSBTeW5jUGxhdGZvcm1MYXllcjsKICNlbmRpZgogCiAgICAgbm90aWZ5Rmx1c2hS
ZXF1aXJlZCgpOwogICAgIGFkZFJlcGFpbnRSZWN0KGNvbnRlbnRzUmVjdCgpKTsKIH0KIAotdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9DYW52YXMoUGxhdGZvcm1M
YXllciogcGxhdGZvcm1MYXllcikKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRD
b250ZW50c1RvUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyLCBDb250
ZW50c0xheWVyUHVycG9zZSBwdXJwb3NlKQogewogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQot
ICAgIGlmIChtX2NhbnZhc1BsYXRmb3JtTGF5ZXIpIHsKLSAgICAgICAgQVNTRVJUKG1fY2FudmFz
VG9rZW4uaXNWYWxpZCgpKTsKKyAgICBpZiAobV9wbGF0Zm9ybUxheWVyKSB7CisgICAgICAgIEFT
U0VSVChtX3BsYXRmb3JtTGF5ZXJUb2tlbi5pc1ZhbGlkKCkpOwogICAgICAgICBpZiAoIXBsYXRm
b3JtTGF5ZXIpIHsKLSAgICAgICAgICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiB8PSBEZXN0
cm95Q2FudmFzOwotICAgICAgICAgICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uICY9IH5DcmVh
dGVDYW52YXM7Ci0gICAgICAgIH0gIGVsc2UgaWYgKChtX2NhbnZhc1NpemUgIT0gcGxhdGZvcm1M
YXllci0+cGxhdGZvcm1MYXllclNpemUoKSkgfHwgKG1fY2FudmFzVG9rZW4gIT0gcGxhdGZvcm1M
YXllci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKSkpIHsKLSAgICAgICAgICAgIC8vIG1fY2FudmFz
VG9rZW4gY2FuIGJlIGRpZmZlcmVudCB0byBwbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZhY2VU
b2tlbigpLCBldmVuIGlmIG1fY2FudmFzUGxhdGZvcm1MYXllciBlcXVhbHMgcGxhdGZvcm1MYXll
ci4KLSAgICAgICAgICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiB8PSBSZWNyZWF0ZUNhbnZh
czsKKyAgICAgICAgICAgIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gfD0gRGVzdHJv
eVBsYXRmb3JtTGF5ZXI7CisgICAgICAgICAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0
aW9uICY9IH5DcmVhdGVQbGF0Zm9ybUxheWVyOworICAgICAgICB9ICBlbHNlIGlmICgobV9wbGF0
Zm9ybUxheWVyU2l6ZSAhPSBwbGF0Zm9ybUxheWVyLT5wbGF0Zm9ybUxheWVyU2l6ZSgpKSB8fCAo
bV9wbGF0Zm9ybUxheWVyVG9rZW4gIT0gcGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9r
ZW4oKSkpIHsKKyAgICAgICAgICAgIC8vIG1fcGxhdGZvcm1MYXllclRva2VuIGNhbiBiZSBkaWZm
ZXJlbnQgdG8gcGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKSwgZXZlbiBpZiBt
X3BsYXRmb3JtTGF5ZXIgZXF1YWxzIHBsYXRmb3JtTGF5ZXIuCisgICAgICAgICAgICBtX3BlbmRp
bmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uIHw9IFJlY3JlYXRlUGxhdGZvcm1MYXllcjsKICAgICAg
ICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmIChwbGF0Zm9ybUxheWVyKQotICAgICAgICAg
ICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHw9IENyZWF0ZUFuZFN5bmNDYW52YXM7CisgICAg
ICAgICAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uIHw9IENyZWF0ZUFuZFN5bmNQ
bGF0Zm9ybUxheWVyOwogICAgIH0KIAotICAgIG1fY2FudmFzUGxhdGZvcm1MYXllciA9IHBsYXRm
b3JtTGF5ZXI7Ci0gICAgLy8gbV9jYW52YXNUb2tlbiBpcyB1cGRhdGVkIG9ubHkgaGVyZS4gSW4g
ZGV0YWlsLCB3aGVuIEdyYXBoaWNzQ29udGV4dDNEIGlzIGNoYW5nZWQgb3IgcmVzaGFwZWQsIG1f
Y2FudmFzVG9rZW4gaXMgY2hhbmdlZCBhbmQgc2V0Q29udGVudHNUb0NhbnZhcygpIGlzIGFsd2F5
cyBjYWxsZWQuCi0gICAgbV9jYW52YXNTaXplID0gbV9jYW52YXNQbGF0Zm9ybUxheWVyID8gbV9j
YW52YXNQbGF0Zm9ybUxheWVyLT5wbGF0Zm9ybUxheWVyU2l6ZSgpIDogSW50U2l6ZSgpOwotICAg
IG1fY2FudmFzVG9rZW4gPSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgPyBtX2NhbnZhc1BsYXRmb3Jt
TGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2VuKCkgOiBHcmFwaGljc1N1cmZhY2VUb2tlbigpOwot
ICAgIEFTU0VSVCghKCFtX2NhbnZhc1Rva2VuLmlzVmFsaWQoKSAmJiBtX2NhbnZhc1BsYXRmb3Jt
TGF5ZXIpKTsKKyAgICBtX3BsYXRmb3JtTGF5ZXIgPSBwbGF0Zm9ybUxheWVyOworICAgIC8vIG1f
cGxhdGZvcm1MYXllclRva2VuIGlzIHVwZGF0ZWQgb25seSBoZXJlLiAKKyAgICAvLyBJbiBkZXRh
aWwsIHdoZW4gR3JhcGhpY3NDb250ZXh0M0QgaXMgY2hhbmdlZCBvciByZXNoYXBlZCwgbV9wbGF0
Zm9ybUxheWVyVG9rZW4gaXMgY2hhbmdlZCBhbmQgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIo
KSBpcyBhbHdheXMgY2FsbGVkLgorICAgIG1fcGxhdGZvcm1MYXllclNpemUgPSBtX3BsYXRmb3Jt
TGF5ZXIgPyBtX3BsYXRmb3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCkgOiBJbnRTaXplKCk7
CisgICAgbV9wbGF0Zm9ybUxheWVyVG9rZW4gPSBtX3BsYXRmb3JtTGF5ZXIgPyBtX3BsYXRmb3Jt
TGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2VuKCkgOiBHcmFwaGljc1N1cmZhY2VUb2tlbigpOwor
ICAgIEFTU0VSVCghKCFtX3BsYXRmb3JtTGF5ZXJUb2tlbi5pc1ZhbGlkKCkgJiYgbV9wbGF0Zm9y
bUxheWVyKSk7CiAKICAgICBub3RpZnlGbHVzaFJlcXVpcmVkKCk7CiAjZWxzZQpAQCAtNzIwLDUz
ICs3MjEsNTMgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNBbmltYXRpb25z
KCkKIH0KIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OnN5bmNDYW52YXMoKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5
bmNQbGF0Zm9ybUxheWVyKCkKIHsKLSAgICBkZXN0cm95Q2FudmFzSWZOZWVkZWQoKTsKLSAgICBj
cmVhdGVDYW52YXNJZk5lZWRlZCgpOworICAgIGRlc3Ryb3lQbGF0Zm9ybUxheWVySWZOZWVkZWQo
KTsKKyAgICBjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQoKTsKIAotICAgIGlmICghKG1fcGVu
ZGluZ0NhbnZhc09wZXJhdGlvbiAmIFN5bmNDYW52YXMpKQorICAgIGlmICghKG1fcGVuZGluZ1Bs
YXRmb3JtTGF5ZXJPcGVyYXRpb24gJiBTeW5jUGxhdGZvcm1MYXllcikpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiAmPSB+U3luY0NhbnZhczsKKyAgICBt
X3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uICY9IH5TeW5jUGxhdGZvcm1MYXllcjsKIAot
ICAgIGlmICghbV9pc1ZhbGlkQ2FudmFzKQorICAgIGlmICghbV9pc1ZhbGlkUGxhdGZvcm1MYXll
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1fY2FudmFzUGxhdGZvcm1MYXllcik7
Ci0gICAgbV9sYXllclN0YXRlLmNhbnZhc0Zyb250QnVmZmVyID0gbV9jYW52YXNQbGF0Zm9ybUxh
eWVyLT5jb3B5VG9HcmFwaGljc1N1cmZhY2UoKTsKLSAgICBtX2xheWVyU3RhdGUuY2FudmFzU2hv
dWxkU3dhcEJ1ZmZlcnMgPSB0cnVlOworICAgIEFTU0VSVChtX3BsYXRmb3JtTGF5ZXIpOworICAg
IG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyRnJvbnRCdWZmZXIgPSBtX3BsYXRmb3JtTGF5ZXIt
PmNvcHlUb0dyYXBoaWNzU3VyZmFjZSgpOworICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVy
U2hvdWxkU3dhcEJ1ZmZlcnMgPSB0cnVlOwogfQogCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6ZGVzdHJveUNhbnZhc0lmTmVlZGVkKCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjpkZXN0cm95UGxhdGZvcm1MYXllcklmTmVlZGVkKCkKIHsKLSAgICBpZiAoIShtX3BlbmRp
bmdDYW52YXNPcGVyYXRpb24gJiBEZXN0cm95Q2FudmFzKSkKKyAgICBpZiAoIShtX3BlbmRpbmdQ
bGF0Zm9ybUxheWVyT3BlcmF0aW9uICYgRGVzdHJveVBsYXRmb3JtTGF5ZXIpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpZiAobV9pc1ZhbGlkQ2FudmFzKSB7Ci0gICAgICAgIG1faXNWYWxpZENh
bnZhcyA9IGZhbHNlOwotICAgICAgICBtX2xheWVyU3RhdGUuY2FudmFzVG9rZW4gPSBHcmFwaGlj
c1N1cmZhY2VUb2tlbigpOwotICAgICAgICBtX2xheWVyU3RhdGUuY2FudmFzQ2hhbmdlZCA9IHRy
dWU7CisgICAgaWYgKG1faXNWYWxpZFBsYXRmb3JtTGF5ZXIpIHsKKyAgICAgICAgbV9pc1ZhbGlk
UGxhdGZvcm1MYXllciA9IGZhbHNlOworICAgICAgICBtX2xheWVyU3RhdGUucGxhdGZvcm1MYXll
clRva2VuID0gR3JhcGhpY3NTdXJmYWNlVG9rZW4oKTsKKyAgICAgICAgbV9sYXllclN0YXRlLnBs
YXRmb3JtTGF5ZXJDaGFuZ2VkID0gdHJ1ZTsKICAgICB9CiAKLSAgICBtX3BlbmRpbmdDYW52YXNP
cGVyYXRpb24gJj0gfkRlc3Ryb3lDYW52YXM7CisgICAgbV9wZW5kaW5nUGxhdGZvcm1MYXllck9w
ZXJhdGlvbiAmPSB+RGVzdHJveVBsYXRmb3JtTGF5ZXI7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyOjpjcmVhdGVDYW52YXNJZk5lZWRlZCgpCit2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6Y3JlYXRlUGxhdGZvcm1MYXllcklmTmVlZGVkKCkKIHsKLSAgICBpZiAoISht
X3BlbmRpbmdDYW52YXNPcGVyYXRpb24gJiBDcmVhdGVDYW52YXMpKQorICAgIGlmICghKG1fcGVu
ZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gJiBDcmVhdGVQbGF0Zm9ybUxheWVyKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKG1fY2FudmFzUGxhdGZvcm1MYXllcik7Ci0gICAgaWYg
KCFtX2lzVmFsaWRDYW52YXMpIHsKLSAgICAgICAgbV9sYXllclN0YXRlLmNhbnZhc1NpemUgPSBt
X2NhbnZhc1BsYXRmb3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCk7Ci0gICAgICAgIG1fbGF5
ZXJTdGF0ZS5jYW52YXNUb2tlbiA9IG1fY2FudmFzUGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJm
YWNlVG9rZW4oKTsKLSAgICAgICAgbV9sYXllclN0YXRlLmNhbnZhc1N1cmZhY2VGbGFncyA9IG1f
Y2FudmFzUGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlRmxhZ3MoKTsKLSAgICAgICAgbV9s
YXllclN0YXRlLmNhbnZhc0NoYW5nZWQgPSB0cnVlOwotICAgICAgICBtX2lzVmFsaWRDYW52YXMg
PSB0cnVlOworICAgIEFTU0VSVChtX3BsYXRmb3JtTGF5ZXIpOworICAgIGlmICghbV9pc1ZhbGlk
UGxhdGZvcm1MYXllcikgeworICAgICAgICBtX2xheWVyU3RhdGUucGxhdGZvcm1MYXllclNpemUg
PSBtX3BsYXRmb3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCk7CisgICAgICAgIG1fbGF5ZXJT
dGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4gPSBtX3BsYXRmb3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFj
ZVRva2VuKCk7CisgICAgICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyU3VyZmFjZUZsYWdz
ID0gbV9wbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZhY2VGbGFncygpOworICAgICAgICBtX2xh
eWVyU3RhdGUucGxhdGZvcm1MYXllckNoYW5nZWQgPSB0cnVlOworICAgICAgICBtX2lzVmFsaWRQ
bGF0Zm9ybUxheWVyID0gdHJ1ZTsKICAgICB9CiAKLSAgICBtX3BlbmRpbmdDYW52YXNPcGVyYXRp
b24gJj0gfkNyZWF0ZUNhbnZhczsKKyAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9u
ICY9IH5DcmVhdGVQbGF0Zm9ybUxheWVyOwogfQogI2VuZGlmCiAKQEAgLTc5MSw3ICs3OTIsNyBA
QCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9y
VGhpc0xheWVyT25seSgpCiAgICAgc3luY0ZpbHRlcnMoKTsKICNlbmRpZgogI2lmIFVTRShHUkFQ
SElDU19TVVJGQUNFKQotICAgIHN5bmNDYW52YXMoKTsKKyAgICBzeW5jUGxhdGZvcm1MYXllcigp
OwogI2VuZGlmCiAKICAgICAvLyBPbmx5IHVuc2V0IG1fbW92aW5nVmlzaWJsZVJlY3QgYWZ0ZXIg
d2UgaGF2ZSB1cGRhdGVkIHRoZSB2aXNpYmxlIHJlY3QgYWZ0ZXIgdGhlIGFuaW1hdGlvbiBzdG9w
cGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5oCmluZGV4IDE0ODZjMjA3YmUyODY0MDQ0OGI1MDYxMzdhNmIwYjQzNDIwMTE0ZWIuLmE2
YTU4ZjMyYjQ3NDZlMjc1ZWY1MWM4NjQ2NWI0YmU5ZTY4NTc0YmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTkyLDcgKzky
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93RGVidWdCb3JkZXIoYm9vbCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dSZXBhaW50Q291bnRlcihib29sKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGlyZWN0bHlDb21wb3NpdGVJbWFnZShJ
bWFnZSopIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvQ2Fu
dmFzKFBsYXRmb3JtTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVu
dHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciosIENvbnRlbnRzTGF5ZXJQdXJwb3NlKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0TWFza0xheWVyKEdyYXBoaWNzTGF5ZXIqKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVwbGljYXRlZEJ5TGF5ZXIoR3JhcGhpY3NM
YXllciopIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVy
cmlkZTsKQEAgLTEwOSw3ICsxMDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92
ZUFuaW1hdGlvbihjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc3Vz
cGVuZEFuaW1hdGlvbnMoZG91YmxlIHRpbWUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBy
ZXN1bWVBbmltYXRpb25zKCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIHVzZXNDb250ZW50
c0xheWVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9jYW52YXNQbGF0Zm9ybUxheWVyIHx8
IG1fY29tcG9zaXRlZEltYWdlOyB9CisgICAgdmlydHVhbCBib29sIHVzZXNDb250ZW50c0xheWVy
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9wbGF0Zm9ybUxheWVyIHx8IG1fY29tcG9zaXRl
ZEltYWdlOyB9CiAKICAgICB2b2lkIHN5bmNQZW5kaW5nU3RhdGVDaGFuZ2VzSW5jbHVkaW5nU3Vi
TGF5ZXJzKCk7CiAgICAgdm9pZCB1cGRhdGVDb250ZW50QnVmZmVyc0luY2x1ZGluZ1N1YkxheWVy
cygpOwpAQCAtMTU0LDE4ICsxNTQsMTggQEAgcHVibGljOgogCiBwcml2YXRlOgogI2lmIFVTRShH
UkFQSElDU19TVVJGQUNFKQotICAgIGVudW0gUGVuZGluZ0NhbnZhc09wZXJhdGlvbiB7CisgICAg
ZW51bSBQZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbiB7CiAgICAgICAgIE5vbmUgPSAweDAw
LAotICAgICAgICBDcmVhdGVDYW52YXMgPSAweDAxLAotICAgICAgICBEZXN0cm95Q2FudmFzID0g
MHgwMiwKLSAgICAgICAgU3luY0NhbnZhcyA9IDB4MDQsCi0gICAgICAgIENyZWF0ZUFuZFN5bmND
YW52YXMgPSBDcmVhdGVDYW52YXMgfCBTeW5jQ2FudmFzLAotICAgICAgICBSZWNyZWF0ZUNhbnZh
cyA9IENyZWF0ZUFuZFN5bmNDYW52YXMgfCBEZXN0cm95Q2FudmFzCisgICAgICAgIENyZWF0ZVBs
YXRmb3JtTGF5ZXIgPSAweDAxLAorICAgICAgICBEZXN0cm95UGxhdGZvcm1MYXllciA9IDB4MDIs
CisgICAgICAgIFN5bmNQbGF0Zm9ybUxheWVyID0gMHgwNCwKKyAgICAgICAgQ3JlYXRlQW5kU3lu
Y1BsYXRmb3JtTGF5ZXIgPSBDcmVhdGVQbGF0Zm9ybUxheWVyIHwgU3luY1BsYXRmb3JtTGF5ZXIs
CisgICAgICAgIFJlY3JlYXRlUGxhdGZvcm1MYXllciA9IENyZWF0ZUFuZFN5bmNQbGF0Zm9ybUxh
eWVyIHwgRGVzdHJveVBsYXRmb3JtTGF5ZXIKICAgICB9OwogCi0gICAgdm9pZCBzeW5jQ2FudmFz
KCk7Ci0gICAgdm9pZCBkZXN0cm95Q2FudmFzSWZOZWVkZWQoKTsKLSAgICB2b2lkIGNyZWF0ZUNh
bnZhc0lmTmVlZGVkKCk7CisgICAgdm9pZCBzeW5jUGxhdGZvcm1MYXllcigpOworICAgIHZvaWQg
ZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRlZCgpOworICAgIHZvaWQgY3JlYXRlUGxhdGZvcm1M
YXllcklmTmVlZGVkKCk7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRl
cihjb25zdCBDb2xvciYsIGZsb2F0IHdpZHRoKSBvdmVycmlkZTsKQEAgLTIzMiw4ICsyMzIsOCBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9wZW5kaW5nQ29udGVudHNTY2FsZUFkanVzdG1lbnQgOiAx
OwogICAgIGJvb2wgbV9wZW5kaW5nVmlzaWJsZVJlY3RBZGp1c3RtZW50IDogMTsKICNpZiBVU0Uo
R1JBUEhJQ1NfU1VSRkFDRSkKLSAgICBib29sIG1faXNWYWxpZENhbnZhcyA6IDE7Ci0gICAgdW5z
aWduZWQgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIDogMzsKKyAgICBib29sIG1faXNWYWxpZFBs
YXRmb3JtTGF5ZXIgOiAxOworICAgIHVuc2lnbmVkIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVy
YXRpb24gOiAzOwogI2VuZGlmCiAKICAgICBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJDbGllbnQq
IG1fY29vcmRpbmF0b3I7CkBAIC0yNDQsMTAgKzI0NCwxMCBAQCBwcml2YXRlOgogICAgIE5hdGl2
ZUltYWdlUHRyIG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyOwogICAgIFJlZlB0cjxDb29yZGlu
YXRlZEltYWdlQmFja2luZz4gbV9jb29yZGluYXRlZEltYWdlQmFja2luZzsKIAotICAgIFBsYXRm
b3JtTGF5ZXIqIG1fY2FudmFzUGxhdGZvcm1MYXllcjsKKyAgICBQbGF0Zm9ybUxheWVyKiBtX3Bs
YXRmb3JtTGF5ZXI7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgSW50U2l6ZSBtX2Nh
bnZhc1NpemU7Ci0gICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4gbV9jYW52YXNUb2tlbjsKKyAgICBJ
bnRTaXplIG1fcGxhdGZvcm1MYXllclNpemU7CisgICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4gbV9w
bGF0Zm9ybUxheWVyVG9rZW47CiAjZW5kaWYKICAgICBUaW1lcjxDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI+IG1fYW5pbWF0aW9uU3RhcnRlZFRpbWVyOwogICAgIEdyYXBoaWNzTGF5ZXJBbmltYXRp
b25zIG1fYW5pbWF0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKaW5kZXggZWU2M2M1NzMzZjU3MWEwMDNkYjFkYmQ1ZTEw
NGE4NDM4NDVlMWNlMS4uNDkxNDAzYjM0MjYyMzc2ZmE3NDI2ODNlMGM4NmRlNTI0N2E0MzFiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3Jk
aW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZS5jcHAKQEAgLTE2NSwzNyArMTY1LDM3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lOjphZGp1c3RQb3NpdGlvbkZvckZpeGVkTGF5ZXJzKCkKIH0KIAogI2lmIFVTRShHUkFQSElD
U19TVVJGQUNFKQotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNyZWF0ZUNhbnZhc0lm
TmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIsIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllclN0YXRlJiBzdGF0ZSkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpjcmVh
dGVQbGF0Zm9ybUxheWVySWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiBsYXllciwgY29uc3Qg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmIHN0YXRlKQogewotICAgIGlmICghc3RhdGUu
Y2FudmFzVG9rZW4uaXNWYWxpZCgpKQorICAgIGlmICghc3RhdGUucGxhdGZvcm1MYXllclRva2Vu
LmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPFRleHR1cmVNYXBwZXJT
dXJmYWNlQmFja2luZ1N0b3JlPiBjYW52YXNCYWNraW5nU3RvcmUoVGV4dHVyZU1hcHBlclN1cmZh
Y2VCYWNraW5nU3RvcmU6OmNyZWF0ZSgpKTsKLSAgICBtX3N1cmZhY2VCYWNraW5nU3RvcmVzLnNl
dChsYXllciwgY2FudmFzQmFja2luZ1N0b3JlKTsKLSAgICBjYW52YXNCYWNraW5nU3RvcmUtPnNl
dEdyYXBoaWNzU3VyZmFjZShHcmFwaGljc1N1cmZhY2U6OmNyZWF0ZShzdGF0ZS5jYW52YXNTaXpl
LCBzdGF0ZS5jYW52YXNTdXJmYWNlRmxhZ3MsIHN0YXRlLmNhbnZhc1Rva2VuKSk7Ci0gICAgbGF5
ZXItPnNldENvbnRlbnRzTGF5ZXIoY2FudmFzQmFja2luZ1N0b3JlLmdldCgpKTsKKyAgICBSZWZQ
dHI8VGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU+IHBsYXRmb3JtTGF5ZXJCYWNraW5n
U3RvcmUoVGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU6OmNyZWF0ZSgpKTsKKyAgICBt
X3N1cmZhY2VCYWNraW5nU3RvcmVzLnNldChsYXllciwgcGxhdGZvcm1MYXllckJhY2tpbmdTdG9y
ZSk7CisgICAgcGxhdGZvcm1MYXllckJhY2tpbmdTdG9yZS0+c2V0R3JhcGhpY3NTdXJmYWNlKEdy
YXBoaWNzU3VyZmFjZTo6Y3JlYXRlKHN0YXRlLnBsYXRmb3JtTGF5ZXJTaXplLCBzdGF0ZS5wbGF0
Zm9ybUxheWVyU3VyZmFjZUZsYWdzLCBzdGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4pKTsKKyAgICBs
YXllci0+c2V0Q29udGVudHNMYXllcihwbGF0Zm9ybUxheWVyQmFja2luZ1N0b3JlLmdldCgpKTsK
IH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnN5bmNDYW52YXNJZk5lZWRlZChU
ZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJT
dGF0ZSYgc3RhdGUpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c3luY1BsYXRmb3Jt
TGF5ZXJJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCiB7CiAgICAgQVNTRVJUKG1fdGV4dHVyZU1hcHBl
cik7CiAKLSAgICBpZiAoc3RhdGUuY2FudmFzQ2hhbmdlZCkgewotICAgICAgICBkZXN0cm95Q2Fu
dmFzSWZOZWVkZWQobGF5ZXIsIHN0YXRlKTsKLSAgICAgICAgY3JlYXRlQ2FudmFzSWZOZWVkZWQo
bGF5ZXIsIHN0YXRlKTsKKyAgICBpZiAoc3RhdGUucGxhdGZvcm1MYXllckNoYW5nZWQpIHsKKyAg
ICAgICAgZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRlZChsYXllciwgc3RhdGUpOworICAgICAg
ICBjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQobGF5ZXIsIHN0YXRlKTsKICAgICB9CiAKLSAg
ICBpZiAoc3RhdGUuY2FudmFzU2hvdWxkU3dhcEJ1ZmZlcnMpIHsKKyAgICBpZiAoc3RhdGUucGxh
dGZvcm1MYXllclNob3VsZFN3YXBCdWZmZXJzKSB7CiAgICAgICAgIEFTU0VSVChtX3N1cmZhY2VC
YWNraW5nU3RvcmVzLmNvbnRhaW5zKGxheWVyKSk7CiAgICAgICAgIFN1cmZhY2VCYWNraW5nU3Rv
cmVNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zdXJmYWNlQmFja2luZ1N0b3Jlcy5maW5kKGxheWVyKTsK
LSAgICAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlPiBjYW52YXNC
YWNraW5nU3RvcmUgPSBpdC0+dmFsdWU7Ci0gICAgICAgIGNhbnZhc0JhY2tpbmdTdG9yZS0+c3dh
cEJ1ZmZlcnNJZk5lZWRlZChzdGF0ZS5jYW52YXNGcm9udEJ1ZmZlcik7CisgICAgICAgIFJlZlB0
cjxUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZT4gcGxhdGZvcm1MYXllckJhY2tpbmdT
dG9yZSA9IGl0LT52YWx1ZTsKKyAgICAgICAgcGxhdGZvcm1MYXllckJhY2tpbmdTdG9yZS0+c3dh
cEJ1ZmZlcnNJZk5lZWRlZChzdGF0ZS5wbGF0Zm9ybUxheWVyRnJvbnRCdWZmZXIpOwogICAgIH0K
IH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmRlc3Ryb3lDYW52YXNJZk5lZWRl
ZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXJTdGF0ZSYgc3RhdGUpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGVzdHJveVBs
YXRmb3JtTGF5ZXJJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgaWYgKHN0YXRlLmNhbnZh
c1Rva2VuLmlzVmFsaWQoKSkKKyAgICBpZiAoc3RhdGUucGxhdGZvcm1MYXllclRva2VuLmlzVmFs
aWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9zdXJmYWNlQmFja2luZ1N0b3Jlcy5yZW1v
dmUobGF5ZXIpOwpAQCAtMzE5LDcgKzMxOSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lOjpzZXRMYXllclN0YXRlKENvb3JkaW5hdGVkTGF5ZXJJRCBpZCwgY29uc3QgQ29vcmRpCiAj
ZW5kaWYKICAgICBzZXRMYXllckFuaW1hdGlvbnNJZk5lZWRlZChsYXllciwgbGF5ZXJTdGF0ZSk7
CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgc3luY0NhbnZhc0lmTmVlZGVkKGxheWVy
LCBsYXllclN0YXRlKTsKKyAgICBzeW5jUGxhdGZvcm1MYXllcklmTmVlZGVkKGxheWVyLCBsYXll
clN0YXRlKTsKICNlbmRpZgogICAgIHNldExheWVyUmVwYWludENvdW50SWZOZWVkZWQobGF5ZXIs
IGxheWVyU3RhdGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3NTY2VuZS5oCmluZGV4IDc1YTQ3MmQ0ZDEyOWMzMzk3ODFlOTk2N2JjMWQ5YWRj
NGZhYTc4ZGIuLjNkOGMwNDJjMjU0ZWJlM2E3NjliNTdhZjZkMzA3MDhmOTAxZDY2NDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRl
ZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmgK
QEAgLTEwMCw5ICsxMDAsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgdm9pZCBzZXRMYXllckFu
aW1hdGlvbnNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXJTdGF0ZSYpOwogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIHZvaWQg
Y3JlYXRlQ2FudmFzSWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKLSAgICB2b2lkIHN5bmNDYW52YXNJZk5lZWRlZChUZXh0
dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwot
ICAgIHZvaWQgZGVzdHJveUNhbnZhc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CisgICAgdm9pZCBjcmVhdGVQbGF0Zm9y
bUxheWVySWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyU3RhdGUmKTsKKyAgICB2b2lkIHN5bmNQbGF0Zm9ybUxheWVySWZOZWVkZWQoVGV4
dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsK
KyAgICB2b2lkIGRlc3Ryb3lQbGF0Zm9ybUxheWVySWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVy
KiwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKICNlbmRpZgogICAgIHZv
aWQgc2V0TGF5ZXJSZXBhaW50Q291bnRJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25z
dCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
Y29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmgKaW5kZXggZDZjMGFhZTlmMDBm
YWNiYzgyZTUyNzk5NWIxYTA5ZmU5Yjc2YTE0Yi4uNzc1MmE3Zjc0ZmZlODVjNDI2ODhhODIzZmRm
OWI3MGE0M2I1YTk5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGlu
YXRlZEdyYXBoaWNzU3RhdGUuaApAQCAtODksOCArODksOCBAQCBzdHJ1Y3QgQ29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyU3RhdGUgewogICAgICAgICAgICAgYm9vbCBmaWx0ZXJzQ2hhbmdlZDogMTsK
ICAgICAgICAgICAgIGJvb2wgY2hpbGRyZW5DaGFuZ2VkOiAxOwogICAgICAgICAgICAgYm9vbCBy
ZXBhaW50Q291bnRDaGFuZ2VkIDogMTsKLSAgICAgICAgICAgIGJvb2wgY2FudmFzQ2hhbmdlZDog
MTsKLSAgICAgICAgICAgIGJvb2wgY2FudmFzU2hvdWxkU3dhcEJ1ZmZlcnM6IDE7CisgICAgICAg
ICAgICBib29sIHBsYXRmb3JtTGF5ZXJDaGFuZ2VkOiAxOworICAgICAgICAgICAgYm9vbCBwbGF0
Zm9ybUxheWVyU2hvdWxkU3dhcEJ1ZmZlcnM6IDE7CiAgICAgICAgICAgICBib29sIGlzU2Nyb2xs
YWJsZUNoYW5nZWQ6IDE7CiAgICAgICAgICAgICBib29sIGNvbW1pdHRlZFNjcm9sbE9mZnNldENo
YW5nZWQ6IDE7CiAgICAgICAgICAgICBib29sIGNvbnRlbnRzVGlsaW5nQ2hhbmdlZDogMTsKQEAg
LTEzMSw3ICsxMzEsNyBAQCBzdHJ1Y3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUgewog
ICAgICAgICAsIG1hc2soSW52YWxpZENvb3JkaW5hdGVkTGF5ZXJJRCkKICAgICAgICAgLCBpbWFn
ZUlEKEludmFsaWRDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKQogI2lmIFVTRShHUkFQSElDU19T
VVJGQUNFKQotICAgICAgICAsIGNhbnZhc0Zyb250QnVmZmVyKDApCisgICAgICAgICwgcGxhdGZv
cm1MYXllckZyb250QnVmZmVyKDApCiAjZW5kaWYKICAgICB7CiAgICAgfQpAQCAtMTYzLDEwICsx
NjMsMTAgQEAgc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlIHsKICAgICBWZWN0
b3I8VGlsZVVwZGF0ZUluZm8+IHRpbGVzVG9VcGRhdGU7CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VS
RkFDRSkKLSAgICBJbnRTaXplIGNhbnZhc1NpemU7Ci0gICAgR3JhcGhpY3NTdXJmYWNlVG9rZW4g
Y2FudmFzVG9rZW47Ci0gICAgdWludDMyX3QgY2FudmFzRnJvbnRCdWZmZXI7Ci0gICAgR3JhcGhp
Y3NTdXJmYWNlOjpGbGFncyBjYW52YXNTdXJmYWNlRmxhZ3M7CisgICAgSW50U2l6ZSBwbGF0Zm9y
bUxheWVyU2l6ZTsKKyAgICBHcmFwaGljc1N1cmZhY2VUb2tlbiBwbGF0Zm9ybUxheWVyVG9rZW47
CisgICAgdWludDMyX3QgcGxhdGZvcm1MYXllckZyb250QnVmZmVyOworICAgIEdyYXBoaWNzU3Vy
ZmFjZTo6RmxhZ3MgcGxhdGZvcm1MYXllclN1cmZhY2VGbGFnczsKICNlbmRpZgogCiAgICAgSW50
U2l6ZSBjb21taXR0ZWRTY3JvbGxPZmZzZXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGM5OGM3M2ZiYjQ2MDljODg1ZWY4NTIwMWNk
OGJmZjE0NGM2OTBjMjAuLmUxYjRkYWZhZjg0ZWU2M2Q2YzA1ZGNmNzY0Mjk3NjcyMmI3YWEyNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
CkBAIC01ODksMjAgKzU4OSwyMCBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQ29u
ZmlndXJhdGlvbigpCiAgICAgICAgIH0KICNlbHNlCiAgICAgICAgIGlmICghcGx1Z2luVmlld0Jh
c2UtPnNob3VsZE5vdEFkZExheWVyKCkpCi0gICAgICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNl
dENvbnRlbnRzVG9NZWRpYShwbHVnaW5WaWV3QmFzZS0+cGxhdGZvcm1MYXllcigpKTsKKyAgICAg
ICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIocGx1Z2lu
Vmlld0Jhc2UtPnBsYXRmb3JtTGF5ZXIoKSwgR3JhcGhpY3NMYXllcjo6Q29udGVudHNMYXllckZv
clBsdWdpbik7CiAjZW5kaWYKICAgICB9CiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGVsc2UgaWYg
KHJlbmRlcmVyKCkuaXNWaWRlbygpKSB7CiAgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlh
RWxlbWVudCA9IHRvSFRNTE1lZGlhRWxlbWVudChyZW5kZXJlcigpLmVsZW1lbnQoKSk7Ci0gICAg
ICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNUb01lZGlhKG1lZGlhRWxlbWVudC0+cGxh
dGZvcm1MYXllcigpKTsKKyAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RvUGxh
dGZvcm1MYXllcihtZWRpYUVsZW1lbnQtPnBsYXRmb3JtTGF5ZXIoKSwgR3JhcGhpY3NMYXllcjo6
Q29udGVudHNMYXllckZvck1lZGlhKTsKICAgICB9CiAjZW5kaWYKICNpZiBFTkFCTEUoV0VCR0wp
IHx8IEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCiAgICAgZWxzZSBpZiAocmVuZGVyZXIo
KS5pc0NhbnZhcygpICYmIGNhbnZhc0NvbXBvc2l0aW5nU3RyYXRlZ3kocmVuZGVyZXIoKSkgPT0g
Q2FudmFzQXNMYXllckNvbnRlbnRzKSB7CiAgICAgICAgIGNvbnN0IEhUTUxDYW52YXNFbGVtZW50
KiBjYW52YXMgPSB0b0hUTUxDYW52YXNFbGVtZW50KHJlbmRlcmVyKCkuZWxlbWVudCgpKTsKICAg
ICAgICAgaWYgKENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQgPSBjYW52YXMtPnJlbmRl
cmluZ0NvbnRleHQoKSkKLSAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNU
b0NhbnZhcyhjb250ZXh0LT5wbGF0Zm9ybUxheWVyKCkpOworICAgICAgICAgICAgbV9ncmFwaGlj
c0xheWVyLT5zZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihjb250ZXh0LT5wbGF0Zm9ybUxheWVy
KCksIEdyYXBoaWNzTGF5ZXI6OkNvbnRlbnRzTGF5ZXJGb3JDYW52YXMpOwogICAgICAgICBsYXll
ckNvbmZpZ0NoYW5nZWQgPSB0cnVlOwogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0Fy
Z3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZTIxNTZkNTY2
NzNlMTFjOWIzMDdlYjkxZWEyMzVkMmFiYzc4ZmVmNy4uNTRhY2U1OTYxYTY0YWU1ZDljMjA4OTIy
N2RlNmZiZjQ1MTg5OWVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCkBAIC02ODYsMTEgKzY4NiwxMSBAQCB2b2lkIEFyZ3Vt
ZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjplbmNvZGUoQXJndW1lbnRF
bmNvZGVyJiBlbmNvZAogICAgIGVuY29kZXIgPDwgc3RhdGUudGlsZXNUb1VwZGF0ZTsKIAogI2lm
IFVTRShHUkFQSElDU19TVVJGQUNFKQotICAgIGlmIChzdGF0ZS5jYW52YXNDaGFuZ2VkKSB7Ci0g
ICAgICAgIGVuY29kZXIgPDwgc3RhdGUuY2FudmFzU2l6ZTsKLSAgICAgICAgZW5jb2RlciA8PCBz
dGF0ZS5jYW52YXNUb2tlbjsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5jYW52YXNGcm9udEJ1
ZmZlcjsKLSAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5jYW52YXNTdXJmYWNlRmxhZ3M7CisgICAg
aWYgKHN0YXRlLnBsYXRmb3JtTGF5ZXJDaGFuZ2VkKSB7CisgICAgICAgIGVuY29kZXIgPDwgc3Rh
dGUucGxhdGZvcm1MYXllclNpemU7CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGUucGxhdGZvcm1M
YXllclRva2VuOworICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnBsYXRmb3JtTGF5ZXJGcm9udEJ1
ZmZlcjsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5wbGF0Zm9ybUxheWVyU3VyZmFjZUZsYWdz
OwogICAgIH0KICNlbmRpZgogCkBAIC03NzYsMTcgKzc3NiwxNyBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGU+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiBkZWNvZAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFD
RSkKLSAgICBpZiAoc3RhdGUuY2FudmFzQ2hhbmdlZCkgewotICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHN0YXRlLmNhbnZhc1NpemUpKQorICAgIGlmIChzdGF0ZS5wbGF0Zm9ybUxheWVyQ2hh
bmdlZCkgeworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRlLnBsYXRmb3JtTGF5ZXJT
aXplKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHN0YXRlLmNhbnZhc1Rva2VuKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShz
dGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4pKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGUuY2FudmFzRnJvbnRCdWZmZXIpKQorICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRlLnBsYXRmb3JtTGF5ZXJGcm9udEJ1ZmZlcikp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShzdGF0ZS5jYW52YXNTdXJmYWNlRmxhZ3MpKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHN0YXRlLnBsYXRmb3JtTGF5ZXJTdXJmYWNlRmxhZ3MpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237030</attachid>
            <date>2014-08-23 01:43:36 -0700</date>
            <delta_ts>2014-08-23 02:24:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109658-20140823174923.patch</filename>
            <type>text/plain</type>
            <size>41512</size>
            <attacher name="Byungseon Shin">xingri</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcyODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTNjY2YyNzliOWJlOTc1
OTk5MmFlMTIyOTc0NjEyNDI2N2ZiOGI1Zi4uYjg0MTY5MWMwNTU5ZmZiNjk2ODI0MTQ4YTYwNGIz
MDAzZmY4NjRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDE0LTA4LTIzICBCeXVu
Z3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+CisKKyAgICAgICAgVW5pZnkgR3JhcGhpY3NM
YXllcjo6c2V0Q29udGVudHNUb01lZGlhIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk2NTgKKworICAgICAg
ICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCisgCisgICAgICAgIEJhc2VkIG9uIHBhdGNo
IG9yaWdpbmFsbHkgd3JpdHRlbiBieSBUaW0gSG9ydG9uLgorICAgICAgICBNZXJnZSBzZXRDb250
ZW50c1RvTWVkaWEgYW5kIHNldENvbnRlbnRzVG9DYW52YXMgaW50byBzZXRDb250ZW50c1RvUGxh
dGZvcm1MYXllci4KKyAKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgQWRqdXN0
IGV4cG9ydHMuCisgCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5o
OgorICAgICAgICBNb3ZlIENvbnRlbnRzTGF5ZXJQdXJwb3NlIGVudW0gdXAgb3V0IG9mIEdyYXBo
aWNzTGF5ZXIgcGxhdGZvcm0gaW1wbG1lbnRhdGlvbnMKKyAgICAgICAgYW5kIGludG8gR3JhcGhp
Y3NMYXllciwgc28gd2UgY2FuIHVzZSBpdCBhcyBhIHBhcmFtZXRlci4KKyAgICAgICAgQWRkIENv
bnRlbnRzTGF5ZXJGb3JQbHVnaW4uCisgCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
OjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcik6CisgICAgICAgIFJlbW92ZSBzZXRDb250ZW50
c1RvTWVkaWEgYW5kIHNldENvbnRlbnRzVG9DYW52YXMsIGFuZCByZXBsYWNlIHRoZW0KKyAgICAg
ICAgd2l0aCBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllciwgd2hpY2ggcHJldmlvdXNseSBleGlz
dGVkIGJ1dCB3YXMgdW51c2VkCisgICAgICAgIGFuZCBzaW1wbHkgY2FsbGVkIHNldENvbnRlbnRz
VG9NZWRpYS4KKyAgICAgICAgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIgdGFrZXMgYSBDb250
ZW50c0xheWVyUHVycG9zZSwgcHJpbWFyaWx5CisgICAgICAgIHNvIHRoYXQgR3JhcGhpY3NMYXll
ckNBIGNhbiBrbm93IHdoZXRoZXIgaXQgbmVlZHMgdG8gc2V0TmVlZHNEaXNwbGF5CisgICAgICAg
IHRoZSBsYXllciB3aGVuIHBhcmVudGluZyBpdCAoY2FudmFzKSBvciBub3QgKGV2ZXJ5dGhpbmcg
ZWxzZSkuCisgCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNB
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1Bs
YXRmb3JtTGF5ZXIpOgorICAgICAgICBSZW5hbWUgZnVuY3Rpb24gc2V0Q29udGVudHNUb01lZGlh
IC0+IHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyLgorICAgICAgICBSZW5hbWUgYXJndW1lbnQg
bWVkaWFMYXllciAtPiBwbGF0Zm9ybUxheWVyLgorICAgICAgICBTdG9yZSB0aGUgcGFzc2VkLWlu
IENvbnRlbnRzTGF5ZXJQdXJwb3NlLgorICAgICAgICBSZW1vdmUgc2V0Q29udGVudHNUb0NhbnZh
cy4KKyAKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFu
Z2VzQmVmb3JlU3VibGF5ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6
dXBkYXRlQ29udGVudHNQbGF0Zm9ybUxheWVyKToKKyAgICAgICAgUmVtb3ZlIHVwZGF0ZUNvbnRl
bnRzTWVkaWFMYXllciBhbmQgdXBkYXRlQ29udGVudHNDYW52YXMgbGF5ZXIsCisgICAgICAgIGFk
ZCB1cGRhdGVDb250ZW50c1BsYXRmb3JtTGF5ZXIuCisgCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgIERvIHRoZSBzYW1lIHRvIHRoZSBM
YXllckNoYW5nZSBlbnVtLgorIAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb0ltYWdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvUGxhdGZvcm1MYXll
cik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5h
dGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXI6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAg
IChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzTmVlZHNEaXNw
bGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29u
dGVudHNUb1BsYXRmb3JtTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyOjpzeW5jUGxhdGZvcm1MYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OmRlc3Ryb3lQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpjcmVhdGVQbGF0Zm9ybUxheWVy
SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpm
bHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgRm9sZCB0aGVz
ZSB0b2dldGhlciBpbiB0aGUgc2FtZSB3YXkgYXMgZWxzZXdoZXJlLgorIAorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgRG8gdGhlIHNhbWUgdG8gdGhlIExheWVyQ2hhbmdlIGVudW0uCisgCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTY2VuZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNz
U2NlbmU6OmNyZWF0ZVBsYXRmb3JtTGF5ZXJJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpD
b29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OnN5bmNQbGF0Zm9ybUxheWVySWZOZWVkZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpkZXN0cm95UGxhdGZvcm1M
YXllcklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NTY2Vu
ZTo6c2V0TGF5ZXJTdGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlOjpDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSk6CisgICAgICAgIFJlbmFtZSBjYW52YXNMYXllciAtPiBw
bGF0Zm9ybUxheWVyLgorIAorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1
cmF0aW9uKToKKyAgICAgICAgVXNlIHRoZSBuZXcgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIs
IHBhc3NpbmcgaW4gdGhlIHJlbGV2YW50IENvbnRlbnRzTGF5ZXJQdXJwb3NlLgorCiAyMDE0LTA4
LTIzICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2Vi
IEluc3BlY3RvcjogRG8gbm90IGNvcHkgbGFyZ2UgbW9kdWxlIHNvdXJjZSBzdHJpbmdzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKaW5kZXggMWVlNzEzM2IwOGQ4Mzc0MzgwOGRhMTJmMTZkMDcxZGZkNzU1YjZmMy4uNGQ2YTVj
ODY4MGVlMzc5Yjg1NDcwOTFlMzIzOTFhNjViN2MxYWRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDE0LTA4LTIzICBCeXVuZ3Nlb24gU2hpbiAgPHN1bi5zaGluQGxnZS5jb20+Cisg
CisgICAgICAgIFVuaWZ5IEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9NZWRpYSBhbmQgc2V0
Q29udGVudHNUb0NhbnZhcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5NjU4CisgCisgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4K
KyAKKyAgICAgICAgQmFzZWQgb24gcGF0Y2ggb3JpZ2luYWxseSB3cml0dGVuIGJ5IFRpbSBIb3J0
b24uCisgICAgICAgIE1lcmdlIHNldENvbnRlbnRzVG9NZWRpYSBhbmQgc2V0Q29udGVudHNUb0Nh
bnZhcyBpbnRvIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyLgorIAorICAgICAgICAqIFNoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5j
cHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
U3RhdGU+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllclN0YXRlPjo6ZGVjb2RlKToKKyAgICAgICAgUmVuYW1lIGNhbnZhcyAtPiBw
bGF0Zm9ybUxheWVyLgorCiAyMDE0LTA4LTIyICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVA
d2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTcyODY2Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCBjMjlmOWE1NzIzZDgzMTM3Njc2NTdlN2RjYzg3OWJhYjcw
OTkyNTM4Li4zNTRjYzViNTIwNzEzOTNmODQ0YTJlMzdlMGFiZjBjNGMxNjk4ZjQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgpAQCAtNTc4LDEyICs1NzgsMTAgQEAgX19aTjdXZWJDb3JlMTVHcmFwaGlj
c0xheWVyQ0ExN3NldEN1c3RvbUJlaGF2aW9yRU5TXzEzR3JhcGhpY3NMYXllcjE0Q3VzdG9tQmVo
YXYKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTdzdXNwZW5kQW5pbWF0aW9uc0VkCiBf
X1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE4c2V0QmFja2dyb3VuZENvbG9yRVJLTlNfNUNv
bG9yRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOHNldENvbnRlbnRzVG9JbWFnZUVQ
TlNfNUltYWdlRQotX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOHNldENvbnRlbnRzVG9N
ZWRpYUVQN0NBTGF5ZXIKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMThzZXRDb250ZW50
c1Zpc2libGVFYgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOHNldE9wYWNpdHlJbnRl
cm5hbEVmCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE4c2V0UmVwbGljYXRlZExheWVy
RVBOU18xM0dyYXBoaWNzTGF5ZXJFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTE4c2V0
U2hvd0RlYnVnQm9yZGVyRWIKLV9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMTlzZXRDb250
ZW50c1RvQ2FudmFzRVA3Q0FMYXllcgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0ExOXNl
dEN1c3RvbUFwcGVhcmFuY2VFTlNfMTNHcmFwaGljc0xheWVyMTZDdXN0b21BcHBlYXJhbmNlRQog
X19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EyMHNldENoaWxkcmVuVHJhbnNmb3JtRVJLTlNf
MjBUcmFuc2Zvcm1hdGlvbk1hdHJpeEUKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjBz
ZXRSZXBsaWNhdGVkQnlMYXllckVQTlNfMTNHcmFwaGljc0xheWVyRQpAQCAtNTk2LDYgKzU5NCw3
IEBAIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMjNzZXRDb250ZW50c0NsaXBwaW5nUmVj
dEVSS05TXzlGbG9hdFJlY3RFCiBfX1pON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTIzc2V0Q29u
dGVudHNOZWVkc0Rpc3BsYXlFdgogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0EyM3NldENv
bnRlbnRzVG9Tb2xpZENvbG9yRVJLTlNfNUNvbG9yRQogX19aTjdXZWJDb3JlMTVHcmFwaGljc0xh
eWVyQ0EyM3NldERlYnVnQmFja2dyb3VuZENvbG9yRVJLTlNfNUNvbG9yRQorX19aTjdXZWJDb3Jl
MTVHcmFwaGljc0xheWVyQ0EyNnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyRVA3Q0FMYXllck5T
XzEzR3JhcGhpY3NMYXllcjIwQ29udGVudHNMYXllclB1cnBvc2VFCiBfX1pON1dlYkNvcmUxNUdy
YXBoaWNzTGF5ZXJDQTI4cGxhdGZvcm1DQUxheWVyUGFpbnRDb250ZW50c0VQTlNfMTVQbGF0Zm9y
bUNBTGF5ZXJFUk5TXzE1R3JhcGhpY3NDb250ZXh0RVJLTlNfOUZsb2F0UmVjdEUKIF9fWk43V2Vi
Q29yZTE1R3JhcGhpY3NMYXllckNBMjlwbGF0Zm9ybUNBTGF5ZXJBbmltYXRpb25FbmRlZEVSS04z
V1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMzBkZXZpY2VPclBhZ2VT
Y2FsZUZhY3RvckNoYW5nZWRFdgpAQCAtMjA2Miw5ICsyMDYxLDkgQEAgX19aVFZON1dlYkNvcmUy
NURyb3BTaGFkb3dGaWx0ZXJPcGVyYXRpb25FCiBfX1pUVk43V2ViQ29yZTI4SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDhTZXR0aW5nc0UKIF9fWlRWTjdXZWJDb3JlMzFCYXNpY0NvbG9yTWF0
cml4RmlsdGVyT3BlcmF0aW9uRQogX19aVFZON1dlYkNvcmUzN0Jhc2ljQ29tcG9uZW50VHJhbnNm
ZXJGaWx0ZXJPcGVyYXRpb25FCitfX1pUaG4/Pz9fTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0Ey
OHBsYXRmb3JtQ0FMYXllclBhaW50Q29udGVudHNFUE5TXzE1UGxhdGZvcm1DQUxheWVyRVJOU18x
NUdyYXBoaWNzQ29udGV4dEVSS05TXzlGbG9hdFJlY3RFCiBfX1pUaG4/Pz9fTjdXZWJDb3JlMTVH
cmFwaGljc0xheWVyQ0EyOXBsYXRmb3JtQ0FMYXllckFuaW1hdGlvbkVuZGVkRVJLTjNXVEY2U3Ry
aW5nRQogX19aVGhuPz8/X043V2ViQ29yZTE1R3JhcGhpY3NMYXllckNBMzFwbGF0Zm9ybUNBTGF5
ZXJBbmltYXRpb25TdGFydGVkRVJLTjNXVEY2U3RyaW5nRWQKLV9fWlRobj8/P19ON1dlYkNvcmUx
NUdyYXBoaWNzTGF5ZXJDQTI4cGxhdGZvcm1DQUxheWVyUGFpbnRDb250ZW50c0VQTlNfMTVQbGF0
Zm9ybUNBTGF5ZXJFUk5TXzE1R3JhcGhpY3NDb250ZXh0RVJLTlNfOUZsb2F0UmVjdEUKIF9fWlRo
bj8/P19ON1dlYkNvcmUxNUdyYXBoaWNzTGF5ZXJDQTMxcGxhdGZvcm1DQUxheWVyQW5pbWF0aW9u
U3RhcnRlZEVkCiBfX1pUaG4/Pz9fTjdXZWJDb3JlMTVHcmFwaGljc0xheWVyQ0E0MHBsYXRmb3Jt
Q0FMYXllclNldE5lZWRzVG9SZXZhbGlkYXRlVGlsZXNFdgogX19aVGhuPz8/X05LN1dlYkNvcmUx
NUdyYXBoaWNzTGF5ZXJDQTI2cGxhdGZvcm1DQUxheWVyRXhwb3NlZFJlY3RFdgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IGQwMDVh
NmNmZTYwYzM2Nzc5MDI4YzVkMmExOGVkOGRiZTdiYzk0OGQuLjI2ODAwOWM1MWRhZTkxYTY4NTZj
ZDQ4OTE4ZTk1OGQwZjU1NTc5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTI1MSw2ICsyNTEsMTUgQEAgcHVibGljOgogICAg
IC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgY2hpbGQgbGlzdCBjaGFuZ2VkLgogICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgYm9vbCBzZXRDaGlsZHJlbihjb25zdCBWZWN0b3I8R3JhcGhpY3NMYXll
cio+Jik7CiAKKyAgICBlbnVtIENvbnRlbnRzTGF5ZXJQdXJwb3NlIHsKKyAgICAgICAgTm9Db250
ZW50c0xheWVyID0gMCwKKyAgICAgICAgQ29udGVudHNMYXllckZvckltYWdlLAorICAgICAgICBD
b250ZW50c0xheWVyRm9yTWVkaWEsCisgICAgICAgIENvbnRlbnRzTGF5ZXJGb3JDYW52YXMsCisg
ICAgICAgIENvbnRlbnRzTGF5ZXJGb3JCYWNrZ3JvdW5kQ29sb3IsCisgICAgICAgIENvbnRlbnRz
TGF5ZXJGb3JQbHVnaW4KKyAgICB9OworCiAgICAgLy8gQWRkIGNoaWxkIGxheWVycy4gSWYgdGhl
IGNoaWxkIGlzIGFscmVhZHkgcGFyZW50ZWQsIGl0IHdpbGwgYmUgcmVtb3ZlZCBmcm9tIGl0cyBv
bGQgcGFyZW50LgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChHcmFw
aGljc0xheWVyKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGFkZENoaWxkQXRJ
bmRleChHcmFwaGljc0xheWVyKiwgaW50IGluZGV4KTsKQEAgLTQwNSwxNiArNDE0LDEyIEBAIHB1
YmxpYzoKICAgICAvLyBMYXllciBjb250ZW50cwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50
c1RvSW1hZ2UoSW1hZ2UqKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGlyZWN0bHlDb21w
b3NpdGVJbWFnZShJbWFnZSopIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgc2V0Q29udGVudHNUb01lZGlhKFBsYXRmb3JtTGF5ZXIqKSB7IH0gLy8gdmlkZW8gb3IgcGx1
Zy1pbgogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIGNvbnRl
bnRzTGF5ZXJGb3JNZWRpYSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICNlbmRpZgogICAgIC8vIFBh
c3MgYW4gaW52YWxpZCBjb2xvciB0byByZW1vdmUgdGhlIGNvbnRlbnRzIGxheWVyLgogICAgIHZp
cnR1YWwgdm9pZCBzZXRDb250ZW50c1RvU29saWRDb2xvcihjb25zdCBDb2xvciYpIHsgfQotICAg
IHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvQ2FudmFzKFBsYXRmb3JtTGF5ZXIqKSB7IH0KLSAg
ICAvLyBGSVhNRTogd2Via2l0Lm9yZy9iLzEwOTY1OAotICAgIC8vIFNob3VsZCB1bmlmeSBzZXRD
b250ZW50c1RvTWVkaWEgYW5kIHNldENvbnRlbnRzVG9DYW52YXMKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciogbGF5ZXIpIHsgc2V0Q29u
dGVudHNUb01lZGlhKGxheWVyKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1RvUGxh
dGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiwgQ29udGVudHNMYXllclB1cnBvc2UpIHsgfQogICAg
IHZpcnR1YWwgYm9vbCB1c2VzQ29udGVudHNMYXllcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAKICAgICAvLyBDYWxsYmFjayBmcm9tIHRoZSB1bmRlcmx5aW5nIGdyYXBoaWNzIHN5c3RlbSB0
byBkcmF3IGxheWVyIGNvbnRlbnRzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggMmM4ODg3YTY5MDBiNjBk
M2NlNWM4NzFkYTExNDUxNTU2OWFmNjkyYi4uOTY0NmYyNjllZGUzNzI0NjMyNWFhYzU4YzdhZTUx
NTg5MGQ4OTdmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC05MjMsMjQgKzkyMywyNCBAQCB2b2lkIEdy
YXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkKICAgICBub3Rl
TGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ29udGVudHNJbWFnZUNoYW5nZWQpOwogfQogCi12b2lkIEdy
YXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb01lZGlhKFBsYXRmb3JtTGF5ZXIqIG1lZGlhTGF5
ZXIpCit2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxh
dGZvcm1MYXllciogcGxhdGZvcm1MYXllciwgQ29udGVudHNMYXllclB1cnBvc2UgcHVycG9zZSkK
IHsKLSAgICBpZiAobV9jb250ZW50c0xheWVyICYmIG1lZGlhTGF5ZXIgPT0gbV9jb250ZW50c0xh
eWVyLT5wbGF0Zm9ybUxheWVyKCkpCisgICAgaWYgKG1fY29udGVudHNMYXllciAmJiBwbGF0Zm9y
bUxheWVyID09IG1fY29udGVudHNMYXllci0+cGxhdGZvcm1MYXllcigpKQogICAgICAgICByZXR1
cm47Ci0gICAgICAgIAotICAgIC8vIEZJWE1FOiBUaGUgcGFzc2VkIGluIGxheWVyIG1pZ2h0IGJl
IGEgcmF3IGxheWVyIG9yIGFuIGV4dGVybmFsbHkgY3JlYXRlZCAKKworICAgIC8vIEZJWE1FOiBU
aGUgcGFzc2VkIGluIGxheWVyIG1pZ2h0IGJlIGEgcmF3IGxheWVyIG9yIGFuIGV4dGVybmFsbHkg
Y3JlYXRlZAogICAgIC8vIFBsYXRmb3JtQ0FMYXllci4gVG8gZGV0ZXJtaW5lIHRoaXMgd2UgYXR0
ZW1wdCB0byBnZXQgdGhlCiAgICAgLy8gUGxhdGZvcm1DQUxheWVyIHBvaW50ZXIuIElmIHRoaXMg
cmV0dXJucyBhIG51bGwgcG9pbnRlciB3ZSBhc3N1bWUgaXQncwogICAgIC8vIHJhdy4gVGhpcyB0
ZXN0IG1pZ2h0IGJlIGludmFsaWQgaWYgdGhlIHJhdyBsYXllciBpcywgZm9yIGluc3RhbmNlLCB0
aGUKICAgICAvLyBQbGF0Zm9ybUNBTGF5ZXIgaXMgdXNpbmcgYSB1c2VyIGRhdGEgcG9pbnRlciBp
biB0aGUgcmF3IGxheWVyLCBhbmQKICAgICAvLyB0aGUgY3JlYXRvciBvZiB0aGUgcmF3IGxheWVy
IGlzIHVzaW5nIGl0IGZvciBzb21lIG90aGVyIHB1cnBvc2UuCiAgICAgLy8gRm9yIG5vdyB3ZSBk
b24ndCBzdXBwb3J0IHN1Y2ggYSBjYXNlLgotICAgIFBsYXRmb3JtQ0FMYXllciogcGxhdGZvcm1D
QUxheWVyID0gUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIobWVkaWFMYXllcik7Ci0g
ICAgbV9jb250ZW50c0xheWVyID0gbWVkaWFMYXllciA/IChwbGF0Zm9ybUNBTGF5ZXIgPyBwbGF0
Zm9ybUNBTGF5ZXIgOiBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIobWVkaWFMYXllciwgdGhpcykpIDog
MDsKLSAgICBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID0gbWVkaWFMYXllciA/IENvbnRlbnRzTGF5
ZXJGb3JNZWRpYSA6IE5vQ29udGVudHNMYXllcjsKKyAgICBQbGF0Zm9ybUNBTGF5ZXIqIHBsYXRm
b3JtQ0FMYXllciA9IFBsYXRmb3JtQ0FMYXllcjo6cGxhdGZvcm1DQUxheWVyKHBsYXRmb3JtTGF5
ZXIpOworICAgIG1fY29udGVudHNMYXllciA9IHBsYXRmb3JtTGF5ZXIgPyAocGxhdGZvcm1DQUxh
eWVyID8gcGxhdGZvcm1DQUxheWVyIDogY3JlYXRlUGxhdGZvcm1DQUxheWVyKHBsYXRmb3JtTGF5
ZXIsIHRoaXMpKSA6IDA7CisgICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IHBsYXRmb3JtTGF5
ZXIgPyBwdXJwb3NlIDogTm9Db250ZW50c0xheWVyOwogCiAgICAgbm90ZVN1YmxheWVyc0NoYW5n
ZWQoKTsKLSAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ29udGVudHNNZWRpYUxheWVyQ2hh
bmdlZCk7CisgICAgbm90ZUxheWVyUHJvcGVydHlDaGFuZ2VkKENvbnRlbnRzUGxhdGZvcm1MYXll
ckNoYW5nZWQpOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtOTUwLDIwICs5NTAsNiBAQCBQ
bGF0Zm9ybUxheWVyKiBHcmFwaGljc0xheWVyQ0E6OmNvbnRlbnRzTGF5ZXJGb3JNZWRpYSgpIGNv
bnN0CiB9CiAjZW5kaWYKIAotdm9pZCBHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9DYW52
YXMoUGxhdGZvcm1MYXllciogY2FudmFzTGF5ZXIpCi17Ci0gICAgaWYgKG1fY29udGVudHNMYXll
ciAmJiBjYW52YXNMYXllciA9PSBtX2NvbnRlbnRzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSkKLSAg
ICAgICAgcmV0dXJuOwotICAgIAotICAgIC8vIENyZWF0ZSB0aGUgUGxhdGZvcm1DQUxheWVyIHRv
IHdyYXAgdGhlIGluY29taW5nIGxheWVyCi0gICAgbV9jb250ZW50c0xheWVyID0gY2FudmFzTGF5
ZXIgPyBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIoY2FudmFzTGF5ZXIsIHRoaXMpIDogMDsKLSAgICAK
LSAgICBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlID0gY2FudmFzTGF5ZXIgPyBDb250ZW50c0xheWVy
Rm9yQ2FudmFzIDogTm9Db250ZW50c0xheWVyOwotCi0gICAgbm90ZVN1YmxheWVyc0NoYW5nZWQo
KTsKLSAgICBub3RlTGF5ZXJQcm9wZXJ0eUNoYW5nZWQoQ29udGVudHNDYW52YXNMYXllckNoYW5n
ZWQpOwotfQotICAgIAogdm9pZCBHcmFwaGljc0xheWVyQ0E6OmxheWVyRGlkRGlzcGxheShQbGF0
Zm9ybUNBTGF5ZXIqIGxheWVyKQogewogICAgIExheWVyTWFwKiBsYXllckNsb25lTWFwOwpAQCAt
MTMwOCwxMSArMTI5NCw4IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5n
ZXNCZWZvcmVTdWJsYXllcnMoQ29tbWl0U3RhdGUmIGNvbW1pdFN0YXRlCiAgICAgaWYgKG1fdW5j
b21taXR0ZWRDaGFuZ2VzICYgQ29udGVudHNJbWFnZUNoYW5nZWQpIC8vIE5lZWRzIHRvIGhhcHBl
biBiZWZvcmUgQ2hpbGRyZW5DaGFuZ2VkCiAgICAgICAgIHVwZGF0ZUNvbnRlbnRzSW1hZ2UoKTsK
ICAgICAgICAgCi0gICAgaWYgKG1fdW5jb21taXR0ZWRDaGFuZ2VzICYgQ29udGVudHNNZWRpYUxh
eWVyQ2hhbmdlZCkgLy8gTmVlZHMgdG8gaGFwcGVuIGJlZm9yZSBDaGlsZHJlbkNoYW5nZWQKLSAg
ICAgICAgdXBkYXRlQ29udGVudHNNZWRpYUxheWVyKCk7Ci0gICAgCi0gICAgaWYgKG1fdW5jb21t
aXR0ZWRDaGFuZ2VzICYgQ29udGVudHNDYW52YXNMYXllckNoYW5nZWQpIC8vIE5lZWRzIHRvIGhh
cHBlbiBiZWZvcmUgQ2hpbGRyZW5DaGFuZ2VkCi0gICAgICAgIHVwZGF0ZUNvbnRlbnRzQ2FudmFz
TGF5ZXIoKTsKKyAgICBpZiAobV91bmNvbW1pdHRlZENoYW5nZXMgJiBDb250ZW50c1BsYXRmb3Jt
TGF5ZXJDaGFuZ2VkKSAvLyBOZWVkcyB0byBoYXBwZW4gYmVmb3JlIENoaWxkcmVuQ2hhbmdlZAor
ICAgICAgICB1cGRhdGVDb250ZW50c1BsYXRmb3JtTGF5ZXIoKTsKIAogICAgIGlmIChtX3VuY29t
bWl0dGVkQ2hhbmdlcyAmIENvbnRlbnRzQ29sb3JMYXllckNoYW5nZWQpIC8vIE5lZWRzIHRvIGhh
cHBlbiBiZWZvcmUgQ2hpbGRyZW5DaGFuZ2VkCiAgICAgICAgIHVwZGF0ZUNvbnRlbnRzQ29sb3JM
YXllcigpOwpAQCAtMTk0MSwyNCArMTkyNCwxNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBk
YXRlQ29udGVudHNJbWFnZSgpCiAgICAgfQogfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBk
YXRlQ29udGVudHNNZWRpYUxheWVyKCkKK3ZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250
ZW50c1BsYXRmb3JtTGF5ZXIoKQogewotICAgIGlmICghbV9jb250ZW50c0xheWVyIHx8IG1fY29u
dGVudHNMYXllclB1cnBvc2UgIT0gQ29udGVudHNMYXllckZvck1lZGlhKQorICAgIGlmICghbV9j
b250ZW50c0xheWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBWaWRlbyBsYXllciB3YXMg
c2V0IGFzIG1fY29udGVudHNMYXllciwgYW5kIHdpbGwgZ2V0IHBhcmVudGVkIGluIHVwZGF0ZVN1
YmxheWVyTGlzdCgpLgorICAgIC8vIFBsYXRmb3JtIGxheWVyIHdhcyBzZXQgYXMgbV9jb250ZW50
c0xheWVyLCBhbmQgd2lsbCBnZXQgcGFyZW50ZWQgaW4gdXBkYXRlU3VibGF5ZXJMaXN0KCkuCiAg
ICAgc2V0dXBDb250ZW50c0xheWVyKG1fY29udGVudHNMYXllci5nZXQoKSk7Ci0gICAgdXBkYXRl
Q29udGVudHNSZWN0cygpOwotfQogCi12b2lkIEdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVu
dHNDYW52YXNMYXllcigpCi17Ci0gICAgaWYgKCFtX2NvbnRlbnRzTGF5ZXIgfHwgbV9jb250ZW50
c0xheWVyUHVycG9zZSAhPSBDb250ZW50c0xheWVyRm9yQ2FudmFzKQotICAgICAgICByZXR1cm47
CisgICAgaWYgKG1fY29udGVudHNMYXllclB1cnBvc2UgPT0gQ29udGVudHNMYXllckZvckNhbnZh
cykKKyAgICAgICAgbV9jb250ZW50c0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKIAotICAgIC8v
IENhbnZhc0xheWVyIHdhcyBzZXQgYXMgbV9jb250ZW50c0xheWVyLCBhbmQgd2lsbCBnZXQgcGFy
ZW50ZWQgaW4gdXBkYXRlU3VibGF5ZXJMaXN0KCkuCi0gICAgc2V0dXBDb250ZW50c0xheWVyKG1f
Y29udGVudHNMYXllci5nZXQoKSk7Ci0gICAgbV9jb250ZW50c0xheWVyLT5zZXROZWVkc0Rpc3Bs
YXkoKTsKICAgICB1cGRhdGVDb250ZW50c1JlY3RzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKaW5kZXggYmQy
MjAxMTBkZTk2OTdmNWYzMTAyNjc4YzMyNWMyOWZmZDA4MGVkNi4uYjIwNGY0YzNmZDdiYjg1NmUz
YzFhYmUxMThmYTExYjM5ODliYTZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmgKQEAgLTEyNiwxMSArMTI2LDEwIEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgcmVtb3ZlQW5pbWF0aW9u
KGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSkgb3ZlcnJpZGU7CiAKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0ltYWdlKEltYWdlKikgb3ZlcnJpZGU7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9NZWRpYShQbGF0Zm9y
bUxheWVyKikgb3ZlcnJpZGU7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JU
IHZpcnR1YWwgUGxhdGZvcm1MYXllciogY29udGVudHNMYXllckZvck1lZGlhKCkgY29uc3Qgb3Zl
cnJpZGU7CiAjZW5kaWYKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgc2V0Q29udGVu
dHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVyKikgb3ZlcnJpZGU7CisgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqLCBD
b250ZW50c0xheWVyUHVycG9zZSkgb3ZlcnJpZGU7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB2b2lkIHNldENvbnRlbnRzVG9Tb2xpZENvbG9yKGNvbnN0IENvbG9yJikgb3ZlcnJpZGU7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbnRlbnRzTGF5ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlICE9IE5vQ29udGVudHNMYXllcjsgfQpAQCAtMzc0
LDggKzM3Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVCYWNrZ3JvdW5kQ29sb3IoKTsK
IAogICAgIHZvaWQgdXBkYXRlQ29udGVudHNJbWFnZSgpOwotICAgIHZvaWQgdXBkYXRlQ29udGVu
dHNNZWRpYUxheWVyKCk7Ci0gICAgdm9pZCB1cGRhdGVDb250ZW50c0NhbnZhc0xheWVyKCk7Cisg
ICAgdm9pZCB1cGRhdGVDb250ZW50c1BsYXRmb3JtTGF5ZXIoKTsKICAgICB2b2lkIHVwZGF0ZUNv
bnRlbnRzQ29sb3JMYXllcigpOwogICAgIHZvaWQgdXBkYXRlQ29udGVudHNSZWN0cygpOwogICAg
IHZvaWQgdXBkYXRlTWFza0xheWVyKCk7CkBAIC00MjksMjQgKzQyNywyMyBAQCBwcml2YXRlOgog
ICAgICAgICBBbmltYXRpb25DaGFuZ2VkID0gMUxMVSA8PCAxMywKICAgICAgICAgRGlydHlSZWN0
c0NoYW5nZWQgPSAxTExVIDw8IDE0LAogICAgICAgICBDb250ZW50c0ltYWdlQ2hhbmdlZCA9IDFM
TFUgPDwgMTUsCi0gICAgICAgIENvbnRlbnRzTWVkaWFMYXllckNoYW5nZWQgPSAxTExVIDw8IDE2
LAotICAgICAgICBDb250ZW50c0NhbnZhc0xheWVyQ2hhbmdlZCA9IDFMTFUgPDwgMTcsCi0gICAg
ICAgIENvbnRlbnRzQ29sb3JMYXllckNoYW5nZWQgPSAxTExVIDw8IDE4LAotICAgICAgICBDb250
ZW50c1JlY3RzQ2hhbmdlZCA9IDFMTFUgPDwgMTksCi0gICAgICAgIE1hc2tMYXllckNoYW5nZWQg
PSAxTExVIDw8IDIwLAotICAgICAgICBSZXBsaWNhdGVkTGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAy
MSwKLSAgICAgICAgQ29udGVudHNOZWVkc0Rpc3BsYXkgPSAxTExVIDw8IDIyLAotICAgICAgICBB
Y2NlbGVyYXRlc0RyYXdpbmdDaGFuZ2VkID0gMUxMVSA8PCAyMywKLSAgICAgICAgQ29udGVudHNT
Y2FsZUNoYW5nZWQgPSAxTExVIDw8IDI0LAotICAgICAgICBDb250ZW50c1Zpc2liaWxpdHlDaGFu
Z2VkID0gMUxMVSA8PCAyNSwKLSAgICAgICAgVmlzaWJsZVJlY3RDaGFuZ2VkID0gMUxMVSA8PCAy
NiwKLSAgICAgICAgRmlsdGVyc0NoYW5nZWQgPSAxTExVIDw8IDI3LAotICAgICAgICBUaWxpbmdB
cmVhQ2hhbmdlZCA9IDFMTFUgPDwgMjgsCi0gICAgICAgIFRpbGVzQWRkZWQgPSAxTExVIDwgMjks
Ci0gICAgICAgIERlYnVnSW5kaWNhdG9yc0NoYW5nZWQgPSAxTExVIDw8IDMwLAotICAgICAgICBD
dXN0b21BcHBlYXJhbmNlQ2hhbmdlZCA9IDFMTFUgPDwgMzEsCi0gICAgICAgIEN1c3RvbUJlaGF2
aW9yQ2hhbmdlZCA9IDFMTFUgPDwgMzIsCi0gICAgICAgIEJsZW5kTW9kZUNoYW5nZWQgPSAxTExV
IDw8IDMzCisgICAgICAgIENvbnRlbnRzUGxhdGZvcm1MYXllckNoYW5nZWQgPSAxTExVIDw8IDE2
LAorICAgICAgICBDb250ZW50c0NvbG9yTGF5ZXJDaGFuZ2VkID0gMUxMVSA8PCAxNywKKyAgICAg
ICAgQ29udGVudHNSZWN0c0NoYW5nZWQgPSAxTExVIDw8IDE4LAorICAgICAgICBNYXNrTGF5ZXJD
aGFuZ2VkID0gMUxMVSA8PCAxOSwKKyAgICAgICAgUmVwbGljYXRlZExheWVyQ2hhbmdlZCA9IDFM
TFUgPDwgMjAsCisgICAgICAgIENvbnRlbnRzTmVlZHNEaXNwbGF5ID0gMUxMVSA8PCAyMSwKKyAg
ICAgICAgQWNjZWxlcmF0ZXNEcmF3aW5nQ2hhbmdlZCA9IDFMTFUgPDwgMjIsCisgICAgICAgIENv
bnRlbnRzU2NhbGVDaGFuZ2VkID0gMUxMVSA8PCAyMywKKyAgICAgICAgQ29udGVudHNWaXNpYmls
aXR5Q2hhbmdlZCA9IDFMTFUgPDwgMjQsCisgICAgICAgIFZpc2libGVSZWN0Q2hhbmdlZCA9IDFM
TFUgPDwgMjUsCisgICAgICAgIEZpbHRlcnNDaGFuZ2VkID0gMUxMVSA8PCAyNiwKKyAgICAgICAg
VGlsaW5nQXJlYUNoYW5nZWQgPSAxTExVIDw8IDI3LAorICAgICAgICBUaWxlc0FkZGVkID0gMUxM
VSA8IDI4LAorICAgICAgICBEZWJ1Z0luZGljYXRvcnNDaGFuZ2VkID0gMUxMVSA8PCAyOSwKKyAg
ICAgICAgQ3VzdG9tQXBwZWFyYW5jZUNoYW5nZWQgPSAxTExVIDw8IDMwLAorICAgICAgICBDdXN0
b21CZWhhdmlvckNoYW5nZWQgPSAxTExVIDw8IDMxLAorICAgICAgICBCbGVuZE1vZGVDaGFuZ2Vk
ID0gMUxMVSA8PCAzMgogICAgIH07CiAgICAgdHlwZWRlZiB1aW50NjRfdCBMYXllckNoYW5nZUZs
YWdzOwogICAgIGVudW0gU2NoZWR1bGVGbHVzaE9yTm90IHsgU2NoZWR1bGVGbHVzaCwgRG9udFNj
aGVkdWxlRmx1c2ggfTsKQEAgLTQ3MywxNCArNDcwLDYgQEAgcHJpdmF0ZToKICAgICBGbG9hdFJl
Y3QgbV92aXNpYmxlUmVjdDsKICAgICBGbG9hdFNpemUgbV9zaXplQXRMYXN0VmlzaWJsZVJlY3RV
cGRhdGU7CiAgICAgCi0gICAgZW51bSBDb250ZW50c0xheWVyUHVycG9zZSB7Ci0gICAgICAgIE5v
Q29udGVudHNMYXllciA9IDAsCi0gICAgICAgIENvbnRlbnRzTGF5ZXJGb3JJbWFnZSwKLSAgICAg
ICAgQ29udGVudHNMYXllckZvck1lZGlhLAotICAgICAgICBDb250ZW50c0xheWVyRm9yQ2FudmFz
LAotICAgICAgICBDb250ZW50c0xheWVyRm9yQmFja2dyb3VuZENvbG9yCi0gICAgfTsKLSAgICAK
ICAgICBDb250ZW50c0xheWVyUHVycG9zZSBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlOwogICAgIGJv
b2wgbV9pc1BhZ2VUaWxlZEJhY2tpbmdMYXllciA6IDE7CiAgICAgYm9vbCBtX25lZWRzRnVsbFJl
cGFpbnQgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKaW5k
ZXggZjM3YjM5OTkxZTFkNThiYjdkMjZhNThjOTYxYjBkNTJlNzhlZGNhYy4uOTM1N2EyODc5MWEy
OWI1NjM2ZWFmZjJiMGI5MjRiOWM3NWY3NTJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIuY3BwCkBAIC0zNzEsMTcgKzM3MSwxNyBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvSW1hZ2UoSW1hZ2UqIGltYWdlKQogICAgICAg
ICBtX2NvbXBvc2l0ZWRJbWFnZSA9IDA7CiAgICAgfQogCi0gICAgc2V0Q29udGVudHNUb01lZGlh
KG1fY29tcG9zaXRlZEltYWdlLmdldCgpKTsKKyAgICBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXll
cihtX2NvbXBvc2l0ZWRJbWFnZS5nZXQoKSwgQ29udGVudHNMYXllckZvckltYWdlKTsKICAgICBu
b3RpZnlDaGFuZ2UoQ29udGVudENoYW5nZSk7CiAgICAgR3JhcGhpY3NMYXllcjo6c2V0Q29udGVu
dHNUb0ltYWdlKGltYWdlKTsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6
c2V0Q29udGVudHNUb01lZGlhKFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyKiBtZWRpYSkKK3Zv
aWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVy
KFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyKiBtZWRpYSwgQ29udGVudHNMYXllclB1cnBvc2Ug
cHVycG9zZSkKIHsKICAgICBpZiAobWVkaWEgPT0gbV9jb250ZW50c0xheWVyKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBHcmFwaGljc0xheWVyOjpzZXRDb250ZW50c1RvTWVkaWEobWVkaWEpOwor
ICAgIEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKG1lZGlhLCBwdXJw
b3NlKTsKICAgICBub3RpZnlDaGFuZ2UoQ29udGVudENoYW5nZSk7CiAKICAgICBpZiAobV9jb250
ZW50c0xheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAppbmRleCBj
YWNlY2IzNzYzMjljMjA0NTVhZGExZWEzMjg3ZDk1YWM1NTQyMjgyLi44MmY4Y2FiNWU5ZGU0MWJl
YjYzYTIzZGI5MDk5NTkzZDUyY2Q4OTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXIuaApAQCAtNjgsOCArNjgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dENvbnRlbnRzVG9JbWFnZShJbWFnZSopOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1Rv
U29saWRDb2xvcihjb25zdCBDb2xvciYpOwogICAgIENvbG9yIHNvbGlkQ29sb3IoKSBjb25zdCB7
IHJldHVybiBtX3NvbGlkQ29sb3I7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb01l
ZGlhKFBsYXRmb3JtTGF5ZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb0NhbnZh
cyhQbGF0Zm9ybUxheWVyKiBjYW52YXMpIHsgc2V0Q29udGVudHNUb01lZGlhKGNhbnZhcyk7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXll
ciosIENvbnRlbnRzTGF5ZXJQdXJwb3NlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd0RlYnVn
Qm9yZGVyKGJvb2wpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZWJ1Z0JvcmRlcihj
b25zdCBDb2xvciYsIGZsb2F0IHdpZHRoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wpIG92ZXJyaWRlOwpAQCAtMTEyLDcgKzExMSw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBwcmVwYXJlQmFja2luZ1N0b3JlSWZOZWVkZWQoKTsKICAgICBib29s
IHNob3VsZEhhdmVCYWNraW5nU3RvcmUoKSBjb25zdDsKIAotICAgIHZpcnR1YWwgdm9pZCBwbGF0
Zm9ybUxheWVyV2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGUgeyBzZXRDb250ZW50c1RvTWVkaWEo
MCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcGxhdGZvcm1MYXllcldpbGxCZURlc3Ryb3llZCgpIG92
ZXJyaWRlIHsgc2V0Q29udGVudHNUb1BsYXRmb3JtTGF5ZXIoMCwgTm9Db250ZW50c0xheWVyKTsg
fQogICAgIHZpcnR1YWwgdm9pZCBzZXRQbGF0Zm9ybUxheWVyTmVlZHNEaXNwbGF5KCkgb3ZlcnJp
ZGUgeyBzZXRDb250ZW50c05lZWRzRGlzcGxheSgpOyB9CiAKICAgICAvLyBUaGlzIHNldCBvZiBm
bGFncyBoZWxwIHVzIGRlZmVyIHdoaWNoIHByb3BlcnRpZXMgb2YgdGhlIGxheWVyIGhhdmUgYmVl
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nv
b3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcAppbmRleCA1NDY4MDc1ZmUyMWZlODQ4NmQ4Nzc5NDAxNTI5YzNkMWZjMDQ5NGFhLi42
YTUyOTU5OGE0ZTMzNzBjMGEzYjQ2ZjExMThmZmNkNGNkMWEzNGU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAtMTIx
LDEyICsxMjEsMTIgQEAgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQogICAgICwgbV9wZW5kaW5nQ29u
dGVudHNTY2FsZUFkanVzdG1lbnQoZmFsc2UpCiAgICAgLCBtX3BlbmRpbmdWaXNpYmxlUmVjdEFk
anVzdG1lbnQoZmFsc2UpCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgLCBtX2lzVmFs
aWRDYW52YXMoZmFsc2UpCi0gICAgLCBtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24oTm9uZSkKKyAg
ICAsIG1faXNWYWxpZFBsYXRmb3JtTGF5ZXIoZmFsc2UpCisgICAgLCBtX3BlbmRpbmdQbGF0Zm9y
bUxheWVyT3BlcmF0aW9uKE5vbmUpCiAjZW5kaWYKICAgICAsIG1fY29vcmRpbmF0b3IoMCkKICAg
ICAsIG1fY29tcG9zaXRlZE5hdGl2ZUltYWdlUHRyKDApCi0gICAgLCBtX2NhbnZhc1BsYXRmb3Jt
TGF5ZXIoMCkKKyAgICAsIG1fcGxhdGZvcm1MYXllcigwKQogICAgICwgbV9hbmltYXRpb25TdGFy
dGVkVGltZXIodGhpcywgJkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6YW5pbWF0aW9uU3RhcnRl
ZFRpbWVyRmlyZWQpCiAgICAgLCBtX3Njcm9sbGFibGVBcmVhKDApCiB7CkBAIC0zODMsMzYgKzM4
MywzNyBAQCBib29sIEdyYXBoaWNzTGF5ZXI6OnN1cHBvcnRzQ29udGVudHNUaWxpbmcoKQogdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRlbnRzTmVlZHNEaXNwbGF5KCkKIHsK
ICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICBpZiAobV9jYW52YXNQbGF0Zm9ybUxheWVy
KQotICAgICAgICBtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24gfD0gU3luY0NhbnZhczsKKyAgICBp
ZiAobV9wbGF0Zm9ybUxheWVyKQorICAgICAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0
aW9uIHw9IFN5bmNQbGF0Zm9ybUxheWVyOwogI2VuZGlmCiAKICAgICBub3RpZnlGbHVzaFJlcXVp
cmVkKCk7CiAgICAgYWRkUmVwYWludFJlY3QoY29udGVudHNSZWN0KCkpOwogfQogCi12b2lkIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNUb0NhbnZhcyhQbGF0Zm9ybUxheWVy
KiBwbGF0Zm9ybUxheWVyKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldENvbnRl
bnRzVG9QbGF0Zm9ybUxheWVyKFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIsIENvbnRlbnRz
TGF5ZXJQdXJwb3NlIHB1cnBvc2UpCiB7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAg
aWYgKG1fY2FudmFzUGxhdGZvcm1MYXllcikgewotICAgICAgICBBU1NFUlQobV9jYW52YXNUb2tl
bi5pc1ZhbGlkKCkpOworICAgIGlmIChtX3BsYXRmb3JtTGF5ZXIpIHsKKyAgICAgICAgQVNTRVJU
KG1fcGxhdGZvcm1MYXllclRva2VuLmlzVmFsaWQoKSk7CiAgICAgICAgIGlmICghcGxhdGZvcm1M
YXllcikgewotICAgICAgICAgICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHw9IERlc3Ryb3lD
YW52YXM7Ci0gICAgICAgICAgICBtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24gJj0gfkNyZWF0ZUNh
bnZhczsKLSAgICAgICAgfSAgZWxzZSBpZiAoKG1fY2FudmFzU2l6ZSAhPSBwbGF0Zm9ybUxheWVy
LT5wbGF0Zm9ybUxheWVyU2l6ZSgpKSB8fCAobV9jYW52YXNUb2tlbiAhPSBwbGF0Zm9ybUxheWVy
LT5ncmFwaGljc1N1cmZhY2VUb2tlbigpKSkgewotICAgICAgICAgICAgLy8gbV9jYW52YXNUb2tl
biBjYW4gYmUgZGlmZmVyZW50IHRvIHBsYXRmb3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZVRva2Vu
KCksIGV2ZW4gaWYgbV9jYW52YXNQbGF0Zm9ybUxheWVyIGVxdWFscyBwbGF0Zm9ybUxheWVyLgot
ICAgICAgICAgICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHw9IFJlY3JlYXRlQ2FudmFzOwor
ICAgICAgICAgICAgbV9wZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlvbiB8PSBEZXN0cm95UGxh
dGZvcm1MYXllcjsKKyAgICAgICAgICAgIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24g
Jj0gfkNyZWF0ZVBsYXRmb3JtTGF5ZXI7CisgICAgICAgIH0gIGVsc2UgaWYgKChtX3BsYXRmb3Jt
TGF5ZXJTaXplICE9IHBsYXRmb3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCkpIHx8IChtX3Bs
YXRmb3JtTGF5ZXJUb2tlbiAhPSBwbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZhY2VUb2tlbigp
KSkgeworICAgICAgICAgICAgLy8gbV9wbGF0Zm9ybUxheWVyVG9rZW4gY2FuIGJlIGRpZmZlcmVu
dCB0byBwbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZhY2VUb2tlbigpLCBldmVuIGlmIG1fcGxh
dGZvcm1MYXllciBlcXVhbHMgcGxhdGZvcm1MYXllci4KKyAgICAgICAgICAgIG1fcGVuZGluZ1Bs
YXRmb3JtTGF5ZXJPcGVyYXRpb24gfD0gUmVjcmVhdGVQbGF0Zm9ybUxheWVyOwogICAgICAgICB9
CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKHBsYXRmb3JtTGF5ZXIpCi0gICAgICAgICAgICBt
X3BlbmRpbmdDYW52YXNPcGVyYXRpb24gfD0gQ3JlYXRlQW5kU3luY0NhbnZhczsKKyAgICAgICAg
ICAgIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gfD0gQ3JlYXRlQW5kU3luY1BsYXRm
b3JtTGF5ZXI7CiAgICAgfQogCi0gICAgbV9jYW52YXNQbGF0Zm9ybUxheWVyID0gcGxhdGZvcm1M
YXllcjsKLSAgICAvLyBtX2NhbnZhc1Rva2VuIGlzIHVwZGF0ZWQgb25seSBoZXJlLiBJbiBkZXRh
aWwsIHdoZW4gR3JhcGhpY3NDb250ZXh0M0QgaXMgY2hhbmdlZCBvciByZXNoYXBlZCwgbV9jYW52
YXNUb2tlbiBpcyBjaGFuZ2VkIGFuZCBzZXRDb250ZW50c1RvQ2FudmFzKCkgaXMgYWx3YXlzIGNh
bGxlZC4KLSAgICBtX2NhbnZhc1NpemUgPSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgPyBtX2NhbnZh
c1BsYXRmb3JtTGF5ZXItPnBsYXRmb3JtTGF5ZXJTaXplKCkgOiBJbnRTaXplKCk7Ci0gICAgbV9j
YW52YXNUb2tlbiA9IG1fY2FudmFzUGxhdGZvcm1MYXllciA/IG1fY2FudmFzUGxhdGZvcm1MYXll
ci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKSA6IEdyYXBoaWNzU3VyZmFjZVRva2VuKCk7Ci0gICAg
QVNTRVJUKCEoIW1fY2FudmFzVG9rZW4uaXNWYWxpZCgpICYmIG1fY2FudmFzUGxhdGZvcm1MYXll
cikpOworICAgIG1fcGxhdGZvcm1MYXllciA9IHBsYXRmb3JtTGF5ZXI7CisgICAgLy8gbV9wbGF0
Zm9ybUxheWVyVG9rZW4gaXMgdXBkYXRlZCBvbmx5IGhlcmUuIAorICAgIC8vIEluIGRldGFpbCwg
d2hlbiBHcmFwaGljc0NvbnRleHQzRCBpcyBjaGFuZ2VkIG9yIHJlc2hhcGVkLCBtX3BsYXRmb3Jt
TGF5ZXJUb2tlbiBpcyBjaGFuZ2VkIGFuZCBzZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcigpIGlz
IGFsd2F5cyBjYWxsZWQuCisgICAgbV9wbGF0Zm9ybUxheWVyU2l6ZSA9IG1fcGxhdGZvcm1MYXll
ciA/IG1fcGxhdGZvcm1MYXllci0+cGxhdGZvcm1MYXllclNpemUoKSA6IEludFNpemUoKTsKKyAg
ICBtX3BsYXRmb3JtTGF5ZXJUb2tlbiA9IG1fcGxhdGZvcm1MYXllciA/IG1fcGxhdGZvcm1MYXll
ci0+Z3JhcGhpY3NTdXJmYWNlVG9rZW4oKSA6IEdyYXBoaWNzU3VyZmFjZVRva2VuKCk7CisgICAg
QVNTRVJUKCEoIW1fcGxhdGZvcm1MYXllclRva2VuLmlzVmFsaWQoKSAmJiBtX3BsYXRmb3JtTGF5
ZXIpKTsKIAogICAgIG5vdGlmeUZsdXNoUmVxdWlyZWQoKTsKICNlbHNlCkBAIC03MjAsNTMgKzcy
MSw1MyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0FuaW1hdGlvbnMoKQog
fQogCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjo6c3luY0NhbnZhcygpCit2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY1Bs
YXRmb3JtTGF5ZXIoKQogewotICAgIGRlc3Ryb3lDYW52YXNJZk5lZWRlZCgpOwotICAgIGNyZWF0
ZUNhbnZhc0lmTmVlZGVkKCk7CisgICAgZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRlZCgpOwor
ICAgIGNyZWF0ZVBsYXRmb3JtTGF5ZXJJZk5lZWRlZCgpOwogCi0gICAgaWYgKCEobV9wZW5kaW5n
Q2FudmFzT3BlcmF0aW9uICYgU3luY0NhbnZhcykpCisgICAgaWYgKCEobV9wZW5kaW5nUGxhdGZv
cm1MYXllck9wZXJhdGlvbiAmIFN5bmNQbGF0Zm9ybUxheWVyKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV9wZW5kaW5nQ2FudmFzT3BlcmF0aW9uICY9IH5TeW5jQ2FudmFzOworICAgIG1fcGVu
ZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gJj0gflN5bmNQbGF0Zm9ybUxheWVyOwogCi0gICAg
aWYgKCFtX2lzVmFsaWRDYW52YXMpCisgICAgaWYgKCFtX2lzVmFsaWRQbGF0Zm9ybUxheWVyKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQobV9jYW52YXNQbGF0Zm9ybUxheWVyKTsKLSAg
ICBtX2xheWVyU3RhdGUuY2FudmFzRnJvbnRCdWZmZXIgPSBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIt
PmNvcHlUb0dyYXBoaWNzU3VyZmFjZSgpOwotICAgIG1fbGF5ZXJTdGF0ZS5jYW52YXNTaG91bGRT
d2FwQnVmZmVycyA9IHRydWU7CisgICAgQVNTRVJUKG1fcGxhdGZvcm1MYXllcik7CisgICAgbV9s
YXllclN0YXRlLnBsYXRmb3JtTGF5ZXJGcm9udEJ1ZmZlciA9IG1fcGxhdGZvcm1MYXllci0+Y29w
eVRvR3JhcGhpY3NTdXJmYWNlKCk7CisgICAgbV9sYXllclN0YXRlLnBsYXRmb3JtTGF5ZXJTaG91
bGRTd2FwQnVmZmVycyA9IHRydWU7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjpkZXN0cm95Q2FudmFzSWZOZWVkZWQoKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OmRlc3Ryb3lQbGF0Zm9ybUxheWVySWZOZWVkZWQoKQogewotICAgIGlmICghKG1fcGVuZGluZ0Nh
bnZhc09wZXJhdGlvbiAmIERlc3Ryb3lDYW52YXMpKQorICAgIGlmICghKG1fcGVuZGluZ1BsYXRm
b3JtTGF5ZXJPcGVyYXRpb24gJiBEZXN0cm95UGxhdGZvcm1MYXllcikpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmIChtX2lzVmFsaWRDYW52YXMpIHsKLSAgICAgICAgbV9pc1ZhbGlkQ2FudmFz
ID0gZmFsc2U7Ci0gICAgICAgIG1fbGF5ZXJTdGF0ZS5jYW52YXNUb2tlbiA9IEdyYXBoaWNzU3Vy
ZmFjZVRva2VuKCk7Ci0gICAgICAgIG1fbGF5ZXJTdGF0ZS5jYW52YXNDaGFuZ2VkID0gdHJ1ZTsK
KyAgICBpZiAobV9pc1ZhbGlkUGxhdGZvcm1MYXllcikgeworICAgICAgICBtX2lzVmFsaWRQbGF0
Zm9ybUxheWVyID0gZmFsc2U7CisgICAgICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyVG9r
ZW4gPSBHcmFwaGljc1N1cmZhY2VUb2tlbigpOworICAgICAgICBtX2xheWVyU3RhdGUucGxhdGZv
cm1MYXllckNoYW5nZWQgPSB0cnVlOwogICAgIH0KIAotICAgIG1fcGVuZGluZ0NhbnZhc09wZXJh
dGlvbiAmPSB+RGVzdHJveUNhbnZhczsKKyAgICBtX3BlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0
aW9uICY9IH5EZXN0cm95UGxhdGZvcm1MYXllcjsKIH0KIAotdm9pZCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmNyZWF0ZUNhbnZhc0lmTmVlZGVkKCkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyOjpjcmVhdGVQbGF0Zm9ybUxheWVySWZOZWVkZWQoKQogewotICAgIGlmICghKG1fcGVu
ZGluZ0NhbnZhc09wZXJhdGlvbiAmIENyZWF0ZUNhbnZhcykpCisgICAgaWYgKCEobV9wZW5kaW5n
UGxhdGZvcm1MYXllck9wZXJhdGlvbiAmIENyZWF0ZVBsYXRmb3JtTGF5ZXIpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBBU1NFUlQobV9jYW52YXNQbGF0Zm9ybUxheWVyKTsKLSAgICBpZiAoIW1f
aXNWYWxpZENhbnZhcykgewotICAgICAgICBtX2xheWVyU3RhdGUuY2FudmFzU2l6ZSA9IG1fY2Fu
dmFzUGxhdGZvcm1MYXllci0+cGxhdGZvcm1MYXllclNpemUoKTsKLSAgICAgICAgbV9sYXllclN0
YXRlLmNhbnZhc1Rva2VuID0gbV9jYW52YXNQbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZhY2VU
b2tlbigpOwotICAgICAgICBtX2xheWVyU3RhdGUuY2FudmFzU3VyZmFjZUZsYWdzID0gbV9jYW52
YXNQbGF0Zm9ybUxheWVyLT5ncmFwaGljc1N1cmZhY2VGbGFncygpOwotICAgICAgICBtX2xheWVy
U3RhdGUuY2FudmFzQ2hhbmdlZCA9IHRydWU7Ci0gICAgICAgIG1faXNWYWxpZENhbnZhcyA9IHRy
dWU7CisgICAgQVNTRVJUKG1fcGxhdGZvcm1MYXllcik7CisgICAgaWYgKCFtX2lzVmFsaWRQbGF0
Zm9ybUxheWVyKSB7CisgICAgICAgIG1fbGF5ZXJTdGF0ZS5wbGF0Zm9ybUxheWVyU2l6ZSA9IG1f
cGxhdGZvcm1MYXllci0+cGxhdGZvcm1MYXllclNpemUoKTsKKyAgICAgICAgbV9sYXllclN0YXRl
LnBsYXRmb3JtTGF5ZXJUb2tlbiA9IG1fcGxhdGZvcm1MYXllci0+Z3JhcGhpY3NTdXJmYWNlVG9r
ZW4oKTsKKyAgICAgICAgbV9sYXllclN0YXRlLnBsYXRmb3JtTGF5ZXJTdXJmYWNlRmxhZ3MgPSBt
X3BsYXRmb3JtTGF5ZXItPmdyYXBoaWNzU3VyZmFjZUZsYWdzKCk7CisgICAgICAgIG1fbGF5ZXJT
dGF0ZS5wbGF0Zm9ybUxheWVyQ2hhbmdlZCA9IHRydWU7CisgICAgICAgIG1faXNWYWxpZFBsYXRm
b3JtTGF5ZXIgPSB0cnVlOwogICAgIH0KIAotICAgIG1fcGVuZGluZ0NhbnZhc09wZXJhdGlvbiAm
PSB+Q3JlYXRlQ2FudmFzOworICAgIG1fcGVuZGluZ1BsYXRmb3JtTGF5ZXJPcGVyYXRpb24gJj0g
fkNyZWF0ZVBsYXRmb3JtTGF5ZXI7CiB9CiAjZW5kaWYKIApAQCAtNzkxLDcgKzc5Miw3IEBAIHZv
aWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlz
TGF5ZXJPbmx5KCkKICAgICBzeW5jRmlsdGVycygpOwogI2VuZGlmCiAjaWYgVVNFKEdSQVBISUNT
X1NVUkZBQ0UpCi0gICAgc3luY0NhbnZhcygpOworICAgIHN5bmNQbGF0Zm9ybUxheWVyKCk7CiAj
ZW5kaWYKIAogICAgIC8vIE9ubHkgdW5zZXQgbV9tb3ZpbmdWaXNpYmxlUmVjdCBhZnRlciB3ZSBo
YXZlIHVwZGF0ZWQgdGhlIHZpc2libGUgcmVjdCBhZnRlciB0aGUgYW5pbWF0aW9uIHN0b3BwZWQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29v
cmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
LmgKaW5kZXggMTQ4NmMyMDdiZTI4NjQwNDQ4YjUwNjEzN2E2YjBiNDM0MjAxMTRlYi4uYTZhNThm
MzJiNDc0NmUyNzVlZjUxYzg2NDY1YjRiZTllNjg1NzRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaApAQCAtOTIsNyArOTIsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcihib29sKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1JlcGFpbnRDb3VudGVyKGJvb2wpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREaXJlY3RseUNvbXBvc2l0ZUltYWdlKEltYWdl
KikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNldENvbnRlbnRzVG9DYW52YXMo
UGxhdGZvcm1MYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDb250ZW50c1Rv
UGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiwgQ29udGVudHNMYXllclB1cnBvc2UpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRNYXNrTGF5ZXIoR3JhcGhpY3NMYXllciopIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRSZXBsaWNhdGVkQnlMYXllcihHcmFwaGljc0xheWVy
Kikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheSgpIG92ZXJyaWRl
OwpAQCAtMTA5LDcgKzEwOSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQW5p
bWF0aW9uKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzdXNwZW5k
QW5pbWF0aW9ucyhkb3VibGUgdGltZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHJlc3Vt
ZUFuaW1hdGlvbnMoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbnRlbnRzTGF5
ZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NhbnZhc1BsYXRmb3JtTGF5ZXIgfHwgbV9j
b21wb3NpdGVkSW1hZ2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgdXNlc0NvbnRlbnRzTGF5ZXIoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX3BsYXRmb3JtTGF5ZXIgfHwgbV9jb21wb3NpdGVkSW1h
Z2U7IH0KIAogICAgIHZvaWQgc3luY1BlbmRpbmdTdGF0ZUNoYW5nZXNJbmNsdWRpbmdTdWJMYXll
cnMoKTsKICAgICB2b2lkIHVwZGF0ZUNvbnRlbnRCdWZmZXJzSW5jbHVkaW5nU3ViTGF5ZXJzKCk7
CkBAIC0xNTQsMTggKzE1NCwxOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAjaWYgVVNFKEdSQVBI
SUNTX1NVUkZBQ0UpCi0gICAgZW51bSBQZW5kaW5nQ2FudmFzT3BlcmF0aW9uIHsKKyAgICBlbnVt
IFBlbmRpbmdQbGF0Zm9ybUxheWVyT3BlcmF0aW9uIHsKICAgICAgICAgTm9uZSA9IDB4MDAsCi0g
ICAgICAgIENyZWF0ZUNhbnZhcyA9IDB4MDEsCi0gICAgICAgIERlc3Ryb3lDYW52YXMgPSAweDAy
LAotICAgICAgICBTeW5jQ2FudmFzID0gMHgwNCwKLSAgICAgICAgQ3JlYXRlQW5kU3luY0NhbnZh
cyA9IENyZWF0ZUNhbnZhcyB8IFN5bmNDYW52YXMsCi0gICAgICAgIFJlY3JlYXRlQ2FudmFzID0g
Q3JlYXRlQW5kU3luY0NhbnZhcyB8IERlc3Ryb3lDYW52YXMKKyAgICAgICAgQ3JlYXRlUGxhdGZv
cm1MYXllciA9IDB4MDEsCisgICAgICAgIERlc3Ryb3lQbGF0Zm9ybUxheWVyID0gMHgwMiwKKyAg
ICAgICAgU3luY1BsYXRmb3JtTGF5ZXIgPSAweDA0LAorICAgICAgICBDcmVhdGVBbmRTeW5jUGxh
dGZvcm1MYXllciA9IENyZWF0ZVBsYXRmb3JtTGF5ZXIgfCBTeW5jUGxhdGZvcm1MYXllciwKKyAg
ICAgICAgUmVjcmVhdGVQbGF0Zm9ybUxheWVyID0gQ3JlYXRlQW5kU3luY1BsYXRmb3JtTGF5ZXIg
fCBEZXN0cm95UGxhdGZvcm1MYXllcgogICAgIH07CiAKLSAgICB2b2lkIHN5bmNDYW52YXMoKTsK
LSAgICB2b2lkIGRlc3Ryb3lDYW52YXNJZk5lZWRlZCgpOwotICAgIHZvaWQgY3JlYXRlQ2FudmFz
SWZOZWVkZWQoKTsKKyAgICB2b2lkIHN5bmNQbGF0Zm9ybUxheWVyKCk7CisgICAgdm9pZCBkZXN0
cm95UGxhdGZvcm1MYXllcklmTmVlZGVkKCk7CisgICAgdm9pZCBjcmVhdGVQbGF0Zm9ybUxheWVy
SWZOZWVkZWQoKTsKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHNldERlYnVnQm9yZGVyKGNv
bnN0IENvbG9yJiwgZmxvYXQgd2lkdGgpIG92ZXJyaWRlOwpAQCAtMjMyLDggKzIzMiw4IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX3BlbmRpbmdDb250ZW50c1NjYWxlQWRqdXN0bWVudCA6IDE7CiAg
ICAgYm9vbCBtX3BlbmRpbmdWaXNpYmxlUmVjdEFkanVzdG1lbnQgOiAxOwogI2lmIFVTRShHUkFQ
SElDU19TVVJGQUNFKQotICAgIGJvb2wgbV9pc1ZhbGlkQ2FudmFzIDogMTsKLSAgICB1bnNpZ25l
ZCBtX3BlbmRpbmdDYW52YXNPcGVyYXRpb24gOiAzOworICAgIGJvb2wgbV9pc1ZhbGlkUGxhdGZv
cm1MYXllciA6IDE7CisgICAgdW5zaWduZWQgbV9wZW5kaW5nUGxhdGZvcm1MYXllck9wZXJhdGlv
biA6IDM7CiAjZW5kaWYKIAogICAgIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllckNsaWVudCogbV9j
b29yZGluYXRvcjsKQEAgLTI0NCwxMCArMjQ0LDEwIEBAIHByaXZhdGU6CiAgICAgTmF0aXZlSW1h
Z2VQdHIgbV9jb21wb3NpdGVkTmF0aXZlSW1hZ2VQdHI7CiAgICAgUmVmUHRyPENvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nPiBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOwogCi0gICAgUGxhdGZvcm1M
YXllciogbV9jYW52YXNQbGF0Zm9ybUxheWVyOworICAgIFBsYXRmb3JtTGF5ZXIqIG1fcGxhdGZv
cm1MYXllcjsKICNpZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICBJbnRTaXplIG1fY2FudmFz
U2l6ZTsKLSAgICBHcmFwaGljc1N1cmZhY2VUb2tlbiBtX2NhbnZhc1Rva2VuOworICAgIEludFNp
emUgbV9wbGF0Zm9ybUxheWVyU2l6ZTsKKyAgICBHcmFwaGljc1N1cmZhY2VUb2tlbiBtX3BsYXRm
b3JtTGF5ZXJUb2tlbjsKICNlbmRpZgogICAgIFRpbWVyPENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cj4gbV9hbmltYXRpb25TdGFydGVkVGltZXI7CiAgICAgR3JhcGhpY3NMYXllckFuaW1hdGlvbnMg
bV9hbmltYXRpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0
ZWRHcmFwaGljc1NjZW5lLmNwcAppbmRleCBlZTYzYzU3MzNmNTcxYTAwM2RiMWRiZDVlMTA0YTg0
Mzg0NWUxY2UxLi40OTE0MDNiMzQyNjIzNzZmYTc0MjY4M2UwYzg2ZGU1MjQ3YTQzMWIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
LmNwcApAQCAtMTY1LDM3ICsxNjUsMzcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6
OmFkanVzdFBvc2l0aW9uRm9yRml4ZWRMYXllcnMoKQogfQogCiAjaWYgVVNFKEdSQVBISUNTX1NV
UkZBQ0UpCi12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6Y3JlYXRlQ2FudmFzSWZOZWVk
ZWQoVGV4dHVyZU1hcHBlckxheWVyKiBsYXllciwgY29uc3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyU3RhdGUmIHN0YXRlKQordm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6OmNyZWF0ZVBs
YXRmb3JtTGF5ZXJJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyLCBjb25zdCBDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYgc3RhdGUpCiB7Ci0gICAgaWYgKCFzdGF0ZS5jYW52
YXNUb2tlbi5pc1ZhbGlkKCkpCisgICAgaWYgKCFzdGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4uaXNW
YWxpZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSZWZQdHI8VGV4dHVyZU1hcHBlclN1cmZh
Y2VCYWNraW5nU3RvcmU+IGNhbnZhc0JhY2tpbmdTdG9yZShUZXh0dXJlTWFwcGVyU3VyZmFjZUJh
Y2tpbmdTdG9yZTo6Y3JlYXRlKCkpOwotICAgIG1fc3VyZmFjZUJhY2tpbmdTdG9yZXMuc2V0KGxh
eWVyLCBjYW52YXNCYWNraW5nU3RvcmUpOwotICAgIGNhbnZhc0JhY2tpbmdTdG9yZS0+c2V0R3Jh
cGhpY3NTdXJmYWNlKEdyYXBoaWNzU3VyZmFjZTo6Y3JlYXRlKHN0YXRlLmNhbnZhc1NpemUsIHN0
YXRlLmNhbnZhc1N1cmZhY2VGbGFncywgc3RhdGUuY2FudmFzVG9rZW4pKTsKLSAgICBsYXllci0+
c2V0Q29udGVudHNMYXllcihjYW52YXNCYWNraW5nU3RvcmUuZ2V0KCkpOworICAgIFJlZlB0cjxU
ZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZT4gcGxhdGZvcm1MYXllckJhY2tpbmdTdG9y
ZShUZXh0dXJlTWFwcGVyU3VyZmFjZUJhY2tpbmdTdG9yZTo6Y3JlYXRlKCkpOworICAgIG1fc3Vy
ZmFjZUJhY2tpbmdTdG9yZXMuc2V0KGxheWVyLCBwbGF0Zm9ybUxheWVyQmFja2luZ1N0b3JlKTsK
KyAgICBwbGF0Zm9ybUxheWVyQmFja2luZ1N0b3JlLT5zZXRHcmFwaGljc1N1cmZhY2UoR3JhcGhp
Y3NTdXJmYWNlOjpjcmVhdGUoc3RhdGUucGxhdGZvcm1MYXllclNpemUsIHN0YXRlLnBsYXRmb3Jt
TGF5ZXJTdXJmYWNlRmxhZ3MsIHN0YXRlLnBsYXRmb3JtTGF5ZXJUb2tlbikpOworICAgIGxheWVy
LT5zZXRDb250ZW50c0xheWVyKHBsYXRmb3JtTGF5ZXJCYWNraW5nU3RvcmUuZ2V0KCkpOwogfQog
Ci12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6c3luY0NhbnZhc0lmTmVlZGVkKFRleHR1
cmVNYXBwZXJMYXllciogbGF5ZXIsIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRl
JiBzdGF0ZSkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzeW5jUGxhdGZvcm1MYXll
cklmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIsIGNvbnN0IENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllclN0YXRlJiBzdGF0ZSkKIHsKICAgICBBU1NFUlQobV90ZXh0dXJlTWFwcGVyKTsK
IAotICAgIGlmIChzdGF0ZS5jYW52YXNDaGFuZ2VkKSB7Ci0gICAgICAgIGRlc3Ryb3lDYW52YXNJ
Zk5lZWRlZChsYXllciwgc3RhdGUpOwotICAgICAgICBjcmVhdGVDYW52YXNJZk5lZWRlZChsYXll
ciwgc3RhdGUpOworICAgIGlmIChzdGF0ZS5wbGF0Zm9ybUxheWVyQ2hhbmdlZCkgeworICAgICAg
ICBkZXN0cm95UGxhdGZvcm1MYXllcklmTmVlZGVkKGxheWVyLCBzdGF0ZSk7CisgICAgICAgIGNy
ZWF0ZVBsYXRmb3JtTGF5ZXJJZk5lZWRlZChsYXllciwgc3RhdGUpOwogICAgIH0KIAotICAgIGlm
IChzdGF0ZS5jYW52YXNTaG91bGRTd2FwQnVmZmVycykgeworICAgIGlmIChzdGF0ZS5wbGF0Zm9y
bUxheWVyU2hvdWxkU3dhcEJ1ZmZlcnMpIHsKICAgICAgICAgQVNTRVJUKG1fc3VyZmFjZUJhY2tp
bmdTdG9yZXMuY29udGFpbnMobGF5ZXIpKTsKICAgICAgICAgU3VyZmFjZUJhY2tpbmdTdG9yZU1h
cDo6aXRlcmF0b3IgaXQgPSBtX3N1cmZhY2VCYWNraW5nU3RvcmVzLmZpbmQobGF5ZXIpOwotICAg
ICAgICBSZWZQdHI8VGV4dHVyZU1hcHBlclN1cmZhY2VCYWNraW5nU3RvcmU+IGNhbnZhc0JhY2tp
bmdTdG9yZSA9IGl0LT52YWx1ZTsKLSAgICAgICAgY2FudmFzQmFja2luZ1N0b3JlLT5zd2FwQnVm
ZmVyc0lmTmVlZGVkKHN0YXRlLmNhbnZhc0Zyb250QnVmZmVyKTsKKyAgICAgICAgUmVmUHRyPFRl
eHR1cmVNYXBwZXJTdXJmYWNlQmFja2luZ1N0b3JlPiBwbGF0Zm9ybUxheWVyQmFja2luZ1N0b3Jl
ID0gaXQtPnZhbHVlOworICAgICAgICBwbGF0Zm9ybUxheWVyQmFja2luZ1N0b3JlLT5zd2FwQnVm
ZmVyc0lmTmVlZGVkKHN0YXRlLnBsYXRmb3JtTGF5ZXJGcm9udEJ1ZmZlcik7CiAgICAgfQogfQog
Ci12b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGVzdHJveUNhbnZhc0lmTmVlZGVkKFRl
eHR1cmVNYXBwZXJMYXllciogbGF5ZXIsIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0
YXRlJiBzdGF0ZSkKK3ZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpkZXN0cm95UGxhdGZv
cm1MYXllcklmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIsIGNvbnN0IENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllclN0YXRlJiBzdGF0ZSkKIHsKLSAgICBpZiAoc3RhdGUuY2FudmFzVG9r
ZW4uaXNWYWxpZCgpKQorICAgIGlmIChzdGF0ZS5wbGF0Zm9ybUxheWVyVG9rZW4uaXNWYWxpZCgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBtX3N1cmZhY2VCYWNraW5nU3RvcmVzLnJlbW92ZShs
YXllcik7CkBAIC0zMTksNyArMzE5LDcgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU6
OnNldExheWVyU3RhdGUoQ29vcmRpbmF0ZWRMYXllcklEIGlkLCBjb25zdCBDb29yZGkKICNlbmRp
ZgogICAgIHNldExheWVyQW5pbWF0aW9uc0lmTmVlZGVkKGxheWVyLCBsYXllclN0YXRlKTsKICNp
ZiBVU0UoR1JBUEhJQ1NfU1VSRkFDRSkKLSAgICBzeW5jQ2FudmFzSWZOZWVkZWQobGF5ZXIsIGxh
eWVyU3RhdGUpOworICAgIHN5bmNQbGF0Zm9ybUxheWVySWZOZWVkZWQobGF5ZXIsIGxheWVyU3Rh
dGUpOwogI2VuZGlmCiAgICAgc2V0TGF5ZXJSZXBhaW50Q291bnRJZk5lZWRlZChsYXllciwgbGF5
ZXJTdGF0ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lLmgKaW5kZXggNzVhNDcyZDRkMTI5YzMzOTc4MWU5OTY3YmMxZDlhZGM0ZmFh
NzhkYi4uM2Q4YzA0MmMyNTRlYmUzYTc2OWI1N2FmNmQzMDcwOGY5MDFkNjY0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuaApAQCAt
MTAwLDkgKzEwMCw5IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2b2lkIHNldExheWVyQW5pbWF0
aW9uc0lmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllclN0YXRlJik7CiAjaWYgVVNFKEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgdm9pZCBjcmVh
dGVDYW52YXNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXJTdGF0ZSYpOwotICAgIHZvaWQgc3luY0NhbnZhc0lmTmVlZGVkKFRleHR1cmVN
YXBwZXJMYXllciosIGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7Ci0gICAg
dm9pZCBkZXN0cm95Q2FudmFzSWZOZWVkZWQoVGV4dHVyZU1hcHBlckxheWVyKiwgY29uc3QgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUmKTsKKyAgICB2b2lkIGNyZWF0ZVBsYXRmb3JtTGF5
ZXJJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXJTdGF0ZSYpOworICAgIHZvaWQgc3luY1BsYXRmb3JtTGF5ZXJJZk5lZWRlZChUZXh0dXJl
TWFwcGVyTGF5ZXIqLCBjb25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOworICAg
IHZvaWQgZGVzdHJveVBsYXRmb3JtTGF5ZXJJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqLCBj
b25zdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSYpOwogI2VuZGlmCiAgICAgdm9pZCBz
ZXRMYXllclJlcGFpbnRDb3VudElmTmVlZGVkKFRleHR1cmVNYXBwZXJMYXllciosIGNvbnN0IENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllclN0YXRlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZC9Db29yZGluYXRlZEdyYXBo
aWNzU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29y
ZGluYXRlZC9Db29yZGluYXRlZEdyYXBoaWNzU3RhdGUuaAppbmRleCBkNmMwYWFlOWYwMGZhY2Jj
ODJlNTI3OTk1YjFhMDlmZTliNzZhMTRiLi43NzUyYTdmNzRmZmU4NWM0MjY4OGE4MjNmZGY5Yjcw
YTQzYjVhOTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvY29vcmRpbmF0ZWQvQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3NTdGF0ZS5oCkBAIC04OSw4ICs4OSw4IEBAIHN0cnVjdCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXJTdGF0ZSB7CiAgICAgICAgICAgICBib29sIGZpbHRlcnNDaGFuZ2VkOiAxOwogICAg
ICAgICAgICAgYm9vbCBjaGlsZHJlbkNoYW5nZWQ6IDE7CiAgICAgICAgICAgICBib29sIHJlcGFp
bnRDb3VudENoYW5nZWQgOiAxOwotICAgICAgICAgICAgYm9vbCBjYW52YXNDaGFuZ2VkOiAxOwot
ICAgICAgICAgICAgYm9vbCBjYW52YXNTaG91bGRTd2FwQnVmZmVyczogMTsKKyAgICAgICAgICAg
IGJvb2wgcGxhdGZvcm1MYXllckNoYW5nZWQ6IDE7CisgICAgICAgICAgICBib29sIHBsYXRmb3Jt
TGF5ZXJTaG91bGRTd2FwQnVmZmVyczogMTsKICAgICAgICAgICAgIGJvb2wgaXNTY3JvbGxhYmxl
Q2hhbmdlZDogMTsKICAgICAgICAgICAgIGJvb2wgY29tbWl0dGVkU2Nyb2xsT2Zmc2V0Q2hhbmdl
ZDogMTsKICAgICAgICAgICAgIGJvb2wgY29udGVudHNUaWxpbmdDaGFuZ2VkOiAxOwpAQCAtMTMx
LDcgKzEzMSw3IEBAIHN0cnVjdCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZSB7CiAgICAg
ICAgICwgbWFzayhJbnZhbGlkQ29vcmRpbmF0ZWRMYXllcklEKQogICAgICAgICAsIGltYWdlSUQo
SW52YWxpZENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpCiAjaWYgVVNFKEdSQVBISUNTX1NVUkZB
Q0UpCi0gICAgICAgICwgY2FudmFzRnJvbnRCdWZmZXIoMCkKKyAgICAgICAgLCBwbGF0Zm9ybUxh
eWVyRnJvbnRCdWZmZXIoMCkKICNlbmRpZgogICAgIHsKICAgICB9CkBAIC0xNjMsMTAgKzE2Mywx
MCBAQCBzdHJ1Y3QgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyU3RhdGUgewogICAgIFZlY3RvcjxU
aWxlVXBkYXRlSW5mbz4gdGlsZXNUb1VwZGF0ZTsKIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNF
KQotICAgIEludFNpemUgY2FudmFzU2l6ZTsKLSAgICBHcmFwaGljc1N1cmZhY2VUb2tlbiBjYW52
YXNUb2tlbjsKLSAgICB1aW50MzJfdCBjYW52YXNGcm9udEJ1ZmZlcjsKLSAgICBHcmFwaGljc1N1
cmZhY2U6OkZsYWdzIGNhbnZhc1N1cmZhY2VGbGFnczsKKyAgICBJbnRTaXplIHBsYXRmb3JtTGF5
ZXJTaXplOworICAgIEdyYXBoaWNzU3VyZmFjZVRva2VuIHBsYXRmb3JtTGF5ZXJUb2tlbjsKKyAg
ICB1aW50MzJfdCBwbGF0Zm9ybUxheWVyRnJvbnRCdWZmZXI7CisgICAgR3JhcGhpY3NTdXJmYWNl
OjpGbGFncyBwbGF0Zm9ybUxheWVyU3VyZmFjZUZsYWdzOwogI2VuZGlmCiAKICAgICBJbnRTaXpl
IGNvbW1pdHRlZFNjcm9sbE9mZnNldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggYzk4YzczZmJiNDYwOWM4ODVlZjg1MjAxY2Q4YmZm
MTQ0YzY5MGMyMC4uZTFiNGRhZmFmODRlZTYzZDZjMDVkY2Y3NjQyOTc2NzIyYjdhYTI1ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAg
LTU4OSwyMCArNTg5LDIwIEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVDb25maWd1
cmF0aW9uKCkKICAgICAgICAgfQogI2Vsc2UKICAgICAgICAgaWYgKCFwbHVnaW5WaWV3QmFzZS0+
c2hvdWxkTm90QWRkTGF5ZXIoKSkKLSAgICAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29u
dGVudHNUb01lZGlhKHBsdWdpblZpZXdCYXNlLT5wbGF0Zm9ybUxheWVyKCkpOworICAgICAgICAg
ICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RvUGxhdGZvcm1MYXllcihwbHVnaW5WaWV3
QmFzZS0+cGxhdGZvcm1MYXllcigpLCBHcmFwaGljc0xheWVyOjpDb250ZW50c0xheWVyRm9yUGx1
Z2luKTsKICNlbmRpZgogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCiAgICAgZWxzZSBpZiAocmVu
ZGVyZXIoKS5pc1ZpZGVvKCkpIHsKICAgICAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVt
ZW50ID0gdG9IVE1MTWVkaWFFbGVtZW50KHJlbmRlcmVyKCkuZWxlbWVudCgpKTsKLSAgICAgICAg
bV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RvTWVkaWEobWVkaWFFbGVtZW50LT5wbGF0Zm9y
bUxheWVyKCkpOworICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVG9QbGF0Zm9y
bUxheWVyKG1lZGlhRWxlbWVudC0+cGxhdGZvcm1MYXllcigpLCBHcmFwaGljc0xheWVyOjpDb250
ZW50c0xheWVyRm9yTWVkaWEpOwogICAgIH0KICNlbmRpZgogI2lmIEVOQUJMRShXRUJHTCkgfHwg
RU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBlbHNlIGlmIChyZW5kZXJlcigpLmlz
Q2FudmFzKCkgJiYgY2FudmFzQ29tcG9zaXRpbmdTdHJhdGVneShyZW5kZXJlcigpKSA9PSBDYW52
YXNBc0xheWVyQ29udGVudHMpIHsKICAgICAgICAgY29uc3QgSFRNTENhbnZhc0VsZW1lbnQqIGNh
bnZhcyA9IHRvSFRNTENhbnZhc0VsZW1lbnQocmVuZGVyZXIoKS5lbGVtZW50KCkpOwogICAgICAg
ICBpZiAoQ2FudmFzUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCA9IGNhbnZhcy0+cmVuZGVyaW5n
Q29udGV4dCgpKQotICAgICAgICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1RvQ2Fu
dmFzKGNvbnRleHQtPnBsYXRmb3JtTGF5ZXIoKSk7CisgICAgICAgICAgICBtX2dyYXBoaWNzTGF5
ZXItPnNldENvbnRlbnRzVG9QbGF0Zm9ybUxheWVyKGNvbnRleHQtPnBsYXRmb3JtTGF5ZXIoKSwg
R3JhcGhpY3NMYXllcjo6Q29udGVudHNMYXllckZvckNhbnZhcyk7CiAgICAgICAgIGxheWVyQ29u
ZmlnQ2hhbmdlZCA9IHRydWU7CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1l
bnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBlMjE1NmQ1NjY3M2Ux
MWM5YjMwN2ViOTFlYTIzNWQyYWJjNzhmZWY3Li41NGFjZTU5NjFhNjRhZTVkOWMyMDg5MjI3ZGU2
ZmJmNDUxODk5ZWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3NBcmd1bWVudENvZGVycy5jcHAKQEAgLTY4NiwxMSArNjg2LDExIEBAIHZvaWQgQXJndW1lbnRD
b2RlcjxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmVuY29kZShBcmd1bWVudEVuY29k
ZXImIGVuY29kCiAgICAgZW5jb2RlciA8PCBzdGF0ZS50aWxlc1RvVXBkYXRlOwogCiAjaWYgVVNF
KEdSQVBISUNTX1NVUkZBQ0UpCi0gICAgaWYgKHN0YXRlLmNhbnZhc0NoYW5nZWQpIHsKLSAgICAg
ICAgZW5jb2RlciA8PCBzdGF0ZS5jYW52YXNTaXplOwotICAgICAgICBlbmNvZGVyIDw8IHN0YXRl
LmNhbnZhc1Rva2VuOwotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmNhbnZhc0Zyb250QnVmZmVy
OwotICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLmNhbnZhc1N1cmZhY2VGbGFnczsKKyAgICBpZiAo
c3RhdGUucGxhdGZvcm1MYXllckNoYW5nZWQpIHsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5w
bGF0Zm9ybUxheWVyU2l6ZTsKKyAgICAgICAgZW5jb2RlciA8PCBzdGF0ZS5wbGF0Zm9ybUxheWVy
VG9rZW47CisgICAgICAgIGVuY29kZXIgPDwgc3RhdGUucGxhdGZvcm1MYXllckZyb250QnVmZmVy
OworICAgICAgICBlbmNvZGVyIDw8IHN0YXRlLnBsYXRmb3JtTGF5ZXJTdXJmYWNlRmxhZ3M7CiAg
ICAgfQogI2VuZGlmCiAKQEAgLTc3NiwxNyArNzc2LDE3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxD
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXJTdGF0ZT46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRl
Y29kCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIFVTRShHUkFQSElDU19TVVJGQUNFKQot
ICAgIGlmIChzdGF0ZS5jYW52YXNDaGFuZ2VkKSB7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoc3RhdGUuY2FudmFzU2l6ZSkpCisgICAgaWYgKHN0YXRlLnBsYXRmb3JtTGF5ZXJDaGFuZ2Vk
KSB7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGUucGxhdGZvcm1MYXllclNpemUp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoc3RhdGUuY2FudmFzVG9rZW4pKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0YXRl
LnBsYXRmb3JtTGF5ZXJUb2tlbikpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShzdGF0ZS5jYW52YXNGcm9udEJ1ZmZlcikpCisgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoc3RhdGUucGxhdGZvcm1MYXllckZyb250QnVmZmVyKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0
YXRlLmNhbnZhc1N1cmZhY2VGbGFncykpCisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3Rh
dGUucGxhdGZvcm1MYXllclN1cmZhY2VGbGFncykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>