<?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>131732</bug_id>
          
          <creation_ts>2014-04-16 07:40:05 -0700</creation_ts>
          <short_desc>[CSS Grid Layout] Introduce an explicit type for resolved grid positions</short_desc>
          <delta_ts>2014-06-13 06:10:44 -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>CSS</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>
          
          <blocked>60731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Manuel Rego Casasnovas">rego</reporter>
          <assigned_to name="Manuel Rego Casasnovas">rego</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>bunhere</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>enrica</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hyatt</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kling</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>stavila</cc>
    
    <cc>svillar</cc>
    
    <cc>thorton</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1001136</commentid>
    <comment_count>0</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-16 07:40:05 -0700</bug_when>
    <thetext>It would be nice to separate the code related to resolved positions from the rest of the code.

Also have a type for resolved positions will help to avoid mistakes mixing resolved and unresolved positions in grid code.

This has been already fixed in Blink and it&apos;ll be ported to WebKit (see https://codereview.chromium.org/166623002/).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001137</commentid>
    <comment_count>1</comment_count>
      <attachid>229443</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-16 07:46:55 -0700</bug_when>
    <thetext>Created attachment 229443
Patch

ChangeLog has some wrong entries generated by prepare-ChangeLog script. I&apos;ll report a bug related to that pointing to this patch as an example. Of course, before landing this should be fixed even manually if the issue is not fixed before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1001144</commentid>
    <comment_count>2</comment_count>
      <attachid>229444</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-16 08:41:18 -0700</bug_when>
    <thetext>Created attachment 229444
Patch

Fix Mac build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003247</commentid>
    <comment_count>3</comment_count>
      <attachid>229973</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-23 03:47:12 -0700</bug_when>
    <thetext>Created attachment 229973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003266</commentid>
    <comment_count>4</comment_count>
      <attachid>229973</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-04-23 04:58:28 -0700</bug_when>
    <thetext>Comment on attachment 229973
Patch

Attachment 229973 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/6170024674852864

New failing tests:
media/W3C/video/networkState/networkState_during_loadstart.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003267</commentid>
    <comment_count>5</comment_count>
      <attachid>229980</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2014-04-23 04:58:34 -0700</bug_when>
    <thetext>Created attachment 229980
Archive of layout-test-results from webkit-ews-10 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-10  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003786</commentid>
    <comment_count>6</comment_count>
      <attachid>230109</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-24 14:51:48 -0700</bug_when>
    <thetext>Created attachment 230109
Patch

Update ChangeLog once bug #131733 has been fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011067</commentid>
    <comment_count>7</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-05-22 14:50:28 -0700</bug_when>
    <thetext>Ping reviewers. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011069</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-22 15:26:33 -0700</bug_when>
    <thetext>Hum, using integers for positioning is suspicious. Maybe Zalan will have an opinion about this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011073</commentid>
    <comment_count>9</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-05-22 16:11:09 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Hum, using integers for positioning is suspicious. Maybe Zalan will have an opinion about this.
These look to be grid area indexes and not pixel positions. (similar to table row/column indexes)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011210</commentid>
    <comment_count>10</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-05-23 02:31:20 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Hum, using integers for positioning is suspicious. Maybe Zalan will have an opinion about this.
&gt; These look to be grid area indexes and not pixel positions. (similar to table row/column indexes)

RenderGrid has an internal structure m_grid:
    typedef Vector&lt;RenderBox*, 1&gt; GridCell;
    typedef Vector&lt;Vector&lt;GridCell&gt; &gt; GridRepresentation;
    GridRepresentation m_grid;

These integers are positions inside that structure. You can check the new class GridResolvedPosition comment:
// This class represents an index into one of the dimensions of the grid array.
// Wraps a size_t integer just for the purpose of knowing what we manipulate in the grid code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011692</commentid>
    <comment_count>11</comment_count>
      <attachid>232067</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-05-26 04:20:25 -0700</bug_when>
    <thetext>Created attachment 232067
Patch

Rebased patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013376</commentid>
    <comment_count>12</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-06-04 14:35:51 -0700</bug_when>
    <thetext>Ping reviewers. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015077</commentid>
    <comment_count>13</comment_count>
      <attachid>232944</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-06-12 04:28:13 -0700</bug_when>
    <thetext>Created attachment 232944
Patch

Rebased patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015104</commentid>
    <comment_count>14</comment_count>
      <attachid>232944</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-06-12 07:05:22 -0700</bug_when>
    <thetext>Comment on attachment 232944
Patch

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

It&apos;s nice to slim down the size of the renderer, I was going to r+ but then I wondered what would be the impact in terms of memory usage. Could you try to run the performance tests (that use huge grids) and paste here the results?

&gt; Source/WebCore/rendering/style/GridResolvedPosition.cpp:50
&gt; +

Not sure it pays off to have these two as they&apos;re only used in explicitGridSizeForSide()

&gt; Source/WebCore/rendering/style/GridResolvedPosition.h:144
&gt; +    static size_t explicitGridSizeForSide(const RenderStyle&amp; gridContainerStyle, GridPositionSide);

This does not make any sense to me. Let&apos;s just have the static method in the .cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015237</commentid>
    <comment_count>15</comment_count>
      <attachid>232944</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-06-12 14:42:59 -0700</bug_when>
    <thetext>Comment on attachment 232944
Patch

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

I&apos;ve run the perftests several times in trunk and with my patch and the numbers are pretty similar:
* auto-grid-lots-of-data:
  * Time:
    * Runs trunk: 360.17 runs/s vs Runs patch: 360.10 runs/s
  * Memory:
    * JSHeap trunk: 239.05 KB vs JSHeap patch: 239.05 KB
    * Malloc trunk: 4504.09 KB vs Malloc patch: 4513.19	KB
* fixed-grid-lots-of-data:
  * Time:
    * Runs trunk: 356.52 runs/s vs Runs patch: 358.62 runs/s
  * Memory:
    * JSHeap trunk: 239.05 KB vs JSHeap patch: 239.05 KB
    * Malloc trunk: 4507.94 KB vs Malloc patch: 4506.38	KB

So it seems, the patch is not regressing.

I&apos;m uploading a new patch with the suggested changes.

&gt;&gt; Source/WebCore/rendering/style/GridResolvedPosition.cpp:50
&gt;&gt; +
&gt; 
&gt; Not sure it pays off to have these two as they&apos;re only used in explicitGridSizeForSide()

And in RenderGrid::populateExplicitGridAndOrderIterator().

&gt;&gt; Source/WebCore/rendering/style/GridResolvedPosition.h:144
&gt;&gt; +    static size_t explicitGridSizeForSide(const RenderStyle&amp; gridContainerStyle, GridPositionSide);
&gt; 
&gt; This does not make any sense to me. Let&apos;s just have the static method in the .cpp

Yeah, not sure why it is here :-). Removed from the .h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015239</commentid>
    <comment_count>16</comment_count>
      <attachid>232989</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-06-12 14:51:03 -0700</bug_when>
    <thetext>Created attachment 232989
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015383</commentid>
    <comment_count>17</comment_count>
      <attachid>232989</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-06-13 04:44:42 -0700</bug_when>
    <thetext>Comment on attachment 232989
Patch

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

OK good figures. Let&apos;s get this in. 

I have a couple of nits that should be fixed before landing. Also check the EFL build failure.

&gt; Source/WebCore/rendering/style/GridResolvedPosition.cpp:50
&gt; +

Let&apos;s remove these two, they don&apos;t have anything to do with a resolved position, they just access the style.

&gt; Source/WebCore/rendering/style/GridResolvedPosition.h:87
&gt; +

Remove the resolvedOppositePosition argument name in these four. I guess it&apos;s obvious from the function name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015384</commentid>
    <comment_count>18</comment_count>
      <attachid>233041</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-06-13 05:06:08 -0700</bug_when>
    <thetext>Created attachment 233041
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015395</commentid>
    <comment_count>19</comment_count>
      <attachid>233041</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-13 06:10:31 -0700</bug_when>
    <thetext>Comment on attachment 233041
Patch for landing.

Clearing flags on attachment: 233041

Committed r169934: &lt;http://trac.webkit.org/changeset/169934&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015396</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-13 06:10:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229443</attachid>
            <date>2014-04-16 07:46:55 -0700</date>
            <delta_ts>2014-04-16 08:41:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131732-20140416164632.patch</filename>
            <type>text/plain</type>
            <size>81689</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmU3NGRkNTU3OGMyMDcy
YWZkMGY4MmNmNDkyOTQ2MjA1ZWU1NmFkNi4uY2I4MGIzNGRmNjFhZTMyNDA2ZDMwMjA5ZWM2ZWVh
YjlmMjVmZDVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDE0LTA0LTE2ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEludHJvZHVjZSBhbiBleHBsaWNpdCB0eXBlIGZvciByZXNvbHZlZCBncmlkIHBv
c2l0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMxNzMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2Ugd2VyZSB1c2luZyBzaW1wbGUgc2l6ZV90IGludGVnZXJzIHRvIHJlcHJlc2VudCByZXNvbHZl
ZCBncmlkCisgICAgICAgIHBvc2l0aW9ucyBpbiBvdXIgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVz
LiBUaGlzIGNoYW5nZSBhbGxvd3MgdXMgdG8KKyAgICAgICAgY2xhcmlmeSB0aGUgY29kZSwgYXZv
aWQgcG90ZW50aWFsIG9mZiBieSBvbmUgbWlzdGFrZXMsIGFuZCBtb3ZlIHRoZQorICAgICAgICBy
ZXNvbHZpbmcgY29kZSB0byBhIGNlbnRyYWwgcGxhY2UuCisKKyAgICAgICAgQSBuZXcgY2xhc3Mg
R3JpZFJlc29sdmVkUG9zaXRpb24gaGFzIGJlZW4gY3JlYXRlZCBhbmQgdGhlIHJlbGF0ZWQKKyAg
ICAgICAgbWV0aG9kcyBoYXZlIGJlZW4gbW92ZWQgdGhlcmUgZnJvbSBSZW5kZXJHcmlkLgorICAg
ICAgICBHcmlkU3BhbiBpcyBub3cgZGVmaW5lZCBieSB0d28gR3JpZFJlc29sdmVkUG9zaXRpb24s
IHNvIGFsbCB0aGUgY29kZQorICAgICAgICB1c2luZyBpdCBoYXMgYmVlbiBtb2RpZmllZCB0byBh
ZGFwdCBpdCB0byBHcmlkUmVzb2x2ZWRQb3NpdGlvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMg
YXMgaXQgaXMgYWxyZWFkeSBjb3ZlcmVkIGJ5IGN1cnJlbnQgdGVzdHMKKyAgICAgICAgKGZhc3Qv
Y3NzLWdyaWQtbGF5b3V0LykuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5nRm9yUG9zaXRpb24pOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdy
aWRUZW1wbGF0ZUFyZWFzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjb21wdXRlVXNlZEJyZWFkdGhPZkdyaWRUcmFj
a3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZU5vcm1hbGl6ZWRGcmFj
dGlvbkJyZWFkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRl
bnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyR3JpZDo6aW5zZXJ0SXRlbUludG9HcmlkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6
cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9uR3JpZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNaW5vckF4
aXNEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z3JpZEFyZWFCcmVh
ZHRoRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6ZmluZENoaWxkTG9n
aWNhbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmxvZ2ljYWxDb250
ZW50SGVpZ2h0Rm9yQ2hpbGQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6bWluQ29udGVudEZvckNoaWxkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNvcnRC
eUdyaWRUcmFja0dyb3d0aFBvdGVudGlhbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJHcmlkOjpkaXN0cmlidXRlU3BhY2VUb1RyYWNrcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyR3JpZDo6cG9wdWxhdGVHcmlkUG9zaXRpb25zKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBhaW50Q2hpbGRyZW4pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVuZGVyTmFtZSk6IERlbGV0ZWQuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3Jp
ZENvb3JkaW5hdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRTcGFuOjpHcmlkU3Bhbik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmlkU3Bhbjo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9u
OjpHcmlkUG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9u
OjpzZXRFeHBsaWNpdFBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRQ
b3NpdGlvbjo6c2V0QXV0b1Bvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6ZXhwbGljaXRHcmlkUm93Q291bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6aXNDb2x1bW5TaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRS
ZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdyaWRTaXplRm9yU2lkZSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1Bs
YWNlbWVudFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmdyaWRMaW5lRGVmaW5lZEJlZm9y
ZUdyaWRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OnNldE5hbWVkTGluZVBvc2l0aW9uSWZEZWZp
bmVkQmVmb3JlQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
YWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNv
bHZlZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZU5hbWVk
R3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2
ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBv
c2l0ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpy
ZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6Zmlyc3ROYW1lZEdyaWRMaW5lQmVmb3JlUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVSb3dTdGFydENvbHVtblN0
YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVSb3dFbmRDb2x1bW5FbmRO
YW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbik6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0Vu
ZENvbHVtbkVuZFNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246
OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29s
dmVkUG9zaXRpb246OkdyaWRSZXNvbHZlZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
aWRSZXNvbHZlZFBvc2l0aW9uOjpvcGVyYXRvcisrKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRS
ZXNvbHZlZFBvc2l0aW9uOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNv
bHZlZFBvc2l0aW9uOjpvcGVyYXRvcjwpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVk
UG9zaXRpb246Om9wZXJhdG9yPik6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3Np
dGlvbjo6b3BlcmF0b3I8PSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6b3BlcmF0b3I+PSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
dG9JbnQpOgorCiAyMDE0LTA0LTE1ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBbRUZMXSBGaXggcHJvYmxlbXMgd2l0aCB0aGUgcGl4ZWwgZHVtcC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggNjE3NjRkNjU1MzJmNTZhZThiMDU3ZjIwMzZjYTUyNjk4NzRk
ZTdmMy4uNmZiMTNjOGZhNjA2MWI0NmY1ZTcyNzhkNTU3MTA5MzA0MTM2NTcwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTI0MDQsNiArMjQwNCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICByZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL0Nv
dW50ZXJEaXJlY3RpdmVzLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCisg
ICAgcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcAogICAgIHJlbmRlcmlu
Zy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUlt
YWdlLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggZGQ5ZjAyZmZmNmNi
OWMyOWVjNDAxYjMwZDdhZGVhMzA3ZjNkZDY1Ni4uNDUxNDhhOWUwYTQ2MTgxMDZjMWRlODM3ZWMz
ZTFiMjJiN2JjMDc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCkBAIC0xMTQ2Niw2ICsxMTQ2Niw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRSZXNvbHZlZFBvc2l0
aW9uLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxL
ZXlmcmFtZUxpc3QuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KQEAgLTIwMTM4LDYgKzIwMTM5LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJlbmRlcmluZ1xzdHlsZVxHcmlkQ29vcmRpbmF0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRMZW5ndGguaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkUG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkUmVzb2x2ZWRQb3NpdGlvbi5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRUcmFj
a1NpemUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxL
ZXlmcmFtZUxpc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xz
dHlsZVxOaW5lUGllY2VJbWFnZS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDJjNjBkNjQyOGIwMTQ2
ZmMzNjcwMDgxZjg2NDc0MGJhNTlmMjczYjkuLmM0MDFiZGUwMGFmNDIzZjU1NWU2NzM0ZWEwMWQ1
MTIzNWJjMmY5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTI3NzUsNiArMjc3NSw5IEBACiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcRmlsbExheWVyLmNwcCI+CiAgICAg
ICA8RmlsdGVyPnJlbmRlcmluZ1xzdHlsZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRSZXNvbHZlZFBvc2l0
aW9uLmNwcCI+CisgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzdHlsZTwvRmlsdGVyPgorICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEtl
eWZyYW1lTGlzdC5jcHAiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc3R5bGU8L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KQEAgLTk3MDAsNiArOTcwMyw5IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFBvc2l0aW9uLmgiPgogICAgICAgPEZpbHRl
cj5yZW5kZXJpbmdcc3R5bGU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oIj4K
KyAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHN0eWxlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFRyYWNrU2l6
ZS5oIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHN0eWxlPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggOGE1MWQ3YzQwZTIyZmQzYzk2ZjNhZTA1NDVhZWUyYjVkNzRmMzA5NC4uYTJj
ZjJlZTgzZGQ1MjI1ZWZlNmU1NDQyMjA2YTc4ZmQ1MTYyYmI0MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTY1Niw2ICs1NjU2
LDggQEAKIAkJQ0RGMkIwMTkxODIwNTQwNzAwRjJCNDI0IC8qIE1vY2tUcmFja3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDBGMTgyMDU0MDYw
MEYyQjQyNCAvKiBNb2NrVHJhY2tzLmggKi87IH07CiAJCUNERjY1Q0M4MTQ1QjFFNzUwMEM0QzdB
QSAvKiBNZWRpYUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMjdGNkU0MTQ1NzY3ODcwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREY2
NUNDQTE0NUI0NDg4MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY2NUNDOTE0NUI0M0E3
MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0Mw
IC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0ODNDMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2
ZWRQb3NpdGlvbi5jcHAgKi87IH07CisJCUNERjc0ODNGMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlk
UmVzb2x2ZWRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RGNzQ4M0QxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9u
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RG
QzM2MDUxOENBNjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREZDMzYwMzE4Q0E2MUMy
MDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcCAqLzsgfTsKIAkJQ0RGQzM2MDYx
OENBNjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGQzM2MDQxOENBNjFDMjAwMjZFNTZG
IC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUNERkMzNjA3MThDQTY5NkMwMDI2RTU2RiAvKiBSZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREZDMzYwMjE4Q0E2MTYzMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TLm1tICovOyB9OwpAQCAtMTMwMjMsNiArMTMwMjUsOCBAQAogCQlDREYyQjAwRjE4MjA1
NDA2MDBGMkI0MjQgLyogTW9ja1RyYWNrcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNb2NrVHJhY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjY1Q0M5
MTQ1QjQzQTcwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjY1Q0NDMTQ1QjZBRkUwMEM0QzdBQSAvKiBKU0hU
TUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RGNzQ4M0MxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEdyaWRSZXNvbHZlZFBv
c2l0aW9uLmNwcDsgcGF0aCA9IHN0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RGNzQ4M0QxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRS
ZXNvbHZlZFBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdyaWRS
ZXNvbHZlZFBvc2l0aW9uLmg7IHBhdGggPSBzdHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREZDMzYwMTE4Q0E2MTYzMDAyNkU1NkYgLyog
UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oOyBwYXRoID0gaW9zL1JlbW90ZUNvbW1hbmRM
aXN0ZW5lcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREZDMzYwMjE4Q0E2
MTYzMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tOyBw
YXRoID0gaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RGQzM2MDMxOENBNjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0
ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVDb21t
YW5kTGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA2NzAsNiAr
MjA2NzQsOCBAQAogCQkJCUNEM0UyNTFCMTgwNDZCMDYwMEUyN0Y1NiAvKiBHcmlkQ29vcmRpbmF0
ZS5oICovLAogCQkJCUNERUY0RkQ2MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggKi8s
CiAJCQkJQTEyNzA1QzIxNjU2QkQ2NTAwQzJFMjdDIC8qIEdyaWRQb3NpdGlvbi5oICovLAorCQkJ
CUNERjc0ODNDMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAgKi8s
CisJCQkJQ0RGNzQ4M0QxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmgg
Ki8sCiAJCQkJQTEyQTEwNEUxNjY0NDREQzAwOEZBMzExIC8qIEdyaWRUcmFja1NpemUuaCAqLywK
IAkJCQlCQzVFQkEwRTBFODIzRTQ3MDBCMjU5NjUgLyogS2V5ZnJhbWVMaXN0LmNwcCAqLywKIAkJ
CQlCQzVFQkEwRjBFODIzRTQ3MDBCMjU5NjUgLyogS2V5ZnJhbWVMaXN0LmggKi8sCkBAIC0yNDQw
Niw2ICsyNDQxMiw3IEBACiAJCQkJQTgwRTdFOUYwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1
dHRvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOEU2NjYyMDlGMDlCODcwMDhBNDhF
QyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0NCQUQ0MTBD
MThDMTQyMDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
Q0RGNzQ4M0YxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGNUMwNDFFNzBGRkNBOTZEMDA4MzlENEEgLyogSlNIVE1MRGF0YUxpc3RF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMzU5RDhCRjEyOUNBNTVDMDAwNkU1RDIgLyog
SlNIVE1MRGV0YWlsc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2ODA4QjUwMTU5REFE
RkEwMDJCNTIzMyAvKiBKU0hUTUxEaWFsb2dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI3
MTM4LDYgKzI3MTQ1LDcgQEAKIAkJCQlBNDIyNkU5NjExNjNENzNBMDA4QjgzOTcgLyogRE9NSFRN
TFByb2dyZXNzRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1MTgzQjRCMEFBNjkyNjEw
MEYxOUZBMyAvKiBET01IVE1MUXVvdGVFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVE
RjgxOUMwQUE3N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxTY3JpcHRFbGVtZW50Lm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1RjMyQUYxMEFBNjNCODcwMEZGMzE4NCAvKiBE
T01IVE1MU2VsZWN0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1OUE5QzUwMEFBNUUz
QkQwMEI2OTRCMiAvKiBET01IVE1MU3R5bGVFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODVERjgyMUUwQUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Lm1t
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRl
bXBsYXRlQXJlYXNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRl
QXJlYXNWYWx1ZS5jcHAKaW5kZXggYjM1MzgyMjkwZjM0MGVhZDY5MTYzM2I0NTc1OWNjMjY5YzU3
ZGY5My4uNWFkNzFmYmRkMzZjZjhkYzAwMzQyMDM4ZDEzN2NhYWZlNmFlYTNmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcApAQCAtNTUs
MTMgKzU1LDEzIEBAIHN0YXRpYyBTdHJpbmcgc3RyaW5nRm9yUG9zaXRpb24oY29uc3QgTmFtZWRH
cmlkQXJlYU1hcCYgZ3JpZEFyZWFNYXAsIHNpemVfdCByb3csCiAKICAgICBmb3IgKGNvbnN0IGF1
dG8mIGl0IDogZ3JpZEFyZWFNYXApIHsKICAgICAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUmIGNv
b3JkaW5hdGUgPSBpdC52YWx1ZTsKLSAgICAgICAgaWYgKHJvdyA+PSBjb29yZGluYXRlLnJvd3Mu
aW5pdGlhbFBvc2l0aW9uSW5kZXggJiYgcm93IDw9IGNvb3JkaW5hdGUucm93cy5maW5hbFBvc2l0
aW9uSW5kZXgpCisgICAgICAgIGlmIChyb3cgPj0gY29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkSW5p
dGlhbFBvc2l0aW9uLnRvSW50KCkgJiYgcm93IDw9IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZp
bmFsUG9zaXRpb24udG9JbnQoKSkKICAgICAgICAgICAgIGNhbmRpZGF0ZXMuYXBwZW5kKGl0Lmtl
eSk7CiAgICAgfQogCiAgICAgZm9yIChjb25zdCBhdXRvJiBpdCA6IGdyaWRBcmVhTWFwKSB7CiAg
ICAgICAgIGNvbnN0IEdyaWRDb29yZGluYXRlJiBjb29yZGluYXRlID0gaXQudmFsdWU7Ci0gICAg
ICAgIGlmIChjb2x1bW4gPj0gY29vcmRpbmF0ZS5jb2x1bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4
ICYmIGNvbHVtbiA8PSBjb29yZGluYXRlLmNvbHVtbnMuZmluYWxQb3NpdGlvbkluZGV4ICYmIGNh
bmRpZGF0ZXMuY29udGFpbnMoaXQua2V5KSkKKyAgICAgICAgaWYgKGNvbHVtbiA+PSBjb29yZGlu
YXRlLmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKSAmJiBjb2x1bW4gPD0g
Y29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlvbi50b0ludCgpICYmIGNhbmRp
ZGF0ZXMuY29udGFpbnMoaXQua2V5KSkKICAgICAgICAgICAgIHJldHVybiBpdC5rZXk7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDU2YmZkYmUxNmQ5MDc2ZWMwMjQ0Nzg3
MGUzYTc1YjQ3MTlkODNiODIuLmIyYWYwZjVjNTJjOTViYmNmYjE5NzgwZDNhM2ZlMmE3YTZkMzM0
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC01MTk4LDE4ICs1MTk4LDE4IEBAIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhcygpCiAK
ICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoZWNrcyB0ZXN0IHRoYXQgdGhlIGdy
aWQgYXJlYSBpcyBhIHNpbmdsZSBmaWxsZWQtaW4gcmVjdGFuZ2xlLgogICAgICAgICAgICAgICAg
IC8vIDEuIFRoZSBuZXcgcm93IGlzIGFkamFjZW50IHRvIHRoZSBwcmV2aW91c2x5IHBhcnNlZCBy
b3cuCi0gICAgICAgICAgICAgICAgaWYgKHJvd0NvdW50ICE9IGdyaWRDb29yZGluYXRlLnJvd3Mu
ZmluYWxQb3NpdGlvbkluZGV4ICsgMSkKKyAgICAgICAgICAgICAgICBpZiAocm93Q291bnQgIT0g
Z3JpZENvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRpb24udG9JbnQoKSArIDEpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgICAgICAgICAgLy8gMi4gVGhl
IG5ldyBhcmVhIHN0YXJ0cyBhdCB0aGUgc2FtZSBwb3NpdGlvbiBhcyB0aGUgcHJldmlvdXNseSBw
YXJzZWQgYXJlYS4KLSAgICAgICAgICAgICAgICBpZiAoY3VycmVudENvbHVtbiAhPSBncmlkQ29v
cmRpbmF0ZS5jb2x1bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4KQorICAgICAgICAgICAgICAgIGlm
IChjdXJyZW50Q29sdW1uICE9IGdyaWRDb29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRJbml0aWFs
UG9zaXRpb24udG9JbnQoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAg
ICAgICAgICAgICAvLyAzLiBUaGUgbmV3IGFyZWEgZW5kcyBhdCB0aGUgc2FtZSBwb3NpdGlvbiBh
cyB0aGUgcHJldmlvdXNseSBwYXJzZWQgYXJlYS4KLSAgICAgICAgICAgICAgICBpZiAobG9va0Fo
ZWFkQ29sdW1uICE9IGdyaWRDb29yZGluYXRlLmNvbHVtbnMuZmluYWxQb3NpdGlvbkluZGV4KQor
ICAgICAgICAgICAgICAgIGlmIChsb29rQWhlYWRDb2x1bW4gIT0gZ3JpZENvb3JkaW5hdGUuY29s
dW1ucy5yZXNvbHZlZEZpbmFsUG9zaXRpb24udG9JbnQoKSkKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICAgICAgICAgICAgICArK2dyaWRDb29yZGluYXRlLnJvd3MuZmluYWxQ
b3NpdGlvbkluZGV4OworICAgICAgICAgICAgICAgICsrZ3JpZENvb3JkaW5hdGUucm93cy5yZXNv
bHZlZEZpbmFsUG9zaXRpb247CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjdXJyZW50Q29s
dW1uID0gbG9va0FoZWFkQ29sdW1uOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR3JpZC5jcHAKaW5kZXggYWQxOTEwMzlkYmNjNGRkYmQ0OGU1ZDM1Y2VkMGQ1OWQ4N2Qx
MzQxOS4uY2Y5YWQ0ZWJiYmIwNmExYWMyZDQ2Yzc5NDU5YzQ0ZGU1OGMzNTVjMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2lmIEVO
QUJMRShDU1NfR1JJRF9MQVlPVVQpCiAKICNpbmNsdWRlICJHcmlkQ29vcmRpbmF0ZS5oIgorI2lu
Y2x1ZGUgIkdyaWRSZXNvbHZlZFBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVwYWludGVy
LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgpAQCAtMzQyLDcgKzM0Myw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0ZVVzZWRCcmVhZHRo
T2ZHcmlkVHJhY2tzKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3RpCiAgICAgICAgICAg
ICAgICAgY29uc3QgR3JpZFNwYW4gc3BhbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBj
b29yZGluYXRlLmNvbHVtbnMgOiBjb29yZGluYXRlLnJvd3M7CiAKICAgICAgICAgICAgICAgICAv
LyBEbyBub3QgaW5jbHVkZSBhbHJlYWR5IHByb2Nlc3NlZCBpdGVtcy4KLSAgICAgICAgICAgICAg
ICBpZiAoaSA+IDAgJiYgc3Bhbi5pbml0aWFsUG9zaXRpb25JbmRleCA8PSBmbGV4aWJsZVNpemVk
VHJhY2tzSW5kZXhbaSAtIDFdKQorICAgICAgICAgICAgICAgIGlmIChpID4gMCAmJiBzcGFuLnJl
c29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCkgPD0gZmxleGlibGVTaXplZFRyYWNrc0luZGV4
W2kgLSAxXSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgICAg
ICBkb3VibGUgaXRlbU5vcm1hbGl6ZWRGbGV4QnJlYWR0aCA9IGNvbXB1dGVOb3JtYWxpemVkRnJh
Y3Rpb25CcmVhZHRoKHRyYWNrcywgc3BhbiwgZGlyZWN0aW9uLCBtYXhDb250ZW50Rm9yQ2hpbGQo
Z3JpZEl0ZW0sIGRpcmVjdGlvbiwgc2l6aW5nRGF0YS5jb2x1bW5UcmFja3MpKTsKQEAgLTQwMSwx
MiArNDAyLDEyIEBAIGRvdWJsZSBSZW5kZXJHcmlkOjpjb21wdXRlTm9ybWFsaXplZEZyYWN0aW9u
QnJlYWR0aChWZWN0b3I8R3JpZFRyYWNrPiYgdHJhY2tzLCBjCiAgICAgLy8gfGF2YWlsYWJsZUxv
Z2ljYWxTcGFjZXwgYWxyZWFkeSBhY2NvdW50cyBmb3IgdGhlIHVzZWQgYnJlYWR0aHMgc28gbm8g
bmVlZCB0byByZW1vdmUgaXQgaGVyZS4KIAogICAgIFZlY3RvcjxHcmlkVHJhY2tGb3JOb3JtYWxp
emF0aW9uPiB0cmFja3NGb3JOb3JtYWxpemF0aW9uOwotICAgIGZvciAoc2l6ZV90IGkgPSB0cmFj
a3NTcGFuLmluaXRpYWxQb3NpdGlvbkluZGV4OyBpIDw9IHRyYWNrc1NwYW4uZmluYWxQb3NpdGlv
bkluZGV4OyArK2kpIHsKLSAgICAgICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXplID0g
Z3JpZFRyYWNrU2l6ZShkaXJlY3Rpb24sIGkpOworICAgIGZvciAoR3JpZFJlc29sdmVkUG9zaXRp
b24gcG9zaXRpb24gPSB0cmFja3NTcGFuLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOyBwb3NpdGlv
biA8PSB0cmFja3NTcGFuLnJlc29sdmVkRmluYWxQb3NpdGlvbjsgKytwb3NpdGlvbikgeworICAg
ICAgICBjb25zdCBHcmlkVHJhY2tTaXplJiB0cmFja1NpemUgPSBncmlkVHJhY2tTaXplKGRpcmVj
dGlvbiwgcG9zaXRpb24udG9JbnQoKSk7CiAgICAgICAgIGlmICghdHJhY2tTaXplLm1heFRyYWNr
QnJlYWR0aCgpLmlzRmxleCgpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgdHJh
Y2tzRm9yTm9ybWFsaXphdGlvbi5hcHBlbmQoR3JpZFRyYWNrRm9yTm9ybWFsaXphdGlvbih0cmFj
a3NbaV0sIHRyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5mbGV4KCkpKTsKKyAgICAgICAgdHJh
Y2tzRm9yTm9ybWFsaXphdGlvbi5hcHBlbmQoR3JpZFRyYWNrRm9yTm9ybWFsaXphdGlvbih0cmFj
a3NbcG9zaXRpb24udG9JbnQoKV0sIHRyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5mbGV4KCkp
KTsKICAgICB9CiAKICAgICAvLyBUaGUgZnVuY3Rpb24gaXMgbm90IGNhbGxlZCBpZiB3ZSBkb24n
dCBoYXZlIDxmbGV4PiBncmlkIHRyYWNrcwpAQCAtNDYyLDI2ICs0NjMsNiBAQCBjb25zdCBHcmlk
VHJhY2tTaXplJiBSZW5kZXJHcmlkOjpncmlkVHJhY2tTaXplKEdyaWRUcmFja1NpemluZ0RpcmVj
dGlvbiBkaXJlY3RpbwogICAgIHJldHVybiB0cmFja1NpemU7CiB9CiAKLXNpemVfdCBSZW5kZXJH
cmlkOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0eWxl
KCkuZ3JpZENvbHVtbnMoKS5zaXplKCk7Ci19Ci0KLXNpemVfdCBSZW5kZXJHcmlkOjpleHBsaWNp
dEdyaWRSb3dDb3VudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0eWxlKCkuZ3JpZFJvd3MoKS5z
aXplKCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbHVtblNpZGUoR3JpZFBvc2l0aW9u
U2lkZSBzaWRlKQotewotICAgIHJldHVybiBzaWRlID09IENvbHVtblN0YXJ0U2lkZSB8fCBzaWRl
ID09IENvbHVtbkVuZFNpZGU7Ci19Ci0KLXNpemVfdCBSZW5kZXJHcmlkOjpleHBsaWNpdEdyaWRT
aXplRm9yU2lkZShHcmlkUG9zaXRpb25TaWRlIHNpZGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlz
Q29sdW1uU2lkZShzaWRlKSA/IGV4cGxpY2l0R3JpZENvbHVtbkNvdW50KCkgOiBleHBsaWNpdEdy
aWRSb3dDb3VudCgpOwotfQotCiBMYXlvdXRVbml0IFJlbmRlckdyaWQ6OmxvZ2ljYWxDb250ZW50
SGVpZ2h0Rm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgVmVjdG9yPEdyaWRUcmFjaz4mIGNvbHVt
blRyYWNrcykKIHsKICAgICBMYXlvdXRVbml0IG9sZE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29u
dGVudExvZ2ljYWxXaWR0aCA9IGNoaWxkLT5oYXNPdmVycmlkZUNvbnRhaW5pbmdCbG9ja0xvZ2lj
YWxXaWR0aCgpID8gY2hpbGQtPm92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxX
aWR0aCgpIDogTGF5b3V0VW5pdCgpOwpAQCAtNTUxLDE2ICs1MzIsMTYgQEAgdm9pZCBSZW5kZXJH
cmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnMoR3JpZFRyYWNrU2l6
aW5nRGlyZWN0aW8KIHZvaWQgUmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6
aW5nRnVuY3Rpb25zRm9ySXRlbXMoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwg
R3JpZFNpemluZ0RhdGEmIHNpemluZ0RhdGEsIFJlbmRlckJveCogZ3JpZEl0ZW0sIEZpbHRlckZ1
bmN0aW9uIGZpbHRlckZ1bmN0aW9uLCBTaXppbmdGdW5jdGlvbiBzaXppbmdGdW5jdGlvbiwgQWNj
dW11bGF0b3JHZXR0ZXIgdHJhY2tHZXR0ZXIsIEFjY3VtdWxhdG9yR3Jvd0Z1bmN0aW9uIHRyYWNr
R3Jvd3RoRnVuY3Rpb24pCiB7CiAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUgY29vcmRpbmF0ZSA9
IGNhY2hlZEdyaWRDb29yZGluYXRlKGdyaWRJdGVtKTsKLSAgICBjb25zdCBzaXplX3QgaW5pdGlh
bFRyYWNrSW5kZXggPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gY29vcmRpbmF0ZS5jb2x1
bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4IDogY29vcmRpbmF0ZS5yb3dzLmluaXRpYWxQb3NpdGlv
bkluZGV4OwotICAgIGNvbnN0IHNpemVfdCBmaW5hbFRyYWNrSW5kZXggPSAoZGlyZWN0aW9uID09
IEZvckNvbHVtbnMpID8gY29vcmRpbmF0ZS5jb2x1bW5zLmZpbmFsUG9zaXRpb25JbmRleCA6IGNv
b3JkaW5hdGUucm93cy5maW5hbFBvc2l0aW9uSW5kZXg7CisgICAgY29uc3QgR3JpZFJlc29sdmVk
UG9zaXRpb24gaW5pdGlhbFRyYWNrUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMp
ID8gY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uIDogY29vcmRpbmF0
ZS5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOworICAgIGNvbnN0IEdyaWRSZXNvbHZlZFBv
c2l0aW9uIGZpbmFsVHJhY2tQb3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBj
b29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRGaW5hbFBvc2l0aW9uIDogY29vcmRpbmF0ZS5yb3dz
LnJlc29sdmVkRmluYWxQb3NpdGlvbjsKIAogICAgIHNpemluZ0RhdGEuZmlsdGVyZWRUcmFja3Mu
c2hyaW5rKDApOwotICAgIGZvciAoc2l6ZV90IHRyYWNrSW5kZXggPSBpbml0aWFsVHJhY2tJbmRl
eDsgdHJhY2tJbmRleCA8PSBmaW5hbFRyYWNrSW5kZXg7ICsrdHJhY2tJbmRleCkgewotICAgICAg
ICBjb25zdCBHcmlkVHJhY2tTaXplJiB0cmFja1NpemUgPSBncmlkVHJhY2tTaXplKGRpcmVjdGlv
biwgdHJhY2tJbmRleCk7CisgICAgZm9yIChHcmlkUmVzb2x2ZWRQb3NpdGlvbiB0cmFja0luZGV4
ID0gaW5pdGlhbFRyYWNrUG9zaXRpb247IHRyYWNrSW5kZXggPD0gZmluYWxUcmFja1Bvc2l0aW9u
OyArK3RyYWNrSW5kZXgpIHsKKyAgICAgICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXpl
ID0gZ3JpZFRyYWNrU2l6ZShkaXJlY3Rpb24sIHRyYWNrSW5kZXgudG9JbnQoKSk7CiAgICAgICAg
IGlmICghKHRyYWNrU2l6ZS4qZmlsdGVyRnVuY3Rpb24pKCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICBHcmlkVHJhY2smIHRyYWNrID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5z
KSA/IHNpemluZ0RhdGEuY29sdW1uVHJhY2tzW3RyYWNrSW5kZXhdIDogc2l6aW5nRGF0YS5yb3dU
cmFja3NbdHJhY2tJbmRleF07CisgICAgICAgIEdyaWRUcmFjayYgdHJhY2sgPSAoZGlyZWN0aW9u
ID09IEZvckNvbHVtbnMpID8gc2l6aW5nRGF0YS5jb2x1bW5UcmFja3NbdHJhY2tJbmRleC50b0lu
dCgpXSA6IHNpemluZ0RhdGEucm93VHJhY2tzW3RyYWNrSW5kZXgudG9JbnQoKV07CiAgICAgICAg
IHNpemluZ0RhdGEuZmlsdGVyZWRUcmFja3MuYXBwZW5kKCZ0cmFjayk7CiAgICAgfQogCkBAIC01
NjgsOCArNTQ5LDggQEAgdm9pZCBSZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tT
aXppbmdGdW5jdGlvbnNGb3JJdGVtcyhHcmlkVHJhY2tTaXppbmcKICAgICAgICAgcmV0dXJuOwog
CiAgICAgTGF5b3V0VW5pdCBhZGRpdGlvbmFsQnJlYWR0aFNwYWNlID0gKHRoaXMtPipzaXppbmdG
dW5jdGlvbikoZ3JpZEl0ZW0sIGRpcmVjdGlvbiwgc2l6aW5nRGF0YS5jb2x1bW5UcmFja3MpOwot
ICAgIGZvciAoc2l6ZV90IHRyYWNrSW5kZXhGb3JTcGFjZSA9IGluaXRpYWxUcmFja0luZGV4OyB0
cmFja0luZGV4Rm9yU3BhY2UgPD0gZmluYWxUcmFja0luZGV4OyArK3RyYWNrSW5kZXhGb3JTcGFj
ZSkgewotICAgICAgICBHcmlkVHJhY2smIHRyYWNrID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5z
KSA/IHNpemluZ0RhdGEuY29sdW1uVHJhY2tzW3RyYWNrSW5kZXhGb3JTcGFjZV0gOiBzaXppbmdE
YXRhLnJvd1RyYWNrc1t0cmFja0luZGV4Rm9yU3BhY2VdOworICAgIGZvciAoR3JpZFJlc29sdmVk
UG9zaXRpb24gdHJhY2tQb3NpdGlvbkZvclNwYWNlID0gaW5pdGlhbFRyYWNrUG9zaXRpb247IHRy
YWNrUG9zaXRpb25Gb3JTcGFjZSA8PSBmaW5hbFRyYWNrUG9zaXRpb247ICsrdHJhY2tQb3NpdGlv
bkZvclNwYWNlKSB7CisgICAgICAgIEdyaWRUcmFjayYgdHJhY2sgPSAoZGlyZWN0aW9uID09IEZv
ckNvbHVtbnMpID8gc2l6aW5nRGF0YS5jb2x1bW5UcmFja3NbdHJhY2tQb3NpdGlvbkZvclNwYWNl
LnRvSW50KCldIDogc2l6aW5nRGF0YS5yb3dUcmFja3NbdHJhY2tQb3NpdGlvbkZvclNwYWNlLnRv
SW50KCldOwogICAgICAgICBhZGRpdGlvbmFsQnJlYWR0aFNwYWNlIC09ICh0cmFjay4qdHJhY2tH
ZXR0ZXIpKCk7CiAgICAgfQogCkBAIC02NDMsMTcgKzYyNCwxNyBAQCB2b2lkIFJlbmRlckdyaWQ6
Omdyb3dHcmlkKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAKIHZvaWQgUmVu
ZGVyR3JpZDo6aW5zZXJ0SXRlbUludG9HcmlkKFJlbmRlckJveCogY2hpbGQsIGNvbnN0IEdyaWRD
b29yZGluYXRlJiBjb29yZGluYXRlKQogewotICAgIGZvciAoc2l6ZV90IHJvdyA9IGNvb3JkaW5h
dGUucm93cy5pbml0aWFsUG9zaXRpb25JbmRleDsgcm93IDw9IGNvb3JkaW5hdGUucm93cy5maW5h
bFBvc2l0aW9uSW5kZXg7ICsrcm93KSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGNvbHVtbiA9IGNv
b3JkaW5hdGUuY29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleDsgY29sdW1uIDw9IGNvb3JkaW5h
dGUuY29sdW1ucy5maW5hbFBvc2l0aW9uSW5kZXg7ICsrY29sdW1uKQotICAgICAgICAgICAgbV9n
cmlkW3Jvd11bY29sdW1uXS5hcHBlbmQoY2hpbGQpOworICAgIGZvciAoR3JpZFJlc29sdmVkUG9z
aXRpb24gcm93ID0gY29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOyByb3cg
PD0gY29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkRmluYWxQb3NpdGlvbjsgKytyb3cpIHsKKyAgICAg
ICAgZm9yIChHcmlkUmVzb2x2ZWRQb3NpdGlvbiBjb2x1bW4gPSBjb29yZGluYXRlLmNvbHVtbnMu
cmVzb2x2ZWRJbml0aWFsUG9zaXRpb247IGNvbHVtbiA8PSBjb29yZGluYXRlLmNvbHVtbnMucmVz
b2x2ZWRGaW5hbFBvc2l0aW9uOyArK2NvbHVtbikKKyAgICAgICAgICAgIG1fZ3JpZFtyb3cudG9J
bnQoKV1bY29sdW1uLnRvSW50KCldLmFwcGVuZChjaGlsZCk7CiAgICAgfQogICAgIG1fZ3JpZEl0
ZW1Db29yZGluYXRlLnNldChjaGlsZCwgY29vcmRpbmF0ZSk7CiB9CiAKLXZvaWQgUmVuZGVyR3Jp
ZDo6aW5zZXJ0SXRlbUludG9HcmlkKFJlbmRlckJveCogY2hpbGQsIHNpemVfdCByb3dUcmFjaywg
c2l6ZV90IGNvbHVtblRyYWNrKQordm9pZCBSZW5kZXJHcmlkOjppbnNlcnRJdGVtSW50b0dyaWQo
UmVuZGVyQm94KiBjaGlsZCwgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJvd1RyYWNrLCBj
b25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgY29sdW1uVHJhY2spCiB7Ci0gICAgY29uc3QgR3Jp
ZFNwYW4mIHJvd1NwYW4gPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9z
aXRpb24oY2hpbGQsIEZvclJvd3MsIHJvd1RyYWNrKTsKLSAgICBjb25zdCBHcmlkU3BhbiYgY29s
dW1uU3BhbiA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbihj
aGlsZCwgRm9yQ29sdW1ucywgY29sdW1uVHJhY2spOworICAgIGNvbnN0IEdyaWRTcGFuJiByb3dT
cGFuID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9Q
bGFjZW1lbnRQb3NpdGlvbigqY2hpbGQsIEZvclJvd3MsIHJvd1RyYWNrKTsKKyAgICBjb25zdCBH
cmlkU3BhbiYgY29sdW1uU3BhbiA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBv
c2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24oKmNoaWxkLCBGb3JDb2x1bW5zLCBjb2x1
bW5UcmFjayk7CiAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGNoaWxkLCBHcmlkQ29vcmRpbmF0ZShy
b3dTcGFuLCBjb2x1bW5TcGFuKSk7CiB9CiAKQEAgLTY3MCw4ICs2NTEsOCBAQCB2b2lkIFJlbmRl
ckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQoKQogICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IG1f
b3JkZXJJdGVyYXRvci5maXJzdCgpOyBjaGlsZDsgY2hpbGQgPSBtX29yZGVySXRlcmF0b3IubmV4
dCgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBuZXZlciByZS1yZXNvbHZlIHBvc2l0aW9ucyBp
ZiB0aGUgZ3JpZCBpcyBncm93biBkdXJpbmcgYXV0by1wbGFjZW1lbnQgd2hpY2ggbWF5IGxlYWQg
YXV0byAvIDxpbnRlZ2VyPgogICAgICAgICAvLyBwb3NpdGlvbnMgdG8gbm90IG1hdGNoIHRoZSBh
dXRob3IncyBpbnRlbnQuIFRoZSBzcGVjaWZpY2F0aW9uIGlzIHVuY2xlYXIgb24gd2hhdCBzaG91
bGQgYmUgZG9uZSBpbiB0aGlzIGNhc2UuCi0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bh
bj4gcm93UG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY2hpbGQsIEZv
clJvd3MpOwotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IGNvbHVtblBvc2l0aW9u
cyA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNoaWxkLCBGb3JDb2x1bW5zKTsKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByb3dQb3NpdGlvbnMgPSBHcmlkUmVzb2x2
ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgKmNoaWxk
LCBGb3JSb3dzKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBjb2x1bW5Qb3Np
dGlvbnMgPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5
bGUoc3R5bGUoKSwgKmNoaWxkLCBGb3JDb2x1bW5zKTsKICAgICAgICAgaWYgKCFyb3dQb3NpdGlv
bnMgfHwgIWNvbHVtblBvc2l0aW9ucykgewogICAgICAgICAgICAgR3JpZFNwYW4qIG1ham9yQXhp
c1Bvc2l0aW9ucyA9IChhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkgPT0gRm9yQ29s
dW1ucykgPyBjb2x1bW5Qb3NpdGlvbnMuZ2V0KCkgOiByb3dQb3NpdGlvbnMuZ2V0KCk7CiAgICAg
ICAgICAgICBpZiAoIW1ham9yQXhpc1Bvc2l0aW9ucykKQEAgLTcwMSw4ICs2ODIsOCBAQCB2b2lk
IFJlbmRlckdyaWQ6OnBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRvcigpCiB7CiAg
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIHNoYXJlIE9yZGVyVmFsdWVzJ3Mg
aW5pdGlhbGl6YXRpb24gY29kZSB3aXRoIFJlbmRlckZsZXhpYmxlQm94LgogICAgIE9yZGVySXRl
cmF0b3I6Ok9yZGVyVmFsdWVzIG9yZGVyVmFsdWVzOwotICAgIHNpemVfdCBtYXhpbXVtUm93SW5k
ZXggPSBzdGQ6Om1heDxzaXplX3Q+KDEsIGV4cGxpY2l0R3JpZFJvd0NvdW50KCkpOwotICAgIHNp
emVfdCBtYXhpbXVtQ29sdW1uSW5kZXggPSBzdGQ6Om1heDxzaXplX3Q+KDEsIGV4cGxpY2l0R3Jp
ZENvbHVtbkNvdW50KCkpOworICAgIHNpemVfdCBtYXhpbXVtUm93SW5kZXggPSBzdGQ6Om1heDxz
aXplX3Q+KDEsIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdyaWRSb3dDb3VudChzdHls
ZSgpKSk7CisgICAgc2l6ZV90IG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4o
MSwgR3JpZFJlc29sdmVkUG9zaXRpb246OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KHN0eWxlKCkp
KTsKIAogICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGZpcnN0Q2hpbGRCb3goKTsgY2hpbGQ7
IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nQm94KCkpIHsKICAgICAgICAgLy8gQXZvaWQgZ3Jv
d2luZyB0aGUgdmVjdG9yIGZvciB0aGUgY29tbW9uLWNhc2UgZGVmYXVsdCB2YWx1ZSBvZiAwLiBU
aGlzIG9wdGltaXplcyB0aGUgbW9zdCBjb21tb24gY2FzZSB3aGljaCBpcwpAQCAtNzEyLDE1ICs2
OTMsMTUgQEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRl
cmF0b3IoKQogICAgICAgICAgICAgb3JkZXJWYWx1ZXMuYXBwZW5kKG9yZGVyKTsKIAogICAgICAg
ICAvLyBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBjYWNoZSAoY2FjaGVkR3JpZENvb3JkaW5h
dGUoKSkgYXMgaXQgaXMgdXNlZCB0byBidWlsZCBpdC4KLSAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PEdyaWRTcGFuPiByb3dQb3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShj
aGlsZCwgRm9yUm93cyk7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gY29sdW1u
UG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY2hpbGQsIEZvckNvbHVt
bnMpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJvd1Bvc2l0aW9ucyA9IEdy
aWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgp
LCAqY2hpbGQsIEZvclJvd3MpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IGNv
bHVtblBvc2l0aW9ucyA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9u
c0Zyb21TdHlsZShzdHlsZSgpLCAqY2hpbGQsIEZvckNvbHVtbnMpOwogCiAgICAgICAgIC8vIHxw
b3NpdGlvbnN8IGlzIDAgaWYgd2UgbmVlZCB0byBydW4gdGhlIGF1dG8tcGxhY2VtZW50IGFsZ29y
aXRobS4gT3VyIGVzdGltYXRpb24gaWdub3JlcwogICAgICAgICAvLyB0aGlzIGNhc2UgYXMgdGhl
IGF1dG8tcGxhY2VtZW50IGFsZ29yaXRobSB3aWxsIGdyb3cgdGhlIGdyaWQgYXMgbmVlZGVkLgog
ICAgICAgICBpZiAocm93UG9zaXRpb25zKQotICAgICAgICAgICAgbWF4aW11bVJvd0luZGV4ID0g
c3RkOjptYXgobWF4aW11bVJvd0luZGV4LCByb3dQb3NpdGlvbnMtPmZpbmFsUG9zaXRpb25JbmRl
eCArIDEpOworICAgICAgICAgICAgbWF4aW11bVJvd0luZGV4ID0gc3RkOjptYXgobWF4aW11bVJv
d0luZGV4LCByb3dQb3NpdGlvbnMtPnJlc29sdmVkRmluYWxQb3NpdGlvbi50b0ludCgpICsgMSk7
CiAgICAgICAgIGlmIChjb2x1bW5Qb3NpdGlvbnMpCi0gICAgICAgICAgICBtYXhpbXVtQ29sdW1u
SW5kZXggPSBzdGQ6Om1heChtYXhpbXVtQ29sdW1uSW5kZXgsIGNvbHVtblBvc2l0aW9ucy0+Zmlu
YWxQb3NpdGlvbkluZGV4ICsgMSk7CisgICAgICAgICAgICBtYXhpbXVtQ29sdW1uSW5kZXggPSBz
dGQ6Om1heChtYXhpbXVtQ29sdW1uSW5kZXgsIGNvbHVtblBvc2l0aW9ucy0+cmVzb2x2ZWRGaW5h
bFBvc2l0aW9uLnRvSW50KCkgKyAxKTsKICAgICB9CiAKICAgICBtX2dyaWQuZ3JvdyhtYXhpbXVt
Um93SW5kZXgpOwpAQCAtNzMzLDE3ICs3MTQsMTcgQEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0
ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoKQogdm9pZCBSZW5kZXJHcmlkOjpwbGFjZVNw
ZWNpZmllZE1ham9yQXhpc0l0ZW1zT25HcmlkKGNvbnN0IFZlY3RvcjxSZW5kZXJCb3gqPiYgYXV0
b0dyaWRJdGVtcykKIHsKICAgICBmb3IgKGF1dG8mIGF1dG9HcmlkSXRlbSA6IGF1dG9HcmlkSXRl
bXMpIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBtYWpvckF4aXNQb3NpdGlv
bnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShhdXRvR3JpZEl0ZW0sIGF1dG9QbGFj
ZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSk7Ci0gICAgICAgIEdyaWRJdGVyYXRvciBpdGVyYXRv
cihtX2dyaWQsIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgbWFqb3JBeGlzUG9z
aXRpb25zLT5pbml0aWFsUG9zaXRpb25JbmRleCk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxH
cmlkU3Bhbj4gbWFqb3JBeGlzUG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29s
dmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICphdXRvR3JpZEl0ZW0sIGF1dG9QbGFj
ZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSk7CisgICAgICAgIEdyaWRJdGVyYXRvciBpdGVyYXRv
cihtX2dyaWQsIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgbWFqb3JBeGlzUG9z
aXRpb25zLT5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpKTsKICAgICAgICAgaWYgKHN0
ZDo6dW5pcXVlX3B0cjxHcmlkQ29vcmRpbmF0ZT4gZW1wdHlHcmlkQXJlYSA9IGl0ZXJhdG9yLm5l
eHRFbXB0eUdyaWRBcmVhKCkpIHsKLSAgICAgICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChhdXRv
R3JpZEl0ZW0sIGVtcHR5R3JpZEFyZWEtPnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXgsIGVtcHR5
R3JpZEFyZWEtPmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXgpOworICAgICAgICAgICAgaW5z
ZXJ0SXRlbUludG9HcmlkKGF1dG9HcmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5yZXNvbHZl
ZEluaXRpYWxQb3NpdGlvbiwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5yZXNvbHZlZEluaXRpYWxQ
b3NpdGlvbik7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIGdy
b3dHcmlkKGF1dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSk7CiAgICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxHcmlkQ29vcmRpbmF0ZT4gZW1wdHlHcmlkQXJlYSA9IGl0ZXJhdG9yLm5leHRF
bXB0eUdyaWRBcmVhKCk7CiAgICAgICAgIEFTU0VSVChlbXB0eUdyaWRBcmVhKTsKLSAgICAgICAg
aW5zZXJ0SXRlbUludG9HcmlkKGF1dG9HcmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5pbml0
aWFsUG9zaXRpb25JbmRleCwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5pbml0aWFsUG9zaXRpb25J
bmRleCk7CisgICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChhdXRvR3JpZEl0ZW0sIGVtcHR5R3Jp
ZEFyZWEtPnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIGVtcHR5R3JpZEFyZWEtPmNvbHVt
bnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24pOwogICAgIH0KIH0KIApAQCAtNzU1LDE0ICs3MzYs
MTQgQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUF1dG9NYWpvckF4aXNJdGVtc09uR3JpZChjb25z
dCBWZWN0b3I8UmVuZGVyQm94Kj4mIGF1dG9HcmkKIAogdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUF1
dG9NYWpvckF4aXNJdGVtT25HcmlkKFJlbmRlckJveCogZ3JpZEl0ZW0pCiB7Ci0gICAgc3RkOjp1
bmlxdWVfcHRyPEdyaWRTcGFuPiBtaW5vckF4aXNQb3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0
aW9uc0Zyb21TdHlsZShncmlkSXRlbSwgYXV0b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigp
KTsKLSAgICBBU1NFUlQoIXJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGdyaWRJdGVtLCBh
dXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
R3JpZFNwYW4+IG1pbm9yQXhpc1Bvc2l0aW9ucyA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNv
bHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqZ3JpZEl0ZW0sIGF1dG9QbGFjZW1l
bnRNaW5vckF4aXNEaXJlY3Rpb24oKSk7CisgICAgQVNTRVJUKCFHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgKmdyaWRJdGVtLCBhdXRv
UGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkpKTsKICAgICBzaXplX3QgbWlub3JBeGlzSW5k
ZXggPSAwOwogICAgIGlmIChtaW5vckF4aXNQb3NpdGlvbnMpIHsKLSAgICAgICAgbWlub3JBeGlz
SW5kZXggPSBtaW5vckF4aXNQb3NpdGlvbnMtPmluaXRpYWxQb3NpdGlvbkluZGV4OworICAgICAg
ICBtaW5vckF4aXNJbmRleCA9IG1pbm9yQXhpc1Bvc2l0aW9ucy0+cmVzb2x2ZWRJbml0aWFsUG9z
aXRpb24udG9JbnQoKTsKICAgICAgICAgR3JpZEl0ZXJhdG9yIGl0ZXJhdG9yKG1fZ3JpZCwgYXV0
b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigpLCBtaW5vckF4aXNJbmRleCk7CiAgICAgICAg
IGlmIChzdGQ6OnVuaXF1ZV9wdHI8R3JpZENvb3JkaW5hdGU+IGVtcHR5R3JpZEFyZWEgPSBpdGVy
YXRvci5uZXh0RW1wdHlHcmlkQXJlYSgpKSB7Ci0gICAgICAgICAgICBpbnNlcnRJdGVtSW50b0dy
aWQoZ3JpZEl0ZW0sIGVtcHR5R3JpZEFyZWEtPnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXgsIGVt
cHR5R3JpZEFyZWEtPmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXgpOworICAgICAgICAgICAg
aW5zZXJ0SXRlbUludG9HcmlkKGdyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dzLnJlc29sdmVk
SW5pdGlhbFBvc2l0aW9uLCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBv
c2l0aW9uKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CkBA
IC03NzAsNyArNzUxLDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUF1dG9NYWpvckF4aXNJdGVt
T25HcmlkKFJlbmRlckJveCogZ3JpZEl0ZW0pCiAgICAgICAgIGZvciAoc2l6ZV90IG1ham9yQXhp
c0luZGV4ID0gMDsgbWFqb3JBeGlzSW5kZXggPCBlbmRPZk1ham9yQXhpczsgKyttYWpvckF4aXNJ
bmRleCkgewogICAgICAgICAgICAgR3JpZEl0ZXJhdG9yIGl0ZXJhdG9yKG1fZ3JpZCwgYXV0b1Bs
YWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpLCBtYWpvckF4aXNJbmRleCk7CiAgICAgICAgICAg
ICBpZiAoc3RkOjp1bmlxdWVfcHRyPEdyaWRDb29yZGluYXRlPiBlbXB0eUdyaWRBcmVhID0gaXRl
cmF0b3IubmV4dEVtcHR5R3JpZEFyZWEoKSkgewotICAgICAgICAgICAgICAgIGluc2VydEl0ZW1J
bnRvR3JpZChncmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5pbml0aWFsUG9zaXRpb25JbmRl
eCwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleCk7CisgICAgICAg
ICAgICAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGdyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dz
LnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5zLnJlc29sdmVk
SW5pdGlhbFBvc2l0aW9uKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KQEAgLTc4MywxNCArNzY0LDE0IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VB
dXRvTWFqb3JBeGlzSXRlbU9uR3JpZChSZW5kZXJCb3gqIGdyaWRJdGVtKQogICAgIGluc2VydEl0
ZW1JbnRvR3JpZChncmlkSXRlbSwgcm93SW5kZXgsIGNvbHVtbkluZGV4KTsKIH0KIAotUmVuZGVy
R3JpZDo6R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIFJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRN
YWpvckF4aXNEaXJlY3Rpb24oKSBjb25zdAorR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIFJlbmRl
ckdyaWQ6OmF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSBjb25zdAogewogICAgIEdy
aWRBdXRvRmxvdyBmbG93ID0gc3R5bGUoKS5ncmlkQXV0b0Zsb3coKTsKICAgICBBU1NFUlQoZmxv
dyAhPSBBdXRvRmxvd05vbmUpOwogICAgIHJldHVybiAoZmxvdyA9PSBBdXRvRmxvd0NvbHVtbikg
PyBGb3JDb2x1bW5zIDogRm9yUm93czsKIH0KIAotUmVuZGVyR3JpZDo6R3JpZFRyYWNrU2l6aW5n
RGlyZWN0aW9uIFJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSBj
b25zdAorR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIFJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRN
aW5vckF4aXNEaXJlY3Rpb24oKSBjb25zdAogewogICAgIEdyaWRBdXRvRmxvdyBmbG93ID0gc3R5
bGUoKS5ncmlkQXV0b0Zsb3coKTsKICAgICBBU1NFUlQoZmxvdyAhPSBBdXRvRmxvd05vbmUpOwpA
QCAtODU5LDI5NiArODQwLDEzIEBAIEdyaWRDb29yZGluYXRlIFJlbmRlckdyaWQ6OmNhY2hlZEdy
aWRDb29yZGluYXRlKGNvbnN0IFJlbmRlckJveCogZ3JpZEl0ZW0pIGNvbnN0CiAgICAgcmV0dXJu
IG1fZ3JpZEl0ZW1Db29yZGluYXRlLmdldChncmlkSXRlbSk7CiB9CiAKLUdyaWRTcGFuIFJlbmRl
ckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbihjb25z
dCBSZW5kZXJCb3gqLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIHNpemVfdCBpbml0aWFsUG9z
aXRpb24pIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IFdlIGRvbid0IHN1cHBvcnQgc3Bhbm5pbmcg
d2l0aCBhdXRvIHBvc2l0aW9ucyB5ZXQuIE9uY2Ugd2UgZG8sIHRoaXMgaXMgd3JvbmcuIEFsc28g
d2Ugc2hvdWxkIG1ha2UKLSAgICAvLyBzdXJlIHRoZSBncmlkIGNhbiBhY2NvbW9kYXRlIHRoZSBu
ZXcgaXRlbSBhcyB3ZSBvbmx5IGdyb3cgMSBwb3NpdGlvbiBpbiBhIGdpdmVuIGRpcmVjdGlvbi4K
LSAgICByZXR1cm4gR3JpZFNwYW4oaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb24pOwot
fQotCi1zdGF0aWMgaW5saW5lIGJvb2wgZ3JpZExpbmVEZWZpbmVkQmVmb3JlR3JpZEFyZWEoc2l6
ZV90IG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24sIGNvbnN0IEdyaWRDb29yZGluYXRlJiBn
cmlkQXJlYUNvb3JkaW5hdGVzLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCi17Ci0gICAgc3dpdGNo
IChzaWRlKSB7Ci0gICAgY2FzZSBDb2x1bW5TdGFydFNpZGU6Ci0gICAgICAgIHJldHVybiBuYW1l
ZEdyaWRMaW5lRmlyc3REZWZpbml0aW9uIDwgZ3JpZEFyZWFDb29yZGluYXRlcy5jb2x1bW5zLmlu
aXRpYWxQb3NpdGlvbkluZGV4OwotICAgIGNhc2UgQ29sdW1uRW5kU2lkZToKLSAgICAgICAgcmV0
dXJuIG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24gPCBncmlkQXJlYUNvb3JkaW5hdGVzLmNv
bHVtbnMuZmluYWxQb3NpdGlvbkluZGV4OwotICAgIGNhc2UgUm93U3RhcnRTaWRlOgotICAgICAg
ICByZXR1cm4gbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiA8IGdyaWRBcmVhQ29vcmRpbmF0
ZXMucm93cy5pbml0aWFsUG9zaXRpb25JbmRleDsKLSAgICBjYXNlIFJvd0VuZFNpZGU6Ci0gICAg
ICAgIHJldHVybiBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9uIDwgZ3JpZEFyZWFDb29yZGlu
YXRlcy5yb3dzLmZpbmFsUG9zaXRpb25JbmRleDsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgdm9pZCBzZXROYW1lZExpbmVQ
b3NpdGlvbklmRGVmaW5lZEJlZm9yZUFyZWEoR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgY29uc3Qg
TmFtZWRHcmlkTGluZXNNYXAmIG5hbWVkTGluZXNNYXAsIGNvbnN0IFN0cmluZyYgbGluZU5hbWUs
IGNvbnN0IEdyaWRDb29yZGluYXRlJiBncmlkQXJlYUNvb3JkaW5hdGUsIEdyaWRQb3NpdGlvblNp
ZGUgc2lkZSkKLXsKLSAgICBhdXRvIGxpbmVzSXRlcmF0b3IgPSBuYW1lZExpbmVzTWFwLmZpbmQo
bGluZU5hbWUpOwotICAgIGlmIChsaW5lc0l0ZXJhdG9yID09IG5hbWVkTGluZXNNYXAuZW5kKCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIHNpemVfdCBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0
aW9uID0gR3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGxpbmVzSXRlcmF0
b3ItPnZhbHVlWzBdLCBzaWRlKTsKLSAgICBpZiAoZ3JpZExpbmVEZWZpbmVkQmVmb3JlR3JpZEFy
ZWEobmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiwgZ3JpZEFyZWFDb29yZGluYXRlLCBzaWRl
KSkKLSAgICAgICAgcG9zaXRpb24uc2V0RXhwbGljaXRQb3NpdGlvbigxLCBsaW5lTmFtZSk7Ci19
Ci0KLXZvaWQgUmVuZGVyR3JpZDo6YWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uKEdyaWRQb3Np
dGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkgY29uc3QKLXsKLSAgICAvLyBU
aGUgU3R5bGVCdWlsZGVyIGFsd2F5cyB0cmVhdHMgPGN1c3RvbS1pZGVudD4gYXMgYSBuYW1lZCBn
cmlkIGFyZWEuIFdlIG11c3QgZGVjaWRlIGhlcmUgaWYgdGhleSBhcmUgZ29pbmcgdG8gYmUKLSAg
ICAvLyByZXNvbHZlZCB0byBlaXRoZXIgYSBncmlkIGFyZWEgb3IgYSBncmlkIGxpbmUuCi0gICAg
QVNTRVJUKHBvc2l0aW9uLmlzTmFtZWRHcmlkQXJlYSgpKTsKLSAgICBjb25zdCBOYW1lZEdyaWRB
cmVhTWFwJiBncmlkQXJlYU1hcCA9IHN0eWxlKCkubmFtZWRHcmlkQXJlYSgpOwotICAgIGNvbnN0
IE5hbWVkR3JpZExpbmVzTWFwJiBuYW1lZExpbmVzTWFwID0gaXNDb2x1bW5TaWRlKHNpZGUpID8g
c3R5bGUoKS5uYW1lZEdyaWRDb2x1bW5MaW5lcygpIDogc3R5bGUoKS5uYW1lZEdyaWRSb3dMaW5l
cygpOwotCi0gICAgU3RyaW5nIG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lID0gcG9zaXRpb24ubmFt
ZWRHcmlkTGluZSgpOwotICAgIGJvb2wgaXNTdGFydFNpZGUgPSBzaWRlID09IENvbHVtblN0YXJ0
U2lkZSB8fCBzaWRlID09IFJvd1N0YXJ0U2lkZTsKLQotICAgIGF1dG8gYXJlYUl0ZXJhdG9yID0g
Z3JpZEFyZWFNYXAuZmluZChuYW1lZEdyaWRBcmVhT3JHcmlkTGluZSk7Ci0gICAgaWYgKGFyZWFJ
dGVyYXRvciAhPSBncmlkQXJlYU1hcC5lbmQoKSkgewotICAgICAgICBTdHJpbmcgZ3JpZExpbmVO
YW1lID0gbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUgKyAoaXNTdGFydFNpZGUgPyAiLXN0YXJ0IiA6
ICItZW5kIik7Ci0gICAgICAgIHNldE5hbWVkTGluZVBvc2l0aW9uSWZEZWZpbmVkQmVmb3JlQXJl
YShwb3NpdGlvbiwgbmFtZWRMaW5lc01hcCwgZ3JpZExpbmVOYW1lLCBhcmVhSXRlcmF0b3ItPnZh
bHVlLCBzaWRlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGJvb2wgaGFzU3RhcnRT
dWZmaXggPSBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZS5lbmRzV2l0aCgiLXN0YXJ0Iik7Ci0gICAg
Ym9vbCBoYXNFbmRTdWZmaXggPSBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZS5lbmRzV2l0aCgiLWVu
ZCIpOwotICAgIGlmICgoaGFzU3RhcnRTdWZmaXggJiYgaXNTdGFydFNpZGUpIHx8IChoYXNFbmRT
dWZmaXggJiYgIWlzU3RhcnRTaWRlKSkgewotICAgICAgICBzaXplX3Qgc3VmZml4TGVuZ3RoID0g
aGFzU3RhcnRTdWZmaXggPyBzdHJsZW4oIi1zdGFydCIpIDogc3RybGVuKCItZW5kIik7Ci0gICAg
ICAgIFN0cmluZyBncmlkQXJlYU5hbWUgPSBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZS5zdWJzdHJp
bmcoMCwgbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUubGVuZ3RoKCkgLSBzdWZmaXhMZW5ndGgpOwot
Ci0gICAgICAgIGF1dG8gYXJlYUl0ZXJhdG9yID0gZ3JpZEFyZWFNYXAuZmluZChncmlkQXJlYU5h
bWUpOwotICAgICAgICBpZiAoYXJlYUl0ZXJhdG9yICE9IGdyaWRBcmVhTWFwLmVuZCgpKSB7Ci0g
ICAgICAgICAgICBwb3NpdGlvbi5zZXROYW1lZEdyaWRBcmVhKGdyaWRBcmVhTmFtZSk7Ci0gICAg
ICAgICAgICBzZXROYW1lZExpbmVQb3NpdGlvbklmRGVmaW5lZEJlZm9yZUFyZWEocG9zaXRpb24s
IG5hbWVkTGluZXNNYXAsIG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lLCBhcmVhSXRlcmF0b3ItPnZh
bHVlLCBzaWRlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IGlmIChuYW1lZExpbmVzTWFwLmNvbnRhaW5zKG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lKSkKLSAg
ICAgICAgcG9zaXRpb24uc2V0RXhwbGljaXRQb3NpdGlvbigxLCBuYW1lZEdyaWRBcmVhT3JHcmlk
TGluZSk7Ci0gICAgZWxzZQotICAgICAgICBwb3NpdGlvbi5zZXRBdXRvUG9zaXRpb24oKTsKLX0K
LQotdm9pZCBSZW5kZXJHcmlkOjphZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKEdyaWRQb3Np
dGlvbiYgaW5pdGlhbFBvc2l0aW9uLCBHcmlkUG9zaXRpb24mIGZpbmFsUG9zaXRpb24sIEdyaWRQ
b3NpdGlvblNpZGUgaW5pdGlhbFBvc2l0aW9uU2lkZSwgR3JpZFBvc2l0aW9uU2lkZSBmaW5hbFBv
c2l0aW9uU2lkZSkgY29uc3QKLXsKLSAgICBBU1NFUlQoaXNDb2x1bW5TaWRlKGluaXRpYWxQb3Np
dGlvblNpZGUpID09IGlzQ29sdW1uU2lkZShmaW5hbFBvc2l0aW9uU2lkZSkpOwotCi0gICAgLy8g
V2UgbXVzdCBoYW5kbGUgdGhlIHBsYWNlbWVudCBlcnJvciBoYW5kbGluZyBjb2RlIGhlcmUgaW5z
dGVhZCBvZiBpbiB0aGUgU3R5bGVBZGp1c3RlciBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8KLSAg
ICAvLyBvdmVyd3JpdGUgdGhlIHNwZWNpZmllZCB2YWx1ZXMuCi0gICAgaWYgKGluaXRpYWxQb3Np
dGlvbi5pc1NwYW4oKSAmJiBmaW5hbFBvc2l0aW9uLmlzU3BhbigpKQotICAgICAgICBmaW5hbFBv
c2l0aW9uLnNldEF1dG9Qb3NpdGlvbigpOwotCi0gICAgaWYgKGluaXRpYWxQb3NpdGlvbi5pc05h
bWVkR3JpZEFyZWEoKSkKLSAgICAgICAgYWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uKGluaXRp
YWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSk7Ci0KLSAgICBpZiAoZmluYWxQb3NpdGlv
bi5pc05hbWVkR3JpZEFyZWEoKSkKLSAgICAgICAgYWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9u
KGZpbmFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb25TaWRlKTsKLX0KLQotc3RkOjp1bmlxdWVfcHRy
PEdyaWRTcGFuPiBSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25z
dCBSZW5kZXJCb3gqIGdyaWRJdGVtLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9u
KSBjb25zdAotewotICAgIEdyaWRQb3NpdGlvbiBpbml0aWFsUG9zaXRpb24gPSAoZGlyZWN0aW9u
ID09IEZvckNvbHVtbnMpID8gZ3JpZEl0ZW0tPnN0eWxlKCkuZ3JpZEl0ZW1Db2x1bW5TdGFydCgp
IDogZ3JpZEl0ZW0tPnN0eWxlKCkuZ3JpZEl0ZW1Sb3dTdGFydCgpOwotICAgIGNvbnN0IEdyaWRQ
b3NpdGlvblNpZGUgaW5pdGlhbFBvc2l0aW9uU2lkZSA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1u
cykgPyBDb2x1bW5TdGFydFNpZGUgOiBSb3dTdGFydFNpZGU7Ci0gICAgR3JpZFBvc2l0aW9uIGZp
bmFsUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gZ3JpZEl0ZW0tPnN0eWxl
KCkuZ3JpZEl0ZW1Db2x1bW5FbmQoKSA6IGdyaWRJdGVtLT5zdHlsZSgpLmdyaWRJdGVtUm93RW5k
KCk7Ci0gICAgY29uc3QgR3JpZFBvc2l0aW9uU2lkZSBmaW5hbFBvc2l0aW9uU2lkZSA9IChkaXJl
Y3Rpb24gPT0gRm9yQ29sdW1ucykgPyBDb2x1bW5FbmRTaWRlIDogUm93RW5kU2lkZTsKLQotICAg
IGFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoaW5pdGlhbFBvc2l0aW9uLCBmaW5hbFBvc2l0
aW9uLCBpbml0aWFsUG9zaXRpb25TaWRlLCBmaW5hbFBvc2l0aW9uU2lkZSk7Ci0KLSAgICBpZiAo
aW5pdGlhbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigp
ICYmIGZpbmFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9u
KCkpIHsKLSAgICAgICAgaWYgKHN0eWxlKCkuZ3JpZEF1dG9GbG93KCkgPT0gQXV0b0Zsb3dOb25l
KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KDAsIDApOwot
Ci0gICAgICAgIC8vIFdlIGNhbid0IGdldCBvdXIgZ3JpZCBwb3NpdGlvbnMgd2l0aG91dCBydW5u
aW5nIHRoZSBhdXRvIHBsYWNlbWVudCBhbGdvcml0aG0uCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIH0KLQotICAgIGlmIChpbml0aWFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWlu
c3RPcHBvc2l0ZVBvc2l0aW9uKCkpIHsKLSAgICAgICAgLy8gSW5mZXIgdGhlIHBvc2l0aW9uIGZy
b20gdGhlIGZpbmFsIHBvc2l0aW9uICgnYXV0byAvIDEnIG9yICdzcGFuIDIgLyAzJyBjYXNlKS4K
LSAgICAgICAgY29uc3Qgc2l6ZV90IGZpbmFsUmVzb2x2ZWRQb3NpdGlvbiA9IHJlc29sdmVHcmlk
UG9zaXRpb25Gcm9tU3R5bGUoZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvblNpZGUpOwotICAg
ICAgICByZXR1cm4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGZp
bmFsUmVzb2x2ZWRQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRl
KTsKLSAgICB9Ci0KLSAgICBpZiAoZmluYWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVkQWdhaW5z
dE9wcG9zaXRlUG9zaXRpb24oKSkgewotICAgICAgICAvLyBJbmZlciBvdXIgcG9zaXRpb24gZnJv
bSB0aGUgaW5pdGlhbCBwb3NpdGlvbiAoJzEgLyBhdXRvJyBvciAnMyAvIHNwYW4gMicgY2FzZSku
Ci0gICAgICAgIGNvbnN0IHNpemVfdCBpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiA9IHJlc29sdmVH
cmlkUG9zaXRpb25Gcm9tU3R5bGUoaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRl
KTsKLSAgICAgICAgcmV0dXJuIHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3Np
dGlvbihpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiwgZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlv
blNpZGUpOwotICAgIH0KLQotICAgIHNpemVfdCByZXNvbHZlZEluaXRpYWxQb3NpdGlvbiA9IHJl
c29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRp
b25TaWRlKTsKLSAgICBzaXplX3QgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQ
b3NpdGlvbkZyb21TdHlsZShmaW5hbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uU2lkZSk7Ci0KLSAg
ICAvLyBJZiAnZ3JpZC1yb3ctZW5kJyBzcGVjaWZpZXMgYSBsaW5lIGF0IG9yIGJlZm9yZSB0aGF0
IHNwZWNpZmllZCBieSAnZ3JpZC1yb3ctc3RhcnQnLCBpdCBjb21wdXRlcyB0byAnc3BhbiAxJy4K
LSAgICBpZiAocmVzb2x2ZWRGaW5hbFBvc2l0aW9uIDwgcmVzb2x2ZWRJbml0aWFsUG9zaXRpb24p
Ci0gICAgICAgIHJlc29sdmVkRmluYWxQb3NpdGlvbiA9IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9u
OwotCi0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkSW5pdGlh
bFBvc2l0aW9uLCByZXNvbHZlZEZpbmFsUG9zaXRpb24pOwotfQotCi1zaXplX3QgUmVuZGVyR3Jp
ZDo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZShjb25zdCBHcmlkUG9zaXRp
b24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpIGNvbnN0Ci17Ci0gICAgQVNTRVJU
KCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpOwotCi0gICAgY29uc3QgTmFtZWRH
cmlkTGluZXNNYXAmIGdyaWRMaW5lc05hbWVzID0gaXNDb2x1bW5TaWRlKHNpZGUpID8gc3R5bGUo
KS5uYW1lZEdyaWRDb2x1bW5MaW5lcygpIDogc3R5bGUoKS5uYW1lZEdyaWRSb3dMaW5lcygpOwot
ICAgIE5hbWVkR3JpZExpbmVzTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGdyaWRMaW5lc05hbWVz
LmZpbmQocG9zaXRpb24ubmFtZWRHcmlkTGluZSgpKTsKLSAgICBpZiAoaXQgPT0gZ3JpZExpbmVz
TmFtZXMuZW5kKCkpIHsKLSAgICAgICAgaWYgKHBvc2l0aW9uLmlzUG9zaXRpdmUoKSkKLSAgICAg
ICAgICAgIHJldHVybiAwOwotICAgICAgICBjb25zdCBzaXplX3QgbGFzdExpbmUgPSBleHBsaWNp
dEdyaWRTaXplRm9yU2lkZShzaWRlKTsKLSAgICAgICAgcmV0dXJuIEdyaWRQb3NpdGlvbjo6YWRq
dXN0R3JpZFBvc2l0aW9uRm9yU2lkZShsYXN0TGluZSwgc2lkZSk7Ci0gICAgfQotCi0gICAgc2l6
ZV90IG5hbWVkR3JpZExpbmVJbmRleDsKLSAgICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgpKQot
ICAgICAgICBuYW1lZEdyaWRMaW5lSW5kZXggPSBzdGQ6Om1pbjxzaXplX3Q+KHBvc2l0aW9uLmlu
dGVnZXJQb3NpdGlvbigpLCBpdC0+dmFsdWUuc2l6ZSgpKSAtIDE7Ci0gICAgZWxzZQotICAgICAg
ICBuYW1lZEdyaWRMaW5lSW5kZXggPSBzdGQ6Om1heDxpbnQ+KGl0LT52YWx1ZS5zaXplKCkgLSBh
YnMocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpLCAwKTsKLSAgICByZXR1cm4gR3JpZFBvc2l0
aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGl0LT52YWx1ZVtuYW1lZEdyaWRMaW5lSW5k
ZXhdLCBzaWRlKTsKLX0KLQotc2l6ZV90IFJlbmRlckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25G
cm9tU3R5bGUoY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBz
aWRlKSBjb25zdAotewotICAgIHN3aXRjaCAocG9zaXRpb24udHlwZSgpKSB7Ci0gICAgY2FzZSBF
eHBsaWNpdFBvc2l0aW9uOiB7Ci0gICAgICAgIEFTU0VSVChwb3NpdGlvbi5pbnRlZ2VyUG9zaXRp
b24oKSk7Ci0KLSAgICAgICAgaWYgKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkp
Ci0gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHls
ZShwb3NpdGlvbiwgc2lkZSk7Ci0KLSAgICAgICAgLy8gSGFuZGxlIDxpbnRlZ2VyPiBleHBsaWNp
dCBwb3NpdGlvbi4KLSAgICAgICAgaWYgKHBvc2l0aW9uLmlzUG9zaXRpdmUoKSkKLSAgICAgICAg
ICAgIHJldHVybiBHcmlkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUocG9zaXRp
b24uaW50ZWdlclBvc2l0aW9uKCkgLSAxLCBzaWRlKTsKLQotICAgICAgICBzaXplX3QgcmVzb2x2
ZWRQb3NpdGlvbiA9IGFicyhwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSkgLSAxOwotICAgICAg
ICBjb25zdCBzaXplX3QgZW5kT2ZUcmFjayA9IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKHNpZGUp
OwotCi0gICAgICAgIC8vIFBlciBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93
d3ctc3R5bGUvMjAxM01hci8wNTg5Lmh0bWwsIHdlIGNsYW1wIG5lZ2F0aXZlIHZhbHVlIHRvIHRo
ZSBmaXJzdCBsaW5lLgotICAgICAgICBpZiAoZW5kT2ZUcmFjayA8IHJlc29sdmVkUG9zaXRpb24p
Ci0gICAgICAgICAgICByZXR1cm4gMDsKLQotICAgICAgICByZXR1cm4gR3JpZFBvc2l0aW9uOjph
ZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGVuZE9mVHJhY2sgLSByZXNvbHZlZFBvc2l0aW9uLCBz
aWRlKTsKLSAgICB9Ci0gICAgY2FzZSBOYW1lZEdyaWRBcmVhUG9zaXRpb246Ci0gICAgewotICAg
ICAgICBOYW1lZEdyaWRBcmVhTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IHN0eWxlKCkubmFtZWRH
cmlkQXJlYSgpLmZpbmQocG9zaXRpb24ubmFtZWRHcmlkTGluZSgpKTsKLSAgICAgICAgLy8gVW5r
bm93biBncmlkIGFyZWEgc2hvdWxkIGhhdmUgYmVlbiBjb21wdXRlZCB0byAnYXV0bycgYnkgbm93
LgotICAgICAgICBBU1NFUlQoaXQgIT0gc3R5bGUoKS5uYW1lZEdyaWRBcmVhKCkuZW5kKCkpOwot
ICAgICAgICBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgZ3JpZEFyZWFDb29yZGluYXRlID0gaXQtPnZh
bHVlOwotICAgICAgICBzd2l0Y2ggKHNpZGUpIHsKLSAgICAgICAgY2FzZSBDb2x1bW5TdGFydFNp
ZGU6Ci0gICAgICAgICAgICByZXR1cm4gZ3JpZEFyZWFDb29yZGluYXRlLmNvbHVtbnMuaW5pdGlh
bFBvc2l0aW9uSW5kZXg7Ci0gICAgICAgIGNhc2UgQ29sdW1uRW5kU2lkZToKLSAgICAgICAgICAg
IHJldHVybiBncmlkQXJlYUNvb3JkaW5hdGUuY29sdW1ucy5maW5hbFBvc2l0aW9uSW5kZXg7Ci0g
ICAgICAgIGNhc2UgUm93U3RhcnRTaWRlOgotICAgICAgICAgICAgcmV0dXJuIGdyaWRBcmVhQ29v
cmRpbmF0ZS5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4OwotICAgICAgICBjYXNlIFJvd0VuZFNp
ZGU6Ci0gICAgICAgICAgICByZXR1cm4gZ3JpZEFyZWFDb29yZGluYXRlLnJvd3MuZmluYWxQb3Np
dGlvbkluZGV4OwotICAgICAgICB9Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgY2FzZSBBdXRvUG9zaXRpb246Ci0gICAgY2FzZSBT
cGFuUG9zaXRpb246Ci0gICAgICAgIC8vICdhdXRvJyBhbmQgc3BhbiBkZXBlbmQgb24gdGhlIG9w
cG9zaXRlIHBvc2l0aW9uIGZvciByZXNvbHV0aW9uIChlLmcuIGdyaWQtcm93OiBhdXRvIC8gMSBv
ciBncmlkLWNvbHVtbjogc3BhbiAzIC8gIm15SGVhZGVyIikuCi0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gUmVu
ZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHNpemVf
dCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24s
IEdyaWRQb3NpdGlvblNpZGUgc2lkZSkgY29uc3QKLXsKLSAgICBpZiAocG9zaXRpb24uaXNBdXRv
KCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZlZE9w
cG9zaXRlUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7Ci0KLSAgICBBU1NFUlQo
cG9zaXRpb24uaXNTcGFuKCkpOwotICAgIEFTU0VSVChwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSA+
IDApOwotCi0gICAgaWYgKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpIHsKLSAg
ICAgICAgLy8gc3BhbiAyICdjJyAtPiB3ZSBuZWVkIHRvIGZpbmQgdGhlIGFwcHJvcHJpYXRlIGdy
aWQgbGluZSBiZWZvcmUgLyBhZnRlciBvdXIgb3Bwb3NpdGUgcG9zaXRpb24uCi0gICAgICAgIHJl
dHVybiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24o
cmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBwb3NpdGlvbiwgc2lkZSk7Ci0gICAgfQotCi0gICAg
Ly8gJ3NwYW4gMScgaXMgY29udGFpbmVkIGluc2lkZSBhIHNpbmdsZSBncmlkIHRyYWNrIHJlZ2Fy
ZGxlc3Mgb2YgdGhlIGRpcmVjdGlvbi4KLSAgICAvLyBUaGF0J3Mgd2h5IHRoZSBDU1Mgc3BhbiB2
YWx1ZSBpcyBvbmUgbW9yZSB0aGFuIHRoZSBvZmZzZXQgd2UgYXBwbHkuCi0gICAgc2l6ZV90IHBv
c2l0aW9uT2Zmc2V0ID0gcG9zaXRpb24uc3BhblBvc2l0aW9uKCkgLSAxOwotICAgIGlmIChzaWRl
ID09IENvbHVtblN0YXJ0U2lkZSB8fCBzaWRlID09IFJvd1N0YXJ0U2lkZSkgewotICAgICAgICBz
aXplX3QgaW5pdGlhbFJlc29sdmVkUG9zaXRpb24gPSBzdGQ6Om1heDxpbnQ+KDAsIHJlc29sdmVk
T3Bwb3NpdGVQb3NpdGlvbiAtIHBvc2l0aW9uT2Zmc2V0KTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8R3JpZFNwYW4+KGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uLCByZXNvbHZlZE9w
cG9zaXRlUG9zaXRpb24pOwotICAgIH0KLQotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdy
aWRTcGFuPihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlv
biArIHBvc2l0aW9uT2Zmc2V0KTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBSZW5k
ZXJHcmlkOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRp
b24oc2l6ZV90IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBw
b3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKSBjb25zdAotewotICAgIEFTU0VSVChwb3Np
dGlvbi5pc1NwYW4oKSk7Ci0gICAgQVNTRVJUKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNO
dWxsKCkpOwotICAgIC8vIE5lZ2F0aXZlIHBvc2l0aW9ucyBhcmUgbm90IGFsbG93ZWQgcGVyIHRo
ZSBzcGVjaWZpY2F0aW9uIGFuZCBzaG91bGQgaGF2ZSBiZWVuIGhhbmRsZWQgZHVyaW5nIHBhcnNp
bmcuCi0gICAgQVNTRVJUKHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpID4gMCk7Ci0KLSAgICBjb25z
dCBOYW1lZEdyaWRMaW5lc01hcCYgZ3JpZExpbmVzTmFtZXMgPSBpc0NvbHVtblNpZGUoc2lkZSkg
PyBzdHlsZSgpLm5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBzdHlsZSgpLm5hbWVkR3JpZFJvd0xp
bmVzKCk7Ci0gICAgTmFtZWRHcmlkTGluZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZ3JpZExp
bmVzTmFtZXMuZmluZChwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkpOwotCi0gICAgLy8gSWYgdGhl
cmUgaXMgbm8gbmFtZWQgZ3JpZCBsaW5lIG9mIHRoYXQgbmFtZSwgd2UgcmVzb2x2ZSB0aGUgcG9z
aXRpb24gdG8gJ2F1dG8nICh3aGljaCBpcyBlcXVpdmFsZW50IHRvICdzcGFuIDEnIGluIHRoaXMg
Y2FzZSkuCi0gICAgLy8gU2VlIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3
dy1zdHlsZS8yMDEzSnVuLzAzOTQuaHRtbC4KLSAgICBpZiAoaXQgPT0gZ3JpZExpbmVzTmFtZXMu
ZW5kKCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZl
ZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7Ci0KLSAgICBpZiAo
c2lkZSA9PSBSb3dTdGFydFNpZGUgfHwgc2lkZSA9PSBDb2x1bW5TdGFydFNpZGUpCi0gICAgICAg
IHJldHVybiByZXNvbHZlUm93U3RhcnRDb2x1bW5TdGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcG9zaXRpb24s
IGl0LT52YWx1ZSk7Ci0KLSAgICByZXR1cm4gcmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5hbWVkR3Jp
ZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3Np
dGlvbiwgcG9zaXRpb24sIGl0LT52YWx1ZSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc2l6ZV90IGZp
cnN0TmFtZWRHcmlkTGluZUJlZm9yZVBvc2l0aW9uKHNpemVfdCBwb3NpdGlvbiwgY29uc3QgVmVj
dG9yPHNpemVfdD4mIGdyaWRMaW5lcykKLXsKLSAgICAvLyBUaGUgZ3JpZCBsaW5lIGluZXF1YWxp
dHkgbmVlZHMgdG8gYmUgc3RyaWN0ICh3aGljaCBkb2Vzbid0IG1hdGNoIHRoZSBhZnRlciAvIGVu
ZCBjYXNlKSBiZWNhdXNlIHxwb3NpdGlvbnwgaXMKLSAgICAvLyBhbHJlYWR5IGNvbnZlcnRlZCB0
byBhbiBpbmRleCBpbiBvdXIgZ3JpZCByZXByZXNlbnRhdGlvbiAoaWUgb25lIHdhcyByZW1vdmVk
IGZyb20gdGhlIGdyaWQgbGluZSB0byBhY2NvdW50IGZvcgotICAgIC8vIHRoZSBzaWRlKS4KLSAg
ICBzaXplX3QgZmlyc3RMaW5lQmVmb3JlUG9zaXRpb25JbmRleCA9IDA7Ci0gICAgY29uc3Qgc2l6
ZV90KiBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbiA9IHN0ZDo6bG93ZXJfYm91bmQoZ3JpZExpbmVz
LmJlZ2luKCksIGdyaWRMaW5lcy5lbmQoKSwgcG9zaXRpb24pOwotICAgIGlmIChmaXJzdExpbmVC
ZWZvcmVQb3NpdGlvbiAhPSBncmlkTGluZXMuZW5kKCkpIHsKLSAgICAgICAgaWYgKCpmaXJzdExp
bmVCZWZvcmVQb3NpdGlvbiA+IHBvc2l0aW9uICYmIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uICE9
IGdyaWRMaW5lcy5iZWdpbigpKQotICAgICAgICAgICAgLS1maXJzdExpbmVCZWZvcmVQb3NpdGlv
bjsKLQotICAgICAgICBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbkluZGV4ID0gZmlyc3RMaW5lQmVm
b3JlUG9zaXRpb24gLSBncmlkTGluZXMuYmVnaW4oKTsKLSAgICB9Ci0gICAgcmV0dXJuIGZpcnN0
TGluZUJlZm9yZVBvc2l0aW9uSW5kZXg7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4g
UmVuZGVyR3JpZDo6cmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3RhcnROYW1lZEdyaWRMaW5lUG9zaXRp
b25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9u
LCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYgZ3Jp
ZExpbmVzKSBjb25zdAotewotICAgIHNpemVfdCBncmlkTGluZUluZGV4ID0gc3RkOjptYXg8aW50
PigwLCBmaXJzdE5hbWVkR3JpZExpbmVCZWZvcmVQb3NpdGlvbihyZXNvbHZlZE9wcG9zaXRlUG9z
aXRpb24sIGdyaWRMaW5lcykgLSBwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSArIDEpOwotICAgIHNp
emVfdCByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSBncmlkTGluZXNbZ3JpZExpbmVJbmRleF07
Ci0gICAgaWYgKHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA+IHJlc29sdmVkT3Bwb3NpdGVQb3Np
dGlvbikKLSAgICAgICAgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gcmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uOwotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZl
ZEdyaWRMaW5lUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7Ci19Ci0KLXN0ZDo6
dW5pcXVlX3B0cjxHcmlkU3Bhbj4gUmVuZGVyR3JpZDo6cmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5h
bWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHNpemVfdCByZXNvbHZl
ZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIGNvbnN0IFZl
Y3RvcjxzaXplX3Q+JiBncmlkTGluZXMpIGNvbnN0Ci17Ci0gICAgc2l6ZV90IGZpcnN0TGluZUFm
dGVyT3Bwb3NpdGVQb3NpdGlvbkluZGV4ID0gZ3JpZExpbmVzLnNpemUoKSAtIDE7Ci0gICAgY29u
c3Qgc2l6ZV90KiBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb24gPSBzdGQ6OnVwcGVyX2Jv
dW5kKGdyaWRMaW5lcy5iZWdpbigpLCBncmlkTGluZXMuZW5kKCksIHJlc29sdmVkT3Bwb3NpdGVQ
b3NpdGlvbik7Ci0gICAgaWYgKGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbiAhPSBncmlk
TGluZXMuZW5kKCkpCi0gICAgICAgIGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbkluZGV4
ID0gZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uIC0gZ3JpZExpbmVzLmJlZ2luKCk7Ci0K
LSAgICBzaXplX3QgZ3JpZExpbmVJbmRleCA9IHN0ZDo6bWluKGdyaWRMaW5lcy5zaXplKCkgLSAx
LCBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb25JbmRleCArIHBvc2l0aW9uLnNwYW5Qb3Np
dGlvbigpIC0gMSk7Ci0gICAgc2l6ZV90IHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA9IEdyaWRQ
b3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZShncmlkTGlu
ZXNbZ3JpZExpbmVJbmRleF0pOwotICAgIGlmIChyZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPCBy
ZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pCi0gICAgICAgIHJlc29sdmVkR3JpZExpbmVQb3NpdGlv
biA9IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbjsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCByZXNvbHZlZEdyaWRMaW5lUG9z
aXRpb24pOwotfQotCiBMYXlvdXRVbml0IFJlbmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvckNo
aWxkKGNvbnN0IFJlbmRlckJveCogY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJl
Y3Rpb24sIGNvbnN0IFZlY3RvcjxHcmlkVHJhY2s+JiB0cmFja3MpIGNvbnN0CiB7CiAgICAgY29u
c3QgR3JpZENvb3JkaW5hdGUmIGNvb3JkaW5hdGUgPSBjYWNoZWRHcmlkQ29vcmRpbmF0ZShjaGls
ZCk7CiAgICAgY29uc3QgR3JpZFNwYW4mIHNwYW4gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMp
ID8gY29vcmRpbmF0ZS5jb2x1bW5zIDogY29vcmRpbmF0ZS5yb3dzOwogICAgIExheW91dFVuaXQg
Z3JpZEFyZWFCcmVhZHRoID0gMDsKLSAgICBmb3IgKHNpemVfdCB0cmFja0luZGV4ID0gc3Bhbi5p
bml0aWFsUG9zaXRpb25JbmRleDsgdHJhY2tJbmRleCA8PSBzcGFuLmZpbmFsUG9zaXRpb25JbmRl
eDsgKyt0cmFja0luZGV4KQotICAgICAgICBncmlkQXJlYUJyZWFkdGggKz0gdHJhY2tzW3RyYWNr
SW5kZXhdLm1fdXNlZEJyZWFkdGg7CisgICAgZm9yIChHcmlkUmVzb2x2ZWRQb3NpdGlvbiB0cmFj
a1Bvc2l0aW9uID0gc3Bhbi5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsgdHJhY2tQb3NpdGlvbiA8
PSBzcGFuLnJlc29sdmVkRmluYWxQb3NpdGlvbjsgKyt0cmFja1Bvc2l0aW9uKQorICAgICAgICBn
cmlkQXJlYUJyZWFkdGggKz0gdHJhY2tzW3RyYWNrUG9zaXRpb24udG9JbnQoKV0ubV91c2VkQnJl
YWR0aDsKICAgICByZXR1cm4gZ3JpZEFyZWFCcmVhZHRoOwogfQogCkBAIC0xMTY4LDExICs4NjYs
MTEgQEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUdyaWRQb3NpdGlvbnMoY29uc3QgR3JpZFNp
emluZ0RhdGEmIHNpemluZ0RhdGEpCiBMYXlvdXRQb2ludCBSZW5kZXJHcmlkOjpmaW5kQ2hpbGRM
b2dpY2FsUG9zaXRpb24oUmVuZGVyQm94KiBjaGlsZCwgY29uc3QgR3JpZFNpemluZ0RhdGEmIHNp
emluZ0RhdGEpCiB7CiAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUmIGNvb3JkaW5hdGUgPSBjYWNo
ZWRHcmlkQ29vcmRpbmF0ZShjaGlsZCk7Ci0gICAgQVNTRVJUX1VOVVNFRChzaXppbmdEYXRhLCBj
b29yZGluYXRlLmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXggPCBzaXppbmdEYXRhLmNvbHVt
blRyYWNrcy5zaXplKCkpOwotICAgIEFTU0VSVF9VTlVTRUQoc2l6aW5nRGF0YSwgY29vcmRpbmF0
ZS5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4IDwgc2l6aW5nRGF0YS5yb3dUcmFja3Muc2l6ZSgp
KTsKKyAgICBBU1NFUlRfVU5VU0VEKHNpemluZ0RhdGEsIGNvb3JkaW5hdGUuY29sdW1ucy5yZXNv
bHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpIDwgc2l6aW5nRGF0YS5jb2x1bW5UcmFja3Muc2l6
ZSgpKTsKKyAgICBBU1NFUlRfVU5VU0VEKHNpemluZ0RhdGEsIGNvb3JkaW5hdGUucm93cy5yZXNv
bHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpIDwgc2l6aW5nRGF0YS5yb3dUcmFja3Muc2l6ZSgp
KTsKIAogICAgIC8vIFRoZSBncmlkIGl0ZW1zIHNob3VsZCBiZSBpbnNpZGUgdGhlIGdyaWQgY29u
dGFpbmVyJ3MgYm9yZGVyIGJveCwgdGhhdCdzIHdoeSB0aGV5IG5lZWQgdG8gYmUgc2hpZnRlZC4K
LSAgICByZXR1cm4gTGF5b3V0UG9pbnQobV9jb2x1bW5Qb3NpdGlvbnNbY29vcmRpbmF0ZS5jb2x1
bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4XSArIG1hcmdpblN0YXJ0Rm9yQ2hpbGQoKmNoaWxkKSwg
bV9yb3dQb3NpdGlvbnNbY29vcmRpbmF0ZS5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4XSArIG1h
cmdpbkJlZm9yZUZvckNoaWxkKCpjaGlsZCkpOworICAgIHJldHVybiBMYXlvdXRQb2ludChtX2Nv
bHVtblBvc2l0aW9uc1tjb29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24u
dG9JbnQoKV0gKyBtYXJnaW5TdGFydEZvckNoaWxkKCpjaGlsZCksIG1fcm93UG9zaXRpb25zW2Nv
b3JkaW5hdGUucm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpXSArIG1hcmdpbkJl
Zm9yZUZvckNoaWxkKCpjaGlsZCkpOwogfQogCiB2b2lkIFJlbmRlckdyaWQ6OnBhaW50Q2hpbGRy
ZW4oUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwg
UGFpbnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmludFJlY3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckdyaWQuaAppbmRleCA4MTg0ZWNmYjc0MjYyYTU0YjE4ZWQ3YTYxODM4NjE2NTA0
MDJiZTQ3Li4zYjNiNmViNDEzOTU2MTU4MzJiNGQxNjNlYWE4YTQwNjI5MjJmNmMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lmIEVO
QUJMRShDU1NfR1JJRF9MQVlPVVQpCiAKKyNpbmNsdWRlICJHcmlkUmVzb2x2ZWRQb3NpdGlvbi5o
IgogI2luY2x1ZGUgIk9yZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgog
CkBAIC0zOCwxMSArMzksNiBAQCBjbGFzcyBHcmlkQ29vcmRpbmF0ZTsKIGNsYXNzIEdyaWRTcGFu
OwogY2xhc3MgR3JpZFRyYWNrOwogCi1lbnVtIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiB7Ci0g
ICAgRm9yQ29sdW1ucywKLSAgICBGb3JSb3dzCi19OwotCiBjbGFzcyBSZW5kZXJHcmlkIGZpbmFs
IDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1YmxpYzoKICAgICBSZW5kZXJHcmlkKEVsZW1lbnQm
LCBQYXNzUmVmPFJlbmRlclN0eWxlPik7CkBAIC02Niw3ICs2Miw2IEBAIHByaXZhdGU6CiAKICAg
ICBjbGFzcyBHcmlkSXRlcmF0b3I7CiAgICAgY2xhc3MgR3JpZFNpemluZ0RhdGE7Ci0gICAgZW51
bSBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24geyBGb3JDb2x1bW5zLCBGb3JSb3dzIH07CiAgICAg
dm9pZCBjb21wdXRlVXNlZEJyZWFkdGhPZkdyaWRUcmFja3MoR3JpZFRyYWNrU2l6aW5nRGlyZWN0
aW9uLCBHcmlkU2l6aW5nRGF0YSYpOwogICAgIHZvaWQgY29tcHV0ZVVzZWRCcmVhZHRoT2ZHcmlk
VHJhY2tzKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgR3JpZFNpemluZ0RhdGEmLCBMYXlvdXRV
bml0JiBhdmFpbGFibGVMb2dpY2FsU3BhY2UpOwogICAgIGJvb2wgZ3JpZEVsZW1lbnRJc1Nocmlu
a1RvRml0KCk7CkBAIC03Niw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXNvbHZlQ29u
dGVudEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnMoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBH
cmlkU2l6aW5nRGF0YSYpOwogCiAgICAgdm9pZCBncm93R3JpZChHcmlkVHJhY2tTaXppbmdEaXJl
Y3Rpb24pOwotICAgIHZvaWQgaW5zZXJ0SXRlbUludG9HcmlkKFJlbmRlckJveCosIHNpemVfdCBy
b3dUcmFjaywgc2l6ZV90IGNvbHVtblRyYWNrKTsKKyAgICB2b2lkIGluc2VydEl0ZW1JbnRvR3Jp
ZChSZW5kZXJCb3gqLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcm93VHJhY2ssIGNvbnN0
IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBjb2x1bW5UcmFjayk7CiAgICAgdm9pZCBpbnNlcnRJdGVt
SW50b0dyaWQoUmVuZGVyQm94KiwgY29uc3QgR3JpZENvb3JkaW5hdGUmKTsKICAgICB2b2lkIHBs
YWNlSXRlbXNPbkdyaWQoKTsKICAgICB2b2lkIHBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJ
dGVyYXRvcigpOwpAQCAtMTAwLDkgKzk1LDYgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgY29tcHV0
ZU5vcm1hbGl6ZWRGcmFjdGlvbkJyZWFkdGgoVmVjdG9yPEdyaWRUcmFjaz4mLCBjb25zdCBHcmlk
U3BhbiYgdHJhY2tzU3BhbiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBMYXlvdXRVbml0IGF2
YWlsYWJsZUxvZ2ljYWxTcGFjZSkgY29uc3Q7CiAKICAgICBjb25zdCBHcmlkVHJhY2tTaXplJiBn
cmlkVHJhY2tTaXplKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgc2l6ZV90KSBjb25zdDsKLSAg
ICBzaXplX3QgZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoKSBjb25zdDsKLSAgICBzaXplX3QgZXhw
bGljaXRHcmlkUm93Q291bnQoKSBjb25zdDsKLSAgICBzaXplX3QgZXhwbGljaXRHcmlkU2l6ZUZv
clNpZGUoR3JpZFBvc2l0aW9uU2lkZSkgY29uc3Q7CiAKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxD
b250ZW50SGVpZ2h0Rm9yQ2hpbGQoUmVuZGVyQm94KiwgVmVjdG9yPEdyaWRUcmFjaz4mKTsKICAg
ICBMYXlvdXRVbml0IG1pbkNvbnRlbnRGb3JDaGlsZChSZW5kZXJCb3gqLCBHcmlkVHJhY2tTaXpp
bmdEaXJlY3Rpb24sIFZlY3RvcjxHcmlkVHJhY2s+JiBjb2x1bW5UcmFja3MpOwpAQCAtMTEwLDE3
ICsxMDIsNiBAQCBwcml2YXRlOgogICAgIExheW91dFBvaW50IGZpbmRDaGlsZExvZ2ljYWxQb3Np
dGlvbihSZW5kZXJCb3gqLCBjb25zdCBHcmlkU2l6aW5nRGF0YSYpOwogICAgIEdyaWRDb29yZGlu
YXRlIGNhY2hlZEdyaWRDb29yZGluYXRlKGNvbnN0IFJlbmRlckJveCopIGNvbnN0OwogCi0gICAg
R3JpZFNwYW4gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKGNv
bnN0IFJlbmRlckJveCosIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgc2l6ZV90KSBjb25zdDsK
LSAgICB2b2lkIGFkanVzdE5hbWVkR3JpZEl0ZW1Qb3NpdGlvbihHcmlkUG9zaXRpb24mLCBHcmlk
UG9zaXRpb25TaWRlKSBjb25zdDsKLSAgICB2b2lkIGFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5
bGUoR3JpZFBvc2l0aW9uJiBpbml0aWFsUG9zaXRpb24sIEdyaWRQb3NpdGlvbiYgZmluYWxQb3Np
dGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlLCBHcmlkUG9zaXRpb25T
aWRlIGZpbmFsUG9zaXRpb25TaWRlKSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNw
YW4+IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlckJveCosIEdyaWRU
cmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7Ci0gICAgc2l6ZV90IHJlc29sdmVOYW1lZEdyaWRM
aW5lUG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lk
ZSkgY29uc3Q7Ci0gICAgc2l6ZV90IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29uc3Qg
R3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lkZSkgY29uc3Q7Ci0gICAgc3RkOjp1bmlxdWVf
cHRyPEdyaWRTcGFuPiByZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24o
c2l6ZV90IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgR3Jp
ZFBvc2l0aW9uU2lkZSkgY29uc3Q7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNv
bHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oc2l6ZV90IHJl
c29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9u
U2lkZSkgY29uc3Q7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNvbHZlUm93U3Rh
cnRDb2x1bW5TdGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9u
KHNpemVfdCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYsIGNv
bnN0IFZlY3RvcjxzaXplX3Q+JikgY29uc3Q7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFu
PiByZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9z
aXRlUG9zaXRpb24oc2l6ZV90IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBv
c2l0aW9uJiwgY29uc3QgVmVjdG9yPHNpemVfdD4mKSBjb25zdDsKLQogICAgIExheW91dFVuaXQg
Z3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCwgR3JpZFRyYWNr
U2l6aW5nRGlyZWN0aW9uLCBjb25zdCBWZWN0b3I8R3JpZFRyYWNrPiYpIGNvbnN0OwogCiAgICAg
dmlydHVhbCB2b2lkIHBhaW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBmb3JTZWxmLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPZmZzZXQsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRS
ZWN0KSBvdmVycmlkZSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9HcmlkQ29vcmRpbmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0dyaWRDb29yZGluYXRlLmgKaW5kZXggNDRkMjAwYmNkZDVhMWZhOGVhYjMyZjI5NmI4NzhkOTNi
MDRjZjI3Mi4uOTA4ZjM2NzJiNjk1MzQ2NjU1YWQ5ZjlkZGMyZjNjOWYyODRiZTY3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRDb29yZGluYXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRDb29yZGluYXRlLmgKQEAgLTM0
LDMwICszNCwzMSBAQAogCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKIAorI2luY2x1ZGUg
IkdyaWRSZXNvbHZlZFBvc2l0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBB
IHNwYW4gaW4gYSBzaW5nbGUgZGlyZWN0aW9uIChlaXRoZXIgcm93cyBvciBjb2x1bW5zKS4gTm90
ZSB0aGF0IHxpbml0aWFsUG9zaXRpb25JbmRleHwKLS8vIGFuZCB8ZmluYWxQb3NpdGlvbkluZGV4
fCBhcmUgZ3JpZCBhcmVhcycgaW5kZXhlcywgTk9UIGdyaWQgbGluZXMnLiBJdGVyYXRpbmcgb3Zl
ciB0aGUKLS8vIHNwYW4gc2hvdWxkIGluY2x1ZGUgYm90aCB8aW5pdGlhbFBvc2l0aW9uSW5kZXh8
IGFuZCB8ZmluYWxQb3NpdGlvbkluZGV4fCB0byBiZSBjb3JyZWN0LgorLy8gQSBzcGFuIGluIGEg
c2luZ2xlIGRpcmVjdGlvbiAoZWl0aGVyIHJvd3Mgb3IgY29sdW1ucykuIE5vdGUgdGhhdCB8cmVz
b2x2ZWRJbml0aWFsUG9zaXRpb258CisvLyBhbmQgfHJlc29sdmVkRmluYWxQb3NpdGlvbnwgYXJl
IGdyaWQgYXJlYXMnIGluZGV4ZXMsIE5PVCBncmlkIGxpbmVzJy4gSXRlcmF0aW5nIG92ZXIgdGhl
CisvLyBzcGFuIHNob3VsZCBpbmNsdWRlIGJvdGggfHJlc29sdmVkSW5pdGlhbFBvc2l0aW9ufCBh
bmQgfHJlc29sdmVkRmluYWxQb3NpdGlvbnwgdG8gYmUgY29ycmVjdC4KIGNsYXNzIEdyaWRTcGFu
IHsKIHB1YmxpYzoKLSAgICBHcmlkU3BhbihzaXplX3QgaW5pdGlhbFBvc2l0aW9uLCBzaXplX3Qg
ZmluYWxQb3NpdGlvbikKLSAgICAgICAgOiBpbml0aWFsUG9zaXRpb25JbmRleChpbml0aWFsUG9z
aXRpb24pCi0gICAgICAgICwgZmluYWxQb3NpdGlvbkluZGV4KGZpbmFsUG9zaXRpb24pCisgICAg
R3JpZFNwYW4oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29sdmVkSW5pdGlhbFBvc2l0
aW9uLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uKQor
ICAgICAgICA6IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uKHJlc29sdmVkSW5pdGlhbFBvc2l0aW9u
KQorICAgICAgICAsIHJlc29sdmVkRmluYWxQb3NpdGlvbihyZXNvbHZlZEZpbmFsUG9zaXRpb24p
CiAgICAgewotICAgICAgICBBU1NFUlQoaW5pdGlhbFBvc2l0aW9uSW5kZXggPD0gZmluYWxQb3Np
dGlvbkluZGV4KTsKKyAgICAgICAgQVNTRVJUKHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uIDw9IHJl
c29sdmVkRmluYWxQb3NpdGlvbik7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IEdyaWRTcGFuJiBvKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGluaXRpYWxQb3NpdGlv
bkluZGV4ID09IG8uaW5pdGlhbFBvc2l0aW9uSW5kZXggJiYgZmluYWxQb3NpdGlvbkluZGV4ID09
IG8uZmluYWxQb3NpdGlvbkluZGV4OworICAgICAgICByZXR1cm4gcmVzb2x2ZWRJbml0aWFsUG9z
aXRpb24gPT0gby5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbiAmJiByZXNvbHZlZEZpbmFsUG9zaXRp
b24gPT0gby5yZXNvbHZlZEZpbmFsUG9zaXRpb247CiAgICAgfQogCi0gICAgc2l6ZV90IGluaXRp
YWxQb3NpdGlvbkluZGV4OwotICAgIHNpemVfdCBmaW5hbFBvc2l0aW9uSW5kZXg7CisgICAgR3Jp
ZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZWRJbml0aWFsUG9zaXRpb247CisgICAgR3JpZFJlc29s
dmVkUG9zaXRpb24gcmVzb2x2ZWRGaW5hbFBvc2l0aW9uOwogfTsKIAogLy8gVGhpcyByZXByZXNl
bnRzIGEgZ3JpZCBhcmVhIHRoYXQgc3BhbnMgaW4gYm90aCByb3dzJyBhbmQgY29sdW1ucycgZGly
ZWN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQ
b3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5o
CmluZGV4IDY4ZjJmMzkxY2M1ZGEwNzNkZDE2NzA5OGMwOGM1YTlmODZhNDhmZDQuLjVhMGFmOWVl
NDc2MGI0Y2M0OTQzMjE0Y2FkY2JmZDk1NmE1ZWJjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uLmgKQEAgLTQ1LDEzICs0NSw2IEBAIGVudW0gR3Jp
ZFBvc2l0aW9uVHlwZSB7CiAgICAgTmFtZWRHcmlkQXJlYVBvc2l0aW9uIC8vIDxpZGVudD4KIH07
CiAKLWVudW0gR3JpZFBvc2l0aW9uU2lkZSB7Ci0gICAgQ29sdW1uU3RhcnRTaWRlLAotICAgIENv
bHVtbkVuZFNpZGUsCi0gICAgUm93U3RhcnRTaWRlLAotICAgIFJvd0VuZFNpZGUKLX07Ci0KIGNs
YXNzIEdyaWRQb3NpdGlvbiB7CiBwdWJsaWM6CiAgICAgR3JpZFBvc2l0aW9uKCkKQEAgLTYwLDIw
ICs1Myw2IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgc3RhdGljIGlubGluZSBzaXpl
X3QgYWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZShzaXplX3QgcmVzb2x2
ZWRQb3NpdGlvbikKLSAgICB7Ci0gICAgICAgIHJldHVybiByZXNvbHZlZFBvc2l0aW9uID8gcmVz
b2x2ZWRQb3NpdGlvbiAtIDEgOiAwOwotICAgIH0KLQotICAgIHN0YXRpYyBzaXplX3QgYWRqdXN0
R3JpZFBvc2l0aW9uRm9yU2lkZShzaXplX3QgcmVzb2x2ZWRQb3NpdGlvbiwgR3JpZFBvc2l0aW9u
U2lkZSBzaWRlKQotICAgIHsKLSAgICAgICAgLy8gQW4gaXRlbSBmaW5pc2hpbmcgb24gdGhlIE4t
dGggbGluZSBiZWxvbmdzIHRvIHRoZSBOLTEtdGggY2VsbC4KLSAgICAgICAgaWYgKHNpZGUgPT0g
Q29sdW1uRW5kU2lkZSB8fCBzaWRlID09IFJvd0VuZFNpZGUpCi0gICAgICAgICAgICByZXR1cm4g
YWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZShyZXNvbHZlZFBvc2l0aW9u
KTsKLQotICAgICAgICByZXR1cm4gcmVzb2x2ZWRQb3NpdGlvbjsKLSAgICB9Ci0KICAgICBib29s
IGlzUG9zaXRpdmUoKSBjb25zdCB7IHJldHVybiBpbnRlZ2VyUG9zaXRpb24oKSA+IDA7IH0KIAog
ICAgIEdyaWRQb3NpdGlvblR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQb3Np
dGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQyOThlNGMxNTg4ZTEzNzQ2YTczYTE1Mzk1MjFhNGJiZjk5
M2Q2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9H
cmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAKQEAgLTAsMCArMSwzNDYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR3JpZFJl
c29sdmVkUG9zaXRpb24uaCIKKworI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisKKyNpbmNs
dWRlICJHcmlkQ29vcmRpbmF0ZS5oIgorI2luY2x1ZGUgIlJlbmRlckJveC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3NpemVfdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6ZXhwbGljaXRHcmlk
Q29sdW1uQ291bnQoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSkKK3sKKyAg
ICByZXR1cm4gZ3JpZENvbnRhaW5lclN0eWxlLmdyaWRDb2x1bW5zKCkuc2l6ZSgpOworfQorCitz
aXplX3QgR3JpZFJlc29sdmVkUG9zaXRpb246OmV4cGxpY2l0R3JpZFJvd0NvdW50KGNvbnN0IFJl
bmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUpCit7CisgICAgcmV0dXJuIGdyaWRDb250YWlu
ZXJTdHlsZS5ncmlkUm93cygpLnNpemUoKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzQ29s
dW1uU2lkZShHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7CisgICAgcmV0dXJuIHNpZGUgPT0gQ29s
dW1uU3RhcnRTaWRlIHx8IHNpZGUgPT0gQ29sdW1uRW5kU2lkZTsKK30KKworc2l6ZV90IEdyaWRS
ZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdyaWRTaXplRm9yU2lkZShjb25zdCBSZW5kZXJTdHls
ZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7CisgICAgcmV0
dXJuIGlzQ29sdW1uU2lkZShzaWRlKSA/IGV4cGxpY2l0R3JpZENvbHVtbkNvdW50KGdyaWRDb250
YWluZXJTdHlsZSkgOiBleHBsaWNpdEdyaWRSb3dDb3VudChncmlkQ29udGFpbmVyU3R5bGUpOwor
fQorCitHcmlkU3BhbiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNG
cm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbiwgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIGluaXRpYWxQb3NpdGlvbikK
K3sKKyAgICAvLyBGSVhNRTogV2UgZG9uJ3Qgc3VwcG9ydCBzcGFubmluZyB3aXRoIGF1dG8gcG9z
aXRpb25zIHlldC4gT25jZSB3ZSBkbywgdGhpcyBpcyB3cm9uZy4gQWxzbyB3ZSBzaG91bGQgbWFr
ZQorICAgIC8vIHN1cmUgdGhlIGdyaWQgY2FuIGFjY29tb2RhdGUgdGhlIG5ldyBpdGVtIGFzIHdl
IG9ubHkgZ3JvdyAxIHBvc2l0aW9uIGluIGEgZ2l2ZW4gZGlyZWN0aW9uLgorICAgIHJldHVybiBH
cmlkU3Bhbihpbml0aWFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvbik7Cit9CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBncmlkTGluZURlZmluZWRCZWZvcmVHcmlkQXJlYShjb25zdCBHcmlkUmVzb2x2
ZWRQb3NpdGlvbiYgbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiwgY29uc3QgR3JpZENvb3Jk
aW5hdGUmIGdyaWRBcmVhQ29vcmRpbmF0ZXMsIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sKKyAg
ICBzd2l0Y2ggKHNpZGUpIHsKKyAgICBjYXNlIENvbHVtblN0YXJ0U2lkZToKKyAgICAgICAgcmV0
dXJuIG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24gPCBncmlkQXJlYUNvb3JkaW5hdGVzLmNv
bHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb247CisgICAgY2FzZSBDb2x1bW5FbmRTaWRlOgor
ICAgICAgICByZXR1cm4gbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiA8IGdyaWRBcmVhQ29v
cmRpbmF0ZXMuY29sdW1ucy5yZXNvbHZlZEZpbmFsUG9zaXRpb247CisgICAgY2FzZSBSb3dTdGFy
dFNpZGU6CisgICAgICAgIHJldHVybiBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9uIDwgZ3Jp
ZEFyZWFDb29yZGluYXRlcy5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOworICAgIGNhc2Ug
Um93RW5kU2lkZToKKyAgICAgICAgcmV0dXJuIG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24g
PCBncmlkQXJlYUNvb3JkaW5hdGVzLnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0aW9uOworICAgIH0K
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRp
YyB2b2lkIHNldE5hbWVkTGluZVBvc2l0aW9uSWZEZWZpbmVkQmVmb3JlQXJlYShHcmlkUG9zaXRp
b24mIHBvc2l0aW9uLCBjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYgbmFtZWRMaW5lc01hcCwgY29u
c3QgU3RyaW5nJiBsaW5lTmFtZSwgY29uc3QgR3JpZENvb3JkaW5hdGUmIGdyaWRBcmVhQ29vcmRp
bmF0ZSwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQoreworICAgIGF1dG8gbGluZXNJdGVyYXRvciA9
IG5hbWVkTGluZXNNYXAuZmluZChsaW5lTmFtZSk7CisgICAgaWYgKGxpbmVzSXRlcmF0b3IgPT0g
bmFtZWRMaW5lc01hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JpZFJlc29sdmVk
UG9zaXRpb24gbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiA9IEdyaWRSZXNvbHZlZFBvc2l0
aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGxpbmVzSXRlcmF0b3ItPnZhbHVlWzBdLCBz
aWRlKTsKKyAgICBpZiAoZ3JpZExpbmVEZWZpbmVkQmVmb3JlR3JpZEFyZWEobmFtZWRHcmlkTGlu
ZUZpcnN0RGVmaW5pdGlvbiwgZ3JpZEFyZWFDb29yZGluYXRlLCBzaWRlKSkKKyAgICAgICAgcG9z
aXRpb24uc2V0RXhwbGljaXRQb3NpdGlvbigxLCBsaW5lTmFtZSk7Cit9CisKK3ZvaWQgR3JpZFJl
c29sdmVkUG9zaXRpb246OmFkanVzdE5hbWVkR3JpZEl0ZW1Qb3NpdGlvbihjb25zdCBSZW5kZXJT
dHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9z
aXRpb25TaWRlIHNpZGUpCit7CisgICAgLy8gVGhlIFN0eWxlQnVpbGRlciBhbHdheXMgdHJlYXRz
IDxjdXN0b20taWRlbnQ+IGFzIGEgbmFtZWQgZ3JpZCBhcmVhLiBXZSBtdXN0IGRlY2lkZSBoZXJl
IGlmIHRoZXkgYXJlIGdvaW5nIHRvIGJlCisgICAgLy8gcmVzb2x2ZWQgdG8gZWl0aGVyIGEgZ3Jp
ZCBhcmVhIG9yIGEgZ3JpZCBsaW5lLgorICAgIEFTU0VSVChwb3NpdGlvbi5pc05hbWVkR3JpZEFy
ZWEoKSk7CisgICAgY29uc3QgTmFtZWRHcmlkQXJlYU1hcCYgZ3JpZEFyZWFNYXAgPSBncmlkQ29u
dGFpbmVyU3R5bGUubmFtZWRHcmlkQXJlYSgpOworICAgIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFw
JiBuYW1lZExpbmVzTWFwID0gaXNDb2x1bW5TaWRlKHNpZGUpID8gZ3JpZENvbnRhaW5lclN0eWxl
Lm5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBncmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlkUm93
TGluZXMoKTsKKworICAgIFN0cmluZyBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZSA9IHBvc2l0aW9u
Lm5hbWVkR3JpZExpbmUoKTsKKyAgICBib29sIGlzU3RhcnRTaWRlID0gc2lkZSA9PSBDb2x1bW5T
dGFydFNpZGUgfHwgc2lkZSA9PSBSb3dTdGFydFNpZGU7CisKKyAgICBhdXRvIGFyZWFJdGVyYXRv
ciA9IGdyaWRBcmVhTWFwLmZpbmQobmFtZWRHcmlkQXJlYU9yR3JpZExpbmUpOworICAgIGlmIChh
cmVhSXRlcmF0b3IgIT0gZ3JpZEFyZWFNYXAuZW5kKCkpIHsKKyAgICAgICAgU3RyaW5nIGdyaWRM
aW5lTmFtZSA9IG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lICsgKGlzU3RhcnRTaWRlID8gIi1zdGFy
dCIgOiAiLWVuZCIpOworICAgICAgICBzZXROYW1lZExpbmVQb3NpdGlvbklmRGVmaW5lZEJlZm9y
ZUFyZWEocG9zaXRpb24sIG5hbWVkTGluZXNNYXAsIGdyaWRMaW5lTmFtZSwgYXJlYUl0ZXJhdG9y
LT52YWx1ZSwgc2lkZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBib29sIGhhc1N0
YXJ0U3VmZml4ID0gbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUuZW5kc1dpdGgoIi1zdGFydCIpOwor
ICAgIGJvb2wgaGFzRW5kU3VmZml4ID0gbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUuZW5kc1dpdGgo
Ii1lbmQiKTsKKyAgICBpZiAoKGhhc1N0YXJ0U3VmZml4ICYmIGlzU3RhcnRTaWRlKSB8fCAoaGFz
RW5kU3VmZml4ICYmICFpc1N0YXJ0U2lkZSkpIHsKKyAgICAgICAgc2l6ZV90IHN1ZmZpeExlbmd0
aCA9IGhhc1N0YXJ0U3VmZml4ID8gc3RybGVuKCItc3RhcnQiKSA6IHN0cmxlbigiLWVuZCIpOwor
ICAgICAgICBTdHJpbmcgZ3JpZEFyZWFOYW1lID0gbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUuc3Vi
c3RyaW5nKDAsIG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lLmxlbmd0aCgpIC0gc3VmZml4TGVuZ3Ro
KTsKKworICAgICAgICBhdXRvIGFyZWFJdGVyYXRvciA9IGdyaWRBcmVhTWFwLmZpbmQoZ3JpZEFy
ZWFOYW1lKTsKKyAgICAgICAgaWYgKGFyZWFJdGVyYXRvciAhPSBncmlkQXJlYU1hcC5lbmQoKSkg
eworICAgICAgICAgICAgcG9zaXRpb24uc2V0TmFtZWRHcmlkQXJlYShncmlkQXJlYU5hbWUpOwor
ICAgICAgICAgICAgc2V0TmFtZWRMaW5lUG9zaXRpb25JZkRlZmluZWRCZWZvcmVBcmVhKHBvc2l0
aW9uLCBuYW1lZExpbmVzTWFwLCBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZSwgYXJlYUl0ZXJhdG9y
LT52YWx1ZSwgc2lkZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBpZiAobmFtZWRMaW5lc01hcC5jb250YWlucyhuYW1lZEdyaWRBcmVhT3JHcmlkTGluZSkp
CisgICAgICAgIHBvc2l0aW9uLnNldEV4cGxpY2l0UG9zaXRpb24oMSwgbmFtZWRHcmlkQXJlYU9y
R3JpZExpbmUpOworICAgIGVsc2UKKyAgICAgICAgcG9zaXRpb24uc2V0QXV0b1Bvc2l0aW9uKCk7
Cit9CisKK3ZvaWQgR3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbnNGcm9t
U3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgR3JpZFBvc2l0aW9u
JiBpbml0aWFsUG9zaXRpb24sIEdyaWRQb3NpdGlvbiYgZmluYWxQb3NpdGlvbiwgR3JpZFBvc2l0
aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlLCBHcmlkUG9zaXRpb25TaWRlIGZpbmFsUG9zaXRp
b25TaWRlKQoreworICAgIEFTU0VSVChpc0NvbHVtblNpZGUoaW5pdGlhbFBvc2l0aW9uU2lkZSkg
PT0gaXNDb2x1bW5TaWRlKGZpbmFsUG9zaXRpb25TaWRlKSk7CisKKyAgICAvLyBXZSBtdXN0IGhh
bmRsZSB0aGUgcGxhY2VtZW50IGVycm9yIGhhbmRsaW5nIGNvZGUgaGVyZSBpbnN0ZWFkIG9mIGlu
IHRoZSBTdHlsZUFkanVzdGVyIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0bworICAgIC8vIG92ZXJ3
cml0ZSB0aGUgc3BlY2lmaWVkIHZhbHVlcy4KKyAgICBpZiAoaW5pdGlhbFBvc2l0aW9uLmlzU3Bh
bigpICYmIGZpbmFsUG9zaXRpb24uaXNTcGFuKCkpCisgICAgICAgIGZpbmFsUG9zaXRpb24uc2V0
QXV0b1Bvc2l0aW9uKCk7CisKKyAgICBpZiAoaW5pdGlhbFBvc2l0aW9uLmlzTmFtZWRHcmlkQXJl
YSgpKQorICAgICAgICBhZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRpb24oZ3JpZENvbnRhaW5lclN0
eWxlLCBpbml0aWFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUpOworCisgICAgaWYgKGZp
bmFsUG9zaXRpb24uaXNOYW1lZEdyaWRBcmVhKCkpCisgICAgICAgIGFkanVzdE5hbWVkR3JpZEl0
ZW1Qb3NpdGlvbihncmlkQ29udGFpbmVyU3R5bGUsIGZpbmFsUG9zaXRpb24sIGZpbmFsUG9zaXRp
b25TaWRlKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBHcmlkUmVzb2x2ZWRQb3Np
dGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIGdy
aWRDb250YWluZXJTdHlsZSwgY29uc3QgUmVuZGVyQm94JiBncmlkSXRlbSwgR3JpZFRyYWNrU2l6
aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBHcmlkUG9zaXRpb24gaW5pdGlhbFBvc2l0
aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGdyaWRJdGVtLnN0eWxlKCkuZ3JpZEl0
ZW1Db2x1bW5TdGFydCgpIDogZ3JpZEl0ZW0uc3R5bGUoKS5ncmlkSXRlbVJvd1N0YXJ0KCk7Cisg
ICAgY29uc3QgR3JpZFBvc2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlID0gKGRpcmVjdGlv
biA9PSBGb3JDb2x1bW5zKSA/IENvbHVtblN0YXJ0U2lkZSA6IFJvd1N0YXJ0U2lkZTsKKyAgICBH
cmlkUG9zaXRpb24gZmluYWxQb3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBn
cmlkSXRlbS5zdHlsZSgpLmdyaWRJdGVtQ29sdW1uRW5kKCkgOiBncmlkSXRlbS5zdHlsZSgpLmdy
aWRJdGVtUm93RW5kKCk7CisgICAgY29uc3QgR3JpZFBvc2l0aW9uU2lkZSBmaW5hbFBvc2l0aW9u
U2lkZSA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBDb2x1bW5FbmRTaWRlIDogUm93RW5k
U2lkZTsKKworICAgIGFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoZ3JpZENvbnRhaW5lclN0
eWxlLCBpbml0aWFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUs
IGZpbmFsUG9zaXRpb25TaWRlKTsKKworICAgIGlmIChpbml0aWFsUG9zaXRpb24uc2hvdWxkQmVS
ZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKCkgJiYgZmluYWxQb3NpdGlvbi5zaG91bGRC
ZVJlc29sdmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKSkgeworICAgICAgICBpZiAoZ3JpZENv
bnRhaW5lclN0eWxlLmdyaWRBdXRvRmxvdygpID09IEF1dG9GbG93Tm9uZSkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPigwLCAwKTsKKworICAgICAgICAvLyBX
ZSBjYW4ndCBnZXQgb3VyIGdyaWQgcG9zaXRpb25zIHdpdGhvdXQgcnVubmluZyB0aGUgYXV0byBw
bGFjZW1lbnQgYWxnb3JpdGhtLgorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAg
ICBpZiAoaW5pdGlhbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3Np
dGlvbigpKSB7CisgICAgICAgIC8vIEluZmVyIHRoZSBwb3NpdGlvbiBmcm9tIHRoZSBmaW5hbCBw
b3NpdGlvbiAoJ2F1dG8gLyAxJyBvciAnc3BhbiAyIC8gMycgY2FzZSkuCisgICAgICAgIGNvbnN0
IEdyaWRSZXNvbHZlZFBvc2l0aW9uIGZpbmFsUmVzb2x2ZWRQb3NpdGlvbiA9IHJlc29sdmVHcmlk
UG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5lclN0eWxlLCBmaW5hbFBvc2l0aW9uLCBmaW5h
bFBvc2l0aW9uU2lkZSk7CisgICAgICAgIHJldHVybiByZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5z
dE9wcG9zaXRlUG9zaXRpb24oZ3JpZENvbnRhaW5lclN0eWxlLCBmaW5hbFJlc29sdmVkUG9zaXRp
b24sIGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSk7CisgICAgfQorCisgICAg
aWYgKGZpbmFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9u
KCkpIHsKKyAgICAgICAgLy8gSW5mZXIgb3VyIHBvc2l0aW9uIGZyb20gdGhlIGluaXRpYWwgcG9z
aXRpb24gKCcxIC8gYXV0bycgb3IgJzMgLyBzcGFuIDInIGNhc2UpLgorICAgICAgICBjb25zdCBH
cmlkUmVzb2x2ZWRQb3NpdGlvbiBpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiA9IHJlc29sdmVHcmlk
UG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5lclN0eWxlLCBpbml0aWFsUG9zaXRpb24sIGlu
aXRpYWxQb3NpdGlvblNpZGUpOworICAgICAgICByZXR1cm4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKGdyaWRDb250YWluZXJTdHlsZSwgaW5pdGlhbFJlc29sdmVk
UG9zaXRpb24sIGZpbmFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb25TaWRlKTsKKyAgICB9CisKKyAg
ICBHcmlkUmVzb2x2ZWRQb3NpdGlvbiByZXNvbHZlZEluaXRpYWxQb3NpdGlvbiA9IHJlc29sdmVH
cmlkUG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5lclN0eWxlLCBpbml0aWFsUG9zaXRpb24s
IGluaXRpYWxQb3NpdGlvblNpZGUpOworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVk
RmluYWxQb3NpdGlvbiA9IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5l
clN0eWxlLCBmaW5hbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uU2lkZSk7CisKKyAgICAvLyBJZiAn
Z3JpZC1yb3ctZW5kJyBzcGVjaWZpZXMgYSBsaW5lIGF0IG9yIGJlZm9yZSB0aGF0IHNwZWNpZmll
ZCBieSAnZ3JpZC1yb3ctc3RhcnQnLCBpdCBjb21wdXRlcyB0byAnc3BhbiAxJy4KKyAgICBpZiAo
cmVzb2x2ZWRGaW5hbFBvc2l0aW9uIDwgcmVzb2x2ZWRJbml0aWFsUG9zaXRpb24pCisgICAgICAg
IHJlc29sdmVkRmluYWxQb3NpdGlvbiA9IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOworCisgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkSW5pdGlhbFBvc2l0aW9u
LCByZXNvbHZlZEZpbmFsUG9zaXRpb24pOworfQorCitHcmlkUmVzb2x2ZWRQb3NpdGlvbiBHcmlk
UmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZShj
b25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBjb25zdCBHcmlkUG9zaXRpb24m
IHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7CisgICAgQVNTRVJUKCFwb3NpdGlv
bi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpOworCisgICAgY29uc3QgTmFtZWRHcmlkTGluZXNN
YXAmIGdyaWRMaW5lc05hbWVzID0gaXNDb2x1bW5TaWRlKHNpZGUpID8gZ3JpZENvbnRhaW5lclN0
eWxlLm5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBncmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlk
Um93TGluZXMoKTsKKyAgICBOYW1lZEdyaWRMaW5lc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBn
cmlkTGluZXNOYW1lcy5maW5kKHBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSk7CisgICAgaWYgKGl0
ID09IGdyaWRMaW5lc05hbWVzLmVuZCgpKSB7CisgICAgICAgIGlmIChwb3NpdGlvbi5pc1Bvc2l0
aXZlKCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGxhc3RM
aW5lID0gZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoZ3JpZENvbnRhaW5lclN0eWxlLCBzaWRlKTsK
KyAgICAgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25G
b3JTaWRlKGxhc3RMaW5lLCBzaWRlKTsKKyAgICB9CisKKyAgICBzaXplX3QgbmFtZWRHcmlkTGlu
ZUluZGV4OworICAgIGlmIChwb3NpdGlvbi5pc1Bvc2l0aXZlKCkpCisgICAgICAgIG5hbWVkR3Jp
ZExpbmVJbmRleCA9IHN0ZDo6bWluPHNpemVfdD4ocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCks
IGl0LT52YWx1ZS5zaXplKCkpIC0gMTsKKyAgICBlbHNlCisgICAgICAgIG5hbWVkR3JpZExpbmVJ
bmRleCA9IHN0ZDo6bWF4PGludD4oaXQtPnZhbHVlLnNpemUoKSAtIGFicyhwb3NpdGlvbi5pbnRl
Z2VyUG9zaXRpb24oKSksIDApOworICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRq
dXN0R3JpZFBvc2l0aW9uRm9yU2lkZShpdC0+dmFsdWVbbmFtZWRHcmlkTGluZUluZGV4XSwgc2lk
ZSk7Cit9CisKK0dyaWRSZXNvbHZlZFBvc2l0aW9uIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNv
bHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVy
U3R5bGUsIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lk
ZSkKK3sKKyAgICBzd2l0Y2ggKHBvc2l0aW9uLnR5cGUoKSkgeworICAgIGNhc2UgRXhwbGljaXRQ
b3NpdGlvbjogeworICAgICAgICBBU1NFUlQocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpOwor
CisgICAgICAgIGlmICghcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVsbCgpKQorICAgICAg
ICAgICAgcmV0dXJuIHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENv
bnRhaW5lclN0eWxlLCBwb3NpdGlvbiwgc2lkZSk7CisKKyAgICAgICAgLy8gSGFuZGxlIDxpbnRl
Z2VyPiBleHBsaWNpdCBwb3NpdGlvbi4KKyAgICAgICAgaWYgKHBvc2l0aW9uLmlzUG9zaXRpdmUo
KSkKKyAgICAgICAgICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBv
c2l0aW9uRm9yU2lkZShwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSAtIDEsIHNpZGUpOworCisg
ICAgICAgIHNpemVfdCByZXNvbHZlZFBvc2l0aW9uID0gYWJzKHBvc2l0aW9uLmludGVnZXJQb3Np
dGlvbigpKSAtIDE7CisgICAgICAgIGNvbnN0IHNpemVfdCBlbmRPZlRyYWNrID0gZXhwbGljaXRH
cmlkU2l6ZUZvclNpZGUoZ3JpZENvbnRhaW5lclN0eWxlLCBzaWRlKTsKKworICAgICAgICAvLyBQ
ZXIgaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTNNYXIv
MDU4OS5odG1sLCB3ZSBjbGFtcCBuZWdhdGl2ZSB2YWx1ZSB0byB0aGUgZmlyc3QgbGluZS4KKyAg
ICAgICAgaWYgKGVuZE9mVHJhY2sgPCByZXNvbHZlZFBvc2l0aW9uKQorICAgICAgICAgICAgcmV0
dXJuIDA7CisKKyAgICAgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1c3RHcmlk
UG9zaXRpb25Gb3JTaWRlKGVuZE9mVHJhY2sgLSByZXNvbHZlZFBvc2l0aW9uLCBzaWRlKTsKKyAg
ICB9CisgICAgY2FzZSBOYW1lZEdyaWRBcmVhUG9zaXRpb246CisgICAgeworICAgICAgICBOYW1l
ZEdyaWRBcmVhTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGdyaWRDb250YWluZXJTdHlsZS5uYW1l
ZEdyaWRBcmVhKCkuZmluZChwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkpOworICAgICAgICAvLyBV
bmtub3duIGdyaWQgYXJlYSBzaG91bGQgaGF2ZSBiZWVuIGNvbXB1dGVkIHRvICdhdXRvJyBieSBu
b3cuCisgICAgICAgIEFTU0VSVChpdCAhPSBncmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlkQXJl
YSgpLmVuZCgpKTsKKyAgICAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUmIGdyaWRBcmVhQ29vcmRp
bmF0ZSA9IGl0LT52YWx1ZTsKKyAgICAgICAgc3dpdGNoIChzaWRlKSB7CisgICAgICAgIGNhc2Ug
Q29sdW1uU3RhcnRTaWRlOgorICAgICAgICAgICAgcmV0dXJuIGdyaWRBcmVhQ29vcmRpbmF0ZS5j
b2x1bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOworICAgICAgICBjYXNlIENvbHVtbkVuZFNp
ZGU6CisgICAgICAgICAgICByZXR1cm4gZ3JpZEFyZWFDb29yZGluYXRlLmNvbHVtbnMucmVzb2x2
ZWRGaW5hbFBvc2l0aW9uOworICAgICAgICBjYXNlIFJvd1N0YXJ0U2lkZToKKyAgICAgICAgICAg
IHJldHVybiBncmlkQXJlYUNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsK
KyAgICAgICAgY2FzZSBSb3dFbmRTaWRlOgorICAgICAgICAgICAgcmV0dXJuIGdyaWRBcmVhQ29v
cmRpbmF0ZS5yb3dzLnJlc29sdmVkRmluYWxQb3NpdGlvbjsKKyAgICAgICAgfQorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9u
KDApOworICAgIH0KKyAgICBjYXNlIEF1dG9Qb3NpdGlvbjoKKyAgICBjYXNlIFNwYW5Qb3NpdGlv
bjoKKyAgICAgICAgLy8gJ2F1dG8nIGFuZCBzcGFuIGRlcGVuZCBvbiB0aGUgb3Bwb3NpdGUgcG9z
aXRpb24gZm9yIHJlc29sdXRpb24gKGUuZy4gZ3JpZC1yb3c6IGF1dG8gLyAxIG9yIGdyaWQtY29s
dW1uOiBzcGFuIDMgLyAibXlIZWFkZXIiKS4KKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbigwKTsKKyAgICB9CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9uKDApOwor
fQorCitzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNv
bHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3QgUmVuZGVyU3R5bGUm
IGdyaWRDb250YWluZXJTdHlsZSwgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29sdmVk
T3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0
aW9uU2lkZSBzaWRlKQoreworICAgIGlmIChwb3NpdGlvbi5pc0F1dG8oKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwg
cmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKKworICAgIEFTU0VSVChwb3NpdGlvbi5pc1NwYW4o
KSk7CisgICAgQVNTRVJUKHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpID4gMCk7CisKKyAgICBpZiAo
IXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSkgeworICAgICAgICAvLyBzcGFuIDIg
J2MnIC0+IHdlIG5lZWQgdG8gZmluZCB0aGUgYXBwcm9wcmlhdGUgZ3JpZCBsaW5lIGJlZm9yZSAv
IGFmdGVyIG91ciBvcHBvc2l0ZSBwb3NpdGlvbi4KKyAgICAgICAgcmV0dXJuIHJlc29sdmVOYW1l
ZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihncmlkQ29udGFpbmVyU3R5
bGUsIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcG9zaXRpb24sIHNpZGUpOworICAgIH0KKwor
ICAgIC8vICdzcGFuIDEnIGlzIGNvbnRhaW5lZCBpbnNpZGUgYSBzaW5nbGUgZ3JpZCB0cmFjayBy
ZWdhcmRsZXNzIG9mIHRoZSBkaXJlY3Rpb24uCisgICAgLy8gVGhhdCdzIHdoeSB0aGUgQ1NTIHNw
YW4gdmFsdWUgaXMgb25lIG1vcmUgdGhhbiB0aGUgb2Zmc2V0IHdlIGFwcGx5LgorICAgIHNpemVf
dCBwb3NpdGlvbk9mZnNldCA9IHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpIC0gMTsKKyAgICBpZiAo
c2lkZSA9PSBDb2x1bW5TdGFydFNpZGUgfHwgc2lkZSA9PSBSb3dTdGFydFNpZGUpIHsKKyAgICAg
ICAgc2l6ZV90IGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uID0gc3RkOjptYXg8aW50PigwLCByZXNv
bHZlZE9wcG9zaXRlUG9zaXRpb24udG9JbnQoKSAtIHBvc2l0aW9uT2Zmc2V0KTsKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KEdyaWRSZXNvbHZlZFBvc2l0aW9uKGlu
aXRpYWxSZXNvbHZlZFBvc2l0aW9uKSwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKKyAgICB9
CisKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uLCBHcmlkUmVzb2x2ZWRQb3NpdGlvbihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24u
dG9JbnQoKSArIHBvc2l0aW9uT2Zmc2V0KSk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bh
bj4gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2Fp
bnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxl
LCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBj
b25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7Cisg
ICAgQVNTRVJUKHBvc2l0aW9uLmlzU3BhbigpKTsKKyAgICBBU1NFUlQoIXBvc2l0aW9uLm5hbWVk
R3JpZExpbmUoKS5pc051bGwoKSk7CisgICAgLy8gTmVnYXRpdmUgcG9zaXRpb25zIGFyZSBub3Qg
YWxsb3dlZCBwZXIgdGhlIHNwZWNpZmljYXRpb24gYW5kIHNob3VsZCBoYXZlIGJlZW4gaGFuZGxl
ZCBkdXJpbmcgcGFyc2luZy4KKyAgICBBU1NFUlQocG9zaXRpb24uc3BhblBvc2l0aW9uKCkgPiAw
KTsKKworICAgIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBncmlkTGluZXNOYW1lcyA9IGlzQ29s
dW1uU2lkZShzaWRlKSA/IGdyaWRDb250YWluZXJTdHlsZS5uYW1lZEdyaWRDb2x1bW5MaW5lcygp
IDogZ3JpZENvbnRhaW5lclN0eWxlLm5hbWVkR3JpZFJvd0xpbmVzKCk7CisgICAgTmFtZWRHcmlk
TGluZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZ3JpZExpbmVzTmFtZXMuZmluZChwb3NpdGlv
bi5uYW1lZEdyaWRMaW5lKCkpOworCisgICAgLy8gSWYgdGhlcmUgaXMgbm8gbmFtZWQgZ3JpZCBs
aW5lIG9mIHRoYXQgbmFtZSwgd2UgcmVzb2x2ZSB0aGUgcG9zaXRpb24gdG8gJ2F1dG8nICh3aGlj
aCBpcyBlcXVpdmFsZW50IHRvICdzcGFuIDEnIGluIHRoaXMgY2FzZSkuCisgICAgLy8gU2VlIGh0
dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1zdHlsZS8yMDEzSnVuLzAzOTQu
aHRtbC4KKyAgICBpZiAoaXQgPT0gZ3JpZExpbmVzTmFtZXMuZW5kKCkpCisgICAgICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHJl
c29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7CisKKyAgICBpZiAoc2lkZSA9PSBSb3dTdGFydFNpZGUg
fHwgc2lkZSA9PSBDb2x1bW5TdGFydFNpZGUpCisgICAgICAgIHJldHVybiByZXNvbHZlUm93U3Rh
cnRDb2x1bW5TdGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9u
KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcG9zaXRpb24sIGl0LT52YWx1ZSk7CisKKyAgICBy
ZXR1cm4gcmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RP
cHBvc2l0ZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcG9zaXRpb24sIGl0LT52
YWx1ZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc2l6ZV90IGZpcnN0TmFtZWRHcmlkTGluZUJlZm9y
ZVBvc2l0aW9uKHNpemVfdCBwb3NpdGlvbiwgY29uc3QgVmVjdG9yPHNpemVfdD4mIGdyaWRMaW5l
cykKK3sKKyAgICAvLyBUaGUgZ3JpZCBsaW5lIGluZXF1YWxpdHkgbmVlZHMgdG8gYmUgc3RyaWN0
ICh3aGljaCBkb2Vzbid0IG1hdGNoIHRoZSBhZnRlciAvIGVuZCBjYXNlKSBiZWNhdXNlIHxwb3Np
dGlvbnwgaXMKKyAgICAvLyBhbHJlYWR5IGNvbnZlcnRlZCB0byBhbiBpbmRleCBpbiBvdXIgZ3Jp
ZCByZXByZXNlbnRhdGlvbiAoaWUgb25lIHdhcyByZW1vdmVkIGZyb20gdGhlIGdyaWQgbGluZSB0
byBhY2NvdW50IGZvcgorICAgIC8vIHRoZSBzaWRlKS4KKyAgICBzaXplX3QgZmlyc3RMaW5lQmVm
b3JlUG9zaXRpb25JbmRleCA9IDA7CisgICAgY29uc3Qgc2l6ZV90KiBmaXJzdExpbmVCZWZvcmVQ
b3NpdGlvbiA9IHN0ZDo6bG93ZXJfYm91bmQoZ3JpZExpbmVzLmJlZ2luKCksIGdyaWRMaW5lcy5l
bmQoKSwgcG9zaXRpb24pOworICAgIGlmIChmaXJzdExpbmVCZWZvcmVQb3NpdGlvbiAhPSBncmlk
TGluZXMuZW5kKCkpIHsKKyAgICAgICAgaWYgKCpmaXJzdExpbmVCZWZvcmVQb3NpdGlvbiA+IHBv
c2l0aW9uICYmIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uICE9IGdyaWRMaW5lcy5iZWdpbigpKQor
ICAgICAgICAgICAgLS1maXJzdExpbmVCZWZvcmVQb3NpdGlvbjsKKworICAgICAgICBmaXJzdExp
bmVCZWZvcmVQb3NpdGlvbkluZGV4ID0gZmlyc3RMaW5lQmVmb3JlUG9zaXRpb24gLSBncmlkTGlu
ZXMuYmVnaW4oKTsKKyAgICB9CisgICAgcmV0dXJuIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uSW5k
ZXg7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gR3JpZFJlc29sdmVkUG9zaXRpb246
OnJlc29sdmVSb3dTdGFydENvbHVtblN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9w
cG9zaXRlUG9zaXRpb24oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29sdmVkT3Bwb3Np
dGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgY29uc3QgVmVjdG9yPHNp
emVfdD4mIGdyaWRMaW5lcykKK3sKKyAgICBzaXplX3QgZ3JpZExpbmVJbmRleCA9IHN0ZDo6bWF4
PGludD4oMCwgZmlyc3ROYW1lZEdyaWRMaW5lQmVmb3JlUG9zaXRpb24ocmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uLnRvSW50KCksIGdyaWRMaW5lcykgLSBwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSAr
IDEpOworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA9
IEdyaWRSZXNvbHZlZFBvc2l0aW9uKGdyaWRMaW5lc1tncmlkTGluZUluZGV4XSk7CisgICAgaWYg
KHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA+IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbikKKyAg
ICAgICAgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9u
OworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZlZEdyaWRMaW5l
UG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7Cit9CisKK3N0ZDo6dW5pcXVlX3B0
cjxHcmlkU3Bhbj4gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVSb3dFbmRDb2x1bW5FbmRO
YW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBHcmlkUmVz
b2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRp
b24mIHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYgZ3JpZExpbmVzKQoreworICAgIHNp
emVfdCBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb25JbmRleCA9IGdyaWRMaW5lcy5zaXpl
KCkgLSAxOworICAgIGNvbnN0IHNpemVfdCogZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9u
ID0gc3RkOjp1cHBlcl9ib3VuZChncmlkTGluZXMuYmVnaW4oKSwgZ3JpZExpbmVzLmVuZCgpLCBy
ZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pOworICAgIGlmIChmaXJzdExpbmVBZnRlck9wcG9zaXRl
UG9zaXRpb24gIT0gZ3JpZExpbmVzLmVuZCgpKQorICAgICAgICBmaXJzdExpbmVBZnRlck9wcG9z
aXRlUG9zaXRpb25JbmRleCA9IGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbiAtIGdyaWRM
aW5lcy5iZWdpbigpOworCisgICAgc2l6ZV90IGdyaWRMaW5lSW5kZXggPSBzdGQ6Om1pbihncmlk
TGluZXMuc2l6ZSgpIC0gMSwgZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uSW5kZXggKyBw
b3NpdGlvbi5zcGFuUG9zaXRpb24oKSAtIDEpOworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJl
c29sdmVkR3JpZExpbmVQb3NpdGlvbiA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1c3RHcmlk
UG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKGdyaWRMaW5lc1tncmlkTGluZUluZGV4XSk7
CisgICAgaWYgKHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA8IHJlc29sdmVkT3Bwb3NpdGVQb3Np
dGlvbikKKyAgICAgICAgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gcmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZl
ZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbik7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFJlc29sdmVkUG9z
aXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQb3Np
dGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjViNTVjNjI4OTNiZTE1MDMxNTc5YTIzZGMxMmI2Njg0MGI5YThh
MTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3Jp
ZFJlc29sdmVkUG9zaXRpb24uaApAQCAtMCwwICsxLDE0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgR3JpZFJlc29sdmVkUG9zaXRpb25faAorI2RlZmluZSBH
cmlkUmVzb2x2ZWRQb3NpdGlvbl9oCisKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorCisj
aW5jbHVkZSAiR3JpZFBvc2l0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IEdyaWRTcGFuOworY2xhc3MgUmVuZGVyQm94OworY2xhc3MgUmVuZGVyU3R5bGU7CisKK2VudW0g
R3JpZFBvc2l0aW9uU2lkZSB7CisgICAgQ29sdW1uU3RhcnRTaWRlLAorICAgIENvbHVtbkVuZFNp
ZGUsCisgICAgUm93U3RhcnRTaWRlLAorICAgIFJvd0VuZFNpZGUKK307CisKK2VudW0gR3JpZFRy
YWNrU2l6aW5nRGlyZWN0aW9uIHsKKyAgICBGb3JDb2x1bW5zLAorICAgIEZvclJvd3MKK307CisK
Ky8vIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBhbiBpbmRleCBpbnRvIG9uZSBvZiB0aGUgZGltZW5z
aW9ucyBvZiB0aGUgZ3JpZCBhcnJheS4KKy8vIFdyYXBzIGEgc2l6ZV90IGludGVnZXIganVzdCBm
b3IgdGhlIHB1cnBvc2Ugb2Yga25vd2luZyB3aGF0IHdlIG1hbmlwdWxhdGUgaW4gdGhlIGdyaWQg
Y29kZS4KK2NsYXNzIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMg
R3JpZFJlc29sdmVkUG9zaXRpb24gYWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5k
U2lkZShzaXplX3QgcmVzb2x2ZWRQb3NpdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiByZXNv
bHZlZFBvc2l0aW9uID8gR3JpZFJlc29sdmVkUG9zaXRpb24ocmVzb2x2ZWRQb3NpdGlvbiAtIDEp
IDogR3JpZFJlc29sdmVkUG9zaXRpb24oMCk7CisgICAgfQorCisgICAgc3RhdGljIEdyaWRSZXNv
bHZlZFBvc2l0aW9uIGFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoc2l6ZV90IHJlc29sdmVkUG9z
aXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKKyAgICB7CisgICAgICAgIC8vIEFuIGl0ZW0g
ZmluaXNoaW5nIG9uIHRoZSBOLXRoIGxpbmUgYmVsb25ncyB0byB0aGUgTi0xLXRoIGNlbGwuCisg
ICAgICAgIGlmIChzaWRlID09IENvbHVtbkVuZFNpZGUgfHwgc2lkZSA9PSBSb3dFbmRTaWRlKQor
ICAgICAgICAgICAgcmV0dXJuIGFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNp
ZGUocmVzb2x2ZWRQb3NpdGlvbik7CisKKyAgICAgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0
aW9uKHJlc29sdmVkUG9zaXRpb24pOworICAgIH0KKworICAgIHN0YXRpYyBzaXplX3QgZXhwbGlj
aXRHcmlkQ29sdW1uQ291bnQoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSk7
CisgICAgc3RhdGljIHNpemVfdCBleHBsaWNpdEdyaWRSb3dDb3VudChjb25zdCBSZW5kZXJTdHls
ZSYgZ3JpZENvbnRhaW5lclN0eWxlKTsKKworICAgIHN0YXRpYyBHcmlkU3BhbiByZXNvbHZlR3Jp
ZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24oY29uc3QgUmVuZGVyQm94JiwgR3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYpOworICAg
IHN0YXRpYyB2b2lkIGFkanVzdE5hbWVkR3JpZEl0ZW1Qb3NpdGlvbihjb25zdCBSZW5kZXJTdHls
ZSYsIEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNpZGUpOworICAgIHN0YXRpYyB2b2lkIGFk
anVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmLCBHcmlkUG9zaXRp
b24mIGluaXRpYWxQb3NpdGlvbiwgR3JpZFBvc2l0aW9uJiBmaW5hbFBvc2l0aW9uLCBHcmlkUG9z
aXRpb25TaWRlIGluaXRpYWxQb3NpdGlvblNpZGUsIEdyaWRQb3NpdGlvblNpZGUgZmluYWxQb3Np
dGlvblNpZGUpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVH
cmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVyQm94
JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKTsKKyAgICBzdGF0aWMgR3JpZFJlc29sdmVkUG9z
aXRpb24gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZShjb25zdCBSZW5kZXJT
dHlsZSYsIGNvbnN0IEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNpZGUpOworICAgIHN0YXRp
YyBHcmlkUmVzb2x2ZWRQb3NpdGlvbiByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0
IFJlbmRlclN0eWxlJiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lkZSk7Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgR3JpZFJlc29s
dmVkUG9zaXRpb24mIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9u
JiwgR3JpZFBvc2l0aW9uU2lkZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bh
bj4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNv
bnN0IFJlbmRlclN0eWxlJiwgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29sdmVkT3Bw
b3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lkZSk7Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcmVzb2x2ZVJvd1N0YXJ0Q29sdW1u
U3RhcnROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBH
cmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlk
UG9zaXRpb24mLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVSb3dFbmRDb2x1bW5FbmROYW1lZEdyaWRMaW5lUG9zaXRp
b25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVz
b2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mLCBjb25zdCBWZWN0b3I8
c2l6ZV90PiYpOworCisgICAgR3JpZFJlc29sdmVkUG9zaXRpb24oc2l6ZV90IHBvc2l0aW9uKQor
ICAgICAgICA6IG1faW50ZWdlclBvc2l0aW9uKHBvc2l0aW9uKQorICAgIHsKKyAgICB9CisKKyAg
ICBHcmlkUmVzb2x2ZWRQb3NpdGlvbihjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlk
UG9zaXRpb25TaWRlIHNpZGUpCisgICAgeworICAgICAgICBBU1NFUlQocG9zaXRpb24uaW50ZWdl
clBvc2l0aW9uKCkpOworICAgICAgICBzaXplX3QgaW50ZWdlclBvc2l0aW9uID0gcG9zaXRpb24u
aW50ZWdlclBvc2l0aW9uKCkgLSAxOworCisgICAgICAgIG1faW50ZWdlclBvc2l0aW9uID0gYWRq
dXN0R3JpZFBvc2l0aW9uRm9yU2lkZShpbnRlZ2VyUG9zaXRpb24sIHNpZGUpLm1faW50ZWdlclBv
c2l0aW9uOworICAgIH0KKworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBvcGVyYXRvcisrKCkK
KyAgICB7CisgICAgICAgIG1faW50ZWdlclBvc2l0aW9uKys7CisgICAgICAgIHJldHVybiAqdGhp
czsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRp
b24mIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW50ZWdlclBvc2l0aW9u
ID09IG90aGVyLm1faW50ZWdlclBvc2l0aW9uOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I8
KGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBtX2ludGVnZXJQb3NpdGlvbiA8IG90aGVyLm1faW50ZWdlclBvc2l0aW9uOworICAg
IH0KKworICAgIGJvb2wgb3BlcmF0b3I+KGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBvdGhl
cikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ludGVnZXJQb3NpdGlvbiA+IG90aGVy
Lm1faW50ZWdlclBvc2l0aW9uOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I8PShjb25zdCBH
cmlkUmVzb2x2ZWRQb3NpdGlvbiYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
bV9pbnRlZ2VyUG9zaXRpb24gPD0gb3RoZXIubV9pbnRlZ2VyUG9zaXRpb247CisgICAgfQorCisg
ICAgYm9vbCBvcGVyYXRvcj49KGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBvdGhlcikgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ludGVnZXJQb3NpdGlvbiA+PSBvdGhlci5tX2lu
dGVnZXJQb3NpdGlvbjsKKyAgICB9CisKKyAgICBzaXplX3QgdG9JbnQoKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIG1faW50ZWdlclBvc2l0aW9uOworICAgIH0KKworcHJpdmF0ZToKKwor
ICAgIHN0YXRpYyBzaXplX3QgZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoY29uc3QgUmVuZGVyU3R5
bGUmIGdyaWRDb250YWluZXJTdHlsZSwgR3JpZFBvc2l0aW9uU2lkZSk7CisKKyAgICBzaXplX3Qg
bV9pbnRlZ2VyUG9zaXRpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorCisjZW5kaWYgLy8gR3JpZFJlc29sdmVkUG9z
aXRpb25faAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229444</attachid>
            <date>2014-04-16 08:41:18 -0700</date>
            <delta_ts>2014-04-23 03:47:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131732-20140416174056.patch</filename>
            <type>text/plain</type>
            <size>81688</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmU3NGRkNTU3OGMyMDcy
YWZkMGY4MmNmNDkyOTQ2MjA1ZWU1NmFkNi4uY2I4MGIzNGRmNjFhZTMyNDA2ZDMwMjA5ZWM2ZWVh
YjlmMjVmZDVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkwIEBACisyMDE0LTA0LTE2ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEludHJvZHVjZSBhbiBleHBsaWNpdCB0eXBlIGZvciByZXNvbHZlZCBncmlkIHBv
c2l0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMxNzMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2Ugd2VyZSB1c2luZyBzaW1wbGUgc2l6ZV90IGludGVnZXJzIHRvIHJlcHJlc2VudCByZXNvbHZl
ZCBncmlkCisgICAgICAgIHBvc2l0aW9ucyBpbiBvdXIgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVz
LiBUaGlzIGNoYW5nZSBhbGxvd3MgdXMgdG8KKyAgICAgICAgY2xhcmlmeSB0aGUgY29kZSwgYXZv
aWQgcG90ZW50aWFsIG9mZiBieSBvbmUgbWlzdGFrZXMsIGFuZCBtb3ZlIHRoZQorICAgICAgICBy
ZXNvbHZpbmcgY29kZSB0byBhIGNlbnRyYWwgcGxhY2UuCisKKyAgICAgICAgQSBuZXcgY2xhc3Mg
R3JpZFJlc29sdmVkUG9zaXRpb24gaGFzIGJlZW4gY3JlYXRlZCBhbmQgdGhlIHJlbGF0ZWQKKyAg
ICAgICAgbWV0aG9kcyBoYXZlIGJlZW4gbW92ZWQgdGhlcmUgZnJvbSBSZW5kZXJHcmlkLgorICAg
ICAgICBHcmlkU3BhbiBpcyBub3cgZGVmaW5lZCBieSB0d28gR3JpZFJlc29sdmVkUG9zaXRpb24s
IHNvIGFsbCB0aGUgY29kZQorICAgICAgICB1c2luZyBpdCBoYXMgYmVlbiBtb2RpZmllZCB0byBh
ZGFwdCBpdCB0byBHcmlkUmVzb2x2ZWRQb3NpdGlvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMg
YXMgaXQgaXMgYWxyZWFkeSBjb3ZlcmVkIGJ5IGN1cnJlbnQgdGVzdHMKKyAgICAgICAgKGZhc3Qv
Y3NzLWdyaWQtbGF5b3V0LykuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5nRm9yUG9zaXRpb24pOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdy
aWRUZW1wbGF0ZUFyZWFzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjb21wdXRlVXNlZEJyZWFkdGhPZkdyaWRUcmFj
a3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZU5vcm1hbGl6ZWRGcmFj
dGlvbkJyZWFkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRl
bnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyR3JpZDo6aW5zZXJ0SXRlbUludG9HcmlkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6
cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9uR3JpZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNaW5vckF4
aXNEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z3JpZEFyZWFCcmVh
ZHRoRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6ZmluZENoaWxkTG9n
aWNhbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmxvZ2ljYWxDb250
ZW50SGVpZ2h0Rm9yQ2hpbGQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6bWluQ29udGVudEZvckNoaWxkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNvcnRC
eUdyaWRUcmFja0dyb3d0aFBvdGVudGlhbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJHcmlkOjpkaXN0cmlidXRlU3BhY2VUb1RyYWNrcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyR3JpZDo6cG9wdWxhdGVHcmlkUG9zaXRpb25zKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBhaW50Q2hpbGRyZW4pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVuZGVyTmFtZSk6IERlbGV0ZWQuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3Jp
ZENvb3JkaW5hdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRTcGFuOjpHcmlkU3Bhbik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmlkU3Bhbjo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9u
OjpHcmlkUG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9u
OjpzZXRFeHBsaWNpdFBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRQ
b3NpdGlvbjo6c2V0QXV0b1Bvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6ZXhwbGljaXRHcmlkUm93Q291bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6aXNDb2x1bW5TaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRS
ZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdyaWRTaXplRm9yU2lkZSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1Bs
YWNlbWVudFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmdyaWRMaW5lRGVmaW5lZEJlZm9y
ZUdyaWRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OnNldE5hbWVkTGluZVBvc2l0aW9uSWZEZWZp
bmVkQmVmb3JlQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
YWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNv
bHZlZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZU5hbWVk
R3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2
ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBv
c2l0ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpy
ZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6Zmlyc3ROYW1lZEdyaWRMaW5lQmVmb3JlUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVSb3dTdGFydENvbHVtblN0
YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVSb3dFbmRDb2x1bW5FbmRO
YW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbik6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0Vu
ZENvbHVtbkVuZFNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246
OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29s
dmVkUG9zaXRpb246OkdyaWRSZXNvbHZlZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
aWRSZXNvbHZlZFBvc2l0aW9uOjpvcGVyYXRvcisrKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRS
ZXNvbHZlZFBvc2l0aW9uOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNv
bHZlZFBvc2l0aW9uOjpvcGVyYXRvcjwpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVk
UG9zaXRpb246Om9wZXJhdG9yPik6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3Np
dGlvbjo6b3BlcmF0b3I8PSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6b3BlcmF0b3I+PSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
dG9JbnQpOgorCiAyMDE0LTA0LTE1ICBIeW93b24gS2ltICA8aHcxMDA4LmtpbUBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBbRUZMXSBGaXggcHJvYmxlbXMgd2l0aCB0aGUgcGl4ZWwgZHVtcC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKaW5kZXggNjE3NjRkNjU1MzJmNTZhZThiMDU3ZjIwMzZjYTUyNjk4NzRk
ZTdmMy4uNmZiMTNjOGZhNjA2MWI0NmY1ZTcyNzhkNTU3MTA5MzA0MTM2NTcwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQKQEAgLTI0MDQsNiArMjQwNCw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAg
ICByZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL0Nv
dW50ZXJEaXJlY3RpdmVzLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9GaWxsTGF5ZXIuY3BwCisg
ICAgcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcAogICAgIHJlbmRlcmlu
Zy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL05pbmVQaWVjZUlt
YWdlLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXggZGQ5ZjAyZmZmNmNi
OWMyOWVjNDAxYjMwZDdhZGVhMzA3ZjNkZDY1Ni4uNDUxNDhhOWUwYTQ2MTgxMDZjMWRlODM3ZWMz
ZTFiMjJiN2JjMDc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2Vi
Q29yZS52Y3hwcm9qCkBAIC0xMTQ2Niw2ICsxMTQ2Niw3IEBACiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9t
QnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0
aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRSZXNvbHZlZFBvc2l0
aW9uLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxL
ZXlmcmFtZUxpc3QuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KQEAgLTIwMTM4LDYgKzIwMTM5LDcgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJlbmRlcmluZ1xzdHlsZVxHcmlkQ29vcmRpbmF0ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRMZW5ndGguaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkUG9zaXRpb24uaCIgLz4KKyAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkUmVzb2x2ZWRQb3NpdGlvbi5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRUcmFj
a1NpemUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxL
ZXlmcmFtZUxpc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xz
dHlsZVxOaW5lUGllY2VJbWFnZS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDJjNjBkNjQyOGIwMTQ2
ZmMzNjcwMDgxZjg2NDc0MGJhNTlmMjczYjkuLmM0MDFiZGUwMGFmNDIzZjU1NWU2NzM0ZWEwMWQ1
MTIzNWJjMmY5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTI3NzUsNiArMjc3NSw5IEBACiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcRmlsbExheWVyLmNwcCI+CiAgICAg
ICA8RmlsdGVyPnJlbmRlcmluZ1xzdHlsZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRSZXNvbHZlZFBvc2l0
aW9uLmNwcCI+CisgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzdHlsZTwvRmlsdGVyPgorICAgIDwv
Q2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEtl
eWZyYW1lTGlzdC5jcHAiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc3R5bGU8L0ZpbHRlcj4K
ICAgICA8L0NsQ29tcGlsZT4KQEAgLTk3MDAsNiArOTcwMyw5IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFBvc2l0aW9uLmgiPgogICAgICAgPEZpbHRl
cj5yZW5kZXJpbmdcc3R5bGU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oIj4K
KyAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHN0eWxlPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFRyYWNrU2l6
ZS5oIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHN0eWxlPC9GaWx0ZXI+CiAgICAgPC9DbElu
Y2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggOGE1MWQ3YzQwZTIyZmQzYzk2ZjNhZTA1NDVhZWUyYjVkNzRmMzA5NC4uYTJj
ZjJlZTgzZGQ1MjI1ZWZlNmU1NDQyMjA2YTc4ZmQ1MTYyYmI0MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTY1Niw2ICs1NjU2
LDggQEAKIAkJQ0RGMkIwMTkxODIwNTQwNzAwRjJCNDI0IC8qIE1vY2tUcmFja3MuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJCMDBGMTgyMDU0MDYw
MEYyQjQyNCAvKiBNb2NrVHJhY2tzLmggKi87IH07CiAJCUNERjY1Q0M4MTQ1QjFFNzUwMEM0QzdB
QSAvKiBNZWRpYUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENEMjdGNkU0MTQ1NzY3ODcwMDc4MjA3RCAvKiBNZWRpYUNvbnRyb2xsZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREY2
NUNDQTE0NUI0NDg4MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY2NUNDOTE0NUI0M0E3
MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0Mw
IC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0ODNDMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2
ZWRQb3NpdGlvbi5jcHAgKi87IH07CisJCUNERjc0ODNGMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlk
UmVzb2x2ZWRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RGNzQ4M0QxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9u
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RG
QzM2MDUxOENBNjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREZDMzYwMzE4Q0E2MUMy
MDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcCAqLzsgfTsKIAkJQ0RGQzM2MDYx
OENBNjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGQzM2MDQxOENBNjFDMjAwMjZFNTZG
IC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUNERkMzNjA3MThDQTY5NkMwMDI2RTU2RiAvKiBSZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREZDMzYwMjE4Q0E2MTYzMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TLm1tICovOyB9OwpAQCAtMTMwMjMsNiArMTMwMjUsOCBAQAogCQlDREYyQjAwRjE4MjA1
NDA2MDBGMkI0MjQgLyogTW9ja1RyYWNrcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBNb2NrVHJhY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjY1Q0M5
MTQ1QjQzQTcwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjY1Q0NDMTQ1QjZBRkUwMEM0QzdBQSAvKiBKU0hU
TUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0RGNzQ4M0MxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9u
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEdyaWRSZXNvbHZlZFBv
c2l0aW9uLmNwcDsgcGF0aCA9IHN0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RGNzQ4M0QxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRS
ZXNvbHZlZFBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEdyaWRS
ZXNvbHZlZFBvc2l0aW9uLmg7IHBhdGggPSBzdHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREZDMzYwMTE4Q0E2MTYzMDAyNkU1NkYgLyog
UmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oOyBwYXRoID0gaW9zL1JlbW90ZUNvbW1hbmRM
aXN0ZW5lcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREZDMzYwMjE4Q0E2
MTYzMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tOyBw
YXRoID0gaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0RGQzM2MDMxOENBNjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0
ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVDb21t
YW5kTGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA2NzAsNiAr
MjA2NzQsOCBAQAogCQkJCUNEM0UyNTFCMTgwNDZCMDYwMEUyN0Y1NiAvKiBHcmlkQ29vcmRpbmF0
ZS5oICovLAogCQkJCUNERUY0RkQ2MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlkTGVuZ3RoLmggKi8s
CiAJCQkJQTEyNzA1QzIxNjU2QkQ2NTAwQzJFMjdDIC8qIEdyaWRQb3NpdGlvbi5oICovLAorCQkJ
CUNERjc0ODNDMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAgKi8s
CisJCQkJQ0RGNzQ4M0QxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmgg
Ki8sCiAJCQkJQTEyQTEwNEUxNjY0NDREQzAwOEZBMzExIC8qIEdyaWRUcmFja1NpemUuaCAqLywK
IAkJCQlCQzVFQkEwRTBFODIzRTQ3MDBCMjU5NjUgLyogS2V5ZnJhbWVMaXN0LmNwcCAqLywKIAkJ
CQlCQzVFQkEwRjBFODIzRTQ3MDBCMjU5NjUgLyogS2V5ZnJhbWVMaXN0LmggKi8sCkBAIC0yNDQw
Niw2ICsyNDQxMiw3IEBACiAJCQkJQTgwRTdFOUYwQTFBODNFMzAwN0ZCOEM1IC8qIEpTSFRNTEJ1
dHRvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOEU2NjYyMDlGMDlCODcwMDhBNDhF
QyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0NCQUQ0MTBD
MThDMTQyMDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
Q0RGNzQ4M0YxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGNUMwNDFFNzBGRkNBOTZEMDA4MzlENEEgLyogSlNIVE1MRGF0YUxpc3RF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMzU5RDhCRjEyOUNBNTVDMDAwNkU1RDIgLyog
SlNIVE1MRGV0YWlsc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2ODA4QjUwMTU5REFE
RkEwMDJCNTIzMyAvKiBKU0hUTUxEaWFsb2dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI3
MTM4LDYgKzI3MTQ1LDcgQEAKIAkJCQlBNDIyNkU5NjExNjNENzNBMDA4QjgzOTcgLyogRE9NSFRN
TFByb2dyZXNzRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1MTgzQjRCMEFBNjkyNjEw
MEYxOUZBMyAvKiBET01IVE1MUXVvdGVFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODVE
RjgxOUMwQUE3N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxTY3JpcHRFbGVtZW50Lm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1RjMyQUYxMEFBNjNCODcwMEZGMzE4NCAvKiBE
T01IVE1MU2VsZWN0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1OUE5QzUwMEFBNUUz
QkQwMEI2OTRCMiAvKiBET01IVE1MU3R5bGVFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODVERjgyMUUwQUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZUNhcHRpb25FbGVtZW50Lm1t
IGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRl
bXBsYXRlQXJlYXNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRl
QXJlYXNWYWx1ZS5jcHAKaW5kZXggYjM1MzgyMjkwZjM0MGVhZDY5MTYzM2I0NTc1OWNjMjY5YzU3
ZGY5My4uNWFkNzFmYmRkMzZjZjhkYzAwMzQyMDM4ZDEzN2NhYWZlNmFlYTNmNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcApAQCAtNTUs
MTMgKzU1LDEzIEBAIHN0YXRpYyBTdHJpbmcgc3RyaW5nRm9yUG9zaXRpb24oY29uc3QgTmFtZWRH
cmlkQXJlYU1hcCYgZ3JpZEFyZWFNYXAsIHNpemVfdCByb3csCiAKICAgICBmb3IgKGNvbnN0IGF1
dG8mIGl0IDogZ3JpZEFyZWFNYXApIHsKICAgICAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUmIGNv
b3JkaW5hdGUgPSBpdC52YWx1ZTsKLSAgICAgICAgaWYgKHJvdyA+PSBjb29yZGluYXRlLnJvd3Mu
aW5pdGlhbFBvc2l0aW9uSW5kZXggJiYgcm93IDw9IGNvb3JkaW5hdGUucm93cy5maW5hbFBvc2l0
aW9uSW5kZXgpCisgICAgICAgIGlmIChyb3cgPj0gY29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkSW5p
dGlhbFBvc2l0aW9uLnRvSW50KCkgJiYgcm93IDw9IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZp
bmFsUG9zaXRpb24udG9JbnQoKSkKICAgICAgICAgICAgIGNhbmRpZGF0ZXMuYXBwZW5kKGl0Lmtl
eSk7CiAgICAgfQogCiAgICAgZm9yIChjb25zdCBhdXRvJiBpdCA6IGdyaWRBcmVhTWFwKSB7CiAg
ICAgICAgIGNvbnN0IEdyaWRDb29yZGluYXRlJiBjb29yZGluYXRlID0gaXQudmFsdWU7Ci0gICAg
ICAgIGlmIChjb2x1bW4gPj0gY29vcmRpbmF0ZS5jb2x1bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4
ICYmIGNvbHVtbiA8PSBjb29yZGluYXRlLmNvbHVtbnMuZmluYWxQb3NpdGlvbkluZGV4ICYmIGNh
bmRpZGF0ZXMuY29udGFpbnMoaXQua2V5KSkKKyAgICAgICAgaWYgKGNvbHVtbiA+PSBjb29yZGlu
YXRlLmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKSAmJiBjb2x1bW4gPD0g
Y29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlvbi50b0ludCgpICYmIGNhbmRp
ZGF0ZXMuY29udGFpbnMoaXQua2V5KSkKICAgICAgICAgICAgIHJldHVybiBpdC5rZXk7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDU2YmZkYmUxNmQ5MDc2ZWMwMjQ0Nzg3
MGUzYTc1YjQ3MTlkODNiODIuLmIyYWYwZjVjNTJjOTViYmNmYjE5NzgwZDNhM2ZlMmE3YTZkMzM0
ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC01MTk4LDE4ICs1MTk4LDE4IEBAIFBh
c3NSZWZQdHI8Q1NTVmFsdWU+IENTU1BhcnNlcjo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhcygpCiAK
ICAgICAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoZWNrcyB0ZXN0IHRoYXQgdGhlIGdy
aWQgYXJlYSBpcyBhIHNpbmdsZSBmaWxsZWQtaW4gcmVjdGFuZ2xlLgogICAgICAgICAgICAgICAg
IC8vIDEuIFRoZSBuZXcgcm93IGlzIGFkamFjZW50IHRvIHRoZSBwcmV2aW91c2x5IHBhcnNlZCBy
b3cuCi0gICAgICAgICAgICAgICAgaWYgKHJvd0NvdW50ICE9IGdyaWRDb29yZGluYXRlLnJvd3Mu
ZmluYWxQb3NpdGlvbkluZGV4ICsgMSkKKyAgICAgICAgICAgICAgICBpZiAocm93Q291bnQgIT0g
Z3JpZENvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRpb24udG9JbnQoKSArIDEpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgICAgICAgICAgLy8gMi4gVGhl
IG5ldyBhcmVhIHN0YXJ0cyBhdCB0aGUgc2FtZSBwb3NpdGlvbiBhcyB0aGUgcHJldmlvdXNseSBw
YXJzZWQgYXJlYS4KLSAgICAgICAgICAgICAgICBpZiAoY3VycmVudENvbHVtbiAhPSBncmlkQ29v
cmRpbmF0ZS5jb2x1bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4KQorICAgICAgICAgICAgICAgIGlm
IChjdXJyZW50Q29sdW1uICE9IGdyaWRDb29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRJbml0aWFs
UG9zaXRpb24udG9JbnQoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAg
ICAgICAgICAgICAvLyAzLiBUaGUgbmV3IGFyZWEgZW5kcyBhdCB0aGUgc2FtZSBwb3NpdGlvbiBh
cyB0aGUgcHJldmlvdXNseSBwYXJzZWQgYXJlYS4KLSAgICAgICAgICAgICAgICBpZiAobG9va0Fo
ZWFkQ29sdW1uICE9IGdyaWRDb29yZGluYXRlLmNvbHVtbnMuZmluYWxQb3NpdGlvbkluZGV4KQor
ICAgICAgICAgICAgICAgIGlmIChsb29rQWhlYWRDb2x1bW4gIT0gZ3JpZENvb3JkaW5hdGUuY29s
dW1ucy5yZXNvbHZlZEZpbmFsUG9zaXRpb24udG9JbnQoKSkKICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICAgICAgICAgICAgICArK2dyaWRDb29yZGluYXRlLnJvd3MuZmluYWxQ
b3NpdGlvbkluZGV4OworICAgICAgICAgICAgICAgICsrZ3JpZENvb3JkaW5hdGUucm93cy5yZXNv
bHZlZEZpbmFsUG9zaXRpb247CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjdXJyZW50Q29s
dW1uID0gbG9va0FoZWFkQ29sdW1uOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyR3JpZC5jcHAKaW5kZXggYWQxOTEwMzlkYmNjNGRkYmQ0OGU1ZDM1Y2VkMGQ1OWQ4N2Qx
MzQxOS4uY2Y5YWQ0ZWJiYmIwNmExYWMyZDQ2Yzc5NDU5YzQ0ZGU1OGMzNTVjMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2lmIEVO
QUJMRShDU1NfR1JJRF9MQVlPVVQpCiAKICNpbmNsdWRlICJHcmlkQ29vcmRpbmF0ZS5oIgorI2lu
Y2x1ZGUgIkdyaWRSZXNvbHZlZFBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVwYWludGVy
LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5o
IgpAQCAtMzQyLDcgKzM0Myw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0ZVVzZWRCcmVhZHRo
T2ZHcmlkVHJhY2tzKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3RpCiAgICAgICAgICAg
ICAgICAgY29uc3QgR3JpZFNwYW4gc3BhbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBj
b29yZGluYXRlLmNvbHVtbnMgOiBjb29yZGluYXRlLnJvd3M7CiAKICAgICAgICAgICAgICAgICAv
LyBEbyBub3QgaW5jbHVkZSBhbHJlYWR5IHByb2Nlc3NlZCBpdGVtcy4KLSAgICAgICAgICAgICAg
ICBpZiAoaSA+IDAgJiYgc3Bhbi5pbml0aWFsUG9zaXRpb25JbmRleCA8PSBmbGV4aWJsZVNpemVk
VHJhY2tzSW5kZXhbaSAtIDFdKQorICAgICAgICAgICAgICAgIGlmIChpID4gMCAmJiBzcGFuLnJl
c29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCkgPD0gZmxleGlibGVTaXplZFRyYWNrc0luZGV4
W2kgLSAxXSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgICAg
ICBkb3VibGUgaXRlbU5vcm1hbGl6ZWRGbGV4QnJlYWR0aCA9IGNvbXB1dGVOb3JtYWxpemVkRnJh
Y3Rpb25CcmVhZHRoKHRyYWNrcywgc3BhbiwgZGlyZWN0aW9uLCBtYXhDb250ZW50Rm9yQ2hpbGQo
Z3JpZEl0ZW0sIGRpcmVjdGlvbiwgc2l6aW5nRGF0YS5jb2x1bW5UcmFja3MpKTsKQEAgLTQwMSwx
MiArNDAyLDEyIEBAIGRvdWJsZSBSZW5kZXJHcmlkOjpjb21wdXRlTm9ybWFsaXplZEZyYWN0aW9u
QnJlYWR0aChWZWN0b3I8R3JpZFRyYWNrPiYgdHJhY2tzLCBjCiAgICAgLy8gfGF2YWlsYWJsZUxv
Z2ljYWxTcGFjZXwgYWxyZWFkeSBhY2NvdW50cyBmb3IgdGhlIHVzZWQgYnJlYWR0aHMgc28gbm8g
bmVlZCB0byByZW1vdmUgaXQgaGVyZS4KIAogICAgIFZlY3RvcjxHcmlkVHJhY2tGb3JOb3JtYWxp
emF0aW9uPiB0cmFja3NGb3JOb3JtYWxpemF0aW9uOwotICAgIGZvciAoc2l6ZV90IGkgPSB0cmFj
a3NTcGFuLmluaXRpYWxQb3NpdGlvbkluZGV4OyBpIDw9IHRyYWNrc1NwYW4uZmluYWxQb3NpdGlv
bkluZGV4OyArK2kpIHsKLSAgICAgICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXplID0g
Z3JpZFRyYWNrU2l6ZShkaXJlY3Rpb24sIGkpOworICAgIGZvciAoR3JpZFJlc29sdmVkUG9zaXRp
b24gcG9zaXRpb24gPSB0cmFja3NTcGFuLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOyBwb3NpdGlv
biA8PSB0cmFja3NTcGFuLnJlc29sdmVkRmluYWxQb3NpdGlvbjsgKytwb3NpdGlvbikgeworICAg
ICAgICBjb25zdCBHcmlkVHJhY2tTaXplJiB0cmFja1NpemUgPSBncmlkVHJhY2tTaXplKGRpcmVj
dGlvbiwgcG9zaXRpb24udG9JbnQoKSk7CiAgICAgICAgIGlmICghdHJhY2tTaXplLm1heFRyYWNr
QnJlYWR0aCgpLmlzRmxleCgpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgdHJh
Y2tzRm9yTm9ybWFsaXphdGlvbi5hcHBlbmQoR3JpZFRyYWNrRm9yTm9ybWFsaXphdGlvbih0cmFj
a3NbaV0sIHRyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5mbGV4KCkpKTsKKyAgICAgICAgdHJh
Y2tzRm9yTm9ybWFsaXphdGlvbi5hcHBlbmQoR3JpZFRyYWNrRm9yTm9ybWFsaXphdGlvbih0cmFj
a3NbcG9zaXRpb24udG9JbnQoKV0sIHRyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5mbGV4KCkp
KTsKICAgICB9CiAKICAgICAvLyBUaGUgZnVuY3Rpb24gaXMgbm90IGNhbGxlZCBpZiB3ZSBkb24n
dCBoYXZlIDxmbGV4PiBncmlkIHRyYWNrcwpAQCAtNDYyLDI2ICs0NjMsNiBAQCBjb25zdCBHcmlk
VHJhY2tTaXplJiBSZW5kZXJHcmlkOjpncmlkVHJhY2tTaXplKEdyaWRUcmFja1NpemluZ0RpcmVj
dGlvbiBkaXJlY3RpbwogICAgIHJldHVybiB0cmFja1NpemU7CiB9CiAKLXNpemVfdCBSZW5kZXJH
cmlkOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0eWxl
KCkuZ3JpZENvbHVtbnMoKS5zaXplKCk7Ci19Ci0KLXNpemVfdCBSZW5kZXJHcmlkOjpleHBsaWNp
dEdyaWRSb3dDb3VudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0eWxlKCkuZ3JpZFJvd3MoKS5z
aXplKCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbHVtblNpZGUoR3JpZFBvc2l0aW9u
U2lkZSBzaWRlKQotewotICAgIHJldHVybiBzaWRlID09IENvbHVtblN0YXJ0U2lkZSB8fCBzaWRl
ID09IENvbHVtbkVuZFNpZGU7Ci19Ci0KLXNpemVfdCBSZW5kZXJHcmlkOjpleHBsaWNpdEdyaWRT
aXplRm9yU2lkZShHcmlkUG9zaXRpb25TaWRlIHNpZGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGlz
Q29sdW1uU2lkZShzaWRlKSA/IGV4cGxpY2l0R3JpZENvbHVtbkNvdW50KCkgOiBleHBsaWNpdEdy
aWRSb3dDb3VudCgpOwotfQotCiBMYXlvdXRVbml0IFJlbmRlckdyaWQ6OmxvZ2ljYWxDb250ZW50
SGVpZ2h0Rm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCwgVmVjdG9yPEdyaWRUcmFjaz4mIGNvbHVt
blRyYWNrcykKIHsKICAgICBMYXlvdXRVbml0IG9sZE92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29u
dGVudExvZ2ljYWxXaWR0aCA9IGNoaWxkLT5oYXNPdmVycmlkZUNvbnRhaW5pbmdCbG9ja0xvZ2lj
YWxXaWR0aCgpID8gY2hpbGQtPm92ZXJyaWRlQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxX
aWR0aCgpIDogTGF5b3V0VW5pdCgpOwpAQCAtNTUxLDE2ICs1MzIsMTYgQEAgdm9pZCBSZW5kZXJH
cmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnMoR3JpZFRyYWNrU2l6
aW5nRGlyZWN0aW8KIHZvaWQgUmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6
aW5nRnVuY3Rpb25zRm9ySXRlbXMoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwg
R3JpZFNpemluZ0RhdGEmIHNpemluZ0RhdGEsIFJlbmRlckJveCogZ3JpZEl0ZW0sIEZpbHRlckZ1
bmN0aW9uIGZpbHRlckZ1bmN0aW9uLCBTaXppbmdGdW5jdGlvbiBzaXppbmdGdW5jdGlvbiwgQWNj
dW11bGF0b3JHZXR0ZXIgdHJhY2tHZXR0ZXIsIEFjY3VtdWxhdG9yR3Jvd0Z1bmN0aW9uIHRyYWNr
R3Jvd3RoRnVuY3Rpb24pCiB7CiAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUgY29vcmRpbmF0ZSA9
IGNhY2hlZEdyaWRDb29yZGluYXRlKGdyaWRJdGVtKTsKLSAgICBjb25zdCBzaXplX3QgaW5pdGlh
bFRyYWNrSW5kZXggPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gY29vcmRpbmF0ZS5jb2x1
bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4IDogY29vcmRpbmF0ZS5yb3dzLmluaXRpYWxQb3NpdGlv
bkluZGV4OwotICAgIGNvbnN0IHNpemVfdCBmaW5hbFRyYWNrSW5kZXggPSAoZGlyZWN0aW9uID09
IEZvckNvbHVtbnMpID8gY29vcmRpbmF0ZS5jb2x1bW5zLmZpbmFsUG9zaXRpb25JbmRleCA6IGNv
b3JkaW5hdGUucm93cy5maW5hbFBvc2l0aW9uSW5kZXg7CisgICAgY29uc3QgR3JpZFJlc29sdmVk
UG9zaXRpb24gaW5pdGlhbFRyYWNrUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMp
ID8gY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uIDogY29vcmRpbmF0
ZS5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOworICAgIGNvbnN0IEdyaWRSZXNvbHZlZFBv
c2l0aW9uIGZpbmFsVHJhY2tQb3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBj
b29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRGaW5hbFBvc2l0aW9uIDogY29vcmRpbmF0ZS5yb3dz
LnJlc29sdmVkRmluYWxQb3NpdGlvbjsKIAogICAgIHNpemluZ0RhdGEuZmlsdGVyZWRUcmFja3Mu
c2hyaW5rKDApOwotICAgIGZvciAoc2l6ZV90IHRyYWNrSW5kZXggPSBpbml0aWFsVHJhY2tJbmRl
eDsgdHJhY2tJbmRleCA8PSBmaW5hbFRyYWNrSW5kZXg7ICsrdHJhY2tJbmRleCkgewotICAgICAg
ICBjb25zdCBHcmlkVHJhY2tTaXplJiB0cmFja1NpemUgPSBncmlkVHJhY2tTaXplKGRpcmVjdGlv
biwgdHJhY2tJbmRleCk7CisgICAgZm9yIChHcmlkUmVzb2x2ZWRQb3NpdGlvbiB0cmFja0luZGV4
ID0gaW5pdGlhbFRyYWNrUG9zaXRpb247IHRyYWNrSW5kZXggPD0gZmluYWxUcmFja1Bvc2l0aW9u
OyArK3RyYWNrSW5kZXgpIHsKKyAgICAgICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXpl
ID0gZ3JpZFRyYWNrU2l6ZShkaXJlY3Rpb24sIHRyYWNrSW5kZXgudG9JbnQoKSk7CiAgICAgICAg
IGlmICghKHRyYWNrU2l6ZS4qZmlsdGVyRnVuY3Rpb24pKCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICBHcmlkVHJhY2smIHRyYWNrID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5z
KSA/IHNpemluZ0RhdGEuY29sdW1uVHJhY2tzW3RyYWNrSW5kZXhdIDogc2l6aW5nRGF0YS5yb3dU
cmFja3NbdHJhY2tJbmRleF07CisgICAgICAgIEdyaWRUcmFjayYgdHJhY2sgPSAoZGlyZWN0aW9u
ID09IEZvckNvbHVtbnMpID8gc2l6aW5nRGF0YS5jb2x1bW5UcmFja3NbdHJhY2tJbmRleC50b0lu
dCgpXSA6IHNpemluZ0RhdGEucm93VHJhY2tzW3RyYWNrSW5kZXgudG9JbnQoKV07CiAgICAgICAg
IHNpemluZ0RhdGEuZmlsdGVyZWRUcmFja3MuYXBwZW5kKCZ0cmFjayk7CiAgICAgfQogCkBAIC01
NjgsOCArNTQ5LDggQEAgdm9pZCBSZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tT
aXppbmdGdW5jdGlvbnNGb3JJdGVtcyhHcmlkVHJhY2tTaXppbmcKICAgICAgICAgcmV0dXJuOwog
CiAgICAgTGF5b3V0VW5pdCBhZGRpdGlvbmFsQnJlYWR0aFNwYWNlID0gKHRoaXMtPipzaXppbmdG
dW5jdGlvbikoZ3JpZEl0ZW0sIGRpcmVjdGlvbiwgc2l6aW5nRGF0YS5jb2x1bW5UcmFja3MpOwot
ICAgIGZvciAoc2l6ZV90IHRyYWNrSW5kZXhGb3JTcGFjZSA9IGluaXRpYWxUcmFja0luZGV4OyB0
cmFja0luZGV4Rm9yU3BhY2UgPD0gZmluYWxUcmFja0luZGV4OyArK3RyYWNrSW5kZXhGb3JTcGFj
ZSkgewotICAgICAgICBHcmlkVHJhY2smIHRyYWNrID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5z
KSA/IHNpemluZ0RhdGEuY29sdW1uVHJhY2tzW3RyYWNrSW5kZXhGb3JTcGFjZV0gOiBzaXppbmdE
YXRhLnJvd1RyYWNrc1t0cmFja0luZGV4Rm9yU3BhY2VdOworICAgIGZvciAoR3JpZFJlc29sdmVk
UG9zaXRpb24gdHJhY2tQb3NpdGlvbkZvclNwYWNlID0gaW5pdGlhbFRyYWNrUG9zaXRpb247IHRy
YWNrUG9zaXRpb25Gb3JTcGFjZSA8PSBmaW5hbFRyYWNrUG9zaXRpb247ICsrdHJhY2tQb3NpdGlv
bkZvclNwYWNlKSB7CisgICAgICAgIEdyaWRUcmFjayYgdHJhY2sgPSAoZGlyZWN0aW9uID09IEZv
ckNvbHVtbnMpID8gc2l6aW5nRGF0YS5jb2x1bW5UcmFja3NbdHJhY2tQb3NpdGlvbkZvclNwYWNl
LnRvSW50KCldIDogc2l6aW5nRGF0YS5yb3dUcmFja3NbdHJhY2tQb3NpdGlvbkZvclNwYWNlLnRv
SW50KCldOwogICAgICAgICBhZGRpdGlvbmFsQnJlYWR0aFNwYWNlIC09ICh0cmFjay4qdHJhY2tH
ZXR0ZXIpKCk7CiAgICAgfQogCkBAIC02NDMsMTcgKzYyNCwxNyBAQCB2b2lkIFJlbmRlckdyaWQ6
Omdyb3dHcmlkKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAKIHZvaWQgUmVu
ZGVyR3JpZDo6aW5zZXJ0SXRlbUludG9HcmlkKFJlbmRlckJveCogY2hpbGQsIGNvbnN0IEdyaWRD
b29yZGluYXRlJiBjb29yZGluYXRlKQogewotICAgIGZvciAoc2l6ZV90IHJvdyA9IGNvb3JkaW5h
dGUucm93cy5pbml0aWFsUG9zaXRpb25JbmRleDsgcm93IDw9IGNvb3JkaW5hdGUucm93cy5maW5h
bFBvc2l0aW9uSW5kZXg7ICsrcm93KSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGNvbHVtbiA9IGNv
b3JkaW5hdGUuY29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleDsgY29sdW1uIDw9IGNvb3JkaW5h
dGUuY29sdW1ucy5maW5hbFBvc2l0aW9uSW5kZXg7ICsrY29sdW1uKQotICAgICAgICAgICAgbV9n
cmlkW3Jvd11bY29sdW1uXS5hcHBlbmQoY2hpbGQpOworICAgIGZvciAoR3JpZFJlc29sdmVkUG9z
aXRpb24gcm93ID0gY29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOyByb3cg
PD0gY29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkRmluYWxQb3NpdGlvbjsgKytyb3cpIHsKKyAgICAg
ICAgZm9yIChHcmlkUmVzb2x2ZWRQb3NpdGlvbiBjb2x1bW4gPSBjb29yZGluYXRlLmNvbHVtbnMu
cmVzb2x2ZWRJbml0aWFsUG9zaXRpb247IGNvbHVtbiA8PSBjb29yZGluYXRlLmNvbHVtbnMucmVz
b2x2ZWRGaW5hbFBvc2l0aW9uOyArK2NvbHVtbikKKyAgICAgICAgICAgIG1fZ3JpZFtyb3cudG9J
bnQoKV1bY29sdW1uLnRvSW50KCldLmFwcGVuZChjaGlsZCk7CiAgICAgfQogICAgIG1fZ3JpZEl0
ZW1Db29yZGluYXRlLnNldChjaGlsZCwgY29vcmRpbmF0ZSk7CiB9CiAKLXZvaWQgUmVuZGVyR3Jp
ZDo6aW5zZXJ0SXRlbUludG9HcmlkKFJlbmRlckJveCogY2hpbGQsIHNpemVfdCByb3dUcmFjaywg
c2l6ZV90IGNvbHVtblRyYWNrKQordm9pZCBSZW5kZXJHcmlkOjppbnNlcnRJdGVtSW50b0dyaWQo
UmVuZGVyQm94KiBjaGlsZCwgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJvd1RyYWNrLCBj
b25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgY29sdW1uVHJhY2spCiB7Ci0gICAgY29uc3QgR3Jp
ZFNwYW4mIHJvd1NwYW4gPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9z
aXRpb24oY2hpbGQsIEZvclJvd3MsIHJvd1RyYWNrKTsKLSAgICBjb25zdCBHcmlkU3BhbiYgY29s
dW1uU3BhbiA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbihj
aGlsZCwgRm9yQ29sdW1ucywgY29sdW1uVHJhY2spOworICAgIGNvbnN0IEdyaWRTcGFuJiByb3dT
cGFuID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9Q
bGFjZW1lbnRQb3NpdGlvbigqY2hpbGQsIEZvclJvd3MsIHJvd1RyYWNrKTsKKyAgICBjb25zdCBH
cmlkU3BhbiYgY29sdW1uU3BhbiA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBv
c2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24oKmNoaWxkLCBGb3JDb2x1bW5zLCBjb2x1
bW5UcmFjayk7CiAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGNoaWxkLCBHcmlkQ29vcmRpbmF0ZShy
b3dTcGFuLCBjb2x1bW5TcGFuKSk7CiB9CiAKQEAgLTY3MCw4ICs2NTEsOCBAQCB2b2lkIFJlbmRl
ckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQoKQogICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IG1f
b3JkZXJJdGVyYXRvci5maXJzdCgpOyBjaGlsZDsgY2hpbGQgPSBtX29yZGVySXRlcmF0b3IubmV4
dCgpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBuZXZlciByZS1yZXNvbHZlIHBvc2l0aW9ucyBp
ZiB0aGUgZ3JpZCBpcyBncm93biBkdXJpbmcgYXV0by1wbGFjZW1lbnQgd2hpY2ggbWF5IGxlYWQg
YXV0byAvIDxpbnRlZ2VyPgogICAgICAgICAvLyBwb3NpdGlvbnMgdG8gbm90IG1hdGNoIHRoZSBh
dXRob3IncyBpbnRlbnQuIFRoZSBzcGVjaWZpY2F0aW9uIGlzIHVuY2xlYXIgb24gd2hhdCBzaG91
bGQgYmUgZG9uZSBpbiB0aGlzIGNhc2UuCi0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bh
bj4gcm93UG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY2hpbGQsIEZv
clJvd3MpOwotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IGNvbHVtblBvc2l0aW9u
cyA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNoaWxkLCBGb3JDb2x1bW5zKTsKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByb3dQb3NpdGlvbnMgPSBHcmlkUmVzb2x2
ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgKmNoaWxk
LCBGb3JSb3dzKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBjb2x1bW5Qb3Np
dGlvbnMgPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5
bGUoc3R5bGUoKSwgKmNoaWxkLCBGb3JDb2x1bW5zKTsKICAgICAgICAgaWYgKCFyb3dQb3NpdGlv
bnMgfHwgIWNvbHVtblBvc2l0aW9ucykgewogICAgICAgICAgICAgR3JpZFNwYW4qIG1ham9yQXhp
c1Bvc2l0aW9ucyA9IChhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkgPT0gRm9yQ29s
dW1ucykgPyBjb2x1bW5Qb3NpdGlvbnMuZ2V0KCkgOiByb3dQb3NpdGlvbnMuZ2V0KCk7CiAgICAg
ICAgICAgICBpZiAoIW1ham9yQXhpc1Bvc2l0aW9ucykKQEAgLTcwMSw4ICs2ODIsOCBAQCB2b2lk
IFJlbmRlckdyaWQ6OnBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRvcigpCiB7CiAg
ICAgLy8gRklYTUU6IFdlIHNob3VsZCBmaW5kIGEgd2F5IHRvIHNoYXJlIE9yZGVyVmFsdWVzJ3Mg
aW5pdGlhbGl6YXRpb24gY29kZSB3aXRoIFJlbmRlckZsZXhpYmxlQm94LgogICAgIE9yZGVySXRl
cmF0b3I6Ok9yZGVyVmFsdWVzIG9yZGVyVmFsdWVzOwotICAgIHNpemVfdCBtYXhpbXVtUm93SW5k
ZXggPSBzdGQ6Om1heDxzaXplX3Q+KDEsIGV4cGxpY2l0R3JpZFJvd0NvdW50KCkpOwotICAgIHNp
emVfdCBtYXhpbXVtQ29sdW1uSW5kZXggPSBzdGQ6Om1heDxzaXplX3Q+KDEsIGV4cGxpY2l0R3Jp
ZENvbHVtbkNvdW50KCkpOworICAgIHNpemVfdCBtYXhpbXVtUm93SW5kZXggPSBzdGQ6Om1heDxz
aXplX3Q+KDEsIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdyaWRSb3dDb3VudChzdHls
ZSgpKSk7CisgICAgc2l6ZV90IG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4o
MSwgR3JpZFJlc29sdmVkUG9zaXRpb246OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KHN0eWxlKCkp
KTsKIAogICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IGZpcnN0Q2hpbGRCb3goKTsgY2hpbGQ7
IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nQm94KCkpIHsKICAgICAgICAgLy8gQXZvaWQgZ3Jv
d2luZyB0aGUgdmVjdG9yIGZvciB0aGUgY29tbW9uLWNhc2UgZGVmYXVsdCB2YWx1ZSBvZiAwLiBU
aGlzIG9wdGltaXplcyB0aGUgbW9zdCBjb21tb24gY2FzZSB3aGljaCBpcwpAQCAtNzEyLDE1ICs2
OTMsMTUgQEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRl
cmF0b3IoKQogICAgICAgICAgICAgb3JkZXJWYWx1ZXMuYXBwZW5kKG9yZGVyKTsKIAogICAgICAg
ICAvLyBUaGlzIGZ1bmN0aW9uIGJ5cGFzc2VzIHRoZSBjYWNoZSAoY2FjaGVkR3JpZENvb3JkaW5h
dGUoKSkgYXMgaXQgaXMgdXNlZCB0byBidWlsZCBpdC4KLSAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PEdyaWRTcGFuPiByb3dQb3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShj
aGlsZCwgRm9yUm93cyk7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gY29sdW1u
UG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY2hpbGQsIEZvckNvbHVt
bnMpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJvd1Bvc2l0aW9ucyA9IEdy
aWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgp
LCAqY2hpbGQsIEZvclJvd3MpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IGNv
bHVtblBvc2l0aW9ucyA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9u
c0Zyb21TdHlsZShzdHlsZSgpLCAqY2hpbGQsIEZvckNvbHVtbnMpOwogCiAgICAgICAgIC8vIHxw
b3NpdGlvbnN8IGlzIDAgaWYgd2UgbmVlZCB0byBydW4gdGhlIGF1dG8tcGxhY2VtZW50IGFsZ29y
aXRobS4gT3VyIGVzdGltYXRpb24gaWdub3JlcwogICAgICAgICAvLyB0aGlzIGNhc2UgYXMgdGhl
IGF1dG8tcGxhY2VtZW50IGFsZ29yaXRobSB3aWxsIGdyb3cgdGhlIGdyaWQgYXMgbmVlZGVkLgog
ICAgICAgICBpZiAocm93UG9zaXRpb25zKQotICAgICAgICAgICAgbWF4aW11bVJvd0luZGV4ID0g
c3RkOjptYXgobWF4aW11bVJvd0luZGV4LCByb3dQb3NpdGlvbnMtPmZpbmFsUG9zaXRpb25JbmRl
eCArIDEpOworICAgICAgICAgICAgbWF4aW11bVJvd0luZGV4ID0gc3RkOjptYXgobWF4aW11bVJv
d0luZGV4LCByb3dQb3NpdGlvbnMtPnJlc29sdmVkRmluYWxQb3NpdGlvbi50b0ludCgpICsgMSk7
CiAgICAgICAgIGlmIChjb2x1bW5Qb3NpdGlvbnMpCi0gICAgICAgICAgICBtYXhpbXVtQ29sdW1u
SW5kZXggPSBzdGQ6Om1heChtYXhpbXVtQ29sdW1uSW5kZXgsIGNvbHVtblBvc2l0aW9ucy0+Zmlu
YWxQb3NpdGlvbkluZGV4ICsgMSk7CisgICAgICAgICAgICBtYXhpbXVtQ29sdW1uSW5kZXggPSBz
dGQ6Om1heChtYXhpbXVtQ29sdW1uSW5kZXgsIGNvbHVtblBvc2l0aW9ucy0+cmVzb2x2ZWRGaW5h
bFBvc2l0aW9uLnRvSW50KCkgKyAxKTsKICAgICB9CiAKICAgICBtX2dyaWQuZ3JvdyhtYXhpbXVt
Um93SW5kZXgpOwpAQCAtNzMzLDE3ICs3MTQsMTcgQEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0
ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoKQogdm9pZCBSZW5kZXJHcmlkOjpwbGFjZVNw
ZWNpZmllZE1ham9yQXhpc0l0ZW1zT25HcmlkKGNvbnN0IFZlY3RvcjxSZW5kZXJCb3gqPiYgYXV0
b0dyaWRJdGVtcykKIHsKICAgICBmb3IgKGF1dG8mIGF1dG9HcmlkSXRlbSA6IGF1dG9HcmlkSXRl
bXMpIHsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBtYWpvckF4aXNQb3NpdGlv
bnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShhdXRvR3JpZEl0ZW0sIGF1dG9QbGFj
ZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSk7Ci0gICAgICAgIEdyaWRJdGVyYXRvciBpdGVyYXRv
cihtX2dyaWQsIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgbWFqb3JBeGlzUG9z
aXRpb25zLT5pbml0aWFsUG9zaXRpb25JbmRleCk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxH
cmlkU3Bhbj4gbWFqb3JBeGlzUG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29s
dmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICphdXRvR3JpZEl0ZW0sIGF1dG9QbGFj
ZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSk7CisgICAgICAgIEdyaWRJdGVyYXRvciBpdGVyYXRv
cihtX2dyaWQsIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgbWFqb3JBeGlzUG9z
aXRpb25zLT5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpKTsKICAgICAgICAgaWYgKHN0
ZDo6dW5pcXVlX3B0cjxHcmlkQ29vcmRpbmF0ZT4gZW1wdHlHcmlkQXJlYSA9IGl0ZXJhdG9yLm5l
eHRFbXB0eUdyaWRBcmVhKCkpIHsKLSAgICAgICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChhdXRv
R3JpZEl0ZW0sIGVtcHR5R3JpZEFyZWEtPnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXgsIGVtcHR5
R3JpZEFyZWEtPmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXgpOworICAgICAgICAgICAgaW5z
ZXJ0SXRlbUludG9HcmlkKGF1dG9HcmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5yZXNvbHZl
ZEluaXRpYWxQb3NpdGlvbiwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5yZXNvbHZlZEluaXRpYWxQ
b3NpdGlvbik7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIGdy
b3dHcmlkKGF1dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSk7CiAgICAgICAgIHN0ZDo6
dW5pcXVlX3B0cjxHcmlkQ29vcmRpbmF0ZT4gZW1wdHlHcmlkQXJlYSA9IGl0ZXJhdG9yLm5leHRF
bXB0eUdyaWRBcmVhKCk7CiAgICAgICAgIEFTU0VSVChlbXB0eUdyaWRBcmVhKTsKLSAgICAgICAg
aW5zZXJ0SXRlbUludG9HcmlkKGF1dG9HcmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5pbml0
aWFsUG9zaXRpb25JbmRleCwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5pbml0aWFsUG9zaXRpb25J
bmRleCk7CisgICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChhdXRvR3JpZEl0ZW0sIGVtcHR5R3Jp
ZEFyZWEtPnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIGVtcHR5R3JpZEFyZWEtPmNvbHVt
bnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24pOwogICAgIH0KIH0KIApAQCAtNzU1LDE0ICs3MzYs
MTQgQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUF1dG9NYWpvckF4aXNJdGVtc09uR3JpZChjb25z
dCBWZWN0b3I8UmVuZGVyQm94Kj4mIGF1dG9HcmkKIAogdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUF1
dG9NYWpvckF4aXNJdGVtT25HcmlkKFJlbmRlckJveCogZ3JpZEl0ZW0pCiB7Ci0gICAgc3RkOjp1
bmlxdWVfcHRyPEdyaWRTcGFuPiBtaW5vckF4aXNQb3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0
aW9uc0Zyb21TdHlsZShncmlkSXRlbSwgYXV0b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigp
KTsKLSAgICBBU1NFUlQoIXJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGdyaWRJdGVtLCBh
dXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
R3JpZFNwYW4+IG1pbm9yQXhpc1Bvc2l0aW9ucyA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNv
bHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqZ3JpZEl0ZW0sIGF1dG9QbGFjZW1l
bnRNaW5vckF4aXNEaXJlY3Rpb24oKSk7CisgICAgQVNTRVJUKCFHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgKmdyaWRJdGVtLCBhdXRv
UGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkpKTsKICAgICBzaXplX3QgbWlub3JBeGlzSW5k
ZXggPSAwOwogICAgIGlmIChtaW5vckF4aXNQb3NpdGlvbnMpIHsKLSAgICAgICAgbWlub3JBeGlz
SW5kZXggPSBtaW5vckF4aXNQb3NpdGlvbnMtPmluaXRpYWxQb3NpdGlvbkluZGV4OworICAgICAg
ICBtaW5vckF4aXNJbmRleCA9IG1pbm9yQXhpc1Bvc2l0aW9ucy0+cmVzb2x2ZWRJbml0aWFsUG9z
aXRpb24udG9JbnQoKTsKICAgICAgICAgR3JpZEl0ZXJhdG9yIGl0ZXJhdG9yKG1fZ3JpZCwgYXV0
b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigpLCBtaW5vckF4aXNJbmRleCk7CiAgICAgICAg
IGlmIChzdGQ6OnVuaXF1ZV9wdHI8R3JpZENvb3JkaW5hdGU+IGVtcHR5R3JpZEFyZWEgPSBpdGVy
YXRvci5uZXh0RW1wdHlHcmlkQXJlYSgpKSB7Ci0gICAgICAgICAgICBpbnNlcnRJdGVtSW50b0dy
aWQoZ3JpZEl0ZW0sIGVtcHR5R3JpZEFyZWEtPnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXgsIGVt
cHR5R3JpZEFyZWEtPmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXgpOworICAgICAgICAgICAg
aW5zZXJ0SXRlbUludG9HcmlkKGdyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dzLnJlc29sdmVk
SW5pdGlhbFBvc2l0aW9uLCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBv
c2l0aW9uKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CkBA
IC03NzAsNyArNzUxLDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUF1dG9NYWpvckF4aXNJdGVt
T25HcmlkKFJlbmRlckJveCogZ3JpZEl0ZW0pCiAgICAgICAgIGZvciAoc2l6ZV90IG1ham9yQXhp
c0luZGV4ID0gMDsgbWFqb3JBeGlzSW5kZXggPCBlbmRPZk1ham9yQXhpczsgKyttYWpvckF4aXNJ
bmRleCkgewogICAgICAgICAgICAgR3JpZEl0ZXJhdG9yIGl0ZXJhdG9yKG1fZ3JpZCwgYXV0b1Bs
YWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpLCBtYWpvckF4aXNJbmRleCk7CiAgICAgICAgICAg
ICBpZiAoc3RkOjp1bmlxdWVfcHRyPEdyaWRDb29yZGluYXRlPiBlbXB0eUdyaWRBcmVhID0gaXRl
cmF0b3IubmV4dEVtcHR5R3JpZEFyZWEoKSkgewotICAgICAgICAgICAgICAgIGluc2VydEl0ZW1J
bnRvR3JpZChncmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5pbml0aWFsUG9zaXRpb25JbmRl
eCwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleCk7CisgICAgICAg
ICAgICAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGdyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dz
LnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5zLnJlc29sdmVk
SW5pdGlhbFBvc2l0aW9uKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KQEAgLTc4MywxNCArNzY0LDE0IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VB
dXRvTWFqb3JBeGlzSXRlbU9uR3JpZChSZW5kZXJCb3gqIGdyaWRJdGVtKQogICAgIGluc2VydEl0
ZW1JbnRvR3JpZChncmlkSXRlbSwgcm93SW5kZXgsIGNvbHVtbkluZGV4KTsKIH0KIAotUmVuZGVy
R3JpZDo6R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIFJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRN
YWpvckF4aXNEaXJlY3Rpb24oKSBjb25zdAorR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIFJlbmRl
ckdyaWQ6OmF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSBjb25zdAogewogICAgIEdy
aWRBdXRvRmxvdyBmbG93ID0gc3R5bGUoKS5ncmlkQXV0b0Zsb3coKTsKICAgICBBU1NFUlQoZmxv
dyAhPSBBdXRvRmxvd05vbmUpOwogICAgIHJldHVybiAoZmxvdyA9PSBBdXRvRmxvd0NvbHVtbikg
PyBGb3JDb2x1bW5zIDogRm9yUm93czsKIH0KIAotUmVuZGVyR3JpZDo6R3JpZFRyYWNrU2l6aW5n
RGlyZWN0aW9uIFJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSBj
b25zdAorR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIFJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRN
aW5vckF4aXNEaXJlY3Rpb24oKSBjb25zdAogewogICAgIEdyaWRBdXRvRmxvdyBmbG93ID0gc3R5
bGUoKS5ncmlkQXV0b0Zsb3coKTsKICAgICBBU1NFUlQoZmxvdyAhPSBBdXRvRmxvd05vbmUpOwpA
QCAtODU5LDI5NiArODQwLDEzIEBAIEdyaWRDb29yZGluYXRlIFJlbmRlckdyaWQ6OmNhY2hlZEdy
aWRDb29yZGluYXRlKGNvbnN0IFJlbmRlckJveCogZ3JpZEl0ZW0pIGNvbnN0CiAgICAgcmV0dXJu
IG1fZ3JpZEl0ZW1Db29yZGluYXRlLmdldChncmlkSXRlbSk7CiB9CiAKLUdyaWRTcGFuIFJlbmRl
ckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbihjb25z
dCBSZW5kZXJCb3gqLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIHNpemVfdCBpbml0aWFsUG9z
aXRpb24pIGNvbnN0Ci17Ci0gICAgLy8gRklYTUU6IFdlIGRvbid0IHN1cHBvcnQgc3Bhbm5pbmcg
d2l0aCBhdXRvIHBvc2l0aW9ucyB5ZXQuIE9uY2Ugd2UgZG8sIHRoaXMgaXMgd3JvbmcuIEFsc28g
d2Ugc2hvdWxkIG1ha2UKLSAgICAvLyBzdXJlIHRoZSBncmlkIGNhbiBhY2NvbW9kYXRlIHRoZSBu
ZXcgaXRlbSBhcyB3ZSBvbmx5IGdyb3cgMSBwb3NpdGlvbiBpbiBhIGdpdmVuIGRpcmVjdGlvbi4K
LSAgICByZXR1cm4gR3JpZFNwYW4oaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb24pOwot
fQotCi1zdGF0aWMgaW5saW5lIGJvb2wgZ3JpZExpbmVEZWZpbmVkQmVmb3JlR3JpZEFyZWEoc2l6
ZV90IG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24sIGNvbnN0IEdyaWRDb29yZGluYXRlJiBn
cmlkQXJlYUNvb3JkaW5hdGVzLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCi17Ci0gICAgc3dpdGNo
IChzaWRlKSB7Ci0gICAgY2FzZSBDb2x1bW5TdGFydFNpZGU6Ci0gICAgICAgIHJldHVybiBuYW1l
ZEdyaWRMaW5lRmlyc3REZWZpbml0aW9uIDwgZ3JpZEFyZWFDb29yZGluYXRlcy5jb2x1bW5zLmlu
aXRpYWxQb3NpdGlvbkluZGV4OwotICAgIGNhc2UgQ29sdW1uRW5kU2lkZToKLSAgICAgICAgcmV0
dXJuIG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24gPCBncmlkQXJlYUNvb3JkaW5hdGVzLmNv
bHVtbnMuZmluYWxQb3NpdGlvbkluZGV4OwotICAgIGNhc2UgUm93U3RhcnRTaWRlOgotICAgICAg
ICByZXR1cm4gbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiA8IGdyaWRBcmVhQ29vcmRpbmF0
ZXMucm93cy5pbml0aWFsUG9zaXRpb25JbmRleDsKLSAgICBjYXNlIFJvd0VuZFNpZGU6Ci0gICAg
ICAgIHJldHVybiBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9uIDwgZ3JpZEFyZWFDb29yZGlu
YXRlcy5yb3dzLmZpbmFsUG9zaXRpb25JbmRleDsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1zdGF0aWMgdm9pZCBzZXROYW1lZExpbmVQ
b3NpdGlvbklmRGVmaW5lZEJlZm9yZUFyZWEoR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgY29uc3Qg
TmFtZWRHcmlkTGluZXNNYXAmIG5hbWVkTGluZXNNYXAsIGNvbnN0IFN0cmluZyYgbGluZU5hbWUs
IGNvbnN0IEdyaWRDb29yZGluYXRlJiBncmlkQXJlYUNvb3JkaW5hdGUsIEdyaWRQb3NpdGlvblNp
ZGUgc2lkZSkKLXsKLSAgICBhdXRvIGxpbmVzSXRlcmF0b3IgPSBuYW1lZExpbmVzTWFwLmZpbmQo
bGluZU5hbWUpOwotICAgIGlmIChsaW5lc0l0ZXJhdG9yID09IG5hbWVkTGluZXNNYXAuZW5kKCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIHNpemVfdCBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0
aW9uID0gR3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGxpbmVzSXRlcmF0
b3ItPnZhbHVlWzBdLCBzaWRlKTsKLSAgICBpZiAoZ3JpZExpbmVEZWZpbmVkQmVmb3JlR3JpZEFy
ZWEobmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiwgZ3JpZEFyZWFDb29yZGluYXRlLCBzaWRl
KSkKLSAgICAgICAgcG9zaXRpb24uc2V0RXhwbGljaXRQb3NpdGlvbigxLCBsaW5lTmFtZSk7Ci19
Ci0KLXZvaWQgUmVuZGVyR3JpZDo6YWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uKEdyaWRQb3Np
dGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkgY29uc3QKLXsKLSAgICAvLyBU
aGUgU3R5bGVCdWlsZGVyIGFsd2F5cyB0cmVhdHMgPGN1c3RvbS1pZGVudD4gYXMgYSBuYW1lZCBn
cmlkIGFyZWEuIFdlIG11c3QgZGVjaWRlIGhlcmUgaWYgdGhleSBhcmUgZ29pbmcgdG8gYmUKLSAg
ICAvLyByZXNvbHZlZCB0byBlaXRoZXIgYSBncmlkIGFyZWEgb3IgYSBncmlkIGxpbmUuCi0gICAg
QVNTRVJUKHBvc2l0aW9uLmlzTmFtZWRHcmlkQXJlYSgpKTsKLSAgICBjb25zdCBOYW1lZEdyaWRB
cmVhTWFwJiBncmlkQXJlYU1hcCA9IHN0eWxlKCkubmFtZWRHcmlkQXJlYSgpOwotICAgIGNvbnN0
IE5hbWVkR3JpZExpbmVzTWFwJiBuYW1lZExpbmVzTWFwID0gaXNDb2x1bW5TaWRlKHNpZGUpID8g
c3R5bGUoKS5uYW1lZEdyaWRDb2x1bW5MaW5lcygpIDogc3R5bGUoKS5uYW1lZEdyaWRSb3dMaW5l
cygpOwotCi0gICAgU3RyaW5nIG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lID0gcG9zaXRpb24ubmFt
ZWRHcmlkTGluZSgpOwotICAgIGJvb2wgaXNTdGFydFNpZGUgPSBzaWRlID09IENvbHVtblN0YXJ0
U2lkZSB8fCBzaWRlID09IFJvd1N0YXJ0U2lkZTsKLQotICAgIGF1dG8gYXJlYUl0ZXJhdG9yID0g
Z3JpZEFyZWFNYXAuZmluZChuYW1lZEdyaWRBcmVhT3JHcmlkTGluZSk7Ci0gICAgaWYgKGFyZWFJ
dGVyYXRvciAhPSBncmlkQXJlYU1hcC5lbmQoKSkgewotICAgICAgICBTdHJpbmcgZ3JpZExpbmVO
YW1lID0gbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUgKyAoaXNTdGFydFNpZGUgPyAiLXN0YXJ0IiA6
ICItZW5kIik7Ci0gICAgICAgIHNldE5hbWVkTGluZVBvc2l0aW9uSWZEZWZpbmVkQmVmb3JlQXJl
YShwb3NpdGlvbiwgbmFtZWRMaW5lc01hcCwgZ3JpZExpbmVOYW1lLCBhcmVhSXRlcmF0b3ItPnZh
bHVlLCBzaWRlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGJvb2wgaGFzU3RhcnRT
dWZmaXggPSBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZS5lbmRzV2l0aCgiLXN0YXJ0Iik7Ci0gICAg
Ym9vbCBoYXNFbmRTdWZmaXggPSBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZS5lbmRzV2l0aCgiLWVu
ZCIpOwotICAgIGlmICgoaGFzU3RhcnRTdWZmaXggJiYgaXNTdGFydFNpZGUpIHx8IChoYXNFbmRT
dWZmaXggJiYgIWlzU3RhcnRTaWRlKSkgewotICAgICAgICBzaXplX3Qgc3VmZml4TGVuZ3RoID0g
aGFzU3RhcnRTdWZmaXggPyBzdHJsZW4oIi1zdGFydCIpIDogc3RybGVuKCItZW5kIik7Ci0gICAg
ICAgIFN0cmluZyBncmlkQXJlYU5hbWUgPSBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZS5zdWJzdHJp
bmcoMCwgbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUubGVuZ3RoKCkgLSBzdWZmaXhMZW5ndGgpOwot
Ci0gICAgICAgIGF1dG8gYXJlYUl0ZXJhdG9yID0gZ3JpZEFyZWFNYXAuZmluZChncmlkQXJlYU5h
bWUpOwotICAgICAgICBpZiAoYXJlYUl0ZXJhdG9yICE9IGdyaWRBcmVhTWFwLmVuZCgpKSB7Ci0g
ICAgICAgICAgICBwb3NpdGlvbi5zZXROYW1lZEdyaWRBcmVhKGdyaWRBcmVhTmFtZSk7Ci0gICAg
ICAgICAgICBzZXROYW1lZExpbmVQb3NpdGlvbklmRGVmaW5lZEJlZm9yZUFyZWEocG9zaXRpb24s
IG5hbWVkTGluZXNNYXAsIG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lLCBhcmVhSXRlcmF0b3ItPnZh
bHVlLCBzaWRlKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IGlmIChuYW1lZExpbmVzTWFwLmNvbnRhaW5zKG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lKSkKLSAg
ICAgICAgcG9zaXRpb24uc2V0RXhwbGljaXRQb3NpdGlvbigxLCBuYW1lZEdyaWRBcmVhT3JHcmlk
TGluZSk7Ci0gICAgZWxzZQotICAgICAgICBwb3NpdGlvbi5zZXRBdXRvUG9zaXRpb24oKTsKLX0K
LQotdm9pZCBSZW5kZXJHcmlkOjphZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKEdyaWRQb3Np
dGlvbiYgaW5pdGlhbFBvc2l0aW9uLCBHcmlkUG9zaXRpb24mIGZpbmFsUG9zaXRpb24sIEdyaWRQ
b3NpdGlvblNpZGUgaW5pdGlhbFBvc2l0aW9uU2lkZSwgR3JpZFBvc2l0aW9uU2lkZSBmaW5hbFBv
c2l0aW9uU2lkZSkgY29uc3QKLXsKLSAgICBBU1NFUlQoaXNDb2x1bW5TaWRlKGluaXRpYWxQb3Np
dGlvblNpZGUpID09IGlzQ29sdW1uU2lkZShmaW5hbFBvc2l0aW9uU2lkZSkpOwotCi0gICAgLy8g
V2UgbXVzdCBoYW5kbGUgdGhlIHBsYWNlbWVudCBlcnJvciBoYW5kbGluZyBjb2RlIGhlcmUgaW5z
dGVhZCBvZiBpbiB0aGUgU3R5bGVBZGp1c3RlciBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8KLSAg
ICAvLyBvdmVyd3JpdGUgdGhlIHNwZWNpZmllZCB2YWx1ZXMuCi0gICAgaWYgKGluaXRpYWxQb3Np
dGlvbi5pc1NwYW4oKSAmJiBmaW5hbFBvc2l0aW9uLmlzU3BhbigpKQotICAgICAgICBmaW5hbFBv
c2l0aW9uLnNldEF1dG9Qb3NpdGlvbigpOwotCi0gICAgaWYgKGluaXRpYWxQb3NpdGlvbi5pc05h
bWVkR3JpZEFyZWEoKSkKLSAgICAgICAgYWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uKGluaXRp
YWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSk7Ci0KLSAgICBpZiAoZmluYWxQb3NpdGlv
bi5pc05hbWVkR3JpZEFyZWEoKSkKLSAgICAgICAgYWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9u
KGZpbmFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb25TaWRlKTsKLX0KLQotc3RkOjp1bmlxdWVfcHRy
PEdyaWRTcGFuPiBSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25z
dCBSZW5kZXJCb3gqIGdyaWRJdGVtLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9u
KSBjb25zdAotewotICAgIEdyaWRQb3NpdGlvbiBpbml0aWFsUG9zaXRpb24gPSAoZGlyZWN0aW9u
ID09IEZvckNvbHVtbnMpID8gZ3JpZEl0ZW0tPnN0eWxlKCkuZ3JpZEl0ZW1Db2x1bW5TdGFydCgp
IDogZ3JpZEl0ZW0tPnN0eWxlKCkuZ3JpZEl0ZW1Sb3dTdGFydCgpOwotICAgIGNvbnN0IEdyaWRQ
b3NpdGlvblNpZGUgaW5pdGlhbFBvc2l0aW9uU2lkZSA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1u
cykgPyBDb2x1bW5TdGFydFNpZGUgOiBSb3dTdGFydFNpZGU7Ci0gICAgR3JpZFBvc2l0aW9uIGZp
bmFsUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gZ3JpZEl0ZW0tPnN0eWxl
KCkuZ3JpZEl0ZW1Db2x1bW5FbmQoKSA6IGdyaWRJdGVtLT5zdHlsZSgpLmdyaWRJdGVtUm93RW5k
KCk7Ci0gICAgY29uc3QgR3JpZFBvc2l0aW9uU2lkZSBmaW5hbFBvc2l0aW9uU2lkZSA9IChkaXJl
Y3Rpb24gPT0gRm9yQ29sdW1ucykgPyBDb2x1bW5FbmRTaWRlIDogUm93RW5kU2lkZTsKLQotICAg
IGFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoaW5pdGlhbFBvc2l0aW9uLCBmaW5hbFBvc2l0
aW9uLCBpbml0aWFsUG9zaXRpb25TaWRlLCBmaW5hbFBvc2l0aW9uU2lkZSk7Ci0KLSAgICBpZiAo
aW5pdGlhbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigp
ICYmIGZpbmFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9u
KCkpIHsKLSAgICAgICAgaWYgKHN0eWxlKCkuZ3JpZEF1dG9GbG93KCkgPT0gQXV0b0Zsb3dOb25l
KQotICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KDAsIDApOwot
Ci0gICAgICAgIC8vIFdlIGNhbid0IGdldCBvdXIgZ3JpZCBwb3NpdGlvbnMgd2l0aG91dCBydW5u
aW5nIHRoZSBhdXRvIHBsYWNlbWVudCBhbGdvcml0aG0uCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIH0KLQotICAgIGlmIChpbml0aWFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWlu
c3RPcHBvc2l0ZVBvc2l0aW9uKCkpIHsKLSAgICAgICAgLy8gSW5mZXIgdGhlIHBvc2l0aW9uIGZy
b20gdGhlIGZpbmFsIHBvc2l0aW9uICgnYXV0byAvIDEnIG9yICdzcGFuIDIgLyAzJyBjYXNlKS4K
LSAgICAgICAgY29uc3Qgc2l6ZV90IGZpbmFsUmVzb2x2ZWRQb3NpdGlvbiA9IHJlc29sdmVHcmlk
UG9zaXRpb25Gcm9tU3R5bGUoZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvblNpZGUpOwotICAg
ICAgICByZXR1cm4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGZp
bmFsUmVzb2x2ZWRQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRl
KTsKLSAgICB9Ci0KLSAgICBpZiAoZmluYWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVkQWdhaW5z
dE9wcG9zaXRlUG9zaXRpb24oKSkgewotICAgICAgICAvLyBJbmZlciBvdXIgcG9zaXRpb24gZnJv
bSB0aGUgaW5pdGlhbCBwb3NpdGlvbiAoJzEgLyBhdXRvJyBvciAnMyAvIHNwYW4gMicgY2FzZSku
Ci0gICAgICAgIGNvbnN0IHNpemVfdCBpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiA9IHJlc29sdmVH
cmlkUG9zaXRpb25Gcm9tU3R5bGUoaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRl
KTsKLSAgICAgICAgcmV0dXJuIHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3Np
dGlvbihpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiwgZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlv
blNpZGUpOwotICAgIH0KLQotICAgIHNpemVfdCByZXNvbHZlZEluaXRpYWxQb3NpdGlvbiA9IHJl
c29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRp
b25TaWRlKTsKLSAgICBzaXplX3QgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQ
b3NpdGlvbkZyb21TdHlsZShmaW5hbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uU2lkZSk7Ci0KLSAg
ICAvLyBJZiAnZ3JpZC1yb3ctZW5kJyBzcGVjaWZpZXMgYSBsaW5lIGF0IG9yIGJlZm9yZSB0aGF0
IHNwZWNpZmllZCBieSAnZ3JpZC1yb3ctc3RhcnQnLCBpdCBjb21wdXRlcyB0byAnc3BhbiAxJy4K
LSAgICBpZiAocmVzb2x2ZWRGaW5hbFBvc2l0aW9uIDwgcmVzb2x2ZWRJbml0aWFsUG9zaXRpb24p
Ci0gICAgICAgIHJlc29sdmVkRmluYWxQb3NpdGlvbiA9IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9u
OwotCi0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkSW5pdGlh
bFBvc2l0aW9uLCByZXNvbHZlZEZpbmFsUG9zaXRpb24pOwotfQotCi1zaXplX3QgUmVuZGVyR3Jp
ZDo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZShjb25zdCBHcmlkUG9zaXRp
b24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpIGNvbnN0Ci17Ci0gICAgQVNTRVJU
KCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpOwotCi0gICAgY29uc3QgTmFtZWRH
cmlkTGluZXNNYXAmIGdyaWRMaW5lc05hbWVzID0gaXNDb2x1bW5TaWRlKHNpZGUpID8gc3R5bGUo
KS5uYW1lZEdyaWRDb2x1bW5MaW5lcygpIDogc3R5bGUoKS5uYW1lZEdyaWRSb3dMaW5lcygpOwot
ICAgIE5hbWVkR3JpZExpbmVzTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGdyaWRMaW5lc05hbWVz
LmZpbmQocG9zaXRpb24ubmFtZWRHcmlkTGluZSgpKTsKLSAgICBpZiAoaXQgPT0gZ3JpZExpbmVz
TmFtZXMuZW5kKCkpIHsKLSAgICAgICAgaWYgKHBvc2l0aW9uLmlzUG9zaXRpdmUoKSkKLSAgICAg
ICAgICAgIHJldHVybiAwOwotICAgICAgICBjb25zdCBzaXplX3QgbGFzdExpbmUgPSBleHBsaWNp
dEdyaWRTaXplRm9yU2lkZShzaWRlKTsKLSAgICAgICAgcmV0dXJuIEdyaWRQb3NpdGlvbjo6YWRq
dXN0R3JpZFBvc2l0aW9uRm9yU2lkZShsYXN0TGluZSwgc2lkZSk7Ci0gICAgfQotCi0gICAgc2l6
ZV90IG5hbWVkR3JpZExpbmVJbmRleDsKLSAgICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgpKQot
ICAgICAgICBuYW1lZEdyaWRMaW5lSW5kZXggPSBzdGQ6Om1pbjxzaXplX3Q+KHBvc2l0aW9uLmlu
dGVnZXJQb3NpdGlvbigpLCBpdC0+dmFsdWUuc2l6ZSgpKSAtIDE7Ci0gICAgZWxzZQotICAgICAg
ICBuYW1lZEdyaWRMaW5lSW5kZXggPSBzdGQ6Om1heDxpbnQ+KGl0LT52YWx1ZS5zaXplKCkgLSBh
YnMocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpLCAwKTsKLSAgICByZXR1cm4gR3JpZFBvc2l0
aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGl0LT52YWx1ZVtuYW1lZEdyaWRMaW5lSW5k
ZXhdLCBzaWRlKTsKLX0KLQotc2l6ZV90IFJlbmRlckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25G
cm9tU3R5bGUoY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBz
aWRlKSBjb25zdAotewotICAgIHN3aXRjaCAocG9zaXRpb24udHlwZSgpKSB7Ci0gICAgY2FzZSBF
eHBsaWNpdFBvc2l0aW9uOiB7Ci0gICAgICAgIEFTU0VSVChwb3NpdGlvbi5pbnRlZ2VyUG9zaXRp
b24oKSk7Ci0KLSAgICAgICAgaWYgKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkp
Ci0gICAgICAgICAgICByZXR1cm4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHls
ZShwb3NpdGlvbiwgc2lkZSk7Ci0KLSAgICAgICAgLy8gSGFuZGxlIDxpbnRlZ2VyPiBleHBsaWNp
dCBwb3NpdGlvbi4KLSAgICAgICAgaWYgKHBvc2l0aW9uLmlzUG9zaXRpdmUoKSkKLSAgICAgICAg
ICAgIHJldHVybiBHcmlkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUocG9zaXRp
b24uaW50ZWdlclBvc2l0aW9uKCkgLSAxLCBzaWRlKTsKLQotICAgICAgICBzaXplX3QgcmVzb2x2
ZWRQb3NpdGlvbiA9IGFicyhwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSkgLSAxOwotICAgICAg
ICBjb25zdCBzaXplX3QgZW5kT2ZUcmFjayA9IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKHNpZGUp
OwotCi0gICAgICAgIC8vIFBlciBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93
d3ctc3R5bGUvMjAxM01hci8wNTg5Lmh0bWwsIHdlIGNsYW1wIG5lZ2F0aXZlIHZhbHVlIHRvIHRo
ZSBmaXJzdCBsaW5lLgotICAgICAgICBpZiAoZW5kT2ZUcmFjayA8IHJlc29sdmVkUG9zaXRpb24p
Ci0gICAgICAgICAgICByZXR1cm4gMDsKLQotICAgICAgICByZXR1cm4gR3JpZFBvc2l0aW9uOjph
ZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGVuZE9mVHJhY2sgLSByZXNvbHZlZFBvc2l0aW9uLCBz
aWRlKTsKLSAgICB9Ci0gICAgY2FzZSBOYW1lZEdyaWRBcmVhUG9zaXRpb246Ci0gICAgewotICAg
ICAgICBOYW1lZEdyaWRBcmVhTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IHN0eWxlKCkubmFtZWRH
cmlkQXJlYSgpLmZpbmQocG9zaXRpb24ubmFtZWRHcmlkTGluZSgpKTsKLSAgICAgICAgLy8gVW5r
bm93biBncmlkIGFyZWEgc2hvdWxkIGhhdmUgYmVlbiBjb21wdXRlZCB0byAnYXV0bycgYnkgbm93
LgotICAgICAgICBBU1NFUlQoaXQgIT0gc3R5bGUoKS5uYW1lZEdyaWRBcmVhKCkuZW5kKCkpOwot
ICAgICAgICBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgZ3JpZEFyZWFDb29yZGluYXRlID0gaXQtPnZh
bHVlOwotICAgICAgICBzd2l0Y2ggKHNpZGUpIHsKLSAgICAgICAgY2FzZSBDb2x1bW5TdGFydFNp
ZGU6Ci0gICAgICAgICAgICByZXR1cm4gZ3JpZEFyZWFDb29yZGluYXRlLmNvbHVtbnMuaW5pdGlh
bFBvc2l0aW9uSW5kZXg7Ci0gICAgICAgIGNhc2UgQ29sdW1uRW5kU2lkZToKLSAgICAgICAgICAg
IHJldHVybiBncmlkQXJlYUNvb3JkaW5hdGUuY29sdW1ucy5maW5hbFBvc2l0aW9uSW5kZXg7Ci0g
ICAgICAgIGNhc2UgUm93U3RhcnRTaWRlOgotICAgICAgICAgICAgcmV0dXJuIGdyaWRBcmVhQ29v
cmRpbmF0ZS5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4OwotICAgICAgICBjYXNlIFJvd0VuZFNp
ZGU6Ci0gICAgICAgICAgICByZXR1cm4gZ3JpZEFyZWFDb29yZGluYXRlLnJvd3MuZmluYWxQb3Np
dGlvbkluZGV4OwotICAgICAgICB9Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgY2FzZSBBdXRvUG9zaXRpb246Ci0gICAgY2FzZSBT
cGFuUG9zaXRpb246Ci0gICAgICAgIC8vICdhdXRvJyBhbmQgc3BhbiBkZXBlbmQgb24gdGhlIG9w
cG9zaXRlIHBvc2l0aW9uIGZvciByZXNvbHV0aW9uIChlLmcuIGdyaWQtcm93OiBhdXRvIC8gMSBv
ciBncmlkLWNvbHVtbjogc3BhbiAzIC8gIm15SGVhZGVyIikuCi0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gUmVu
ZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHNpemVf
dCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24s
IEdyaWRQb3NpdGlvblNpZGUgc2lkZSkgY29uc3QKLXsKLSAgICBpZiAocG9zaXRpb24uaXNBdXRv
KCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZlZE9w
cG9zaXRlUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7Ci0KLSAgICBBU1NFUlQo
cG9zaXRpb24uaXNTcGFuKCkpOwotICAgIEFTU0VSVChwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSA+
IDApOwotCi0gICAgaWYgKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpIHsKLSAg
ICAgICAgLy8gc3BhbiAyICdjJyAtPiB3ZSBuZWVkIHRvIGZpbmQgdGhlIGFwcHJvcHJpYXRlIGdy
aWQgbGluZSBiZWZvcmUgLyBhZnRlciBvdXIgb3Bwb3NpdGUgcG9zaXRpb24uCi0gICAgICAgIHJl
dHVybiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24o
cmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBwb3NpdGlvbiwgc2lkZSk7Ci0gICAgfQotCi0gICAg
Ly8gJ3NwYW4gMScgaXMgY29udGFpbmVkIGluc2lkZSBhIHNpbmdsZSBncmlkIHRyYWNrIHJlZ2Fy
ZGxlc3Mgb2YgdGhlIGRpcmVjdGlvbi4KLSAgICAvLyBUaGF0J3Mgd2h5IHRoZSBDU1Mgc3BhbiB2
YWx1ZSBpcyBvbmUgbW9yZSB0aGFuIHRoZSBvZmZzZXQgd2UgYXBwbHkuCi0gICAgc2l6ZV90IHBv
c2l0aW9uT2Zmc2V0ID0gcG9zaXRpb24uc3BhblBvc2l0aW9uKCkgLSAxOwotICAgIGlmIChzaWRl
ID09IENvbHVtblN0YXJ0U2lkZSB8fCBzaWRlID09IFJvd1N0YXJ0U2lkZSkgewotICAgICAgICBz
aXplX3QgaW5pdGlhbFJlc29sdmVkUG9zaXRpb24gPSBzdGQ6Om1heDxpbnQ+KDAsIHJlc29sdmVk
T3Bwb3NpdGVQb3NpdGlvbiAtIHBvc2l0aW9uT2Zmc2V0KTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8R3JpZFNwYW4+KGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uLCByZXNvbHZlZE9w
cG9zaXRlUG9zaXRpb24pOwotICAgIH0KLQotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdy
aWRTcGFuPihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlv
biArIHBvc2l0aW9uT2Zmc2V0KTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBSZW5k
ZXJHcmlkOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRp
b24oc2l6ZV90IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBw
b3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKSBjb25zdAotewotICAgIEFTU0VSVChwb3Np
dGlvbi5pc1NwYW4oKSk7Ci0gICAgQVNTRVJUKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNO
dWxsKCkpOwotICAgIC8vIE5lZ2F0aXZlIHBvc2l0aW9ucyBhcmUgbm90IGFsbG93ZWQgcGVyIHRo
ZSBzcGVjaWZpY2F0aW9uIGFuZCBzaG91bGQgaGF2ZSBiZWVuIGhhbmRsZWQgZHVyaW5nIHBhcnNp
bmcuCi0gICAgQVNTRVJUKHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpID4gMCk7Ci0KLSAgICBjb25z
dCBOYW1lZEdyaWRMaW5lc01hcCYgZ3JpZExpbmVzTmFtZXMgPSBpc0NvbHVtblNpZGUoc2lkZSkg
PyBzdHlsZSgpLm5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBzdHlsZSgpLm5hbWVkR3JpZFJvd0xp
bmVzKCk7Ci0gICAgTmFtZWRHcmlkTGluZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZ3JpZExp
bmVzTmFtZXMuZmluZChwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkpOwotCi0gICAgLy8gSWYgdGhl
cmUgaXMgbm8gbmFtZWQgZ3JpZCBsaW5lIG9mIHRoYXQgbmFtZSwgd2UgcmVzb2x2ZSB0aGUgcG9z
aXRpb24gdG8gJ2F1dG8nICh3aGljaCBpcyBlcXVpdmFsZW50IHRvICdzcGFuIDEnIGluIHRoaXMg
Y2FzZSkuCi0gICAgLy8gU2VlIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3
dy1zdHlsZS8yMDEzSnVuLzAzOTQuaHRtbC4KLSAgICBpZiAoaXQgPT0gZ3JpZExpbmVzTmFtZXMu
ZW5kKCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZl
ZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7Ci0KLSAgICBpZiAo
c2lkZSA9PSBSb3dTdGFydFNpZGUgfHwgc2lkZSA9PSBDb2x1bW5TdGFydFNpZGUpCi0gICAgICAg
IHJldHVybiByZXNvbHZlUm93U3RhcnRDb2x1bW5TdGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcG9zaXRpb24s
IGl0LT52YWx1ZSk7Ci0KLSAgICByZXR1cm4gcmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5hbWVkR3Jp
ZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3Np
dGlvbiwgcG9zaXRpb24sIGl0LT52YWx1ZSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc2l6ZV90IGZp
cnN0TmFtZWRHcmlkTGluZUJlZm9yZVBvc2l0aW9uKHNpemVfdCBwb3NpdGlvbiwgY29uc3QgVmVj
dG9yPHNpemVfdD4mIGdyaWRMaW5lcykKLXsKLSAgICAvLyBUaGUgZ3JpZCBsaW5lIGluZXF1YWxp
dHkgbmVlZHMgdG8gYmUgc3RyaWN0ICh3aGljaCBkb2Vzbid0IG1hdGNoIHRoZSBhZnRlciAvIGVu
ZCBjYXNlKSBiZWNhdXNlIHxwb3NpdGlvbnwgaXMKLSAgICAvLyBhbHJlYWR5IGNvbnZlcnRlZCB0
byBhbiBpbmRleCBpbiBvdXIgZ3JpZCByZXByZXNlbnRhdGlvbiAoaWUgb25lIHdhcyByZW1vdmVk
IGZyb20gdGhlIGdyaWQgbGluZSB0byBhY2NvdW50IGZvcgotICAgIC8vIHRoZSBzaWRlKS4KLSAg
ICBzaXplX3QgZmlyc3RMaW5lQmVmb3JlUG9zaXRpb25JbmRleCA9IDA7Ci0gICAgY29uc3Qgc2l6
ZV90KiBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbiA9IHN0ZDo6bG93ZXJfYm91bmQoZ3JpZExpbmVz
LmJlZ2luKCksIGdyaWRMaW5lcy5lbmQoKSwgcG9zaXRpb24pOwotICAgIGlmIChmaXJzdExpbmVC
ZWZvcmVQb3NpdGlvbiAhPSBncmlkTGluZXMuZW5kKCkpIHsKLSAgICAgICAgaWYgKCpmaXJzdExp
bmVCZWZvcmVQb3NpdGlvbiA+IHBvc2l0aW9uICYmIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uICE9
IGdyaWRMaW5lcy5iZWdpbigpKQotICAgICAgICAgICAgLS1maXJzdExpbmVCZWZvcmVQb3NpdGlv
bjsKLQotICAgICAgICBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbkluZGV4ID0gZmlyc3RMaW5lQmVm
b3JlUG9zaXRpb24gLSBncmlkTGluZXMuYmVnaW4oKTsKLSAgICB9Ci0gICAgcmV0dXJuIGZpcnN0
TGluZUJlZm9yZVBvc2l0aW9uSW5kZXg7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4g
UmVuZGVyR3JpZDo6cmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3RhcnROYW1lZEdyaWRMaW5lUG9zaXRp
b25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9u
LCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYgZ3Jp
ZExpbmVzKSBjb25zdAotewotICAgIHNpemVfdCBncmlkTGluZUluZGV4ID0gc3RkOjptYXg8aW50
PigwLCBmaXJzdE5hbWVkR3JpZExpbmVCZWZvcmVQb3NpdGlvbihyZXNvbHZlZE9wcG9zaXRlUG9z
aXRpb24sIGdyaWRMaW5lcykgLSBwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSArIDEpOwotICAgIHNp
emVfdCByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSBncmlkTGluZXNbZ3JpZExpbmVJbmRleF07
Ci0gICAgaWYgKHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA+IHJlc29sdmVkT3Bwb3NpdGVQb3Np
dGlvbikKLSAgICAgICAgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gcmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uOwotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZl
ZEdyaWRMaW5lUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7Ci19Ci0KLXN0ZDo6
dW5pcXVlX3B0cjxHcmlkU3Bhbj4gUmVuZGVyR3JpZDo6cmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5h
bWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHNpemVfdCByZXNvbHZl
ZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIGNvbnN0IFZl
Y3RvcjxzaXplX3Q+JiBncmlkTGluZXMpIGNvbnN0Ci17Ci0gICAgc2l6ZV90IGZpcnN0TGluZUFm
dGVyT3Bwb3NpdGVQb3NpdGlvbkluZGV4ID0gZ3JpZExpbmVzLnNpemUoKSAtIDE7Ci0gICAgY29u
c3Qgc2l6ZV90KiBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb24gPSBzdGQ6OnVwcGVyX2Jv
dW5kKGdyaWRMaW5lcy5iZWdpbigpLCBncmlkTGluZXMuZW5kKCksIHJlc29sdmVkT3Bwb3NpdGVQ
b3NpdGlvbik7Ci0gICAgaWYgKGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbiAhPSBncmlk
TGluZXMuZW5kKCkpCi0gICAgICAgIGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbkluZGV4
ID0gZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uIC0gZ3JpZExpbmVzLmJlZ2luKCk7Ci0K
LSAgICBzaXplX3QgZ3JpZExpbmVJbmRleCA9IHN0ZDo6bWluKGdyaWRMaW5lcy5zaXplKCkgLSAx
LCBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb25JbmRleCArIHBvc2l0aW9uLnNwYW5Qb3Np
dGlvbigpIC0gMSk7Ci0gICAgc2l6ZV90IHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA9IEdyaWRQ
b3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZShncmlkTGlu
ZXNbZ3JpZExpbmVJbmRleF0pOwotICAgIGlmIChyZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPCBy
ZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pCi0gICAgICAgIHJlc29sdmVkR3JpZExpbmVQb3NpdGlv
biA9IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbjsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCByZXNvbHZlZEdyaWRMaW5lUG9z
aXRpb24pOwotfQotCiBMYXlvdXRVbml0IFJlbmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvckNo
aWxkKGNvbnN0IFJlbmRlckJveCogY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJl
Y3Rpb24sIGNvbnN0IFZlY3RvcjxHcmlkVHJhY2s+JiB0cmFja3MpIGNvbnN0CiB7CiAgICAgY29u
c3QgR3JpZENvb3JkaW5hdGUmIGNvb3JkaW5hdGUgPSBjYWNoZWRHcmlkQ29vcmRpbmF0ZShjaGls
ZCk7CiAgICAgY29uc3QgR3JpZFNwYW4mIHNwYW4gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMp
ID8gY29vcmRpbmF0ZS5jb2x1bW5zIDogY29vcmRpbmF0ZS5yb3dzOwogICAgIExheW91dFVuaXQg
Z3JpZEFyZWFCcmVhZHRoID0gMDsKLSAgICBmb3IgKHNpemVfdCB0cmFja0luZGV4ID0gc3Bhbi5p
bml0aWFsUG9zaXRpb25JbmRleDsgdHJhY2tJbmRleCA8PSBzcGFuLmZpbmFsUG9zaXRpb25JbmRl
eDsgKyt0cmFja0luZGV4KQotICAgICAgICBncmlkQXJlYUJyZWFkdGggKz0gdHJhY2tzW3RyYWNr
SW5kZXhdLm1fdXNlZEJyZWFkdGg7CisgICAgZm9yIChHcmlkUmVzb2x2ZWRQb3NpdGlvbiB0cmFj
a1Bvc2l0aW9uID0gc3Bhbi5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsgdHJhY2tQb3NpdGlvbiA8
PSBzcGFuLnJlc29sdmVkRmluYWxQb3NpdGlvbjsgKyt0cmFja1Bvc2l0aW9uKQorICAgICAgICBn
cmlkQXJlYUJyZWFkdGggKz0gdHJhY2tzW3RyYWNrUG9zaXRpb24udG9JbnQoKV0ubV91c2VkQnJl
YWR0aDsKICAgICByZXR1cm4gZ3JpZEFyZWFCcmVhZHRoOwogfQogCkBAIC0xMTY4LDExICs4NjYs
MTEgQEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUdyaWRQb3NpdGlvbnMoY29uc3QgR3JpZFNp
emluZ0RhdGEmIHNpemluZ0RhdGEpCiBMYXlvdXRQb2ludCBSZW5kZXJHcmlkOjpmaW5kQ2hpbGRM
b2dpY2FsUG9zaXRpb24oUmVuZGVyQm94KiBjaGlsZCwgY29uc3QgR3JpZFNpemluZ0RhdGEmIHNp
emluZ0RhdGEpCiB7CiAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUmIGNvb3JkaW5hdGUgPSBjYWNo
ZWRHcmlkQ29vcmRpbmF0ZShjaGlsZCk7Ci0gICAgQVNTRVJUX1VOVVNFRChzaXppbmdEYXRhLCBj
b29yZGluYXRlLmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXggPCBzaXppbmdEYXRhLmNvbHVt
blRyYWNrcy5zaXplKCkpOwotICAgIEFTU0VSVF9VTlVTRUQoc2l6aW5nRGF0YSwgY29vcmRpbmF0
ZS5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4IDwgc2l6aW5nRGF0YS5yb3dUcmFja3Muc2l6ZSgp
KTsKKyAgICBBU1NFUlRfVU5VU0VEKHNpemluZ0RhdGEsIGNvb3JkaW5hdGUuY29sdW1ucy5yZXNv
bHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpIDwgc2l6aW5nRGF0YS5jb2x1bW5UcmFja3Muc2l6
ZSgpKTsKKyAgICBBU1NFUlRfVU5VU0VEKHNpemluZ0RhdGEsIGNvb3JkaW5hdGUucm93cy5yZXNv
bHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpIDwgc2l6aW5nRGF0YS5yb3dUcmFja3Muc2l6ZSgp
KTsKIAogICAgIC8vIFRoZSBncmlkIGl0ZW1zIHNob3VsZCBiZSBpbnNpZGUgdGhlIGdyaWQgY29u
dGFpbmVyJ3MgYm9yZGVyIGJveCwgdGhhdCdzIHdoeSB0aGV5IG5lZWQgdG8gYmUgc2hpZnRlZC4K
LSAgICByZXR1cm4gTGF5b3V0UG9pbnQobV9jb2x1bW5Qb3NpdGlvbnNbY29vcmRpbmF0ZS5jb2x1
bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4XSArIG1hcmdpblN0YXJ0Rm9yQ2hpbGQoKmNoaWxkKSwg
bV9yb3dQb3NpdGlvbnNbY29vcmRpbmF0ZS5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4XSArIG1h
cmdpbkJlZm9yZUZvckNoaWxkKCpjaGlsZCkpOworICAgIHJldHVybiBMYXlvdXRQb2ludChtX2Nv
bHVtblBvc2l0aW9uc1tjb29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24u
dG9JbnQoKV0gKyBtYXJnaW5TdGFydEZvckNoaWxkKCpjaGlsZCksIG1fcm93UG9zaXRpb25zW2Nv
b3JkaW5hdGUucm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpXSArIG1hcmdpbkJl
Zm9yZUZvckNoaWxkKCpjaGlsZCkpOwogfQogCiB2b2lkIFJlbmRlckdyaWQ6OnBhaW50Q2hpbGRy
ZW4oUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwg
UGFpbnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmludFJlY3QpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckdyaWQuaAppbmRleCA4MTg0ZWNmYjc0MjYyYTU0YjE4ZWQ3YTYxODM4NjE2NTA0
MDJiZTQ3Li4zYjNiNmViNDEzOTU2MTU4MzJiNGQxNjNlYWE4YTQwNjI5MjJmNmMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lmIEVO
QUJMRShDU1NfR1JJRF9MQVlPVVQpCiAKKyNpbmNsdWRlICJHcmlkUmVzb2x2ZWRQb3NpdGlvbi5o
IgogI2luY2x1ZGUgIk9yZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgog
CkBAIC0zOCwxMSArMzksNiBAQCBjbGFzcyBHcmlkQ29vcmRpbmF0ZTsKIGNsYXNzIEdyaWRTcGFu
OwogY2xhc3MgR3JpZFRyYWNrOwogCi1lbnVtIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiB7Ci0g
ICAgRm9yQ29sdW1ucywKLSAgICBGb3JSb3dzCi19OwotCiBjbGFzcyBSZW5kZXJHcmlkIGZpbmFs
IDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1YmxpYzoKICAgICBSZW5kZXJHcmlkKEVsZW1lbnQm
LCBQYXNzUmVmPFJlbmRlclN0eWxlPik7CkBAIC02Niw3ICs2Miw2IEBAIHByaXZhdGU6CiAKICAg
ICBjbGFzcyBHcmlkSXRlcmF0b3I7CiAgICAgY2xhc3MgR3JpZFNpemluZ0RhdGE7Ci0gICAgZW51
bSBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24geyBGb3JDb2x1bW5zLCBGb3JSb3dzIH07CiAgICAg
dm9pZCBjb21wdXRlVXNlZEJyZWFkdGhPZkdyaWRUcmFja3MoR3JpZFRyYWNrU2l6aW5nRGlyZWN0
aW9uLCBHcmlkU2l6aW5nRGF0YSYpOwogICAgIHZvaWQgY29tcHV0ZVVzZWRCcmVhZHRoT2ZHcmlk
VHJhY2tzKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgR3JpZFNpemluZ0RhdGEmLCBMYXlvdXRV
bml0JiBhdmFpbGFibGVMb2dpY2FsU3BhY2UpOwogICAgIGJvb2wgZ3JpZEVsZW1lbnRJc1Nocmlu
a1RvRml0KCk7CkBAIC03Niw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXNvbHZlQ29u
dGVudEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnMoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBH
cmlkU2l6aW5nRGF0YSYpOwogCiAgICAgdm9pZCBncm93R3JpZChHcmlkVHJhY2tTaXppbmdEaXJl
Y3Rpb24pOwotICAgIHZvaWQgaW5zZXJ0SXRlbUludG9HcmlkKFJlbmRlckJveCosIHNpemVfdCBy
b3dUcmFjaywgc2l6ZV90IGNvbHVtblRyYWNrKTsKKyAgICB2b2lkIGluc2VydEl0ZW1JbnRvR3Jp
ZChSZW5kZXJCb3gqLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcm93VHJhY2ssIGNvbnN0
IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBjb2x1bW5UcmFjayk7CiAgICAgdm9pZCBpbnNlcnRJdGVt
SW50b0dyaWQoUmVuZGVyQm94KiwgY29uc3QgR3JpZENvb3JkaW5hdGUmKTsKICAgICB2b2lkIHBs
YWNlSXRlbXNPbkdyaWQoKTsKICAgICB2b2lkIHBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJ
dGVyYXRvcigpOwpAQCAtMTAwLDkgKzk1LDYgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgY29tcHV0
ZU5vcm1hbGl6ZWRGcmFjdGlvbkJyZWFkdGgoVmVjdG9yPEdyaWRUcmFjaz4mLCBjb25zdCBHcmlk
U3BhbiYgdHJhY2tzU3BhbiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBMYXlvdXRVbml0IGF2
YWlsYWJsZUxvZ2ljYWxTcGFjZSkgY29uc3Q7CiAKICAgICBjb25zdCBHcmlkVHJhY2tTaXplJiBn
cmlkVHJhY2tTaXplKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgc2l6ZV90KSBjb25zdDsKLSAg
ICBzaXplX3QgZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoKSBjb25zdDsKLSAgICBzaXplX3QgZXhw
bGljaXRHcmlkUm93Q291bnQoKSBjb25zdDsKLSAgICBzaXplX3QgZXhwbGljaXRHcmlkU2l6ZUZv
clNpZGUoR3JpZFBvc2l0aW9uU2lkZSkgY29uc3Q7CiAKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxD
b250ZW50SGVpZ2h0Rm9yQ2hpbGQoUmVuZGVyQm94KiwgVmVjdG9yPEdyaWRUcmFjaz4mKTsKICAg
ICBMYXlvdXRVbml0IG1pbkNvbnRlbnRGb3JDaGlsZChSZW5kZXJCb3gqLCBHcmlkVHJhY2tTaXpp
bmdEaXJlY3Rpb24sIFZlY3RvcjxHcmlkVHJhY2s+JiBjb2x1bW5UcmFja3MpOwpAQCAtMTEwLDE3
ICsxMDIsNiBAQCBwcml2YXRlOgogICAgIExheW91dFBvaW50IGZpbmRDaGlsZExvZ2ljYWxQb3Np
dGlvbihSZW5kZXJCb3gqLCBjb25zdCBHcmlkU2l6aW5nRGF0YSYpOwogICAgIEdyaWRDb29yZGlu
YXRlIGNhY2hlZEdyaWRDb29yZGluYXRlKGNvbnN0IFJlbmRlckJveCopIGNvbnN0OwogCi0gICAg
R3JpZFNwYW4gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKGNv
bnN0IFJlbmRlckJveCosIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgc2l6ZV90KSBjb25zdDsK
LSAgICB2b2lkIGFkanVzdE5hbWVkR3JpZEl0ZW1Qb3NpdGlvbihHcmlkUG9zaXRpb24mLCBHcmlk
UG9zaXRpb25TaWRlKSBjb25zdDsKLSAgICB2b2lkIGFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5
bGUoR3JpZFBvc2l0aW9uJiBpbml0aWFsUG9zaXRpb24sIEdyaWRQb3NpdGlvbiYgZmluYWxQb3Np
dGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlLCBHcmlkUG9zaXRpb25T
aWRlIGZpbmFsUG9zaXRpb25TaWRlKSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNw
YW4+IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlckJveCosIEdyaWRU
cmFja1NpemluZ0RpcmVjdGlvbikgY29uc3Q7Ci0gICAgc2l6ZV90IHJlc29sdmVOYW1lZEdyaWRM
aW5lUG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lk
ZSkgY29uc3Q7Ci0gICAgc2l6ZV90IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29uc3Qg
R3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lkZSkgY29uc3Q7Ci0gICAgc3RkOjp1bmlxdWVf
cHRyPEdyaWRTcGFuPiByZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24o
c2l6ZV90IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgR3Jp
ZFBvc2l0aW9uU2lkZSkgY29uc3Q7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNv
bHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oc2l6ZV90IHJl
c29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9u
U2lkZSkgY29uc3Q7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNvbHZlUm93U3Rh
cnRDb2x1bW5TdGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9u
KHNpemVfdCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYsIGNv
bnN0IFZlY3RvcjxzaXplX3Q+JikgY29uc3Q7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFu
PiByZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9z
aXRlUG9zaXRpb24oc2l6ZV90IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBv
c2l0aW9uJiwgY29uc3QgVmVjdG9yPHNpemVfdD4mKSBjb25zdDsKLQogICAgIExheW91dFVuaXQg
Z3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCwgR3JpZFRyYWNr
U2l6aW5nRGlyZWN0aW9uLCBjb25zdCBWZWN0b3I8R3JpZFRyYWNrPiYpIGNvbnN0OwogCiAgICAg
dmlydHVhbCB2b2lkIHBhaW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBmb3JTZWxmLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPZmZzZXQsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRS
ZWN0KSBvdmVycmlkZSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9HcmlkQ29vcmRpbmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0dyaWRDb29yZGluYXRlLmgKaW5kZXggNDRkMjAwYmNkZDVhMWZhOGVhYjMyZjI5NmI4NzhkOTNi
MDRjZjI3Mi4uOTA4ZjM2NzJiNjk1MzQ2NjU1YWQ5ZjlkZGMyZjNjOWYyODRiZTY3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRDb29yZGluYXRlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRDb29yZGluYXRlLmgKQEAgLTM0
LDMwICszNCwzMSBAQAogCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKIAorI2luY2x1ZGUg
IkdyaWRSZXNvbHZlZFBvc2l0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBB
IHNwYW4gaW4gYSBzaW5nbGUgZGlyZWN0aW9uIChlaXRoZXIgcm93cyBvciBjb2x1bW5zKS4gTm90
ZSB0aGF0IHxpbml0aWFsUG9zaXRpb25JbmRleHwKLS8vIGFuZCB8ZmluYWxQb3NpdGlvbkluZGV4
fCBhcmUgZ3JpZCBhcmVhcycgaW5kZXhlcywgTk9UIGdyaWQgbGluZXMnLiBJdGVyYXRpbmcgb3Zl
ciB0aGUKLS8vIHNwYW4gc2hvdWxkIGluY2x1ZGUgYm90aCB8aW5pdGlhbFBvc2l0aW9uSW5kZXh8
IGFuZCB8ZmluYWxQb3NpdGlvbkluZGV4fCB0byBiZSBjb3JyZWN0LgorLy8gQSBzcGFuIGluIGEg
c2luZ2xlIGRpcmVjdGlvbiAoZWl0aGVyIHJvd3Mgb3IgY29sdW1ucykuIE5vdGUgdGhhdCB8cmVz
b2x2ZWRJbml0aWFsUG9zaXRpb258CisvLyBhbmQgfHJlc29sdmVkRmluYWxQb3NpdGlvbnwgYXJl
IGdyaWQgYXJlYXMnIGluZGV4ZXMsIE5PVCBncmlkIGxpbmVzJy4gSXRlcmF0aW5nIG92ZXIgdGhl
CisvLyBzcGFuIHNob3VsZCBpbmNsdWRlIGJvdGggfHJlc29sdmVkSW5pdGlhbFBvc2l0aW9ufCBh
bmQgfHJlc29sdmVkRmluYWxQb3NpdGlvbnwgdG8gYmUgY29ycmVjdC4KIGNsYXNzIEdyaWRTcGFu
IHsKIHB1YmxpYzoKLSAgICBHcmlkU3BhbihzaXplX3QgaW5pdGlhbFBvc2l0aW9uLCBzaXplX3Qg
ZmluYWxQb3NpdGlvbikKLSAgICAgICAgOiBpbml0aWFsUG9zaXRpb25JbmRleChpbml0aWFsUG9z
aXRpb24pCi0gICAgICAgICwgZmluYWxQb3NpdGlvbkluZGV4KGZpbmFsUG9zaXRpb24pCisgICAg
R3JpZFNwYW4oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29sdmVkSW5pdGlhbFBvc2l0
aW9uLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uKQor
ICAgICAgICA6IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uKHJlc29sdmVkSW5pdGlhbFBvc2l0aW9u
KQorICAgICAgICAsIHJlc29sdmVkRmluYWxQb3NpdGlvbihyZXNvbHZlZEZpbmFsUG9zaXRpb24p
CiAgICAgewotICAgICAgICBBU1NFUlQoaW5pdGlhbFBvc2l0aW9uSW5kZXggPD0gZmluYWxQb3Np
dGlvbkluZGV4KTsKKyAgICAgICAgQVNTRVJUKHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uIDw9IHJl
c29sdmVkRmluYWxQb3NpdGlvbik7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0
IEdyaWRTcGFuJiBvKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGluaXRpYWxQb3NpdGlv
bkluZGV4ID09IG8uaW5pdGlhbFBvc2l0aW9uSW5kZXggJiYgZmluYWxQb3NpdGlvbkluZGV4ID09
IG8uZmluYWxQb3NpdGlvbkluZGV4OworICAgICAgICByZXR1cm4gcmVzb2x2ZWRJbml0aWFsUG9z
aXRpb24gPT0gby5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbiAmJiByZXNvbHZlZEZpbmFsUG9zaXRp
b24gPT0gby5yZXNvbHZlZEZpbmFsUG9zaXRpb247CiAgICAgfQogCi0gICAgc2l6ZV90IGluaXRp
YWxQb3NpdGlvbkluZGV4OwotICAgIHNpemVfdCBmaW5hbFBvc2l0aW9uSW5kZXg7CisgICAgR3Jp
ZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZWRJbml0aWFsUG9zaXRpb247CisgICAgR3JpZFJlc29s
dmVkUG9zaXRpb24gcmVzb2x2ZWRGaW5hbFBvc2l0aW9uOwogfTsKIAogLy8gVGhpcyByZXByZXNl
bnRzIGEgZ3JpZCBhcmVhIHRoYXQgc3BhbnMgaW4gYm90aCByb3dzJyBhbmQgY29sdW1ucycgZGly
ZWN0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQ
b3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5o
CmluZGV4IDY4ZjJmMzkxY2M1ZGEwNzNkZDE2NzA5OGMwOGM1YTlmODZhNDhmZDQuLjVhMGFmOWVl
NDc2MGI0Y2M0OTQzMjE0Y2FkY2JmZDk1NmE1ZWJjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uLmgKQEAgLTQ1LDEzICs0NSw2IEBAIGVudW0gR3Jp
ZFBvc2l0aW9uVHlwZSB7CiAgICAgTmFtZWRHcmlkQXJlYVBvc2l0aW9uIC8vIDxpZGVudD4KIH07
CiAKLWVudW0gR3JpZFBvc2l0aW9uU2lkZSB7Ci0gICAgQ29sdW1uU3RhcnRTaWRlLAotICAgIENv
bHVtbkVuZFNpZGUsCi0gICAgUm93U3RhcnRTaWRlLAotICAgIFJvd0VuZFNpZGUKLX07Ci0KIGNs
YXNzIEdyaWRQb3NpdGlvbiB7CiBwdWJsaWM6CiAgICAgR3JpZFBvc2l0aW9uKCkKQEAgLTYwLDIw
ICs1Myw2IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgc3RhdGljIGlubGluZSBzaXpl
X3QgYWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZShzaXplX3QgcmVzb2x2
ZWRQb3NpdGlvbikKLSAgICB7Ci0gICAgICAgIHJldHVybiByZXNvbHZlZFBvc2l0aW9uID8gcmVz
b2x2ZWRQb3NpdGlvbiAtIDEgOiAwOwotICAgIH0KLQotICAgIHN0YXRpYyBzaXplX3QgYWRqdXN0
R3JpZFBvc2l0aW9uRm9yU2lkZShzaXplX3QgcmVzb2x2ZWRQb3NpdGlvbiwgR3JpZFBvc2l0aW9u
U2lkZSBzaWRlKQotICAgIHsKLSAgICAgICAgLy8gQW4gaXRlbSBmaW5pc2hpbmcgb24gdGhlIE4t
dGggbGluZSBiZWxvbmdzIHRvIHRoZSBOLTEtdGggY2VsbC4KLSAgICAgICAgaWYgKHNpZGUgPT0g
Q29sdW1uRW5kU2lkZSB8fCBzaWRlID09IFJvd0VuZFNpZGUpCi0gICAgICAgICAgICByZXR1cm4g
YWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZShyZXNvbHZlZFBvc2l0aW9u
KTsKLQotICAgICAgICByZXR1cm4gcmVzb2x2ZWRQb3NpdGlvbjsKLSAgICB9Ci0KICAgICBib29s
IGlzUG9zaXRpdmUoKSBjb25zdCB7IHJldHVybiBpbnRlZ2VyUG9zaXRpb24oKSA+IDA7IH0KIAog
ICAgIEdyaWRQb3NpdGlvblR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQb3Np
dGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQyOThlNGMxNTg4ZTEzNzQ2YTczYTE1Mzk1MjFhNGJiZjk5
M2Q2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9H
cmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAKQEAgLTAsMCArMSwzNDYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgor
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR3JpZFJl
c29sdmVkUG9zaXRpb24uaCIKKworI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisKKyNpbmNs
dWRlICJHcmlkQ29vcmRpbmF0ZS5oIgorI2luY2x1ZGUgIlJlbmRlckJveC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3NpemVfdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6ZXhwbGljaXRHcmlk
Q29sdW1uQ291bnQoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSkKK3sKKyAg
ICByZXR1cm4gZ3JpZENvbnRhaW5lclN0eWxlLmdyaWRDb2x1bW5zKCkuc2l6ZSgpOworfQorCitz
aXplX3QgR3JpZFJlc29sdmVkUG9zaXRpb246OmV4cGxpY2l0R3JpZFJvd0NvdW50KGNvbnN0IFJl
bmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUpCit7CisgICAgcmV0dXJuIGdyaWRDb250YWlu
ZXJTdHlsZS5ncmlkUm93cygpLnNpemUoKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzQ29s
dW1uU2lkZShHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7CisgICAgcmV0dXJuIHNpZGUgPT0gQ29s
dW1uU3RhcnRTaWRlIHx8IHNpZGUgPT0gQ29sdW1uRW5kU2lkZTsKK30KKworc2l6ZV90IEdyaWRS
ZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdyaWRTaXplRm9yU2lkZShjb25zdCBSZW5kZXJTdHls
ZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7CisgICAgcmV0
dXJuIGlzQ29sdW1uU2lkZShzaWRlKSA/IGV4cGxpY2l0R3JpZENvbHVtbkNvdW50KGdyaWRDb250
YWluZXJTdHlsZSkgOiBleHBsaWNpdEdyaWRSb3dDb3VudChncmlkQ29udGFpbmVyU3R5bGUpOwor
fQorCitHcmlkU3BhbiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNG
cm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbiwgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIGluaXRpYWxQb3NpdGlvbikK
K3sKKyAgICAvLyBGSVhNRTogV2UgZG9uJ3Qgc3VwcG9ydCBzcGFubmluZyB3aXRoIGF1dG8gcG9z
aXRpb25zIHlldC4gT25jZSB3ZSBkbywgdGhpcyBpcyB3cm9uZy4gQWxzbyB3ZSBzaG91bGQgbWFr
ZQorICAgIC8vIHN1cmUgdGhlIGdyaWQgY2FuIGFjY29tb2RhdGUgdGhlIG5ldyBpdGVtIGFzIHdl
IG9ubHkgZ3JvdyAxIHBvc2l0aW9uIGluIGEgZ2l2ZW4gZGlyZWN0aW9uLgorICAgIHJldHVybiBH
cmlkU3Bhbihpbml0aWFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvbik7Cit9CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBncmlkTGluZURlZmluZWRCZWZvcmVHcmlkQXJlYShjb25zdCBHcmlkUmVzb2x2
ZWRQb3NpdGlvbiYgbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiwgY29uc3QgR3JpZENvb3Jk
aW5hdGUmIGdyaWRBcmVhQ29vcmRpbmF0ZXMsIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sKKyAg
ICBzd2l0Y2ggKHNpZGUpIHsKKyAgICBjYXNlIENvbHVtblN0YXJ0U2lkZToKKyAgICAgICAgcmV0
dXJuIG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24gPCBncmlkQXJlYUNvb3JkaW5hdGVzLmNv
bHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb247CisgICAgY2FzZSBDb2x1bW5FbmRTaWRlOgor
ICAgICAgICByZXR1cm4gbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiA8IGdyaWRBcmVhQ29v
cmRpbmF0ZXMuY29sdW1ucy5yZXNvbHZlZEZpbmFsUG9zaXRpb247CisgICAgY2FzZSBSb3dTdGFy
dFNpZGU6CisgICAgICAgIHJldHVybiBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9uIDwgZ3Jp
ZEFyZWFDb29yZGluYXRlcy5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOworICAgIGNhc2Ug
Um93RW5kU2lkZToKKyAgICAgICAgcmV0dXJuIG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24g
PCBncmlkQXJlYUNvb3JkaW5hdGVzLnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0aW9uOworICAgIH0K
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRp
YyB2b2lkIHNldE5hbWVkTGluZVBvc2l0aW9uSWZEZWZpbmVkQmVmb3JlQXJlYShHcmlkUG9zaXRp
b24mIHBvc2l0aW9uLCBjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYgbmFtZWRMaW5lc01hcCwgY29u
c3QgU3RyaW5nJiBsaW5lTmFtZSwgY29uc3QgR3JpZENvb3JkaW5hdGUmIGdyaWRBcmVhQ29vcmRp
bmF0ZSwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQoreworICAgIGF1dG8gbGluZXNJdGVyYXRvciA9
IG5hbWVkTGluZXNNYXAuZmluZChsaW5lTmFtZSk7CisgICAgaWYgKGxpbmVzSXRlcmF0b3IgPT0g
bmFtZWRMaW5lc01hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgR3JpZFJlc29sdmVk
UG9zaXRpb24gbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiA9IEdyaWRSZXNvbHZlZFBvc2l0
aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGxpbmVzSXRlcmF0b3ItPnZhbHVlWzBdLCBz
aWRlKTsKKyAgICBpZiAoZ3JpZExpbmVEZWZpbmVkQmVmb3JlR3JpZEFyZWEobmFtZWRHcmlkTGlu
ZUZpcnN0RGVmaW5pdGlvbiwgZ3JpZEFyZWFDb29yZGluYXRlLCBzaWRlKSkKKyAgICAgICAgcG9z
aXRpb24uc2V0RXhwbGljaXRQb3NpdGlvbigxLCBsaW5lTmFtZSk7Cit9CisKK3ZvaWQgR3JpZFJl
c29sdmVkUG9zaXRpb246OmFkanVzdE5hbWVkR3JpZEl0ZW1Qb3NpdGlvbihjb25zdCBSZW5kZXJT
dHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9z
aXRpb25TaWRlIHNpZGUpCit7CisgICAgLy8gVGhlIFN0eWxlQnVpbGRlciBhbHdheXMgdHJlYXRz
IDxjdXN0b20taWRlbnQ+IGFzIGEgbmFtZWQgZ3JpZCBhcmVhLiBXZSBtdXN0IGRlY2lkZSBoZXJl
IGlmIHRoZXkgYXJlIGdvaW5nIHRvIGJlCisgICAgLy8gcmVzb2x2ZWQgdG8gZWl0aGVyIGEgZ3Jp
ZCBhcmVhIG9yIGEgZ3JpZCBsaW5lLgorICAgIEFTU0VSVChwb3NpdGlvbi5pc05hbWVkR3JpZEFy
ZWEoKSk7CisgICAgY29uc3QgTmFtZWRHcmlkQXJlYU1hcCYgZ3JpZEFyZWFNYXAgPSBncmlkQ29u
dGFpbmVyU3R5bGUubmFtZWRHcmlkQXJlYSgpOworICAgIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFw
JiBuYW1lZExpbmVzTWFwID0gaXNDb2x1bW5TaWRlKHNpZGUpID8gZ3JpZENvbnRhaW5lclN0eWxl
Lm5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBncmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlkUm93
TGluZXMoKTsKKworICAgIFN0cmluZyBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZSA9IHBvc2l0aW9u
Lm5hbWVkR3JpZExpbmUoKTsKKyAgICBib29sIGlzU3RhcnRTaWRlID0gc2lkZSA9PSBDb2x1bW5T
dGFydFNpZGUgfHwgc2lkZSA9PSBSb3dTdGFydFNpZGU7CisKKyAgICBhdXRvIGFyZWFJdGVyYXRv
ciA9IGdyaWRBcmVhTWFwLmZpbmQobmFtZWRHcmlkQXJlYU9yR3JpZExpbmUpOworICAgIGlmIChh
cmVhSXRlcmF0b3IgIT0gZ3JpZEFyZWFNYXAuZW5kKCkpIHsKKyAgICAgICAgU3RyaW5nIGdyaWRM
aW5lTmFtZSA9IG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lICsgKGlzU3RhcnRTaWRlID8gIi1zdGFy
dCIgOiAiLWVuZCIpOworICAgICAgICBzZXROYW1lZExpbmVQb3NpdGlvbklmRGVmaW5lZEJlZm9y
ZUFyZWEocG9zaXRpb24sIG5hbWVkTGluZXNNYXAsIGdyaWRMaW5lTmFtZSwgYXJlYUl0ZXJhdG9y
LT52YWx1ZSwgc2lkZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBib29sIGhhc1N0
YXJ0U3VmZml4ID0gbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUuZW5kc1dpdGgoIi1zdGFydCIpOwor
ICAgIGJvb2wgaGFzRW5kU3VmZml4ID0gbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUuZW5kc1dpdGgo
Ii1lbmQiKTsKKyAgICBpZiAoKGhhc1N0YXJ0U3VmZml4ICYmIGlzU3RhcnRTaWRlKSB8fCAoaGFz
RW5kU3VmZml4ICYmICFpc1N0YXJ0U2lkZSkpIHsKKyAgICAgICAgc2l6ZV90IHN1ZmZpeExlbmd0
aCA9IGhhc1N0YXJ0U3VmZml4ID8gc3RybGVuKCItc3RhcnQiKSA6IHN0cmxlbigiLWVuZCIpOwor
ICAgICAgICBTdHJpbmcgZ3JpZEFyZWFOYW1lID0gbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUuc3Vi
c3RyaW5nKDAsIG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lLmxlbmd0aCgpIC0gc3VmZml4TGVuZ3Ro
KTsKKworICAgICAgICBhdXRvIGFyZWFJdGVyYXRvciA9IGdyaWRBcmVhTWFwLmZpbmQoZ3JpZEFy
ZWFOYW1lKTsKKyAgICAgICAgaWYgKGFyZWFJdGVyYXRvciAhPSBncmlkQXJlYU1hcC5lbmQoKSkg
eworICAgICAgICAgICAgcG9zaXRpb24uc2V0TmFtZWRHcmlkQXJlYShncmlkQXJlYU5hbWUpOwor
ICAgICAgICAgICAgc2V0TmFtZWRMaW5lUG9zaXRpb25JZkRlZmluZWRCZWZvcmVBcmVhKHBvc2l0
aW9uLCBuYW1lZExpbmVzTWFwLCBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZSwgYXJlYUl0ZXJhdG9y
LT52YWx1ZSwgc2lkZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBpZiAobmFtZWRMaW5lc01hcC5jb250YWlucyhuYW1lZEdyaWRBcmVhT3JHcmlkTGluZSkp
CisgICAgICAgIHBvc2l0aW9uLnNldEV4cGxpY2l0UG9zaXRpb24oMSwgbmFtZWRHcmlkQXJlYU9y
R3JpZExpbmUpOworICAgIGVsc2UKKyAgICAgICAgcG9zaXRpb24uc2V0QXV0b1Bvc2l0aW9uKCk7
Cit9CisKK3ZvaWQgR3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbnNGcm9t
U3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgR3JpZFBvc2l0aW9u
JiBpbml0aWFsUG9zaXRpb24sIEdyaWRQb3NpdGlvbiYgZmluYWxQb3NpdGlvbiwgR3JpZFBvc2l0
aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlLCBHcmlkUG9zaXRpb25TaWRlIGZpbmFsUG9zaXRp
b25TaWRlKQoreworICAgIEFTU0VSVChpc0NvbHVtblNpZGUoaW5pdGlhbFBvc2l0aW9uU2lkZSkg
PT0gaXNDb2x1bW5TaWRlKGZpbmFsUG9zaXRpb25TaWRlKSk7CisKKyAgICAvLyBXZSBtdXN0IGhh
bmRsZSB0aGUgcGxhY2VtZW50IGVycm9yIGhhbmRsaW5nIGNvZGUgaGVyZSBpbnN0ZWFkIG9mIGlu
IHRoZSBTdHlsZUFkanVzdGVyIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0bworICAgIC8vIG92ZXJ3
cml0ZSB0aGUgc3BlY2lmaWVkIHZhbHVlcy4KKyAgICBpZiAoaW5pdGlhbFBvc2l0aW9uLmlzU3Bh
bigpICYmIGZpbmFsUG9zaXRpb24uaXNTcGFuKCkpCisgICAgICAgIGZpbmFsUG9zaXRpb24uc2V0
QXV0b1Bvc2l0aW9uKCk7CisKKyAgICBpZiAoaW5pdGlhbFBvc2l0aW9uLmlzTmFtZWRHcmlkQXJl
YSgpKQorICAgICAgICBhZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRpb24oZ3JpZENvbnRhaW5lclN0
eWxlLCBpbml0aWFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUpOworCisgICAgaWYgKGZp
bmFsUG9zaXRpb24uaXNOYW1lZEdyaWRBcmVhKCkpCisgICAgICAgIGFkanVzdE5hbWVkR3JpZEl0
ZW1Qb3NpdGlvbihncmlkQ29udGFpbmVyU3R5bGUsIGZpbmFsUG9zaXRpb24sIGZpbmFsUG9zaXRp
b25TaWRlKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBHcmlkUmVzb2x2ZWRQb3Np
dGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIGdy
aWRDb250YWluZXJTdHlsZSwgY29uc3QgUmVuZGVyQm94JiBncmlkSXRlbSwgR3JpZFRyYWNrU2l6
aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBHcmlkUG9zaXRpb24gaW5pdGlhbFBvc2l0
aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGdyaWRJdGVtLnN0eWxlKCkuZ3JpZEl0
ZW1Db2x1bW5TdGFydCgpIDogZ3JpZEl0ZW0uc3R5bGUoKS5ncmlkSXRlbVJvd1N0YXJ0KCk7Cisg
ICAgY29uc3QgR3JpZFBvc2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlID0gKGRpcmVjdGlv
biA9PSBGb3JDb2x1bW5zKSA/IENvbHVtblN0YXJ0U2lkZSA6IFJvd1N0YXJ0U2lkZTsKKyAgICBH
cmlkUG9zaXRpb24gZmluYWxQb3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBn
cmlkSXRlbS5zdHlsZSgpLmdyaWRJdGVtQ29sdW1uRW5kKCkgOiBncmlkSXRlbS5zdHlsZSgpLmdy
aWRJdGVtUm93RW5kKCk7CisgICAgY29uc3QgR3JpZFBvc2l0aW9uU2lkZSBmaW5hbFBvc2l0aW9u
U2lkZSA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBDb2x1bW5FbmRTaWRlIDogUm93RW5k
U2lkZTsKKworICAgIGFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoZ3JpZENvbnRhaW5lclN0
eWxlLCBpbml0aWFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUs
IGZpbmFsUG9zaXRpb25TaWRlKTsKKworICAgIGlmIChpbml0aWFsUG9zaXRpb24uc2hvdWxkQmVS
ZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKCkgJiYgZmluYWxQb3NpdGlvbi5zaG91bGRC
ZVJlc29sdmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKSkgeworICAgICAgICBpZiAoZ3JpZENv
bnRhaW5lclN0eWxlLmdyaWRBdXRvRmxvdygpID09IEF1dG9GbG93Tm9uZSkKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPigwLCAwKTsKKworICAgICAgICAvLyBX
ZSBjYW4ndCBnZXQgb3VyIGdyaWQgcG9zaXRpb25zIHdpdGhvdXQgcnVubmluZyB0aGUgYXV0byBw
bGFjZW1lbnQgYWxnb3JpdGhtLgorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAg
ICBpZiAoaW5pdGlhbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3Np
dGlvbigpKSB7CisgICAgICAgIC8vIEluZmVyIHRoZSBwb3NpdGlvbiBmcm9tIHRoZSBmaW5hbCBw
b3NpdGlvbiAoJ2F1dG8gLyAxJyBvciAnc3BhbiAyIC8gMycgY2FzZSkuCisgICAgICAgIGNvbnN0
IEdyaWRSZXNvbHZlZFBvc2l0aW9uIGZpbmFsUmVzb2x2ZWRQb3NpdGlvbiA9IHJlc29sdmVHcmlk
UG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5lclN0eWxlLCBmaW5hbFBvc2l0aW9uLCBmaW5h
bFBvc2l0aW9uU2lkZSk7CisgICAgICAgIHJldHVybiByZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5z
dE9wcG9zaXRlUG9zaXRpb24oZ3JpZENvbnRhaW5lclN0eWxlLCBmaW5hbFJlc29sdmVkUG9zaXRp
b24sIGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSk7CisgICAgfQorCisgICAg
aWYgKGZpbmFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9u
KCkpIHsKKyAgICAgICAgLy8gSW5mZXIgb3VyIHBvc2l0aW9uIGZyb20gdGhlIGluaXRpYWwgcG9z
aXRpb24gKCcxIC8gYXV0bycgb3IgJzMgLyBzcGFuIDInIGNhc2UpLgorICAgICAgICBjb25zdCBH
cmlkUmVzb2x2ZWRQb3NpdGlvbiBpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiA9IHJlc29sdmVHcmlk
UG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5lclN0eWxlLCBpbml0aWFsUG9zaXRpb24sIGlu
aXRpYWxQb3NpdGlvblNpZGUpOworICAgICAgICByZXR1cm4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKGdyaWRDb250YWluZXJTdHlsZSwgaW5pdGlhbFJlc29sdmVk
UG9zaXRpb24sIGZpbmFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb25TaWRlKTsKKyAgICB9CisKKyAg
ICBHcmlkUmVzb2x2ZWRQb3NpdGlvbiByZXNvbHZlZEluaXRpYWxQb3NpdGlvbiA9IHJlc29sdmVH
cmlkUG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5lclN0eWxlLCBpbml0aWFsUG9zaXRpb24s
IGluaXRpYWxQb3NpdGlvblNpZGUpOworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVk
RmluYWxQb3NpdGlvbiA9IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENvbnRhaW5l
clN0eWxlLCBmaW5hbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uU2lkZSk7CisKKyAgICAvLyBJZiAn
Z3JpZC1yb3ctZW5kJyBzcGVjaWZpZXMgYSBsaW5lIGF0IG9yIGJlZm9yZSB0aGF0IHNwZWNpZmll
ZCBieSAnZ3JpZC1yb3ctc3RhcnQnLCBpdCBjb21wdXRlcyB0byAnc3BhbiAxJy4KKyAgICBpZiAo
cmVzb2x2ZWRGaW5hbFBvc2l0aW9uIDwgcmVzb2x2ZWRJbml0aWFsUG9zaXRpb24pCisgICAgICAg
IHJlc29sdmVkRmluYWxQb3NpdGlvbiA9IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOworCisgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkSW5pdGlhbFBvc2l0aW9u
LCByZXNvbHZlZEZpbmFsUG9zaXRpb24pOworfQorCitHcmlkUmVzb2x2ZWRQb3NpdGlvbiBHcmlk
UmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZShj
b25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBjb25zdCBHcmlkUG9zaXRpb24m
IHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7CisgICAgQVNTRVJUKCFwb3NpdGlv
bi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpOworCisgICAgY29uc3QgTmFtZWRHcmlkTGluZXNN
YXAmIGdyaWRMaW5lc05hbWVzID0gaXNDb2x1bW5TaWRlKHNpZGUpID8gZ3JpZENvbnRhaW5lclN0
eWxlLm5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBncmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlk
Um93TGluZXMoKTsKKyAgICBOYW1lZEdyaWRMaW5lc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBn
cmlkTGluZXNOYW1lcy5maW5kKHBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSk7CisgICAgaWYgKGl0
ID09IGdyaWRMaW5lc05hbWVzLmVuZCgpKSB7CisgICAgICAgIGlmIChwb3NpdGlvbi5pc1Bvc2l0
aXZlKCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGxhc3RM
aW5lID0gZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoZ3JpZENvbnRhaW5lclN0eWxlLCBzaWRlKTsK
KyAgICAgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25G
b3JTaWRlKGxhc3RMaW5lLCBzaWRlKTsKKyAgICB9CisKKyAgICBzaXplX3QgbmFtZWRHcmlkTGlu
ZUluZGV4OworICAgIGlmIChwb3NpdGlvbi5pc1Bvc2l0aXZlKCkpCisgICAgICAgIG5hbWVkR3Jp
ZExpbmVJbmRleCA9IHN0ZDo6bWluPHNpemVfdD4ocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCks
IGl0LT52YWx1ZS5zaXplKCkpIC0gMTsKKyAgICBlbHNlCisgICAgICAgIG5hbWVkR3JpZExpbmVJ
bmRleCA9IHN0ZDo6bWF4PGludD4oaXQtPnZhbHVlLnNpemUoKSAtIGFicyhwb3NpdGlvbi5pbnRl
Z2VyUG9zaXRpb24oKSksIDApOworICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRq
dXN0R3JpZFBvc2l0aW9uRm9yU2lkZShpdC0+dmFsdWVbbmFtZWRHcmlkTGluZUluZGV4XSwgc2lk
ZSk7Cit9CisKK0dyaWRSZXNvbHZlZFBvc2l0aW9uIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNv
bHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVy
U3R5bGUsIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lk
ZSkKK3sKKyAgICBzd2l0Y2ggKHBvc2l0aW9uLnR5cGUoKSkgeworICAgIGNhc2UgRXhwbGljaXRQ
b3NpdGlvbjogeworICAgICAgICBBU1NFUlQocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpOwor
CisgICAgICAgIGlmICghcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVsbCgpKQorICAgICAg
ICAgICAgcmV0dXJuIHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUoZ3JpZENv
bnRhaW5lclN0eWxlLCBwb3NpdGlvbiwgc2lkZSk7CisKKyAgICAgICAgLy8gSGFuZGxlIDxpbnRl
Z2VyPiBleHBsaWNpdCBwb3NpdGlvbi4KKyAgICAgICAgaWYgKHBvc2l0aW9uLmlzUG9zaXRpdmUo
KSkKKyAgICAgICAgICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBv
c2l0aW9uRm9yU2lkZShwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSAtIDEsIHNpZGUpOworCisg
ICAgICAgIHNpemVfdCByZXNvbHZlZFBvc2l0aW9uID0gYWJzKHBvc2l0aW9uLmludGVnZXJQb3Np
dGlvbigpKSAtIDE7CisgICAgICAgIGNvbnN0IHNpemVfdCBlbmRPZlRyYWNrID0gZXhwbGljaXRH
cmlkU2l6ZUZvclNpZGUoZ3JpZENvbnRhaW5lclN0eWxlLCBzaWRlKTsKKworICAgICAgICAvLyBQ
ZXIgaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTNNYXIv
MDU4OS5odG1sLCB3ZSBjbGFtcCBuZWdhdGl2ZSB2YWx1ZSB0byB0aGUgZmlyc3QgbGluZS4KKyAg
ICAgICAgaWYgKGVuZE9mVHJhY2sgPCByZXNvbHZlZFBvc2l0aW9uKQorICAgICAgICAgICAgcmV0
dXJuIDA7CisKKyAgICAgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1c3RHcmlk
UG9zaXRpb25Gb3JTaWRlKGVuZE9mVHJhY2sgLSByZXNvbHZlZFBvc2l0aW9uLCBzaWRlKTsKKyAg
ICB9CisgICAgY2FzZSBOYW1lZEdyaWRBcmVhUG9zaXRpb246CisgICAgeworICAgICAgICBOYW1l
ZEdyaWRBcmVhTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGdyaWRDb250YWluZXJTdHlsZS5uYW1l
ZEdyaWRBcmVhKCkuZmluZChwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkpOworICAgICAgICAvLyBV
bmtub3duIGdyaWQgYXJlYSBzaG91bGQgaGF2ZSBiZWVuIGNvbXB1dGVkIHRvICdhdXRvJyBieSBu
b3cuCisgICAgICAgIEFTU0VSVChpdCAhPSBncmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlkQXJl
YSgpLmVuZCgpKTsKKyAgICAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUmIGdyaWRBcmVhQ29vcmRp
bmF0ZSA9IGl0LT52YWx1ZTsKKyAgICAgICAgc3dpdGNoIChzaWRlKSB7CisgICAgICAgIGNhc2Ug
Q29sdW1uU3RhcnRTaWRlOgorICAgICAgICAgICAgcmV0dXJuIGdyaWRBcmVhQ29vcmRpbmF0ZS5j
b2x1bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOworICAgICAgICBjYXNlIENvbHVtbkVuZFNp
ZGU6CisgICAgICAgICAgICByZXR1cm4gZ3JpZEFyZWFDb29yZGluYXRlLmNvbHVtbnMucmVzb2x2
ZWRGaW5hbFBvc2l0aW9uOworICAgICAgICBjYXNlIFJvd1N0YXJ0U2lkZToKKyAgICAgICAgICAg
IHJldHVybiBncmlkQXJlYUNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsK
KyAgICAgICAgY2FzZSBSb3dFbmRTaWRlOgorICAgICAgICAgICAgcmV0dXJuIGdyaWRBcmVhQ29v
cmRpbmF0ZS5yb3dzLnJlc29sdmVkRmluYWxQb3NpdGlvbjsKKyAgICAgICAgfQorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9u
KDApOworICAgIH0KKyAgICBjYXNlIEF1dG9Qb3NpdGlvbjoKKyAgICBjYXNlIFNwYW5Qb3NpdGlv
bjoKKyAgICAgICAgLy8gJ2F1dG8nIGFuZCBzcGFuIGRlcGVuZCBvbiB0aGUgb3Bwb3NpdGUgcG9z
aXRpb24gZm9yIHJlc29sdXRpb24gKGUuZy4gZ3JpZC1yb3c6IGF1dG8gLyAxIG9yIGdyaWQtY29s
dW1uOiBzcGFuIDMgLyAibXlIZWFkZXIiKS4KKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbigwKTsKKyAgICB9CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9uKDApOwor
fQorCitzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNv
bHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3QgUmVuZGVyU3R5bGUm
IGdyaWRDb250YWluZXJTdHlsZSwgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29sdmVk
T3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0
aW9uU2lkZSBzaWRlKQoreworICAgIGlmIChwb3NpdGlvbi5pc0F1dG8oKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwg
cmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKKworICAgIEFTU0VSVChwb3NpdGlvbi5pc1NwYW4o
KSk7CisgICAgQVNTRVJUKHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpID4gMCk7CisKKyAgICBpZiAo
IXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSkgeworICAgICAgICAvLyBzcGFuIDIg
J2MnIC0+IHdlIG5lZWQgdG8gZmluZCB0aGUgYXBwcm9wcmlhdGUgZ3JpZCBsaW5lIGJlZm9yZSAv
IGFmdGVyIG91ciBvcHBvc2l0ZSBwb3NpdGlvbi4KKyAgICAgICAgcmV0dXJuIHJlc29sdmVOYW1l
ZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihncmlkQ29udGFpbmVyU3R5
bGUsIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcG9zaXRpb24sIHNpZGUpOworICAgIH0KKwor
ICAgIC8vICdzcGFuIDEnIGlzIGNvbnRhaW5lZCBpbnNpZGUgYSBzaW5nbGUgZ3JpZCB0cmFjayBy
ZWdhcmRsZXNzIG9mIHRoZSBkaXJlY3Rpb24uCisgICAgLy8gVGhhdCdzIHdoeSB0aGUgQ1NTIHNw
YW4gdmFsdWUgaXMgb25lIG1vcmUgdGhhbiB0aGUgb2Zmc2V0IHdlIGFwcGx5LgorICAgIHNpemVf
dCBwb3NpdGlvbk9mZnNldCA9IHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpIC0gMTsKKyAgICBpZiAo
c2lkZSA9PSBDb2x1bW5TdGFydFNpZGUgfHwgc2lkZSA9PSBSb3dTdGFydFNpZGUpIHsKKyAgICAg
ICAgc2l6ZV90IGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uID0gc3RkOjptYXg8aW50PigwLCByZXNv
bHZlZE9wcG9zaXRlUG9zaXRpb24udG9JbnQoKSAtIHBvc2l0aW9uT2Zmc2V0KTsKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KEdyaWRSZXNvbHZlZFBvc2l0aW9uKGlu
aXRpYWxSZXNvbHZlZFBvc2l0aW9uKSwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKKyAgICB9
CisKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uLCBHcmlkUmVzb2x2ZWRQb3NpdGlvbihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24u
dG9JbnQoKSArIHBvc2l0aW9uT2Zmc2V0KSk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bh
bj4gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2Fp
bnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxl
LCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBj
b25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7Cisg
ICAgQVNTRVJUKHBvc2l0aW9uLmlzU3BhbigpKTsKKyAgICBBU1NFUlQoIXBvc2l0aW9uLm5hbWVk
R3JpZExpbmUoKS5pc051bGwoKSk7CisgICAgLy8gTmVnYXRpdmUgcG9zaXRpb25zIGFyZSBub3Qg
YWxsb3dlZCBwZXIgdGhlIHNwZWNpZmljYXRpb24gYW5kIHNob3VsZCBoYXZlIGJlZW4gaGFuZGxl
ZCBkdXJpbmcgcGFyc2luZy4KKyAgICBBU1NFUlQocG9zaXRpb24uc3BhblBvc2l0aW9uKCkgPiAw
KTsKKworICAgIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBncmlkTGluZXNOYW1lcyA9IGlzQ29s
dW1uU2lkZShzaWRlKSA/IGdyaWRDb250YWluZXJTdHlsZS5uYW1lZEdyaWRDb2x1bW5MaW5lcygp
IDogZ3JpZENvbnRhaW5lclN0eWxlLm5hbWVkR3JpZFJvd0xpbmVzKCk7CisgICAgTmFtZWRHcmlk
TGluZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZ3JpZExpbmVzTmFtZXMuZmluZChwb3NpdGlv
bi5uYW1lZEdyaWRMaW5lKCkpOworCisgICAgLy8gSWYgdGhlcmUgaXMgbm8gbmFtZWQgZ3JpZCBs
aW5lIG9mIHRoYXQgbmFtZSwgd2UgcmVzb2x2ZSB0aGUgcG9zaXRpb24gdG8gJ2F1dG8nICh3aGlj
aCBpcyBlcXVpdmFsZW50IHRvICdzcGFuIDEnIGluIHRoaXMgY2FzZSkuCisgICAgLy8gU2VlIGh0
dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1zdHlsZS8yMDEzSnVuLzAzOTQu
aHRtbC4KKyAgICBpZiAoaXQgPT0gZ3JpZExpbmVzTmFtZXMuZW5kKCkpCisgICAgICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHJl
c29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7CisKKyAgICBpZiAoc2lkZSA9PSBSb3dTdGFydFNpZGUg
fHwgc2lkZSA9PSBDb2x1bW5TdGFydFNpZGUpCisgICAgICAgIHJldHVybiByZXNvbHZlUm93U3Rh
cnRDb2x1bW5TdGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9u
KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcG9zaXRpb24sIGl0LT52YWx1ZSk7CisKKyAgICBy
ZXR1cm4gcmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RP
cHBvc2l0ZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcG9zaXRpb24sIGl0LT52
YWx1ZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc2l6ZV90IGZpcnN0TmFtZWRHcmlkTGluZUJlZm9y
ZVBvc2l0aW9uKHNpemVfdCBwb3NpdGlvbiwgY29uc3QgVmVjdG9yPHNpemVfdD4mIGdyaWRMaW5l
cykKK3sKKyAgICAvLyBUaGUgZ3JpZCBsaW5lIGluZXF1YWxpdHkgbmVlZHMgdG8gYmUgc3RyaWN0
ICh3aGljaCBkb2Vzbid0IG1hdGNoIHRoZSBhZnRlciAvIGVuZCBjYXNlKSBiZWNhdXNlIHxwb3Np
dGlvbnwgaXMKKyAgICAvLyBhbHJlYWR5IGNvbnZlcnRlZCB0byBhbiBpbmRleCBpbiBvdXIgZ3Jp
ZCByZXByZXNlbnRhdGlvbiAoaWUgb25lIHdhcyByZW1vdmVkIGZyb20gdGhlIGdyaWQgbGluZSB0
byBhY2NvdW50IGZvcgorICAgIC8vIHRoZSBzaWRlKS4KKyAgICBzaXplX3QgZmlyc3RMaW5lQmVm
b3JlUG9zaXRpb25JbmRleCA9IDA7CisgICAgY29uc3Qgc2l6ZV90KiBmaXJzdExpbmVCZWZvcmVQ
b3NpdGlvbiA9IHN0ZDo6bG93ZXJfYm91bmQoZ3JpZExpbmVzLmJlZ2luKCksIGdyaWRMaW5lcy5l
bmQoKSwgcG9zaXRpb24pOworICAgIGlmIChmaXJzdExpbmVCZWZvcmVQb3NpdGlvbiAhPSBncmlk
TGluZXMuZW5kKCkpIHsKKyAgICAgICAgaWYgKCpmaXJzdExpbmVCZWZvcmVQb3NpdGlvbiA+IHBv
c2l0aW9uICYmIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uICE9IGdyaWRMaW5lcy5iZWdpbigpKQor
ICAgICAgICAgICAgLS1maXJzdExpbmVCZWZvcmVQb3NpdGlvbjsKKworICAgICAgICBmaXJzdExp
bmVCZWZvcmVQb3NpdGlvbkluZGV4ID0gZmlyc3RMaW5lQmVmb3JlUG9zaXRpb24gLSBncmlkTGlu
ZXMuYmVnaW4oKTsKKyAgICB9CisgICAgcmV0dXJuIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uSW5k
ZXg7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gR3JpZFJlc29sdmVkUG9zaXRpb246
OnJlc29sdmVSb3dTdGFydENvbHVtblN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9w
cG9zaXRlUG9zaXRpb24oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29sdmVkT3Bwb3Np
dGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgY29uc3QgVmVjdG9yPHNp
emVfdD4mIGdyaWRMaW5lcykKK3sKKyAgICBzaXplX3QgZ3JpZExpbmVJbmRleCA9IHN0ZDo6bWF4
PGludD4oMCwgZmlyc3ROYW1lZEdyaWRMaW5lQmVmb3JlUG9zaXRpb24ocmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uLnRvSW50KCksIGdyaWRMaW5lcykgLSBwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSAr
IDEpOworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA9
IEdyaWRSZXNvbHZlZFBvc2l0aW9uKGdyaWRMaW5lc1tncmlkTGluZUluZGV4XSk7CisgICAgaWYg
KHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA+IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbikKKyAg
ICAgICAgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9u
OworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZlZEdyaWRMaW5l
UG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7Cit9CisKK3N0ZDo6dW5pcXVlX3B0
cjxHcmlkU3Bhbj4gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVSb3dFbmRDb2x1bW5FbmRO
YW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBHcmlkUmVz
b2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRp
b24mIHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYgZ3JpZExpbmVzKQoreworICAgIHNp
emVfdCBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb25JbmRleCA9IGdyaWRMaW5lcy5zaXpl
KCkgLSAxOworICAgIGNvbnN0IHNpemVfdCogZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9u
ID0gc3RkOjp1cHBlcl9ib3VuZChncmlkTGluZXMuYmVnaW4oKSwgZ3JpZExpbmVzLmVuZCgpLCBy
ZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pOworICAgIGlmIChmaXJzdExpbmVBZnRlck9wcG9zaXRl
UG9zaXRpb24gIT0gZ3JpZExpbmVzLmVuZCgpKQorICAgICAgICBmaXJzdExpbmVBZnRlck9wcG9z
aXRlUG9zaXRpb25JbmRleCA9IGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbiAtIGdyaWRM
aW5lcy5iZWdpbigpOworCisgICAgc2l6ZV90IGdyaWRMaW5lSW5kZXggPSBzdGQ6Om1pbihncmlk
TGluZXMuc2l6ZSgpIC0gMSwgZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uSW5kZXggKyBw
b3NpdGlvbi5zcGFuUG9zaXRpb24oKSAtIDEpOworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJl
c29sdmVkR3JpZExpbmVQb3NpdGlvbiA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1c3RHcmlk
UG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKGdyaWRMaW5lc1tncmlkTGluZUluZGV4XSk7
CisgICAgaWYgKHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA8IHJlc29sdmVkT3Bwb3NpdGVQb3Np
dGlvbikKKyAgICAgICAgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gcmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZl
ZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbik7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFJlc29sdmVkUG9z
aXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQb3Np
dGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE4YTNhZDNhZTNhNTMyZDFkZjQ1N2RjZDg3YTA2YzBmNjk4ZDM3
YjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3Jp
ZFJlc29sdmVkUG9zaXRpb24uaApAQCAtMCwwICsxLDE0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQor
ICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
ICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhF
IENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
KyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgR3JpZFJlc29sdmVkUG9zaXRpb25faAorI2RlZmluZSBH
cmlkUmVzb2x2ZWRQb3NpdGlvbl9oCisKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorCisj
aW5jbHVkZSAiR3JpZFBvc2l0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
R3JpZFNwYW47CitjbGFzcyBSZW5kZXJCb3g7CitjbGFzcyBSZW5kZXJTdHlsZTsKKworZW51bSBH
cmlkUG9zaXRpb25TaWRlIHsKKyAgICBDb2x1bW5TdGFydFNpZGUsCisgICAgQ29sdW1uRW5kU2lk
ZSwKKyAgICBSb3dTdGFydFNpZGUsCisgICAgUm93RW5kU2lkZQorfTsKKworZW51bSBHcmlkVHJh
Y2tTaXppbmdEaXJlY3Rpb24geworICAgIEZvckNvbHVtbnMsCisgICAgRm9yUm93cworfTsKKwor
Ly8gVGhpcyBjbGFzcyByZXByZXNlbnRzIGFuIGluZGV4IGludG8gb25lIG9mIHRoZSBkaW1lbnNp
b25zIG9mIHRoZSBncmlkIGFycmF5LgorLy8gV3JhcHMgYSBzaXplX3QgaW50ZWdlciBqdXN0IGZv
ciB0aGUgcHVycG9zZSBvZiBrbm93aW5nIHdoYXQgd2UgbWFuaXB1bGF0ZSBpbiB0aGUgZ3JpZCBj
b2RlLgorY2xhc3MgR3JpZFJlc29sdmVkUG9zaXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBH
cmlkUmVzb2x2ZWRQb3NpdGlvbiBhZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRT
aWRlKHNpemVfdCByZXNvbHZlZFBvc2l0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHJlc29s
dmVkUG9zaXRpb24gPyBHcmlkUmVzb2x2ZWRQb3NpdGlvbihyZXNvbHZlZFBvc2l0aW9uIC0gMSkg
OiBHcmlkUmVzb2x2ZWRQb3NpdGlvbigwKTsKKyAgICB9CisKKyAgICBzdGF0aWMgR3JpZFJlc29s
dmVkUG9zaXRpb24gYWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShzaXplX3QgcmVzb2x2ZWRQb3Np
dGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQorICAgIHsKKyAgICAgICAgLy8gQW4gaXRlbSBm
aW5pc2hpbmcgb24gdGhlIE4tdGggbGluZSBiZWxvbmdzIHRvIHRoZSBOLTEtdGggY2VsbC4KKyAg
ICAgICAgaWYgKHNpZGUgPT0gQ29sdW1uRW5kU2lkZSB8fCBzaWRlID09IFJvd0VuZFNpZGUpCisg
ICAgICAgICAgICByZXR1cm4gYWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lk
ZShyZXNvbHZlZFBvc2l0aW9uKTsKKworICAgICAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRp
b24ocmVzb2x2ZWRQb3NpdGlvbik7CisgICAgfQorCisgICAgc3RhdGljIHNpemVfdCBleHBsaWNp
dEdyaWRDb2x1bW5Db3VudChjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlKTsK
KyAgICBzdGF0aWMgc2l6ZV90IGV4cGxpY2l0R3JpZFJvd0NvdW50KGNvbnN0IFJlbmRlclN0eWxl
JiBncmlkQ29udGFpbmVyU3R5bGUpOworCisgICAgc3RhdGljIEdyaWRTcGFuIHJlc29sdmVHcmlk
UG9zaXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbihjb25zdCBSZW5kZXJCb3gmLCBHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24sIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJik7CisgICAg
c3RhdGljIHZvaWQgYWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uKGNvbnN0IFJlbmRlclN0eWxl
JiwgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lkZSk7CisgICAgc3RhdGljIHZvaWQgYWRq
dXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYsIEdyaWRQb3NpdGlv
biYgaW5pdGlhbFBvc2l0aW9uLCBHcmlkUG9zaXRpb24mIGZpbmFsUG9zaXRpb24sIEdyaWRQb3Np
dGlvblNpZGUgaW5pdGlhbFBvc2l0aW9uU2lkZSwgR3JpZFBvc2l0aW9uU2lkZSBmaW5hbFBvc2l0
aW9uU2lkZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcmVzb2x2ZUdy
aWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJCb3gm
LCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pOworICAgIHN0YXRpYyBHcmlkUmVzb2x2ZWRQb3Np
dGlvbiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0
eWxlJiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lkZSk7CisgICAgc3RhdGlj
IEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29uc3Qg
UmVuZGVyU3R5bGUmLCBjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKTsKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNvbHZlR3JpZFBvc2l0aW9uQWdh
aW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBHcmlkUmVzb2x2
ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24m
LCBHcmlkUG9zaXRpb25TaWRlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFu
PiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29u
c3QgUmVuZGVyU3R5bGUmLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBv
c2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKTsKKyAg
ICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNvbHZlUm93U3RhcnRDb2x1bW5T
dGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IEdy
aWRSZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQ
b3NpdGlvbiYsIGNvbnN0IFZlY3RvcjxzaXplX3Q+Jik7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxHcmlkU3Bhbj4gcmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5hbWVkR3JpZExpbmVQb3NpdGlv
bkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByZXNv
bHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYsIGNvbnN0IFZlY3Rvcjxz
aXplX3Q+Jik7CisKKyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlvbihzaXplX3QgcG9zaXRpb24pCisg
ICAgICAgIDogbV9pbnRlZ2VyUG9zaXRpb24ocG9zaXRpb24pCisgICAgeworICAgIH0KKworICAg
IEdyaWRSZXNvbHZlZFBvc2l0aW9uKGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQ
b3NpdGlvblNpZGUgc2lkZSkKKyAgICB7CisgICAgICAgIEFTU0VSVChwb3NpdGlvbi5pbnRlZ2Vy
UG9zaXRpb24oKSk7CisgICAgICAgIHNpemVfdCBpbnRlZ2VyUG9zaXRpb24gPSBwb3NpdGlvbi5p
bnRlZ2VyUG9zaXRpb24oKSAtIDE7CisKKyAgICAgICAgbV9pbnRlZ2VyUG9zaXRpb24gPSBhZGp1
c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGludGVnZXJQb3NpdGlvbiwgc2lkZSkubV9pbnRlZ2VyUG9z
aXRpb247CisgICAgfQorCisgICAgR3JpZFJlc29sdmVkUG9zaXRpb24mIG9wZXJhdG9yKysoKQor
ICAgIHsKKyAgICAgICAgbV9pbnRlZ2VyUG9zaXRpb24rKzsKKyAgICAgICAgcmV0dXJuICp0aGlz
OworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlv
biYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pbnRlZ2VyUG9zaXRpb24g
PT0gb3RoZXIubV9pbnRlZ2VyUG9zaXRpb247CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcjwo
Y29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1faW50ZWdlclBvc2l0aW9uIDwgb3RoZXIubV9pbnRlZ2VyUG9zaXRpb247CisgICAg
fQorCisgICAgYm9vbCBvcGVyYXRvcj4oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIG90aGVy
KSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW50ZWdlclBvc2l0aW9uID4gb3RoZXIu
bV9pbnRlZ2VyUG9zaXRpb247CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcjw9KGNvbnN0IEdy
aWRSZXNvbHZlZFBvc2l0aW9uJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2ludGVnZXJQb3NpdGlvbiA8PSBvdGhlci5tX2ludGVnZXJQb3NpdGlvbjsKKyAgICB9CisKKyAg
ICBib29sIG9wZXJhdG9yPj0oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIG90aGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW50ZWdlclBvc2l0aW9uID49IG90aGVyLm1faW50
ZWdlclBvc2l0aW9uOworICAgIH0KKworICAgIHNpemVfdCB0b0ludCgpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gbV9pbnRlZ2VyUG9zaXRpb247CisgICAgfQorCitwcml2YXRlOgorCisg
ICAgc3RhdGljIHNpemVfdCBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShjb25zdCBSZW5kZXJTdHls
ZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBHcmlkUG9zaXRpb25TaWRlKTsKKworICAgIHNpemVfdCBt
X2ludGVnZXJQb3NpdGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisKKyNlbmRpZiAvLyBHcmlkUmVzb2x2ZWRQb3Np
dGlvbl9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229973</attachid>
            <date>2014-04-23 03:47:12 -0700</date>
            <delta_ts>2014-04-24 14:51:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131732-20140423124649.patch</filename>
            <type>text/plain</type>
            <size>81886</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3NzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWE1ZmYxOTRmN2JmNTBh
YzdkMjlhMzg3NDQ0MzI4OGU2ODMwZjdjZi4uMjZjMmJkZjMyNGQwOWJmNDk4NDJiYjg2NjY3YzI0
NzEyOGMyYThmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDE0LTA0LTIzICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEludHJvZHVjZSBhbiBleHBsaWNpdCB0eXBlIGZvciByZXNvbHZlZCBncmlkIHBv
c2l0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMxNzMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2Ugd2VyZSB1c2luZyBzaW1wbGUgc2l6ZV90IGludGVnZXJzIHRvIHJlcHJlc2VudCByZXNvbHZl
ZCBncmlkCisgICAgICAgIHBvc2l0aW9ucyBpbiBvdXIgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVz
LiBUaGlzIGNoYW5nZSBhbGxvd3MgdXMgdG8KKyAgICAgICAgY2xhcmlmeSB0aGUgY29kZSwgYXZv
aWQgcG90ZW50aWFsIG9mZiBieSBvbmUgbWlzdGFrZXMsIGFuZCBtb3ZlIHRoZQorICAgICAgICBy
ZXNvbHZpbmcgY29kZSB0byBhIGNlbnRyYWwgcGxhY2UuCisKKyAgICAgICAgQSBuZXcgY2xhc3Mg
R3JpZFJlc29sdmVkUG9zaXRpb24gaGFzIGJlZW4gY3JlYXRlZCBhbmQgdGhlIHJlbGF0ZWQKKyAg
ICAgICAgbWV0aG9kcyBoYXZlIGJlZW4gbW92ZWQgdGhlcmUgZnJvbSBSZW5kZXJHcmlkLgorICAg
ICAgICBHcmlkU3BhbiBpcyBub3cgZGVmaW5lZCBieSB0d28gR3JpZFJlc29sdmVkUG9zaXRpb24s
IHNvIGFsbCB0aGUgY29kZQorICAgICAgICB1c2luZyBpdCBoYXMgYmVlbiBtb2RpZmllZCB0byBh
ZGFwdCBpdCB0byBHcmlkUmVzb2x2ZWRQb3NpdGlvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMg
YXMgaXQgaXMgYWxyZWFkeSBjb3ZlcmVkIGJ5IGN1cnJlbnQgdGVzdHMKKyAgICAgICAgKGZhc3Qv
Y3NzLWdyaWQtbGF5b3V0LykuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5nRm9yUG9zaXRpb24pOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdy
aWRUZW1wbGF0ZUFyZWFzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjb21wdXRlVXNlZEJyZWFkdGhPZkdyaWRUcmFj
a3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZU5vcm1hbGl6ZWRGcmFj
dGlvbkJyZWFkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRl
bnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyR3JpZDo6aW5zZXJ0SXRlbUludG9HcmlkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6
cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9uR3JpZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNaW5vckF4
aXNEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z3JpZEFyZWFCcmVh
ZHRoRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6ZmluZENoaWxkTG9n
aWNhbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmxvZ2ljYWxDb250
ZW50SGVpZ2h0Rm9yQ2hpbGQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6bWluQ29udGVudEZvckNoaWxkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnNvcnRC
eUdyaWRUcmFja0dyb3d0aFBvdGVudGlhbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJHcmlkOjpkaXN0cmlidXRlU3BhY2VUb1RyYWNrcyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyR3JpZDo6cG9wdWxhdGVHcmlkUG9zaXRpb25zKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBhaW50Q2hpbGRyZW4pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVuZGVyTmFtZSk6IERlbGV0ZWQuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckdyaWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3Jp
ZENvb3JkaW5hdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRTcGFuOjpHcmlkU3Bhbik6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmlkU3Bhbjo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9u
OjpHcmlkUG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9u
OjpzZXRFeHBsaWNpdFBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRQ
b3NpdGlvbjo6c2V0QXV0b1Bvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudCk6CisgICAgICAg
IChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6ZXhwbGljaXRHcmlkUm93Q291bnQpOgor
ICAgICAgICAoV2ViQ29yZTo6aXNDb2x1bW5TaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRS
ZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdyaWRTaXplRm9yU2lkZSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1Bs
YWNlbWVudFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmdyaWRMaW5lRGVmaW5lZEJlZm9y
ZUdyaWRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OnNldE5hbWVkTGluZVBvc2l0aW9uSWZEZWZp
bmVkQmVmb3JlQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
YWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNv
bHZlZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHls
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZU5hbWVk
R3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2
ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBv
c2l0ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpy
ZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6Zmlyc3ROYW1lZEdyaWRMaW5lQmVmb3JlUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVSb3dTdGFydENvbHVtblN0
YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVSb3dFbmRDb2x1bW5FbmRO
YW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbik6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmg6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0Vu
ZENvbHVtbkVuZFNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246
OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29s
dmVkUG9zaXRpb246OkdyaWRSZXNvbHZlZFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
aWRSZXNvbHZlZFBvc2l0aW9uOjpvcGVyYXRvcisrKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRS
ZXNvbHZlZFBvc2l0aW9uOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNv
bHZlZFBvc2l0aW9uOjpvcGVyYXRvcjwpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVk
UG9zaXRpb246Om9wZXJhdG9yPik6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3Np
dGlvbjo6b3BlcmF0b3I8PSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6b3BlcmF0b3I+PSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
dG9JbnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246Om5leHQpOgor
CiAyMDE0LTA0LTIyICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAg
IEN1cnNvciBkb2Vzbid0IGNoYW5nZSBiYWNrIHRvIHBvaW50ZXIgd2hlbiBsZWF2aW5nIHRoZSBT
YWZhcmkgd2luZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDIwNjRlZTAyYTI4YjA2ZTAyNDBl
ZGZiY2Y3Yjg2ZjM0YzJhYzU0NjUuLjY3ZGYzOTMyZWMxNjg5ODQ1MmVhNGE0YmJkODg1NTA3YTEx
ZDg2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMzc5LDYgKzIzNzksNyBAQCBzZXQoV2Vi
Q29yZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcAogICAgIHJl
bmRlcmluZy9zdHlsZS9Db3VudGVyRGlyZWN0aXZlcy5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUv
RmlsbExheWVyLmNwcAorICAgIHJlbmRlcmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5j
cHAKICAgICByZW5kZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmNwcAogICAgIHJlbmRlcmluZy9z
dHlsZS9OaW5lUGllY2VJbWFnZS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmlu
ZGV4IGU3ZTVlZjMxZDliMDA5NDNhMDhmMDFkZjExZGNjN2UwNDc1MDFhYTMuLjg0ZGUyYTI0MjI1
MThkZWMyZTYxZjRhYmQ2NmY4OWNjOGM2ZDcxMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTE0NzcsNiArMTE0NzcsNyBAQAogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8
L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxH
cmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxy
ZW5kZXJpbmdcc3R5bGVcS2V5ZnJhbWVMaXN0LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVp
bGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1
ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBAIC0yMDE1Miw2ICsyMDE1Myw3IEBACiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZENvb3JkaW5hdGUuaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkTGVuZ3RoLmgiIC8+
CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFBvc2l0aW9u
LmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFJl
c29sdmVkUG9zaXRpb24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmlu
Z1xzdHlsZVxHcmlkVHJhY2tTaXplLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxy
ZW5kZXJpbmdcc3R5bGVcS2V5ZnJhbWVMaXN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcc3R5bGVcTmluZVBpZWNlSW1hZ2UuaCIgLz4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRl
eCBkMmZhYmFlMzdkNDg0MDVkN2MyNTQxZmE1MTMxMDlkODRlZmFmOGQwLi5lZWJmMmM5MWFiMWZm
OTA0ZDY4ZDA4OGNkYTBlZGIzNTExZDBmZmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0yNzc4LDYgKzI3
NzgsOSBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEZpbGxM
YXllci5jcHAiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc3R5bGU8L0ZpbHRlcj4KICAgICA8
L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxH
cmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAiPgorICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc3R5bGU8
L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJl
bmRlcmluZ1xzdHlsZVxLZXlmcmFtZUxpc3QuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5n
XHN0eWxlPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC05NzA5LDYgKzk3MTIsOSBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRQb3NpdGlvbi5o
Ij4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHN0eWxlPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFJlc29s
dmVkUG9zaXRpb24uaCI+CisgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzdHlsZTwvRmlsdGVyPgor
ICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0
eWxlXEdyaWRUcmFja1NpemUuaCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzdHlsZTwvRmls
dGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYzNjU4ZmVkY2UzNDhlYzg1ZWEyOGUzY2M0YWU2
MzhkYTgyMjk0ZDcuLjJjMTJhOWE4NTdkYmRkODJmN2Q2ZGQ1NDgxNzQ3MjY0ZDA0ZDU3MGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTU2NjUsNiArNTY2NSw4IEBACiAJCUNERjJCMDE5MTgyMDU0MDcwMEYyQjQyNCAvKiBNb2Nr
VHJhY2tzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
REYyQjAwRjE4MjA1NDA2MDBGMkI0MjQgLyogTW9ja1RyYWNrcy5oICovOyB9OwogCQlDREY2NUND
ODE0NUIxRTc1MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI3RjZFNDE0NTc2Nzg3MDA3ODIwN0QgLyog
TWVkaWFDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQ0RGNjVDQ0ExNDVCNDQ4ODAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlcklu
dGVyZmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RGNjVDQzkxNDVCNDNBNzAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERjc0ODNF
MThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDgzQzE4RkVCQ0VDMDAwNkVD
QzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwICovOyB9OworCQlDREY3NDgzRjE4RkVCQ0VD
MDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0ODNEMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlk
UmVzb2x2ZWRQb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUNERkMzNjA1MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlz
dGVuZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0RGQzM2MDMxOENBNjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAgKi87
IH07CiAJCUNERkMzNjA2MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERkMzNjA0
MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREZDMzYwNzE4Q0E2OTZDMDAy
NkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGQzM2MDIxOENBNjE2MzAwMjZFNTZGIC8qIFJl
bW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSAqLzsgfTsKQEAgLTEzMDQwLDYgKzEzMDQyLDggQEAK
IAkJQ0RGMkIwMEYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tUcmFja3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja1RyYWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDREY2NUNDOTE0NUI0M0E3MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJm
YWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ29udHJvbGxlcklu
dGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY2NUNDQzE0NUI2QUZF
MDBDNEM3QUEgLyogSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERjc0ODNDMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlk
UmVzb2x2ZWRQb3NpdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHA7IHBhdGggPSBzdHlsZS9HcmlkUmVzb2x2ZWRQb3Np
dGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERjc0ODNEMThGRUJDRUMw
MDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oOyBwYXRoID0gc3R5bGUvR3JpZFJlc29s
dmVkUG9zaXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGQzM2MDExOENB
NjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaDsgcGF0aCA9IGlv
cy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQ0RGQzM2MDIxOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFJlbW90ZUNvbW1hbmRM
aXN0ZW5lcklPUy5tbTsgcGF0aCA9IGlvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERkMzNjAzMThDQTYxQzIwMDI2RTU2RiAvKiBS
ZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIwNjkxLDYgKzIwNjk1LDggQEAKIAkJCQlDRDNFMjUxQjE4MDQ2QjA2MDBFMjdGNTYg
LyogR3JpZENvb3JkaW5hdGUuaCAqLywKIAkJCQlDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyog
R3JpZExlbmd0aC5oICovLAogCQkJCUExMjcwNUMyMTY1NkJENjUwMEMyRTI3QyAvKiBHcmlkUG9z
aXRpb24uaCAqLywKKwkJCQlDREY3NDgzQzE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVk
UG9zaXRpb24uY3BwICovLAorCQkJCUNERjc0ODNEMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVz
b2x2ZWRQb3NpdGlvbi5oICovLAogCQkJCUExMkExMDRFMTY2NDQ0REMwMDhGQTMxMSAvKiBHcmlk
VHJhY2tTaXplLmggKi8sCiAJCQkJQkM1RUJBMEUwRTgyM0U0NzAwQjI1OTY1IC8qIEtleWZyYW1l
TGlzdC5jcHAgKi8sCiAJCQkJQkM1RUJBMEYwRTgyM0U0NzAwQjI1OTY1IC8qIEtleWZyYW1lTGlz
dC5oICovLApAQCAtMjQ0MzMsNiArMjQ0MzksNyBAQAogCQkJCUE4MEU3RTlGMEExQTgzRTMwMDdG
QjhDNSAvKiBKU0hUTUxCdXR0b25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzhFNjY2
MjA5RjA5Qjg3MDA4QTQ4RUMgLyogSlNIVE1MQ2FudmFzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNDQkFENDEwQzE4QzE0MjAwQ0U4OTBGIC8qIEpTSFRNTENvbGxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCUNERjc0ODNGMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQ
b3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjVDMDQxRTcwRkZDQTk2RDAwODM5RDRBIC8q
IEpTSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDM1OUQ4QkYxMjlD
QTU1QzAwMDZFNUQyIC8qIEpTSFRNTERldGFpbHNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3NjgwOEI1MDE1OURBREZBMDAyQjUyMzMgLyogSlNIVE1MRGlhbG9nRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNzE2Niw2ICsyNzE3Myw3IEBACiAJCQkJQTQyMjZFOTYxMTYzRDczQTAw
OEI4Mzk3IC8qIERPTUhUTUxQcm9ncmVzc0VsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4
NTE4M0I0QjBBQTY5MjYxMDBGMTlGQTMgLyogRE9NSFRNTFF1b3RlRWxlbWVudC5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTg1REY4MTlDMEFBNzdFNEIwMDQ4NkFENyAvKiBET01IVE1MU2NyaXB0RWxl
bWVudC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNERjc0ODNFMThGRUJDRUMwMDA2RUNDMCAvKiBH
cmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFGMTBBQTYz
Qjg3MDBGRjMxODQgLyogRE9NSFRNTFNlbGVjdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk4NTlBOUM1MDBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVudC5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTg1REY4MjFFMEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVD
YXB0aW9uRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwCmluZGV4IGIzNTM4MjI5MGYzNDBlYWQ2OTE2
MzNiNDU3NTljYzI2OWM1N2RmOTMuLjVhZDcxZmJkZDM2Y2Y4ZGMwMDM0MjAzOGQxMzdjYWFmZTZh
ZWEzZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVh
c1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNW
YWx1ZS5jcHAKQEAgLTU1LDEzICs1NSwxMyBAQCBzdGF0aWMgU3RyaW5nIHN0cmluZ0ZvclBvc2l0
aW9uKGNvbnN0IE5hbWVkR3JpZEFyZWFNYXAmIGdyaWRBcmVhTWFwLCBzaXplX3Qgcm93LAogCiAg
ICAgZm9yIChjb25zdCBhdXRvJiBpdCA6IGdyaWRBcmVhTWFwKSB7CiAgICAgICAgIGNvbnN0IEdy
aWRDb29yZGluYXRlJiBjb29yZGluYXRlID0gaXQudmFsdWU7Ci0gICAgICAgIGlmIChyb3cgPj0g
Y29vcmRpbmF0ZS5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4ICYmIHJvdyA8PSBjb29yZGluYXRl
LnJvd3MuZmluYWxQb3NpdGlvbkluZGV4KQorICAgICAgICBpZiAocm93ID49IGNvb3JkaW5hdGUu
cm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpICYmIHJvdyA8PSBjb29yZGluYXRl
LnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0aW9uLnRvSW50KCkpCiAgICAgICAgICAgICBjYW5kaWRh
dGVzLmFwcGVuZChpdC5rZXkpOwogICAgIH0KIAogICAgIGZvciAoY29uc3QgYXV0byYgaXQgOiBn
cmlkQXJlYU1hcCkgewogICAgICAgICBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0ZSA9
IGl0LnZhbHVlOwotICAgICAgICBpZiAoY29sdW1uID49IGNvb3JkaW5hdGUuY29sdW1ucy5pbml0
aWFsUG9zaXRpb25JbmRleCAmJiBjb2x1bW4gPD0gY29vcmRpbmF0ZS5jb2x1bW5zLmZpbmFsUG9z
aXRpb25JbmRleCAmJiBjYW5kaWRhdGVzLmNvbnRhaW5zKGl0LmtleSkpCisgICAgICAgIGlmIChj
b2x1bW4gPj0gY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50
KCkgJiYgY29sdW1uIDw9IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEZpbmFsUG9zaXRpb24u
dG9JbnQoKSAmJiBjYW5kaWRhdGVzLmNvbnRhaW5zKGl0LmtleSkpCiAgICAgICAgICAgICByZXR1
cm4gaXQua2V5OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBlMjA0OTNi
MjNmMTAwOGNmYjg0YWZmOWI1NWVkMzMwZWYzYTRkOGJkLi5kMDFhNjg1ZmU1YTZjODQxMzEzMzcz
ZjhlZWNlMjExYTQxNjE4ZmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNTE5Nywx
OCArNTE5NywxOCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlR3JpZFRl
bXBsYXRlQXJlYXMoKQogCiAgICAgICAgICAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBjaGVja3Mg
dGVzdCB0aGF0IHRoZSBncmlkIGFyZWEgaXMgYSBzaW5nbGUgZmlsbGVkLWluIHJlY3RhbmdsZS4K
ICAgICAgICAgICAgICAgICAvLyAxLiBUaGUgbmV3IHJvdyBpcyBhZGphY2VudCB0byB0aGUgcHJl
dmlvdXNseSBwYXJzZWQgcm93LgotICAgICAgICAgICAgICAgIGlmIChyb3dDb3VudCAhPSBncmlk
Q29vcmRpbmF0ZS5yb3dzLmZpbmFsUG9zaXRpb25JbmRleCArIDEpCisgICAgICAgICAgICAgICAg
aWYgKHJvd0NvdW50ICE9IGdyaWRDb29yZGluYXRlLnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0aW9u
Lm5leHQoKS50b0ludCgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAg
ICAgICAgICAgIC8vIDIuIFRoZSBuZXcgYXJlYSBzdGFydHMgYXQgdGhlIHNhbWUgcG9zaXRpb24g
YXMgdGhlIHByZXZpb3VzbHkgcGFyc2VkIGFyZWEuCi0gICAgICAgICAgICAgICAgaWYgKGN1cnJl
bnRDb2x1bW4gIT0gZ3JpZENvb3JkaW5hdGUuY29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleCkK
KyAgICAgICAgICAgICAgICBpZiAoY3VycmVudENvbHVtbiAhPSBncmlkQ29vcmRpbmF0ZS5jb2x1
bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCkpCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiAwOwogCiAgICAgICAgICAgICAgICAgLy8gMy4gVGhlIG5ldyBhcmVhIGVuZHMgYXQg
dGhlIHNhbWUgcG9zaXRpb24gYXMgdGhlIHByZXZpb3VzbHkgcGFyc2VkIGFyZWEuCi0gICAgICAg
ICAgICAgICAgaWYgKGxvb2tBaGVhZENvbHVtbiAhPSBncmlkQ29vcmRpbmF0ZS5jb2x1bW5zLmZp
bmFsUG9zaXRpb25JbmRleCkKKyAgICAgICAgICAgICAgICBpZiAobG9va0FoZWFkQ29sdW1uICE9
IGdyaWRDb29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRGaW5hbFBvc2l0aW9uLnRvSW50KCkpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwogCi0gICAgICAgICAgICAgICAgKytncmlkQ29v
cmRpbmF0ZS5yb3dzLmZpbmFsUG9zaXRpb25JbmRleDsKKyAgICAgICAgICAgICAgICArK2dyaWRD
b29yZGluYXRlLnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0aW9uOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgY3VycmVudENvbHVtbiA9IGxvb2tBaGVhZENvbHVtbjsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IGFkMTkxMDM5ZGJjYzRkZGJk
NDhlNWQzNWNlZDBkNTlkODdkMTM0MTkuLmMwYWU2MTU4ZTcwNTM3NDM0ZTIxNTRiMzU3MDNhMmEw
NTRkYWJmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTMw
LDYgKzMwLDcgQEAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogCiAjaW5jbHVkZSAiR3Jp
ZENvb3JkaW5hdGUuaCIKKyNpbmNsdWRlICJHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oIgogI2luY2x1
ZGUgIkxheW91dFJlcGFpbnRlci5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5j
bHVkZSAiUmVuZGVyTGF5ZXIuaCIKQEAgLTM0Miw3ICszNDMsNyBAQCB2b2lkIFJlbmRlckdyaWQ6
OmNvbXB1dGVVc2VkQnJlYWR0aE9mR3JpZFRyYWNrcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24g
ZGlyZWN0aQogICAgICAgICAgICAgICAgIGNvbnN0IEdyaWRTcGFuIHNwYW4gPSAoZGlyZWN0aW9u
ID09IEZvckNvbHVtbnMpID8gY29vcmRpbmF0ZS5jb2x1bW5zIDogY29vcmRpbmF0ZS5yb3dzOwog
CiAgICAgICAgICAgICAgICAgLy8gRG8gbm90IGluY2x1ZGUgYWxyZWFkeSBwcm9jZXNzZWQgaXRl
bXMuCi0gICAgICAgICAgICAgICAgaWYgKGkgPiAwICYmIHNwYW4uaW5pdGlhbFBvc2l0aW9uSW5k
ZXggPD0gZmxleGlibGVTaXplZFRyYWNrc0luZGV4W2kgLSAxXSkKKyAgICAgICAgICAgICAgICBp
ZiAoaSA+IDAgJiYgc3Bhbi5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpIDw9IGZsZXhp
YmxlU2l6ZWRUcmFja3NJbmRleFtpIC0gMV0pCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgICAgICAgICAgICAgZG91YmxlIGl0ZW1Ob3JtYWxpemVkRmxleEJyZWFkdGggPSBj
b21wdXRlTm9ybWFsaXplZEZyYWN0aW9uQnJlYWR0aCh0cmFja3MsIHNwYW4sIGRpcmVjdGlvbiwg
bWF4Q29udGVudEZvckNoaWxkKGdyaWRJdGVtLCBkaXJlY3Rpb24sIHNpemluZ0RhdGEuY29sdW1u
VHJhY2tzKSk7CkBAIC00MDEsMTIgKzQwMiwxMiBAQCBkb3VibGUgUmVuZGVyR3JpZDo6Y29tcHV0
ZU5vcm1hbGl6ZWRGcmFjdGlvbkJyZWFkdGgoVmVjdG9yPEdyaWRUcmFjaz4mIHRyYWNrcywgYwog
ICAgIC8vIHxhdmFpbGFibGVMb2dpY2FsU3BhY2V8IGFscmVhZHkgYWNjb3VudHMgZm9yIHRoZSB1
c2VkIGJyZWFkdGhzIHNvIG5vIG5lZWQgdG8gcmVtb3ZlIGl0IGhlcmUuCiAKICAgICBWZWN0b3I8
R3JpZFRyYWNrRm9yTm9ybWFsaXphdGlvbj4gdHJhY2tzRm9yTm9ybWFsaXphdGlvbjsKLSAgICBm
b3IgKHNpemVfdCBpID0gdHJhY2tzU3Bhbi5pbml0aWFsUG9zaXRpb25JbmRleDsgaSA8PSB0cmFj
a3NTcGFuLmZpbmFsUG9zaXRpb25JbmRleDsgKytpKSB7Ci0gICAgICAgIGNvbnN0IEdyaWRUcmFj
a1NpemUmIHRyYWNrU2l6ZSA9IGdyaWRUcmFja1NpemUoZGlyZWN0aW9uLCBpKTsKKyAgICBmb3Ig
KEdyaWRSZXNvbHZlZFBvc2l0aW9uIHBvc2l0aW9uID0gdHJhY2tzU3Bhbi5yZXNvbHZlZEluaXRp
YWxQb3NpdGlvbjsgcG9zaXRpb24gPD0gdHJhY2tzU3Bhbi5yZXNvbHZlZEZpbmFsUG9zaXRpb247
ICsrcG9zaXRpb24pIHsKKyAgICAgICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXplID0g
Z3JpZFRyYWNrU2l6ZShkaXJlY3Rpb24sIHBvc2l0aW9uLnRvSW50KCkpOwogICAgICAgICBpZiAo
IXRyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5pc0ZsZXgoKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCi0gICAgICAgIHRyYWNrc0Zvck5vcm1hbGl6YXRpb24uYXBwZW5kKEdyaWRUcmFja0Zv
ck5vcm1hbGl6YXRpb24odHJhY2tzW2ldLCB0cmFja1NpemUubWF4VHJhY2tCcmVhZHRoKCkuZmxl
eCgpKSk7CisgICAgICAgIHRyYWNrc0Zvck5vcm1hbGl6YXRpb24uYXBwZW5kKEdyaWRUcmFja0Zv
ck5vcm1hbGl6YXRpb24odHJhY2tzW3Bvc2l0aW9uLnRvSW50KCldLCB0cmFja1NpemUubWF4VHJh
Y2tCcmVhZHRoKCkuZmxleCgpKSk7CiAgICAgfQogCiAgICAgLy8gVGhlIGZ1bmN0aW9uIGlzIG5v
dCBjYWxsZWQgaWYgd2UgZG9uJ3QgaGF2ZSA8ZmxleD4gZ3JpZCB0cmFja3MKQEAgLTQ2MiwyNiAr
NDYzLDYgQEAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgUmVuZGVyR3JpZDo6Z3JpZFRyYWNrU2l6ZShH
cmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW8KICAgICByZXR1cm4gdHJhY2tTaXplOwog
fQogCi1zaXplX3QgUmVuZGVyR3JpZDo6ZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoKSBjb25zdAot
ewotICAgIHJldHVybiBzdHlsZSgpLmdyaWRDb2x1bW5zKCkuc2l6ZSgpOwotfQotCi1zaXplX3Qg
UmVuZGVyR3JpZDo6ZXhwbGljaXRHcmlkUm93Q291bnQoKSBjb25zdAotewotICAgIHJldHVybiBz
dHlsZSgpLmdyaWRSb3dzKCkuc2l6ZSgpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNDb2x1
bW5TaWRlKEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKLXsKLSAgICByZXR1cm4gc2lkZSA9PSBDb2x1
bW5TdGFydFNpZGUgfHwgc2lkZSA9PSBDb2x1bW5FbmRTaWRlOwotfQotCi1zaXplX3QgUmVuZGVy
R3JpZDo6ZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoR3JpZFBvc2l0aW9uU2lkZSBzaWRlKSBjb25z
dAotewotICAgIHJldHVybiBpc0NvbHVtblNpZGUoc2lkZSkgPyBleHBsaWNpdEdyaWRDb2x1bW5D
b3VudCgpIDogZXhwbGljaXRHcmlkUm93Q291bnQoKTsKLX0KLQogTGF5b3V0VW5pdCBSZW5kZXJH
cmlkOjpsb2dpY2FsQ29udGVudEhlaWdodEZvckNoaWxkKFJlbmRlckJveCogY2hpbGQsIFZlY3Rv
cjxHcmlkVHJhY2s+JiBjb2x1bW5UcmFja3MpCiB7CiAgICAgTGF5b3V0VW5pdCBvbGRPdmVycmlk
ZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGggPSBjaGlsZC0+aGFzT3ZlcnJpZGVD
b250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGgoKSA/IGNoaWxkLT5vdmVycmlkZUNvbnRhaW5pbmdC
bG9ja0NvbnRlbnRMb2dpY2FsV2lkdGgoKSA6IExheW91dFVuaXQoKTsKQEAgLTU1MSwxNiArNTMy
LDE2IEBAIHZvaWQgUmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVu
Y3Rpb25zKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvCiB2b2lkIFJlbmRlckdyaWQ6OnJlc29sdmVD
b250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9uc0Zvckl0ZW1zKEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbiBkaXJlY3Rpb24sIEdyaWRTaXppbmdEYXRhJiBzaXppbmdEYXRhLCBSZW5kZXJCb3gq
IGdyaWRJdGVtLCBGaWx0ZXJGdW5jdGlvbiBmaWx0ZXJGdW5jdGlvbiwgU2l6aW5nRnVuY3Rpb24g
c2l6aW5nRnVuY3Rpb24sIEFjY3VtdWxhdG9yR2V0dGVyIHRyYWNrR2V0dGVyLCBBY2N1bXVsYXRv
ckdyb3dGdW5jdGlvbiB0cmFja0dyb3d0aEZ1bmN0aW9uKQogewogICAgIGNvbnN0IEdyaWRDb29y
ZGluYXRlIGNvb3JkaW5hdGUgPSBjYWNoZWRHcmlkQ29vcmRpbmF0ZShncmlkSXRlbSk7Ci0gICAg
Y29uc3Qgc2l6ZV90IGluaXRpYWxUcmFja0luZGV4ID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5z
KSA/IGNvb3JkaW5hdGUuY29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleCA6IGNvb3JkaW5hdGUu
cm93cy5pbml0aWFsUG9zaXRpb25JbmRleDsKLSAgICBjb25zdCBzaXplX3QgZmluYWxUcmFja0lu
ZGV4ID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1ucy5maW5h
bFBvc2l0aW9uSW5kZXggOiBjb29yZGluYXRlLnJvd3MuZmluYWxQb3NpdGlvbkluZGV4OworICAg
IGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uIGluaXRpYWxUcmFja1Bvc2l0aW9uID0gKGRpcmVj
dGlvbiA9PSBGb3JDb2x1bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQ
b3NpdGlvbiA6IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsKKyAgICBj
b25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBmaW5hbFRyYWNrUG9zaXRpb24gPSAoZGlyZWN0aW9u
ID09IEZvckNvbHVtbnMpID8gY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlv
biA6IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRpb247CiAKICAgICBzaXppbmdE
YXRhLmZpbHRlcmVkVHJhY2tzLnNocmluaygwKTsKLSAgICBmb3IgKHNpemVfdCB0cmFja0luZGV4
ID0gaW5pdGlhbFRyYWNrSW5kZXg7IHRyYWNrSW5kZXggPD0gZmluYWxUcmFja0luZGV4OyArK3Ry
YWNrSW5kZXgpIHsKLSAgICAgICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXplID0gZ3Jp
ZFRyYWNrU2l6ZShkaXJlY3Rpb24sIHRyYWNrSW5kZXgpOworICAgIGZvciAoR3JpZFJlc29sdmVk
UG9zaXRpb24gdHJhY2tJbmRleCA9IGluaXRpYWxUcmFja1Bvc2l0aW9uOyB0cmFja0luZGV4IDw9
IGZpbmFsVHJhY2tQb3NpdGlvbjsgKyt0cmFja0luZGV4KSB7CisgICAgICAgIGNvbnN0IEdyaWRU
cmFja1NpemUmIHRyYWNrU2l6ZSA9IGdyaWRUcmFja1NpemUoZGlyZWN0aW9uLCB0cmFja0luZGV4
LnRvSW50KCkpOwogICAgICAgICBpZiAoISh0cmFja1NpemUuKmZpbHRlckZ1bmN0aW9uKSgpKQog
ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgR3JpZFRyYWNrJiB0cmFjayA9IChkaXJl
Y3Rpb24gPT0gRm9yQ29sdW1ucykgPyBzaXppbmdEYXRhLmNvbHVtblRyYWNrc1t0cmFja0luZGV4
XSA6IHNpemluZ0RhdGEucm93VHJhY2tzW3RyYWNrSW5kZXhdOworICAgICAgICBHcmlkVHJhY2sm
IHRyYWNrID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IHNpemluZ0RhdGEuY29sdW1uVHJh
Y2tzW3RyYWNrSW5kZXgudG9JbnQoKV0gOiBzaXppbmdEYXRhLnJvd1RyYWNrc1t0cmFja0luZGV4
LnRvSW50KCldOwogICAgICAgICBzaXppbmdEYXRhLmZpbHRlcmVkVHJhY2tzLmFwcGVuZCgmdHJh
Y2spOwogICAgIH0KIApAQCAtNTY4LDggKzU0OSw4IEBAIHZvaWQgUmVuZGVyR3JpZDo6cmVzb2x2
ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMoR3JpZFRyYWNrU2l6aW5n
CiAgICAgICAgIHJldHVybjsKIAogICAgIExheW91dFVuaXQgYWRkaXRpb25hbEJyZWFkdGhTcGFj
ZSA9ICh0aGlzLT4qc2l6aW5nRnVuY3Rpb24pKGdyaWRJdGVtLCBkaXJlY3Rpb24sIHNpemluZ0Rh
dGEuY29sdW1uVHJhY2tzKTsKLSAgICBmb3IgKHNpemVfdCB0cmFja0luZGV4Rm9yU3BhY2UgPSBp
bml0aWFsVHJhY2tJbmRleDsgdHJhY2tJbmRleEZvclNwYWNlIDw9IGZpbmFsVHJhY2tJbmRleDsg
Kyt0cmFja0luZGV4Rm9yU3BhY2UpIHsKLSAgICAgICAgR3JpZFRyYWNrJiB0cmFjayA9IChkaXJl
Y3Rpb24gPT0gRm9yQ29sdW1ucykgPyBzaXppbmdEYXRhLmNvbHVtblRyYWNrc1t0cmFja0luZGV4
Rm9yU3BhY2VdIDogc2l6aW5nRGF0YS5yb3dUcmFja3NbdHJhY2tJbmRleEZvclNwYWNlXTsKKyAg
ICBmb3IgKEdyaWRSZXNvbHZlZFBvc2l0aW9uIHRyYWNrUG9zaXRpb25Gb3JTcGFjZSA9IGluaXRp
YWxUcmFja1Bvc2l0aW9uOyB0cmFja1Bvc2l0aW9uRm9yU3BhY2UgPD0gZmluYWxUcmFja1Bvc2l0
aW9uOyArK3RyYWNrUG9zaXRpb25Gb3JTcGFjZSkgeworICAgICAgICBHcmlkVHJhY2smIHRyYWNr
ID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IHNpemluZ0RhdGEuY29sdW1uVHJhY2tzW3Ry
YWNrUG9zaXRpb25Gb3JTcGFjZS50b0ludCgpXSA6IHNpemluZ0RhdGEucm93VHJhY2tzW3RyYWNr
UG9zaXRpb25Gb3JTcGFjZS50b0ludCgpXTsKICAgICAgICAgYWRkaXRpb25hbEJyZWFkdGhTcGFj
ZSAtPSAodHJhY2suKnRyYWNrR2V0dGVyKSgpOwogICAgIH0KIApAQCAtNjQzLDE3ICs2MjQsMTcg
QEAgdm9pZCBSZW5kZXJHcmlkOjpncm93R3JpZChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGly
ZWN0aW9uKQogCiB2b2lkIFJlbmRlckdyaWQ6Omluc2VydEl0ZW1JbnRvR3JpZChSZW5kZXJCb3gq
IGNoaWxkLCBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0ZSkKIHsKLSAgICBmb3IgKHNp
emVfdCByb3cgPSBjb29yZGluYXRlLnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXg7IHJvdyA8PSBj
b29yZGluYXRlLnJvd3MuZmluYWxQb3NpdGlvbkluZGV4OyArK3JvdykgewotICAgICAgICBmb3Ig
KHNpemVfdCBjb2x1bW4gPSBjb29yZGluYXRlLmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXg7
IGNvbHVtbiA8PSBjb29yZGluYXRlLmNvbHVtbnMuZmluYWxQb3NpdGlvbkluZGV4OyArK2NvbHVt
bikKLSAgICAgICAgICAgIG1fZ3JpZFtyb3ddW2NvbHVtbl0uYXBwZW5kKGNoaWxkKTsKKyAgICBm
b3IgKEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJvdyA9IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZElu
aXRpYWxQb3NpdGlvbjsgcm93IDw9IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRp
b247ICsrcm93KSB7CisgICAgICAgIGZvciAoR3JpZFJlc29sdmVkUG9zaXRpb24gY29sdW1uID0g
Y29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOyBjb2x1bW4gPD0gY29v
cmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlvbjsgKytjb2x1bW4pCisgICAgICAg
ICAgICBtX2dyaWRbcm93LnRvSW50KCldW2NvbHVtbi50b0ludCgpXS5hcHBlbmQoY2hpbGQpOwog
ICAgIH0KICAgICBtX2dyaWRJdGVtQ29vcmRpbmF0ZS5zZXQoY2hpbGQsIGNvb3JkaW5hdGUpOwog
fQogCi12b2lkIFJlbmRlckdyaWQ6Omluc2VydEl0ZW1JbnRvR3JpZChSZW5kZXJCb3gqIGNoaWxk
LCBzaXplX3Qgcm93VHJhY2ssIHNpemVfdCBjb2x1bW5UcmFjaykKK3ZvaWQgUmVuZGVyR3JpZDo6
aW5zZXJ0SXRlbUludG9HcmlkKFJlbmRlckJveCogY2hpbGQsIGNvbnN0IEdyaWRSZXNvbHZlZFBv
c2l0aW9uJiByb3dUcmFjaywgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIGNvbHVtblRyYWNr
KQogewotICAgIGNvbnN0IEdyaWRTcGFuJiByb3dTcGFuID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNG
cm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKGNoaWxkLCBGb3JSb3dzLCByb3dUcmFjayk7Ci0gICAg
Y29uc3QgR3JpZFNwYW4mIGNvbHVtblNwYW4gPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRv
UGxhY2VtZW50UG9zaXRpb24oY2hpbGQsIEZvckNvbHVtbnMsIGNvbHVtblRyYWNrKTsKKyAgICBj
b25zdCBHcmlkU3BhbiYgcm93U3BhbiA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3Jp
ZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24oKmNoaWxkLCBGb3JSb3dzLCByb3dU
cmFjayk7CisgICAgY29uc3QgR3JpZFNwYW4mIGNvbHVtblNwYW4gPSBHcmlkUmVzb2x2ZWRQb3Np
dGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKCpjaGls
ZCwgRm9yQ29sdW1ucywgY29sdW1uVHJhY2spOwogICAgIGluc2VydEl0ZW1JbnRvR3JpZChjaGls
ZCwgR3JpZENvb3JkaW5hdGUocm93U3BhbiwgY29sdW1uU3BhbikpOwogfQogCkBAIC02NzAsOCAr
NjUxLDggQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkKICAgICBmb3IgKFJl
bmRlckJveCogY2hpbGQgPSBtX29yZGVySXRlcmF0b3IuZmlyc3QoKTsgY2hpbGQ7IGNoaWxkID0g
bV9vcmRlckl0ZXJhdG9yLm5leHQoKSkgewogICAgICAgICAvLyBGSVhNRTogV2UgbmV2ZXIgcmUt
cmVzb2x2ZSBwb3NpdGlvbnMgaWYgdGhlIGdyaWQgaXMgZ3Jvd24gZHVyaW5nIGF1dG8tcGxhY2Vt
ZW50IHdoaWNoIG1heSBsZWFkIGF1dG8gLyA8aW50ZWdlcj4KICAgICAgICAgLy8gcG9zaXRpb25z
IHRvIG5vdCBtYXRjaCB0aGUgYXV0aG9yJ3MgaW50ZW50LiBUaGUgc3BlY2lmaWNhdGlvbiBpcyB1
bmNsZWFyIG9uIHdoYXQgc2hvdWxkIGJlIGRvbmUgaW4gdGhpcyBjYXNlLgotICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJvd1Bvc2l0aW9ucyA9IHJlc29sdmVHcmlkUG9zaXRpb25z
RnJvbVN0eWxlKGNoaWxkLCBGb3JSb3dzKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRT
cGFuPiBjb2x1bW5Qb3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjaGls
ZCwgRm9yQ29sdW1ucyk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcm93UG9z
aXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0
eWxlKHN0eWxlKCksICpjaGlsZCwgRm9yUm93cyk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxH
cmlkU3Bhbj4gY29sdW1uUG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVH
cmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICpjaGlsZCwgRm9yQ29sdW1ucyk7CiAgICAg
ICAgIGlmICghcm93UG9zaXRpb25zIHx8ICFjb2x1bW5Qb3NpdGlvbnMpIHsKICAgICAgICAgICAg
IEdyaWRTcGFuKiBtYWpvckF4aXNQb3NpdGlvbnMgPSAoYXV0b1BsYWNlbWVudE1ham9yQXhpc0Rp
cmVjdGlvbigpID09IEZvckNvbHVtbnMpID8gY29sdW1uUG9zaXRpb25zLmdldCgpIDogcm93UG9z
aXRpb25zLmdldCgpOwogICAgICAgICAgICAgaWYgKCFtYWpvckF4aXNQb3NpdGlvbnMpCkBAIC03
MDEsOCArNjgyLDggQEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9y
ZGVySXRlcmF0b3IoKQogewogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZmluZCBhIHdheSB0byBz
aGFyZSBPcmRlclZhbHVlcydzIGluaXRpYWxpemF0aW9uIGNvZGUgd2l0aCBSZW5kZXJGbGV4aWJs
ZUJveC4KICAgICBPcmRlckl0ZXJhdG9yOjpPcmRlclZhbHVlcyBvcmRlclZhbHVlczsKLSAgICBz
aXplX3QgbWF4aW11bVJvd0luZGV4ID0gc3RkOjptYXg8c2l6ZV90PigxLCBleHBsaWNpdEdyaWRS
b3dDb3VudCgpKTsKLSAgICBzaXplX3QgbWF4aW11bUNvbHVtbkluZGV4ID0gc3RkOjptYXg8c2l6
ZV90PigxLCBleHBsaWNpdEdyaWRDb2x1bW5Db3VudCgpKTsKKyAgICBzaXplX3QgbWF4aW11bVJv
d0luZGV4ID0gc3RkOjptYXg8c2l6ZV90PigxLCBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6ZXhwbGlj
aXRHcmlkUm93Q291bnQoc3R5bGUoKSkpOworICAgIHNpemVfdCBtYXhpbXVtQ29sdW1uSW5kZXgg
PSBzdGQ6Om1heDxzaXplX3Q+KDEsIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdyaWRD
b2x1bW5Db3VudChzdHlsZSgpKSk7CiAKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBmaXJz
dENoaWxkQm94KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7CiAg
ICAgICAgIC8vIEF2b2lkIGdyb3dpbmcgdGhlIHZlY3RvciBmb3IgdGhlIGNvbW1vbi1jYXNlIGRl
ZmF1bHQgdmFsdWUgb2YgMC4gVGhpcyBvcHRpbWl6ZXMgdGhlIG1vc3QgY29tbW9uIGNhc2Ugd2hp
Y2ggaXMKQEAgLTcxMiwxNSArNjkzLDE1IEBAIHZvaWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBs
aWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKCkKICAgICAgICAgICAgIG9yZGVyVmFsdWVzLmFwcGVu
ZChvcmRlcik7CiAKICAgICAgICAgLy8gVGhpcyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgY2FjaGUg
KGNhY2hlZEdyaWRDb29yZGluYXRlKCkpIGFzIGl0IGlzIHVzZWQgdG8gYnVpbGQgaXQuCi0gICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcm93UG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQ
b3NpdGlvbnNGcm9tU3R5bGUoY2hpbGQsIEZvclJvd3MpOwotICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8R3JpZFNwYW4+IGNvbHVtblBvc2l0aW9ucyA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0
eWxlKGNoaWxkLCBGb3JDb2x1bW5zKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFu
PiByb3dQb3NpdGlvbnMgPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlv
bnNGcm9tU3R5bGUoc3R5bGUoKSwgKmNoaWxkLCBGb3JSb3dzKTsKKyAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPEdyaWRTcGFuPiBjb2x1bW5Qb3NpdGlvbnMgPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgKmNoaWxkLCBGb3JDb2x1bW5z
KTsKIAogICAgICAgICAvLyB8cG9zaXRpb25zfCBpcyAwIGlmIHdlIG5lZWQgdG8gcnVuIHRoZSBh
dXRvLXBsYWNlbWVudCBhbGdvcml0aG0uIE91ciBlc3RpbWF0aW9uIGlnbm9yZXMKICAgICAgICAg
Ly8gdGhpcyBjYXNlIGFzIHRoZSBhdXRvLXBsYWNlbWVudCBhbGdvcml0aG0gd2lsbCBncm93IHRo
ZSBncmlkIGFzIG5lZWRlZC4KICAgICAgICAgaWYgKHJvd1Bvc2l0aW9ucykKLSAgICAgICAgICAg
IG1heGltdW1Sb3dJbmRleCA9IHN0ZDo6bWF4KG1heGltdW1Sb3dJbmRleCwgcm93UG9zaXRpb25z
LT5maW5hbFBvc2l0aW9uSW5kZXggKyAxKTsKKyAgICAgICAgICAgIG1heGltdW1Sb3dJbmRleCA9
IHN0ZDo6bWF4KG1heGltdW1Sb3dJbmRleCwgcm93UG9zaXRpb25zLT5yZXNvbHZlZEZpbmFsUG9z
aXRpb24ubmV4dCgpLnRvSW50KCkpOwogICAgICAgICBpZiAoY29sdW1uUG9zaXRpb25zKQotICAg
ICAgICAgICAgbWF4aW11bUNvbHVtbkluZGV4ID0gc3RkOjptYXgobWF4aW11bUNvbHVtbkluZGV4
LCBjb2x1bW5Qb3NpdGlvbnMtPmZpbmFsUG9zaXRpb25JbmRleCArIDEpOworICAgICAgICAgICAg
bWF4aW11bUNvbHVtbkluZGV4ID0gc3RkOjptYXgobWF4aW11bUNvbHVtbkluZGV4LCBjb2x1bW5Q
b3NpdGlvbnMtPnJlc29sdmVkRmluYWxQb3NpdGlvbi5uZXh0KCkudG9JbnQoKSk7CiAgICAgfQog
CiAgICAgbV9ncmlkLmdyb3cobWF4aW11bVJvd0luZGV4KTsKQEAgLTczMywxNyArNzE0LDE3IEBA
IHZvaWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKCkK
IHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VTcGVjaWZpZWRNYWpvckF4aXNJdGVtc09uR3JpZChjb25z
dCBWZWN0b3I8UmVuZGVyQm94Kj4mIGF1dG9HcmlkSXRlbXMpCiB7CiAgICAgZm9yIChhdXRvJiBh
dXRvR3JpZEl0ZW0gOiBhdXRvR3JpZEl0ZW1zKSB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxH
cmlkU3Bhbj4gbWFqb3JBeGlzUG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5
bGUoYXV0b0dyaWRJdGVtLCBhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkpOwotICAg
ICAgICBHcmlkSXRlcmF0b3IgaXRlcmF0b3IobV9ncmlkLCBhdXRvUGxhY2VtZW50TWFqb3JBeGlz
RGlyZWN0aW9uKCksIG1ham9yQXhpc1Bvc2l0aW9ucy0+aW5pdGlhbFBvc2l0aW9uSW5kZXgpOwor
ICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IG1ham9yQXhpc1Bvc2l0aW9ucyA9IEdy
aWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgp
LCAqYXV0b0dyaWRJdGVtLCBhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkpOworICAg
ICAgICBHcmlkSXRlcmF0b3IgaXRlcmF0b3IobV9ncmlkLCBhdXRvUGxhY2VtZW50TWFqb3JBeGlz
RGlyZWN0aW9uKCksIG1ham9yQXhpc1Bvc2l0aW9ucy0+cmVzb2x2ZWRJbml0aWFsUG9zaXRpb24u
dG9JbnQoKSk7CiAgICAgICAgIGlmIChzdGQ6OnVuaXF1ZV9wdHI8R3JpZENvb3JkaW5hdGU+IGVt
cHR5R3JpZEFyZWEgPSBpdGVyYXRvci5uZXh0RW1wdHlHcmlkQXJlYSgpKSB7Ci0gICAgICAgICAg
ICBpbnNlcnRJdGVtSW50b0dyaWQoYXV0b0dyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dzLmlu
aXRpYWxQb3NpdGlvbkluZGV4LCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5zLmluaXRpYWxQb3NpdGlv
bkluZGV4KTsKKyAgICAgICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChhdXRvR3JpZEl0ZW0sIGVt
cHR5R3JpZEFyZWEtPnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIGVtcHR5R3JpZEFyZWEt
PmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24pOwogICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIH0KIAogICAgICAgICBncm93R3JpZChhdXRvUGxhY2VtZW50TWlub3JBeGlzRGly
ZWN0aW9uKCkpOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZENvb3JkaW5hdGU+IGVtcHR5
R3JpZEFyZWEgPSBpdGVyYXRvci5uZXh0RW1wdHlHcmlkQXJlYSgpOwogICAgICAgICBBU1NFUlQo
ZW1wdHlHcmlkQXJlYSk7Ci0gICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChhdXRvR3JpZEl0ZW0s
IGVtcHR5R3JpZEFyZWEtPnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXgsIGVtcHR5R3JpZEFyZWEt
PmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXgpOworICAgICAgICBpbnNlcnRJdGVtSW50b0dy
aWQoYXV0b0dyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0
aW9uLCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uKTsKICAg
ICB9CiB9CiAKQEAgLTc1NSwxNCArNzM2LDE0IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VBdXRv
TWFqb3JBeGlzSXRlbXNPbkdyaWQoY29uc3QgVmVjdG9yPFJlbmRlckJveCo+JiBhdXRvR3JpCiAK
IHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9uR3JpZChSZW5kZXJCb3gq
IGdyaWRJdGVtKQogewotICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gbWlub3JBeGlzUG9z
aXRpb25zID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoZ3JpZEl0ZW0sIGF1dG9QbGFj
ZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSk7Ci0gICAgQVNTRVJUKCFyZXNvbHZlR3JpZFBvc2l0
aW9uc0Zyb21TdHlsZShncmlkSXRlbSwgYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigp
KSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBtaW5vckF4aXNQb3NpdGlvbnMgPSBH
cmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUo
KSwgKmdyaWRJdGVtLCBhdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uKCkpOworICAgIEFT
U0VSVCghR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxl
KHN0eWxlKCksICpncmlkSXRlbSwgYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpKSk7
CiAgICAgc2l6ZV90IG1pbm9yQXhpc0luZGV4ID0gMDsKICAgICBpZiAobWlub3JBeGlzUG9zaXRp
b25zKSB7Ci0gICAgICAgIG1pbm9yQXhpc0luZGV4ID0gbWlub3JBeGlzUG9zaXRpb25zLT5pbml0
aWFsUG9zaXRpb25JbmRleDsKKyAgICAgICAgbWlub3JBeGlzSW5kZXggPSBtaW5vckF4aXNQb3Np
dGlvbnMtPnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCk7CiAgICAgICAgIEdyaWRJdGVy
YXRvciBpdGVyYXRvcihtX2dyaWQsIGF1dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSwg
bWlub3JBeGlzSW5kZXgpOwogICAgICAgICBpZiAoc3RkOjp1bmlxdWVfcHRyPEdyaWRDb29yZGlu
YXRlPiBlbXB0eUdyaWRBcmVhID0gaXRlcmF0b3IubmV4dEVtcHR5R3JpZEFyZWEoKSkgewotICAg
ICAgICAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGdyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dz
LmluaXRpYWxQb3NpdGlvbkluZGV4LCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5zLmluaXRpYWxQb3Np
dGlvbkluZGV4KTsKKyAgICAgICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChncmlkSXRlbSwgZW1w
dHlHcmlkQXJlYS0+cm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbiwgZW1wdHlHcmlkQXJlYS0+
Y29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbik7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICB9IGVsc2UgewpAQCAtNzcwLDcgKzc1MSw3IEBAIHZvaWQgUmVuZGVyR3Jp
ZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9uR3JpZChSZW5kZXJCb3gqIGdyaWRJdGVtKQogICAg
ICAgICBmb3IgKHNpemVfdCBtYWpvckF4aXNJbmRleCA9IDA7IG1ham9yQXhpc0luZGV4IDwgZW5k
T2ZNYWpvckF4aXM7ICsrbWFqb3JBeGlzSW5kZXgpIHsKICAgICAgICAgICAgIEdyaWRJdGVyYXRv
ciBpdGVyYXRvcihtX2dyaWQsIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgbWFq
b3JBeGlzSW5kZXgpOwogICAgICAgICAgICAgaWYgKHN0ZDo6dW5pcXVlX3B0cjxHcmlkQ29vcmRp
bmF0ZT4gZW1wdHlHcmlkQXJlYSA9IGl0ZXJhdG9yLm5leHRFbXB0eUdyaWRBcmVhKCkpIHsKLSAg
ICAgICAgICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoZ3JpZEl0ZW0sIGVtcHR5R3JpZEFyZWEt
PnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXgsIGVtcHR5R3JpZEFyZWEtPmNvbHVtbnMuaW5pdGlh
bFBvc2l0aW9uSW5kZXgpOworICAgICAgICAgICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChncmlk
SXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbiwgZW1wdHlH
cmlkQXJlYS0+Y29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbik7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC03ODMsMTQgKzc2NCwxNCBA
QCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0ZW1PbkdyaWQoUmVuZGVyQm94
KiBncmlkSXRlbSkKICAgICBpbnNlcnRJdGVtSW50b0dyaWQoZ3JpZEl0ZW0sIHJvd0luZGV4LCBj
b2x1bW5JbmRleCk7CiB9CiAKLVJlbmRlckdyaWQ6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBS
ZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkgY29uc3QKK0dyaWRU
cmFja1NpemluZ0RpcmVjdGlvbiBSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWFqb3JBeGlzRGly
ZWN0aW9uKCkgY29uc3QKIHsKICAgICBHcmlkQXV0b0Zsb3cgZmxvdyA9IHN0eWxlKCkuZ3JpZEF1
dG9GbG93KCk7CiAgICAgQVNTRVJUKGZsb3cgIT0gQXV0b0Zsb3dOb25lKTsKICAgICByZXR1cm4g
KGZsb3cgPT0gQXV0b0Zsb3dDb2x1bW4pID8gRm9yQ29sdW1ucyA6IEZvclJvd3M7CiB9CiAKLVJl
bmRlckdyaWQ6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBSZW5kZXJHcmlkOjphdXRvUGxhY2Vt
ZW50TWlub3JBeGlzRGlyZWN0aW9uKCkgY29uc3QKK0dyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBS
ZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uKCkgY29uc3QKIHsKICAg
ICBHcmlkQXV0b0Zsb3cgZmxvdyA9IHN0eWxlKCkuZ3JpZEF1dG9GbG93KCk7CiAgICAgQVNTRVJU
KGZsb3cgIT0gQXV0b0Zsb3dOb25lKTsKQEAgLTg1OSwyOTYgKzg0MCwxMyBAQCBHcmlkQ29vcmRp
bmF0ZSBSZW5kZXJHcmlkOjpjYWNoZWRHcmlkQ29vcmRpbmF0ZShjb25zdCBSZW5kZXJCb3gqIGdy
aWRJdGVtKSBjb25zdAogICAgIHJldHVybiBtX2dyaWRJdGVtQ29vcmRpbmF0ZS5nZXQoZ3JpZEl0
ZW0pOwogfQogCi1HcmlkU3BhbiBSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21B
dXRvUGxhY2VtZW50UG9zaXRpb24oY29uc3QgUmVuZGVyQm94KiwgR3JpZFRyYWNrU2l6aW5nRGly
ZWN0aW9uLCBzaXplX3QgaW5pdGlhbFBvc2l0aW9uKSBjb25zdAotewotICAgIC8vIEZJWE1FOiBX
ZSBkb24ndCBzdXBwb3J0IHNwYW5uaW5nIHdpdGggYXV0byBwb3NpdGlvbnMgeWV0LiBPbmNlIHdl
IGRvLCB0aGlzIGlzIHdyb25nLiBBbHNvIHdlIHNob3VsZCBtYWtlCi0gICAgLy8gc3VyZSB0aGUg
Z3JpZCBjYW4gYWNjb21vZGF0ZSB0aGUgbmV3IGl0ZW0gYXMgd2Ugb25seSBncm93IDEgcG9zaXRp
b24gaW4gYSBnaXZlbiBkaXJlY3Rpb24uCi0gICAgcmV0dXJuIEdyaWRTcGFuKGluaXRpYWxQb3Np
dGlvbiwgaW5pdGlhbFBvc2l0aW9uKTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIGdyaWRMaW5l
RGVmaW5lZEJlZm9yZUdyaWRBcmVhKHNpemVfdCBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9u
LCBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgZ3JpZEFyZWFDb29yZGluYXRlcywgR3JpZFBvc2l0aW9u
U2lkZSBzaWRlKQotewotICAgIHN3aXRjaCAoc2lkZSkgewotICAgIGNhc2UgQ29sdW1uU3RhcnRT
aWRlOgotICAgICAgICByZXR1cm4gbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiA8IGdyaWRB
cmVhQ29vcmRpbmF0ZXMuY29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleDsKLSAgICBjYXNlIENv
bHVtbkVuZFNpZGU6Ci0gICAgICAgIHJldHVybiBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9u
IDwgZ3JpZEFyZWFDb29yZGluYXRlcy5jb2x1bW5zLmZpbmFsUG9zaXRpb25JbmRleDsKLSAgICBj
YXNlIFJvd1N0YXJ0U2lkZToKLSAgICAgICAgcmV0dXJuIG5hbWVkR3JpZExpbmVGaXJzdERlZmlu
aXRpb24gPCBncmlkQXJlYUNvb3JkaW5hdGVzLnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXg7Ci0g
ICAgY2FzZSBSb3dFbmRTaWRlOgotICAgICAgICByZXR1cm4gbmFtZWRHcmlkTGluZUZpcnN0RGVm
aW5pdGlvbiA8IGdyaWRBcmVhQ29vcmRpbmF0ZXMucm93cy5maW5hbFBvc2l0aW9uSW5kZXg7Ci0g
ICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQot
c3RhdGljIHZvaWQgc2V0TmFtZWRMaW5lUG9zaXRpb25JZkRlZmluZWRCZWZvcmVBcmVhKEdyaWRQ
b3NpdGlvbiYgcG9zaXRpb24sIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBuYW1lZExpbmVzTWFw
LCBjb25zdCBTdHJpbmcmIGxpbmVOYW1lLCBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgZ3JpZEFyZWFD
b29yZGluYXRlLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCi17Ci0gICAgYXV0byBsaW5lc0l0ZXJh
dG9yID0gbmFtZWRMaW5lc01hcC5maW5kKGxpbmVOYW1lKTsKLSAgICBpZiAobGluZXNJdGVyYXRv
ciA9PSBuYW1lZExpbmVzTWFwLmVuZCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBzaXplX3Qg
bmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiA9IEdyaWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBv
c2l0aW9uRm9yU2lkZShsaW5lc0l0ZXJhdG9yLT52YWx1ZVswXSwgc2lkZSk7Ci0gICAgaWYgKGdy
aWRMaW5lRGVmaW5lZEJlZm9yZUdyaWRBcmVhKG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24s
IGdyaWRBcmVhQ29vcmRpbmF0ZSwgc2lkZSkpCi0gICAgICAgIHBvc2l0aW9uLnNldEV4cGxpY2l0
UG9zaXRpb24oMSwgbGluZU5hbWUpOwotfQotCi12b2lkIFJlbmRlckdyaWQ6OmFkanVzdE5hbWVk
R3JpZEl0ZW1Qb3NpdGlvbihHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRl
IHNpZGUpIGNvbnN0Ci17Ci0gICAgLy8gVGhlIFN0eWxlQnVpbGRlciBhbHdheXMgdHJlYXRzIDxj
dXN0b20taWRlbnQ+IGFzIGEgbmFtZWQgZ3JpZCBhcmVhLiBXZSBtdXN0IGRlY2lkZSBoZXJlIGlm
IHRoZXkgYXJlIGdvaW5nIHRvIGJlCi0gICAgLy8gcmVzb2x2ZWQgdG8gZWl0aGVyIGEgZ3JpZCBh
cmVhIG9yIGEgZ3JpZCBsaW5lLgotICAgIEFTU0VSVChwb3NpdGlvbi5pc05hbWVkR3JpZEFyZWEo
KSk7Ci0gICAgY29uc3QgTmFtZWRHcmlkQXJlYU1hcCYgZ3JpZEFyZWFNYXAgPSBzdHlsZSgpLm5h
bWVkR3JpZEFyZWEoKTsKLSAgICBjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYgbmFtZWRMaW5lc01h
cCA9IGlzQ29sdW1uU2lkZShzaWRlKSA/IHN0eWxlKCkubmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6
IHN0eWxlKCkubmFtZWRHcmlkUm93TGluZXMoKTsKLQotICAgIFN0cmluZyBuYW1lZEdyaWRBcmVh
T3JHcmlkTGluZSA9IHBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKTsKLSAgICBib29sIGlzU3RhcnRT
aWRlID0gc2lkZSA9PSBDb2x1bW5TdGFydFNpZGUgfHwgc2lkZSA9PSBSb3dTdGFydFNpZGU7Ci0K
LSAgICBhdXRvIGFyZWFJdGVyYXRvciA9IGdyaWRBcmVhTWFwLmZpbmQobmFtZWRHcmlkQXJlYU9y
R3JpZExpbmUpOwotICAgIGlmIChhcmVhSXRlcmF0b3IgIT0gZ3JpZEFyZWFNYXAuZW5kKCkpIHsK
LSAgICAgICAgU3RyaW5nIGdyaWRMaW5lTmFtZSA9IG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lICsg
KGlzU3RhcnRTaWRlID8gIi1zdGFydCIgOiAiLWVuZCIpOwotICAgICAgICBzZXROYW1lZExpbmVQ
b3NpdGlvbklmRGVmaW5lZEJlZm9yZUFyZWEocG9zaXRpb24sIG5hbWVkTGluZXNNYXAsIGdyaWRM
aW5lTmFtZSwgYXJlYUl0ZXJhdG9yLT52YWx1ZSwgc2lkZSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBib29sIGhhc1N0YXJ0U3VmZml4ID0gbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUu
ZW5kc1dpdGgoIi1zdGFydCIpOwotICAgIGJvb2wgaGFzRW5kU3VmZml4ID0gbmFtZWRHcmlkQXJl
YU9yR3JpZExpbmUuZW5kc1dpdGgoIi1lbmQiKTsKLSAgICBpZiAoKGhhc1N0YXJ0U3VmZml4ICYm
IGlzU3RhcnRTaWRlKSB8fCAoaGFzRW5kU3VmZml4ICYmICFpc1N0YXJ0U2lkZSkpIHsKLSAgICAg
ICAgc2l6ZV90IHN1ZmZpeExlbmd0aCA9IGhhc1N0YXJ0U3VmZml4ID8gc3RybGVuKCItc3RhcnQi
KSA6IHN0cmxlbigiLWVuZCIpOwotICAgICAgICBTdHJpbmcgZ3JpZEFyZWFOYW1lID0gbmFtZWRH
cmlkQXJlYU9yR3JpZExpbmUuc3Vic3RyaW5nKDAsIG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lLmxl
bmd0aCgpIC0gc3VmZml4TGVuZ3RoKTsKLQotICAgICAgICBhdXRvIGFyZWFJdGVyYXRvciA9IGdy
aWRBcmVhTWFwLmZpbmQoZ3JpZEFyZWFOYW1lKTsKLSAgICAgICAgaWYgKGFyZWFJdGVyYXRvciAh
PSBncmlkQXJlYU1hcC5lbmQoKSkgewotICAgICAgICAgICAgcG9zaXRpb24uc2V0TmFtZWRHcmlk
QXJlYShncmlkQXJlYU5hbWUpOwotICAgICAgICAgICAgc2V0TmFtZWRMaW5lUG9zaXRpb25JZkRl
ZmluZWRCZWZvcmVBcmVhKHBvc2l0aW9uLCBuYW1lZExpbmVzTWFwLCBuYW1lZEdyaWRBcmVhT3JH
cmlkTGluZSwgYXJlYUl0ZXJhdG9yLT52YWx1ZSwgc2lkZSk7Ci0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBpZiAobmFtZWRMaW5lc01hcC5jb250YWlucyhuYW1l
ZEdyaWRBcmVhT3JHcmlkTGluZSkpCi0gICAgICAgIHBvc2l0aW9uLnNldEV4cGxpY2l0UG9zaXRp
b24oMSwgbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUpOwotICAgIGVsc2UKLSAgICAgICAgcG9zaXRp
b24uc2V0QXV0b1Bvc2l0aW9uKCk7Ci19Ci0KLXZvaWQgUmVuZGVyR3JpZDo6YWRqdXN0R3JpZFBv
c2l0aW9uc0Zyb21TdHlsZShHcmlkUG9zaXRpb24mIGluaXRpYWxQb3NpdGlvbiwgR3JpZFBvc2l0
aW9uJiBmaW5hbFBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIGluaXRpYWxQb3NpdGlvblNpZGUs
IEdyaWRQb3NpdGlvblNpZGUgZmluYWxQb3NpdGlvblNpZGUpIGNvbnN0Ci17Ci0gICAgQVNTRVJU
KGlzQ29sdW1uU2lkZShpbml0aWFsUG9zaXRpb25TaWRlKSA9PSBpc0NvbHVtblNpZGUoZmluYWxQ
b3NpdGlvblNpZGUpKTsKLQotICAgIC8vIFdlIG11c3QgaGFuZGxlIHRoZSBwbGFjZW1lbnQgZXJy
b3IgaGFuZGxpbmcgY29kZSBoZXJlIGluc3RlYWQgb2YgaW4gdGhlIFN0eWxlQWRqdXN0ZXIgYmVj
YXVzZSB3ZSBkb24ndCB3YW50IHRvCi0gICAgLy8gb3ZlcndyaXRlIHRoZSBzcGVjaWZpZWQgdmFs
dWVzLgotICAgIGlmIChpbml0aWFsUG9zaXRpb24uaXNTcGFuKCkgJiYgZmluYWxQb3NpdGlvbi5p
c1NwYW4oKSkKLSAgICAgICAgZmluYWxQb3NpdGlvbi5zZXRBdXRvUG9zaXRpb24oKTsKLQotICAg
IGlmIChpbml0aWFsUG9zaXRpb24uaXNOYW1lZEdyaWRBcmVhKCkpCi0gICAgICAgIGFkanVzdE5h
bWVkR3JpZEl0ZW1Qb3NpdGlvbihpbml0aWFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUp
OwotCi0gICAgaWYgKGZpbmFsUG9zaXRpb24uaXNOYW1lZEdyaWRBcmVhKCkpCi0gICAgICAgIGFk
anVzdE5hbWVkR3JpZEl0ZW1Qb3NpdGlvbihmaW5hbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uU2lk
ZSk7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gUmVuZGVyR3JpZDo6cmVzb2x2ZUdy
aWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QgUmVuZGVyQm94KiBncmlkSXRlbSwgR3JpZFRyYWNr
U2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikgY29uc3QKLXsKLSAgICBHcmlkUG9zaXRpb24gaW5p
dGlhbFBvc2l0aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGdyaWRJdGVtLT5zdHls
ZSgpLmdyaWRJdGVtQ29sdW1uU3RhcnQoKSA6IGdyaWRJdGVtLT5zdHlsZSgpLmdyaWRJdGVtUm93
U3RhcnQoKTsKLSAgICBjb25zdCBHcmlkUG9zaXRpb25TaWRlIGluaXRpYWxQb3NpdGlvblNpZGUg
PSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gQ29sdW1uU3RhcnRTaWRlIDogUm93U3RhcnRT
aWRlOwotICAgIEdyaWRQb3NpdGlvbiBmaW5hbFBvc2l0aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JD
b2x1bW5zKSA/IGdyaWRJdGVtLT5zdHlsZSgpLmdyaWRJdGVtQ29sdW1uRW5kKCkgOiBncmlkSXRl
bS0+c3R5bGUoKS5ncmlkSXRlbVJvd0VuZCgpOwotICAgIGNvbnN0IEdyaWRQb3NpdGlvblNpZGUg
ZmluYWxQb3NpdGlvblNpZGUgPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gQ29sdW1uRW5k
U2lkZSA6IFJvd0VuZFNpZGU7Ci0KLSAgICBhZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGlu
aXRpYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSwgZmluYWxQ
b3NpdGlvblNpZGUpOwotCi0gICAgaWYgKGluaXRpYWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVk
QWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKSAmJiBmaW5hbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2
ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigpKSB7Ci0gICAgICAgIGlmIChzdHlsZSgpLmdyaWRB
dXRvRmxvdygpID09IEF1dG9GbG93Tm9uZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPEdyaWRTcGFuPigwLCAwKTsKLQotICAgICAgICAvLyBXZSBjYW4ndCBnZXQgb3VyIGdy
aWQgcG9zaXRpb25zIHdpdGhvdXQgcnVubmluZyB0aGUgYXV0byBwbGFjZW1lbnQgYWxnb3JpdGht
LgotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBpZiAoaW5pdGlhbFBvc2l0
aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigpKSB7Ci0gICAgICAg
IC8vIEluZmVyIHRoZSBwb3NpdGlvbiBmcm9tIHRoZSBmaW5hbCBwb3NpdGlvbiAoJ2F1dG8gLyAx
JyBvciAnc3BhbiAyIC8gMycgY2FzZSkuCi0gICAgICAgIGNvbnN0IHNpemVfdCBmaW5hbFJlc29s
dmVkUG9zaXRpb24gPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGZpbmFsUG9zaXRpb24s
IGZpbmFsUG9zaXRpb25TaWRlKTsKLSAgICAgICAgcmV0dXJuIHJlc29sdmVHcmlkUG9zaXRpb25B
Z2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihmaW5hbFJlc29sdmVkUG9zaXRpb24sIGluaXRpYWxQb3Np
dGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSk7Ci0gICAgfQotCi0gICAgaWYgKGZpbmFsUG9zaXRp
b24uc2hvdWxkQmVSZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKCkpIHsKLSAgICAgICAg
Ly8gSW5mZXIgb3VyIHBvc2l0aW9uIGZyb20gdGhlIGluaXRpYWwgcG9zaXRpb24gKCcxIC8gYXV0
bycgb3IgJzMgLyBzcGFuIDInIGNhc2UpLgotICAgICAgICBjb25zdCBzaXplX3QgaW5pdGlhbFJl
c29sdmVkUG9zaXRpb24gPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGluaXRpYWxQb3Np
dGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSk7Ci0gICAgICAgIHJldHVybiByZXNvbHZlR3JpZFBv
c2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oaW5pdGlhbFJlc29sdmVkUG9zaXRpb24sIGZp
bmFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb25TaWRlKTsKLSAgICB9Ci0KLSAgICBzaXplX3QgcmVz
b2x2ZWRJbml0aWFsUG9zaXRpb24gPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGluaXRp
YWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSk7Ci0gICAgc2l6ZV90IHJlc29sdmVkRmlu
YWxQb3NpdGlvbiA9IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoZmluYWxQb3NpdGlvbiwg
ZmluYWxQb3NpdGlvblNpZGUpOwotCi0gICAgLy8gSWYgJ2dyaWQtcm93LWVuZCcgc3BlY2lmaWVz
IGEgbGluZSBhdCBvciBiZWZvcmUgdGhhdCBzcGVjaWZpZWQgYnkgJ2dyaWQtcm93LXN0YXJ0Jywg
aXQgY29tcHV0ZXMgdG8gJ3NwYW4gMScuCi0gICAgaWYgKHJlc29sdmVkRmluYWxQb3NpdGlvbiA8
IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uKQotICAgICAgICByZXNvbHZlZEZpbmFsUG9zaXRpb24g
PSByZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsKLQotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PEdyaWRTcGFuPihyZXNvbHZlZEluaXRpYWxQb3NpdGlvbiwgcmVzb2x2ZWRGaW5hbFBvc2l0aW9u
KTsKLX0KLQotc2l6ZV90IFJlbmRlckdyaWQ6OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25G
cm9tU3R5bGUoY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBz
aWRlKSBjb25zdAotewotICAgIEFTU0VSVCghcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVs
bCgpKTsKLQotICAgIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBncmlkTGluZXNOYW1lcyA9IGlz
Q29sdW1uU2lkZShzaWRlKSA/IHN0eWxlKCkubmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6IHN0eWxl
KCkubmFtZWRHcmlkUm93TGluZXMoKTsKLSAgICBOYW1lZEdyaWRMaW5lc01hcDo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBncmlkTGluZXNOYW1lcy5maW5kKHBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSk7
Ci0gICAgaWYgKGl0ID09IGdyaWRMaW5lc05hbWVzLmVuZCgpKSB7Ci0gICAgICAgIGlmIChwb3Np
dGlvbi5pc1Bvc2l0aXZlKCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgY29uc3Qg
c2l6ZV90IGxhc3RMaW5lID0gZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoc2lkZSk7Ci0gICAgICAg
IHJldHVybiBHcmlkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUobGFzdExpbmUs
IHNpZGUpOwotICAgIH0KLQotICAgIHNpemVfdCBuYW1lZEdyaWRMaW5lSW5kZXg7Ci0gICAgaWYg
KHBvc2l0aW9uLmlzUG9zaXRpdmUoKSkKLSAgICAgICAgbmFtZWRHcmlkTGluZUluZGV4ID0gc3Rk
OjptaW48c2l6ZV90Pihwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSwgaXQtPnZhbHVlLnNpemUo
KSkgLSAxOwotICAgIGVsc2UKLSAgICAgICAgbmFtZWRHcmlkTGluZUluZGV4ID0gc3RkOjptYXg8
aW50PihpdC0+dmFsdWUuc2l6ZSgpIC0gYWJzKHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpKSwg
MCk7Ci0gICAgcmV0dXJuIEdyaWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShp
dC0+dmFsdWVbbmFtZWRHcmlkTGluZUluZGV4XSwgc2lkZSk7Ci19Ci0KLXNpemVfdCBSZW5kZXJH
cmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9z
aXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkgY29uc3QKLXsKLSAgICBzd2l0Y2ggKHBvc2l0
aW9uLnR5cGUoKSkgewotICAgIGNhc2UgRXhwbGljaXRQb3NpdGlvbjogewotICAgICAgICBBU1NF
UlQocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpOwotCi0gICAgICAgIGlmICghcG9zaXRpb24u
bmFtZWRHcmlkTGluZSgpLmlzTnVsbCgpKQotICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVOYW1l
ZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUocG9zaXRpb24sIHNpZGUpOwotCi0gICAgICAgIC8v
IEhhbmRsZSA8aW50ZWdlcj4gZXhwbGljaXQgcG9zaXRpb24uCi0gICAgICAgIGlmIChwb3NpdGlv
bi5pc1Bvc2l0aXZlKCkpCi0gICAgICAgICAgICByZXR1cm4gR3JpZFBvc2l0aW9uOjphZGp1c3RH
cmlkUG9zaXRpb25Gb3JTaWRlKHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpIC0gMSwgc2lkZSk7
Ci0KLSAgICAgICAgc2l6ZV90IHJlc29sdmVkUG9zaXRpb24gPSBhYnMocG9zaXRpb24uaW50ZWdl
clBvc2l0aW9uKCkpIC0gMTsKLSAgICAgICAgY29uc3Qgc2l6ZV90IGVuZE9mVHJhY2sgPSBleHBs
aWNpdEdyaWRTaXplRm9yU2lkZShzaWRlKTsKLQotICAgICAgICAvLyBQZXIgaHR0cDovL2xpc3Rz
LnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTNNYXIvMDU4OS5odG1sLCB3ZSBj
bGFtcCBuZWdhdGl2ZSB2YWx1ZSB0byB0aGUgZmlyc3QgbGluZS4KLSAgICAgICAgaWYgKGVuZE9m
VHJhY2sgPCByZXNvbHZlZFBvc2l0aW9uKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICAg
ICAgcmV0dXJuIEdyaWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShlbmRPZlRy
YWNrIC0gcmVzb2x2ZWRQb3NpdGlvbiwgc2lkZSk7Ci0gICAgfQotICAgIGNhc2UgTmFtZWRHcmlk
QXJlYVBvc2l0aW9uOgotICAgIHsKLSAgICAgICAgTmFtZWRHcmlkQXJlYU1hcDo6Y29uc3RfaXRl
cmF0b3IgaXQgPSBzdHlsZSgpLm5hbWVkR3JpZEFyZWEoKS5maW5kKHBvc2l0aW9uLm5hbWVkR3Jp
ZExpbmUoKSk7Ci0gICAgICAgIC8vIFVua25vd24gZ3JpZCBhcmVhIHNob3VsZCBoYXZlIGJlZW4g
Y29tcHV0ZWQgdG8gJ2F1dG8nIGJ5IG5vdy4KLSAgICAgICAgQVNTRVJUKGl0ICE9IHN0eWxlKCku
bmFtZWRHcmlkQXJlYSgpLmVuZCgpKTsKLSAgICAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUmIGdy
aWRBcmVhQ29vcmRpbmF0ZSA9IGl0LT52YWx1ZTsKLSAgICAgICAgc3dpdGNoIChzaWRlKSB7Ci0g
ICAgICAgIGNhc2UgQ29sdW1uU3RhcnRTaWRlOgotICAgICAgICAgICAgcmV0dXJuIGdyaWRBcmVh
Q29vcmRpbmF0ZS5jb2x1bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4OwotICAgICAgICBjYXNlIENv
bHVtbkVuZFNpZGU6Ci0gICAgICAgICAgICByZXR1cm4gZ3JpZEFyZWFDb29yZGluYXRlLmNvbHVt
bnMuZmluYWxQb3NpdGlvbkluZGV4OwotICAgICAgICBjYXNlIFJvd1N0YXJ0U2lkZToKLSAgICAg
ICAgICAgIHJldHVybiBncmlkQXJlYUNvb3JkaW5hdGUucm93cy5pbml0aWFsUG9zaXRpb25JbmRl
eDsKLSAgICAgICAgY2FzZSBSb3dFbmRTaWRlOgotICAgICAgICAgICAgcmV0dXJuIGdyaWRBcmVh
Q29vcmRpbmF0ZS5yb3dzLmZpbmFsUG9zaXRpb25JbmRleDsKLSAgICAgICAgfQotICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIGNhc2Ug
QXV0b1Bvc2l0aW9uOgotICAgIGNhc2UgU3BhblBvc2l0aW9uOgotICAgICAgICAvLyAnYXV0bycg
YW5kIHNwYW4gZGVwZW5kIG9uIHRoZSBvcHBvc2l0ZSBwb3NpdGlvbiBmb3IgcmVzb2x1dGlvbiAo
ZS5nLiBncmlkLXJvdzogYXV0byAvIDEgb3IgZ3JpZC1jb2x1bW46IHNwYW4gMyAvICJteUhlYWRl
ciIpLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIDA7Ci0g
ICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAwOwotfQotCi1zdGQ6
OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IFJlbmRlckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25BZ2Fp
bnN0T3Bwb3NpdGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25z
dCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpIGNvbnN0Ci17
Ci0gICAgaWYgKHBvc2l0aW9uLmlzQXV0bygpKQotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCByZXNvbHZlZE9wcG9zaXRl
UG9zaXRpb24pOwotCi0gICAgQVNTRVJUKHBvc2l0aW9uLmlzU3BhbigpKTsKLSAgICBBU1NFUlQo
cG9zaXRpb24uc3BhblBvc2l0aW9uKCkgPiAwKTsKLQotICAgIGlmICghcG9zaXRpb24ubmFtZWRH
cmlkTGluZSgpLmlzTnVsbCgpKSB7Ci0gICAgICAgIC8vIHNwYW4gMiAnYycgLT4gd2UgbmVlZCB0
byBmaW5kIHRoZSBhcHByb3ByaWF0ZSBncmlkIGxpbmUgYmVmb3JlIC8gYWZ0ZXIgb3VyIG9wcG9z
aXRlIHBvc2l0aW9uLgotICAgICAgICByZXR1cm4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlv
bkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcG9zaXRp
b24sIHNpZGUpOwotICAgIH0KLQotICAgIC8vICdzcGFuIDEnIGlzIGNvbnRhaW5lZCBpbnNpZGUg
YSBzaW5nbGUgZ3JpZCB0cmFjayByZWdhcmRsZXNzIG9mIHRoZSBkaXJlY3Rpb24uCi0gICAgLy8g
VGhhdCdzIHdoeSB0aGUgQ1NTIHNwYW4gdmFsdWUgaXMgb25lIG1vcmUgdGhhbiB0aGUgb2Zmc2V0
IHdlIGFwcGx5LgotICAgIHNpemVfdCBwb3NpdGlvbk9mZnNldCA9IHBvc2l0aW9uLnNwYW5Qb3Np
dGlvbigpIC0gMTsKLSAgICBpZiAoc2lkZSA9PSBDb2x1bW5TdGFydFNpZGUgfHwgc2lkZSA9PSBS
b3dTdGFydFNpZGUpIHsKLSAgICAgICAgc2l6ZV90IGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uID0g
c3RkOjptYXg8aW50PigwLCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24gLSBwb3NpdGlvbk9mZnNl
dCk7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihpbml0aWFsUmVz
b2x2ZWRQb3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9u
LCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24gKyBwb3NpdGlvbk9mZnNldCk7Ci19Ci0KLXN0ZDo6
dW5pcXVlX3B0cjxHcmlkU3Bhbj4gUmVuZGVyR3JpZDo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3Np
dGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHNpemVfdCByZXNvbHZlZE9wcG9zaXRlUG9zaXRp
b24sIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkg
Y29uc3QKLXsKLSAgICBBU1NFUlQocG9zaXRpb24uaXNTcGFuKCkpOwotICAgIEFTU0VSVCghcG9z
aXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVsbCgpKTsKLSAgICAvLyBOZWdhdGl2ZSBwb3NpdGlv
bnMgYXJlIG5vdCBhbGxvd2VkIHBlciB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgc2hvdWxkIGhhdmUg
YmVlbiBoYW5kbGVkIGR1cmluZyBwYXJzaW5nLgotICAgIEFTU0VSVChwb3NpdGlvbi5zcGFuUG9z
aXRpb24oKSA+IDApOwotCi0gICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIGdyaWRMaW5lc05h
bWVzID0gaXNDb2x1bW5TaWRlKHNpZGUpID8gc3R5bGUoKS5uYW1lZEdyaWRDb2x1bW5MaW5lcygp
IDogc3R5bGUoKS5uYW1lZEdyaWRSb3dMaW5lcygpOwotICAgIE5hbWVkR3JpZExpbmVzTWFwOjpj
b25zdF9pdGVyYXRvciBpdCA9IGdyaWRMaW5lc05hbWVzLmZpbmQocG9zaXRpb24ubmFtZWRHcmlk
TGluZSgpKTsKLQotICAgIC8vIElmIHRoZXJlIGlzIG5vIG5hbWVkIGdyaWQgbGluZSBvZiB0aGF0
IG5hbWUsIHdlIHJlc29sdmUgdGhlIHBvc2l0aW9uIHRvICdhdXRvJyAod2hpY2ggaXMgZXF1aXZh
bGVudCB0byAnc3BhbiAxJyBpbiB0aGlzIGNhc2UpLgotICAgIC8vIFNlZSBodHRwOi8vbGlzdHMu
dzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ctc3R5bGUvMjAxM0p1bi8wMzk0Lmh0bWwuCi0gICAg
aWYgKGl0ID09IGdyaWRMaW5lc05hbWVzLmVuZCgpKQotICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCByZXNvbHZlZE9wcG9z
aXRlUG9zaXRpb24pOwotCi0gICAgaWYgKHNpZGUgPT0gUm93U3RhcnRTaWRlIHx8IHNpZGUgPT0g
Q29sdW1uU3RhcnRTaWRlKQotICAgICAgICByZXR1cm4gcmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3Rh
cnROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihyZXNvbHZlZE9w
cG9zaXRlUG9zaXRpb24sIHBvc2l0aW9uLCBpdC0+dmFsdWUpOwotCi0gICAgcmV0dXJuIHJlc29s
dmVSb3dFbmRDb2x1bW5FbmROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3Np
dGlvbihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHBvc2l0aW9uLCBpdC0+dmFsdWUpOwotfQot
Ci1zdGF0aWMgaW5saW5lIHNpemVfdCBmaXJzdE5hbWVkR3JpZExpbmVCZWZvcmVQb3NpdGlvbihz
aXplX3QgcG9zaXRpb24sIGNvbnN0IFZlY3RvcjxzaXplX3Q+JiBncmlkTGluZXMpCi17Ci0gICAg
Ly8gVGhlIGdyaWQgbGluZSBpbmVxdWFsaXR5IG5lZWRzIHRvIGJlIHN0cmljdCAod2hpY2ggZG9l
c24ndCBtYXRjaCB0aGUgYWZ0ZXIgLyBlbmQgY2FzZSkgYmVjYXVzZSB8cG9zaXRpb258IGlzCi0g
ICAgLy8gYWxyZWFkeSBjb252ZXJ0ZWQgdG8gYW4gaW5kZXggaW4gb3VyIGdyaWQgcmVwcmVzZW50
YXRpb24gKGllIG9uZSB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBncmlkIGxpbmUgdG8gYWNjb3VudCBm
b3IKLSAgICAvLyB0aGUgc2lkZSkuCi0gICAgc2l6ZV90IGZpcnN0TGluZUJlZm9yZVBvc2l0aW9u
SW5kZXggPSAwOwotICAgIGNvbnN0IHNpemVfdCogZmlyc3RMaW5lQmVmb3JlUG9zaXRpb24gPSBz
dGQ6Omxvd2VyX2JvdW5kKGdyaWRMaW5lcy5iZWdpbigpLCBncmlkTGluZXMuZW5kKCksIHBvc2l0
aW9uKTsKLSAgICBpZiAoZmlyc3RMaW5lQmVmb3JlUG9zaXRpb24gIT0gZ3JpZExpbmVzLmVuZCgp
KSB7Ci0gICAgICAgIGlmICgqZmlyc3RMaW5lQmVmb3JlUG9zaXRpb24gPiBwb3NpdGlvbiAmJiBm
aXJzdExpbmVCZWZvcmVQb3NpdGlvbiAhPSBncmlkTGluZXMuYmVnaW4oKSkKLSAgICAgICAgICAg
IC0tZmlyc3RMaW5lQmVmb3JlUG9zaXRpb247Ci0KLSAgICAgICAgZmlyc3RMaW5lQmVmb3JlUG9z
aXRpb25JbmRleCA9IGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uIC0gZ3JpZExpbmVzLmJlZ2luKCk7
Ci0gICAgfQotICAgIHJldHVybiBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbkluZGV4OwotfQotCi1z
dGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IFJlbmRlckdyaWQ6OnJlc29sdmVSb3dTdGFydENvbHVt
blN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oc2l6ZV90
IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwg
Y29uc3QgVmVjdG9yPHNpemVfdD4mIGdyaWRMaW5lcykgY29uc3QKLXsKLSAgICBzaXplX3QgZ3Jp
ZExpbmVJbmRleCA9IHN0ZDo6bWF4PGludD4oMCwgZmlyc3ROYW1lZEdyaWRMaW5lQmVmb3JlUG9z
aXRpb24ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBncmlkTGluZXMpIC0gcG9zaXRpb24uc3Bh
blBvc2l0aW9uKCkgKyAxKTsKLSAgICBzaXplX3QgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0g
Z3JpZExpbmVzW2dyaWRMaW5lSW5kZXhdOwotICAgIGlmIChyZXNvbHZlZEdyaWRMaW5lUG9zaXRp
b24gPiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pCi0gICAgICAgIHJlc29sdmVkR3JpZExpbmVQ
b3NpdGlvbiA9IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbjsKLSAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uLCByZXNvbHZlZE9wcG9z
aXRlUG9zaXRpb24pOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IFJlbmRlckdyaWQ6
OnJlc29sdmVSb3dFbmRDb2x1bW5FbmROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3Np
dGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9z
aXRpb24mIHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYgZ3JpZExpbmVzKSBjb25zdAot
ewotICAgIHNpemVfdCBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb25JbmRleCA9IGdyaWRM
aW5lcy5zaXplKCkgLSAxOwotICAgIGNvbnN0IHNpemVfdCogZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0
ZVBvc2l0aW9uID0gc3RkOjp1cHBlcl9ib3VuZChncmlkTGluZXMuYmVnaW4oKSwgZ3JpZExpbmVz
LmVuZCgpLCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pOwotICAgIGlmIChmaXJzdExpbmVBZnRl
ck9wcG9zaXRlUG9zaXRpb24gIT0gZ3JpZExpbmVzLmVuZCgpKQotICAgICAgICBmaXJzdExpbmVB
ZnRlck9wcG9zaXRlUG9zaXRpb25JbmRleCA9IGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlv
biAtIGdyaWRMaW5lcy5iZWdpbigpOwotCi0gICAgc2l6ZV90IGdyaWRMaW5lSW5kZXggPSBzdGQ6
Om1pbihncmlkTGluZXMuc2l6ZSgpIC0gMSwgZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9u
SW5kZXggKyBwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSAtIDEpOwotICAgIHNpemVfdCByZXNvbHZl
ZEdyaWRMaW5lUG9zaXRpb24gPSBHcmlkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclJv
d0VuZENvbHVtbkVuZFNpZGUoZ3JpZExpbmVzW2dyaWRMaW5lSW5kZXhdKTsKLSAgICBpZiAocmVz
b2x2ZWRHcmlkTGluZVBvc2l0aW9uIDwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKQotICAgICAg
ICByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb247Ci0g
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3Np
dGlvbiwgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uKTsKLX0KLQogTGF5b3V0VW5pdCBSZW5kZXJH
cmlkOjpncmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxkLCBHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBWZWN0b3I8R3JpZFRyYWNrPiYg
dHJhY2tzKSBjb25zdAogewogICAgIGNvbnN0IEdyaWRDb29yZGluYXRlJiBjb29yZGluYXRlID0g
Y2FjaGVkR3JpZENvb3JkaW5hdGUoY2hpbGQpOwogICAgIGNvbnN0IEdyaWRTcGFuJiBzcGFuID0g
KGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1ucyA6IGNvb3JkaW5h
dGUucm93czsKICAgICBMYXlvdXRVbml0IGdyaWRBcmVhQnJlYWR0aCA9IDA7Ci0gICAgZm9yIChz
aXplX3QgdHJhY2tJbmRleCA9IHNwYW4uaW5pdGlhbFBvc2l0aW9uSW5kZXg7IHRyYWNrSW5kZXgg
PD0gc3Bhbi5maW5hbFBvc2l0aW9uSW5kZXg7ICsrdHJhY2tJbmRleCkKLSAgICAgICAgZ3JpZEFy
ZWFCcmVhZHRoICs9IHRyYWNrc1t0cmFja0luZGV4XS5tX3VzZWRCcmVhZHRoOworICAgIGZvciAo
R3JpZFJlc29sdmVkUG9zaXRpb24gdHJhY2tQb3NpdGlvbiA9IHNwYW4ucmVzb2x2ZWRJbml0aWFs
UG9zaXRpb247IHRyYWNrUG9zaXRpb24gPD0gc3Bhbi5yZXNvbHZlZEZpbmFsUG9zaXRpb247ICsr
dHJhY2tQb3NpdGlvbikKKyAgICAgICAgZ3JpZEFyZWFCcmVhZHRoICs9IHRyYWNrc1t0cmFja1Bv
c2l0aW9uLnRvSW50KCldLm1fdXNlZEJyZWFkdGg7CiAgICAgcmV0dXJuIGdyaWRBcmVhQnJlYWR0
aDsKIH0KIApAQCAtMTE2OCwxMSArODY2LDExIEBAIHZvaWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVH
cmlkUG9zaXRpb25zKGNvbnN0IEdyaWRTaXppbmdEYXRhJiBzaXppbmdEYXRhKQogTGF5b3V0UG9p
bnQgUmVuZGVyR3JpZDo6ZmluZENoaWxkTG9naWNhbFBvc2l0aW9uKFJlbmRlckJveCogY2hpbGQs
IGNvbnN0IEdyaWRTaXppbmdEYXRhJiBzaXppbmdEYXRhKQogewogICAgIGNvbnN0IEdyaWRDb29y
ZGluYXRlJiBjb29yZGluYXRlID0gY2FjaGVkR3JpZENvb3JkaW5hdGUoY2hpbGQpOwotICAgIEFT
U0VSVF9VTlVTRUQoc2l6aW5nRGF0YSwgY29vcmRpbmF0ZS5jb2x1bW5zLmluaXRpYWxQb3NpdGlv
bkluZGV4IDwgc2l6aW5nRGF0YS5jb2x1bW5UcmFja3Muc2l6ZSgpKTsKLSAgICBBU1NFUlRfVU5V
U0VEKHNpemluZ0RhdGEsIGNvb3JkaW5hdGUucm93cy5pbml0aWFsUG9zaXRpb25JbmRleCA8IHNp
emluZ0RhdGEucm93VHJhY2tzLnNpemUoKSk7CisgICAgQVNTRVJUX1VOVVNFRChzaXppbmdEYXRh
LCBjb29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKSA8IHNp
emluZ0RhdGEuY29sdW1uVHJhY2tzLnNpemUoKSk7CisgICAgQVNTRVJUX1VOVVNFRChzaXppbmdE
YXRhLCBjb29yZGluYXRlLnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKSA8IHNp
emluZ0RhdGEucm93VHJhY2tzLnNpemUoKSk7CiAKICAgICAvLyBUaGUgZ3JpZCBpdGVtcyBzaG91
bGQgYmUgaW5zaWRlIHRoZSBncmlkIGNvbnRhaW5lcidzIGJvcmRlciBib3gsIHRoYXQncyB3aHkg
dGhleSBuZWVkIHRvIGJlIHNoaWZ0ZWQuCi0gICAgcmV0dXJuIExheW91dFBvaW50KG1fY29sdW1u
UG9zaXRpb25zW2Nvb3JkaW5hdGUuY29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleF0gKyBtYXJn
aW5TdGFydEZvckNoaWxkKCpjaGlsZCksIG1fcm93UG9zaXRpb25zW2Nvb3JkaW5hdGUucm93cy5p
bml0aWFsUG9zaXRpb25JbmRleF0gKyBtYXJnaW5CZWZvcmVGb3JDaGlsZCgqY2hpbGQpKTsKKyAg
ICByZXR1cm4gTGF5b3V0UG9pbnQobV9jb2x1bW5Qb3NpdGlvbnNbY29vcmRpbmF0ZS5jb2x1bW5z
LnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCldICsgbWFyZ2luU3RhcnRGb3JDaGlsZCgq
Y2hpbGQpLCBtX3Jvd1Bvc2l0aW9uc1tjb29yZGluYXRlLnJvd3MucmVzb2x2ZWRJbml0aWFsUG9z
aXRpb24udG9JbnQoKV0gKyBtYXJnaW5CZWZvcmVGb3JDaGlsZCgqY2hpbGQpKTsKIH0KIAogdm9p
ZCBSZW5kZXJHcmlkOjpwYWludENoaWxkcmVuKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBM
YXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJp
bnRSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXggODE4NGVjZmI3
NDI2MmE1NGIxOGVkN2E2MTgzODYxNjUwNDAyYmU0Ny4uM2IzYjZlYjQxMzk1NjE1ODMyYjRkMTYz
ZWFhOGE0MDYyOTIyZjZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCkBA
IC0yOSw2ICsyOSw3IEBACiAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogCisjaW5jbHVk
ZSAiR3JpZFJlc29sdmVkUG9zaXRpb24uaCIKICNpbmNsdWRlICJPcmRlckl0ZXJhdG9yLmgiCiAj
aW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKIApAQCAtMzgsMTEgKzM5LDYgQEAgY2xhc3MgR3JpZENv
b3JkaW5hdGU7CiBjbGFzcyBHcmlkU3BhbjsKIGNsYXNzIEdyaWRUcmFjazsKIAotZW51bSBHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24gewotICAgIEZvckNvbHVtbnMsCi0gICAgRm9yUm93cwotfTsK
LQogY2xhc3MgUmVuZGVyR3JpZCBmaW5hbCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJsaWM6
CiAgICAgUmVuZGVyR3JpZChFbGVtZW50JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4pOwpAQCAtNjYs
NyArNjIsNiBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgR3JpZEl0ZXJhdG9yOwogICAgIGNsYXNz
IEdyaWRTaXppbmdEYXRhOwotICAgIGVudW0gR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIHsgRm9y
Q29sdW1ucywgRm9yUm93cyB9OwogICAgIHZvaWQgY29tcHV0ZVVzZWRCcmVhZHRoT2ZHcmlkVHJh
Y2tzKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgR3JpZFNpemluZ0RhdGEmKTsKICAgICB2b2lk
IGNvbXB1dGVVc2VkQnJlYWR0aE9mR3JpZFRyYWNrcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24s
IEdyaWRTaXppbmdEYXRhJiwgTGF5b3V0VW5pdCYgYXZhaWxhYmxlTG9naWNhbFNwYWNlKTsKICAg
ICBib29sIGdyaWRFbGVtZW50SXNTaHJpbmtUb0ZpdCgpOwpAQCAtNzYsNyArNzEsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zKEdy
aWRUcmFja1NpemluZ0RpcmVjdGlvbiwgR3JpZFNpemluZ0RhdGEmKTsKIAogICAgIHZvaWQgZ3Jv
d0dyaWQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKTsKLSAgICB2b2lkIGluc2VydEl0ZW1JbnRv
R3JpZChSZW5kZXJCb3gqLCBzaXplX3Qgcm93VHJhY2ssIHNpemVfdCBjb2x1bW5UcmFjayk7Cisg
ICAgdm9pZCBpbnNlcnRJdGVtSW50b0dyaWQoUmVuZGVyQm94KiwgY29uc3QgR3JpZFJlc29sdmVk
UG9zaXRpb24mIHJvd1RyYWNrLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgY29sdW1uVHJh
Y2spOwogICAgIHZvaWQgaW5zZXJ0SXRlbUludG9HcmlkKFJlbmRlckJveCosIGNvbnN0IEdyaWRD
b29yZGluYXRlJik7CiAgICAgdm9pZCBwbGFjZUl0ZW1zT25HcmlkKCk7CiAgICAgdm9pZCBwb3B1
bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoKTsKQEAgLTEwMCw5ICs5NSw2IEBAIHBy
aXZhdGU6CiAgICAgZG91YmxlIGNvbXB1dGVOb3JtYWxpemVkRnJhY3Rpb25CcmVhZHRoKFZlY3Rv
cjxHcmlkVHJhY2s+JiwgY29uc3QgR3JpZFNwYW4mIHRyYWNrc1NwYW4sIEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbiwgTGF5b3V0VW5pdCBhdmFpbGFibGVMb2dpY2FsU3BhY2UpIGNvbnN0OwogCiAg
ICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgZ3JpZFRyYWNrU2l6ZShHcmlkVHJhY2tTaXppbmdEaXJl
Y3Rpb24sIHNpemVfdCkgY29uc3Q7Ci0gICAgc2l6ZV90IGV4cGxpY2l0R3JpZENvbHVtbkNvdW50
KCkgY29uc3Q7Ci0gICAgc2l6ZV90IGV4cGxpY2l0R3JpZFJvd0NvdW50KCkgY29uc3Q7Ci0gICAg
c2l6ZV90IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKEdyaWRQb3NpdGlvblNpZGUpIGNvbnN0Owog
CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsQ29udGVudEhlaWdodEZvckNoaWxkKFJlbmRlckJveCos
IFZlY3RvcjxHcmlkVHJhY2s+Jik7CiAgICAgTGF5b3V0VW5pdCBtaW5Db250ZW50Rm9yQ2hpbGQo
UmVuZGVyQm94KiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBWZWN0b3I8R3JpZFRyYWNrPiYg
Y29sdW1uVHJhY2tzKTsKQEAgLTExMCwxNyArMTAyLDYgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRQ
b2ludCBmaW5kQ2hpbGRMb2dpY2FsUG9zaXRpb24oUmVuZGVyQm94KiwgY29uc3QgR3JpZFNpemlu
Z0RhdGEmKTsKICAgICBHcmlkQ29vcmRpbmF0ZSBjYWNoZWRHcmlkQ29vcmRpbmF0ZShjb25zdCBS
ZW5kZXJCb3gqKSBjb25zdDsKIAotICAgIEdyaWRTcGFuIHJlc29sdmVHcmlkUG9zaXRpb25zRnJv
bUF1dG9QbGFjZW1lbnRQb3NpdGlvbihjb25zdCBSZW5kZXJCb3gqLCBHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24sIHNpemVfdCkgY29uc3Q7Ci0gICAgdm9pZCBhZGp1c3ROYW1lZEdyaWRJdGVtUG9z
aXRpb24oR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lkZSkgY29uc3Q7Ci0gICAgdm9pZCBh
ZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKEdyaWRQb3NpdGlvbiYgaW5pdGlhbFBvc2l0aW9u
LCBHcmlkUG9zaXRpb24mIGZpbmFsUG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgaW5pdGlhbFBv
c2l0aW9uU2lkZSwgR3JpZFBvc2l0aW9uU2lkZSBmaW5hbFBvc2l0aW9uU2lkZSkgY29uc3Q7Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHls
ZShjb25zdCBSZW5kZXJCb3gqLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OwotICAg
IHNpemVfdCByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IEdyaWRQ
b3NpdGlvbiYsIEdyaWRQb3NpdGlvblNpZGUpIGNvbnN0OwotICAgIHNpemVfdCByZXNvbHZlR3Jp
ZFBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNpZGUp
IGNvbnN0OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcmVzb2x2ZUdyaWRQb3NpdGlv
bkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHNpemVfdCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24s
IGNvbnN0IEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNpZGUpIGNvbnN0OwotICAgIHN0ZDo6
dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RP
cHBvc2l0ZVBvc2l0aW9uKHNpemVfdCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdy
aWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNpZGUpIGNvbnN0OwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxHcmlkU3Bhbj4gcmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3RhcnROYW1lZEdyaWRMaW5lUG9zaXRp
b25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9u
LCBjb25zdCBHcmlkUG9zaXRpb24mLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYpIGNvbnN0OwotICAg
IHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5hbWVkR3Jp
ZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHNpemVfdCByZXNvbHZlZE9wcG9z
aXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYsIGNvbnN0IFZlY3RvcjxzaXplX3Q+Jikg
Y29uc3Q7Ci0KICAgICBMYXlvdXRVbml0IGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJl
bmRlckJveCogY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgY29uc3QgVmVjdG9yPEdy
aWRUcmFjaz4mKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBwYWludENoaWxkcmVuKFBhaW50
SW5mbyYgZm9yU2VsZiwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBQYWludEluZm8m
IGZvckNoaWxkLCBib29sIHVzZVByaW50UmVjdCkgb3ZlcnJpZGUgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZENvb3JkaW5hdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkQ29vcmRpbmF0ZS5oCmluZGV4IDQ0ZDIwMGJj
ZGQ1YTFmYThlYWIzMmYyOTZiODc4ZDkzYjA0Y2YyNzIuLjkwOGYzNjcyYjY5NTM0NjY1NWFkOWY5
ZGRjMmYzYzlmMjg0YmU2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9HcmlkQ29vcmRpbmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9HcmlkQ29vcmRpbmF0ZS5oCkBAIC0zNCwzMCArMzQsMzEgQEAKIAogI2lmIEVOQUJMRShDU1Nf
R1JJRF9MQVlPVVQpCiAKKyNpbmNsdWRlICJHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gQSBzcGFuIGluIGEgc2luZ2xlIGRpcmVjdGlvbiAoZWl0
aGVyIHJvd3Mgb3IgY29sdW1ucykuIE5vdGUgdGhhdCB8aW5pdGlhbFBvc2l0aW9uSW5kZXh8Ci0v
LyBhbmQgfGZpbmFsUG9zaXRpb25JbmRleHwgYXJlIGdyaWQgYXJlYXMnIGluZGV4ZXMsIE5PVCBn
cmlkIGxpbmVzJy4gSXRlcmF0aW5nIG92ZXIgdGhlCi0vLyBzcGFuIHNob3VsZCBpbmNsdWRlIGJv
dGggfGluaXRpYWxQb3NpdGlvbkluZGV4fCBhbmQgfGZpbmFsUG9zaXRpb25JbmRleHwgdG8gYmUg
Y29ycmVjdC4KKy8vIEEgc3BhbiBpbiBhIHNpbmdsZSBkaXJlY3Rpb24gKGVpdGhlciByb3dzIG9y
IGNvbHVtbnMpLiBOb3RlIHRoYXQgfHJlc29sdmVkSW5pdGlhbFBvc2l0aW9ufAorLy8gYW5kIHxy
ZXNvbHZlZEZpbmFsUG9zaXRpb258IGFyZSBncmlkIGFyZWFzJyBpbmRleGVzLCBOT1QgZ3JpZCBs
aW5lcycuIEl0ZXJhdGluZyBvdmVyIHRoZQorLy8gc3BhbiBzaG91bGQgaW5jbHVkZSBib3RoIHxy
ZXNvbHZlZEluaXRpYWxQb3NpdGlvbnwgYW5kIHxyZXNvbHZlZEZpbmFsUG9zaXRpb258IHRvIGJl
IGNvcnJlY3QuCiBjbGFzcyBHcmlkU3BhbiB7CiBwdWJsaWM6Ci0gICAgR3JpZFNwYW4oc2l6ZV90
IGluaXRpYWxQb3NpdGlvbiwgc2l6ZV90IGZpbmFsUG9zaXRpb24pCi0gICAgICAgIDogaW5pdGlh
bFBvc2l0aW9uSW5kZXgoaW5pdGlhbFBvc2l0aW9uKQotICAgICAgICAsIGZpbmFsUG9zaXRpb25J
bmRleChmaW5hbFBvc2l0aW9uKQorICAgIEdyaWRTcGFuKGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0
aW9uJiByZXNvbHZlZEluaXRpYWxQb3NpdGlvbiwgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24m
IHJlc29sdmVkRmluYWxQb3NpdGlvbikKKyAgICAgICAgOiByZXNvbHZlZEluaXRpYWxQb3NpdGlv
bihyZXNvbHZlZEluaXRpYWxQb3NpdGlvbikKKyAgICAgICAgLCByZXNvbHZlZEZpbmFsUG9zaXRp
b24ocmVzb2x2ZWRGaW5hbFBvc2l0aW9uKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGluaXRpYWxQ
b3NpdGlvbkluZGV4IDw9IGZpbmFsUG9zaXRpb25JbmRleCk7CisgICAgICAgIEFTU0VSVChyZXNv
bHZlZEluaXRpYWxQb3NpdGlvbiA8PSByZXNvbHZlZEZpbmFsUG9zaXRpb24pOwogICAgIH0KIAog
ICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHcmlkU3BhbiYgbykgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiBpbml0aWFsUG9zaXRpb25JbmRleCA9PSBvLmluaXRpYWxQb3NpdGlvbkluZGV4
ICYmIGZpbmFsUG9zaXRpb25JbmRleCA9PSBvLmZpbmFsUG9zaXRpb25JbmRleDsKKyAgICAgICAg
cmV0dXJuIHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uID09IG8ucmVzb2x2ZWRJbml0aWFsUG9zaXRp
b24gJiYgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uID09IG8ucmVzb2x2ZWRGaW5hbFBvc2l0aW9uOwog
ICAgIH0KIAotICAgIHNpemVfdCBpbml0aWFsUG9zaXRpb25JbmRleDsKLSAgICBzaXplX3QgZmlu
YWxQb3NpdGlvbkluZGV4OworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVkSW5pdGlh
bFBvc2l0aW9uOworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVkRmluYWxQb3NpdGlv
bjsKIH07CiAKIC8vIFRoaXMgcmVwcmVzZW50cyBhIGdyaWQgYXJlYSB0aGF0IHNwYW5zIGluIGJv
dGggcm93cycgYW5kIGNvbHVtbnMnIGRpcmVjdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9HcmlkUG9zaXRpb24uaAppbmRleCA2OGYyZjM5MWNjNWRhMDczZGQxNjcwOThj
MDhjNWE5Zjg2YTQ4ZmQ0Li41YTBhZjllZTQ3NjBiNGNjNDk0MzIxNGNhZGNiZmQ5NTZhNWViY2Zj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5oCkBA
IC00NSwxMyArNDUsNiBAQCBlbnVtIEdyaWRQb3NpdGlvblR5cGUgewogICAgIE5hbWVkR3JpZEFy
ZWFQb3NpdGlvbiAvLyA8aWRlbnQ+CiB9OwogCi1lbnVtIEdyaWRQb3NpdGlvblNpZGUgewotICAg
IENvbHVtblN0YXJ0U2lkZSwKLSAgICBDb2x1bW5FbmRTaWRlLAotICAgIFJvd1N0YXJ0U2lkZSwK
LSAgICBSb3dFbmRTaWRlCi19OwotCiBjbGFzcyBHcmlkUG9zaXRpb24gewogcHVibGljOgogICAg
IEdyaWRQb3NpdGlvbigpCkBAIC02MCwyMCArNTMsNiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0K
IAotICAgIHN0YXRpYyBpbmxpbmUgc2l6ZV90IGFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENv
bHVtbkVuZFNpZGUoc2l6ZV90IHJlc29sdmVkUG9zaXRpb24pCi0gICAgewotICAgICAgICByZXR1
cm4gcmVzb2x2ZWRQb3NpdGlvbiA/IHJlc29sdmVkUG9zaXRpb24gLSAxIDogMDsKLSAgICB9Ci0K
LSAgICBzdGF0aWMgc2l6ZV90IGFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoc2l6ZV90IHJlc29s
dmVkUG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKLSAgICB7Ci0gICAgICAgIC8vIEFu
IGl0ZW0gZmluaXNoaW5nIG9uIHRoZSBOLXRoIGxpbmUgYmVsb25ncyB0byB0aGUgTi0xLXRoIGNl
bGwuCi0gICAgICAgIGlmIChzaWRlID09IENvbHVtbkVuZFNpZGUgfHwgc2lkZSA9PSBSb3dFbmRT
aWRlKQotICAgICAgICAgICAgcmV0dXJuIGFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVt
bkVuZFNpZGUocmVzb2x2ZWRQb3NpdGlvbik7Ci0KLSAgICAgICAgcmV0dXJuIHJlc29sdmVkUG9z
aXRpb247Ci0gICAgfQotCiAgICAgYm9vbCBpc1Bvc2l0aXZlKCkgY29uc3QgeyByZXR1cm4gaW50
ZWdlclBvc2l0aW9uKCkgPiAwOyB9CiAKICAgICBHcmlkUG9zaXRpb25UeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0Mjk4ZTRjMTU4
OGUxMzc0NmE3M2ExNTM5NTIxYTRiYmY5OTNkNjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwCkBAIC0wLDAg
KzEsMzQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkdyaWRSZXNvbHZlZFBvc2l0aW9uLmgiCisKKyNpZiBFTkFCTEUo
Q1NTX0dSSURfTEFZT1VUKQorCisjaW5jbHVkZSAiR3JpZENvb3JkaW5hdGUuaCIKKyNpbmNsdWRl
ICJSZW5kZXJCb3guaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzaXplX3QgR3JpZFJlc29s
dmVkUG9zaXRpb246OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KGNvbnN0IFJlbmRlclN0eWxlJiBn
cmlkQ29udGFpbmVyU3R5bGUpCit7CisgICAgcmV0dXJuIGdyaWRDb250YWluZXJTdHlsZS5ncmlk
Q29sdW1ucygpLnNpemUoKTsKK30KKworc2l6ZV90IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBs
aWNpdEdyaWRSb3dDb3VudChjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlKQor
eworICAgIHJldHVybiBncmlkQ29udGFpbmVyU3R5bGUuZ3JpZFJvd3MoKS5zaXplKCk7Cit9CisK
K3N0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbHVtblNpZGUoR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQor
eworICAgIHJldHVybiBzaWRlID09IENvbHVtblN0YXJ0U2lkZSB8fCBzaWRlID09IENvbHVtbkVu
ZFNpZGU7Cit9CisKK3NpemVfdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6ZXhwbGljaXRHcmlkU2l6
ZUZvclNpZGUoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgR3JpZFBvc2l0
aW9uU2lkZSBzaWRlKQoreworICAgIHJldHVybiBpc0NvbHVtblNpZGUoc2lkZSkgPyBleHBsaWNp
dEdyaWRDb2x1bW5Db3VudChncmlkQ29udGFpbmVyU3R5bGUpIDogZXhwbGljaXRHcmlkUm93Q291
bnQoZ3JpZENvbnRhaW5lclN0eWxlKTsKK30KKworR3JpZFNwYW4gR3JpZFJlc29sdmVkUG9zaXRp
b246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbihjb25zdCBS
ZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIGNvbnN0IEdyaWRSZXNvbHZlZFBv
c2l0aW9uJiBpbml0aWFsUG9zaXRpb24pCit7CisgICAgLy8gRklYTUU6IFdlIGRvbid0IHN1cHBv
cnQgc3Bhbm5pbmcgd2l0aCBhdXRvIHBvc2l0aW9ucyB5ZXQuIE9uY2Ugd2UgZG8sIHRoaXMgaXMg
d3JvbmcuIEFsc28gd2Ugc2hvdWxkIG1ha2UKKyAgICAvLyBzdXJlIHRoZSBncmlkIGNhbiBhY2Nv
bW9kYXRlIHRoZSBuZXcgaXRlbSBhcyB3ZSBvbmx5IGdyb3cgMSBwb3NpdGlvbiBpbiBhIGdpdmVu
IGRpcmVjdGlvbi4KKyAgICByZXR1cm4gR3JpZFNwYW4oaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFs
UG9zaXRpb24pOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgZ3JpZExpbmVEZWZpbmVkQmVmb3Jl
R3JpZEFyZWEoY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIG5hbWVkR3JpZExpbmVGaXJzdERl
ZmluaXRpb24sIGNvbnN0IEdyaWRDb29yZGluYXRlJiBncmlkQXJlYUNvb3JkaW5hdGVzLCBHcmlk
UG9zaXRpb25TaWRlIHNpZGUpCit7CisgICAgc3dpdGNoIChzaWRlKSB7CisgICAgY2FzZSBDb2x1
bW5TdGFydFNpZGU6CisgICAgICAgIHJldHVybiBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9u
IDwgZ3JpZEFyZWFDb29yZGluYXRlcy5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOwor
ICAgIGNhc2UgQ29sdW1uRW5kU2lkZToKKyAgICAgICAgcmV0dXJuIG5hbWVkR3JpZExpbmVGaXJz
dERlZmluaXRpb24gPCBncmlkQXJlYUNvb3JkaW5hdGVzLmNvbHVtbnMucmVzb2x2ZWRGaW5hbFBv
c2l0aW9uOworICAgIGNhc2UgUm93U3RhcnRTaWRlOgorICAgICAgICByZXR1cm4gbmFtZWRHcmlk
TGluZUZpcnN0RGVmaW5pdGlvbiA8IGdyaWRBcmVhQ29vcmRpbmF0ZXMucm93cy5yZXNvbHZlZElu
aXRpYWxQb3NpdGlvbjsKKyAgICBjYXNlIFJvd0VuZFNpZGU6CisgICAgICAgIHJldHVybiBuYW1l
ZEdyaWRMaW5lRmlyc3REZWZpbml0aW9uIDwgZ3JpZEFyZWFDb29yZGluYXRlcy5yb3dzLnJlc29s
dmVkRmluYWxQb3NpdGlvbjsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgdm9pZCBzZXROYW1lZExpbmVQb3NpdGlvbklmRGVm
aW5lZEJlZm9yZUFyZWEoR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgY29uc3QgTmFtZWRHcmlkTGlu
ZXNNYXAmIG5hbWVkTGluZXNNYXAsIGNvbnN0IFN0cmluZyYgbGluZU5hbWUsIGNvbnN0IEdyaWRD
b29yZGluYXRlJiBncmlkQXJlYUNvb3JkaW5hdGUsIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sK
KyAgICBhdXRvIGxpbmVzSXRlcmF0b3IgPSBuYW1lZExpbmVzTWFwLmZpbmQobGluZU5hbWUpOwor
ICAgIGlmIChsaW5lc0l0ZXJhdG9yID09IG5hbWVkTGluZXNNYXAuZW5kKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIG5hbWVkR3JpZExpbmVGaXJzdERlZmlu
aXRpb24gPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShs
aW5lc0l0ZXJhdG9yLT52YWx1ZVswXSwgc2lkZSk7CisgICAgaWYgKGdyaWRMaW5lRGVmaW5lZEJl
Zm9yZUdyaWRBcmVhKG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24sIGdyaWRBcmVhQ29vcmRp
bmF0ZSwgc2lkZSkpCisgICAgICAgIHBvc2l0aW9uLnNldEV4cGxpY2l0UG9zaXRpb24oMSwgbGlu
ZU5hbWUpOworfQorCit2b2lkIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1c3ROYW1lZEdyaWRJ
dGVtUG9zaXRpb24oY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgR3JpZFBv
c2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQoreworICAgIC8vIFRoZSBT
dHlsZUJ1aWxkZXIgYWx3YXlzIHRyZWF0cyA8Y3VzdG9tLWlkZW50PiBhcyBhIG5hbWVkIGdyaWQg
YXJlYS4gV2UgbXVzdCBkZWNpZGUgaGVyZSBpZiB0aGV5IGFyZSBnb2luZyB0byBiZQorICAgIC8v
IHJlc29sdmVkIHRvIGVpdGhlciBhIGdyaWQgYXJlYSBvciBhIGdyaWQgbGluZS4KKyAgICBBU1NF
UlQocG9zaXRpb24uaXNOYW1lZEdyaWRBcmVhKCkpOworICAgIGNvbnN0IE5hbWVkR3JpZEFyZWFN
YXAmIGdyaWRBcmVhTWFwID0gZ3JpZENvbnRhaW5lclN0eWxlLm5hbWVkR3JpZEFyZWEoKTsKKyAg
ICBjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYgbmFtZWRMaW5lc01hcCA9IGlzQ29sdW1uU2lkZShz
aWRlKSA/IGdyaWRDb250YWluZXJTdHlsZS5uYW1lZEdyaWRDb2x1bW5MaW5lcygpIDogZ3JpZENv
bnRhaW5lclN0eWxlLm5hbWVkR3JpZFJvd0xpbmVzKCk7CisKKyAgICBTdHJpbmcgbmFtZWRHcmlk
QXJlYU9yR3JpZExpbmUgPSBwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCk7CisgICAgYm9vbCBpc1N0
YXJ0U2lkZSA9IHNpZGUgPT0gQ29sdW1uU3RhcnRTaWRlIHx8IHNpZGUgPT0gUm93U3RhcnRTaWRl
OworCisgICAgYXV0byBhcmVhSXRlcmF0b3IgPSBncmlkQXJlYU1hcC5maW5kKG5hbWVkR3JpZEFy
ZWFPckdyaWRMaW5lKTsKKyAgICBpZiAoYXJlYUl0ZXJhdG9yICE9IGdyaWRBcmVhTWFwLmVuZCgp
KSB7CisgICAgICAgIFN0cmluZyBncmlkTGluZU5hbWUgPSBuYW1lZEdyaWRBcmVhT3JHcmlkTGlu
ZSArIChpc1N0YXJ0U2lkZSA/ICItc3RhcnQiIDogIi1lbmQiKTsKKyAgICAgICAgc2V0TmFtZWRM
aW5lUG9zaXRpb25JZkRlZmluZWRCZWZvcmVBcmVhKHBvc2l0aW9uLCBuYW1lZExpbmVzTWFwLCBn
cmlkTGluZU5hbWUsIGFyZWFJdGVyYXRvci0+dmFsdWUsIHNpZGUpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgYm9vbCBoYXNTdGFydFN1ZmZpeCA9IG5hbWVkR3JpZEFyZWFPckdyaWRM
aW5lLmVuZHNXaXRoKCItc3RhcnQiKTsKKyAgICBib29sIGhhc0VuZFN1ZmZpeCA9IG5hbWVkR3Jp
ZEFyZWFPckdyaWRMaW5lLmVuZHNXaXRoKCItZW5kIik7CisgICAgaWYgKChoYXNTdGFydFN1ZmZp
eCAmJiBpc1N0YXJ0U2lkZSkgfHwgKGhhc0VuZFN1ZmZpeCAmJiAhaXNTdGFydFNpZGUpKSB7Cisg
ICAgICAgIHNpemVfdCBzdWZmaXhMZW5ndGggPSBoYXNTdGFydFN1ZmZpeCA/IHN0cmxlbigiLXN0
YXJ0IikgOiBzdHJsZW4oIi1lbmQiKTsKKyAgICAgICAgU3RyaW5nIGdyaWRBcmVhTmFtZSA9IG5h
bWVkR3JpZEFyZWFPckdyaWRMaW5lLnN1YnN0cmluZygwLCBuYW1lZEdyaWRBcmVhT3JHcmlkTGlu
ZS5sZW5ndGgoKSAtIHN1ZmZpeExlbmd0aCk7CisKKyAgICAgICAgYXV0byBhcmVhSXRlcmF0b3Ig
PSBncmlkQXJlYU1hcC5maW5kKGdyaWRBcmVhTmFtZSk7CisgICAgICAgIGlmIChhcmVhSXRlcmF0
b3IgIT0gZ3JpZEFyZWFNYXAuZW5kKCkpIHsKKyAgICAgICAgICAgIHBvc2l0aW9uLnNldE5hbWVk
R3JpZEFyZWEoZ3JpZEFyZWFOYW1lKTsKKyAgICAgICAgICAgIHNldE5hbWVkTGluZVBvc2l0aW9u
SWZEZWZpbmVkQmVmb3JlQXJlYShwb3NpdGlvbiwgbmFtZWRMaW5lc01hcCwgbmFtZWRHcmlkQXJl
YU9yR3JpZExpbmUsIGFyZWFJdGVyYXRvci0+dmFsdWUsIHNpZGUpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKG5hbWVkTGluZXNNYXAuY29udGFpbnMo
bmFtZWRHcmlkQXJlYU9yR3JpZExpbmUpKQorICAgICAgICBwb3NpdGlvbi5zZXRFeHBsaWNpdFBv
c2l0aW9uKDEsIG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lKTsKKyAgICBlbHNlCisgICAgICAgIHBv
c2l0aW9uLnNldEF1dG9Qb3NpdGlvbigpOworfQorCit2b2lkIEdyaWRSZXNvbHZlZFBvc2l0aW9u
OjphZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29u
dGFpbmVyU3R5bGUsIEdyaWRQb3NpdGlvbiYgaW5pdGlhbFBvc2l0aW9uLCBHcmlkUG9zaXRpb24m
IGZpbmFsUG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgaW5pdGlhbFBvc2l0aW9uU2lkZSwgR3Jp
ZFBvc2l0aW9uU2lkZSBmaW5hbFBvc2l0aW9uU2lkZSkKK3sKKyAgICBBU1NFUlQoaXNDb2x1bW5T
aWRlKGluaXRpYWxQb3NpdGlvblNpZGUpID09IGlzQ29sdW1uU2lkZShmaW5hbFBvc2l0aW9uU2lk
ZSkpOworCisgICAgLy8gV2UgbXVzdCBoYW5kbGUgdGhlIHBsYWNlbWVudCBlcnJvciBoYW5kbGlu
ZyBjb2RlIGhlcmUgaW5zdGVhZCBvZiBpbiB0aGUgU3R5bGVBZGp1c3RlciBiZWNhdXNlIHdlIGRv
bid0IHdhbnQgdG8KKyAgICAvLyBvdmVyd3JpdGUgdGhlIHNwZWNpZmllZCB2YWx1ZXMuCisgICAg
aWYgKGluaXRpYWxQb3NpdGlvbi5pc1NwYW4oKSAmJiBmaW5hbFBvc2l0aW9uLmlzU3BhbigpKQor
ICAgICAgICBmaW5hbFBvc2l0aW9uLnNldEF1dG9Qb3NpdGlvbigpOworCisgICAgaWYgKGluaXRp
YWxQb3NpdGlvbi5pc05hbWVkR3JpZEFyZWEoKSkKKyAgICAgICAgYWRqdXN0TmFtZWRHcmlkSXRl
bVBvc2l0aW9uKGdyaWRDb250YWluZXJTdHlsZSwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9z
aXRpb25TaWRlKTsKKworICAgIGlmIChmaW5hbFBvc2l0aW9uLmlzTmFtZWRHcmlkQXJlYSgpKQor
ICAgICAgICBhZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRpb24oZ3JpZENvbnRhaW5lclN0eWxlLCBm
aW5hbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uU2lkZSk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxH
cmlkU3Bhbj4gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0
eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGNvbnN0IFJlbmRlckJv
eCYgZ3JpZEl0ZW0sIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAg
R3JpZFBvc2l0aW9uIGluaXRpYWxQb3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykg
PyBncmlkSXRlbS5zdHlsZSgpLmdyaWRJdGVtQ29sdW1uU3RhcnQoKSA6IGdyaWRJdGVtLnN0eWxl
KCkuZ3JpZEl0ZW1Sb3dTdGFydCgpOworICAgIGNvbnN0IEdyaWRQb3NpdGlvblNpZGUgaW5pdGlh
bFBvc2l0aW9uU2lkZSA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBDb2x1bW5TdGFydFNp
ZGUgOiBSb3dTdGFydFNpZGU7CisgICAgR3JpZFBvc2l0aW9uIGZpbmFsUG9zaXRpb24gPSAoZGly
ZWN0aW9uID09IEZvckNvbHVtbnMpID8gZ3JpZEl0ZW0uc3R5bGUoKS5ncmlkSXRlbUNvbHVtbkVu
ZCgpIDogZ3JpZEl0ZW0uc3R5bGUoKS5ncmlkSXRlbVJvd0VuZCgpOworICAgIGNvbnN0IEdyaWRQ
b3NpdGlvblNpZGUgZmluYWxQb3NpdGlvblNpZGUgPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMp
ID8gQ29sdW1uRW5kU2lkZSA6IFJvd0VuZFNpZGU7CisKKyAgICBhZGp1c3RHcmlkUG9zaXRpb25z
RnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHlsZSwgaW5pdGlhbFBvc2l0aW9uLCBmaW5hbFBvc2l0
aW9uLCBpbml0aWFsUG9zaXRpb25TaWRlLCBmaW5hbFBvc2l0aW9uU2lkZSk7CisKKyAgICBpZiAo
aW5pdGlhbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigp
ICYmIGZpbmFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9u
KCkpIHsKKyAgICAgICAgaWYgKGdyaWRDb250YWluZXJTdHlsZS5ncmlkQXV0b0Zsb3coKSA9PSBB
dXRvRmxvd05vbmUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bh
bj4oMCwgMCk7CisKKyAgICAgICAgLy8gV2UgY2FuJ3QgZ2V0IG91ciBncmlkIHBvc2l0aW9ucyB3
aXRob3V0IHJ1bm5pbmcgdGhlIGF1dG8gcGxhY2VtZW50IGFsZ29yaXRobS4KKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYgKGluaXRpYWxQb3NpdGlvbi5zaG91bGRCZVJl
c29sdmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKSkgeworICAgICAgICAvLyBJbmZlciB0aGUg
cG9zaXRpb24gZnJvbSB0aGUgZmluYWwgcG9zaXRpb24gKCdhdXRvIC8gMScgb3IgJ3NwYW4gMiAv
IDMnIGNhc2UpLgorICAgICAgICBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBmaW5hbFJlc29s
dmVkUG9zaXRpb24gPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJT
dHlsZSwgZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvblNpZGUpOworICAgICAgICByZXR1cm4g
cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGdyaWRDb250YWluZXJT
dHlsZSwgZmluYWxSZXNvbHZlZFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb24sIGluaXRpYWxQb3Np
dGlvblNpZGUpOworICAgIH0KKworICAgIGlmIChmaW5hbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2
ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigpKSB7CisgICAgICAgIC8vIEluZmVyIG91ciBwb3Np
dGlvbiBmcm9tIHRoZSBpbml0aWFsIHBvc2l0aW9uICgnMSAvIGF1dG8nIG9yICczIC8gc3BhbiAy
JyBjYXNlKS4KKyAgICAgICAgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24gaW5pdGlhbFJlc29s
dmVkUG9zaXRpb24gPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJT
dHlsZSwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRlKTsKKyAgICAgICAgcmV0
dXJuIHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihncmlkQ29udGFp
bmVyU3R5bGUsIGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uLCBmaW5hbFBv
c2l0aW9uU2lkZSk7CisgICAgfQorCisgICAgR3JpZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZWRJ
bml0aWFsUG9zaXRpb24gPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWlu
ZXJTdHlsZSwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRlKTsKKyAgICBHcmlk
UmVzb2x2ZWRQb3NpdGlvbiByZXNvbHZlZEZpbmFsUG9zaXRpb24gPSByZXNvbHZlR3JpZFBvc2l0
aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHlsZSwgZmluYWxQb3NpdGlvbiwgZmluYWxQb3Np
dGlvblNpZGUpOworCisgICAgLy8gSWYgJ2dyaWQtcm93LWVuZCcgc3BlY2lmaWVzIGEgbGluZSBh
dCBvciBiZWZvcmUgdGhhdCBzcGVjaWZpZWQgYnkgJ2dyaWQtcm93LXN0YXJ0JywgaXQgY29tcHV0
ZXMgdG8gJ3NwYW4gMScuCisgICAgaWYgKHJlc29sdmVkRmluYWxQb3NpdGlvbiA8IHJlc29sdmVk
SW5pdGlhbFBvc2l0aW9uKQorICAgICAgICByZXNvbHZlZEZpbmFsUG9zaXRpb24gPSByZXNvbHZl
ZEluaXRpYWxQb3NpdGlvbjsKKworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFu
PihyZXNvbHZlZEluaXRpYWxQb3NpdGlvbiwgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uKTsKK30KKwor
R3JpZFJlc29sdmVkUG9zaXRpb24gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVOYW1lZEdy
aWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJT
dHlsZSwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRl
KQoreworICAgIEFTU0VSVCghcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVsbCgpKTsKKwor
ICAgIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBncmlkTGluZXNOYW1lcyA9IGlzQ29sdW1uU2lk
ZShzaWRlKSA/IGdyaWRDb250YWluZXJTdHlsZS5uYW1lZEdyaWRDb2x1bW5MaW5lcygpIDogZ3Jp
ZENvbnRhaW5lclN0eWxlLm5hbWVkR3JpZFJvd0xpbmVzKCk7CisgICAgTmFtZWRHcmlkTGluZXNN
YXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZ3JpZExpbmVzTmFtZXMuZmluZChwb3NpdGlvbi5uYW1l
ZEdyaWRMaW5lKCkpOworICAgIGlmIChpdCA9PSBncmlkTGluZXNOYW1lcy5lbmQoKSkgeworICAg
ICAgICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgpKQorICAgICAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIGNvbnN0IHNpemVfdCBsYXN0TGluZSA9IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKGdy
aWRDb250YWluZXJTdHlsZSwgc2lkZSk7CisgICAgICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3Np
dGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShsYXN0TGluZSwgc2lkZSk7CisgICAgfQor
CisgICAgc2l6ZV90IG5hbWVkR3JpZExpbmVJbmRleDsKKyAgICBpZiAocG9zaXRpb24uaXNQb3Np
dGl2ZSgpKQorICAgICAgICBuYW1lZEdyaWRMaW5lSW5kZXggPSBzdGQ6Om1pbjxzaXplX3Q+KHBv
c2l0aW9uLmludGVnZXJQb3NpdGlvbigpLCBpdC0+dmFsdWUuc2l6ZSgpKSAtIDE7CisgICAgZWxz
ZQorICAgICAgICBuYW1lZEdyaWRMaW5lSW5kZXggPSBzdGQ6Om1heDxpbnQ+KGl0LT52YWx1ZS5z
aXplKCkgLSBhYnMocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpLCAwKTsKKyAgICByZXR1cm4g
R3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoaXQtPnZhbHVl
W25hbWVkR3JpZExpbmVJbmRleF0sIHNpZGUpOworfQorCitHcmlkUmVzb2x2ZWRQb3NpdGlvbiBH
cmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShjb25zdCBS
ZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0
aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7CisgICAgc3dpdGNoIChwb3NpdGlvbi50eXBl
KCkpIHsKKyAgICBjYXNlIEV4cGxpY2l0UG9zaXRpb246IHsKKyAgICAgICAgQVNTRVJUKHBvc2l0
aW9uLmludGVnZXJQb3NpdGlvbigpKTsKKworICAgICAgICBpZiAoIXBvc2l0aW9uLm5hbWVkR3Jp
ZExpbmUoKS5pc051bGwoKSkKKyAgICAgICAgICAgIHJldHVybiByZXNvbHZlTmFtZWRHcmlkTGlu
ZVBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHlsZSwgcG9zaXRpb24sIHNpZGUpOwor
CisgICAgICAgIC8vIEhhbmRsZSA8aW50ZWdlcj4gZXhwbGljaXQgcG9zaXRpb24uCisgICAgICAg
IGlmIChwb3NpdGlvbi5pc1Bvc2l0aXZlKCkpCisgICAgICAgICAgICByZXR1cm4gR3JpZFJlc29s
dmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUocG9zaXRpb24uaW50ZWdlclBv
c2l0aW9uKCkgLSAxLCBzaWRlKTsKKworICAgICAgICBzaXplX3QgcmVzb2x2ZWRQb3NpdGlvbiA9
IGFicyhwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSkgLSAxOworICAgICAgICBjb25zdCBzaXpl
X3QgZW5kT2ZUcmFjayA9IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKGdyaWRDb250YWluZXJTdHls
ZSwgc2lkZSk7CisKKyAgICAgICAgLy8gUGVyIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMv
UHVibGljL3d3dy1zdHlsZS8yMDEzTWFyLzA1ODkuaHRtbCwgd2UgY2xhbXAgbmVnYXRpdmUgdmFs
dWUgdG8gdGhlIGZpcnN0IGxpbmUuCisgICAgICAgIGlmIChlbmRPZlRyYWNrIDwgcmVzb2x2ZWRQ
b3NpdGlvbikKKyAgICAgICAgICAgIHJldHVybiAwOworCisgICAgICAgIHJldHVybiBHcmlkUmVz
b2x2ZWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShlbmRPZlRyYWNrIC0gcmVz
b2x2ZWRQb3NpdGlvbiwgc2lkZSk7CisgICAgfQorICAgIGNhc2UgTmFtZWRHcmlkQXJlYVBvc2l0
aW9uOgorICAgIHsKKyAgICAgICAgTmFtZWRHcmlkQXJlYU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQg
PSBncmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlkQXJlYSgpLmZpbmQocG9zaXRpb24ubmFtZWRH
cmlkTGluZSgpKTsKKyAgICAgICAgLy8gVW5rbm93biBncmlkIGFyZWEgc2hvdWxkIGhhdmUgYmVl
biBjb21wdXRlZCB0byAnYXV0bycgYnkgbm93LgorICAgICAgICBBU1NFUlQoaXQgIT0gZ3JpZENv
bnRhaW5lclN0eWxlLm5hbWVkR3JpZEFyZWEoKS5lbmQoKSk7CisgICAgICAgIGNvbnN0IEdyaWRD
b29yZGluYXRlJiBncmlkQXJlYUNvb3JkaW5hdGUgPSBpdC0+dmFsdWU7CisgICAgICAgIHN3aXRj
aCAoc2lkZSkgeworICAgICAgICBjYXNlIENvbHVtblN0YXJ0U2lkZToKKyAgICAgICAgICAgIHJl
dHVybiBncmlkQXJlYUNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsK
KyAgICAgICAgY2FzZSBDb2x1bW5FbmRTaWRlOgorICAgICAgICAgICAgcmV0dXJuIGdyaWRBcmVh
Q29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlvbjsKKyAgICAgICAgY2FzZSBS
b3dTdGFydFNpZGU6CisgICAgICAgICAgICByZXR1cm4gZ3JpZEFyZWFDb29yZGluYXRlLnJvd3Mu
cmVzb2x2ZWRJbml0aWFsUG9zaXRpb247CisgICAgICAgIGNhc2UgUm93RW5kU2lkZToKKyAgICAg
ICAgICAgIHJldHVybiBncmlkQXJlYUNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRp
b247CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbigwKTsKKyAgICB9CisgICAgY2FzZSBBdXRvUG9zaXRp
b246CisgICAgY2FzZSBTcGFuUG9zaXRpb246CisgICAgICAgIC8vICdhdXRvJyBhbmQgc3BhbiBk
ZXBlbmQgb24gdGhlIG9wcG9zaXRlIHBvc2l0aW9uIGZvciByZXNvbHV0aW9uIChlLmcuIGdyaWQt
cm93OiBhdXRvIC8gMSBvciBncmlkLWNvbHVtbjogc3BhbiAzIC8gIm15SGVhZGVyIikuCisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9z
aXRpb24oMCk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBH
cmlkUmVzb2x2ZWRQb3NpdGlvbigwKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBH
cmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBv
c2l0aW9uKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGNvbnN0IEdyaWRS
ZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3Np
dGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sKKyAgICBpZiAocG9zaXRp
b24uaXNBdXRvKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihy
ZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7CisKKyAg
ICBBU1NFUlQocG9zaXRpb24uaXNTcGFuKCkpOworICAgIEFTU0VSVChwb3NpdGlvbi5zcGFuUG9z
aXRpb24oKSA+IDApOworCisgICAgaWYgKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxs
KCkpIHsKKyAgICAgICAgLy8gc3BhbiAyICdjJyAtPiB3ZSBuZWVkIHRvIGZpbmQgdGhlIGFwcHJv
cHJpYXRlIGdyaWQgbGluZSBiZWZvcmUgLyBhZnRlciBvdXIgb3Bwb3NpdGUgcG9zaXRpb24uCisg
ICAgICAgIHJldHVybiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRl
UG9zaXRpb24oZ3JpZENvbnRhaW5lclN0eWxlLCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHBv
c2l0aW9uLCBzaWRlKTsKKyAgICB9CisKKyAgICAvLyAnc3BhbiAxJyBpcyBjb250YWluZWQgaW5z
aWRlIGEgc2luZ2xlIGdyaWQgdHJhY2sgcmVnYXJkbGVzcyBvZiB0aGUgZGlyZWN0aW9uLgorICAg
IC8vIFRoYXQncyB3aHkgdGhlIENTUyBzcGFuIHZhbHVlIGlzIG9uZSBtb3JlIHRoYW4gdGhlIG9m
ZnNldCB3ZSBhcHBseS4KKyAgICBzaXplX3QgcG9zaXRpb25PZmZzZXQgPSBwb3NpdGlvbi5zcGFu
UG9zaXRpb24oKSAtIDE7CisgICAgaWYgKHNpZGUgPT0gQ29sdW1uU3RhcnRTaWRlIHx8IHNpZGUg
PT0gUm93U3RhcnRTaWRlKSB7CisgICAgICAgIHNpemVfdCBpbml0aWFsUmVzb2x2ZWRQb3NpdGlv
biA9IHN0ZDo6bWF4PGludD4oMCwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLnRvSW50KCkgLSBw
b3NpdGlvbk9mZnNldCk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFu
PihHcmlkUmVzb2x2ZWRQb3NpdGlvbihpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiksIHJlc29sdmVk
T3Bwb3NpdGVQb3NpdGlvbik7CisgICAgfQorCisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgR3JpZFJlc29sdmVkUG9zaXRpb24o
cmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLnRvSW50KCkgKyBwb3NpdGlvbk9mZnNldCkpOworfQor
CitzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZl
TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3QgUmVuZGVy
U3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJl
c29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3Jp
ZFBvc2l0aW9uU2lkZSBzaWRlKQoreworICAgIEFTU0VSVChwb3NpdGlvbi5pc1NwYW4oKSk7Cisg
ICAgQVNTRVJUKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpOworICAgIC8vIE5l
Z2F0aXZlIHBvc2l0aW9ucyBhcmUgbm90IGFsbG93ZWQgcGVyIHRoZSBzcGVjaWZpY2F0aW9uIGFu
ZCBzaG91bGQgaGF2ZSBiZWVuIGhhbmRsZWQgZHVyaW5nIHBhcnNpbmcuCisgICAgQVNTRVJUKHBv
c2l0aW9uLnNwYW5Qb3NpdGlvbigpID4gMCk7CisKKyAgICBjb25zdCBOYW1lZEdyaWRMaW5lc01h
cCYgZ3JpZExpbmVzTmFtZXMgPSBpc0NvbHVtblNpZGUoc2lkZSkgPyBncmlkQ29udGFpbmVyU3R5
bGUubmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6IGdyaWRDb250YWluZXJTdHlsZS5uYW1lZEdyaWRS
b3dMaW5lcygpOworICAgIE5hbWVkR3JpZExpbmVzTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGdy
aWRMaW5lc05hbWVzLmZpbmQocG9zaXRpb24ubmFtZWRHcmlkTGluZSgpKTsKKworICAgIC8vIElm
IHRoZXJlIGlzIG5vIG5hbWVkIGdyaWQgbGluZSBvZiB0aGF0IG5hbWUsIHdlIHJlc29sdmUgdGhl
IHBvc2l0aW9uIHRvICdhdXRvJyAod2hpY2ggaXMgZXF1aXZhbGVudCB0byAnc3BhbiAxJyBpbiB0
aGlzIGNhc2UpLgorICAgIC8vIFNlZSBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1Ymxp
Yy93d3ctc3R5bGUvMjAxM0p1bi8wMzk0Lmh0bWwuCisgICAgaWYgKGl0ID09IGdyaWRMaW5lc05h
bWVzLmVuZCgpKQorICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4ocmVz
b2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pOworCisgICAg
aWYgKHNpZGUgPT0gUm93U3RhcnRTaWRlIHx8IHNpZGUgPT0gQ29sdW1uU3RhcnRTaWRlKQorICAg
ICAgICByZXR1cm4gcmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3RhcnROYW1lZEdyaWRMaW5lUG9zaXRp
b25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHBvc2l0
aW9uLCBpdC0+dmFsdWUpOworCisgICAgcmV0dXJuIHJlc29sdmVSb3dFbmRDb2x1bW5FbmROYW1l
ZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihyZXNvbHZlZE9wcG9zaXRl
UG9zaXRpb24sIHBvc2l0aW9uLCBpdC0+dmFsdWUpOworfQorCitzdGF0aWMgaW5saW5lIHNpemVf
dCBmaXJzdE5hbWVkR3JpZExpbmVCZWZvcmVQb3NpdGlvbihzaXplX3QgcG9zaXRpb24sIGNvbnN0
IFZlY3RvcjxzaXplX3Q+JiBncmlkTGluZXMpCit7CisgICAgLy8gVGhlIGdyaWQgbGluZSBpbmVx
dWFsaXR5IG5lZWRzIHRvIGJlIHN0cmljdCAod2hpY2ggZG9lc24ndCBtYXRjaCB0aGUgYWZ0ZXIg
LyBlbmQgY2FzZSkgYmVjYXVzZSB8cG9zaXRpb258IGlzCisgICAgLy8gYWxyZWFkeSBjb252ZXJ0
ZWQgdG8gYW4gaW5kZXggaW4gb3VyIGdyaWQgcmVwcmVzZW50YXRpb24gKGllIG9uZSB3YXMgcmVt
b3ZlZCBmcm9tIHRoZSBncmlkIGxpbmUgdG8gYWNjb3VudCBmb3IKKyAgICAvLyB0aGUgc2lkZSku
CisgICAgc2l6ZV90IGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uSW5kZXggPSAwOworICAgIGNvbnN0
IHNpemVfdCogZmlyc3RMaW5lQmVmb3JlUG9zaXRpb24gPSBzdGQ6Omxvd2VyX2JvdW5kKGdyaWRM
aW5lcy5iZWdpbigpLCBncmlkTGluZXMuZW5kKCksIHBvc2l0aW9uKTsKKyAgICBpZiAoZmlyc3RM
aW5lQmVmb3JlUG9zaXRpb24gIT0gZ3JpZExpbmVzLmVuZCgpKSB7CisgICAgICAgIGlmICgqZmly
c3RMaW5lQmVmb3JlUG9zaXRpb24gPiBwb3NpdGlvbiAmJiBmaXJzdExpbmVCZWZvcmVQb3NpdGlv
biAhPSBncmlkTGluZXMuYmVnaW4oKSkKKyAgICAgICAgICAgIC0tZmlyc3RMaW5lQmVmb3JlUG9z
aXRpb247CisKKyAgICAgICAgZmlyc3RMaW5lQmVmb3JlUG9zaXRpb25JbmRleCA9IGZpcnN0TGlu
ZUJlZm9yZVBvc2l0aW9uIC0gZ3JpZExpbmVzLmJlZ2luKCk7CisgICAgfQorICAgIHJldHVybiBm
aXJzdExpbmVCZWZvcmVQb3NpdGlvbkluZGV4OworfQorCitzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNw
YW4+IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlUm93U3RhcnRDb2x1bW5TdGFydE5hbWVk
R3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IEdyaWRSZXNvbHZl
ZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYg
cG9zaXRpb24sIGNvbnN0IFZlY3RvcjxzaXplX3Q+JiBncmlkTGluZXMpCit7CisgICAgc2l6ZV90
IGdyaWRMaW5lSW5kZXggPSBzdGQ6Om1heDxpbnQ+KDAsIGZpcnN0TmFtZWRHcmlkTGluZUJlZm9y
ZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbi50b0ludCgpLCBncmlkTGluZXMpIC0g
cG9zaXRpb24uc3BhblBvc2l0aW9uKCkgKyAxKTsKKyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBy
ZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbihncmlkTGluZXNb
Z3JpZExpbmVJbmRleF0pOworICAgIGlmIChyZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPiByZXNv
bHZlZE9wcG9zaXRlUG9zaXRpb24pCisgICAgICAgIHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA9
IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbjsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxH
cmlkU3Bhbj4ocmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uLCByZXNvbHZlZE9wcG9zaXRlUG9zaXRp
b24pOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IEdyaWRSZXNvbHZlZFBvc2l0aW9u
OjpyZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9z
aXRlUG9zaXRpb24oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29sdmVkT3Bwb3NpdGVQ
b3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgY29uc3QgVmVjdG9yPHNpemVf
dD4mIGdyaWRMaW5lcykKK3sKKyAgICBzaXplX3QgZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0
aW9uSW5kZXggPSBncmlkTGluZXMuc2l6ZSgpIC0gMTsKKyAgICBjb25zdCBzaXplX3QqIGZpcnN0
TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbiA9IHN0ZDo6dXBwZXJfYm91bmQoZ3JpZExpbmVzLmJl
Z2luKCksIGdyaWRMaW5lcy5lbmQoKSwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKKyAgICBp
ZiAoZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uICE9IGdyaWRMaW5lcy5lbmQoKSkKKyAg
ICAgICAgZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uSW5kZXggPSBmaXJzdExpbmVBZnRl
ck9wcG9zaXRlUG9zaXRpb24gLSBncmlkTGluZXMuYmVnaW4oKTsKKworICAgIHNpemVfdCBncmlk
TGluZUluZGV4ID0gc3RkOjptaW4oZ3JpZExpbmVzLnNpemUoKSAtIDEsIGZpcnN0TGluZUFmdGVy
T3Bwb3NpdGVQb3NpdGlvbkluZGV4ICsgcG9zaXRpb24uc3BhblBvc2l0aW9uKCkgLSAxKTsKKyAg
ICBHcmlkUmVzb2x2ZWRQb3NpdGlvbiByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSBHcmlkUmVz
b2x2ZWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZShn
cmlkTGluZXNbZ3JpZExpbmVJbmRleF0pOworICAgIGlmIChyZXNvbHZlZEdyaWRMaW5lUG9zaXRp
b24gPCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pCisgICAgICAgIHJlc29sdmVkR3JpZExpbmVQ
b3NpdGlvbiA9IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbjsKKyAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCByZXNvbHZlZEdyaWRM
aW5lUG9zaXRpb24pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoQ1NTX0dSSURfTEFZT1VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZGEwYzQ1ZDIwYWNh
YzliMmM3ZDVkMDQ5NzU1YjAxNzk4ZmU5MmQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmgKQEAgLTAsMCArMSwx
NTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEdyaWRSZXNv
bHZlZFBvc2l0aW9uX2gKKyNkZWZpbmUgR3JpZFJlc29sdmVkUG9zaXRpb25faAorCisjaWYgRU5B
QkxFKENTU19HUklEX0xBWU9VVCkKKworI2luY2x1ZGUgIkdyaWRQb3NpdGlvbi5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdyaWRTcGFuOworY2xhc3MgUmVuZGVyQm94OworY2xh
c3MgUmVuZGVyU3R5bGU7CisKK2VudW0gR3JpZFBvc2l0aW9uU2lkZSB7CisgICAgQ29sdW1uU3Rh
cnRTaWRlLAorICAgIENvbHVtbkVuZFNpZGUsCisgICAgUm93U3RhcnRTaWRlLAorICAgIFJvd0Vu
ZFNpZGUKK307CisKK2VudW0gR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIHsKKyAgICBGb3JDb2x1
bW5zLAorICAgIEZvclJvd3MKK307CisKKy8vIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBhbiBpbmRl
eCBpbnRvIG9uZSBvZiB0aGUgZGltZW5zaW9ucyBvZiB0aGUgZ3JpZCBhcnJheS4KKy8vIFdyYXBz
IGEgc2l6ZV90IGludGVnZXIganVzdCBmb3IgdGhlIHB1cnBvc2Ugb2Yga25vd2luZyB3aGF0IHdl
IG1hbmlwdWxhdGUgaW4gdGhlIGdyaWQgY29kZS4KK2NsYXNzIEdyaWRSZXNvbHZlZFBvc2l0aW9u
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgR3JpZFJlc29sdmVkUG9zaXRpb24gYWRqdXN0R3JpZFBv
c2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZShzaXplX3QgcmVzb2x2ZWRQb3NpdGlvbikKKyAg
ICB7CisgICAgICAgIHJldHVybiByZXNvbHZlZFBvc2l0aW9uID8gR3JpZFJlc29sdmVkUG9zaXRp
b24ocmVzb2x2ZWRQb3NpdGlvbiAtIDEpIDogR3JpZFJlc29sdmVkUG9zaXRpb24oMCk7CisgICAg
fQorCisgICAgc3RhdGljIEdyaWRSZXNvbHZlZFBvc2l0aW9uIGFkanVzdEdyaWRQb3NpdGlvbkZv
clNpZGUoc2l6ZV90IHJlc29sdmVkUG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKKyAg
ICB7CisgICAgICAgIC8vIEFuIGl0ZW0gZmluaXNoaW5nIG9uIHRoZSBOLXRoIGxpbmUgYmVsb25n
cyB0byB0aGUgTi0xLXRoIGNlbGwuCisgICAgICAgIGlmIChzaWRlID09IENvbHVtbkVuZFNpZGUg
fHwgc2lkZSA9PSBSb3dFbmRTaWRlKQorICAgICAgICAgICAgcmV0dXJuIGFkanVzdEdyaWRQb3Np
dGlvbkZvclJvd0VuZENvbHVtbkVuZFNpZGUocmVzb2x2ZWRQb3NpdGlvbik7CisKKyAgICAgICAg
cmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9uKHJlc29sdmVkUG9zaXRpb24pOworICAgIH0KKwor
ICAgIHN0YXRpYyBzaXplX3QgZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoY29uc3QgUmVuZGVyU3R5
bGUmIGdyaWRDb250YWluZXJTdHlsZSk7CisgICAgc3RhdGljIHNpemVfdCBleHBsaWNpdEdyaWRS
b3dDb3VudChjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlKTsKKworICAgIHN0
YXRpYyBHcmlkU3BhbiByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRp
b24oY29uc3QgUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBjb25zdCBHcmlk
UmVzb2x2ZWRQb3NpdGlvbiYpOworICAgIHN0YXRpYyB2b2lkIGFkanVzdE5hbWVkR3JpZEl0ZW1Q
b3NpdGlvbihjb25zdCBSZW5kZXJTdHlsZSYsIEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNp
ZGUpOworICAgIHN0YXRpYyB2b2lkIGFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3Qg
UmVuZGVyU3R5bGUmLCBHcmlkUG9zaXRpb24mIGluaXRpYWxQb3NpdGlvbiwgR3JpZFBvc2l0aW9u
JiBmaW5hbFBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIGluaXRpYWxQb3NpdGlvblNpZGUsIEdy
aWRQb3NpdGlvblNpZGUgZmluYWxQb3NpdGlvblNpZGUpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRl
clN0eWxlJiwgY29uc3QgUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKTsKKyAg
ICBzdGF0aWMgR3JpZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlv
bkZyb21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEdyaWRQb3NpdGlvbiYsIEdyaWRQ
b3NpdGlvblNpZGUpOworICAgIHN0YXRpYyBHcmlkUmVzb2x2ZWRQb3NpdGlvbiByZXNvbHZlR3Jp
ZFBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgR3JpZFBvc2l0aW9u
JiwgR3JpZFBvc2l0aW9uU2lkZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bh
bj4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJlbmRl
clN0eWxlJiwgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29sdmVkT3Bwb3NpdGVQb3Np
dGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lkZSk7CisgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgR3JpZFJlc29s
dmVkUG9zaXRpb24mIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9u
JiwgR3JpZFBvc2l0aW9uU2lkZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bh
bj4gcmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3RhcnROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0
T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBv
c2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYp
OworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVSb3dFbmRDb2x1
bW5FbmROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBH
cmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlk
UG9zaXRpb24mLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYpOworCisgICAgR3JpZFJlc29sdmVkUG9z
aXRpb24oc2l6ZV90IHBvc2l0aW9uKQorICAgICAgICA6IG1faW50ZWdlclBvc2l0aW9uKHBvc2l0
aW9uKQorICAgIHsKKyAgICB9CisKKyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlvbihjb25zdCBHcmlk
UG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCisgICAgeworICAgICAg
ICBBU1NFUlQocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpOworICAgICAgICBzaXplX3QgaW50
ZWdlclBvc2l0aW9uID0gcG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkgLSAxOworCisgICAgICAg
IG1faW50ZWdlclBvc2l0aW9uID0gYWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShpbnRlZ2VyUG9z
aXRpb24sIHNpZGUpLm1faW50ZWdlclBvc2l0aW9uOworICAgIH0KKworICAgIEdyaWRSZXNvbHZl
ZFBvc2l0aW9uJiBvcGVyYXRvcisrKCkKKyAgICB7CisgICAgICAgIG1faW50ZWdlclBvc2l0aW9u
Kys7CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0o
Y29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1faW50ZWdlclBvc2l0aW9uID09IG90aGVyLm1faW50ZWdlclBvc2l0aW9uOworICAg
IH0KKworICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBvdGhl
cikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ludGVnZXJQb3NpdGlvbiA8IG90aGVy
Lm1faW50ZWdlclBvc2l0aW9uOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I+KGNvbnN0IEdy
aWRSZXNvbHZlZFBvc2l0aW9uJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBt
X2ludGVnZXJQb3NpdGlvbiA+IG90aGVyLm1faW50ZWdlclBvc2l0aW9uOworICAgIH0KKworICAg
IGJvb2wgb3BlcmF0b3I8PShjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgb3RoZXIpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gbV9pbnRlZ2VyUG9zaXRpb24gPD0gb3RoZXIubV9pbnRl
Z2VyUG9zaXRpb247CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj49KGNvbnN0IEdyaWRSZXNv
bHZlZFBvc2l0aW9uJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ludGVn
ZXJQb3NpdGlvbiA+PSBvdGhlci5tX2ludGVnZXJQb3NpdGlvbjsKKyAgICB9CisKKyAgICBzaXpl
X3QgdG9JbnQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW50ZWdlclBvc2l0aW9u
OworICAgIH0KKworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIG5leHQoKSBjb25zdAorICAgIHsK
KyAgICAgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9uKG1faW50ZWdlclBvc2l0aW9uICsg
MSk7CisgICAgfQorCitwcml2YXRlOgorCisgICAgc3RhdGljIHNpemVfdCBleHBsaWNpdEdyaWRT
aXplRm9yU2lkZShjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBHcmlkUG9z
aXRpb25TaWRlKTsKKworICAgIHNpemVfdCBtX2ludGVnZXJQb3NpdGlvbjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisK
KyNlbmRpZiAvLyBHcmlkUmVzb2x2ZWRQb3NpdGlvbl9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>229980</attachid>
            <date>2014-04-23 04:58:34 -0700</date>
            <delta_ts>2014-04-23 04:58:34 -0700</delta_ts>
            <desc>Archive of layout-test-results from webkit-ews-10 for mac-mountainlion-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>526258</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
AFUil0TbCNNCOwAAAD8AAAAvABwAZmFzdC9mcmFtZXMvZnJhbWUtZGlzcGxheS1ub25lLWZvY3Vz
LXN0ZGVyci50eHRVVAkAA5GhV1ORoVdTdXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1N
VUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0uABQSwMECgAAAAAAYCKXRAAA
AAAAAAAAAAAAAAwAHABmYXN0L2xvYWRlci9VVAkAA6ShV1P1oldTdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAFkil0TbCNNCOwAAAD8AAABSABwAZmFzdC9sb2FkZXIvZGlzcGxheS1pbWFnZS11bnNl
dC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1yZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVUCQAD
mqFXU5qhV1N1eAsAAQT1AQAABBQAAABzLClJzS0oUSjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2Tm
pCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBLAwQUAAIACABaIpdE2wjTQjsAAAA/AAAAUwAcAGZh
c3QvbG9hZGVyL2ltYWdlcy1lbmFibGVkLXVuc2V0LWNhbi1ibG9jay1pbWFnZS1hbmQtY2FuLXJl
bG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0VVQJAAOboVdTm6FXU3V4CwABBPUBAAAEFAAAAHMsKUnN
LShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsD
BBQAAgAIAGAil0TbCNNCOwAAAD8AAAAtABwAZmFzdC9sb2FkZXIvcmVsb2FkLXBvbGljeS1kZWxl
Z2F0ZS1zdGRlcnIudHh0VVQJAAOkoVdTpKFXU3V4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0r
LE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAAAHci
l0QAAAAAAAAAAAAAAAAJABwAZmFzdC94c2wvVVQJAAPRoVdT9aJXU3V4CwABBPUBAAAEFAAAAFBL
AwQUAAIACAB2IpdEcv1l8oUAAADpAAAAJQAcAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0
ZGVyci50eHRVVAkAA9ChV1PQoVdTdXgLAAEE9QEAAAQUAAAArU4xDsJADNv7inygZGC7GSbYQHRO
21SclLtUuZzU/p6DfoHFsmzL9qRpjUIeNQObqQVYovAPAiK+VGrighdywuvwwIHHW3S8067Vn1y8
4ELFcSuCxkWrTS2+va2fdTo1FSRmhjOwcOLsENOq5l1zwkEhQM00tlFXEKX5T+P9Uc/z90X3AVBL
AwQUAAIACAB2IpdEBY9VjpMAAADQAgAAJwAcAGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11cmkt
c3RkZXJyLnR4dFVUCQAD0KFXU9ChV1N1eAsAAQT1AQAABBQAAADtTzsOwjAM3XsKX6B4YMsME2wg
OjupKyI5cZU4EtyeQI/Ahlgs2++j94KmNQpZ1AxcihYHSxT+DIeIN5WWuOKBjPA4XXBif4qGZ3pq
sytXq7hQNXxUwcJVWwmd3i8bPc1jTKsWG1uJu/4DiZlhDyycOBts6NARt63goGXyPYApiNL8bZCs
tYX726TrRIbw7/vTfV9QSwMEFAACAAgAdyKXRIFKd61LAAAArAAAADQAHABmYXN0L3hzbC94c2x0
LXRyYW5zZm9ybS10by1mcmFnbWVudC1jcmFzaC1zdGRlcnIudHh0VVQJAAPRoVdT0aFXU3V4CwAB
BPUBAAAEFAAAALXMsQ2AMAxE0T5T3Aq0bOPABVlybGQs5keiYAPqr/e3mKealIaDmZErhhoBUycW
0DjphVtSpRtbcudQ11fEwGHRxb6O4lVt++X6AFBLAwQUAAIACAASI5dES9d4WywBAADHAQAAEQAc
AGZ1bGxfcmVzdWx0cy5qc29uVVQJAAP0oldT9aJXU3V4CwABBPUBAAAEFAAAAF1QTU8CMRD9L3PS
pHEFDoT1RICokaihKMdmYGehobvbtFOEEP+7bdeDsZfOTN7HvJnO52q1kB/Ltby5ApNnD+UVGqo0
pmIzmqXvpCvqUtESf3XuKBmZ/veqCk63e2U6rDyj47sDNyahHNnOMZSwWjxGN/n89goC6Gxpx1TF
+ftUyjjBHQeMDJitpvIpDg7oleeKnIOSXaDv/AT4o7Y2MUfjyVBAGxrlaO/Ie921McFAgG450oLN
BjUaTz2u0RHU7qG8F2Dw0gVWObaqdDSB4rMzoSFfzJGxWGxksaHti+ZimbHrfCEBJ3LJKi7Qq1r0
nqLxaDgZjAVYfSbzq0stbs2fJVIm64j5Elm8O/TJBNT6nIA5069qbfB4yZuGqK76gyGnjKrWCZuP
cvvwA1BLAwQKAAAAAABUIpdEAAAAAAAAAAAAAAAABQAcAGh0dHAvVVQJAAOPoVdT9aJXU3V4CwAB
BPUBAAAEFAAAAFBLAwQKAAAAAABxIpdEAAAAAAAAAAAAAAAACwAcAGh0dHAvdGVzdHMvVVQJAAPG
oVdT9aJXU3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAABUIpdEAAAAAAAAAAAAAAAAEAAcAGh0dHAv
dGVzdHMvbWlzYy9VVAkAA4+hV1P1oldTdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAFQil0QVNTWS
egAAALwAAAAqABwAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRlcnIudHh0VVQJ
AAOPoVdTj6FXU3V4CwABBPUBAAAEFAAAAI2OQQ7DIAwE73mFP0Ag7aEVvyHEVSwZjIyR+vwS5QPV
XlY7h9kspREnI6mAqqIRPsQIp1mL3m+P1xpmtvgOIfhCPXvFLkMzdv/tbG5Ph6PSRM0NpXVuwFQR
noCMBavBTZdJ4l0hwqhpnxoTYEnHf7oqfeTzupcsMS8/UEsDBAoAAAAAAFgil0QAAAAAAAAAAAAA
AAAWABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL1VUCQADmKFXU/WiV1N1eAsAAQT1AQAABBQAAABQ
SwMEFAACAAgAWCKXRNsI00I7AAAAPwAAADcAHABodHRwL3Rlc3RzL25hdmlnYXRpb24vZmFsbGJh
Y2stYW5jaG9yLXJlbG9hZC1zdGRlcnIudHh0VVQJAAOYoVdTmKFXU3V4CwABBPUBAAAEFAAAAHMs
KUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgA
UEsDBAoAAAAAAHkil0QAAAAAAAAAAAAAAAAUABwAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAkAA9Wh
V1P1oldTdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAHkil0QAAAAAAAAAAAAAAAAqABwAaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvVVQJAAPVoVdT9aJXU3V4CwABBPUB
AAAEFAAAAFBLAwQUAAIACAB5IpdEY6qsbIIAAACoAAAAQAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAA9WhV1PVoVdT
dXgLAAEE9QEAAAQUAAAALY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKb
F6kEVdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQ
D9gB+DRoekNtXCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQUAAIACAB5IpdEY6qsbIIAAACoAAAA
UgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVj
dGVkLWJ5LXN0eWxlLXNyYy0yLXN0ZGVyci50eHRVVAkAA9WhV1PVoVdTdXgLAAEE9QEAAAQUAAAA
LY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMtt
nePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2W
OdKOza8xRJuC7GpN1PGavlBLAwQUAAIACABxIpdEYEtmEJEAAAD7AQAARQAcAGh0dHAvdGVzdHMv
c2VjdXJpdHkveHNzLURFTklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4
dFVUCQADxqFXU8ahV1N1eAsAAQT1AQAABBQAAADtjjEOgzAMRXdO4QuEBJZWmWHo0p4BBVMimSSy
nQpuXzr0Bh2rv76v90LeSqRJY06AzJk9LJEQVtXire36S+vOdf7qnLOCoXLUw+4iZhjvt3Ewu5CZ
c6gbJjVf4MHxGVO7bwQUE0IPSPghQPQglBVRm/PpX8hyuj3kRAd0rYMFJ62MAhMjSC0ls+LchH/o
j0PfUEsDBBQAAgAIABUil0TqinxCYQUAAAUPAAAKABwAaHR0cGQuY29uZlVUCQADGqFXU5WiV1N1
eAsAAQT1AQAABBQAAACtV21v2zYQ/q5fQbgwsBWTnLhx5w2BAddxmixJnVlOAyxJDVqiJNYSyZFU
EmfrfvuOtOUXyREKbA5gk8fnuTsej8eLT+QjkWPONWq0ciUbjnPJg/kpTQkIdCZat2R2QXUr0VqE
XgprDeeahq8BBA0bjh9wST5wLF+FKYOYGQQYnNCM8FyjdwcHzgUhop/SR4JGzLnCz+v5mPyZE6UV
OtxGFdTDjuNcUeYLLIlvtwRAw9+RdBxfY6l3AIOUEmbUdg7MtDBzTeQgoWlozMHHRAWHVzzMYT84
18nLNOFKT7OlJKUz8kyCFhY4SEi7BeLpBuUpvk2nLEjzkNRxV5ASMeXxNOAsonEdd4Mq0ROCQ9h2
HXcFKRGVSutIsFwiZHAqdQyzXqJgRWs9M+slShDTOgYslwiMxFxTrClndcQtWPnkMhyTDIvao1th
yvsLjL76LS4hZWJKcT3NAEokSZ4k1bVnsIKUiCIRnYK1+pTJMDcoQ3SWN+kTzgg6bP/sHcDfoeMc
n1BJAs3lArV6jtExEnZr6JyFoEuhU56m/MlfZJeUzRW6ylNNP1PypNAQTA0+ngPS3gBl6X2DHoEl
SUNiZkulEnIV4gNrP4WELTZQFEmemRXnuLX2pec4/SAgSpmaZF32Eo2tBFw2QoX+QY0v994Pd2fJ
w91EP/x9dxI+3PnqYWq+fmz0Xrd7AoONWSPxIYNUtLDuHresfnDhRpEBZpzRAKfWCShzJyTCEIHJ
QhCkybNuiRRT5pxB6WAAueR8nguFRlFkylB8SR5Jip6wZGZ2ymWGoXg3E9RMUTNHTY3uG01530DN
nkLNmZn9NSYRkUR+oyA2c3BDuv0YKp8RNVDAsxllJPwujRae8V3zGxPI7aHmTQOS0Ap2UdYwXhpu
IDso0sinMcM6lzYmzvF5VFSTdZIHPYhkIe+VMbaqBMsz6ofhJWZxDgZQiJEXzitiliKPpRUxYcgj
rCrWICYVcSSRF8mqSUiusIqGY/NI1WRiUnGNHiRYKjB37o/cbrfzi9tFHlV8OaxwKfhFdUX8Ffb8
Fe9T2T5ot93frmGZqgptDtuZy1dpF2Prijuv7phB2Fg1bIyDmFfEAgIh+Ks7bi/NiGqoBGxX6D1i
dybNCvxUFlP9grw0r8gDiFGAq4ek4JCqoVGPyFOPVSWADkB/UGXIHHmyavYlcSe3yIMf/VSOwAca
d4q6i7xi5s1gUIbenn86Gd367mG7cwjmhR2UQYPr7vv3a32BgNmrQTembNg3PheYi9F51x0Xauac
dt1KktwMfDi3ApMHqr0PcbSNOKogJqeQ7WuEjrqOheze8+33eXXdzacI8LWkHF62hbnJcPXhmoNm
uKehvX9wX+BuQJ5DZkIWQj4tcwcOy+QJ5AScP5z16mx2ys3KW1unsRAp1HDjROvZha4SeTp+WWOG
LOAhZTF6dqFWCgmPDPL+2LMav1CBvPhll36GWZjCIwM9jKsCSU3awxgyPN11wz4Xic7gPinzU1ag
bGV1hYlvWGCqIBa6WLlU2Tasrsbal39TY/eEwvb3LuDA2UR8H3CG9fcAXcVzGRCrWO3LjJDK7YxY
P/227YC+G749G6zlsPCvcsiwMI1SHNuOG7oODv8scLa7pBIu9ZQLwqYaprBcE7ai2Vo5N15OhyyG
N9e8dlvCAWchgtd0+PvN0J9Mr4aTs9HJN/RlMu4PhtvAsVHuvUUuujt9KBn/TKXOcWo6CPT21+7R
0bul4b39ml3wLzfeHLe2+KDujfMG9eFIiKsECWhEAxSZdmahNMmQkFwT27p6gFw1Ug2pZPB/9Etb
vaTpzry39969Z7qiMOJy/l8sbDWG/wJQSwMECgAAAAAAwiKXRAAAAAAAAAAAAAAAAAYAHABtZWRp
YS9VVAkAA1uiV1P1oldTdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAKwil0SIv+Y4tQAAAAMBAAAq
ABwAbWVkaWEvdmlkZW8tc2V0LXJhdGUtZnJvbS1wYXVzZS1zdGRlcnIudHh0VVQJAAMzoldTM6JX
U3V4CwABBPUBAAAEFAAAAFXOMU4DMRSE4Z5TzAV25fUaUJYqJd1KCCgQxYs9Say82CvbEuT2hIAi
6Eff/NYMrjOusyOMm+wwWdvfrW7xys1csmetb24YVm4azfiO9cuscmJ5bDzCfN5vRfyGRsZgECiq
2UtjwMc+KiFYmEJMO1TygFhRW1RFTFhK3pUz/gClHL4nPh8XZYs5YS8pKEuP50p0XpKnzj/S0xmq
aPnPGyT976qypZ6uDZfvvLDIBb9W/Lb1N19QSwMECgAAAAAAwiKXRAAAAAAAAAAAAAAAAAoAHABt
ZWRpYS9XM0MvVVQJAANboldT9aJXU3V4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADCIpdEAAAAAAAA
AAAAAAAAEAAcAG1lZGlhL1czQy92aWRlby9VVAkAA1uiV1P1oldTdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAABIjl0QAAAAAAAAAAAAAAAAdABwAbWVkaWEvVzNDL3ZpZGVvL25ldHdvcmtTdGF0ZS9V
VAkAA/OiV1P1oldTdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAMIil0Rw9lj2pwAAANkAAABIABwA
bWVkaWEvVzNDL3ZpZGVvL25ldHdvcmtTdGF0ZS9uZXR3b3JrU3RhdGVfZHVyaW5nX2xvYWRzdGFy
dC1jcmFzaC1sb2cudHh0VVQJAANboldTW6JXU3V4CwABBPUBAAAEFAAAAE2OzQrCMBCE7/sUC170
YKEgiL1KBS9tafw5J822DbbZkqTi45uKiJdhZoePnYKxcdL3OHCHLc9WR3V4J1U5bsj7bJem+0MC
34itNANpDIyKGh4JHfmJrTdPipfIEgYzGtshzyEB8EFHk8HFjBGLNn6SeumlWgo1SPv4kT2hpVfA
QD4sKDmXwaqqy2MuBF6LOhdVWYjzLcft30hcT0bjZ+kGVnl5AngDUEsDBBQAAgAIABIjl0QLy+ED
H3QAAGcbAwBFABwAbWVkaWEvVzNDL3ZpZGVvL25ldHdvcmtTdGF0ZS9uZXR3b3JrU3RhdGVfZHVy
aW5nX2xvYWRzdGFydC1zYW1wbGUudHh0VVQJAAPzoldT86JXU3V4CwABBPUBAAAEFAAAAOxd/W/b
ttb+PX+FBgxD2qmp+CnKuLhAmix9gyVNFqfbfTEUhkRRiW5lya8sd8mwP/6lJH9QtJTIbtbSawq0
jRyL5POcw8PDw0PyMPWT+2k8tbLImvrjSRKnN9ZvIrjMMy6mU2t/EocWBsD1Xljik8jvLeBY4zhJ
4qngWRpO9+bfHFiLP8rbv1dvfti79Ivb1Rfkn9e/ZslsLKavj/3Cf/3Tb8PX8q2f42L+35tZnISv
r0Qi/KmYfwYPotwfiz+y/OPrVRUH/mTy+ihLC5EW09fnPr8YKr/dO8v80DoMw3zRQucOOIhR13Gc
vdNQvhRHscjnbePZuCwvEQdKEb+KfBpn6ar5BLEfrX357wECP77YO8pCYV3fT8TiG/9h9BXF1v47
v4g/iRcSfC7rsVY81XiuxbS4mqWpyGua3A97e5IN8fo6Hi/Lgg7Arxz8CiLLwQPoDAg+AMSxXjkS
wd7F0Gq2TuK35If/kUI6YAfE2gfwBJMXe1dikuWF8mV3b+/ITxLrJvcnt4O98l2PeNb1bS78cAQc
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
/CVok2QC4tDmhmXculIkCShK3SJ+NgaCjfy69s7yoqfdi2641OW5unFX+3BsOHZYOkbNnh++lLOo
Gz4sLG44gIOkfMwIFcl0UhR1HY4H1mlSZc1Rcan0Xyfrhmu1wYeGwULqSUkkvX97tZCIREiEYF92
PNC5Tcy0uivXYYBpuQecayH8KyGRye7dL1BLAwQKAAIAAADCIpdEO/wphDQAAAA0AAAARQAcAG1l
ZGlhL1czQy92aWRlby9uZXR3b3JrU3RhdGUvbmV0d29ya1N0YXRlX2R1cmluZ19sb2Fkc3RhcnQt
c3RkZXJyLnR4dFVUCQADW6JXU1uiV1N1eAsAAQT1AQAABBQAAAAjUFJPQ0VTUyBVTlJFU1BPTlNJ
VkUgLSBXZWJQcm9jZXNzIChwaWQgNDExNzkpCiNFT0YKUEsDBBQAAgAIAKIil0Q3qYVFWAIAAFoX
AAArABwAcHl3ZWJzb2NrZXQud3MubG9nLTIzQXByMjAxNC0wNDE2NDMtZXJyLnR4dFVUCQADH6JX
UxuhV1N1eAsAAQT1AQAABBQAAADtl89vmzAUgO/5K556aaIRDISQlNt+pNu0qZuSqjlEkWXg0VgB
zGynGfvrZ5J0TbV26g7pyeKAsJ/1Pvs9PsEi8Pyw74X9YABeGAdePAgcbzhcwmIynX6bLoHSkvGK
UneOyUyka9QzlHcoY5j8TLHWXFTAK6ilSFEpXt2CxB8bVBpyKcoYuud+MHI9c/nnDgyHY3/c61xL
lmLC0jV0S2FCJaZYaUhZUUDBlO7FHYBLXiCckVmjNJbkK08kkw25lKzErZBrRb43eiUqN78fITco
leFRJHBHpOAJqXcR7dMxuls3Zw4UvEIYjgPnCJ8e2KleSWSZgQBQWORuziuuVvfT3cPdgbTgBpyy
LJNmee+VqAfBYEf9mOqBdrof+MSqrED53pyoeg7Z2a04Ar8RxaZERT4wzchkPiOm7l+4JtdCFIrM
UslrrcgWkzXXdUP0isusZlI3pBQZrRszo3bURGmTnxWiwiP0KNofOKWGXVP6B9qBfxC2+3+tw41C
/2nCQxN0Xw3kIjyq8gPGNjfJ3bzYnIJlX7vjXvMOvdbme4CgbaCrsK1w0b3juF1sJddIRZ4r1PHx
w5tkk+coqeK/cNnroJTC6GMxkbISppeX8E6KNZqXkNfY6Sz+VlLkjNqwxfzt9Orz1cenpPS45WPw
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
ZN7x2KxNxo7krEVB5djVtZadI6ph0cRLRGlYc4pOiuHcYZ7lf06EmPa8ClaJRk3D6kJ1LXp1LEvS
ToY2KzFsNUXQAv/cs5qQFylDs4fWZjqUqF6dfxBpUtbwK80zX9kNxio0lRbUCq4nT9RZa9n8ZA05
OiaFS1/jbW7biuipeInjrCiuLCutKokmG5YXVKKAri0roGUDQfNanDcSL2Di4JEwtChvNCus6lq8
M2tf1KKUbFlRJcs5VpGy8xFl7co+PPGNZSnXsK70mt6Y6YxSszcW37hh1b/WiPqu5V27ZjpTs1nb
gC7c2Mjcq2IJyojeDd5vZ62RKYrVtWstohfLdKnPT32i/U18ZPG7PNe0dKZmOd+4bdkPtyIT4FGk
psoyU+rKe88qUZFhdWVrRH8hU18UJauX71ztWRllJaluWHrUTvb5saxP1qA8q3K2spjh/XaVyL24
MtOoEVgp1KJYp46R7ama15SNrHKy4TjRImJjFrYVXSusJWaNyAcU62VwbSOF0wx7Xy0bcayEMrMI
T726j1TEj6lkLRRoGh41qZjxXJNUHkFEOaN4o8Q5LTk4GpYq7NytbFb3qokvrWQtu+XjiJXM/9hg
c+1ETzzXqCaCXKRoXt21Wk8HT/qVbWriWlFh5ZryxUsbyaDSPKLUK5xwbBBgfOmmHFTzfJR7hX/E
sBZRI4ZeWevAKi8nJPAe3lrJjrCaxU/y0EyHGVZiWCW61Jn2NHGxWcG7eZIWFbGGVeLkxBPF6iTO
y9ExFj2dlePcbBTBWpGLsYq6pXYgl1VgWRypZ1krzcrONPGjoiVoeUeWldXtijf3TSNfmo0316KU
bvk4pq7EgA/vdXRezj1hVWbZ0WBZNmQbMQuN1barSo7t1ywLI5Nfucojx0sbrWTPNMu3rRi91aw3
StWyk5ZFsPni1a0xo15gS1Oh5V408ZlF313NxxC87LBk4eVWpCexHvFatvm54QTRDDWiKclmU9TU
zcGl+bCuHSfaN63lo4JKhhj7ZTXjI83asUCRhYnW4J6Fl8zAFJtj5FaoM4b3xjeihG34FIFW1sNY
jdl5Mf+Xaz8TUawRdc+KR5MV/h3eKnStkxJJapaZ1I3MAlkupmV4az5+UYvKgedtI2oSli3hln3p
SjRQGtZxIPuGKpZ9anExK22sE3Uhy57ZComKltUcrV3h12bhrGVZY3h/qfcyTfC6Yyun4Va8daJF
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
CgAAAAAAQiKXRAAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BwMIAAGZhc3QvY3NzL1VUBQADa6FX
U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEIil0TbCNNCOwAAAD8AAAApABgAAAAAAAEAAACk
gQPDAABmYXN0L2Nzcy9jb21wYXJlLWNvbnRlbnQtc3R5bGUtc3RkZXJyLnR4dFVUBQADa6FXU3V4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFUil0QAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQaHD
AABmYXN0L2ZyYW1lcy9VVAUAA5GhV1N1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABVIpdE2wjT
QjsAAAA/AAAALwAYAAAAAAABAAAApIHnwwAAZmFzdC9mcmFtZXMvZnJhbWUtZGlzcGxheS1ub25l
LWZvY3VzLXN0ZGVyci50eHRVVAUAA5GhV1N1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABgIpdE
AAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UGLxAAAZmFzdC9sb2FkZXIvVVQFAAOkoVdTdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAWSKXRNsI00I7AAAAPwAAAFIAGAAAAAAAAQAAAKSB0cQAAGZh
c3QvbG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVs
b2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAUAA5qhV1N1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CABaIpdE2wjTQjsAAAA/AAAAUwAYAAAAAAABAAAApIGYxQAAZmFzdC9sb2FkZXIvaW1hZ2VzLWVu
YWJsZWQtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVy
ci50eHRVVAUAA5uhV1N1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABgIpdE2wjTQjsAAAA/AAAA
LQAYAAAAAAABAAAApIFgxgAAZmFzdC9sb2FkZXIvcmVsb2FkLXBvbGljeS1kZWxlZ2F0ZS1zdGRl
cnIudHh0VVQFAAOkoVdTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAdyKXRAAAAAAAAAAAAAAA
AAkAGAAAAAAAAAAQAO1BAscAAGZhc3QveHNsL1VUBQAD0aFXU3V4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAHYil0Ry/WXyhQAAAOkAAAAlABgAAAAAAAEAAACkgUXHAABmYXN0L3hzbC90cmFuc2Zv
cm0teGhyLWRvYy1zdGRlcnIudHh0VVQFAAPQoVdTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
diKXRAWPVY6TAAAA0AIAACcAGAAAAAAAAQAAAKSBKcgAAGZhc3QveHNsL3hzbHQtYmFkLWltcG9y
dC11cmktc3RkZXJyLnR4dFVUBQAD0KFXU3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHcil0SB
SnetSwAAAKwAAAA0ABgAAAAAAAEAAACkgR3JAABmYXN0L3hzbC94c2x0LXRyYW5zZm9ybS10by1m
cmFnbWVudC1jcmFzaC1zdGRlcnIudHh0VVQFAAPRoVdTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAEiOXREvXeFssAQAAxwEAABEAGAAAAAAAAQAAAKSB1skAAGZ1bGxfcmVzdWx0cy5qc29uVVQF
AAP0oldTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAVCKXRAAAAAAAAAAAAAAAAAUAGAAAAAAA
AAAQAO1BTcsAAGh0dHAvVVQFAAOPoVdTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAcSKXRAAA
AAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BjMsAAGh0dHAvdGVzdHMvVVQFAAPGoVdTdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAVCKXRAAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1B0csAAGh0dHAv
dGVzdHMvbWlzYy9VVAUAA4+hV1N1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABUIpdEFTU1knoA
AAC8AAAAKgAYAAAAAAABAAAApIEbzAAAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1z
dGRlcnIudHh0VVQFAAOPoVdTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAWCKXRAAAAAAAAAAA
AAAAABYAGAAAAAAAAAAQAO1B+cwAAGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9VVAUAA5ihV1N1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACABYIpdE2wjTQjsAAAA/AAAANwAYAAAAAAABAAAApIFJzQAA
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZhbGxiYWNrLWFuY2hvci1yZWxvYWQtc3RkZXJyLnR4dFVU
BQADmKFXU3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHkil0QAAAAAAAAAAAAAAAAUABgAAAAA
AAAAEADtQfXNAABodHRwL3Rlc3RzL3NlY3VyaXR5L1VUBQAD1aFXU3V4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAHkil0QAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQUPOAABodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAUAA9WhV1N1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAB5IpdEY6qsbIIAAACoAAAAQAAYAAAAAAABAAAApIGnzgAAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUBQAD1aFX
U3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHkil0RjqqxsggAAAKgAAABSABgAAAAAAAEAAACk
gaPPAABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZl
Y3RlZC1ieS1zdHlsZS1zcmMtMi1zdGRlcnIudHh0VVQFAAPVoVdTdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAcSKXRGBLZhCRAAAA+wEAAEUAGAAAAAAAAQAAAKSBsdAAAGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzLURFTklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVU
BQADxqFXU3V4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABUil0TqinxCYQUAAAUPAAAKABgAAAAA
AAEAAACkgcHRAABodHRwZC5jb25mVVQFAAMaoVdTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
wiKXRAAAAAAAAAAAAAAAAAYAGAAAAAAAAAAQAO1BZtcAAG1lZGlhL1VUBQADW6JXU3V4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAKwil0SIv+Y4tQAAAAMBAAAqABgAAAAAAAEAAACkgabXAABtZWRp
YS92aWRlby1zZXQtcmF0ZS1mcm9tLXBhdXNlLXN0ZGVyci50eHRVVAUAAzOiV1N1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAADCIpdEAAAAAAAAAAAAAAAACgAYAAAAAAAAABAA7UG/2AAAbWVkaWEv
VzNDL1VUBQADW6JXU3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMIil0QAAAAAAAAAAAAAAAAQ
ABgAAAAAAAAAEADtQQPZAABtZWRpYS9XM0MvdmlkZW8vVVQFAANboldTdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAEiOXRAAAAAAAAAAAAAAAAB0AGAAAAAAAAAAQAO1BTdkAAG1lZGlhL1czQy92
aWRlby9uZXR3b3JrU3RhdGUvVVQFAAPzoldTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwiKX
RHD2WPanAAAA2QAAAEgAGAAAAAAAAQAAAKSBpNkAAG1lZGlhL1czQy92aWRlby9uZXR3b3JrU3Rh
dGUvbmV0d29ya1N0YXRlX2R1cmluZ19sb2Fkc3RhcnQtY3Jhc2gtbG9nLnR4dFVUBQADW6JXU3V4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABIjl0QLy+EDH3QAAGcbAwBFABgAAAAAAAEAAACkgc3a
AABtZWRpYS9XM0MvdmlkZW8vbmV0d29ya1N0YXRlL25ldHdvcmtTdGF0ZV9kdXJpbmdfbG9hZHN0
YXJ0LXNhbXBsZS50eHRVVAUAA/OiV1N1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAADCIpdEO/wp
hDQAAAA0AAAARQAYAAAAAAABAAAApIFrTwEAbWVkaWEvVzNDL3ZpZGVvL25ldHdvcmtTdGF0ZS9u
ZXR3b3JrU3RhdGVfZHVyaW5nX2xvYWRzdGFydC1zdGRlcnIudHh0VVQFAANboldTdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAoiKXRDephUVYAgAAWhcAACsAGAAAAAAAAQAAAKSBHlABAHB5d2Vi
c29ja2V0LndzLmxvZy0yM0FwcjIwMTQtMDQxNjQzLWVyci50eHRVVAUAAx+iV1N1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACiIpdEciuquAgBAACPAgAAKwAYAAAAAAABAAAApIHbUgEAcHl3ZWJz
b2NrZXQud3MubG9nLTIzQXByMjAxNC0wNDE2NDMtb3V0LnR4dFVUBQADH6JXU3V4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIABIjl0SHCtEZhiYAAGGkAAAMABgAAAAAAAEAAACkgUhUAQByZXN1bHRz
Lmh0bWxVVAUAA/SiV1N1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAASI5dEAAAAAAAAAAAAAAAA
CAAYAAAAAAAAABAA7UEUewEAcmV0cmllcy9VVAUAA/OiV1N1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAASI5dExY9HH/cABgC3LyMACgAYAAAAAAABAAAApIFWewEAc3RhdHMuanNvblVUBQAD9KJX
U3V4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOMil0QAAAAAAAAAAAAAAAAEABgAAAAAAAAAEADt
QZF8BwBzdmcvVVQFAAOZoldTdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA4yKXRAAAAAAAAAAA
AAAAAAsAGAAAAAAAAAAQAO1Bz3wHAHN2Zy9zdHJva2UvVVQFAAOZoldTdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA4yKXRFwboB+DAAAAkAAAACUAGAAAAAAAAQAAAKSBFH0HAHN2Zy9zdHJva2Uv
emVyby13aWR0aC1oYW5nLXN0ZGVyci50eHRVVAUAA5miV1N1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAADtIpdEAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UH2fQcAdHJhbnNpdGlvbnMvVVQFAAOu
oldTdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7SKXRHxuZHCIAAAALAIAADcAGAAAAAAAAQAA
AKSBPH4HAHRyYW5zaXRpb25zL2N1YmljLWJlemllci1vdmVyZmxvdy1zdmctbGVuZ3RoLXN0ZGVy
ci50eHRVVAUAA66iV1N1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACwIpdEC8vhAx90AABnGwMA
GwAYAAAAAAABAAAApIE1fwcAV2ViUHJvY2Vzcy00MTE3OS1zYW1wbGUudHh0VVQFAAM8oldTdXgL
AAEE9QEAAAQUAAAAUEsFBgAAAAAyADIA8xMAAKnzBwAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230109</attachid>
            <date>2014-04-24 14:51:48 -0700</date>
            <delta_ts>2014-05-26 04:20:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131732-20140424235125.patch</filename>
            <type>text/plain</type>
            <size>82661</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVmYzI4ODdhZTIzMzc5
NjFhN2Y1NDgyZWM2YzEwNDNlNjkwNDM4Yi4uMWM2ZjFhZjUxOThmNzFiYjg1NmFiYzRmN2FjMTA2
MDI3Njc1Zjg4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDE0LTA0LTI0ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEludHJvZHVjZSBhbiBleHBsaWNpdCB0eXBlIGZvciByZXNvbHZlZCBncmlkIHBv
c2l0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMxNzMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2Ugd2VyZSB1c2luZyBzaW1wbGUgc2l6ZV90IGludGVnZXJzIHRvIHJlcHJlc2VudCByZXNvbHZl
ZCBncmlkCisgICAgICAgIHBvc2l0aW9ucyBpbiBvdXIgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVz
LiBUaGlzIGNoYW5nZSBhbGxvd3MgdXMgdG8KKyAgICAgICAgY2xhcmlmeSB0aGUgY29kZSwgYXZv
aWQgcG90ZW50aWFsIG9mZiBieSBvbmUgbWlzdGFrZXMsIGFuZCBtb3ZlIHRoZQorICAgICAgICBy
ZXNvbHZpbmcgY29kZSB0byBhIGNlbnRyYWwgcGxhY2UuCisKKyAgICAgICAgQSBuZXcgY2xhc3Mg
R3JpZFJlc29sdmVkUG9zaXRpb24gaGFzIGJlZW4gY3JlYXRlZCBhbmQgdGhlIHJlbGF0ZWQKKyAg
ICAgICAgbWV0aG9kcyBoYXZlIGJlZW4gbW92ZWQgdGhlcmUgZnJvbSBSZW5kZXJHcmlkLgorICAg
ICAgICBHcmlkU3BhbiBpcyBub3cgZGVmaW5lZCBieSB0d28gR3JpZFJlc29sdmVkUG9zaXRpb24s
IHNvIGFsbCB0aGUgY29kZQorICAgICAgICB1c2luZyBpdCBoYXMgYmVlbiBtb2RpZmllZCB0byBh
ZGFwdCBpdCB0byBHcmlkUmVzb2x2ZWRQb3NpdGlvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMg
YXMgaXQgaXMgYWxyZWFkeSBjb3ZlcmVkIGJ5IGN1cnJlbnQgdGVzdHMKKyAgICAgICAgKGZhc3Qv
Y3NzLWdyaWQtbGF5b3V0LykuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5nRm9yUG9zaXRpb24pOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdy
aWRUZW1wbGF0ZUFyZWFzKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjb21wdXRlVXNlZEJyZWFkdGhPZkdyaWRUcmFj
a3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZU5vcm1hbGl6ZWRGcmFj
dGlvbkJyZWFkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRl
bnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyR3JpZDo6aW5zZXJ0SXRlbUludG9HcmlkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6
cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9uR3JpZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNaW5vckF4
aXNEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z3JpZEFyZWFCcmVh
ZHRoRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6ZmluZENoaWxkTG9n
aWNhbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmV4cGxpY2l0R3Jp
ZENvbHVtbkNvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmV4
cGxpY2l0R3JpZFJvd0NvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzQ29sdW1u
U2lkZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpleHBsaWNpdEdy
aWRTaXplRm9yU2lkZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpy
ZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24pOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Z3JpZExpbmVEZWZpbmVkQmVmb3JlR3JpZEFyZWEpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6c2V0TmFtZWRMaW5lUG9zaXRpb25JZkRlZmluZWRCZWZvcmVB
cmVhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmFkanVzdE5hbWVk
R3JpZEl0ZW1Qb3NpdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlk
OjphZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRp
b25Gcm9tU3R5bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVz
b2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZU5hbWVkR3JpZExp
bmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OmZpcnN0TmFtZWRHcmlkTGluZUJlZm9yZVBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlc29sdmVSb3dTdGFydENvbHVtblN0YXJ0TmFtZWRH
cmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5hbWVkR3JpZExp
bmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyR3JpZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9HcmlkQ29v
cmRpbmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFNwYW46OkdyaWRTcGFuKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyaWRTcGFuOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvR3JpZFBvc2l0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUG9zaXRpb246OmFk
anVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNpZGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNp
dEdyaWRDb2x1bW5Db3VudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6ZXhwbGljaXRHcmlkUm93Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNDb2x1bW5TaWRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdyaWRT
aXplRm9yU2lkZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVz
b2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OmdyaWRMaW5lRGVmaW5lZEJlZm9yZUdyaWRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6
OnNldE5hbWVkTGluZVBvc2l0aW9uSWZEZWZpbmVkQmVmb3JlQXJlYSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRp
b25zRnJvbVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpy
ZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVz
b2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlv
bkZyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVz
b2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdh
aW5zdE9wcG9zaXRlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Zmlyc3ROYW1lZEdyaWRM
aW5lQmVmb3JlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRp
b246OnJlc29sdmVSb3dTdGFydENvbHVtblN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5z
dE9wcG9zaXRlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRp
b246OnJlc29sdmVSb3dFbmRDb2x1bW5FbmROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bw
b3NpdGVQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBv
c2l0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246
OmFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNpZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OkdyaWRSZXNvbHZlZFBvc2l0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpvcGVyYXRvcisr
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpvcGVyYXRvcj09KToK
KyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpvcGVyYXRvcjwpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246Om9wZXJhdG9yPik6CisgICAgICAg
IChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6b3BlcmF0b3I8PSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6b3BlcmF0b3I+PSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6dG9JbnQpOgorICAgICAgICAoV2ViQ29yZTo6R3Jp
ZFJlc29sdmVkUG9zaXRpb246Om5leHQpOgorCiAyMDE0LTA0LTI0ICBFcmljIENhcmxzb24gIDxl
cmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIGRvbid0IGFzayBmb3IgQVZB
c3NldFRyYWNrIHByb3BlcnRpZXMgYmVmb3JlIHRoZXkgYXJlIGF2YWlsYWJsZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCAyMDY0ZWUwMmEyOGIwNmUwMjQwZWRmYmNmN2I4NmYzNGMyYWM1NDY1Li42
N2RmMzkzMmVjMTY4OTg0NTJlYTRhNGJiZDg4NTUwN2ExMWQ4NmM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMjM3OSw2ICsyMzc5LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRl
cmluZy9zdHlsZS9Db250ZW50RGF0YS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvQ291bnRlckRp
cmVjdGl2ZXMuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAKKyAgICByZW5k
ZXJpbmcvc3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxl
L0tleWZyYW1lTGlzdC5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3Bw
CiAgICAgcmVuZGVyaW5nL3N0eWxlL1F1b3Rlc0RhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBlN2U1ZWYzMWQ5YjAwOTQzYTA4
ZjAxZGYxMWRjYzdlMDQ3NTAxYWEzLi44NGRlMmEyNDIyNTE4ZGVjMmU2MWY0YWJkNjZmODljYzhj
NmQ3MTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29y
ZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZj
eHByb2oKQEAgLTExNDc3LDYgKzExNDc3LDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2lu
MzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0
JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFJlc29sdmVkUG9zaXRpb24uY3Bw
IiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEtleWZyYW1l
TGlzdC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpA
QCAtMjAxNTIsNiArMjAxNTMsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVy
aW5nXHN0eWxlXEdyaWRDb29yZGluYXRlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxyZW5kZXJpbmdcc3R5bGVcR3JpZExlbmd0aC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRQb3NpdGlvbi5oIiAvPgorICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRSZXNvbHZlZFBvc2l0aW9uLmgiIC8+CiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFRyYWNrU2l6ZS5o
IiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEtleWZyYW1l
TGlzdC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXE5p
bmVQaWVjZUltYWdlLmgiIC8+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXggZDJmYWJhZTM3ZDQ4NDA1ZDdjMjU0
MWZhNTEzMTA5ZDg0ZWZhZjhkMC4uZWViZjJjOTFhYjFmZjkwNGQ2OGQwODhjZGEwZWRiMzUxMWQw
ZmZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ouZmlsdGVycwpAQCAtMjc3OCw2ICsyNzc4LDkgQEAKICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxGaWxsTGF5ZXIuY3BwIj4KICAgICAgIDxGaWx0
ZXI+cmVuZGVyaW5nXHN0eWxlPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFJlc29sdmVkUG9zaXRpb24uY3Bw
Ij4KKyAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHN0eWxlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBp
bGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcS2V5ZnJhbWVM
aXN0LmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzdHlsZTwvRmlsdGVyPgogICAgIDwv
Q2xDb21waWxlPgpAQCAtOTcwOSw2ICs5NzEyLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkUG9zaXRpb24uaCI+CiAgICAgICA8RmlsdGVyPnJlbmRl
cmluZ1xzdHlsZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRSZXNvbHZlZFBvc2l0aW9uLmgiPgorICAgICAg
PEZpbHRlcj5yZW5kZXJpbmdcc3R5bGU8L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkVHJhY2tTaXplLmgiPgog
ICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc3R5bGU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCAyYjc2NTZmNzk0ZDM3NmIxY2Y3YTg4NDE2OGNhMmUzYzU3YmU0ZmIwLi45N2ExODY5NjZi
NGU2YjBkMTkxZGQwODhmOWU2NGYyZTY0Y2NiYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NjY3LDYgKzU2NjcsOCBAQAog
CQlDREYyQjAxOTE4MjA1NDA3MDBGMkI0MjQgLyogTW9ja1RyYWNrcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGMkIwMEYxODIwNTQwNjAwRjJCNDI0
IC8qIE1vY2tUcmFja3MuaCAqLzsgfTsKIAkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRDN0FBIC8qIE1l
ZGlhQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0QyN0Y2RTQxNDU3Njc4NzAwNzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERjY1Q0NBMTQ1
QjQ0ODgwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjY1Q0M5MTQ1QjQzQTcwMEM0QzdB
QSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlDREY3NDgzRTE4RkVCQ0VDMDAwNkVDQzAgLyogR3Jp
ZFJlc29sdmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0RGNzQ4M0MxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0
aW9uLmNwcCAqLzsgfTsKKwkJQ0RGNzQ4M0YxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZl
ZFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREY3NDgzRDE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREZDMzYwNTE4
Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERkMzNjAzMThDQTYxQzIwMDI2RTU2
RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwICovOyB9OwogCQlDREZDMzYwNjE4Q0E2MUMy
MDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREZDMzYwNDE4Q0E2MUMyMDAyNkU1NkYgLyogUmVt
b3RlQ29tbWFuZExpc3RlbmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQ0RGQzM2MDcxOENBNjk2QzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRM
aXN0ZW5lcklPUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENERkMzNjAyMThDQTYxNjMwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1Mu
bW0gKi87IH07CkBAIC0xMzA0NCw2ICsxMzA0Niw4IEBACiAJCUNERjJCMDBGMTgyMDU0MDYwMEYy
QjQyNCAvKiBNb2NrVHJhY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1v
Y2tUcmFja3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNjVDQzkxNDVCNDNB
NzAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNjVDQ0MxNDVCNkFGRTAwQzRDN0FBIC8qIEpTSFRNTE1lZGlh
RWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlDREY3NDgzQzE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gR3JpZFJlc29sdmVkUG9zaXRpb24u
Y3BwOyBwYXRoID0gc3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDREY3NDgzRDE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVk
UG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gR3JpZFJlc29sdmVk
UG9zaXRpb24uaDsgcGF0aCA9IHN0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERkMzNjAxMThDQTYxNjMwMDI2RTU2RiAvKiBSZW1vdGVD
b21tYW5kTGlzdGVuZXJJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVt
b3RlQ29tbWFuZExpc3RlbmVySU9TLmg7IHBhdGggPSBpb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVy
SU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERkMzNjAyMThDQTYxNjMwMDI2
RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW07IHBhdGggPSBp
b3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDREZDMzYwMzE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNvbW1hbmRMaXN0
ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDY5Nyw2ICsyMDcwMSw4
IEBACiAJCQkJQ0QzRTI1MUIxODA0NkIwNjAwRTI3RjU2IC8qIEdyaWRDb29yZGluYXRlLmggKi8s
CiAJCQkJQ0RFRjRGRDYxN0U4NUM4RjAwQUVFMjRCIC8qIEdyaWRMZW5ndGguaCAqLywKIAkJCQlB
MTI3MDVDMjE2NTZCRDY1MDBDMkUyN0MgLyogR3JpZFBvc2l0aW9uLmggKi8sCisJCQkJQ0RGNzQ4
M0MxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcCAqLywKKwkJCQlD
REY3NDgzRDE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uaCAqLywKIAkJ
CQlBMTJBMTA0RTE2NjQ0NERDMDA4RkEzMTEgLyogR3JpZFRyYWNrU2l6ZS5oICovLAogCQkJCUJD
NUVCQTBFMEU4MjNFNDcwMEIyNTk2NSAvKiBLZXlmcmFtZUxpc3QuY3BwICovLAogCQkJCUJDNUVC
QTBGMEU4MjNFNDcwMEIyNTk2NSAvKiBLZXlmcmFtZUxpc3QuaCAqLywKQEAgLTI0NDQwLDYgKzI0
NDQ2LDcgQEAKIAkJCQlBODBFN0U5RjBBMUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9uRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM4RTY2NjIwOUYwOUI4NzAwOEE0OEVDIC8qIEpT
SFRNTENhbnZhc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQ0JBRDQxMEMxOEMxNDIw
MENFODkwRiAvKiBKU0hUTUxDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREY3NDgz
RjE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCUY1QzA0MUU3MEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUQzNTlEOEJGMTI5Q0E1NUMwMDA2RTVEMiAvKiBKU0hUTUxE
ZXRhaWxzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzY4MDhCNTAxNTlEQURGQTAwMkI1
MjMzIC8qIEpTSFRNTERpYWxvZ0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjcxNzMsNiAr
MjcxODAsNyBAQAogCQkJCUE0MjI2RTk2MTE2M0Q3M0EwMDhCODM5NyAvKiBET01IVE1MUHJvZ3Jl
c3NFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODUxODNCNEIwQUE2OTI2MTAwRjE5RkEz
IC8qIERPTUhUTUxRdW90ZUVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURGODE5QzBB
QTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTFNjcmlwdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywK
KwkJCQlDREY3NDgzRTE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJODVGMzJBRjEwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxT
ZWxlY3RFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODU5QTlDNTAwQUE1RTNCRDAwQjY5
NEIyIC8qIERPTUhUTUxTdHlsZUVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURGODIx
RTBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQubW0gaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVB
cmVhc1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1Zh
bHVlLmNwcAppbmRleCBiMzUzODIyOTBmMzQwZWFkNjkxNjMzYjQ1NzU5Y2MyNjljNTdkZjkzLi41
YWQ3MWZiZGQzNmNmOGRjMDAzNDIwMzhkMTM3Y2FhZmU2YWVhM2Y3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwCkBAIC01NSwxMyArNTUs
MTMgQEAgc3RhdGljIFN0cmluZyBzdHJpbmdGb3JQb3NpdGlvbihjb25zdCBOYW1lZEdyaWRBcmVh
TWFwJiBncmlkQXJlYU1hcCwgc2l6ZV90IHJvdywKIAogICAgIGZvciAoY29uc3QgYXV0byYgaXQg
OiBncmlkQXJlYU1hcCkgewogICAgICAgICBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0
ZSA9IGl0LnZhbHVlOwotICAgICAgICBpZiAocm93ID49IGNvb3JkaW5hdGUucm93cy5pbml0aWFs
UG9zaXRpb25JbmRleCAmJiByb3cgPD0gY29vcmRpbmF0ZS5yb3dzLmZpbmFsUG9zaXRpb25JbmRl
eCkKKyAgICAgICAgaWYgKHJvdyA+PSBjb29yZGluYXRlLnJvd3MucmVzb2x2ZWRJbml0aWFsUG9z
aXRpb24udG9JbnQoKSAmJiByb3cgPD0gY29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkRmluYWxQb3Np
dGlvbi50b0ludCgpKQogICAgICAgICAgICAgY2FuZGlkYXRlcy5hcHBlbmQoaXQua2V5KTsKICAg
ICB9CiAKICAgICBmb3IgKGNvbnN0IGF1dG8mIGl0IDogZ3JpZEFyZWFNYXApIHsKICAgICAgICAg
Y29uc3QgR3JpZENvb3JkaW5hdGUmIGNvb3JkaW5hdGUgPSBpdC52YWx1ZTsKLSAgICAgICAgaWYg
KGNvbHVtbiA+PSBjb29yZGluYXRlLmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXggJiYgY29s
dW1uIDw9IGNvb3JkaW5hdGUuY29sdW1ucy5maW5hbFBvc2l0aW9uSW5kZXggJiYgY2FuZGlkYXRl
cy5jb250YWlucyhpdC5rZXkpKQorICAgICAgICBpZiAoY29sdW1uID49IGNvb3JkaW5hdGUuY29s
dW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpICYmIGNvbHVtbiA8PSBjb29yZGlu
YXRlLmNvbHVtbnMucmVzb2x2ZWRGaW5hbFBvc2l0aW9uLnRvSW50KCkgJiYgY2FuZGlkYXRlcy5j
b250YWlucyhpdC5rZXkpKQogICAgICAgICAgICAgcmV0dXJuIGl0LmtleTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZTIwNDkzYjIzZjEwMDhjZmI4NGFmZjliNTVlZDMz
MGVmM2E0ZDhiZC4uZDAxYTY4NWZlNWE2Yzg0MTMxMzM3M2Y4ZWVjZTIxMWE0MTYxOGZjMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTUxOTcsMTggKzUxOTcsMTggQEAgUGFzc1JlZlB0
cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUdyaWRUZW1wbGF0ZUFyZWFzKCkKIAogICAgICAg
ICAgICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgY2hlY2tzIHRlc3QgdGhhdCB0aGUgZ3JpZCBhcmVh
IGlzIGEgc2luZ2xlIGZpbGxlZC1pbiByZWN0YW5nbGUuCiAgICAgICAgICAgICAgICAgLy8gMS4g
VGhlIG5ldyByb3cgaXMgYWRqYWNlbnQgdG8gdGhlIHByZXZpb3VzbHkgcGFyc2VkIHJvdy4KLSAg
ICAgICAgICAgICAgICBpZiAocm93Q291bnQgIT0gZ3JpZENvb3JkaW5hdGUucm93cy5maW5hbFBv
c2l0aW9uSW5kZXggKyAxKQorICAgICAgICAgICAgICAgIGlmIChyb3dDb3VudCAhPSBncmlkQ29v
cmRpbmF0ZS5yb3dzLnJlc29sdmVkRmluYWxQb3NpdGlvbi5uZXh0KCkudG9JbnQoKSkKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgICAgICAgICAvLyAyLiBUaGUgbmV3
IGFyZWEgc3RhcnRzIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGFzIHRoZSBwcmV2aW91c2x5IHBhcnNl
ZCBhcmVhLgotICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Q29sdW1uICE9IGdyaWRDb29yZGlu
YXRlLmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXgpCisgICAgICAgICAgICAgICAgaWYgKGN1
cnJlbnRDb2x1bW4gIT0gZ3JpZENvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3Np
dGlvbi50b0ludCgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAgICAg
ICAgICAgIC8vIDMuIFRoZSBuZXcgYXJlYSBlbmRzIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGFzIHRo
ZSBwcmV2aW91c2x5IHBhcnNlZCBhcmVhLgotICAgICAgICAgICAgICAgIGlmIChsb29rQWhlYWRD
b2x1bW4gIT0gZ3JpZENvb3JkaW5hdGUuY29sdW1ucy5maW5hbFBvc2l0aW9uSW5kZXgpCisgICAg
ICAgICAgICAgICAgaWYgKGxvb2tBaGVhZENvbHVtbiAhPSBncmlkQ29vcmRpbmF0ZS5jb2x1bW5z
LnJlc29sdmVkRmluYWxQb3NpdGlvbi50b0ludCgpKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gMDsKIAotICAgICAgICAgICAgICAgICsrZ3JpZENvb3JkaW5hdGUucm93cy5maW5hbFBvc2l0
aW9uSW5kZXg7CisgICAgICAgICAgICAgICAgKytncmlkQ29vcmRpbmF0ZS5yb3dzLnJlc29sdmVk
RmluYWxQb3NpdGlvbjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGN1cnJlbnRDb2x1bW4g
PSBsb29rQWhlYWRDb2x1bW47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHcmlkLmNwcAppbmRleCBhZDE5MTAzOWRiY2M0ZGRiZDQ4ZTVkMzVjZWQwZDU5ZDg3ZDEzNDE5
Li5jMGFlNjE1OGU3MDUzNzQzNGUyMTU0YjM1NzAzYTJhMDU0ZGFiZjljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaWYgRU5BQkxF
KENTU19HUklEX0xBWU9VVCkKIAogI2luY2x1ZGUgIkdyaWRDb29yZGluYXRlLmgiCisjaW5jbHVk
ZSAiR3JpZFJlc29sdmVkUG9zaXRpb24uaCIKICNpbmNsdWRlICJMYXlvdXRSZXBhaW50ZXIuaCIK
ICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCkBA
IC0zNDIsNyArMzQzLDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpjb21wdXRlVXNlZEJyZWFkdGhPZkdy
aWRUcmFja3MoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGkKICAgICAgICAgICAgICAg
ICBjb25zdCBHcmlkU3BhbiBzcGFuID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGNvb3Jk
aW5hdGUuY29sdW1ucyA6IGNvb3JkaW5hdGUucm93czsKIAogICAgICAgICAgICAgICAgIC8vIERv
IG5vdCBpbmNsdWRlIGFscmVhZHkgcHJvY2Vzc2VkIGl0ZW1zLgotICAgICAgICAgICAgICAgIGlm
IChpID4gMCAmJiBzcGFuLmluaXRpYWxQb3NpdGlvbkluZGV4IDw9IGZsZXhpYmxlU2l6ZWRUcmFj
a3NJbmRleFtpIC0gMV0pCisgICAgICAgICAgICAgICAgaWYgKGkgPiAwICYmIHNwYW4ucmVzb2x2
ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKSA8PSBmbGV4aWJsZVNpemVkVHJhY2tzSW5kZXhbaSAt
IDFdKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgICAgIGRv
dWJsZSBpdGVtTm9ybWFsaXplZEZsZXhCcmVhZHRoID0gY29tcHV0ZU5vcm1hbGl6ZWRGcmFjdGlv
bkJyZWFkdGgodHJhY2tzLCBzcGFuLCBkaXJlY3Rpb24sIG1heENvbnRlbnRGb3JDaGlsZChncmlk
SXRlbSwgZGlyZWN0aW9uLCBzaXppbmdEYXRhLmNvbHVtblRyYWNrcykpOwpAQCAtNDAxLDEyICs0
MDIsMTIgQEAgZG91YmxlIFJlbmRlckdyaWQ6OmNvbXB1dGVOb3JtYWxpemVkRnJhY3Rpb25CcmVh
ZHRoKFZlY3RvcjxHcmlkVHJhY2s+JiB0cmFja3MsIGMKICAgICAvLyB8YXZhaWxhYmxlTG9naWNh
bFNwYWNlfCBhbHJlYWR5IGFjY291bnRzIGZvciB0aGUgdXNlZCBicmVhZHRocyBzbyBubyBuZWVk
IHRvIHJlbW92ZSBpdCBoZXJlLgogCiAgICAgVmVjdG9yPEdyaWRUcmFja0Zvck5vcm1hbGl6YXRp
b24+IHRyYWNrc0Zvck5vcm1hbGl6YXRpb247Ci0gICAgZm9yIChzaXplX3QgaSA9IHRyYWNrc1Nw
YW4uaW5pdGlhbFBvc2l0aW9uSW5kZXg7IGkgPD0gdHJhY2tzU3Bhbi5maW5hbFBvc2l0aW9uSW5k
ZXg7ICsraSkgewotICAgICAgICBjb25zdCBHcmlkVHJhY2tTaXplJiB0cmFja1NpemUgPSBncmlk
VHJhY2tTaXplKGRpcmVjdGlvbiwgaSk7CisgICAgZm9yIChHcmlkUmVzb2x2ZWRQb3NpdGlvbiBw
b3NpdGlvbiA9IHRyYWNrc1NwYW4ucmVzb2x2ZWRJbml0aWFsUG9zaXRpb247IHBvc2l0aW9uIDw9
IHRyYWNrc1NwYW4ucmVzb2x2ZWRGaW5hbFBvc2l0aW9uOyArK3Bvc2l0aW9uKSB7CisgICAgICAg
IGNvbnN0IEdyaWRUcmFja1NpemUmIHRyYWNrU2l6ZSA9IGdyaWRUcmFja1NpemUoZGlyZWN0aW9u
LCBwb3NpdGlvbi50b0ludCgpKTsKICAgICAgICAgaWYgKCF0cmFja1NpemUubWF4VHJhY2tCcmVh
ZHRoKCkuaXNGbGV4KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICB0cmFja3NG
b3JOb3JtYWxpemF0aW9uLmFwcGVuZChHcmlkVHJhY2tGb3JOb3JtYWxpemF0aW9uKHRyYWNrc1tp
XSwgdHJhY2tTaXplLm1heFRyYWNrQnJlYWR0aCgpLmZsZXgoKSkpOworICAgICAgICB0cmFja3NG
b3JOb3JtYWxpemF0aW9uLmFwcGVuZChHcmlkVHJhY2tGb3JOb3JtYWxpemF0aW9uKHRyYWNrc1tw
b3NpdGlvbi50b0ludCgpXSwgdHJhY2tTaXplLm1heFRyYWNrQnJlYWR0aCgpLmZsZXgoKSkpOwog
ICAgIH0KIAogICAgIC8vIFRoZSBmdW5jdGlvbiBpcyBub3QgY2FsbGVkIGlmIHdlIGRvbid0IGhh
dmUgPGZsZXg+IGdyaWQgdHJhY2tzCkBAIC00NjIsMjYgKzQ2Myw2IEBAIGNvbnN0IEdyaWRUcmFj
a1NpemUmIFJlbmRlckdyaWQ6OmdyaWRUcmFja1NpemUoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9u
IGRpcmVjdGlvCiAgICAgcmV0dXJuIHRyYWNrU2l6ZTsKIH0KIAotc2l6ZV90IFJlbmRlckdyaWQ6
OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3R5bGUoKS5n
cmlkQ29sdW1ucygpLnNpemUoKTsKLX0KLQotc2l6ZV90IFJlbmRlckdyaWQ6OmV4cGxpY2l0R3Jp
ZFJvd0NvdW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4gc3R5bGUoKS5ncmlkUm93cygpLnNpemUo
KTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIGlzQ29sdW1uU2lkZShHcmlkUG9zaXRpb25TaWRl
IHNpZGUpCi17Ci0gICAgcmV0dXJuIHNpZGUgPT0gQ29sdW1uU3RhcnRTaWRlIHx8IHNpZGUgPT0g
Q29sdW1uRW5kU2lkZTsKLX0KLQotc2l6ZV90IFJlbmRlckdyaWQ6OmV4cGxpY2l0R3JpZFNpemVG
b3JTaWRlKEdyaWRQb3NpdGlvblNpZGUgc2lkZSkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDb2x1
bW5TaWRlKHNpZGUpID8gZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoKSA6IGV4cGxpY2l0R3JpZFJv
d0NvdW50KCk7Ci19Ci0KIExheW91dFVuaXQgUmVuZGVyR3JpZDo6bG9naWNhbENvbnRlbnRIZWln
aHRGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBWZWN0b3I8R3JpZFRyYWNrPiYgY29sdW1uVHJh
Y2tzKQogewogICAgIExheW91dFVuaXQgb2xkT3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50
TG9naWNhbFdpZHRoID0gY2hpbGQtPmhhc092ZXJyaWRlQ29udGFpbmluZ0Jsb2NrTG9naWNhbFdp
ZHRoKCkgPyBjaGlsZC0+b3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRo
KCkgOiBMYXlvdXRVbml0KCk7CkBAIC01NTEsMTYgKzUzMiwxNiBAQCB2b2lkIFJlbmRlckdyaWQ6
OnJlc29sdmVDb250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9ucyhHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpbwogdm9pZCBSZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tTaXppbmdG
dW5jdGlvbnNGb3JJdGVtcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBHcmlk
U2l6aW5nRGF0YSYgc2l6aW5nRGF0YSwgUmVuZGVyQm94KiBncmlkSXRlbSwgRmlsdGVyRnVuY3Rp
b24gZmlsdGVyRnVuY3Rpb24sIFNpemluZ0Z1bmN0aW9uIHNpemluZ0Z1bmN0aW9uLCBBY2N1bXVs
YXRvckdldHRlciB0cmFja0dldHRlciwgQWNjdW11bGF0b3JHcm93RnVuY3Rpb24gdHJhY2tHcm93
dGhGdW5jdGlvbikKIHsKICAgICBjb25zdCBHcmlkQ29vcmRpbmF0ZSBjb29yZGluYXRlID0gY2Fj
aGVkR3JpZENvb3JkaW5hdGUoZ3JpZEl0ZW0pOwotICAgIGNvbnN0IHNpemVfdCBpbml0aWFsVHJh
Y2tJbmRleCA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBjb29yZGluYXRlLmNvbHVtbnMu
aW5pdGlhbFBvc2l0aW9uSW5kZXggOiBjb29yZGluYXRlLnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5k
ZXg7Ci0gICAgY29uc3Qgc2l6ZV90IGZpbmFsVHJhY2tJbmRleCA9IChkaXJlY3Rpb24gPT0gRm9y
Q29sdW1ucykgPyBjb29yZGluYXRlLmNvbHVtbnMuZmluYWxQb3NpdGlvbkluZGV4IDogY29vcmRp
bmF0ZS5yb3dzLmZpbmFsUG9zaXRpb25JbmRleDsKKyAgICBjb25zdCBHcmlkUmVzb2x2ZWRQb3Np
dGlvbiBpbml0aWFsVHJhY2tQb3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBj
b29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24gOiBjb29yZGluYXRlLnJv
d3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb247CisgICAgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRp
b24gZmluYWxUcmFja1Bvc2l0aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGNvb3Jk
aW5hdGUuY29sdW1ucy5yZXNvbHZlZEZpbmFsUG9zaXRpb24gOiBjb29yZGluYXRlLnJvd3MucmVz
b2x2ZWRGaW5hbFBvc2l0aW9uOwogCiAgICAgc2l6aW5nRGF0YS5maWx0ZXJlZFRyYWNrcy5zaHJp
bmsoMCk7Ci0gICAgZm9yIChzaXplX3QgdHJhY2tJbmRleCA9IGluaXRpYWxUcmFja0luZGV4OyB0
cmFja0luZGV4IDw9IGZpbmFsVHJhY2tJbmRleDsgKyt0cmFja0luZGV4KSB7Ci0gICAgICAgIGNv
bnN0IEdyaWRUcmFja1NpemUmIHRyYWNrU2l6ZSA9IGdyaWRUcmFja1NpemUoZGlyZWN0aW9uLCB0
cmFja0luZGV4KTsKKyAgICBmb3IgKEdyaWRSZXNvbHZlZFBvc2l0aW9uIHRyYWNrSW5kZXggPSBp
bml0aWFsVHJhY2tQb3NpdGlvbjsgdHJhY2tJbmRleCA8PSBmaW5hbFRyYWNrUG9zaXRpb247ICsr
dHJhY2tJbmRleCkgeworICAgICAgICBjb25zdCBHcmlkVHJhY2tTaXplJiB0cmFja1NpemUgPSBn
cmlkVHJhY2tTaXplKGRpcmVjdGlvbiwgdHJhY2tJbmRleC50b0ludCgpKTsKICAgICAgICAgaWYg
KCEodHJhY2tTaXplLipmaWx0ZXJGdW5jdGlvbikoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
Ci0gICAgICAgIEdyaWRUcmFjayYgdHJhY2sgPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8g
c2l6aW5nRGF0YS5jb2x1bW5UcmFja3NbdHJhY2tJbmRleF0gOiBzaXppbmdEYXRhLnJvd1RyYWNr
c1t0cmFja0luZGV4XTsKKyAgICAgICAgR3JpZFRyYWNrJiB0cmFjayA9IChkaXJlY3Rpb24gPT0g
Rm9yQ29sdW1ucykgPyBzaXppbmdEYXRhLmNvbHVtblRyYWNrc1t0cmFja0luZGV4LnRvSW50KCld
IDogc2l6aW5nRGF0YS5yb3dUcmFja3NbdHJhY2tJbmRleC50b0ludCgpXTsKICAgICAgICAgc2l6
aW5nRGF0YS5maWx0ZXJlZFRyYWNrcy5hcHBlbmQoJnRyYWNrKTsKICAgICB9CiAKQEAgLTU2OCw4
ICs1NDksOCBAQCB2b2lkIFJlbmRlckdyaWQ6OnJlc29sdmVDb250ZW50QmFzZWRUcmFja1Npemlu
Z0Z1bmN0aW9uc0Zvckl0ZW1zKEdyaWRUcmFja1NpemluZwogICAgICAgICByZXR1cm47CiAKICAg
ICBMYXlvdXRVbml0IGFkZGl0aW9uYWxCcmVhZHRoU3BhY2UgPSAodGhpcy0+KnNpemluZ0Z1bmN0
aW9uKShncmlkSXRlbSwgZGlyZWN0aW9uLCBzaXppbmdEYXRhLmNvbHVtblRyYWNrcyk7Ci0gICAg
Zm9yIChzaXplX3QgdHJhY2tJbmRleEZvclNwYWNlID0gaW5pdGlhbFRyYWNrSW5kZXg7IHRyYWNr
SW5kZXhGb3JTcGFjZSA8PSBmaW5hbFRyYWNrSW5kZXg7ICsrdHJhY2tJbmRleEZvclNwYWNlKSB7
Ci0gICAgICAgIEdyaWRUcmFjayYgdHJhY2sgPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8g
c2l6aW5nRGF0YS5jb2x1bW5UcmFja3NbdHJhY2tJbmRleEZvclNwYWNlXSA6IHNpemluZ0RhdGEu
cm93VHJhY2tzW3RyYWNrSW5kZXhGb3JTcGFjZV07CisgICAgZm9yIChHcmlkUmVzb2x2ZWRQb3Np
dGlvbiB0cmFja1Bvc2l0aW9uRm9yU3BhY2UgPSBpbml0aWFsVHJhY2tQb3NpdGlvbjsgdHJhY2tQ
b3NpdGlvbkZvclNwYWNlIDw9IGZpbmFsVHJhY2tQb3NpdGlvbjsgKyt0cmFja1Bvc2l0aW9uRm9y
U3BhY2UpIHsKKyAgICAgICAgR3JpZFRyYWNrJiB0cmFjayA9IChkaXJlY3Rpb24gPT0gRm9yQ29s
dW1ucykgPyBzaXppbmdEYXRhLmNvbHVtblRyYWNrc1t0cmFja1Bvc2l0aW9uRm9yU3BhY2UudG9J
bnQoKV0gOiBzaXppbmdEYXRhLnJvd1RyYWNrc1t0cmFja1Bvc2l0aW9uRm9yU3BhY2UudG9JbnQo
KV07CiAgICAgICAgIGFkZGl0aW9uYWxCcmVhZHRoU3BhY2UgLT0gKHRyYWNrLip0cmFja0dldHRl
cikoKTsKICAgICB9CiAKQEAgLTY0MywxNyArNjI0LDE3IEBAIHZvaWQgUmVuZGVyR3JpZDo6Z3Jv
d0dyaWQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikKIAogdm9pZCBSZW5kZXJH
cmlkOjppbnNlcnRJdGVtSW50b0dyaWQoUmVuZGVyQm94KiBjaGlsZCwgY29uc3QgR3JpZENvb3Jk
aW5hdGUmIGNvb3JkaW5hdGUpCiB7Ci0gICAgZm9yIChzaXplX3Qgcm93ID0gY29vcmRpbmF0ZS5y
b3dzLmluaXRpYWxQb3NpdGlvbkluZGV4OyByb3cgPD0gY29vcmRpbmF0ZS5yb3dzLmZpbmFsUG9z
aXRpb25JbmRleDsgKytyb3cpIHsKLSAgICAgICAgZm9yIChzaXplX3QgY29sdW1uID0gY29vcmRp
bmF0ZS5jb2x1bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4OyBjb2x1bW4gPD0gY29vcmRpbmF0ZS5j
b2x1bW5zLmZpbmFsUG9zaXRpb25JbmRleDsgKytjb2x1bW4pCi0gICAgICAgICAgICBtX2dyaWRb
cm93XVtjb2x1bW5dLmFwcGVuZChjaGlsZCk7CisgICAgZm9yIChHcmlkUmVzb2x2ZWRQb3NpdGlv
biByb3cgPSBjb29yZGluYXRlLnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb247IHJvdyA8PSBj
b29yZGluYXRlLnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0aW9uOyArK3JvdykgeworICAgICAgICBm
b3IgKEdyaWRSZXNvbHZlZFBvc2l0aW9uIGNvbHVtbiA9IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNv
bHZlZEluaXRpYWxQb3NpdGlvbjsgY29sdW1uIDw9IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZl
ZEZpbmFsUG9zaXRpb247ICsrY29sdW1uKQorICAgICAgICAgICAgbV9ncmlkW3Jvdy50b0ludCgp
XVtjb2x1bW4udG9JbnQoKV0uYXBwZW5kKGNoaWxkKTsKICAgICB9CiAgICAgbV9ncmlkSXRlbUNv
b3JkaW5hdGUuc2V0KGNoaWxkLCBjb29yZGluYXRlKTsKIH0KIAotdm9pZCBSZW5kZXJHcmlkOjpp
bnNlcnRJdGVtSW50b0dyaWQoUmVuZGVyQm94KiBjaGlsZCwgc2l6ZV90IHJvd1RyYWNrLCBzaXpl
X3QgY29sdW1uVHJhY2spCit2b2lkIFJlbmRlckdyaWQ6Omluc2VydEl0ZW1JbnRvR3JpZChSZW5k
ZXJCb3gqIGNoaWxkLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcm93VHJhY2ssIGNvbnN0
IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBjb2x1bW5UcmFjaykKIHsKLSAgICBjb25zdCBHcmlkU3Bh
biYgcm93U3BhbiA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlv
bihjaGlsZCwgRm9yUm93cywgcm93VHJhY2spOwotICAgIGNvbnN0IEdyaWRTcGFuJiBjb2x1bW5T
cGFuID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKGNoaWxk
LCBGb3JDb2x1bW5zLCBjb2x1bW5UcmFjayk7CisgICAgY29uc3QgR3JpZFNwYW4mIHJvd1NwYW4g
PSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNl
bWVudFBvc2l0aW9uKCpjaGlsZCwgRm9yUm93cywgcm93VHJhY2spOworICAgIGNvbnN0IEdyaWRT
cGFuJiBjb2x1bW5TcGFuID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRp
b25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbigqY2hpbGQsIEZvckNvbHVtbnMsIGNvbHVtblRy
YWNrKTsKICAgICBpbnNlcnRJdGVtSW50b0dyaWQoY2hpbGQsIEdyaWRDb29yZGluYXRlKHJvd1Nw
YW4sIGNvbHVtblNwYW4pKTsKIH0KIApAQCAtNjcwLDggKzY1MSw4IEBAIHZvaWQgUmVuZGVyR3Jp
ZDo6cGxhY2VJdGVtc09uR3JpZCgpCiAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gbV9vcmRl
ckl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci5uZXh0KCkp
IHsKICAgICAgICAgLy8gRklYTUU6IFdlIG5ldmVyIHJlLXJlc29sdmUgcG9zaXRpb25zIGlmIHRo
ZSBncmlkIGlzIGdyb3duIGR1cmluZyBhdXRvLXBsYWNlbWVudCB3aGljaCBtYXkgbGVhZCBhdXRv
IC8gPGludGVnZXI+CiAgICAgICAgIC8vIHBvc2l0aW9ucyB0byBub3QgbWF0Y2ggdGhlIGF1dGhv
cidzIGludGVudC4gVGhlIHNwZWNpZmljYXRpb24gaXMgdW5jbGVhciBvbiB3aGF0IHNob3VsZCBi
ZSBkb25lIGluIHRoaXMgY2FzZS4KLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBy
b3dQb3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjaGlsZCwgRm9yUm93
cyk7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gY29sdW1uUG9zaXRpb25zID0g
cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY2hpbGQsIEZvckNvbHVtbnMpOworICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJvd1Bvc2l0aW9ucyA9IEdyaWRSZXNvbHZlZFBv
c2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqY2hpbGQsIEZv
clJvd3MpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IGNvbHVtblBvc2l0aW9u
cyA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShz
dHlsZSgpLCAqY2hpbGQsIEZvckNvbHVtbnMpOwogICAgICAgICBpZiAoIXJvd1Bvc2l0aW9ucyB8
fCAhY29sdW1uUG9zaXRpb25zKSB7CiAgICAgICAgICAgICBHcmlkU3BhbiogbWFqb3JBeGlzUG9z
aXRpb25zID0gKGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSA9PSBGb3JDb2x1bW5z
KSA/IGNvbHVtblBvc2l0aW9ucy5nZXQoKSA6IHJvd1Bvc2l0aW9ucy5nZXQoKTsKICAgICAgICAg
ICAgIGlmICghbWFqb3JBeGlzUG9zaXRpb25zKQpAQCAtNzAxLDggKzY4Miw4IEBAIHZvaWQgUmVu
ZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKCkKIHsKICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8gc2hhcmUgT3JkZXJWYWx1ZXMncyBpbml0
aWFsaXphdGlvbiBjb2RlIHdpdGggUmVuZGVyRmxleGlibGVCb3guCiAgICAgT3JkZXJJdGVyYXRv
cjo6T3JkZXJWYWx1ZXMgb3JkZXJWYWx1ZXM7Ci0gICAgc2l6ZV90IG1heGltdW1Sb3dJbmRleCA9
IHN0ZDo6bWF4PHNpemVfdD4oMSwgZXhwbGljaXRHcmlkUm93Q291bnQoKSk7Ci0gICAgc2l6ZV90
IG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4oMSwgZXhwbGljaXRHcmlkQ29s
dW1uQ291bnQoKSk7CisgICAgc2l6ZV90IG1heGltdW1Sb3dJbmRleCA9IHN0ZDo6bWF4PHNpemVf
dD4oMSwgR3JpZFJlc29sdmVkUG9zaXRpb246OmV4cGxpY2l0R3JpZFJvd0NvdW50KHN0eWxlKCkp
KTsKKyAgICBzaXplX3QgbWF4aW11bUNvbHVtbkluZGV4ID0gc3RkOjptYXg8c2l6ZV90PigxLCBH
cmlkUmVzb2x2ZWRQb3NpdGlvbjo6ZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoc3R5bGUoKSkpOwog
CiAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gZmlyc3RDaGlsZEJveCgpOyBjaGlsZDsgY2hp
bGQgPSBjaGlsZC0+bmV4dFNpYmxpbmdCb3goKSkgewogICAgICAgICAvLyBBdm9pZCBncm93aW5n
IHRoZSB2ZWN0b3IgZm9yIHRoZSBjb21tb24tY2FzZSBkZWZhdWx0IHZhbHVlIG9mIDAuIFRoaXMg
b3B0aW1pemVzIHRoZSBtb3N0IGNvbW1vbiBjYXNlIHdoaWNoIGlzCkBAIC03MTIsMTUgKzY5Mywx
NSBAQCB2b2lkIFJlbmRlckdyaWQ6OnBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRv
cigpCiAgICAgICAgICAgICBvcmRlclZhbHVlcy5hcHBlbmQob3JkZXIpOwogCiAgICAgICAgIC8v
IFRoaXMgZnVuY3Rpb24gYnlwYXNzZXMgdGhlIGNhY2hlIChjYWNoZWRHcmlkQ29vcmRpbmF0ZSgp
KSBhcyBpdCBpcyB1c2VkIHRvIGJ1aWxkIGl0LgotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3Jp
ZFNwYW4+IHJvd1Bvc2l0aW9ucyA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNoaWxk
LCBGb3JSb3dzKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBjb2x1bW5Qb3Np
dGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjaGlsZCwgRm9yQ29sdW1ucyk7
CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcm93UG9zaXRpb25zID0gR3JpZFJl
c29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICpj
aGlsZCwgRm9yUm93cyk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gY29sdW1u
UG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJv
bVN0eWxlKHN0eWxlKCksICpjaGlsZCwgRm9yQ29sdW1ucyk7CiAKICAgICAgICAgLy8gfHBvc2l0
aW9uc3wgaXMgMCBpZiB3ZSBuZWVkIHRvIHJ1biB0aGUgYXV0by1wbGFjZW1lbnQgYWxnb3JpdGht
LiBPdXIgZXN0aW1hdGlvbiBpZ25vcmVzCiAgICAgICAgIC8vIHRoaXMgY2FzZSBhcyB0aGUgYXV0
by1wbGFjZW1lbnQgYWxnb3JpdGhtIHdpbGwgZ3JvdyB0aGUgZ3JpZCBhcyBuZWVkZWQuCiAgICAg
ICAgIGlmIChyb3dQb3NpdGlvbnMpCi0gICAgICAgICAgICBtYXhpbXVtUm93SW5kZXggPSBzdGQ6
Om1heChtYXhpbXVtUm93SW5kZXgsIHJvd1Bvc2l0aW9ucy0+ZmluYWxQb3NpdGlvbkluZGV4ICsg
MSk7CisgICAgICAgICAgICBtYXhpbXVtUm93SW5kZXggPSBzdGQ6Om1heChtYXhpbXVtUm93SW5k
ZXgsIHJvd1Bvc2l0aW9ucy0+cmVzb2x2ZWRGaW5hbFBvc2l0aW9uLm5leHQoKS50b0ludCgpKTsK
ICAgICAgICAgaWYgKGNvbHVtblBvc2l0aW9ucykKLSAgICAgICAgICAgIG1heGltdW1Db2x1bW5J
bmRleCA9IHN0ZDo6bWF4KG1heGltdW1Db2x1bW5JbmRleCwgY29sdW1uUG9zaXRpb25zLT5maW5h
bFBvc2l0aW9uSW5kZXggKyAxKTsKKyAgICAgICAgICAgIG1heGltdW1Db2x1bW5JbmRleCA9IHN0
ZDo6bWF4KG1heGltdW1Db2x1bW5JbmRleCwgY29sdW1uUG9zaXRpb25zLT5yZXNvbHZlZEZpbmFs
UG9zaXRpb24ubmV4dCgpLnRvSW50KCkpOwogICAgIH0KIAogICAgIG1fZ3JpZC5ncm93KG1heGlt
dW1Sb3dJbmRleCk7CkBAIC03MzMsMTcgKzcxNCwxNyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBvcHVs
YXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRvcigpCiB2b2lkIFJlbmRlckdyaWQ6OnBsYWNl
U3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQoY29uc3QgVmVjdG9yPFJlbmRlckJveCo+JiBh
dXRvR3JpZEl0ZW1zKQogewogICAgIGZvciAoYXV0byYgYXV0b0dyaWRJdGVtIDogYXV0b0dyaWRJ
dGVtcykgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IG1ham9yQXhpc1Bvc2l0
aW9ucyA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGF1dG9HcmlkSXRlbSwgYXV0b1Bs
YWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpKTsKLSAgICAgICAgR3JpZEl0ZXJhdG9yIGl0ZXJh
dG9yKG1fZ3JpZCwgYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpLCBtYWpvckF4aXNQ
b3NpdGlvbnMtPmluaXRpYWxQb3NpdGlvbkluZGV4KTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PEdyaWRTcGFuPiBtYWpvckF4aXNQb3NpdGlvbnMgPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVz
b2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgKmF1dG9HcmlkSXRlbSwgYXV0b1Bs
YWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpKTsKKyAgICAgICAgR3JpZEl0ZXJhdG9yIGl0ZXJh
dG9yKG1fZ3JpZCwgYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpLCBtYWpvckF4aXNQ
b3NpdGlvbnMtPnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCkpOwogICAgICAgICBpZiAo
c3RkOjp1bmlxdWVfcHRyPEdyaWRDb29yZGluYXRlPiBlbXB0eUdyaWRBcmVhID0gaXRlcmF0b3Iu
bmV4dEVtcHR5R3JpZEFyZWEoKSkgewotICAgICAgICAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGF1
dG9HcmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5pbml0aWFsUG9zaXRpb25JbmRleCwgZW1w
dHlHcmlkQXJlYS0+Y29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleCk7CisgICAgICAgICAgICBp
bnNlcnRJdGVtSW50b0dyaWQoYXV0b0dyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dzLnJlc29s
dmVkSW5pdGlhbFBvc2l0aW9uLCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5zLnJlc29sdmVkSW5pdGlh
bFBvc2l0aW9uKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAg
Z3Jvd0dyaWQoYXV0b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigpKTsKICAgICAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEdyaWRDb29yZGluYXRlPiBlbXB0eUdyaWRBcmVhID0gaXRlcmF0b3IubmV4
dEVtcHR5R3JpZEFyZWEoKTsKICAgICAgICAgQVNTRVJUKGVtcHR5R3JpZEFyZWEpOwotICAgICAg
ICBpbnNlcnRJdGVtSW50b0dyaWQoYXV0b0dyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dzLmlu
aXRpYWxQb3NpdGlvbkluZGV4LCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5zLmluaXRpYWxQb3NpdGlv
bkluZGV4KTsKKyAgICAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGF1dG9HcmlkSXRlbSwgZW1wdHlH
cmlkQXJlYS0+cm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbiwgZW1wdHlHcmlkQXJlYS0+Y29s
dW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbik7CiAgICAgfQogfQogCkBAIC03NTUsMTQgKzcz
NiwxNCBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0ZW1zT25HcmlkKGNv
bnN0IFZlY3RvcjxSZW5kZXJCb3gqPiYgYXV0b0dyaQogCiB2b2lkIFJlbmRlckdyaWQ6OnBsYWNl
QXV0b01ham9yQXhpc0l0ZW1PbkdyaWQoUmVuZGVyQm94KiBncmlkSXRlbSkKIHsKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IG1pbm9yQXhpc1Bvc2l0aW9ucyA9IHJlc29sdmVHcmlkUG9z
aXRpb25zRnJvbVN0eWxlKGdyaWRJdGVtLCBhdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9u
KCkpOwotICAgIEFTU0VSVCghcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoZ3JpZEl0ZW0s
IGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSkpOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxHcmlkU3Bhbj4gbWlub3JBeGlzUG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJl
c29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICpncmlkSXRlbSwgYXV0b1BsYWNl
bWVudE1pbm9yQXhpc0RpcmVjdGlvbigpKTsKKyAgICBBU1NFUlQoIUdyaWRSZXNvbHZlZFBvc2l0
aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqZ3JpZEl0ZW0sIGF1
dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSkpOwogICAgIHNpemVfdCBtaW5vckF4aXNJ
bmRleCA9IDA7CiAgICAgaWYgKG1pbm9yQXhpc1Bvc2l0aW9ucykgewotICAgICAgICBtaW5vckF4
aXNJbmRleCA9IG1pbm9yQXhpc1Bvc2l0aW9ucy0+aW5pdGlhbFBvc2l0aW9uSW5kZXg7CisgICAg
ICAgIG1pbm9yQXhpc0luZGV4ID0gbWlub3JBeGlzUG9zaXRpb25zLT5yZXNvbHZlZEluaXRpYWxQ
b3NpdGlvbi50b0ludCgpOwogICAgICAgICBHcmlkSXRlcmF0b3IgaXRlcmF0b3IobV9ncmlkLCBh
dXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uKCksIG1pbm9yQXhpc0luZGV4KTsKICAgICAg
ICAgaWYgKHN0ZDo6dW5pcXVlX3B0cjxHcmlkQ29vcmRpbmF0ZT4gZW1wdHlHcmlkQXJlYSA9IGl0
ZXJhdG9yLm5leHRFbXB0eUdyaWRBcmVhKCkpIHsKLSAgICAgICAgICAgIGluc2VydEl0ZW1JbnRv
R3JpZChncmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5pbml0aWFsUG9zaXRpb25JbmRleCwg
ZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleCk7CisgICAgICAgICAg
ICBpbnNlcnRJdGVtSW50b0dyaWQoZ3JpZEl0ZW0sIGVtcHR5R3JpZEFyZWEtPnJvd3MucmVzb2x2
ZWRJbml0aWFsUG9zaXRpb24sIGVtcHR5R3JpZEFyZWEtPmNvbHVtbnMucmVzb2x2ZWRJbml0aWFs
UG9zaXRpb24pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
QEAgLTc3MCw3ICs3NTEsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0
ZW1PbkdyaWQoUmVuZGVyQm94KiBncmlkSXRlbSkKICAgICAgICAgZm9yIChzaXplX3QgbWFqb3JB
eGlzSW5kZXggPSAwOyBtYWpvckF4aXNJbmRleCA8IGVuZE9mTWFqb3JBeGlzOyArK21ham9yQXhp
c0luZGV4KSB7CiAgICAgICAgICAgICBHcmlkSXRlcmF0b3IgaXRlcmF0b3IobV9ncmlkLCBhdXRv
UGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCksIG1ham9yQXhpc0luZGV4KTsKICAgICAgICAg
ICAgIGlmIChzdGQ6OnVuaXF1ZV9wdHI8R3JpZENvb3JkaW5hdGU+IGVtcHR5R3JpZEFyZWEgPSBp
dGVyYXRvci5uZXh0RW1wdHlHcmlkQXJlYSgpKSB7Ci0gICAgICAgICAgICAgICAgaW5zZXJ0SXRl
bUludG9HcmlkKGdyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dzLmluaXRpYWxQb3NpdGlvbklu
ZGV4LCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4KTsKKyAgICAg
ICAgICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoZ3JpZEl0ZW0sIGVtcHR5R3JpZEFyZWEtPnJv
d3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIGVtcHR5R3JpZEFyZWEtPmNvbHVtbnMucmVzb2x2
ZWRJbml0aWFsUG9zaXRpb24pOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQpAQCAtNzgzLDE0ICs3NjQsMTQgQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFj
ZUF1dG9NYWpvckF4aXNJdGVtT25HcmlkKFJlbmRlckJveCogZ3JpZEl0ZW0pCiAgICAgaW5zZXJ0
SXRlbUludG9HcmlkKGdyaWRJdGVtLCByb3dJbmRleCwgY29sdW1uSW5kZXgpOwogfQogCi1SZW5k
ZXJHcmlkOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gUmVuZGVyR3JpZDo6YXV0b1BsYWNlbWVu
dE1ham9yQXhpc0RpcmVjdGlvbigpIGNvbnN0CitHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gUmVu
ZGVyR3JpZDo6YXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpIGNvbnN0CiB7CiAgICAg
R3JpZEF1dG9GbG93IGZsb3cgPSBzdHlsZSgpLmdyaWRBdXRvRmxvdygpOwogICAgIEFTU0VSVChm
bG93ICE9IEF1dG9GbG93Tm9uZSk7CiAgICAgcmV0dXJuIChmbG93ID09IEF1dG9GbG93Q29sdW1u
KSA/IEZvckNvbHVtbnMgOiBGb3JSb3dzOwogfQogCi1SZW5kZXJHcmlkOjpHcmlkVHJhY2tTaXpp
bmdEaXJlY3Rpb24gUmVuZGVyR3JpZDo6YXV0b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigp
IGNvbnN0CitHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gUmVuZGVyR3JpZDo6YXV0b1BsYWNlbWVu
dE1pbm9yQXhpc0RpcmVjdGlvbigpIGNvbnN0CiB7CiAgICAgR3JpZEF1dG9GbG93IGZsb3cgPSBz
dHlsZSgpLmdyaWRBdXRvRmxvdygpOwogICAgIEFTU0VSVChmbG93ICE9IEF1dG9GbG93Tm9uZSk7
CkBAIC04NTksMjk2ICs4NDAsMTMgQEAgR3JpZENvb3JkaW5hdGUgUmVuZGVyR3JpZDo6Y2FjaGVk
R3JpZENvb3JkaW5hdGUoY29uc3QgUmVuZGVyQm94KiBncmlkSXRlbSkgY29uc3QKICAgICByZXR1
cm4gbV9ncmlkSXRlbUNvb3JkaW5hdGUuZ2V0KGdyaWRJdGVtKTsKIH0KIAotR3JpZFNwYW4gUmVu
ZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKGNv
bnN0IFJlbmRlckJveCosIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgc2l6ZV90IGluaXRpYWxQ
b3NpdGlvbikgY29uc3QKLXsKLSAgICAvLyBGSVhNRTogV2UgZG9uJ3Qgc3VwcG9ydCBzcGFubmlu
ZyB3aXRoIGF1dG8gcG9zaXRpb25zIHlldC4gT25jZSB3ZSBkbywgdGhpcyBpcyB3cm9uZy4gQWxz
byB3ZSBzaG91bGQgbWFrZQotICAgIC8vIHN1cmUgdGhlIGdyaWQgY2FuIGFjY29tb2RhdGUgdGhl
IG5ldyBpdGVtIGFzIHdlIG9ubHkgZ3JvdyAxIHBvc2l0aW9uIGluIGEgZ2l2ZW4gZGlyZWN0aW9u
LgotICAgIHJldHVybiBHcmlkU3Bhbihpbml0aWFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvbik7
Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBncmlkTGluZURlZmluZWRCZWZvcmVHcmlkQXJlYShz
aXplX3QgbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiwgY29uc3QgR3JpZENvb3JkaW5hdGUm
IGdyaWRBcmVhQ29vcmRpbmF0ZXMsIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKLXsKLSAgICBzd2l0
Y2ggKHNpZGUpIHsKLSAgICBjYXNlIENvbHVtblN0YXJ0U2lkZToKLSAgICAgICAgcmV0dXJuIG5h
bWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24gPCBncmlkQXJlYUNvb3JkaW5hdGVzLmNvbHVtbnMu
aW5pdGlhbFBvc2l0aW9uSW5kZXg7Ci0gICAgY2FzZSBDb2x1bW5FbmRTaWRlOgotICAgICAgICBy
ZXR1cm4gbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiA8IGdyaWRBcmVhQ29vcmRpbmF0ZXMu
Y29sdW1ucy5maW5hbFBvc2l0aW9uSW5kZXg7Ci0gICAgY2FzZSBSb3dTdGFydFNpZGU6Ci0gICAg
ICAgIHJldHVybiBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9uIDwgZ3JpZEFyZWFDb29yZGlu
YXRlcy5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4OwotICAgIGNhc2UgUm93RW5kU2lkZToKLSAg
ICAgICAgcmV0dXJuIG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24gPCBncmlkQXJlYUNvb3Jk
aW5hdGVzLnJvd3MuZmluYWxQb3NpdGlvbkluZGV4OwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXN0YXRpYyB2b2lkIHNldE5hbWVkTGlu
ZVBvc2l0aW9uSWZEZWZpbmVkQmVmb3JlQXJlYShHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBjb25z
dCBOYW1lZEdyaWRMaW5lc01hcCYgbmFtZWRMaW5lc01hcCwgY29uc3QgU3RyaW5nJiBsaW5lTmFt
ZSwgY29uc3QgR3JpZENvb3JkaW5hdGUmIGdyaWRBcmVhQ29vcmRpbmF0ZSwgR3JpZFBvc2l0aW9u
U2lkZSBzaWRlKQotewotICAgIGF1dG8gbGluZXNJdGVyYXRvciA9IG5hbWVkTGluZXNNYXAuZmlu
ZChsaW5lTmFtZSk7Ci0gICAgaWYgKGxpbmVzSXRlcmF0b3IgPT0gbmFtZWRMaW5lc01hcC5lbmQo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2l6ZV90IG5hbWVkR3JpZExpbmVGaXJzdERlZmlu
aXRpb24gPSBHcmlkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUobGluZXNJdGVy
YXRvci0+dmFsdWVbMF0sIHNpZGUpOwotICAgIGlmIChncmlkTGluZURlZmluZWRCZWZvcmVHcmlk
QXJlYShuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9uLCBncmlkQXJlYUNvb3JkaW5hdGUsIHNp
ZGUpKQotICAgICAgICBwb3NpdGlvbi5zZXRFeHBsaWNpdFBvc2l0aW9uKDEsIGxpbmVOYW1lKTsK
LX0KLQotdm9pZCBSZW5kZXJHcmlkOjphZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRpb24oR3JpZFBv
c2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKSBjb25zdAotewotICAgIC8v
IFRoZSBTdHlsZUJ1aWxkZXIgYWx3YXlzIHRyZWF0cyA8Y3VzdG9tLWlkZW50PiBhcyBhIG5hbWVk
IGdyaWQgYXJlYS4gV2UgbXVzdCBkZWNpZGUgaGVyZSBpZiB0aGV5IGFyZSBnb2luZyB0byBiZQot
ICAgIC8vIHJlc29sdmVkIHRvIGVpdGhlciBhIGdyaWQgYXJlYSBvciBhIGdyaWQgbGluZS4KLSAg
ICBBU1NFUlQocG9zaXRpb24uaXNOYW1lZEdyaWRBcmVhKCkpOwotICAgIGNvbnN0IE5hbWVkR3Jp
ZEFyZWFNYXAmIGdyaWRBcmVhTWFwID0gc3R5bGUoKS5uYW1lZEdyaWRBcmVhKCk7Ci0gICAgY29u
c3QgTmFtZWRHcmlkTGluZXNNYXAmIG5hbWVkTGluZXNNYXAgPSBpc0NvbHVtblNpZGUoc2lkZSkg
PyBzdHlsZSgpLm5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBzdHlsZSgpLm5hbWVkR3JpZFJvd0xp
bmVzKCk7Ci0KLSAgICBTdHJpbmcgbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUgPSBwb3NpdGlvbi5u
YW1lZEdyaWRMaW5lKCk7Ci0gICAgYm9vbCBpc1N0YXJ0U2lkZSA9IHNpZGUgPT0gQ29sdW1uU3Rh
cnRTaWRlIHx8IHNpZGUgPT0gUm93U3RhcnRTaWRlOwotCi0gICAgYXV0byBhcmVhSXRlcmF0b3Ig
PSBncmlkQXJlYU1hcC5maW5kKG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lKTsKLSAgICBpZiAoYXJl
YUl0ZXJhdG9yICE9IGdyaWRBcmVhTWFwLmVuZCgpKSB7Ci0gICAgICAgIFN0cmluZyBncmlkTGlu
ZU5hbWUgPSBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZSArIChpc1N0YXJ0U2lkZSA/ICItc3RhcnQi
IDogIi1lbmQiKTsKLSAgICAgICAgc2V0TmFtZWRMaW5lUG9zaXRpb25JZkRlZmluZWRCZWZvcmVB
cmVhKHBvc2l0aW9uLCBuYW1lZExpbmVzTWFwLCBncmlkTGluZU5hbWUsIGFyZWFJdGVyYXRvci0+
dmFsdWUsIHNpZGUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYm9vbCBoYXNTdGFy
dFN1ZmZpeCA9IG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lLmVuZHNXaXRoKCItc3RhcnQiKTsKLSAg
ICBib29sIGhhc0VuZFN1ZmZpeCA9IG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lLmVuZHNXaXRoKCIt
ZW5kIik7Ci0gICAgaWYgKChoYXNTdGFydFN1ZmZpeCAmJiBpc1N0YXJ0U2lkZSkgfHwgKGhhc0Vu
ZFN1ZmZpeCAmJiAhaXNTdGFydFNpZGUpKSB7Ci0gICAgICAgIHNpemVfdCBzdWZmaXhMZW5ndGgg
PSBoYXNTdGFydFN1ZmZpeCA/IHN0cmxlbigiLXN0YXJ0IikgOiBzdHJsZW4oIi1lbmQiKTsKLSAg
ICAgICAgU3RyaW5nIGdyaWRBcmVhTmFtZSA9IG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lLnN1YnN0
cmluZygwLCBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZS5sZW5ndGgoKSAtIHN1ZmZpeExlbmd0aCk7
Ci0KLSAgICAgICAgYXV0byBhcmVhSXRlcmF0b3IgPSBncmlkQXJlYU1hcC5maW5kKGdyaWRBcmVh
TmFtZSk7Ci0gICAgICAgIGlmIChhcmVhSXRlcmF0b3IgIT0gZ3JpZEFyZWFNYXAuZW5kKCkpIHsK
LSAgICAgICAgICAgIHBvc2l0aW9uLnNldE5hbWVkR3JpZEFyZWEoZ3JpZEFyZWFOYW1lKTsKLSAg
ICAgICAgICAgIHNldE5hbWVkTGluZVBvc2l0aW9uSWZEZWZpbmVkQmVmb3JlQXJlYShwb3NpdGlv
biwgbmFtZWRMaW5lc01hcCwgbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUsIGFyZWFJdGVyYXRvci0+
dmFsdWUsIHNpZGUpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgaWYgKG5hbWVkTGluZXNNYXAuY29udGFpbnMobmFtZWRHcmlkQXJlYU9yR3JpZExpbmUpKQot
ICAgICAgICBwb3NpdGlvbi5zZXRFeHBsaWNpdFBvc2l0aW9uKDEsIG5hbWVkR3JpZEFyZWFPckdy
aWRMaW5lKTsKLSAgICBlbHNlCi0gICAgICAgIHBvc2l0aW9uLnNldEF1dG9Qb3NpdGlvbigpOwot
fQotCi12b2lkIFJlbmRlckdyaWQ6OmFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoR3JpZFBv
c2l0aW9uJiBpbml0aWFsUG9zaXRpb24sIEdyaWRQb3NpdGlvbiYgZmluYWxQb3NpdGlvbiwgR3Jp
ZFBvc2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlLCBHcmlkUG9zaXRpb25TaWRlIGZpbmFs
UG9zaXRpb25TaWRlKSBjb25zdAotewotICAgIEFTU0VSVChpc0NvbHVtblNpZGUoaW5pdGlhbFBv
c2l0aW9uU2lkZSkgPT0gaXNDb2x1bW5TaWRlKGZpbmFsUG9zaXRpb25TaWRlKSk7Ci0KLSAgICAv
LyBXZSBtdXN0IGhhbmRsZSB0aGUgcGxhY2VtZW50IGVycm9yIGhhbmRsaW5nIGNvZGUgaGVyZSBp
bnN0ZWFkIG9mIGluIHRoZSBTdHlsZUFkanVzdGVyIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0bwot
ICAgIC8vIG92ZXJ3cml0ZSB0aGUgc3BlY2lmaWVkIHZhbHVlcy4KLSAgICBpZiAoaW5pdGlhbFBv
c2l0aW9uLmlzU3BhbigpICYmIGZpbmFsUG9zaXRpb24uaXNTcGFuKCkpCi0gICAgICAgIGZpbmFs
UG9zaXRpb24uc2V0QXV0b1Bvc2l0aW9uKCk7Ci0KLSAgICBpZiAoaW5pdGlhbFBvc2l0aW9uLmlz
TmFtZWRHcmlkQXJlYSgpKQotICAgICAgICBhZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRpb24oaW5p
dGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRlKTsKLQotICAgIGlmIChmaW5hbFBvc2l0
aW9uLmlzTmFtZWRHcmlkQXJlYSgpKQotICAgICAgICBhZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRp
b24oZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvblNpZGUpOwotfQotCi1zdGQ6OnVuaXF1ZV9w
dHI8R3JpZFNwYW4+IFJlbmRlckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNv
bnN0IFJlbmRlckJveCogZ3JpZEl0ZW0sIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rp
b24pIGNvbnN0Ci17Ci0gICAgR3JpZFBvc2l0aW9uIGluaXRpYWxQb3NpdGlvbiA9IChkaXJlY3Rp
b24gPT0gRm9yQ29sdW1ucykgPyBncmlkSXRlbS0+c3R5bGUoKS5ncmlkSXRlbUNvbHVtblN0YXJ0
KCkgOiBncmlkSXRlbS0+c3R5bGUoKS5ncmlkSXRlbVJvd1N0YXJ0KCk7Ci0gICAgY29uc3QgR3Jp
ZFBvc2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1
bW5zKSA/IENvbHVtblN0YXJ0U2lkZSA6IFJvd1N0YXJ0U2lkZTsKLSAgICBHcmlkUG9zaXRpb24g
ZmluYWxQb3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBncmlkSXRlbS0+c3R5
bGUoKS5ncmlkSXRlbUNvbHVtbkVuZCgpIDogZ3JpZEl0ZW0tPnN0eWxlKCkuZ3JpZEl0ZW1Sb3dF
bmQoKTsKLSAgICBjb25zdCBHcmlkUG9zaXRpb25TaWRlIGZpbmFsUG9zaXRpb25TaWRlID0gKGRp
cmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IENvbHVtbkVuZFNpZGUgOiBSb3dFbmRTaWRlOwotCi0g
ICAgYWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShpbml0aWFsUG9zaXRpb24sIGZpbmFsUG9z
aXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUsIGZpbmFsUG9zaXRpb25TaWRlKTsKLQotICAgIGlm
IChpbml0aWFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9u
KCkgJiYgZmluYWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRp
b24oKSkgewotICAgICAgICBpZiAoc3R5bGUoKS5ncmlkQXV0b0Zsb3coKSA9PSBBdXRvRmxvd05v
bmUpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4oMCwgMCk7
Ci0KLSAgICAgICAgLy8gV2UgY2FuJ3QgZ2V0IG91ciBncmlkIHBvc2l0aW9ucyB3aXRob3V0IHJ1
bm5pbmcgdGhlIGF1dG8gcGxhY2VtZW50IGFsZ29yaXRobS4KLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgfQotCi0gICAgaWYgKGluaXRpYWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVkQWdh
aW5zdE9wcG9zaXRlUG9zaXRpb24oKSkgewotICAgICAgICAvLyBJbmZlciB0aGUgcG9zaXRpb24g
ZnJvbSB0aGUgZmluYWwgcG9zaXRpb24gKCdhdXRvIC8gMScgb3IgJ3NwYW4gMiAvIDMnIGNhc2Up
LgotICAgICAgICBjb25zdCBzaXplX3QgZmluYWxSZXNvbHZlZFBvc2l0aW9uID0gcmVzb2x2ZUdy
aWRQb3NpdGlvbkZyb21TdHlsZShmaW5hbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uU2lkZSk7Ci0g
ICAgICAgIHJldHVybiByZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24o
ZmluYWxSZXNvbHZlZFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvblNp
ZGUpOwotICAgIH0KLQotICAgIGlmIChmaW5hbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2Fp
bnN0T3Bwb3NpdGVQb3NpdGlvbigpKSB7Ci0gICAgICAgIC8vIEluZmVyIG91ciBwb3NpdGlvbiBm
cm9tIHRoZSBpbml0aWFsIHBvc2l0aW9uICgnMSAvIGF1dG8nIG9yICczIC8gc3BhbiAyJyBjYXNl
KS4KLSAgICAgICAgY29uc3Qgc2l6ZV90IGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uID0gcmVzb2x2
ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShpbml0aWFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvblNp
ZGUpOwotICAgICAgICByZXR1cm4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBv
c2l0aW9uKGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uLCBmaW5hbFBvc2l0
aW9uU2lkZSk7Ci0gICAgfQotCi0gICAgc2l6ZV90IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uID0g
cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShpbml0aWFsUG9zaXRpb24sIGluaXRpYWxQb3Np
dGlvblNpZGUpOwotICAgIHNpemVfdCByZXNvbHZlZEZpbmFsUG9zaXRpb24gPSByZXNvbHZlR3Jp
ZFBvc2l0aW9uRnJvbVN0eWxlKGZpbmFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb25TaWRlKTsKLQot
ICAgIC8vIElmICdncmlkLXJvdy1lbmQnIHNwZWNpZmllcyBhIGxpbmUgYXQgb3IgYmVmb3JlIHRo
YXQgc3BlY2lmaWVkIGJ5ICdncmlkLXJvdy1zdGFydCcsIGl0IGNvbXB1dGVzIHRvICdzcGFuIDEn
LgotICAgIGlmIChyZXNvbHZlZEZpbmFsUG9zaXRpb24gPCByZXNvbHZlZEluaXRpYWxQb3NpdGlv
bikKLSAgICAgICAgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uID0gcmVzb2x2ZWRJbml0aWFsUG9zaXRp
b247Ci0KLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRJbml0
aWFsUG9zaXRpb24sIHJlc29sdmVkRmluYWxQb3NpdGlvbik7Ci19Ci0KLXNpemVfdCBSZW5kZXJH
cmlkOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IEdyaWRQb3Np
dGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkgY29uc3QKLXsKLSAgICBBU1NF
UlQoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSk7Ci0KLSAgICBjb25zdCBOYW1l
ZEdyaWRMaW5lc01hcCYgZ3JpZExpbmVzTmFtZXMgPSBpc0NvbHVtblNpZGUoc2lkZSkgPyBzdHls
ZSgpLm5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBzdHlsZSgpLm5hbWVkR3JpZFJvd0xpbmVzKCk7
Ci0gICAgTmFtZWRHcmlkTGluZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZ3JpZExpbmVzTmFt
ZXMuZmluZChwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkpOwotICAgIGlmIChpdCA9PSBncmlkTGlu
ZXNOYW1lcy5lbmQoKSkgewotICAgICAgICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgpKQotICAg
ICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBsYXN0TGluZSA9IGV4cGxp
Y2l0R3JpZFNpemVGb3JTaWRlKHNpZGUpOwotICAgICAgICByZXR1cm4gR3JpZFBvc2l0aW9uOjph
ZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGxhc3RMaW5lLCBzaWRlKTsKLSAgICB9Ci0KLSAgICBz
aXplX3QgbmFtZWRHcmlkTGluZUluZGV4OwotICAgIGlmIChwb3NpdGlvbi5pc1Bvc2l0aXZlKCkp
Ci0gICAgICAgIG5hbWVkR3JpZExpbmVJbmRleCA9IHN0ZDo6bWluPHNpemVfdD4ocG9zaXRpb24u
aW50ZWdlclBvc2l0aW9uKCksIGl0LT52YWx1ZS5zaXplKCkpIC0gMTsKLSAgICBlbHNlCi0gICAg
ICAgIG5hbWVkR3JpZExpbmVJbmRleCA9IHN0ZDo6bWF4PGludD4oaXQtPnZhbHVlLnNpemUoKSAt
IGFicyhwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSksIDApOwotICAgIHJldHVybiBHcmlkUG9z
aXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoaXQtPnZhbHVlW25hbWVkR3JpZExpbmVJ
bmRleF0sIHNpZGUpOwotfQotCi1zaXplX3QgUmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlv
bkZyb21TdHlsZShjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRl
IHNpZGUpIGNvbnN0Ci17Ci0gICAgc3dpdGNoIChwb3NpdGlvbi50eXBlKCkpIHsKLSAgICBjYXNl
IEV4cGxpY2l0UG9zaXRpb246IHsKLSAgICAgICAgQVNTRVJUKHBvc2l0aW9uLmludGVnZXJQb3Np
dGlvbigpKTsKLQotICAgICAgICBpZiAoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwo
KSkKLSAgICAgICAgICAgIHJldHVybiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0
eWxlKHBvc2l0aW9uLCBzaWRlKTsKLQotICAgICAgICAvLyBIYW5kbGUgPGludGVnZXI+IGV4cGxp
Y2l0IHBvc2l0aW9uLgotICAgICAgICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgpKQotICAgICAg
ICAgICAgcmV0dXJuIEdyaWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShwb3Np
dGlvbi5pbnRlZ2VyUG9zaXRpb24oKSAtIDEsIHNpZGUpOwotCi0gICAgICAgIHNpemVfdCByZXNv
bHZlZFBvc2l0aW9uID0gYWJzKHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpKSAtIDE7Ci0gICAg
ICAgIGNvbnN0IHNpemVfdCBlbmRPZlRyYWNrID0gZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoc2lk
ZSk7Ci0KLSAgICAgICAgLy8gUGVyIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGlj
L3d3dy1zdHlsZS8yMDEzTWFyLzA1ODkuaHRtbCwgd2UgY2xhbXAgbmVnYXRpdmUgdmFsdWUgdG8g
dGhlIGZpcnN0IGxpbmUuCi0gICAgICAgIGlmIChlbmRPZlRyYWNrIDwgcmVzb2x2ZWRQb3NpdGlv
bikKLSAgICAgICAgICAgIHJldHVybiAwOwotCi0gICAgICAgIHJldHVybiBHcmlkUG9zaXRpb246
OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoZW5kT2ZUcmFjayAtIHJlc29sdmVkUG9zaXRpb24s
IHNpZGUpOwotICAgIH0KLSAgICBjYXNlIE5hbWVkR3JpZEFyZWFQb3NpdGlvbjoKLSAgICB7Ci0g
ICAgICAgIE5hbWVkR3JpZEFyZWFNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gc3R5bGUoKS5uYW1l
ZEdyaWRBcmVhKCkuZmluZChwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkpOwotICAgICAgICAvLyBV
bmtub3duIGdyaWQgYXJlYSBzaG91bGQgaGF2ZSBiZWVuIGNvbXB1dGVkIHRvICdhdXRvJyBieSBu
b3cuCi0gICAgICAgIEFTU0VSVChpdCAhPSBzdHlsZSgpLm5hbWVkR3JpZEFyZWEoKS5lbmQoKSk7
Ci0gICAgICAgIGNvbnN0IEdyaWRDb29yZGluYXRlJiBncmlkQXJlYUNvb3JkaW5hdGUgPSBpdC0+
dmFsdWU7Ci0gICAgICAgIHN3aXRjaCAoc2lkZSkgewotICAgICAgICBjYXNlIENvbHVtblN0YXJ0
U2lkZToKLSAgICAgICAgICAgIHJldHVybiBncmlkQXJlYUNvb3JkaW5hdGUuY29sdW1ucy5pbml0
aWFsUG9zaXRpb25JbmRleDsKLSAgICAgICAgY2FzZSBDb2x1bW5FbmRTaWRlOgotICAgICAgICAg
ICAgcmV0dXJuIGdyaWRBcmVhQ29vcmRpbmF0ZS5jb2x1bW5zLmZpbmFsUG9zaXRpb25JbmRleDsK
LSAgICAgICAgY2FzZSBSb3dTdGFydFNpZGU6Ci0gICAgICAgICAgICByZXR1cm4gZ3JpZEFyZWFD
b29yZGluYXRlLnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXg7Ci0gICAgICAgIGNhc2UgUm93RW5k
U2lkZToKLSAgICAgICAgICAgIHJldHVybiBncmlkQXJlYUNvb3JkaW5hdGUucm93cy5maW5hbFBv
c2l0aW9uSW5kZXg7Ci0gICAgICAgIH0KLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICBjYXNlIEF1dG9Qb3NpdGlvbjoKLSAgICBjYXNl
IFNwYW5Qb3NpdGlvbjoKLSAgICAgICAgLy8gJ2F1dG8nIGFuZCBzcGFuIGRlcGVuZCBvbiB0aGUg
b3Bwb3NpdGUgcG9zaXRpb24gZm9yIHJlc29sdXRpb24gKGUuZy4gZ3JpZC1yb3c6IGF1dG8gLyAx
IG9yIGdyaWQtY29sdW1uOiBzcGFuIDMgLyAibXlIZWFkZXIiKS4KLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBS
ZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oc2l6
ZV90IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlv
biwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKSBjb25zdAotewotICAgIGlmIChwb3NpdGlvbi5pc0F1
dG8oKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVk
T3Bwb3NpdGVQb3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKLQotICAgIEFTU0VS
VChwb3NpdGlvbi5pc1NwYW4oKSk7Ci0gICAgQVNTRVJUKHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigp
ID4gMCk7Ci0KLSAgICBpZiAoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSkgewot
ICAgICAgICAvLyBzcGFuIDIgJ2MnIC0+IHdlIG5lZWQgdG8gZmluZCB0aGUgYXBwcm9wcmlhdGUg
Z3JpZCBsaW5lIGJlZm9yZSAvIGFmdGVyIG91ciBvcHBvc2l0ZSBwb3NpdGlvbi4KLSAgICAgICAg
cmV0dXJuIHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlv
bihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHBvc2l0aW9uLCBzaWRlKTsKLSAgICB9Ci0KLSAg
ICAvLyAnc3BhbiAxJyBpcyBjb250YWluZWQgaW5zaWRlIGEgc2luZ2xlIGdyaWQgdHJhY2sgcmVn
YXJkbGVzcyBvZiB0aGUgZGlyZWN0aW9uLgotICAgIC8vIFRoYXQncyB3aHkgdGhlIENTUyBzcGFu
IHZhbHVlIGlzIG9uZSBtb3JlIHRoYW4gdGhlIG9mZnNldCB3ZSBhcHBseS4KLSAgICBzaXplX3Qg
cG9zaXRpb25PZmZzZXQgPSBwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSAtIDE7Ci0gICAgaWYgKHNp
ZGUgPT0gQ29sdW1uU3RhcnRTaWRlIHx8IHNpZGUgPT0gUm93U3RhcnRTaWRlKSB7Ci0gICAgICAg
IHNpemVfdCBpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiA9IHN0ZDo6bWF4PGludD4oMCwgcmVzb2x2
ZWRPcHBvc2l0ZVBvc2l0aW9uIC0gcG9zaXRpb25PZmZzZXQpOwotICAgICAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4oaW5pdGlhbFJlc29sdmVkUG9zaXRpb24sIHJlc29sdmVk
T3Bwb3NpdGVQb3NpdGlvbik7Ci0gICAgfQotCi0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0
aW9uICsgcG9zaXRpb25PZmZzZXQpOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IFJl
bmRlckdyaWQ6OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3Np
dGlvbihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24m
IHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKHBv
c2l0aW9uLmlzU3BhbigpKTsKLSAgICBBU1NFUlQoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5p
c051bGwoKSk7Ci0gICAgLy8gTmVnYXRpdmUgcG9zaXRpb25zIGFyZSBub3QgYWxsb3dlZCBwZXIg
dGhlIHNwZWNpZmljYXRpb24gYW5kIHNob3VsZCBoYXZlIGJlZW4gaGFuZGxlZCBkdXJpbmcgcGFy
c2luZy4KLSAgICBBU1NFUlQocG9zaXRpb24uc3BhblBvc2l0aW9uKCkgPiAwKTsKLQotICAgIGNv
bnN0IE5hbWVkR3JpZExpbmVzTWFwJiBncmlkTGluZXNOYW1lcyA9IGlzQ29sdW1uU2lkZShzaWRl
KSA/IHN0eWxlKCkubmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6IHN0eWxlKCkubmFtZWRHcmlkUm93
TGluZXMoKTsKLSAgICBOYW1lZEdyaWRMaW5lc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBncmlk
TGluZXNOYW1lcy5maW5kKHBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSk7Ci0KLSAgICAvLyBJZiB0
aGVyZSBpcyBubyBuYW1lZCBncmlkIGxpbmUgb2YgdGhhdCBuYW1lLCB3ZSByZXNvbHZlIHRoZSBw
b3NpdGlvbiB0byAnYXV0bycgKHdoaWNoIGlzIGVxdWl2YWxlbnQgdG8gJ3NwYW4gMScgaW4gdGhp
cyBjYXNlKS4KLSAgICAvLyBTZWUgaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMv
d3d3LXN0eWxlLzIwMTNKdW4vMDM5NC5odG1sLgotICAgIGlmIChpdCA9PSBncmlkTGluZXNOYW1l
cy5lbmQoKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29s
dmVkT3Bwb3NpdGVQb3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKLQotICAgIGlm
IChzaWRlID09IFJvd1N0YXJ0U2lkZSB8fCBzaWRlID09IENvbHVtblN0YXJ0U2lkZSkKLSAgICAg
ICAgcmV0dXJuIHJlc29sdmVSb3dTdGFydENvbHVtblN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9u
QWdhaW5zdE9wcG9zaXRlUG9zaXRpb24ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBwb3NpdGlv
biwgaXQtPnZhbHVlKTsKLQotICAgIHJldHVybiByZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRH
cmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24ocmVzb2x2ZWRPcHBvc2l0ZVBv
c2l0aW9uLCBwb3NpdGlvbiwgaXQtPnZhbHVlKTsKLX0KLQotc3RhdGljIGlubGluZSBzaXplX3Qg
Zmlyc3ROYW1lZEdyaWRMaW5lQmVmb3JlUG9zaXRpb24oc2l6ZV90IHBvc2l0aW9uLCBjb25zdCBW
ZWN0b3I8c2l6ZV90PiYgZ3JpZExpbmVzKQotewotICAgIC8vIFRoZSBncmlkIGxpbmUgaW5lcXVh
bGl0eSBuZWVkcyB0byBiZSBzdHJpY3QgKHdoaWNoIGRvZXNuJ3QgbWF0Y2ggdGhlIGFmdGVyIC8g
ZW5kIGNhc2UpIGJlY2F1c2UgfHBvc2l0aW9ufCBpcwotICAgIC8vIGFscmVhZHkgY29udmVydGVk
IHRvIGFuIGluZGV4IGluIG91ciBncmlkIHJlcHJlc2VudGF0aW9uIChpZSBvbmUgd2FzIHJlbW92
ZWQgZnJvbSB0aGUgZ3JpZCBsaW5lIHRvIGFjY291bnQgZm9yCi0gICAgLy8gdGhlIHNpZGUpLgot
ICAgIHNpemVfdCBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbkluZGV4ID0gMDsKLSAgICBjb25zdCBz
aXplX3QqIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uID0gc3RkOjpsb3dlcl9ib3VuZChncmlkTGlu
ZXMuYmVnaW4oKSwgZ3JpZExpbmVzLmVuZCgpLCBwb3NpdGlvbik7Ci0gICAgaWYgKGZpcnN0TGlu
ZUJlZm9yZVBvc2l0aW9uICE9IGdyaWRMaW5lcy5lbmQoKSkgewotICAgICAgICBpZiAoKmZpcnN0
TGluZUJlZm9yZVBvc2l0aW9uID4gcG9zaXRpb24gJiYgZmlyc3RMaW5lQmVmb3JlUG9zaXRpb24g
IT0gZ3JpZExpbmVzLmJlZ2luKCkpCi0gICAgICAgICAgICAtLWZpcnN0TGluZUJlZm9yZVBvc2l0
aW9uOwotCi0gICAgICAgIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uSW5kZXggPSBmaXJzdExpbmVC
ZWZvcmVQb3NpdGlvbiAtIGdyaWRMaW5lcy5iZWdpbigpOwotICAgIH0KLSAgICByZXR1cm4gZmly
c3RMaW5lQmVmb3JlUG9zaXRpb25JbmRleDsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFu
PiBSZW5kZXJHcmlkOjpyZXNvbHZlUm93U3RhcnRDb2x1bW5TdGFydE5hbWVkR3JpZExpbmVQb3Np
dGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHNpemVfdCByZXNvbHZlZE9wcG9zaXRlUG9zaXRp
b24sIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIGNvbnN0IFZlY3RvcjxzaXplX3Q+JiBn
cmlkTGluZXMpIGNvbnN0Ci17Ci0gICAgc2l6ZV90IGdyaWRMaW5lSW5kZXggPSBzdGQ6Om1heDxp
bnQ+KDAsIGZpcnN0TmFtZWRHcmlkTGluZUJlZm9yZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQ
b3NpdGlvbiwgZ3JpZExpbmVzKSAtIHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpICsgMSk7Ci0gICAg
c2l6ZV90IHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA9IGdyaWRMaW5lc1tncmlkTGluZUluZGV4
XTsKLSAgICBpZiAocmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID4gcmVzb2x2ZWRPcHBvc2l0ZVBv
c2l0aW9uKQotICAgICAgICByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSByZXNvbHZlZE9wcG9z
aXRlUG9zaXRpb247Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29s
dmVkR3JpZExpbmVQb3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKLX0KLQotc3Rk
Ojp1bmlxdWVfcHRyPEdyaWRTcGFuPiBSZW5kZXJHcmlkOjpyZXNvbHZlUm93RW5kQ29sdW1uRW5k
TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oc2l6ZV90IHJlc29s
dmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgY29uc3Qg
VmVjdG9yPHNpemVfdD4mIGdyaWRMaW5lcykgY29uc3QKLXsKLSAgICBzaXplX3QgZmlyc3RMaW5l
QWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uSW5kZXggPSBncmlkTGluZXMuc2l6ZSgpIC0gMTsKLSAgICBj
b25zdCBzaXplX3QqIGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbiA9IHN0ZDo6dXBwZXJf
Ym91bmQoZ3JpZExpbmVzLmJlZ2luKCksIGdyaWRMaW5lcy5lbmQoKSwgcmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uKTsKLSAgICBpZiAoZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uICE9IGdy
aWRMaW5lcy5lbmQoKSkKLSAgICAgICAgZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uSW5k
ZXggPSBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb24gLSBncmlkTGluZXMuYmVnaW4oKTsK
LQotICAgIHNpemVfdCBncmlkTGluZUluZGV4ID0gc3RkOjptaW4oZ3JpZExpbmVzLnNpemUoKSAt
IDEsIGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbkluZGV4ICsgcG9zaXRpb24uc3BhblBv
c2l0aW9uKCkgLSAxKTsKLSAgICBzaXplX3QgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gR3Jp
ZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKGdyaWRM
aW5lc1tncmlkTGluZUluZGV4XSk7Ci0gICAgaWYgKHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA8
IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbikKLSAgICAgICAgcmVzb2x2ZWRHcmlkTGluZVBvc2l0
aW9uID0gcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uOwotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPEdyaWRTcGFuPihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkR3JpZExpbmVQ
b3NpdGlvbik7Ci19Ci0KIExheW91dFVuaXQgUmVuZGVyR3JpZDo6Z3JpZEFyZWFCcmVhZHRoRm9y
Q2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRp
cmVjdGlvbiwgY29uc3QgVmVjdG9yPEdyaWRUcmFjaz4mIHRyYWNrcykgY29uc3QKIHsKICAgICBj
b25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0ZSA9IGNhY2hlZEdyaWRDb29yZGluYXRlKGNo
aWxkKTsKICAgICBjb25zdCBHcmlkU3BhbiYgc3BhbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1u
cykgPyBjb29yZGluYXRlLmNvbHVtbnMgOiBjb29yZGluYXRlLnJvd3M7CiAgICAgTGF5b3V0VW5p
dCBncmlkQXJlYUJyZWFkdGggPSAwOwotICAgIGZvciAoc2l6ZV90IHRyYWNrSW5kZXggPSBzcGFu
LmluaXRpYWxQb3NpdGlvbkluZGV4OyB0cmFja0luZGV4IDw9IHNwYW4uZmluYWxQb3NpdGlvbklu
ZGV4OyArK3RyYWNrSW5kZXgpCi0gICAgICAgIGdyaWRBcmVhQnJlYWR0aCArPSB0cmFja3NbdHJh
Y2tJbmRleF0ubV91c2VkQnJlYWR0aDsKKyAgICBmb3IgKEdyaWRSZXNvbHZlZFBvc2l0aW9uIHRy
YWNrUG9zaXRpb24gPSBzcGFuLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOyB0cmFja1Bvc2l0aW9u
IDw9IHNwYW4ucmVzb2x2ZWRGaW5hbFBvc2l0aW9uOyArK3RyYWNrUG9zaXRpb24pCisgICAgICAg
IGdyaWRBcmVhQnJlYWR0aCArPSB0cmFja3NbdHJhY2tQb3NpdGlvbi50b0ludCgpXS5tX3VzZWRC
cmVhZHRoOwogICAgIHJldHVybiBncmlkQXJlYUJyZWFkdGg7CiB9CiAKQEAgLTExNjgsMTEgKzg2
NiwxMSBAQCB2b2lkIFJlbmRlckdyaWQ6OnBvcHVsYXRlR3JpZFBvc2l0aW9ucyhjb25zdCBHcmlk
U2l6aW5nRGF0YSYgc2l6aW5nRGF0YSkKIExheW91dFBvaW50IFJlbmRlckdyaWQ6OmZpbmRDaGls
ZExvZ2ljYWxQb3NpdGlvbihSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBHcmlkU2l6aW5nRGF0YSYg
c2l6aW5nRGF0YSkKIHsKICAgICBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0ZSA9IGNh
Y2hlZEdyaWRDb29yZGluYXRlKGNoaWxkKTsKLSAgICBBU1NFUlRfVU5VU0VEKHNpemluZ0RhdGEs
IGNvb3JkaW5hdGUuY29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleCA8IHNpemluZ0RhdGEuY29s
dW1uVHJhY2tzLnNpemUoKSk7Ci0gICAgQVNTRVJUX1VOVVNFRChzaXppbmdEYXRhLCBjb29yZGlu
YXRlLnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXggPCBzaXppbmdEYXRhLnJvd1RyYWNrcy5zaXpl
KCkpOworICAgIEFTU0VSVF9VTlVTRUQoc2l6aW5nRGF0YSwgY29vcmRpbmF0ZS5jb2x1bW5zLnJl
c29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCkgPCBzaXppbmdEYXRhLmNvbHVtblRyYWNrcy5z
aXplKCkpOworICAgIEFTU0VSVF9VTlVTRUQoc2l6aW5nRGF0YSwgY29vcmRpbmF0ZS5yb3dzLnJl
c29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCkgPCBzaXppbmdEYXRhLnJvd1RyYWNrcy5zaXpl
KCkpOwogCiAgICAgLy8gVGhlIGdyaWQgaXRlbXMgc2hvdWxkIGJlIGluc2lkZSB0aGUgZ3JpZCBj
b250YWluZXIncyBib3JkZXIgYm94LCB0aGF0J3Mgd2h5IHRoZXkgbmVlZCB0byBiZSBzaGlmdGVk
LgotICAgIHJldHVybiBMYXlvdXRQb2ludChtX2NvbHVtblBvc2l0aW9uc1tjb29yZGluYXRlLmNv
bHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXhdICsgbWFyZ2luU3RhcnRGb3JDaGlsZCgqY2hpbGQp
LCBtX3Jvd1Bvc2l0aW9uc1tjb29yZGluYXRlLnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXhdICsg
bWFyZ2luQmVmb3JlRm9yQ2hpbGQoKmNoaWxkKSk7CisgICAgcmV0dXJuIExheW91dFBvaW50KG1f
Y29sdW1uUG9zaXRpb25zW2Nvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlv
bi50b0ludCgpXSArIG1hcmdpblN0YXJ0Rm9yQ2hpbGQoKmNoaWxkKSwgbV9yb3dQb3NpdGlvbnNb
Y29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCldICsgbWFyZ2lu
QmVmb3JlRm9yQ2hpbGQoKmNoaWxkKSk7CiB9CiAKIHZvaWQgUmVuZGVyR3JpZDo6cGFpbnRDaGls
ZHJlbihQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0
LCBQYWludEluZm8mIGZvckNoaWxkLCBib29sIHVzZVByaW50UmVjdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4IDgxODRlY2ZiNzQyNjJhNTRiMThlZDdhNjE4Mzg2MTY1
MDQwMmJlNDcuLjNiM2I2ZWI0MTM5NTYxNTgzMmI0ZDE2M2VhYThhNDA2MjkyMmY2YzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApAQCAtMjksNiArMjksNyBAQAogCiAjaWYg
RU5BQkxFKENTU19HUklEX0xBWU9VVCkKIAorI2luY2x1ZGUgIkdyaWRSZXNvbHZlZFBvc2l0aW9u
LmgiCiAjaW5jbHVkZSAiT3JkZXJJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgi
CiAKQEAgLTM4LDExICszOSw2IEBAIGNsYXNzIEdyaWRDb29yZGluYXRlOwogY2xhc3MgR3JpZFNw
YW47CiBjbGFzcyBHcmlkVHJhY2s7CiAKLWVudW0gR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIHsK
LSAgICBGb3JDb2x1bW5zLAotICAgIEZvclJvd3MKLX07Ci0KIGNsYXNzIFJlbmRlckdyaWQgZmlu
YWwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGljOgogICAgIFJlbmRlckdyaWQoRWxlbWVu
dCYsIFBhc3NSZWY8UmVuZGVyU3R5bGU+KTsKQEAgLTY2LDcgKzYyLDYgQEAgcHJpdmF0ZToKIAog
ICAgIGNsYXNzIEdyaWRJdGVyYXRvcjsKICAgICBjbGFzcyBHcmlkU2l6aW5nRGF0YTsKLSAgICBl
bnVtIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiB7IEZvckNvbHVtbnMsIEZvclJvd3MgfTsKICAg
ICB2b2lkIGNvbXB1dGVVc2VkQnJlYWR0aE9mR3JpZFRyYWNrcyhHcmlkVHJhY2tTaXppbmdEaXJl
Y3Rpb24sIEdyaWRTaXppbmdEYXRhJik7CiAgICAgdm9pZCBjb21wdXRlVXNlZEJyZWFkdGhPZkdy
aWRUcmFja3MoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBHcmlkU2l6aW5nRGF0YSYsIExheW91
dFVuaXQmIGF2YWlsYWJsZUxvZ2ljYWxTcGFjZSk7CiAgICAgYm9vbCBncmlkRWxlbWVudElzU2hy
aW5rVG9GaXQoKTsKQEAgLTc2LDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlc29sdmVD
b250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9ucyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24s
IEdyaWRTaXppbmdEYXRhJik7CiAKICAgICB2b2lkIGdyb3dHcmlkKEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbik7Ci0gICAgdm9pZCBpbnNlcnRJdGVtSW50b0dyaWQoUmVuZGVyQm94Kiwgc2l6ZV90
IHJvd1RyYWNrLCBzaXplX3QgY29sdW1uVHJhY2spOworICAgIHZvaWQgaW5zZXJ0SXRlbUludG9H
cmlkKFJlbmRlckJveCosIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByb3dUcmFjaywgY29u
c3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIGNvbHVtblRyYWNrKTsKICAgICB2b2lkIGluc2VydEl0
ZW1JbnRvR3JpZChSZW5kZXJCb3gqLCBjb25zdCBHcmlkQ29vcmRpbmF0ZSYpOwogICAgIHZvaWQg
cGxhY2VJdGVtc09uR3JpZCgpOwogICAgIHZvaWQgcG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRl
ckl0ZXJhdG9yKCk7CkBAIC0xMDAsOSArOTUsNiBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBjb21w
dXRlTm9ybWFsaXplZEZyYWN0aW9uQnJlYWR0aChWZWN0b3I8R3JpZFRyYWNrPiYsIGNvbnN0IEdy
aWRTcGFuJiB0cmFja3NTcGFuLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIExheW91dFVuaXQg
YXZhaWxhYmxlTG9naWNhbFNwYWNlKSBjb25zdDsKIAogICAgIGNvbnN0IEdyaWRUcmFja1NpemUm
IGdyaWRUcmFja1NpemUoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBzaXplX3QpIGNvbnN0Owot
ICAgIHNpemVfdCBleHBsaWNpdEdyaWRDb2x1bW5Db3VudCgpIGNvbnN0OwotICAgIHNpemVfdCBl
eHBsaWNpdEdyaWRSb3dDb3VudCgpIGNvbnN0OwotICAgIHNpemVfdCBleHBsaWNpdEdyaWRTaXpl
Rm9yU2lkZShHcmlkUG9zaXRpb25TaWRlKSBjb25zdDsKIAogICAgIExheW91dFVuaXQgbG9naWNh
bENvbnRlbnRIZWlnaHRGb3JDaGlsZChSZW5kZXJCb3gqLCBWZWN0b3I8R3JpZFRyYWNrPiYpOwog
ICAgIExheW91dFVuaXQgbWluQ29udGVudEZvckNoaWxkKFJlbmRlckJveCosIEdyaWRUcmFja1Np
emluZ0RpcmVjdGlvbiwgVmVjdG9yPEdyaWRUcmFjaz4mIGNvbHVtblRyYWNrcyk7CkBAIC0xMTAs
MTcgKzEwMiw2IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0UG9pbnQgZmluZENoaWxkTG9naWNhbFBv
c2l0aW9uKFJlbmRlckJveCosIGNvbnN0IEdyaWRTaXppbmdEYXRhJik7CiAgICAgR3JpZENvb3Jk
aW5hdGUgY2FjaGVkR3JpZENvb3JkaW5hdGUoY29uc3QgUmVuZGVyQm94KikgY29uc3Q7CiAKLSAg
ICBHcmlkU3BhbiByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24o
Y29uc3QgUmVuZGVyQm94KiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBzaXplX3QpIGNvbnN0
OwotICAgIHZvaWQgYWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uKEdyaWRQb3NpdGlvbiYsIEdy
aWRQb3NpdGlvblNpZGUpIGNvbnN0OwotICAgIHZvaWQgYWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21T
dHlsZShHcmlkUG9zaXRpb24mIGluaXRpYWxQb3NpdGlvbiwgR3JpZFBvc2l0aW9uJiBmaW5hbFBv
c2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIGluaXRpYWxQb3NpdGlvblNpZGUsIEdyaWRQb3NpdGlv
blNpZGUgZmluYWxQb3NpdGlvblNpZGUpIGNvbnN0OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlk
U3Bhbj4gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QgUmVuZGVyQm94KiwgR3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKLSAgICBzaXplX3QgcmVzb2x2ZU5hbWVkR3Jp
ZExpbmVQb3NpdGlvbkZyb21TdHlsZShjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25T
aWRlKSBjb25zdDsKLSAgICBzaXplX3QgcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShjb25z
dCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlv
bihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mLCBH
cmlkUG9zaXRpb25TaWRlKSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJl
c29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihzaXplX3Qg
cmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRp
b25TaWRlKSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVSb3dT
dGFydENvbHVtblN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRp
b24oc2l6ZV90IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiwg
Y29uc3QgVmVjdG9yPHNpemVfdD4mKSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNw
YW4+IHJlc29sdmVSb3dFbmRDb2x1bW5FbmROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bw
b3NpdGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlk
UG9zaXRpb24mLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYpIGNvbnN0OwotCiAgICAgTGF5b3V0VW5p
dCBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxkLCBHcmlkVHJh
Y2tTaXppbmdEaXJlY3Rpb24sIGNvbnN0IFZlY3RvcjxHcmlkVHJhY2s+JikgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgcGFpbnRDaGlsZHJlbihQYWludEluZm8mIGZvclNlbGYsIGNvbnN0IExh
eW91dFBvaW50JiBwYWludE9mZnNldCwgUGFpbnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmlu
dFJlY3QpIG92ZXJyaWRlIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0dyaWRDb29yZGluYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvR3JpZENvb3JkaW5hdGUuaAppbmRleCA0NGQyMDBiY2RkNWExZmE4ZWFiMzJmMjk2Yjg3OGQ5
M2IwNGNmMjcyLi45MDhmMzY3MmI2OTUzNDY2NTVhZDlmOWRkYzJmM2M5ZjI4NGJlNjczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZENvb3JkaW5hdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZENvb3JkaW5hdGUuaApAQCAt
MzQsMzAgKzM0LDMxIEBACiAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogCisjaW5jbHVk
ZSAiR3JpZFJlc29sdmVkUG9zaXRpb24uaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8v
IEEgc3BhbiBpbiBhIHNpbmdsZSBkaXJlY3Rpb24gKGVpdGhlciByb3dzIG9yIGNvbHVtbnMpLiBO
b3RlIHRoYXQgfGluaXRpYWxQb3NpdGlvbkluZGV4fAotLy8gYW5kIHxmaW5hbFBvc2l0aW9uSW5k
ZXh8IGFyZSBncmlkIGFyZWFzJyBpbmRleGVzLCBOT1QgZ3JpZCBsaW5lcycuIEl0ZXJhdGluZyBv
dmVyIHRoZQotLy8gc3BhbiBzaG91bGQgaW5jbHVkZSBib3RoIHxpbml0aWFsUG9zaXRpb25JbmRl
eHwgYW5kIHxmaW5hbFBvc2l0aW9uSW5kZXh8IHRvIGJlIGNvcnJlY3QuCisvLyBBIHNwYW4gaW4g
YSBzaW5nbGUgZGlyZWN0aW9uIChlaXRoZXIgcm93cyBvciBjb2x1bW5zKS4gTm90ZSB0aGF0IHxy
ZXNvbHZlZEluaXRpYWxQb3NpdGlvbnwKKy8vIGFuZCB8cmVzb2x2ZWRGaW5hbFBvc2l0aW9ufCBh
cmUgZ3JpZCBhcmVhcycgaW5kZXhlcywgTk9UIGdyaWQgbGluZXMnLiBJdGVyYXRpbmcgb3ZlciB0
aGUKKy8vIHNwYW4gc2hvdWxkIGluY2x1ZGUgYm90aCB8cmVzb2x2ZWRJbml0aWFsUG9zaXRpb258
IGFuZCB8cmVzb2x2ZWRGaW5hbFBvc2l0aW9ufCB0byBiZSBjb3JyZWN0LgogY2xhc3MgR3JpZFNw
YW4gewogcHVibGljOgotICAgIEdyaWRTcGFuKHNpemVfdCBpbml0aWFsUG9zaXRpb24sIHNpemVf
dCBmaW5hbFBvc2l0aW9uKQotICAgICAgICA6IGluaXRpYWxQb3NpdGlvbkluZGV4KGluaXRpYWxQ
b3NpdGlvbikKLSAgICAgICAgLCBmaW5hbFBvc2l0aW9uSW5kZXgoZmluYWxQb3NpdGlvbikKKyAg
ICBHcmlkU3Bhbihjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRJbml0aWFsUG9z
aXRpb24sIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZEZpbmFsUG9zaXRpb24p
CisgICAgICAgIDogcmVzb2x2ZWRJbml0aWFsUG9zaXRpb24ocmVzb2x2ZWRJbml0aWFsUG9zaXRp
b24pCisgICAgICAgICwgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uKHJlc29sdmVkRmluYWxQb3NpdGlv
bikKICAgICB7Ci0gICAgICAgIEFTU0VSVChpbml0aWFsUG9zaXRpb25JbmRleCA8PSBmaW5hbFBv
c2l0aW9uSW5kZXgpOworICAgICAgICBBU1NFUlQocmVzb2x2ZWRJbml0aWFsUG9zaXRpb24gPD0g
cmVzb2x2ZWRGaW5hbFBvc2l0aW9uKTsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29u
c3QgR3JpZFNwYW4mIG8pIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gaW5pdGlhbFBvc2l0
aW9uSW5kZXggPT0gby5pbml0aWFsUG9zaXRpb25JbmRleCAmJiBmaW5hbFBvc2l0aW9uSW5kZXgg
PT0gby5maW5hbFBvc2l0aW9uSW5kZXg7CisgICAgICAgIHJldHVybiByZXNvbHZlZEluaXRpYWxQ
b3NpdGlvbiA9PSBvLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uICYmIHJlc29sdmVkRmluYWxQb3Np
dGlvbiA9PSBvLnJlc29sdmVkRmluYWxQb3NpdGlvbjsKICAgICB9CiAKLSAgICBzaXplX3QgaW5p
dGlhbFBvc2l0aW9uSW5kZXg7Ci0gICAgc2l6ZV90IGZpbmFsUG9zaXRpb25JbmRleDsKKyAgICBH
cmlkUmVzb2x2ZWRQb3NpdGlvbiByZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsKKyAgICBHcmlkUmVz
b2x2ZWRQb3NpdGlvbiByZXNvbHZlZEZpbmFsUG9zaXRpb247CiB9OwogCiAvLyBUaGlzIHJlcHJl
c2VudHMgYSBncmlkIGFyZWEgdGhhdCBzcGFucyBpbiBib3RoIHJvd3MnIGFuZCBjb2x1bW5zJyBk
aXJlY3Rpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3Jp
ZFBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9u
LmgKaW5kZXggNjhmMmYzOTFjYzVkYTA3M2RkMTY3MDk4YzA4YzVhOWY4NmE0OGZkNC4uNWEwYWY5
ZWU0NzYwYjRjYzQ5NDMyMTRjYWRjYmZkOTU2YTVlYmNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb24uaApAQCAtNDUsMTMgKzQ1LDYgQEAgZW51bSBH
cmlkUG9zaXRpb25UeXBlIHsKICAgICBOYW1lZEdyaWRBcmVhUG9zaXRpb24gLy8gPGlkZW50Pgog
fTsKIAotZW51bSBHcmlkUG9zaXRpb25TaWRlIHsKLSAgICBDb2x1bW5TdGFydFNpZGUsCi0gICAg
Q29sdW1uRW5kU2lkZSwKLSAgICBSb3dTdGFydFNpZGUsCi0gICAgUm93RW5kU2lkZQotfTsKLQog
Y2xhc3MgR3JpZFBvc2l0aW9uIHsKIHB1YmxpYzoKICAgICBHcmlkUG9zaXRpb24oKQpAQCAtNjAs
MjAgKzUzLDYgQEAgcHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICBzdGF0aWMgaW5saW5lIHNp
emVfdCBhZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKHNpemVfdCByZXNv
bHZlZFBvc2l0aW9uKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJlc29sdmVkUG9zaXRpb24gPyBy
ZXNvbHZlZFBvc2l0aW9uIC0gMSA6IDA7Ci0gICAgfQotCi0gICAgc3RhdGljIHNpemVfdCBhZGp1
c3RHcmlkUG9zaXRpb25Gb3JTaWRlKHNpemVfdCByZXNvbHZlZFBvc2l0aW9uLCBHcmlkUG9zaXRp
b25TaWRlIHNpZGUpCi0gICAgewotICAgICAgICAvLyBBbiBpdGVtIGZpbmlzaGluZyBvbiB0aGUg
Ti10aCBsaW5lIGJlbG9uZ3MgdG8gdGhlIE4tMS10aCBjZWxsLgotICAgICAgICBpZiAoc2lkZSA9
PSBDb2x1bW5FbmRTaWRlIHx8IHNpZGUgPT0gUm93RW5kU2lkZSkKLSAgICAgICAgICAgIHJldHVy
biBhZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKHJlc29sdmVkUG9zaXRp
b24pOwotCi0gICAgICAgIHJldHVybiByZXNvbHZlZFBvc2l0aW9uOwotICAgIH0KLQogICAgIGJv
b2wgaXNQb3NpdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGludGVnZXJQb3NpdGlvbigpID4gMDsgfQog
CiAgICAgR3JpZFBvc2l0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFJlc29sdmVkUG9z
aXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBv
c2l0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDI5OGU0YzE1ODhlMTM3NDZhNzNhMTUzOTUyMWE0YmJm
OTkzZDY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L0dyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcApAQCAtMCwwICsxLDM0NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHcmlk
UmVzb2x2ZWRQb3NpdGlvbi5oIgorCisjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKKworI2lu
Y2x1ZGUgIkdyaWRDb29yZGluYXRlLmgiCisjaW5jbHVkZSAiUmVuZGVyQm94LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworc2l6ZV90IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdy
aWRDb2x1bW5Db3VudChjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlKQorewor
ICAgIHJldHVybiBncmlkQ29udGFpbmVyU3R5bGUuZ3JpZENvbHVtbnMoKS5zaXplKCk7Cit9CisK
K3NpemVfdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6ZXhwbGljaXRHcmlkUm93Q291bnQoY29uc3Qg
UmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSkKK3sKKyAgICByZXR1cm4gZ3JpZENvbnRh
aW5lclN0eWxlLmdyaWRSb3dzKCkuc2l6ZSgpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgaXND
b2x1bW5TaWRlKEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sKKyAgICByZXR1cm4gc2lkZSA9PSBD
b2x1bW5TdGFydFNpZGUgfHwgc2lkZSA9PSBDb2x1bW5FbmRTaWRlOworfQorCitzaXplX3QgR3Jp
ZFJlc29sdmVkUG9zaXRpb246OmV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKGNvbnN0IFJlbmRlclN0
eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sKKyAgICBy
ZXR1cm4gaXNDb2x1bW5TaWRlKHNpZGUpID8gZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoZ3JpZENv
bnRhaW5lclN0eWxlKSA6IGV4cGxpY2l0R3JpZFJvd0NvdW50KGdyaWRDb250YWluZXJTdHlsZSk7
Cit9CisKK0dyaWRTcGFuIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9u
c0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24oY29uc3QgUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6
aW5nRGlyZWN0aW9uLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgaW5pdGlhbFBvc2l0aW9u
KQoreworICAgIC8vIEZJWE1FOiBXZSBkb24ndCBzdXBwb3J0IHNwYW5uaW5nIHdpdGggYXV0byBw
b3NpdGlvbnMgeWV0LiBPbmNlIHdlIGRvLCB0aGlzIGlzIHdyb25nLiBBbHNvIHdlIHNob3VsZCBt
YWtlCisgICAgLy8gc3VyZSB0aGUgZ3JpZCBjYW4gYWNjb21vZGF0ZSB0aGUgbmV3IGl0ZW0gYXMg
d2Ugb25seSBncm93IDEgcG9zaXRpb24gaW4gYSBnaXZlbiBkaXJlY3Rpb24uCisgICAgcmV0dXJu
IEdyaWRTcGFuKGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uKTsKK30KKworc3RhdGlj
IGlubGluZSBib29sIGdyaWRMaW5lRGVmaW5lZEJlZm9yZUdyaWRBcmVhKGNvbnN0IEdyaWRSZXNv
bHZlZFBvc2l0aW9uJiBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9uLCBjb25zdCBHcmlkQ29v
cmRpbmF0ZSYgZ3JpZEFyZWFDb29yZGluYXRlcywgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQorewor
ICAgIHN3aXRjaCAoc2lkZSkgeworICAgIGNhc2UgQ29sdW1uU3RhcnRTaWRlOgorICAgICAgICBy
ZXR1cm4gbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiA8IGdyaWRBcmVhQ29vcmRpbmF0ZXMu
Y29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsKKyAgICBjYXNlIENvbHVtbkVuZFNpZGU6
CisgICAgICAgIHJldHVybiBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9uIDwgZ3JpZEFyZWFD
b29yZGluYXRlcy5jb2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlvbjsKKyAgICBjYXNlIFJvd1N0
YXJ0U2lkZToKKyAgICAgICAgcmV0dXJuIG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24gPCBn
cmlkQXJlYUNvb3JkaW5hdGVzLnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb247CisgICAgY2Fz
ZSBSb3dFbmRTaWRlOgorICAgICAgICByZXR1cm4gbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlv
biA8IGdyaWRBcmVhQ29vcmRpbmF0ZXMucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRpb247CisgICAg
fQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworc3Rh
dGljIHZvaWQgc2V0TmFtZWRMaW5lUG9zaXRpb25JZkRlZmluZWRCZWZvcmVBcmVhKEdyaWRQb3Np
dGlvbiYgcG9zaXRpb24sIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBuYW1lZExpbmVzTWFwLCBj
b25zdCBTdHJpbmcmIGxpbmVOYW1lLCBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgZ3JpZEFyZWFDb29y
ZGluYXRlLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7CisgICAgYXV0byBsaW5lc0l0ZXJhdG9y
ID0gbmFtZWRMaW5lc01hcC5maW5kKGxpbmVOYW1lKTsKKyAgICBpZiAobGluZXNJdGVyYXRvciA9
PSBuYW1lZExpbmVzTWFwLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBHcmlkUmVzb2x2
ZWRQb3NpdGlvbiBuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9uID0gR3JpZFJlc29sdmVkUG9z
aXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUobGluZXNJdGVyYXRvci0+dmFsdWVbMF0s
IHNpZGUpOworICAgIGlmIChncmlkTGluZURlZmluZWRCZWZvcmVHcmlkQXJlYShuYW1lZEdyaWRM
aW5lRmlyc3REZWZpbml0aW9uLCBncmlkQXJlYUNvb3JkaW5hdGUsIHNpZGUpKQorICAgICAgICBw
b3NpdGlvbi5zZXRFeHBsaWNpdFBvc2l0aW9uKDEsIGxpbmVOYW1lKTsKK30KKwordm9pZCBHcmlk
UmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uKGNvbnN0IFJlbmRl
clN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQ
b3NpdGlvblNpZGUgc2lkZSkKK3sKKyAgICAvLyBUaGUgU3R5bGVCdWlsZGVyIGFsd2F5cyB0cmVh
dHMgPGN1c3RvbS1pZGVudD4gYXMgYSBuYW1lZCBncmlkIGFyZWEuIFdlIG11c3QgZGVjaWRlIGhl
cmUgaWYgdGhleSBhcmUgZ29pbmcgdG8gYmUKKyAgICAvLyByZXNvbHZlZCB0byBlaXRoZXIgYSBn
cmlkIGFyZWEgb3IgYSBncmlkIGxpbmUuCisgICAgQVNTRVJUKHBvc2l0aW9uLmlzTmFtZWRHcmlk
QXJlYSgpKTsKKyAgICBjb25zdCBOYW1lZEdyaWRBcmVhTWFwJiBncmlkQXJlYU1hcCA9IGdyaWRD
b250YWluZXJTdHlsZS5uYW1lZEdyaWRBcmVhKCk7CisgICAgY29uc3QgTmFtZWRHcmlkTGluZXNN
YXAmIG5hbWVkTGluZXNNYXAgPSBpc0NvbHVtblNpZGUoc2lkZSkgPyBncmlkQ29udGFpbmVyU3R5
bGUubmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6IGdyaWRDb250YWluZXJTdHlsZS5uYW1lZEdyaWRS
b3dMaW5lcygpOworCisgICAgU3RyaW5nIG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lID0gcG9zaXRp
b24ubmFtZWRHcmlkTGluZSgpOworICAgIGJvb2wgaXNTdGFydFNpZGUgPSBzaWRlID09IENvbHVt
blN0YXJ0U2lkZSB8fCBzaWRlID09IFJvd1N0YXJ0U2lkZTsKKworICAgIGF1dG8gYXJlYUl0ZXJh
dG9yID0gZ3JpZEFyZWFNYXAuZmluZChuYW1lZEdyaWRBcmVhT3JHcmlkTGluZSk7CisgICAgaWYg
KGFyZWFJdGVyYXRvciAhPSBncmlkQXJlYU1hcC5lbmQoKSkgeworICAgICAgICBTdHJpbmcgZ3Jp
ZExpbmVOYW1lID0gbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUgKyAoaXNTdGFydFNpZGUgPyAiLXN0
YXJ0IiA6ICItZW5kIik7CisgICAgICAgIHNldE5hbWVkTGluZVBvc2l0aW9uSWZEZWZpbmVkQmVm
b3JlQXJlYShwb3NpdGlvbiwgbmFtZWRMaW5lc01hcCwgZ3JpZExpbmVOYW1lLCBhcmVhSXRlcmF0
b3ItPnZhbHVlLCBzaWRlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGJvb2wgaGFz
U3RhcnRTdWZmaXggPSBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZS5lbmRzV2l0aCgiLXN0YXJ0Iik7
CisgICAgYm9vbCBoYXNFbmRTdWZmaXggPSBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZS5lbmRzV2l0
aCgiLWVuZCIpOworICAgIGlmICgoaGFzU3RhcnRTdWZmaXggJiYgaXNTdGFydFNpZGUpIHx8ICho
YXNFbmRTdWZmaXggJiYgIWlzU3RhcnRTaWRlKSkgeworICAgICAgICBzaXplX3Qgc3VmZml4TGVu
Z3RoID0gaGFzU3RhcnRTdWZmaXggPyBzdHJsZW4oIi1zdGFydCIpIDogc3RybGVuKCItZW5kIik7
CisgICAgICAgIFN0cmluZyBncmlkQXJlYU5hbWUgPSBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZS5z
dWJzdHJpbmcoMCwgbmFtZWRHcmlkQXJlYU9yR3JpZExpbmUubGVuZ3RoKCkgLSBzdWZmaXhMZW5n
dGgpOworCisgICAgICAgIGF1dG8gYXJlYUl0ZXJhdG9yID0gZ3JpZEFyZWFNYXAuZmluZChncmlk
QXJlYU5hbWUpOworICAgICAgICBpZiAoYXJlYUl0ZXJhdG9yICE9IGdyaWRBcmVhTWFwLmVuZCgp
KSB7CisgICAgICAgICAgICBwb3NpdGlvbi5zZXROYW1lZEdyaWRBcmVhKGdyaWRBcmVhTmFtZSk7
CisgICAgICAgICAgICBzZXROYW1lZExpbmVQb3NpdGlvbklmRGVmaW5lZEJlZm9yZUFyZWEocG9z
aXRpb24sIG5hbWVkTGluZXNNYXAsIG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lLCBhcmVhSXRlcmF0
b3ItPnZhbHVlLCBzaWRlKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGlmIChuYW1lZExpbmVzTWFwLmNvbnRhaW5zKG5hbWVkR3JpZEFyZWFPckdyaWRMaW5l
KSkKKyAgICAgICAgcG9zaXRpb24uc2V0RXhwbGljaXRQb3NpdGlvbigxLCBuYW1lZEdyaWRBcmVh
T3JHcmlkTGluZSk7CisgICAgZWxzZQorICAgICAgICBwb3NpdGlvbi5zZXRBdXRvUG9zaXRpb24o
KTsKK30KKwordm9pZCBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uc0Zy
b21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBHcmlkUG9zaXRp
b24mIGluaXRpYWxQb3NpdGlvbiwgR3JpZFBvc2l0aW9uJiBmaW5hbFBvc2l0aW9uLCBHcmlkUG9z
aXRpb25TaWRlIGluaXRpYWxQb3NpdGlvblNpZGUsIEdyaWRQb3NpdGlvblNpZGUgZmluYWxQb3Np
dGlvblNpZGUpCit7CisgICAgQVNTRVJUKGlzQ29sdW1uU2lkZShpbml0aWFsUG9zaXRpb25TaWRl
KSA9PSBpc0NvbHVtblNpZGUoZmluYWxQb3NpdGlvblNpZGUpKTsKKworICAgIC8vIFdlIG11c3Qg
aGFuZGxlIHRoZSBwbGFjZW1lbnQgZXJyb3IgaGFuZGxpbmcgY29kZSBoZXJlIGluc3RlYWQgb2Yg
aW4gdGhlIFN0eWxlQWRqdXN0ZXIgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvCisgICAgLy8gb3Zl
cndyaXRlIHRoZSBzcGVjaWZpZWQgdmFsdWVzLgorICAgIGlmIChpbml0aWFsUG9zaXRpb24uaXNT
cGFuKCkgJiYgZmluYWxQb3NpdGlvbi5pc1NwYW4oKSkKKyAgICAgICAgZmluYWxQb3NpdGlvbi5z
ZXRBdXRvUG9zaXRpb24oKTsKKworICAgIGlmIChpbml0aWFsUG9zaXRpb24uaXNOYW1lZEdyaWRB
cmVhKCkpCisgICAgICAgIGFkanVzdE5hbWVkR3JpZEl0ZW1Qb3NpdGlvbihncmlkQ29udGFpbmVy
U3R5bGUsIGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSk7CisKKyAgICBpZiAo
ZmluYWxQb3NpdGlvbi5pc05hbWVkR3JpZEFyZWEoKSkKKyAgICAgICAgYWRqdXN0TmFtZWRHcmlk
SXRlbVBvc2l0aW9uKGdyaWRDb250YWluZXJTdHlsZSwgZmluYWxQb3NpdGlvbiwgZmluYWxQb3Np
dGlvblNpZGUpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IEdyaWRSZXNvbHZlZFBv
c2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYg
Z3JpZENvbnRhaW5lclN0eWxlLCBjb25zdCBSZW5kZXJCb3gmIGdyaWRJdGVtLCBHcmlkVHJhY2tT
aXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIEdyaWRQb3NpdGlvbiBpbml0aWFsUG9z
aXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gZ3JpZEl0ZW0uc3R5bGUoKS5ncmlk
SXRlbUNvbHVtblN0YXJ0KCkgOiBncmlkSXRlbS5zdHlsZSgpLmdyaWRJdGVtUm93U3RhcnQoKTsK
KyAgICBjb25zdCBHcmlkUG9zaXRpb25TaWRlIGluaXRpYWxQb3NpdGlvblNpZGUgPSAoZGlyZWN0
aW9uID09IEZvckNvbHVtbnMpID8gQ29sdW1uU3RhcnRTaWRlIDogUm93U3RhcnRTaWRlOworICAg
IEdyaWRQb3NpdGlvbiBmaW5hbFBvc2l0aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/
IGdyaWRJdGVtLnN0eWxlKCkuZ3JpZEl0ZW1Db2x1bW5FbmQoKSA6IGdyaWRJdGVtLnN0eWxlKCku
Z3JpZEl0ZW1Sb3dFbmQoKTsKKyAgICBjb25zdCBHcmlkUG9zaXRpb25TaWRlIGZpbmFsUG9zaXRp
b25TaWRlID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IENvbHVtbkVuZFNpZGUgOiBSb3dF
bmRTaWRlOworCisgICAgYWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShncmlkQ29udGFpbmVy
U3R5bGUsIGluaXRpYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lk
ZSwgZmluYWxQb3NpdGlvblNpZGUpOworCisgICAgaWYgKGluaXRpYWxQb3NpdGlvbi5zaG91bGRC
ZVJlc29sdmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKSAmJiBmaW5hbFBvc2l0aW9uLnNob3Vs
ZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigpKSB7CisgICAgICAgIGlmIChncmlk
Q29udGFpbmVyU3R5bGUuZ3JpZEF1dG9GbG93KCkgPT0gQXV0b0Zsb3dOb25lKQorICAgICAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KDAsIDApOworCisgICAgICAgIC8v
IFdlIGNhbid0IGdldCBvdXIgZ3JpZCBwb3NpdGlvbnMgd2l0aG91dCBydW5uaW5nIHRoZSBhdXRv
IHBsYWNlbWVudCBhbGdvcml0aG0uCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKwor
ICAgIGlmIChpbml0aWFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBv
c2l0aW9uKCkpIHsKKyAgICAgICAgLy8gSW5mZXIgdGhlIHBvc2l0aW9uIGZyb20gdGhlIGZpbmFs
IHBvc2l0aW9uICgnYXV0byAvIDEnIG9yICdzcGFuIDIgLyAzJyBjYXNlKS4KKyAgICAgICAgY29u
c3QgR3JpZFJlc29sdmVkUG9zaXRpb24gZmluYWxSZXNvbHZlZFBvc2l0aW9uID0gcmVzb2x2ZUdy
aWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIGZpbmFsUG9zaXRpb24sIGZp
bmFsUG9zaXRpb25TaWRlKTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVHcmlkUG9zaXRpb25BZ2Fp
bnN0T3Bwb3NpdGVQb3NpdGlvbihncmlkQ29udGFpbmVyU3R5bGUsIGZpbmFsUmVzb2x2ZWRQb3Np
dGlvbiwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRlKTsKKyAgICB9CisKKyAg
ICBpZiAoZmluYWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRp
b24oKSkgeworICAgICAgICAvLyBJbmZlciBvdXIgcG9zaXRpb24gZnJvbSB0aGUgaW5pdGlhbCBw
b3NpdGlvbiAoJzEgLyBhdXRvJyBvciAnMyAvIHNwYW4gMicgY2FzZSkuCisgICAgICAgIGNvbnN0
IEdyaWRSZXNvbHZlZFBvc2l0aW9uIGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uID0gcmVzb2x2ZUdy
aWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIGluaXRpYWxQb3NpdGlvbiwg
aW5pdGlhbFBvc2l0aW9uU2lkZSk7CisgICAgICAgIHJldHVybiByZXNvbHZlR3JpZFBvc2l0aW9u
QWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oZ3JpZENvbnRhaW5lclN0eWxlLCBpbml0aWFsUmVzb2x2
ZWRQb3NpdGlvbiwgZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvblNpZGUpOworICAgIH0KKwor
ICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uID0gcmVzb2x2
ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIGluaXRpYWxQb3NpdGlv
biwgaW5pdGlhbFBvc2l0aW9uU2lkZSk7CisgICAgR3JpZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2
ZWRGaW5hbFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFp
bmVyU3R5bGUsIGZpbmFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb25TaWRlKTsKKworICAgIC8vIElm
ICdncmlkLXJvdy1lbmQnIHNwZWNpZmllcyBhIGxpbmUgYXQgb3IgYmVmb3JlIHRoYXQgc3BlY2lm
aWVkIGJ5ICdncmlkLXJvdy1zdGFydCcsIGl0IGNvbXB1dGVzIHRvICdzcGFuIDEnLgorICAgIGlm
IChyZXNvbHZlZEZpbmFsUG9zaXRpb24gPCByZXNvbHZlZEluaXRpYWxQb3NpdGlvbikKKyAgICAg
ICAgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uID0gcmVzb2x2ZWRJbml0aWFsUG9zaXRpb247CisKKyAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRJbml0aWFsUG9zaXRp
b24sIHJlc29sdmVkRmluYWxQb3NpdGlvbik7Cit9CisKK0dyaWRSZXNvbHZlZFBvc2l0aW9uIEdy
aWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxl
KGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGNvbnN0IEdyaWRQb3NpdGlv
biYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sKKyAgICBBU1NFUlQoIXBvc2l0
aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSk7CisKKyAgICBjb25zdCBOYW1lZEdyaWRMaW5l
c01hcCYgZ3JpZExpbmVzTmFtZXMgPSBpc0NvbHVtblNpZGUoc2lkZSkgPyBncmlkQ29udGFpbmVy
U3R5bGUubmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6IGdyaWRDb250YWluZXJTdHlsZS5uYW1lZEdy
aWRSb3dMaW5lcygpOworICAgIE5hbWVkR3JpZExpbmVzTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9
IGdyaWRMaW5lc05hbWVzLmZpbmQocG9zaXRpb24ubmFtZWRHcmlkTGluZSgpKTsKKyAgICBpZiAo
aXQgPT0gZ3JpZExpbmVzTmFtZXMuZW5kKCkpIHsKKyAgICAgICAgaWYgKHBvc2l0aW9uLmlzUG9z
aXRpdmUoKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBjb25zdCBzaXplX3QgbGFz
dExpbmUgPSBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShncmlkQ29udGFpbmVyU3R5bGUsIHNpZGUp
OworICAgICAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlv
bkZvclNpZGUobGFzdExpbmUsIHNpZGUpOworICAgIH0KKworICAgIHNpemVfdCBuYW1lZEdyaWRM
aW5lSW5kZXg7CisgICAgaWYgKHBvc2l0aW9uLmlzUG9zaXRpdmUoKSkKKyAgICAgICAgbmFtZWRH
cmlkTGluZUluZGV4ID0gc3RkOjptaW48c2l6ZV90Pihwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24o
KSwgaXQtPnZhbHVlLnNpemUoKSkgLSAxOworICAgIGVsc2UKKyAgICAgICAgbmFtZWRHcmlkTGlu
ZUluZGV4ID0gc3RkOjptYXg8aW50PihpdC0+dmFsdWUuc2l6ZSgpIC0gYWJzKHBvc2l0aW9uLmlu
dGVnZXJQb3NpdGlvbigpKSwgMCk7CisgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjph
ZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGl0LT52YWx1ZVtuYW1lZEdyaWRMaW5lSW5kZXhdLCBz
aWRlKTsKK30KKworR3JpZFJlc29sdmVkUG9zaXRpb24gR3JpZFJlc29sdmVkUG9zaXRpb246OnJl
c29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWlu
ZXJTdHlsZSwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBz
aWRlKQoreworICAgIHN3aXRjaCAocG9zaXRpb24udHlwZSgpKSB7CisgICAgY2FzZSBFeHBsaWNp
dFBvc2l0aW9uOiB7CisgICAgICAgIEFTU0VSVChwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSk7
CisKKyAgICAgICAgaWYgKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpCisgICAg
ICAgICAgICByZXR1cm4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZShncmlk
Q29udGFpbmVyU3R5bGUsIHBvc2l0aW9uLCBzaWRlKTsKKworICAgICAgICAvLyBIYW5kbGUgPGlu
dGVnZXI+IGV4cGxpY2l0IHBvc2l0aW9uLgorICAgICAgICBpZiAocG9zaXRpb24uaXNQb3NpdGl2
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1c3RHcmlk
UG9zaXRpb25Gb3JTaWRlKHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpIC0gMSwgc2lkZSk7CisK
KyAgICAgICAgc2l6ZV90IHJlc29sdmVkUG9zaXRpb24gPSBhYnMocG9zaXRpb24uaW50ZWdlclBv
c2l0aW9uKCkpIC0gMTsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGVuZE9mVHJhY2sgPSBleHBsaWNp
dEdyaWRTaXplRm9yU2lkZShncmlkQ29udGFpbmVyU3R5bGUsIHNpZGUpOworCisgICAgICAgIC8v
IFBlciBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ctc3R5bGUvMjAxM01h
ci8wNTg5Lmh0bWwsIHdlIGNsYW1wIG5lZ2F0aXZlIHZhbHVlIHRvIHRoZSBmaXJzdCBsaW5lLgor
ICAgICAgICBpZiAoZW5kT2ZUcmFjayA8IHJlc29sdmVkUG9zaXRpb24pCisgICAgICAgICAgICBy
ZXR1cm4gMDsKKworICAgICAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdy
aWRQb3NpdGlvbkZvclNpZGUoZW5kT2ZUcmFjayAtIHJlc29sdmVkUG9zaXRpb24sIHNpZGUpOwor
ICAgIH0KKyAgICBjYXNlIE5hbWVkR3JpZEFyZWFQb3NpdGlvbjoKKyAgICB7CisgICAgICAgIE5h
bWVkR3JpZEFyZWFNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZ3JpZENvbnRhaW5lclN0eWxlLm5h
bWVkR3JpZEFyZWEoKS5maW5kKHBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSk7CisgICAgICAgIC8v
IFVua25vd24gZ3JpZCBhcmVhIHNob3VsZCBoYXZlIGJlZW4gY29tcHV0ZWQgdG8gJ2F1dG8nIGJ5
IG5vdy4KKyAgICAgICAgQVNTRVJUKGl0ICE9IGdyaWRDb250YWluZXJTdHlsZS5uYW1lZEdyaWRB
cmVhKCkuZW5kKCkpOworICAgICAgICBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgZ3JpZEFyZWFDb29y
ZGluYXRlID0gaXQtPnZhbHVlOworICAgICAgICBzd2l0Y2ggKHNpZGUpIHsKKyAgICAgICAgY2Fz
ZSBDb2x1bW5TdGFydFNpZGU6CisgICAgICAgICAgICByZXR1cm4gZ3JpZEFyZWFDb29yZGluYXRl
LmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb247CisgICAgICAgIGNhc2UgQ29sdW1uRW5k
U2lkZToKKyAgICAgICAgICAgIHJldHVybiBncmlkQXJlYUNvb3JkaW5hdGUuY29sdW1ucy5yZXNv
bHZlZEZpbmFsUG9zaXRpb247CisgICAgICAgIGNhc2UgUm93U3RhcnRTaWRlOgorICAgICAgICAg
ICAgcmV0dXJuIGdyaWRBcmVhQ29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9u
OworICAgICAgICBjYXNlIFJvd0VuZFNpZGU6CisgICAgICAgICAgICByZXR1cm4gZ3JpZEFyZWFD
b29yZGluYXRlLnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0aW9uOworICAgICAgICB9CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRp
b24oMCk7CisgICAgfQorICAgIGNhc2UgQXV0b1Bvc2l0aW9uOgorICAgIGNhc2UgU3BhblBvc2l0
aW9uOgorICAgICAgICAvLyAnYXV0bycgYW5kIHNwYW4gZGVwZW5kIG9uIHRoZSBvcHBvc2l0ZSBw
b3NpdGlvbiBmb3IgcmVzb2x1dGlvbiAoZS5nLiBncmlkLXJvdzogYXV0byAvIDEgb3IgZ3JpZC1j
b2x1bW46IHNwYW4gMyAvICJteUhlYWRlciIpLgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICAgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9uKDApOworICAgIH0KKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRpb24oMCk7
Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gR3JpZFJlc29sdmVkUG9zaXRpb246OnJl
c29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBSZW5kZXJTdHls
ZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2
ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9z
aXRpb25TaWRlIHNpZGUpCit7CisgICAgaWYgKHBvc2l0aW9uLmlzQXV0bygpKQorICAgICAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9u
LCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pOworCisgICAgQVNTRVJUKHBvc2l0aW9uLmlzU3Bh
bigpKTsKKyAgICBBU1NFUlQocG9zaXRpb24uc3BhblBvc2l0aW9uKCkgPiAwKTsKKworICAgIGlm
ICghcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVsbCgpKSB7CisgICAgICAgIC8vIHNwYW4g
MiAnYycgLT4gd2UgbmVlZCB0byBmaW5kIHRoZSBhcHByb3ByaWF0ZSBncmlkIGxpbmUgYmVmb3Jl
IC8gYWZ0ZXIgb3VyIG9wcG9zaXRlIHBvc2l0aW9uLgorICAgICAgICByZXR1cm4gcmVzb2x2ZU5h
bWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGdyaWRDb250YWluZXJT
dHlsZSwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBwb3NpdGlvbiwgc2lkZSk7CisgICAgfQor
CisgICAgLy8gJ3NwYW4gMScgaXMgY29udGFpbmVkIGluc2lkZSBhIHNpbmdsZSBncmlkIHRyYWNr
IHJlZ2FyZGxlc3Mgb2YgdGhlIGRpcmVjdGlvbi4KKyAgICAvLyBUaGF0J3Mgd2h5IHRoZSBDU1Mg
c3BhbiB2YWx1ZSBpcyBvbmUgbW9yZSB0aGFuIHRoZSBvZmZzZXQgd2UgYXBwbHkuCisgICAgc2l6
ZV90IHBvc2l0aW9uT2Zmc2V0ID0gcG9zaXRpb24uc3BhblBvc2l0aW9uKCkgLSAxOworICAgIGlm
IChzaWRlID09IENvbHVtblN0YXJ0U2lkZSB8fCBzaWRlID09IFJvd1N0YXJ0U2lkZSkgeworICAg
ICAgICBzaXplX3QgaW5pdGlhbFJlc29sdmVkUG9zaXRpb24gPSBzdGQ6Om1heDxpbnQ+KDAsIHJl
c29sdmVkT3Bwb3NpdGVQb3NpdGlvbi50b0ludCgpIC0gcG9zaXRpb25PZmZzZXQpOworICAgICAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4oR3JpZFJlc29sdmVkUG9zaXRpb24o
aW5pdGlhbFJlc29sdmVkUG9zaXRpb24pLCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pOworICAg
IH0KKworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZlZE9wcG9z
aXRlUG9zaXRpb24sIEdyaWRSZXNvbHZlZFBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlv
bi50b0ludCgpICsgcG9zaXRpb25PZmZzZXQpKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPEdyaWRT
cGFuPiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5
bGUsIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24s
IGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sK
KyAgICBBU1NFUlQocG9zaXRpb24uaXNTcGFuKCkpOworICAgIEFTU0VSVCghcG9zaXRpb24ubmFt
ZWRHcmlkTGluZSgpLmlzTnVsbCgpKTsKKyAgICAvLyBOZWdhdGl2ZSBwb3NpdGlvbnMgYXJlIG5v
dCBhbGxvd2VkIHBlciB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgc2hvdWxkIGhhdmUgYmVlbiBoYW5k
bGVkIGR1cmluZyBwYXJzaW5nLgorICAgIEFTU0VSVChwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSA+
IDApOworCisgICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIGdyaWRMaW5lc05hbWVzID0gaXND
b2x1bW5TaWRlKHNpZGUpID8gZ3JpZENvbnRhaW5lclN0eWxlLm5hbWVkR3JpZENvbHVtbkxpbmVz
KCkgOiBncmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlkUm93TGluZXMoKTsKKyAgICBOYW1lZEdy
aWRMaW5lc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBncmlkTGluZXNOYW1lcy5maW5kKHBvc2l0
aW9uLm5hbWVkR3JpZExpbmUoKSk7CisKKyAgICAvLyBJZiB0aGVyZSBpcyBubyBuYW1lZCBncmlk
IGxpbmUgb2YgdGhhdCBuYW1lLCB3ZSByZXNvbHZlIHRoZSBwb3NpdGlvbiB0byAnYXV0bycgKHdo
aWNoIGlzIGVxdWl2YWxlbnQgdG8gJ3NwYW4gMScgaW4gdGhpcyBjYXNlKS4KKyAgICAvLyBTZWUg
aHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTNKdW4vMDM5
NC5odG1sLgorICAgIGlmIChpdCA9PSBncmlkTGluZXNOYW1lcy5lbmQoKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwg
cmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKKworICAgIGlmIChzaWRlID09IFJvd1N0YXJ0U2lk
ZSB8fCBzaWRlID09IENvbHVtblN0YXJ0U2lkZSkKKyAgICAgICAgcmV0dXJuIHJlc29sdmVSb3dT
dGFydENvbHVtblN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRp
b24ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBwb3NpdGlvbiwgaXQtPnZhbHVlKTsKKworICAg
IHJldHVybiByZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5z
dE9wcG9zaXRlUG9zaXRpb24ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBwb3NpdGlvbiwgaXQt
PnZhbHVlKTsKK30KKworc3RhdGljIGlubGluZSBzaXplX3QgZmlyc3ROYW1lZEdyaWRMaW5lQmVm
b3JlUG9zaXRpb24oc2l6ZV90IHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYgZ3JpZExp
bmVzKQoreworICAgIC8vIFRoZSBncmlkIGxpbmUgaW5lcXVhbGl0eSBuZWVkcyB0byBiZSBzdHJp
Y3QgKHdoaWNoIGRvZXNuJ3QgbWF0Y2ggdGhlIGFmdGVyIC8gZW5kIGNhc2UpIGJlY2F1c2UgfHBv
c2l0aW9ufCBpcworICAgIC8vIGFscmVhZHkgY29udmVydGVkIHRvIGFuIGluZGV4IGluIG91ciBn
cmlkIHJlcHJlc2VudGF0aW9uIChpZSBvbmUgd2FzIHJlbW92ZWQgZnJvbSB0aGUgZ3JpZCBsaW5l
IHRvIGFjY291bnQgZm9yCisgICAgLy8gdGhlIHNpZGUpLgorICAgIHNpemVfdCBmaXJzdExpbmVC
ZWZvcmVQb3NpdGlvbkluZGV4ID0gMDsKKyAgICBjb25zdCBzaXplX3QqIGZpcnN0TGluZUJlZm9y
ZVBvc2l0aW9uID0gc3RkOjpsb3dlcl9ib3VuZChncmlkTGluZXMuYmVnaW4oKSwgZ3JpZExpbmVz
LmVuZCgpLCBwb3NpdGlvbik7CisgICAgaWYgKGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uICE9IGdy
aWRMaW5lcy5lbmQoKSkgeworICAgICAgICBpZiAoKmZpcnN0TGluZUJlZm9yZVBvc2l0aW9uID4g
cG9zaXRpb24gJiYgZmlyc3RMaW5lQmVmb3JlUG9zaXRpb24gIT0gZ3JpZExpbmVzLmJlZ2luKCkp
CisgICAgICAgICAgICAtLWZpcnN0TGluZUJlZm9yZVBvc2l0aW9uOworCisgICAgICAgIGZpcnN0
TGluZUJlZm9yZVBvc2l0aW9uSW5kZXggPSBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbiAtIGdyaWRM
aW5lcy5iZWdpbigpOworICAgIH0KKyAgICByZXR1cm4gZmlyc3RMaW5lQmVmb3JlUG9zaXRpb25J
bmRleDsKK30KKworc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6cmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3RhcnROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0
T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBv
c2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8
c2l6ZV90PiYgZ3JpZExpbmVzKQoreworICAgIHNpemVfdCBncmlkTGluZUluZGV4ID0gc3RkOjpt
YXg8aW50PigwLCBmaXJzdE5hbWVkR3JpZExpbmVCZWZvcmVQb3NpdGlvbihyZXNvbHZlZE9wcG9z
aXRlUG9zaXRpb24udG9JbnQoKSwgZ3JpZExpbmVzKSAtIHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigp
ICsgMSk7CisgICAgR3JpZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9u
ID0gR3JpZFJlc29sdmVkUG9zaXRpb24oZ3JpZExpbmVzW2dyaWRMaW5lSW5kZXhdKTsKKyAgICBp
ZiAocmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID4gcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKQor
ICAgICAgICByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSByZXNvbHZlZE9wcG9zaXRlUG9zaXRp
b247CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkR3JpZExp
bmVQb3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKK30KKworc3RkOjp1bmlxdWVf
cHRyPEdyaWRTcGFuPiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZVJvd0VuZENvbHVtbkVu
ZE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IEdyaWRS
ZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3Np
dGlvbiYgcG9zaXRpb24sIGNvbnN0IFZlY3RvcjxzaXplX3Q+JiBncmlkTGluZXMpCit7CisgICAg
c2l6ZV90IGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbkluZGV4ID0gZ3JpZExpbmVzLnNp
emUoKSAtIDE7CisgICAgY29uc3Qgc2l6ZV90KiBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRp
b24gPSBzdGQ6OnVwcGVyX2JvdW5kKGdyaWRMaW5lcy5iZWdpbigpLCBncmlkTGluZXMuZW5kKCks
IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7CisgICAgaWYgKGZpcnN0TGluZUFmdGVyT3Bwb3Np
dGVQb3NpdGlvbiAhPSBncmlkTGluZXMuZW5kKCkpCisgICAgICAgIGZpcnN0TGluZUFmdGVyT3Bw
b3NpdGVQb3NpdGlvbkluZGV4ID0gZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uIC0gZ3Jp
ZExpbmVzLmJlZ2luKCk7CisKKyAgICBzaXplX3QgZ3JpZExpbmVJbmRleCA9IHN0ZDo6bWluKGdy
aWRMaW5lcy5zaXplKCkgLSAxLCBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb25JbmRleCAr
IHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpIC0gMSk7CisgICAgR3JpZFJlc29sdmVkUG9zaXRpb24g
cmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gR3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdy
aWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNpZGUoZ3JpZExpbmVzW2dyaWRMaW5lSW5kZXhd
KTsKKyAgICBpZiAocmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uIDwgcmVzb2x2ZWRPcHBvc2l0ZVBv
c2l0aW9uKQorICAgICAgICByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSByZXNvbHZlZE9wcG9z
aXRlUG9zaXRpb247CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29s
dmVkT3Bwb3NpdGVQb3NpdGlvbiwgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19HUklEX0xBWU9VVCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQ
b3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBv
c2l0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2RhMGM0NWQyMGFjYWM5YjJjN2Q1ZDA0OTc1NWIwMTc5OGZl
OTJkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9H
cmlkUmVzb2x2ZWRQb3NpdGlvbi5oCkBAIC0wLDAgKzEsMTUzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHcmlkUmVzb2x2ZWRQb3NpdGlvbl9oCisjZGVmaW5l
IEdyaWRSZXNvbHZlZFBvc2l0aW9uX2gKKworI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisK
KyNpbmNsdWRlICJHcmlkUG9zaXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBHcmlkU3BhbjsKK2NsYXNzIFJlbmRlckJveDsKK2NsYXNzIFJlbmRlclN0eWxlOworCitlbnVt
IEdyaWRQb3NpdGlvblNpZGUgeworICAgIENvbHVtblN0YXJ0U2lkZSwKKyAgICBDb2x1bW5FbmRT
aWRlLAorICAgIFJvd1N0YXJ0U2lkZSwKKyAgICBSb3dFbmRTaWRlCit9OworCitlbnVtIEdyaWRU
cmFja1NpemluZ0RpcmVjdGlvbiB7CisgICAgRm9yQ29sdW1ucywKKyAgICBGb3JSb3dzCit9Owor
CisvLyBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYW4gaW5kZXggaW50byBvbmUgb2YgdGhlIGRpbWVu
c2lvbnMgb2YgdGhlIGdyaWQgYXJyYXkuCisvLyBXcmFwcyBhIHNpemVfdCBpbnRlZ2VyIGp1c3Qg
Zm9yIHRoZSBwdXJwb3NlIG9mIGtub3dpbmcgd2hhdCB3ZSBtYW5pcHVsYXRlIGluIHRoZSBncmlk
IGNvZGUuCitjbGFzcyBHcmlkUmVzb2x2ZWRQb3NpdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IEdyaWRSZXNvbHZlZFBvc2l0aW9uIGFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVu
ZFNpZGUoc2l6ZV90IHJlc29sdmVkUG9zaXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gcmVz
b2x2ZWRQb3NpdGlvbiA/IEdyaWRSZXNvbHZlZFBvc2l0aW9uKHJlc29sdmVkUG9zaXRpb24gLSAx
KSA6IEdyaWRSZXNvbHZlZFBvc2l0aW9uKDApOworICAgIH0KKworICAgIHN0YXRpYyBHcmlkUmVz
b2x2ZWRQb3NpdGlvbiBhZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKHNpemVfdCByZXNvbHZlZFBv
c2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCisgICAgeworICAgICAgICAvLyBBbiBpdGVt
IGZpbmlzaGluZyBvbiB0aGUgTi10aCBsaW5lIGJlbG9uZ3MgdG8gdGhlIE4tMS10aCBjZWxsLgor
ICAgICAgICBpZiAoc2lkZSA9PSBDb2x1bW5FbmRTaWRlIHx8IHNpZGUgPT0gUm93RW5kU2lkZSkK
KyAgICAgICAgICAgIHJldHVybiBhZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRT
aWRlKHJlc29sdmVkUG9zaXRpb24pOworCisgICAgICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3Np
dGlvbihyZXNvbHZlZFBvc2l0aW9uKTsKKyAgICB9CisKKyAgICBzdGF0aWMgc2l6ZV90IGV4cGxp
Y2l0R3JpZENvbHVtbkNvdW50KGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUp
OworICAgIHN0YXRpYyBzaXplX3QgZXhwbGljaXRHcmlkUm93Q291bnQoY29uc3QgUmVuZGVyU3R5
bGUmIGdyaWRDb250YWluZXJTdHlsZSk7CisKKyAgICBzdGF0aWMgR3JpZFNwYW4gcmVzb2x2ZUdy
aWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKGNvbnN0IFJlbmRlckJveCYsIEdy
aWRUcmFja1NpemluZ0RpcmVjdGlvbiwgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mKTsKKyAg
ICBzdGF0aWMgdm9pZCBhZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRpb24oY29uc3QgUmVuZGVyU3R5
bGUmLCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKTsKKyAgICBzdGF0aWMgdm9pZCBh
ZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiwgR3JpZFBvc2l0
aW9uJiBpbml0aWFsUG9zaXRpb24sIEdyaWRQb3NpdGlvbiYgZmluYWxQb3NpdGlvbiwgR3JpZFBv
c2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlLCBHcmlkUG9zaXRpb25TaWRlIGZpbmFsUG9z
aXRpb25TaWRlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNvbHZl
R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IFJlbmRlckJv
eCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbik7CisgICAgc3RhdGljIEdyaWRSZXNvbHZlZFBv
c2l0aW9uIHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgUmVuZGVy
U3R5bGUmLCBjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKTsKKyAgICBzdGF0
aWMgR3JpZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShjb25z
dCBSZW5kZXJTdHlsZSYsIGNvbnN0IEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNpZGUpOwor
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVHcmlkUG9zaXRpb25B
Z2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEdyaWRSZXNv
bHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlv
biYsIEdyaWRQb3NpdGlvblNpZGUpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNw
YW4+IHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihj
b25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9w
cG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNpZGUpOwor
ICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVSb3dTdGFydENvbHVt
blN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3Qg
R3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3Jp
ZFBvc2l0aW9uJiwgY29uc3QgVmVjdG9yPHNpemVfdD4mKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPEdyaWRTcGFuPiByZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0
aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJl
c29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgY29uc3QgVmVjdG9y
PHNpemVfdD4mKTsKKworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uKHNpemVfdCBwb3NpdGlvbikK
KyAgICAgICAgOiBtX2ludGVnZXJQb3NpdGlvbihwb3NpdGlvbikKKyAgICB7CisgICAgfQorCisg
ICAgR3JpZFJlc29sdmVkUG9zaXRpb24oY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3Jp
ZFBvc2l0aW9uU2lkZSBzaWRlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHBvc2l0aW9uLmludGVn
ZXJQb3NpdGlvbigpKTsKKyAgICAgICAgc2l6ZV90IGludGVnZXJQb3NpdGlvbiA9IHBvc2l0aW9u
LmludGVnZXJQb3NpdGlvbigpIC0gMTsKKworICAgICAgICBtX2ludGVnZXJQb3NpdGlvbiA9IGFk
anVzdEdyaWRQb3NpdGlvbkZvclNpZGUoaW50ZWdlclBvc2l0aW9uLCBzaWRlKS5tX2ludGVnZXJQ
b3NpdGlvbjsKKyAgICB9CisKKyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgb3BlcmF0b3IrKygp
CisgICAgeworICAgICAgICBtX2ludGVnZXJQb3NpdGlvbisrOworICAgICAgICByZXR1cm4gKnRo
aXM7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0
aW9uJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ludGVnZXJQb3NpdGlv
biA9PSBvdGhlci5tX2ludGVnZXJQb3NpdGlvbjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9y
PChjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAg
ICByZXR1cm4gbV9pbnRlZ2VyUG9zaXRpb24gPCBvdGhlci5tX2ludGVnZXJQb3NpdGlvbjsKKyAg
ICB9CisKKyAgICBib29sIG9wZXJhdG9yPihjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgb3Ro
ZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pbnRlZ2VyUG9zaXRpb24gPiBvdGhl
ci5tX2ludGVnZXJQb3NpdGlvbjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPD0oY29uc3Qg
R3JpZFJlc29sdmVkUG9zaXRpb24mIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IG1faW50ZWdlclBvc2l0aW9uIDw9IG90aGVyLm1faW50ZWdlclBvc2l0aW9uOworICAgIH0KKwor
ICAgIGJvb2wgb3BlcmF0b3I+PShjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgb3RoZXIpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pbnRlZ2VyUG9zaXRpb24gPj0gb3RoZXIubV9p
bnRlZ2VyUG9zaXRpb247CisgICAgfQorCisgICAgc2l6ZV90IHRvSW50KCkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiBtX2ludGVnZXJQb3NpdGlvbjsKKyAgICB9CisKKyAgICBHcmlkUmVz
b2x2ZWRQb3NpdGlvbiBuZXh0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBHcmlkUmVz
b2x2ZWRQb3NpdGlvbihtX2ludGVnZXJQb3NpdGlvbiArIDEpOworICAgIH0KKworcHJpdmF0ZToK
KworICAgIHN0YXRpYyBzaXplX3QgZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoY29uc3QgUmVuZGVy
U3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgR3JpZFBvc2l0aW9uU2lkZSk7CisKKyAgICBzaXpl
X3QgbV9pbnRlZ2VyUG9zaXRpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorCisjZW5kaWYgLy8gR3JpZFJlc29sdmVk
UG9zaXRpb25faAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232067</attachid>
            <date>2014-05-26 04:20:25 -0700</date>
            <delta_ts>2014-06-12 04:28:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131732-20140526131959.patch</filename>
            <type>text/plain</type>
            <size>82628</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFhZjZlZGJiMGMzMGM2
NGFkODlkODUyMTFhNzZjODkyMDY5ZjFlNi4uMTI3MzJiMWM1NzZlM2IzNjNhYzA5ZmVmNTgzMDZm
ZDY5N2M1NDk2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDE0LTA1LTI2ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEludHJvZHVjZSBhbiBleHBsaWNpdCB0eXBlIGZvciByZXNvbHZlZCBncmlkIHBv
c2l0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMxNzMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
V2Ugd2VyZSB1c2luZyBzaW1wbGUgc2l6ZV90IGludGVnZXJzIHRvIHJlcHJlc2VudCByZXNvbHZl
ZCBncmlkCisgICAgICAgIHBvc2l0aW9ucyBpbiBvdXIgaW50ZXJuYWwgZGF0YSBzdHJ1Y3R1cmVz
LiBUaGlzIGNoYW5nZSBhbGxvd3MgdXMgdG8KKyAgICAgICAgY2xhcmlmeSB0aGUgY29kZSwgYXZv
aWQgcG90ZW50aWFsIG9mZiBieSBvbmUgbWlzdGFrZXMsIGFuZCBtb3ZlIHRoZQorICAgICAgICBy
ZXNvbHZpbmcgY29kZSB0byBhIGNlbnRyYWwgcGxhY2UuCisKKyAgICAgICAgQSBuZXcgY2xhc3Mg
R3JpZFJlc29sdmVkUG9zaXRpb24gaGFzIGJlZW4gY3JlYXRlZCBhbmQgdGhlIHJlbGF0ZWQKKyAg
ICAgICAgbWV0aG9kcyBoYXZlIGJlZW4gbW92ZWQgdGhlcmUgZnJvbSBSZW5kZXJHcmlkLgorICAg
ICAgICBHcmlkU3BhbiBpcyBub3cgZGVmaW5lZCBieSB0d28gR3JpZFJlc29sdmVkUG9zaXRpb24s
IHNvIGFsbCB0aGUgY29kZQorICAgICAgICB1c2luZyBpdCBoYXMgYmVlbiBtb2RpZmllZCB0byBh
ZGFwdCBpdCB0byBHcmlkUmVzb2x2ZWRQb3NpdGlvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMg
YXMgaXQgaXMgYWxyZWFkeSBjb3ZlcmVkIGJ5IGN1cnJlbnQgdGVzdHMKKyAgICAgICAgKGZhc3Qv
Y3NzLWdyaWQtbGF5b3V0LykuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5nRm9yUG9zaXRpb24pOgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUdy
aWRUZW1wbGF0ZUFyZWFzUm93KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjb21wdXRlVXNlZEJyZWFkdGhPZkdyaWRU
cmFja3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZU5vcm1hbGl6ZWRG
cmFjdGlvbkJyZWFkdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZUNv
bnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyR3JpZDo6aW5zZXJ0SXRlbUludG9HcmlkKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9uR3JpZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWFqb3JBeGlzRGly
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNaW5v
ckF4aXNEaXJlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z3JpZEFyZWFC
cmVhZHRoRm9yQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6ZmluZENoaWxk
TG9naWNhbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmV4cGxpY2l0
R3JpZENvbHVtbkNvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6
OmV4cGxpY2l0R3JpZFJvd0NvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzQ29s
dW1uU2lkZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpleHBsaWNp
dEdyaWRTaXplRm9yU2lkZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlk
OjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Z3JpZExpbmVEZWZpbmVkQmVmb3JlR3JpZEFyZWEpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6c2V0TmFtZWRMaW5lUG9zaXRpb25JZkRlZmluZWRCZWZv
cmVBcmVhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmFkanVzdE5h
bWVkR3JpZEl0ZW1Qb3NpdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJH
cmlkOjphZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9z
aXRpb25Gcm9tU3R5bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6
cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24p
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZU5hbWVkR3Jp
ZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OmZpcnN0TmFtZWRHcmlkTGluZUJlZm9yZVBvc2l0aW9uKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlc29sdmVSb3dTdGFydENvbHVtblN0YXJ0TmFt
ZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5hbWVkR3Jp
ZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyR3JpZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Hcmlk
Q29vcmRpbmF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFNwYW46OkdyaWRTcGFuKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyaWRTcGFuOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3R5bGUvR3JpZFBvc2l0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUG9zaXRpb246
OmFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNpZGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKTog
RGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBs
aWNpdEdyaWRDb2x1bW5Db3VudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3Np
dGlvbjo6ZXhwbGljaXRHcmlkUm93Q291bnQpOgorICAgICAgICAoV2ViQ29yZTo6aXNDb2x1bW5T
aWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdy
aWRTaXplRm9yU2lkZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OmdyaWRMaW5lRGVmaW5lZEJlZm9yZUdyaWRBcmVhKToKKyAgICAgICAgKFdlYkNv
cmU6OnNldE5hbWVkTGluZVBvc2l0aW9uSWZEZWZpbmVkQmVmb3JlQXJlYSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9z
aXRpb25zRnJvbVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9u
OjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlk
UmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3Np
dGlvbkZyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9u
QWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Zmlyc3ROYW1lZEdy
aWRMaW5lQmVmb3JlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9z
aXRpb246OnJlc29sdmVSb3dTdGFydENvbHVtblN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdh
aW5zdE9wcG9zaXRlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9z
aXRpb246OnJlc29sdmVSb3dFbmRDb2x1bW5FbmROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0
T3Bwb3NpdGVQb3NpdGlvbik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZl
ZFBvc2l0aW9uLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRp
b246OmFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNpZGUpOgorICAgICAgICAo
V2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUp
OgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OkdyaWRSZXNvbHZlZFBv
c2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpvcGVyYXRv
cisrKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpvcGVyYXRvcj09
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpvcGVyYXRvcjwpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246Om9wZXJhdG9yPik6CisgICAg
ICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6b3BlcmF0b3I8PSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6b3BlcmF0b3I+PSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6dG9JbnQpOgorICAgICAgICAoV2ViQ29yZTo6
R3JpZFJlc29sdmVkUG9zaXRpb246Om5leHQpOgorCiAyMDE0LTA1LTI2ICBNaWNoYcWCIFBha3XF
gmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gSW5w
dXQgZmllbGRzIGFuZCB0ZXh0IGFyZWFzIGFyZSBub3QgcmVuZGVyZWQgY29ycmVjdGx5IGFmdGVy
IHIxNjc3NzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNjQ3Y2U1OWI0NDk0NDYzMDM2ZTA4YTRk
YjY0Y2Y5N2ExZmU4NmMyOC4uZjY3MDY1OWQ2YWNjMzdkYjA5OTE0YTIwZjVmMmQ5MmJiNTkzZmI0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIzODQsNiArMjM4NCw3IEBAIHNldChXZWJDb3Jl
X1NPVVJDRVMKICAgICByZW5kZXJpbmcvc3R5bGUvQ29udGVudERhdGEuY3BwCiAgICAgcmVuZGVy
aW5nL3N0eWxlL0NvdW50ZXJEaXJlY3RpdmVzLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9GaWxs
TGF5ZXIuY3BwCisgICAgcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcAog
ICAgIHJlbmRlcmluZy9zdHlsZS9LZXlmcmFtZUxpc3QuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxl
L05pbmVQaWVjZUltYWdlLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9RdW90ZXNEYXRhLmNwcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKaW5kZXgg
NTE4MGZlNGRkNzNkNDhjZjBjNmJhODcyMGJlOWQ2ZTM0MTE1YWNhMy4uYjAwYzE2NWZkOWJmMTJm
OGQ3YjVmYzc0NjkzOTg2NjU2NDUxZWJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0xMTQ2OCw2ICsxMTQ2OCw3IEBACiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8
RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3Jt
KSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xD
b21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRS
ZXNvbHZlZFBvc2l0aW9uLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRl
cmluZ1xzdHlsZVxLZXlmcmFtZUxpc3QuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBD
b25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KQEAgLTIwMTQ2LDYgKzIwMTQ3LDcgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkQ29vcmRpbmF0ZS5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRMZW5ndGguaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkUG9zaXRpb24uaCIg
Lz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkUmVzb2x2
ZWRQb3NpdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0
eWxlXEdyaWRUcmFja1NpemUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRl
cmluZ1xzdHlsZVxLZXlmcmFtZUxpc3QuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJlbmRlcmluZ1xzdHlsZVxOaW5lUGllY2VJbWFnZS5oIiAvPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDc4
ODhjODE4OWYzYTAxZDkwOWYzZjM5MmNkNWQ0ZDI1Y2I5NjU4ZTEuLmZhM2NmNDBhZDE3YmQ1ZThl
OGEwNGIyNDdmZTcyZmI4ZjJiNWE3NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTI3NzUsNiArMjc3NSw5
IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcRmlsbExheWVy
LmNwcCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzdHlsZTwvRmlsdGVyPgogICAgIDwvQ2xD
b21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRS
ZXNvbHZlZFBvc2l0aW9uLmNwcCI+CisgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzdHlsZTwvRmls
dGVyPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVy
aW5nXHN0eWxlXEtleWZyYW1lTGlzdC5jcHAiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc3R5
bGU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTk3MDYsNiArOTcwOSw5IEBACiAgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFBvc2l0aW9uLmgiPgog
ICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc3R5bGU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4K
KyAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkUmVzb2x2ZWRQ
b3NpdGlvbi5oIj4KKyAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHN0eWxlPC9GaWx0ZXI+CisgICAg
PC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVc
R3JpZFRyYWNrU2l6ZS5oIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHN0eWxlPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggN2IwYmM4ZDNiZTIzYTA3YWRlOThkOGE4OGQxYjUzMTY3
YTFlMDI5ZC4uODQ0NmFlOTQzOGI1M2Q3NjhhODk1MTE3Njc2MGJmMTRkNDllOGMyMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NTcwNSw2ICs1NzA1LDggQEAKIAkJQ0RGMkIwMTkxODIwNTQwNzAwRjJCNDI0IC8qIE1vY2tUcmFj
a3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjJC
MDBGMTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrVHJhY2tzLmggKi87IH07CiAJCUNERjY1Q0M4MTQ1
QjFFNzUwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjdGNkU0MTQ1NzY3ODcwMDc4MjA3RCAvKiBNZWRp
YUNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlDREY2NUNDQTE0NUI0NDg4MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJm
YWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY2
NUNDOTE0NUI0M0E3MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQ0RGNzQ4M0UxOEZF
QkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERjc0ODNDMThGRUJDRUMwMDA2RUNDMCAv
KiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAgKi87IH07CisJCUNERjc0ODNGMThGRUJDRUMwMDA2
RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ4M0QxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNv
bHZlZFBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQ0RGQzM2MDUxOENBNjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5l
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREZD
MzYwMzE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcCAqLzsgfTsK
IAkJQ0RGQzM2MDYxOENBNjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGQzM2MDQxOENB
NjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERkMzNjA3MThDQTY5NkMwMDI2RTU2
RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREZDMzYwMjE4Q0E2MTYzMDAyNkU1NkYgLyogUmVtb3Rl
Q29tbWFuZExpc3RlbmVySU9TLm1tICovOyB9OwpAQCAtMTMxMzAsNiArMTMxMzIsOCBAQAogCQlD
REYyQjAwRjE4MjA1NDA2MDBGMkI0MjQgLyogTW9ja1RyYWNrcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNb2NrVHJhY2tzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNERjY1Q0M5MTQ1QjQzQTcwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9sbGVySW50ZXJm
YWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNERjY1Q0NDMTQ1QjZBRkUwMEM0
QzdBQSAvKiBKU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RGNzQ4M0MxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNv
bHZlZFBvc2l0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEdy
aWRSZXNvbHZlZFBvc2l0aW9uLmNwcDsgcGF0aCA9IHN0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9u
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0RGNzQ4M0QxOEZFQkNFQzAwMDZF
Q0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uLmg7IHBhdGggPSBzdHlsZS9HcmlkUmVzb2x2ZWRQ
b3NpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREZDMzYwMTE4Q0E2MTYz
MDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oOyBwYXRoID0gaW9zL1Jl
bW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
REZDMzYwMjE4Q0E2MTYzMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUmVtb3RlQ29tbWFuZExpc3Rl
bmVySU9TLm1tOyBwYXRoID0gaW9zL1JlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGQzM2MDMxOENBNjFDMjAwMjZFNTZGIC8qIFJlbW90
ZUNvbW1hbmRMaXN0ZW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjA4MjcsNiArMjA4MzEsOCBAQAogCQkJCUNEM0UyNTFCMTgwNDZCMDYwMEUyN0Y1NiAvKiBH
cmlkQ29vcmRpbmF0ZS5oICovLAogCQkJCUNERUY0RkQ2MTdFODVDOEYwMEFFRTI0QiAvKiBHcmlk
TGVuZ3RoLmggKi8sCiAJCQkJQTEyNzA1QzIxNjU2QkQ2NTAwQzJFMjdDIC8qIEdyaWRQb3NpdGlv
bi5oICovLAorCQkJCUNERjc0ODNDMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3Np
dGlvbi5jcHAgKi8sCisJCQkJQ0RGNzQ4M0QxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZl
ZFBvc2l0aW9uLmggKi8sCiAJCQkJQTEyQTEwNEUxNjY0NDREQzAwOEZBMzExIC8qIEdyaWRUcmFj
a1NpemUuaCAqLywKIAkJCQlCQzVFQkEwRTBFODIzRTQ3MDBCMjU5NjUgLyogS2V5ZnJhbWVMaXN0
LmNwcCAqLywKIAkJCQlCQzVFQkEwRjBFODIzRTQ3MDBCMjU5NjUgLyogS2V5ZnJhbWVMaXN0Lmgg
Ki8sCkBAIC0yNDU5MCw2ICsyNDU5Niw3IEBACiAJCQkJQTgwRTdFOUYwQTFBODNFMzAwN0ZCOEM1
IC8qIEpTSFRNTEJ1dHRvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOEU2NjYyMDlG
MDlCODcwMDhBNDhFQyAvKiBKU0hUTUxDYW52YXNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0NCQUQ0MTBDMThDMTQyMDBDRTg5MEYgLyogSlNIVE1MQ29sbGVjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQ0RGNzQ4M0YxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNUMwNDFFNzBGRkNBOTZEMDA4MzlENEEgLyogSlNI
VE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlEMzU5RDhCRjEyOUNBNTVD
MDAwNkU1RDIgLyogSlNIVE1MRGV0YWlsc0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTc2
ODA4QjUwMTU5REFERkEwMDJCNTIzMyAvKiBKU0hUTUxEaWFsb2dFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKQEAgLTI3MzM4LDYgKzI3MzQ1LDcgQEAKIAkJCQlBNDIyNkU5NjExNjNENzNBMDA4Qjgz
OTcgLyogRE9NSFRNTFByb2dyZXNzRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1MTgz
QjRCMEFBNjkyNjEwMEYxOUZBMyAvKiBET01IVE1MUXVvdGVFbGVtZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODVERjgxOUMwQUE3N0U0QjAwNDg2QUQ3IC8qIERPTUhUTUxTY3JpcHRFbGVtZW50
Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJQ0RGNzQ4M0UxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRS
ZXNvbHZlZFBvc2l0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1RjMyQUYxMEFBNjNCODcw
MEZGMzE4NCAvKiBET01IVE1MU2VsZWN0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1
OUE5QzUwMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MU3R5bGVFbGVtZW50Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODVERjgyMUUwQUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZUNhcHRp
b25FbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
R3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKaW5kZXggYjM1MzgyMjkwZjM0MGVhZDY5MTYzM2I0
NTc1OWNjMjY5YzU3ZGY5My4uNWFkNzFmYmRkMzZjZjhkYzAwMzQyMDM4ZDEzN2NhYWZlNmFlYTNm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFs
dWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVl
LmNwcApAQCAtNTUsMTMgKzU1LDEzIEBAIHN0YXRpYyBTdHJpbmcgc3RyaW5nRm9yUG9zaXRpb24o
Y29uc3QgTmFtZWRHcmlkQXJlYU1hcCYgZ3JpZEFyZWFNYXAsIHNpemVfdCByb3csCiAKICAgICBm
b3IgKGNvbnN0IGF1dG8mIGl0IDogZ3JpZEFyZWFNYXApIHsKICAgICAgICAgY29uc3QgR3JpZENv
b3JkaW5hdGUmIGNvb3JkaW5hdGUgPSBpdC52YWx1ZTsKLSAgICAgICAgaWYgKHJvdyA+PSBjb29y
ZGluYXRlLnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXggJiYgcm93IDw9IGNvb3JkaW5hdGUucm93
cy5maW5hbFBvc2l0aW9uSW5kZXgpCisgICAgICAgIGlmIChyb3cgPj0gY29vcmRpbmF0ZS5yb3dz
LnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCkgJiYgcm93IDw9IGNvb3JkaW5hdGUucm93
cy5yZXNvbHZlZEZpbmFsUG9zaXRpb24udG9JbnQoKSkKICAgICAgICAgICAgIGNhbmRpZGF0ZXMu
YXBwZW5kKGl0LmtleSk7CiAgICAgfQogCiAgICAgZm9yIChjb25zdCBhdXRvJiBpdCA6IGdyaWRB
cmVhTWFwKSB7CiAgICAgICAgIGNvbnN0IEdyaWRDb29yZGluYXRlJiBjb29yZGluYXRlID0gaXQu
dmFsdWU7Ci0gICAgICAgIGlmIChjb2x1bW4gPj0gY29vcmRpbmF0ZS5jb2x1bW5zLmluaXRpYWxQ
b3NpdGlvbkluZGV4ICYmIGNvbHVtbiA8PSBjb29yZGluYXRlLmNvbHVtbnMuZmluYWxQb3NpdGlv
bkluZGV4ICYmIGNhbmRpZGF0ZXMuY29udGFpbnMoaXQua2V5KSkKKyAgICAgICAgaWYgKGNvbHVt
biA+PSBjb29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKSAm
JiBjb2x1bW4gPD0gY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlvbi50b0lu
dCgpICYmIGNhbmRpZGF0ZXMuY29udGFpbnMoaXQua2V5KSkKICAgICAgICAgICAgIHJldHVybiBp
dC5rZXk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDA5N2UzMTYzZDQ0
MjQ0ZTMyZWNmZGE3YmM5YzY2Zjc2YTZkM2EwMGQuLjcxZGQ3ZmQzMTBiMTVjNzcxNWQ0M2M5MWNh
MzgzM2FjMzhjMzRjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC01Mjg2LDE4ICs1
Mjg2LDE4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUdyaWRUZW1wbGF0ZUFyZWFzUm93KE5hbWVk
R3JpZEFyZWFNYXAmIGdyaWRBcmVhTWFwLCBjb25zdCB1CiAKICAgICAgICAgICAgIC8vIFRoZSBm
b2xsb3dpbmcgY2hlY2tzIHRlc3QgdGhhdCB0aGUgZ3JpZCBhcmVhIGlzIGEgc2luZ2xlIGZpbGxl
ZC1pbiByZWN0YW5nbGUuCiAgICAgICAgICAgICAvLyAxLiBUaGUgbmV3IHJvdyBpcyBhZGphY2Vu
dCB0byB0aGUgcHJldmlvdXNseSBwYXJzZWQgcm93LgotICAgICAgICAgICAgaWYgKHJvd0NvdW50
ICE9IGdyaWRDb29yZGluYXRlLnJvd3MuZmluYWxQb3NpdGlvbkluZGV4ICsgMSkKKyAgICAgICAg
ICAgIGlmIChyb3dDb3VudCAhPSBncmlkQ29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkRmluYWxQb3Np
dGlvbi5uZXh0KCkudG9JbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKIAogICAgICAg
ICAgICAgLy8gMi4gVGhlIG5ldyBhcmVhIHN0YXJ0cyBhdCB0aGUgc2FtZSBwb3NpdGlvbiBhcyB0
aGUgcHJldmlvdXNseSBwYXJzZWQgYXJlYS4KLSAgICAgICAgICAgIGlmIChjdXJyZW50Q29sdW1u
ICE9IGdyaWRDb29yZGluYXRlLmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXgpCisgICAgICAg
ICAgICBpZiAoY3VycmVudENvbHVtbiAhPSBncmlkQ29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVk
SW5pdGlhbFBvc2l0aW9uLnRvSW50KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAg
ICAgICAgICAgIC8vIDMuIFRoZSBuZXcgYXJlYSBlbmRzIGF0IHRoZSBzYW1lIHBvc2l0aW9uIGFz
IHRoZSBwcmV2aW91c2x5IHBhcnNlZCBhcmVhLgotICAgICAgICAgICAgaWYgKGxvb2tBaGVhZENv
bHVtbiAhPSBncmlkQ29vcmRpbmF0ZS5jb2x1bW5zLmZpbmFsUG9zaXRpb25JbmRleCkKKyAgICAg
ICAgICAgIGlmIChsb29rQWhlYWRDb2x1bW4gIT0gZ3JpZENvb3JkaW5hdGUuY29sdW1ucy5yZXNv
bHZlZEZpbmFsUG9zaXRpb24udG9JbnQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gMDsKIAot
ICAgICAgICAgICAgKytncmlkQ29vcmRpbmF0ZS5yb3dzLmZpbmFsUG9zaXRpb25JbmRleDsKKyAg
ICAgICAgICAgICsrZ3JpZENvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRpb247CiAg
ICAgICAgIH0KICAgICAgICAgY3VycmVudENvbHVtbiA9IGxvb2tBaGVhZENvbHVtbjsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggZGEzNmMyOTU3Mjcy
MmQ4OTQyZTg3NDViM2Q2ZTU2ZGY5ZTkxMTUzYS4uOTE5NzdjZWYxZmNiYjNjOTMzOWVlMGJkODk0
ZTc2OWRjNjM1NzAyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApA
QCAtMzAsNiArMzAsNyBAQAogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAKICNpbmNsdWRl
ICJHcmlkQ29vcmRpbmF0ZS5oIgorI2luY2x1ZGUgIkdyaWRSZXNvbHZlZFBvc2l0aW9uLmgiCiAj
aW5jbHVkZSAiTGF5b3V0UmVwYWludGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNp
bmNsdWRlICJSZW5kZXJWaWV3LmgiCkBAIC0zNDEsNyArMzQyLDcgQEAgdm9pZCBSZW5kZXJHcmlk
Ojpjb21wdXRlVXNlZEJyZWFkdGhPZkdyaWRUcmFja3MoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9u
IGRpcmVjdGkKICAgICAgICAgICAgICAgICBjb25zdCBHcmlkU3BhbiBzcGFuID0gKGRpcmVjdGlv
biA9PSBGb3JDb2x1bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1ucyA6IGNvb3JkaW5hdGUucm93czsK
IAogICAgICAgICAgICAgICAgIC8vIERvIG5vdCBpbmNsdWRlIGFscmVhZHkgcHJvY2Vzc2VkIGl0
ZW1zLgotICAgICAgICAgICAgICAgIGlmIChpID4gMCAmJiBzcGFuLmluaXRpYWxQb3NpdGlvbklu
ZGV4IDw9IGZsZXhpYmxlU2l6ZWRUcmFja3NJbmRleFtpIC0gMV0pCisgICAgICAgICAgICAgICAg
aWYgKGkgPiAwICYmIHNwYW4ucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKSA8PSBmbGV4
aWJsZVNpemVkVHJhY2tzSW5kZXhbaSAtIDFdKQogICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKIAogICAgICAgICAgICAgICAgIGRvdWJsZSBpdGVtTm9ybWFsaXplZEZsZXhCcmVhZHRoID0g
Y29tcHV0ZU5vcm1hbGl6ZWRGcmFjdGlvbkJyZWFkdGgodHJhY2tzLCBzcGFuLCBkaXJlY3Rpb24s
IG1heENvbnRlbnRGb3JDaGlsZChncmlkSXRlbSwgZGlyZWN0aW9uLCBzaXppbmdEYXRhLmNvbHVt
blRyYWNrcykpOwpAQCAtNDAwLDEyICs0MDEsMTIgQEAgZG91YmxlIFJlbmRlckdyaWQ6OmNvbXB1
dGVOb3JtYWxpemVkRnJhY3Rpb25CcmVhZHRoKFZlY3RvcjxHcmlkVHJhY2s+JiB0cmFja3MsIGMK
ICAgICAvLyB8YXZhaWxhYmxlTG9naWNhbFNwYWNlfCBhbHJlYWR5IGFjY291bnRzIGZvciB0aGUg
dXNlZCBicmVhZHRocyBzbyBubyBuZWVkIHRvIHJlbW92ZSBpdCBoZXJlLgogCiAgICAgVmVjdG9y
PEdyaWRUcmFja0Zvck5vcm1hbGl6YXRpb24+IHRyYWNrc0Zvck5vcm1hbGl6YXRpb247Ci0gICAg
Zm9yIChzaXplX3QgaSA9IHRyYWNrc1NwYW4uaW5pdGlhbFBvc2l0aW9uSW5kZXg7IGkgPD0gdHJh
Y2tzU3Bhbi5maW5hbFBvc2l0aW9uSW5kZXg7ICsraSkgewotICAgICAgICBjb25zdCBHcmlkVHJh
Y2tTaXplJiB0cmFja1NpemUgPSBncmlkVHJhY2tTaXplKGRpcmVjdGlvbiwgaSk7CisgICAgZm9y
IChHcmlkUmVzb2x2ZWRQb3NpdGlvbiBwb3NpdGlvbiA9IHRyYWNrc1NwYW4ucmVzb2x2ZWRJbml0
aWFsUG9zaXRpb247IHBvc2l0aW9uIDw9IHRyYWNrc1NwYW4ucmVzb2x2ZWRGaW5hbFBvc2l0aW9u
OyArK3Bvc2l0aW9uKSB7CisgICAgICAgIGNvbnN0IEdyaWRUcmFja1NpemUmIHRyYWNrU2l6ZSA9
IGdyaWRUcmFja1NpemUoZGlyZWN0aW9uLCBwb3NpdGlvbi50b0ludCgpKTsKICAgICAgICAgaWYg
KCF0cmFja1NpemUubWF4VHJhY2tCcmVhZHRoKCkuaXNGbGV4KCkpCiAgICAgICAgICAgICBjb250
aW51ZTsKIAotICAgICAgICB0cmFja3NGb3JOb3JtYWxpemF0aW9uLmFwcGVuZChHcmlkVHJhY2tG
b3JOb3JtYWxpemF0aW9uKHRyYWNrc1tpXSwgdHJhY2tTaXplLm1heFRyYWNrQnJlYWR0aCgpLmZs
ZXgoKSkpOworICAgICAgICB0cmFja3NGb3JOb3JtYWxpemF0aW9uLmFwcGVuZChHcmlkVHJhY2tG
b3JOb3JtYWxpemF0aW9uKHRyYWNrc1twb3NpdGlvbi50b0ludCgpXSwgdHJhY2tTaXplLm1heFRy
YWNrQnJlYWR0aCgpLmZsZXgoKSkpOwogICAgIH0KIAogICAgIC8vIFRoZSBmdW5jdGlvbiBpcyBu
b3QgY2FsbGVkIGlmIHdlIGRvbid0IGhhdmUgPGZsZXg+IGdyaWQgdHJhY2tzCkBAIC00NjEsMjYg
KzQ2Miw2IEBAIGNvbnN0IEdyaWRUcmFja1NpemUmIFJlbmRlckdyaWQ6OmdyaWRUcmFja1NpemUo
R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvCiAgICAgcmV0dXJuIHRyYWNrU2l6ZTsK
IH0KIAotc2l6ZV90IFJlbmRlckdyaWQ6OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KCkgY29uc3QK
LXsKLSAgICByZXR1cm4gc3R5bGUoKS5ncmlkQ29sdW1ucygpLnNpemUoKTsKLX0KLQotc2l6ZV90
IFJlbmRlckdyaWQ6OmV4cGxpY2l0R3JpZFJvd0NvdW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4g
c3R5bGUoKS5ncmlkUm93cygpLnNpemUoKTsKLX0KLQotc3RhdGljIGlubGluZSBib29sIGlzQ29s
dW1uU2lkZShHcmlkUG9zaXRpb25TaWRlIHNpZGUpCi17Ci0gICAgcmV0dXJuIHNpZGUgPT0gQ29s
dW1uU3RhcnRTaWRlIHx8IHNpZGUgPT0gQ29sdW1uRW5kU2lkZTsKLX0KLQotc2l6ZV90IFJlbmRl
ckdyaWQ6OmV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKEdyaWRQb3NpdGlvblNpZGUgc2lkZSkgY29u
c3QKLXsKLSAgICByZXR1cm4gaXNDb2x1bW5TaWRlKHNpZGUpID8gZXhwbGljaXRHcmlkQ29sdW1u
Q291bnQoKSA6IGV4cGxpY2l0R3JpZFJvd0NvdW50KCk7Ci19Ci0KIExheW91dFVuaXQgUmVuZGVy
R3JpZDo6bG9naWNhbENvbnRlbnRIZWlnaHRGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkLCBWZWN0
b3I8R3JpZFRyYWNrPiYgY29sdW1uVHJhY2tzKQogewogICAgIExheW91dFVuaXQgb2xkT3ZlcnJp
ZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoID0gY2hpbGQtPmhhc092ZXJyaWRl
Q29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRoKCkgPyBjaGlsZC0+b3ZlcnJpZGVDb250YWluaW5n
QmxvY2tDb250ZW50TG9naWNhbFdpZHRoKCkgOiBMYXlvdXRVbml0KCk7CkBAIC01NTAsMTYgKzUz
MSwxNiBAQCB2b2lkIFJlbmRlckdyaWQ6OnJlc29sdmVDb250ZW50QmFzZWRUcmFja1NpemluZ0Z1
bmN0aW9ucyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpbwogdm9pZCBSZW5kZXJHcmlkOjpyZXNvbHZl
Q29udGVudEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnNGb3JJdGVtcyhHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24gZGlyZWN0aW9uLCBHcmlkU2l6aW5nRGF0YSYgc2l6aW5nRGF0YSwgUmVuZGVyQm94
KiBncmlkSXRlbSwgRmlsdGVyRnVuY3Rpb24gZmlsdGVyRnVuY3Rpb24sIFNpemluZ0Z1bmN0aW9u
IHNpemluZ0Z1bmN0aW9uLCBBY2N1bXVsYXRvckdldHRlciB0cmFja0dldHRlciwgQWNjdW11bGF0
b3JHcm93RnVuY3Rpb24gdHJhY2tHcm93dGhGdW5jdGlvbikKIHsKICAgICBjb25zdCBHcmlkQ29v
cmRpbmF0ZSBjb29yZGluYXRlID0gY2FjaGVkR3JpZENvb3JkaW5hdGUoZ3JpZEl0ZW0pOwotICAg
IGNvbnN0IHNpemVfdCBpbml0aWFsVHJhY2tJbmRleCA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1u
cykgPyBjb29yZGluYXRlLmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXggOiBjb29yZGluYXRl
LnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXg7Ci0gICAgY29uc3Qgc2l6ZV90IGZpbmFsVHJhY2tJ
bmRleCA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBjb29yZGluYXRlLmNvbHVtbnMuZmlu
YWxQb3NpdGlvbkluZGV4IDogY29vcmRpbmF0ZS5yb3dzLmZpbmFsUG9zaXRpb25JbmRleDsKKyAg
ICBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBpbml0aWFsVHJhY2tQb3NpdGlvbiA9IChkaXJl
Y3Rpb24gPT0gRm9yQ29sdW1ucykgPyBjb29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRJbml0aWFs
UG9zaXRpb24gOiBjb29yZGluYXRlLnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb247CisgICAg
Y29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24gZmluYWxUcmFja1Bvc2l0aW9uID0gKGRpcmVjdGlv
biA9PSBGb3JDb2x1bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEZpbmFsUG9zaXRp
b24gOiBjb29yZGluYXRlLnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0aW9uOwogCiAgICAgc2l6aW5n
RGF0YS5maWx0ZXJlZFRyYWNrcy5zaHJpbmsoMCk7Ci0gICAgZm9yIChzaXplX3QgdHJhY2tJbmRl
eCA9IGluaXRpYWxUcmFja0luZGV4OyB0cmFja0luZGV4IDw9IGZpbmFsVHJhY2tJbmRleDsgKyt0
cmFja0luZGV4KSB7Ci0gICAgICAgIGNvbnN0IEdyaWRUcmFja1NpemUmIHRyYWNrU2l6ZSA9IGdy
aWRUcmFja1NpemUoZGlyZWN0aW9uLCB0cmFja0luZGV4KTsKKyAgICBmb3IgKEdyaWRSZXNvbHZl
ZFBvc2l0aW9uIHRyYWNrSW5kZXggPSBpbml0aWFsVHJhY2tQb3NpdGlvbjsgdHJhY2tJbmRleCA8
PSBmaW5hbFRyYWNrUG9zaXRpb247ICsrdHJhY2tJbmRleCkgeworICAgICAgICBjb25zdCBHcmlk
VHJhY2tTaXplJiB0cmFja1NpemUgPSBncmlkVHJhY2tTaXplKGRpcmVjdGlvbiwgdHJhY2tJbmRl
eC50b0ludCgpKTsKICAgICAgICAgaWYgKCEodHJhY2tTaXplLipmaWx0ZXJGdW5jdGlvbikoKSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIEdyaWRUcmFjayYgdHJhY2sgPSAoZGly
ZWN0aW9uID09IEZvckNvbHVtbnMpID8gc2l6aW5nRGF0YS5jb2x1bW5UcmFja3NbdHJhY2tJbmRl
eF0gOiBzaXppbmdEYXRhLnJvd1RyYWNrc1t0cmFja0luZGV4XTsKKyAgICAgICAgR3JpZFRyYWNr
JiB0cmFjayA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBzaXppbmdEYXRhLmNvbHVtblRy
YWNrc1t0cmFja0luZGV4LnRvSW50KCldIDogc2l6aW5nRGF0YS5yb3dUcmFja3NbdHJhY2tJbmRl
eC50b0ludCgpXTsKICAgICAgICAgc2l6aW5nRGF0YS5maWx0ZXJlZFRyYWNrcy5hcHBlbmQoJnRy
YWNrKTsKICAgICB9CiAKQEAgLTU2Nyw4ICs1NDgsOCBAQCB2b2lkIFJlbmRlckdyaWQ6OnJlc29s
dmVDb250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9uc0Zvckl0ZW1zKEdyaWRUcmFja1Npemlu
ZwogICAgICAgICByZXR1cm47CiAKICAgICBMYXlvdXRVbml0IGFkZGl0aW9uYWxCcmVhZHRoU3Bh
Y2UgPSAodGhpcy0+KnNpemluZ0Z1bmN0aW9uKShncmlkSXRlbSwgZGlyZWN0aW9uLCBzaXppbmdE
YXRhLmNvbHVtblRyYWNrcyk7Ci0gICAgZm9yIChzaXplX3QgdHJhY2tJbmRleEZvclNwYWNlID0g
aW5pdGlhbFRyYWNrSW5kZXg7IHRyYWNrSW5kZXhGb3JTcGFjZSA8PSBmaW5hbFRyYWNrSW5kZXg7
ICsrdHJhY2tJbmRleEZvclNwYWNlKSB7Ci0gICAgICAgIEdyaWRUcmFjayYgdHJhY2sgPSAoZGly
ZWN0aW9uID09IEZvckNvbHVtbnMpID8gc2l6aW5nRGF0YS5jb2x1bW5UcmFja3NbdHJhY2tJbmRl
eEZvclNwYWNlXSA6IHNpemluZ0RhdGEucm93VHJhY2tzW3RyYWNrSW5kZXhGb3JTcGFjZV07Cisg
ICAgZm9yIChHcmlkUmVzb2x2ZWRQb3NpdGlvbiB0cmFja1Bvc2l0aW9uRm9yU3BhY2UgPSBpbml0
aWFsVHJhY2tQb3NpdGlvbjsgdHJhY2tQb3NpdGlvbkZvclNwYWNlIDw9IGZpbmFsVHJhY2tQb3Np
dGlvbjsgKyt0cmFja1Bvc2l0aW9uRm9yU3BhY2UpIHsKKyAgICAgICAgR3JpZFRyYWNrJiB0cmFj
ayA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBzaXppbmdEYXRhLmNvbHVtblRyYWNrc1t0
cmFja1Bvc2l0aW9uRm9yU3BhY2UudG9JbnQoKV0gOiBzaXppbmdEYXRhLnJvd1RyYWNrc1t0cmFj
a1Bvc2l0aW9uRm9yU3BhY2UudG9JbnQoKV07CiAgICAgICAgIGFkZGl0aW9uYWxCcmVhZHRoU3Bh
Y2UgLT0gKHRyYWNrLip0cmFja0dldHRlcikoKTsKICAgICB9CiAKQEAgLTY0MiwxNyArNjIzLDE3
IEBAIHZvaWQgUmVuZGVyR3JpZDo6Z3Jvd0dyaWQoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRp
cmVjdGlvbikKIAogdm9pZCBSZW5kZXJHcmlkOjppbnNlcnRJdGVtSW50b0dyaWQoUmVuZGVyQm94
KiBjaGlsZCwgY29uc3QgR3JpZENvb3JkaW5hdGUmIGNvb3JkaW5hdGUpCiB7Ci0gICAgZm9yIChz
aXplX3Qgcm93ID0gY29vcmRpbmF0ZS5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4OyByb3cgPD0g
Y29vcmRpbmF0ZS5yb3dzLmZpbmFsUG9zaXRpb25JbmRleDsgKytyb3cpIHsKLSAgICAgICAgZm9y
IChzaXplX3QgY29sdW1uID0gY29vcmRpbmF0ZS5jb2x1bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4
OyBjb2x1bW4gPD0gY29vcmRpbmF0ZS5jb2x1bW5zLmZpbmFsUG9zaXRpb25JbmRleDsgKytjb2x1
bW4pCi0gICAgICAgICAgICBtX2dyaWRbcm93XVtjb2x1bW5dLmFwcGVuZChjaGlsZCk7CisgICAg
Zm9yIChHcmlkUmVzb2x2ZWRQb3NpdGlvbiByb3cgPSBjb29yZGluYXRlLnJvd3MucmVzb2x2ZWRJ
bml0aWFsUG9zaXRpb247IHJvdyA8PSBjb29yZGluYXRlLnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0
aW9uOyArK3JvdykgeworICAgICAgICBmb3IgKEdyaWRSZXNvbHZlZFBvc2l0aW9uIGNvbHVtbiA9
IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsgY29sdW1uIDw9IGNv
b3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEZpbmFsUG9zaXRpb247ICsrY29sdW1uKQorICAgICAg
ICAgICAgbV9ncmlkW3Jvdy50b0ludCgpXVtjb2x1bW4udG9JbnQoKV0uYXBwZW5kKGNoaWxkKTsK
ICAgICB9CiAgICAgbV9ncmlkSXRlbUNvb3JkaW5hdGUuc2V0KGNoaWxkLCBjb29yZGluYXRlKTsK
IH0KIAotdm9pZCBSZW5kZXJHcmlkOjppbnNlcnRJdGVtSW50b0dyaWQoUmVuZGVyQm94KiBjaGls
ZCwgc2l6ZV90IHJvd1RyYWNrLCBzaXplX3QgY29sdW1uVHJhY2spCit2b2lkIFJlbmRlckdyaWQ6
Omluc2VydEl0ZW1JbnRvR3JpZChSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBHcmlkUmVzb2x2ZWRQ
b3NpdGlvbiYgcm93VHJhY2ssIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBjb2x1bW5UcmFj
aykKIHsKLSAgICBjb25zdCBHcmlkU3BhbiYgcm93U3BhbiA9IHJlc29sdmVHcmlkUG9zaXRpb25z
RnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbihjaGlsZCwgRm9yUm93cywgcm93VHJhY2spOwotICAg
IGNvbnN0IEdyaWRTcGFuJiBjb2x1bW5TcGFuID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0
b1BsYWNlbWVudFBvc2l0aW9uKGNoaWxkLCBGb3JDb2x1bW5zLCBjb2x1bW5UcmFjayk7CisgICAg
Y29uc3QgR3JpZFNwYW4mIHJvd1NwYW4gPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdy
aWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKCpjaGlsZCwgRm9yUm93cywgcm93
VHJhY2spOworICAgIGNvbnN0IEdyaWRTcGFuJiBjb2x1bW5TcGFuID0gR3JpZFJlc29sdmVkUG9z
aXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbigqY2hp
bGQsIEZvckNvbHVtbnMsIGNvbHVtblRyYWNrKTsKICAgICBpbnNlcnRJdGVtSW50b0dyaWQoY2hp
bGQsIEdyaWRDb29yZGluYXRlKHJvd1NwYW4sIGNvbHVtblNwYW4pKTsKIH0KIApAQCAtNjY5LDgg
KzY1MCw4IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VJdGVtc09uR3JpZCgpCiAgICAgZm9yIChS
ZW5kZXJCb3gqIGNoaWxkID0gbV9vcmRlckl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9
IG1fb3JkZXJJdGVyYXRvci5uZXh0KCkpIHsKICAgICAgICAgLy8gRklYTUU6IFdlIG5ldmVyIHJl
LXJlc29sdmUgcG9zaXRpb25zIGlmIHRoZSBncmlkIGlzIGdyb3duIGR1cmluZyBhdXRvLXBsYWNl
bWVudCB3aGljaCBtYXkgbGVhZCBhdXRvIC8gPGludGVnZXI+CiAgICAgICAgIC8vIHBvc2l0aW9u
cyB0byBub3QgbWF0Y2ggdGhlIGF1dGhvcidzIGludGVudC4gVGhlIHNwZWNpZmljYXRpb24gaXMg
dW5jbGVhciBvbiB3aGF0IHNob3VsZCBiZSBkb25lIGluIHRoaXMgY2FzZS4KLSAgICAgICAgc3Rk
Ojp1bmlxdWVfcHRyPEdyaWRTcGFuPiByb3dQb3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9u
c0Zyb21TdHlsZShjaGlsZCwgRm9yUm93cyk7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlk
U3Bhbj4gY29sdW1uUG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY2hp
bGQsIEZvckNvbHVtbnMpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJvd1Bv
c2l0aW9ucyA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21T
dHlsZShzdHlsZSgpLCAqY2hpbGQsIEZvclJvd3MpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
R3JpZFNwYW4+IGNvbHVtblBvc2l0aW9ucyA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZl
R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqY2hpbGQsIEZvckNvbHVtbnMpOwogICAg
ICAgICBpZiAoIXJvd1Bvc2l0aW9ucyB8fCAhY29sdW1uUG9zaXRpb25zKSB7CiAgICAgICAgICAg
ICBHcmlkU3BhbiogbWFqb3JBeGlzUG9zaXRpb25zID0gKGF1dG9QbGFjZW1lbnRNYWpvckF4aXNE
aXJlY3Rpb24oKSA9PSBGb3JDb2x1bW5zKSA/IGNvbHVtblBvc2l0aW9ucy5nZXQoKSA6IHJvd1Bv
c2l0aW9ucy5nZXQoKTsKICAgICAgICAgICAgIGlmICghbWFqb3JBeGlzUG9zaXRpb25zKQpAQCAt
NzAwLDggKzY4MSw4IEBAIHZvaWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRP
cmRlckl0ZXJhdG9yKCkKIHsKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGZpbmQgYSB3YXkgdG8g
c2hhcmUgT3JkZXJWYWx1ZXMncyBpbml0aWFsaXphdGlvbiBjb2RlIHdpdGggUmVuZGVyRmxleGli
bGVCb3guCiAgICAgT3JkZXJJdGVyYXRvcjo6T3JkZXJWYWx1ZXMgb3JkZXJWYWx1ZXM7Ci0gICAg
c2l6ZV90IG1heGltdW1Sb3dJbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4oMSwgZXhwbGljaXRHcmlk
Um93Q291bnQoKSk7Ci0gICAgc2l6ZV90IG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4PHNp
emVfdD4oMSwgZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoKSk7CisgICAgc2l6ZV90IG1heGltdW1S
b3dJbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4oMSwgR3JpZFJlc29sdmVkUG9zaXRpb246OmV4cGxp
Y2l0R3JpZFJvd0NvdW50KHN0eWxlKCkpKTsKKyAgICBzaXplX3QgbWF4aW11bUNvbHVtbkluZGV4
ID0gc3RkOjptYXg8c2l6ZV90PigxLCBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6ZXhwbGljaXRHcmlk
Q29sdW1uQ291bnQoc3R5bGUoKSkpOwogCiAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gZmly
c3RDaGlsZEJveCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmdCb3goKSkgewog
ICAgICAgICAvLyBBdm9pZCBncm93aW5nIHRoZSB2ZWN0b3IgZm9yIHRoZSBjb21tb24tY2FzZSBk
ZWZhdWx0IHZhbHVlIG9mIDAuIFRoaXMgb3B0aW1pemVzIHRoZSBtb3N0IGNvbW1vbiBjYXNlIHdo
aWNoIGlzCkBAIC03MTEsMTUgKzY5MiwxNSBAQCB2b2lkIFJlbmRlckdyaWQ6OnBvcHVsYXRlRXhw
bGljaXRHcmlkQW5kT3JkZXJJdGVyYXRvcigpCiAgICAgICAgICAgICBvcmRlclZhbHVlcy5hcHBl
bmQob3JkZXIpOwogCiAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gYnlwYXNzZXMgdGhlIGNhY2hl
IChjYWNoZWRHcmlkQ29vcmRpbmF0ZSgpKSBhcyBpdCBpcyB1c2VkIHRvIGJ1aWxkIGl0LgotICAg
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJvd1Bvc2l0aW9ucyA9IHJlc29sdmVHcmlk
UG9zaXRpb25zRnJvbVN0eWxlKGNoaWxkLCBGb3JSb3dzKTsKLSAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPEdyaWRTcGFuPiBjb2x1bW5Qb3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21T
dHlsZShjaGlsZCwgRm9yQ29sdW1ucyk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bh
bj4gcm93UG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRp
b25zRnJvbVN0eWxlKHN0eWxlKCksICpjaGlsZCwgRm9yUm93cyk7CisgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxHcmlkU3Bhbj4gY29sdW1uUG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246
OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICpjaGlsZCwgRm9yQ29sdW1u
cyk7CiAKICAgICAgICAgLy8gfHBvc2l0aW9uc3wgaXMgMCBpZiB3ZSBuZWVkIHRvIHJ1biB0aGUg
YXV0by1wbGFjZW1lbnQgYWxnb3JpdGhtLiBPdXIgZXN0aW1hdGlvbiBpZ25vcmVzCiAgICAgICAg
IC8vIHRoaXMgY2FzZSBhcyB0aGUgYXV0by1wbGFjZW1lbnQgYWxnb3JpdGhtIHdpbGwgZ3JvdyB0
aGUgZ3JpZCBhcyBuZWVkZWQuCiAgICAgICAgIGlmIChyb3dQb3NpdGlvbnMpCi0gICAgICAgICAg
ICBtYXhpbXVtUm93SW5kZXggPSBzdGQ6Om1heChtYXhpbXVtUm93SW5kZXgsIHJvd1Bvc2l0aW9u
cy0+ZmluYWxQb3NpdGlvbkluZGV4ICsgMSk7CisgICAgICAgICAgICBtYXhpbXVtUm93SW5kZXgg
PSBzdGQ6Om1heChtYXhpbXVtUm93SW5kZXgsIHJvd1Bvc2l0aW9ucy0+cmVzb2x2ZWRGaW5hbFBv
c2l0aW9uLm5leHQoKS50b0ludCgpKTsKICAgICAgICAgaWYgKGNvbHVtblBvc2l0aW9ucykKLSAg
ICAgICAgICAgIG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4KG1heGltdW1Db2x1bW5JbmRl
eCwgY29sdW1uUG9zaXRpb25zLT5maW5hbFBvc2l0aW9uSW5kZXggKyAxKTsKKyAgICAgICAgICAg
IG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4KG1heGltdW1Db2x1bW5JbmRleCwgY29sdW1u
UG9zaXRpb25zLT5yZXNvbHZlZEZpbmFsUG9zaXRpb24ubmV4dCgpLnRvSW50KCkpOwogICAgIH0K
IAogICAgIG1fZ3JpZC5ncm93KG1heGltdW1Sb3dJbmRleCk7CkBAIC03MzIsMTcgKzcxMywxNyBA
QCB2b2lkIFJlbmRlckdyaWQ6OnBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRvcigp
CiB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQoY29u
c3QgVmVjdG9yPFJlbmRlckJveCo+JiBhdXRvR3JpZEl0ZW1zKQogewogICAgIGZvciAoYXV0byYg
YXV0b0dyaWRJdGVtIDogYXV0b0dyaWRJdGVtcykgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
R3JpZFNwYW4+IG1ham9yQXhpc1Bvc2l0aW9ucyA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0
eWxlKGF1dG9HcmlkSXRlbSwgYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpKTsKLSAg
ICAgICAgR3JpZEl0ZXJhdG9yIGl0ZXJhdG9yKG1fZ3JpZCwgYXV0b1BsYWNlbWVudE1ham9yQXhp
c0RpcmVjdGlvbigpLCBtYWpvckF4aXNQb3NpdGlvbnMtPmluaXRpYWxQb3NpdGlvbkluZGV4KTsK
KyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBtYWpvckF4aXNQb3NpdGlvbnMgPSBH
cmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUo
KSwgKmF1dG9HcmlkSXRlbSwgYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpKTsKKyAg
ICAgICAgR3JpZEl0ZXJhdG9yIGl0ZXJhdG9yKG1fZ3JpZCwgYXV0b1BsYWNlbWVudE1ham9yQXhp
c0RpcmVjdGlvbigpLCBtYWpvckF4aXNQb3NpdGlvbnMtPnJlc29sdmVkSW5pdGlhbFBvc2l0aW9u
LnRvSW50KCkpOwogICAgICAgICBpZiAoc3RkOjp1bmlxdWVfcHRyPEdyaWRDb29yZGluYXRlPiBl
bXB0eUdyaWRBcmVhID0gaXRlcmF0b3IubmV4dEVtcHR5R3JpZEFyZWEoKSkgewotICAgICAgICAg
ICAgaW5zZXJ0SXRlbUludG9HcmlkKGF1dG9HcmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5p
bml0aWFsUG9zaXRpb25JbmRleCwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5pbml0aWFsUG9zaXRp
b25JbmRleCk7CisgICAgICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoYXV0b0dyaWRJdGVtLCBl
bXB0eUdyaWRBcmVhLT5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLCBlbXB0eUdyaWRBcmVh
LT5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uKTsKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICB9CiAKICAgICAgICAgZ3Jvd0dyaWQoYXV0b1BsYWNlbWVudE1pbm9yQXhpc0Rp
cmVjdGlvbigpKTsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRDb29yZGluYXRlPiBlbXB0
eUdyaWRBcmVhID0gaXRlcmF0b3IubmV4dEVtcHR5R3JpZEFyZWEoKTsKICAgICAgICAgQVNTRVJU
KGVtcHR5R3JpZEFyZWEpOwotICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoYXV0b0dyaWRJdGVt
LCBlbXB0eUdyaWRBcmVhLT5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4LCBlbXB0eUdyaWRBcmVh
LT5jb2x1bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4KTsKKyAgICAgICAgaW5zZXJ0SXRlbUludG9H
cmlkKGF1dG9HcmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5yZXNvbHZlZEluaXRpYWxQb3Np
dGlvbiwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbik7CiAg
ICAgfQogfQogCkBAIC03NTQsMTQgKzczNSwxNCBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlQXV0
b01ham9yQXhpc0l0ZW1zT25HcmlkKGNvbnN0IFZlY3RvcjxSZW5kZXJCb3gqPiYgYXV0b0dyaQog
CiB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0ZW1PbkdyaWQoUmVuZGVyQm94
KiBncmlkSXRlbSkKIHsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IG1pbm9yQXhpc1Bv
c2l0aW9ucyA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGdyaWRJdGVtLCBhdXRvUGxh
Y2VtZW50TWlub3JBeGlzRGlyZWN0aW9uKCkpOwotICAgIEFTU0VSVCghcmVzb2x2ZUdyaWRQb3Np
dGlvbnNGcm9tU3R5bGUoZ3JpZEl0ZW0sIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24o
KSkpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gbWlub3JBeGlzUG9zaXRpb25zID0g
R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxl
KCksICpncmlkSXRlbSwgYXV0b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigpKTsKKyAgICBB
U1NFUlQoIUdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHls
ZShzdHlsZSgpLCAqZ3JpZEl0ZW0sIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSkp
OwogICAgIHNpemVfdCBtaW5vckF4aXNJbmRleCA9IDA7CiAgICAgaWYgKG1pbm9yQXhpc1Bvc2l0
aW9ucykgewotICAgICAgICBtaW5vckF4aXNJbmRleCA9IG1pbm9yQXhpc1Bvc2l0aW9ucy0+aW5p
dGlhbFBvc2l0aW9uSW5kZXg7CisgICAgICAgIG1pbm9yQXhpc0luZGV4ID0gbWlub3JBeGlzUG9z
aXRpb25zLT5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpOwogICAgICAgICBHcmlkSXRl
cmF0b3IgaXRlcmF0b3IobV9ncmlkLCBhdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uKCks
IG1pbm9yQXhpc0luZGV4KTsKICAgICAgICAgaWYgKHN0ZDo6dW5pcXVlX3B0cjxHcmlkQ29vcmRp
bmF0ZT4gZW1wdHlHcmlkQXJlYSA9IGl0ZXJhdG9yLm5leHRFbXB0eUdyaWRBcmVhKCkpIHsKLSAg
ICAgICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChncmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93
cy5pbml0aWFsUG9zaXRpb25JbmRleCwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5pbml0aWFsUG9z
aXRpb25JbmRleCk7CisgICAgICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoZ3JpZEl0ZW0sIGVt
cHR5R3JpZEFyZWEtPnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIGVtcHR5R3JpZEFyZWEt
PmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24pOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgfSBlbHNlIHsKQEAgLTc2OSw3ICs3NTAsNyBAQCB2b2lkIFJlbmRlckdy
aWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0ZW1PbkdyaWQoUmVuZGVyQm94KiBncmlkSXRlbSkKICAg
ICAgICAgZm9yIChzaXplX3QgbWFqb3JBeGlzSW5kZXggPSAwOyBtYWpvckF4aXNJbmRleCA8IGVu
ZE9mTWFqb3JBeGlzOyArK21ham9yQXhpc0luZGV4KSB7CiAgICAgICAgICAgICBHcmlkSXRlcmF0
b3IgaXRlcmF0b3IobV9ncmlkLCBhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCksIG1h
am9yQXhpc0luZGV4KTsKICAgICAgICAgICAgIGlmIChzdGQ6OnVuaXF1ZV9wdHI8R3JpZENvb3Jk
aW5hdGU+IGVtcHR5R3JpZEFyZWEgPSBpdGVyYXRvci5uZXh0RW1wdHlHcmlkQXJlYSgpKSB7Ci0g
ICAgICAgICAgICAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGdyaWRJdGVtLCBlbXB0eUdyaWRBcmVh
LT5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4LCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5zLmluaXRp
YWxQb3NpdGlvbkluZGV4KTsKKyAgICAgICAgICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoZ3Jp
ZEl0ZW0sIGVtcHR5R3JpZEFyZWEtPnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIGVtcHR5
R3JpZEFyZWEtPmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24pOwogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNzgyLDE0ICs3NjMsMTQg
QEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUF1dG9NYWpvckF4aXNJdGVtT25HcmlkKFJlbmRlckJv
eCogZ3JpZEl0ZW0pCiAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGdyaWRJdGVtLCByb3dJbmRleCwg
Y29sdW1uSW5kZXgpOwogfQogCi1SZW5kZXJHcmlkOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24g
UmVuZGVyR3JpZDo6YXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpIGNvbnN0CitHcmlk
VHJhY2tTaXppbmdEaXJlY3Rpb24gUmVuZGVyR3JpZDo6YXV0b1BsYWNlbWVudE1ham9yQXhpc0Rp
cmVjdGlvbigpIGNvbnN0CiB7CiAgICAgR3JpZEF1dG9GbG93IGZsb3cgPSBzdHlsZSgpLmdyaWRB
dXRvRmxvdygpOwogICAgIEFTU0VSVChmbG93ICE9IEF1dG9GbG93Tm9uZSk7CiAgICAgcmV0dXJu
IChmbG93ID09IEF1dG9GbG93Q29sdW1uKSA/IEZvckNvbHVtbnMgOiBGb3JSb3dzOwogfQogCi1S
ZW5kZXJHcmlkOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gUmVuZGVyR3JpZDo6YXV0b1BsYWNl
bWVudE1pbm9yQXhpc0RpcmVjdGlvbigpIGNvbnN0CitHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24g
UmVuZGVyR3JpZDo6YXV0b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigpIGNvbnN0CiB7CiAg
ICAgR3JpZEF1dG9GbG93IGZsb3cgPSBzdHlsZSgpLmdyaWRBdXRvRmxvdygpOwogICAgIEFTU0VS
VChmbG93ICE9IEF1dG9GbG93Tm9uZSk7CkBAIC04NTgsMjk2ICs4MzksMTMgQEAgR3JpZENvb3Jk
aW5hdGUgUmVuZGVyR3JpZDo6Y2FjaGVkR3JpZENvb3JkaW5hdGUoY29uc3QgUmVuZGVyQm94KiBn
cmlkSXRlbSkgY29uc3QKICAgICByZXR1cm4gbV9ncmlkSXRlbUNvb3JkaW5hdGUuZ2V0KGdyaWRJ
dGVtKTsKIH0KIAotR3JpZFNwYW4gUmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9t
QXV0b1BsYWNlbWVudFBvc2l0aW9uKGNvbnN0IFJlbmRlckJveCosIEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbiwgc2l6ZV90IGluaXRpYWxQb3NpdGlvbikgY29uc3QKLXsKLSAgICAvLyBGSVhNRTog
V2UgZG9uJ3Qgc3VwcG9ydCBzcGFubmluZyB3aXRoIGF1dG8gcG9zaXRpb25zIHlldC4gT25jZSB3
ZSBkbywgdGhpcyBpcyB3cm9uZy4gQWxzbyB3ZSBzaG91bGQgbWFrZQotICAgIC8vIHN1cmUgdGhl
IGdyaWQgY2FuIGFjY29tb2RhdGUgdGhlIG5ldyBpdGVtIGFzIHdlIG9ubHkgZ3JvdyAxIHBvc2l0
aW9uIGluIGEgZ2l2ZW4gZGlyZWN0aW9uLgotICAgIHJldHVybiBHcmlkU3Bhbihpbml0aWFsUG9z
aXRpb24sIGluaXRpYWxQb3NpdGlvbik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBncmlkTGlu
ZURlZmluZWRCZWZvcmVHcmlkQXJlYShzaXplX3QgbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlv
biwgY29uc3QgR3JpZENvb3JkaW5hdGUmIGdyaWRBcmVhQ29vcmRpbmF0ZXMsIEdyaWRQb3NpdGlv
blNpZGUgc2lkZSkKLXsKLSAgICBzd2l0Y2ggKHNpZGUpIHsKLSAgICBjYXNlIENvbHVtblN0YXJ0
U2lkZToKLSAgICAgICAgcmV0dXJuIG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24gPCBncmlk
QXJlYUNvb3JkaW5hdGVzLmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXg7Ci0gICAgY2FzZSBD
b2x1bW5FbmRTaWRlOgotICAgICAgICByZXR1cm4gbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlv
biA8IGdyaWRBcmVhQ29vcmRpbmF0ZXMuY29sdW1ucy5maW5hbFBvc2l0aW9uSW5kZXg7Ci0gICAg
Y2FzZSBSb3dTdGFydFNpZGU6Ci0gICAgICAgIHJldHVybiBuYW1lZEdyaWRMaW5lRmlyc3REZWZp
bml0aW9uIDwgZ3JpZEFyZWFDb29yZGluYXRlcy5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4Owot
ICAgIGNhc2UgUm93RW5kU2lkZToKLSAgICAgICAgcmV0dXJuIG5hbWVkR3JpZExpbmVGaXJzdERl
ZmluaXRpb24gPCBncmlkQXJlYUNvb3JkaW5hdGVzLnJvd3MuZmluYWxQb3NpdGlvbkluZGV4Owot
ICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0K
LXN0YXRpYyB2b2lkIHNldE5hbWVkTGluZVBvc2l0aW9uSWZEZWZpbmVkQmVmb3JlQXJlYShHcmlk
UG9zaXRpb24mIHBvc2l0aW9uLCBjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYgbmFtZWRMaW5lc01h
cCwgY29uc3QgU3RyaW5nJiBsaW5lTmFtZSwgY29uc3QgR3JpZENvb3JkaW5hdGUmIGdyaWRBcmVh
Q29vcmRpbmF0ZSwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQotewotICAgIGF1dG8gbGluZXNJdGVy
YXRvciA9IG5hbWVkTGluZXNNYXAuZmluZChsaW5lTmFtZSk7Ci0gICAgaWYgKGxpbmVzSXRlcmF0
b3IgPT0gbmFtZWRMaW5lc01hcC5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2l6ZV90
IG5hbWVkR3JpZExpbmVGaXJzdERlZmluaXRpb24gPSBHcmlkUG9zaXRpb246OmFkanVzdEdyaWRQ
b3NpdGlvbkZvclNpZGUobGluZXNJdGVyYXRvci0+dmFsdWVbMF0sIHNpZGUpOwotICAgIGlmIChn
cmlkTGluZURlZmluZWRCZWZvcmVHcmlkQXJlYShuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9u
LCBncmlkQXJlYUNvb3JkaW5hdGUsIHNpZGUpKQotICAgICAgICBwb3NpdGlvbi5zZXRFeHBsaWNp
dFBvc2l0aW9uKDEsIGxpbmVOYW1lKTsKLX0KLQotdm9pZCBSZW5kZXJHcmlkOjphZGp1c3ROYW1l
ZEdyaWRJdGVtUG9zaXRpb24oR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lk
ZSBzaWRlKSBjb25zdAotewotICAgIC8vIFRoZSBTdHlsZUJ1aWxkZXIgYWx3YXlzIHRyZWF0cyA8
Y3VzdG9tLWlkZW50PiBhcyBhIG5hbWVkIGdyaWQgYXJlYS4gV2UgbXVzdCBkZWNpZGUgaGVyZSBp
ZiB0aGV5IGFyZSBnb2luZyB0byBiZQotICAgIC8vIHJlc29sdmVkIHRvIGVpdGhlciBhIGdyaWQg
YXJlYSBvciBhIGdyaWQgbGluZS4KLSAgICBBU1NFUlQocG9zaXRpb24uaXNOYW1lZEdyaWRBcmVh
KCkpOwotICAgIGNvbnN0IE5hbWVkR3JpZEFyZWFNYXAmIGdyaWRBcmVhTWFwID0gc3R5bGUoKS5u
YW1lZEdyaWRBcmVhKCk7Ci0gICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIG5hbWVkTGluZXNN
YXAgPSBpc0NvbHVtblNpZGUoc2lkZSkgPyBzdHlsZSgpLm5hbWVkR3JpZENvbHVtbkxpbmVzKCkg
OiBzdHlsZSgpLm5hbWVkR3JpZFJvd0xpbmVzKCk7Ci0KLSAgICBTdHJpbmcgbmFtZWRHcmlkQXJl
YU9yR3JpZExpbmUgPSBwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCk7Ci0gICAgYm9vbCBpc1N0YXJ0
U2lkZSA9IHNpZGUgPT0gQ29sdW1uU3RhcnRTaWRlIHx8IHNpZGUgPT0gUm93U3RhcnRTaWRlOwot
Ci0gICAgYXV0byBhcmVhSXRlcmF0b3IgPSBncmlkQXJlYU1hcC5maW5kKG5hbWVkR3JpZEFyZWFP
ckdyaWRMaW5lKTsKLSAgICBpZiAoYXJlYUl0ZXJhdG9yICE9IGdyaWRBcmVhTWFwLmVuZCgpKSB7
Ci0gICAgICAgIFN0cmluZyBncmlkTGluZU5hbWUgPSBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZSAr
IChpc1N0YXJ0U2lkZSA/ICItc3RhcnQiIDogIi1lbmQiKTsKLSAgICAgICAgc2V0TmFtZWRMaW5l
UG9zaXRpb25JZkRlZmluZWRCZWZvcmVBcmVhKHBvc2l0aW9uLCBuYW1lZExpbmVzTWFwLCBncmlk
TGluZU5hbWUsIGFyZWFJdGVyYXRvci0+dmFsdWUsIHNpZGUpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgYm9vbCBoYXNTdGFydFN1ZmZpeCA9IG5hbWVkR3JpZEFyZWFPckdyaWRMaW5l
LmVuZHNXaXRoKCItc3RhcnQiKTsKLSAgICBib29sIGhhc0VuZFN1ZmZpeCA9IG5hbWVkR3JpZEFy
ZWFPckdyaWRMaW5lLmVuZHNXaXRoKCItZW5kIik7Ci0gICAgaWYgKChoYXNTdGFydFN1ZmZpeCAm
JiBpc1N0YXJ0U2lkZSkgfHwgKGhhc0VuZFN1ZmZpeCAmJiAhaXNTdGFydFNpZGUpKSB7Ci0gICAg
ICAgIHNpemVfdCBzdWZmaXhMZW5ndGggPSBoYXNTdGFydFN1ZmZpeCA/IHN0cmxlbigiLXN0YXJ0
IikgOiBzdHJsZW4oIi1lbmQiKTsKLSAgICAgICAgU3RyaW5nIGdyaWRBcmVhTmFtZSA9IG5hbWVk
R3JpZEFyZWFPckdyaWRMaW5lLnN1YnN0cmluZygwLCBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZS5s
ZW5ndGgoKSAtIHN1ZmZpeExlbmd0aCk7Ci0KLSAgICAgICAgYXV0byBhcmVhSXRlcmF0b3IgPSBn
cmlkQXJlYU1hcC5maW5kKGdyaWRBcmVhTmFtZSk7Ci0gICAgICAgIGlmIChhcmVhSXRlcmF0b3Ig
IT0gZ3JpZEFyZWFNYXAuZW5kKCkpIHsKLSAgICAgICAgICAgIHBvc2l0aW9uLnNldE5hbWVkR3Jp
ZEFyZWEoZ3JpZEFyZWFOYW1lKTsKLSAgICAgICAgICAgIHNldE5hbWVkTGluZVBvc2l0aW9uSWZE
ZWZpbmVkQmVmb3JlQXJlYShwb3NpdGlvbiwgbmFtZWRMaW5lc01hcCwgbmFtZWRHcmlkQXJlYU9y
R3JpZExpbmUsIGFyZWFJdGVyYXRvci0+dmFsdWUsIHNpZGUpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKG5hbWVkTGluZXNNYXAuY29udGFpbnMobmFt
ZWRHcmlkQXJlYU9yR3JpZExpbmUpKQotICAgICAgICBwb3NpdGlvbi5zZXRFeHBsaWNpdFBvc2l0
aW9uKDEsIG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lKTsKLSAgICBlbHNlCi0gICAgICAgIHBvc2l0
aW9uLnNldEF1dG9Qb3NpdGlvbigpOwotfQotCi12b2lkIFJlbmRlckdyaWQ6OmFkanVzdEdyaWRQ
b3NpdGlvbnNGcm9tU3R5bGUoR3JpZFBvc2l0aW9uJiBpbml0aWFsUG9zaXRpb24sIEdyaWRQb3Np
dGlvbiYgZmluYWxQb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRl
LCBHcmlkUG9zaXRpb25TaWRlIGZpbmFsUG9zaXRpb25TaWRlKSBjb25zdAotewotICAgIEFTU0VS
VChpc0NvbHVtblNpZGUoaW5pdGlhbFBvc2l0aW9uU2lkZSkgPT0gaXNDb2x1bW5TaWRlKGZpbmFs
UG9zaXRpb25TaWRlKSk7Ci0KLSAgICAvLyBXZSBtdXN0IGhhbmRsZSB0aGUgcGxhY2VtZW50IGVy
cm9yIGhhbmRsaW5nIGNvZGUgaGVyZSBpbnN0ZWFkIG9mIGluIHRoZSBTdHlsZUFkanVzdGVyIGJl
Y2F1c2Ugd2UgZG9uJ3Qgd2FudCB0bwotICAgIC8vIG92ZXJ3cml0ZSB0aGUgc3BlY2lmaWVkIHZh
bHVlcy4KLSAgICBpZiAoaW5pdGlhbFBvc2l0aW9uLmlzU3BhbigpICYmIGZpbmFsUG9zaXRpb24u
aXNTcGFuKCkpCi0gICAgICAgIGZpbmFsUG9zaXRpb24uc2V0QXV0b1Bvc2l0aW9uKCk7Ci0KLSAg
ICBpZiAoaW5pdGlhbFBvc2l0aW9uLmlzTmFtZWRHcmlkQXJlYSgpKQotICAgICAgICBhZGp1c3RO
YW1lZEdyaWRJdGVtUG9zaXRpb24oaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRl
KTsKLQotICAgIGlmIChmaW5hbFBvc2l0aW9uLmlzTmFtZWRHcmlkQXJlYSgpKQotICAgICAgICBh
ZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRpb24oZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvblNp
ZGUpOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IFJlbmRlckdyaWQ6OnJlc29sdmVH
cmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlckJveCogZ3JpZEl0ZW0sIEdyaWRUcmFj
a1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Ci17Ci0gICAgR3JpZFBvc2l0aW9uIGlu
aXRpYWxQb3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBncmlkSXRlbS0+c3R5
bGUoKS5ncmlkSXRlbUNvbHVtblN0YXJ0KCkgOiBncmlkSXRlbS0+c3R5bGUoKS5ncmlkSXRlbVJv
d1N0YXJ0KCk7Ci0gICAgY29uc3QgR3JpZFBvc2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRl
ID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IENvbHVtblN0YXJ0U2lkZSA6IFJvd1N0YXJ0
U2lkZTsKLSAgICBHcmlkUG9zaXRpb24gZmluYWxQb3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9y
Q29sdW1ucykgPyBncmlkSXRlbS0+c3R5bGUoKS5ncmlkSXRlbUNvbHVtbkVuZCgpIDogZ3JpZEl0
ZW0tPnN0eWxlKCkuZ3JpZEl0ZW1Sb3dFbmQoKTsKLSAgICBjb25zdCBHcmlkUG9zaXRpb25TaWRl
IGZpbmFsUG9zaXRpb25TaWRlID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IENvbHVtbkVu
ZFNpZGUgOiBSb3dFbmRTaWRlOwotCi0gICAgYWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShp
bml0aWFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUsIGZpbmFs
UG9zaXRpb25TaWRlKTsKLQotICAgIGlmIChpbml0aWFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZl
ZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKCkgJiYgZmluYWxQb3NpdGlvbi5zaG91bGRCZVJlc29s
dmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKSkgewotICAgICAgICBpZiAoc3R5bGUoKS5ncmlk
QXV0b0Zsb3coKSA9PSBBdXRvRmxvd05vbmUpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxHcmlkU3Bhbj4oMCwgMCk7Ci0KLSAgICAgICAgLy8gV2UgY2FuJ3QgZ2V0IG91ciBn
cmlkIHBvc2l0aW9ucyB3aXRob3V0IHJ1bm5pbmcgdGhlIGF1dG8gcGxhY2VtZW50IGFsZ29yaXRo
bS4KLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgaWYgKGluaXRpYWxQb3Np
dGlvbi5zaG91bGRCZVJlc29sdmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKSkgewotICAgICAg
ICAvLyBJbmZlciB0aGUgcG9zaXRpb24gZnJvbSB0aGUgZmluYWwgcG9zaXRpb24gKCdhdXRvIC8g
MScgb3IgJ3NwYW4gMiAvIDMnIGNhc2UpLgotICAgICAgICBjb25zdCBzaXplX3QgZmluYWxSZXNv
bHZlZFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShmaW5hbFBvc2l0aW9u
LCBmaW5hbFBvc2l0aW9uU2lkZSk7Ci0gICAgICAgIHJldHVybiByZXNvbHZlR3JpZFBvc2l0aW9u
QWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oZmluYWxSZXNvbHZlZFBvc2l0aW9uLCBpbml0aWFsUG9z
aXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUpOwotICAgIH0KLQotICAgIGlmIChmaW5hbFBvc2l0
aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigpKSB7Ci0gICAgICAg
IC8vIEluZmVyIG91ciBwb3NpdGlvbiBmcm9tIHRoZSBpbml0aWFsIHBvc2l0aW9uICgnMSAvIGF1
dG8nIG9yICczIC8gc3BhbiAyJyBjYXNlKS4KLSAgICAgICAgY29uc3Qgc2l6ZV90IGluaXRpYWxS
ZXNvbHZlZFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShpbml0aWFsUG9z
aXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUpOwotICAgICAgICByZXR1cm4gcmVzb2x2ZUdyaWRQ
b3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uLCBm
aW5hbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uU2lkZSk7Ci0gICAgfQotCi0gICAgc2l6ZV90IHJl
c29sdmVkSW5pdGlhbFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShpbml0
aWFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUpOwotICAgIHNpemVfdCByZXNvbHZlZEZp
bmFsUG9zaXRpb24gPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGZpbmFsUG9zaXRpb24s
IGZpbmFsUG9zaXRpb25TaWRlKTsKLQotICAgIC8vIElmICdncmlkLXJvdy1lbmQnIHNwZWNpZmll
cyBhIGxpbmUgYXQgb3IgYmVmb3JlIHRoYXQgc3BlY2lmaWVkIGJ5ICdncmlkLXJvdy1zdGFydCcs
IGl0IGNvbXB1dGVzIHRvICdzcGFuIDEnLgotICAgIGlmIChyZXNvbHZlZEZpbmFsUG9zaXRpb24g
PCByZXNvbHZlZEluaXRpYWxQb3NpdGlvbikKLSAgICAgICAgcmVzb2x2ZWRGaW5hbFBvc2l0aW9u
ID0gcmVzb2x2ZWRJbml0aWFsUG9zaXRpb247Ci0KLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIHJlc29sdmVkRmluYWxQb3NpdGlv
bik7Ci19Ci0KLXNpemVfdCBSZW5kZXJHcmlkOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9u
RnJvbVN0eWxlKGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUg
c2lkZSkgY29uc3QKLXsKLSAgICBBU1NFUlQoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051
bGwoKSk7Ci0KLSAgICBjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYgZ3JpZExpbmVzTmFtZXMgPSBp
c0NvbHVtblNpZGUoc2lkZSkgPyBzdHlsZSgpLm5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBzdHls
ZSgpLm5hbWVkR3JpZFJvd0xpbmVzKCk7Ci0gICAgTmFtZWRHcmlkTGluZXNNYXA6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gZ3JpZExpbmVzTmFtZXMuZmluZChwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkp
OwotICAgIGlmIChpdCA9PSBncmlkTGluZXNOYW1lcy5lbmQoKSkgewotICAgICAgICBpZiAocG9z
aXRpb24uaXNQb3NpdGl2ZSgpKQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIGNvbnN0
IHNpemVfdCBsYXN0TGluZSA9IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKHNpZGUpOwotICAgICAg
ICByZXR1cm4gR3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGxhc3RMaW5l
LCBzaWRlKTsKLSAgICB9Ci0KLSAgICBzaXplX3QgbmFtZWRHcmlkTGluZUluZGV4OwotICAgIGlm
IChwb3NpdGlvbi5pc1Bvc2l0aXZlKCkpCi0gICAgICAgIG5hbWVkR3JpZExpbmVJbmRleCA9IHN0
ZDo6bWluPHNpemVfdD4ocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCksIGl0LT52YWx1ZS5zaXpl
KCkpIC0gMTsKLSAgICBlbHNlCi0gICAgICAgIG5hbWVkR3JpZExpbmVJbmRleCA9IHN0ZDo6bWF4
PGludD4oaXQtPnZhbHVlLnNpemUoKSAtIGFicyhwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSks
IDApOwotICAgIHJldHVybiBHcmlkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUo
aXQtPnZhbHVlW25hbWVkR3JpZExpbmVJbmRleF0sIHNpZGUpOwotfQotCi1zaXplX3QgUmVuZGVy
R3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShjb25zdCBHcmlkUG9zaXRpb24mIHBv
c2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpIGNvbnN0Ci17Ci0gICAgc3dpdGNoIChwb3Np
dGlvbi50eXBlKCkpIHsKLSAgICBjYXNlIEV4cGxpY2l0UG9zaXRpb246IHsKLSAgICAgICAgQVNT
RVJUKHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpKTsKLQotICAgICAgICBpZiAoIXBvc2l0aW9u
Lm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSkKLSAgICAgICAgICAgIHJldHVybiByZXNvbHZlTmFt
ZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKHBvc2l0aW9uLCBzaWRlKTsKLQotICAgICAgICAv
LyBIYW5kbGUgPGludGVnZXI+IGV4cGxpY2l0IHBvc2l0aW9uLgotICAgICAgICBpZiAocG9zaXRp
b24uaXNQb3NpdGl2ZSgpKQotICAgICAgICAgICAgcmV0dXJuIEdyaWRQb3NpdGlvbjo6YWRqdXN0
R3JpZFBvc2l0aW9uRm9yU2lkZShwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSAtIDEsIHNpZGUp
OwotCi0gICAgICAgIHNpemVfdCByZXNvbHZlZFBvc2l0aW9uID0gYWJzKHBvc2l0aW9uLmludGVn
ZXJQb3NpdGlvbigpKSAtIDE7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBlbmRPZlRyYWNrID0gZXhw
bGljaXRHcmlkU2l6ZUZvclNpZGUoc2lkZSk7Ci0KLSAgICAgICAgLy8gUGVyIGh0dHA6Ly9saXN0
cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1zdHlsZS8yMDEzTWFyLzA1ODkuaHRtbCwgd2Ug
Y2xhbXAgbmVnYXRpdmUgdmFsdWUgdG8gdGhlIGZpcnN0IGxpbmUuCi0gICAgICAgIGlmIChlbmRP
ZlRyYWNrIDwgcmVzb2x2ZWRQb3NpdGlvbikKLSAgICAgICAgICAgIHJldHVybiAwOwotCi0gICAg
ICAgIHJldHVybiBHcmlkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoZW5kT2ZU
cmFjayAtIHJlc29sdmVkUG9zaXRpb24sIHNpZGUpOwotICAgIH0KLSAgICBjYXNlIE5hbWVkR3Jp
ZEFyZWFQb3NpdGlvbjoKLSAgICB7Ci0gICAgICAgIE5hbWVkR3JpZEFyZWFNYXA6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gc3R5bGUoKS5uYW1lZEdyaWRBcmVhKCkuZmluZChwb3NpdGlvbi5uYW1lZEdy
aWRMaW5lKCkpOwotICAgICAgICAvLyBVbmtub3duIGdyaWQgYXJlYSBzaG91bGQgaGF2ZSBiZWVu
IGNvbXB1dGVkIHRvICdhdXRvJyBieSBub3cuCi0gICAgICAgIEFTU0VSVChpdCAhPSBzdHlsZSgp
Lm5hbWVkR3JpZEFyZWEoKS5lbmQoKSk7Ci0gICAgICAgIGNvbnN0IEdyaWRDb29yZGluYXRlJiBn
cmlkQXJlYUNvb3JkaW5hdGUgPSBpdC0+dmFsdWU7Ci0gICAgICAgIHN3aXRjaCAoc2lkZSkgewot
ICAgICAgICBjYXNlIENvbHVtblN0YXJ0U2lkZToKLSAgICAgICAgICAgIHJldHVybiBncmlkQXJl
YUNvb3JkaW5hdGUuY29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleDsKLSAgICAgICAgY2FzZSBD
b2x1bW5FbmRTaWRlOgotICAgICAgICAgICAgcmV0dXJuIGdyaWRBcmVhQ29vcmRpbmF0ZS5jb2x1
bW5zLmZpbmFsUG9zaXRpb25JbmRleDsKLSAgICAgICAgY2FzZSBSb3dTdGFydFNpZGU6Ci0gICAg
ICAgICAgICByZXR1cm4gZ3JpZEFyZWFDb29yZGluYXRlLnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5k
ZXg7Ci0gICAgICAgIGNhc2UgUm93RW5kU2lkZToKLSAgICAgICAgICAgIHJldHVybiBncmlkQXJl
YUNvb3JkaW5hdGUucm93cy5maW5hbFBvc2l0aW9uSW5kZXg7Ci0gICAgICAgIH0KLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICBjYXNl
IEF1dG9Qb3NpdGlvbjoKLSAgICBjYXNlIFNwYW5Qb3NpdGlvbjoKLSAgICAgICAgLy8gJ2F1dG8n
IGFuZCBzcGFuIGRlcGVuZCBvbiB0aGUgb3Bwb3NpdGUgcG9zaXRpb24gZm9yIHJlc29sdXRpb24g
KGUuZy4gZ3JpZC1yb3c6IGF1dG8gLyAxIG9yIGdyaWQtY29sdW1uOiBzcGFuIDMgLyAibXlIZWFk
ZXIiKS4KLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiAwOwot
ICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotc3Rk
Ojp1bmlxdWVfcHRyPEdyaWRTcGFuPiBSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uQWdh
aW5zdE9wcG9zaXRlUG9zaXRpb24oc2l6ZV90IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29u
c3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKSBjb25zdAot
ewotICAgIGlmIChwb3NpdGlvbi5pc0F1dG8oKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uKTsKLQotICAgIEFTU0VSVChwb3NpdGlvbi5pc1NwYW4oKSk7Ci0gICAgQVNTRVJU
KHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpID4gMCk7Ci0KLSAgICBpZiAoIXBvc2l0aW9uLm5hbWVk
R3JpZExpbmUoKS5pc051bGwoKSkgewotICAgICAgICAvLyBzcGFuIDIgJ2MnIC0+IHdlIG5lZWQg
dG8gZmluZCB0aGUgYXBwcm9wcmlhdGUgZ3JpZCBsaW5lIGJlZm9yZSAvIGFmdGVyIG91ciBvcHBv
c2l0ZSBwb3NpdGlvbi4KLSAgICAgICAgcmV0dXJuIHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRp
b25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHBvc2l0
aW9uLCBzaWRlKTsKLSAgICB9Ci0KLSAgICAvLyAnc3BhbiAxJyBpcyBjb250YWluZWQgaW5zaWRl
IGEgc2luZ2xlIGdyaWQgdHJhY2sgcmVnYXJkbGVzcyBvZiB0aGUgZGlyZWN0aW9uLgotICAgIC8v
IFRoYXQncyB3aHkgdGhlIENTUyBzcGFuIHZhbHVlIGlzIG9uZSBtb3JlIHRoYW4gdGhlIG9mZnNl
dCB3ZSBhcHBseS4KLSAgICBzaXplX3QgcG9zaXRpb25PZmZzZXQgPSBwb3NpdGlvbi5zcGFuUG9z
aXRpb24oKSAtIDE7Ci0gICAgaWYgKHNpZGUgPT0gQ29sdW1uU3RhcnRTaWRlIHx8IHNpZGUgPT0g
Um93U3RhcnRTaWRlKSB7Ci0gICAgICAgIHNpemVfdCBpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiA9
IHN0ZDo6bWF4PGludD4oMCwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uIC0gcG9zaXRpb25PZmZz
ZXQpOwotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4oaW5pdGlhbFJl
c29sdmVkUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7Ci0gICAgfQotCi0gICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlv
biwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uICsgcG9zaXRpb25PZmZzZXQpOwotfQotCi1zdGQ6
OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IFJlbmRlckdyaWQ6OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9z
aXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0
aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUp
IGNvbnN0Ci17Ci0gICAgQVNTRVJUKHBvc2l0aW9uLmlzU3BhbigpKTsKLSAgICBBU1NFUlQoIXBv
c2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSk7Ci0gICAgLy8gTmVnYXRpdmUgcG9zaXRp
b25zIGFyZSBub3QgYWxsb3dlZCBwZXIgdGhlIHNwZWNpZmljYXRpb24gYW5kIHNob3VsZCBoYXZl
IGJlZW4gaGFuZGxlZCBkdXJpbmcgcGFyc2luZy4KLSAgICBBU1NFUlQocG9zaXRpb24uc3BhblBv
c2l0aW9uKCkgPiAwKTsKLQotICAgIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBncmlkTGluZXNO
YW1lcyA9IGlzQ29sdW1uU2lkZShzaWRlKSA/IHN0eWxlKCkubmFtZWRHcmlkQ29sdW1uTGluZXMo
KSA6IHN0eWxlKCkubmFtZWRHcmlkUm93TGluZXMoKTsKLSAgICBOYW1lZEdyaWRMaW5lc01hcDo6
Y29uc3RfaXRlcmF0b3IgaXQgPSBncmlkTGluZXNOYW1lcy5maW5kKHBvc2l0aW9uLm5hbWVkR3Jp
ZExpbmUoKSk7Ci0KLSAgICAvLyBJZiB0aGVyZSBpcyBubyBuYW1lZCBncmlkIGxpbmUgb2YgdGhh
dCBuYW1lLCB3ZSByZXNvbHZlIHRoZSBwb3NpdGlvbiB0byAnYXV0bycgKHdoaWNoIGlzIGVxdWl2
YWxlbnQgdG8gJ3NwYW4gMScgaW4gdGhpcyBjYXNlKS4KLSAgICAvLyBTZWUgaHR0cDovL2xpc3Rz
LnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTNKdW4vMDM5NC5odG1sLgotICAg
IGlmIChpdCA9PSBncmlkTGluZXNOYW1lcy5lbmQoKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcmVzb2x2ZWRPcHBv
c2l0ZVBvc2l0aW9uKTsKLQotICAgIGlmIChzaWRlID09IFJvd1N0YXJ0U2lkZSB8fCBzaWRlID09
IENvbHVtblN0YXJ0U2lkZSkKLSAgICAgICAgcmV0dXJuIHJlc29sdmVSb3dTdGFydENvbHVtblN0
YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24ocmVzb2x2ZWRP
cHBvc2l0ZVBvc2l0aW9uLCBwb3NpdGlvbiwgaXQtPnZhbHVlKTsKLQotICAgIHJldHVybiByZXNv
bHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9z
aXRpb24ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBwb3NpdGlvbiwgaXQtPnZhbHVlKTsKLX0K
LQotc3RhdGljIGlubGluZSBzaXplX3QgZmlyc3ROYW1lZEdyaWRMaW5lQmVmb3JlUG9zaXRpb24o
c2l6ZV90IHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYgZ3JpZExpbmVzKQotewotICAg
IC8vIFRoZSBncmlkIGxpbmUgaW5lcXVhbGl0eSBuZWVkcyB0byBiZSBzdHJpY3QgKHdoaWNoIGRv
ZXNuJ3QgbWF0Y2ggdGhlIGFmdGVyIC8gZW5kIGNhc2UpIGJlY2F1c2UgfHBvc2l0aW9ufCBpcwot
ICAgIC8vIGFscmVhZHkgY29udmVydGVkIHRvIGFuIGluZGV4IGluIG91ciBncmlkIHJlcHJlc2Vu
dGF0aW9uIChpZSBvbmUgd2FzIHJlbW92ZWQgZnJvbSB0aGUgZ3JpZCBsaW5lIHRvIGFjY291bnQg
Zm9yCi0gICAgLy8gdGhlIHNpZGUpLgotICAgIHNpemVfdCBmaXJzdExpbmVCZWZvcmVQb3NpdGlv
bkluZGV4ID0gMDsKLSAgICBjb25zdCBzaXplX3QqIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uID0g
c3RkOjpsb3dlcl9ib3VuZChncmlkTGluZXMuYmVnaW4oKSwgZ3JpZExpbmVzLmVuZCgpLCBwb3Np
dGlvbik7Ci0gICAgaWYgKGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uICE9IGdyaWRMaW5lcy5lbmQo
KSkgewotICAgICAgICBpZiAoKmZpcnN0TGluZUJlZm9yZVBvc2l0aW9uID4gcG9zaXRpb24gJiYg
Zmlyc3RMaW5lQmVmb3JlUG9zaXRpb24gIT0gZ3JpZExpbmVzLmJlZ2luKCkpCi0gICAgICAgICAg
ICAtLWZpcnN0TGluZUJlZm9yZVBvc2l0aW9uOwotCi0gICAgICAgIGZpcnN0TGluZUJlZm9yZVBv
c2l0aW9uSW5kZXggPSBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbiAtIGdyaWRMaW5lcy5iZWdpbigp
OwotICAgIH0KLSAgICByZXR1cm4gZmlyc3RMaW5lQmVmb3JlUG9zaXRpb25JbmRleDsKLX0KLQot
c3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBSZW5kZXJHcmlkOjpyZXNvbHZlUm93U3RhcnRDb2x1
bW5TdGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHNpemVf
dCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24s
IGNvbnN0IFZlY3RvcjxzaXplX3Q+JiBncmlkTGluZXMpIGNvbnN0Ci17Ci0gICAgc2l6ZV90IGdy
aWRMaW5lSW5kZXggPSBzdGQ6Om1heDxpbnQ+KDAsIGZpcnN0TmFtZWRHcmlkTGluZUJlZm9yZVBv
c2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgZ3JpZExpbmVzKSAtIHBvc2l0aW9uLnNw
YW5Qb3NpdGlvbigpICsgMSk7Ci0gICAgc2l6ZV90IHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA9
IGdyaWRMaW5lc1tncmlkTGluZUluZGV4XTsKLSAgICBpZiAocmVzb2x2ZWRHcmlkTGluZVBvc2l0
aW9uID4gcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKQotICAgICAgICByZXNvbHZlZEdyaWRMaW5l
UG9zaXRpb24gPSByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb247Ci0gICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiwgcmVzb2x2ZWRPcHBv
c2l0ZVBvc2l0aW9uKTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBSZW5kZXJHcmlk
OjpyZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9z
aXRlUG9zaXRpb24oc2l6ZV90IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBv
c2l0aW9uJiBwb3NpdGlvbiwgY29uc3QgVmVjdG9yPHNpemVfdD4mIGdyaWRMaW5lcykgY29uc3QK
LXsKLSAgICBzaXplX3QgZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uSW5kZXggPSBncmlk
TGluZXMuc2l6ZSgpIC0gMTsKLSAgICBjb25zdCBzaXplX3QqIGZpcnN0TGluZUFmdGVyT3Bwb3Np
dGVQb3NpdGlvbiA9IHN0ZDo6dXBwZXJfYm91bmQoZ3JpZExpbmVzLmJlZ2luKCksIGdyaWRMaW5l
cy5lbmQoKSwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKLSAgICBpZiAoZmlyc3RMaW5lQWZ0
ZXJPcHBvc2l0ZVBvc2l0aW9uICE9IGdyaWRMaW5lcy5lbmQoKSkKLSAgICAgICAgZmlyc3RMaW5l
QWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uSW5kZXggPSBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRp
b24gLSBncmlkTGluZXMuYmVnaW4oKTsKLQotICAgIHNpemVfdCBncmlkTGluZUluZGV4ID0gc3Rk
OjptaW4oZ3JpZExpbmVzLnNpemUoKSAtIDEsIGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlv
bkluZGV4ICsgcG9zaXRpb24uc3BhblBvc2l0aW9uKCkgLSAxKTsKLSAgICBzaXplX3QgcmVzb2x2
ZWRHcmlkTGluZVBvc2l0aW9uID0gR3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JS
b3dFbmRDb2x1bW5FbmRTaWRlKGdyaWRMaW5lc1tncmlkTGluZUluZGV4XSk7Ci0gICAgaWYgKHJl
c29sdmVkR3JpZExpbmVQb3NpdGlvbiA8IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbikKLSAgICAg
ICAgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uOwot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZlZE9wcG9zaXRlUG9z
aXRpb24sIHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbik7Ci19Ci0KIExheW91dFVuaXQgUmVuZGVy
R3JpZDo6Z3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCwgR3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgVmVjdG9yPEdyaWRUcmFjaz4m
IHRyYWNrcykgY29uc3QKIHsKICAgICBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0ZSA9
IGNhY2hlZEdyaWRDb29yZGluYXRlKGNoaWxkKTsKICAgICBjb25zdCBHcmlkU3BhbiYgc3BhbiA9
IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBjb29yZGluYXRlLmNvbHVtbnMgOiBjb29yZGlu
YXRlLnJvd3M7CiAgICAgTGF5b3V0VW5pdCBncmlkQXJlYUJyZWFkdGggPSAwOwotICAgIGZvciAo
c2l6ZV90IHRyYWNrSW5kZXggPSBzcGFuLmluaXRpYWxQb3NpdGlvbkluZGV4OyB0cmFja0luZGV4
IDw9IHNwYW4uZmluYWxQb3NpdGlvbkluZGV4OyArK3RyYWNrSW5kZXgpCi0gICAgICAgIGdyaWRB
cmVhQnJlYWR0aCArPSB0cmFja3NbdHJhY2tJbmRleF0ubV91c2VkQnJlYWR0aDsKKyAgICBmb3Ig
KEdyaWRSZXNvbHZlZFBvc2l0aW9uIHRyYWNrUG9zaXRpb24gPSBzcGFuLnJlc29sdmVkSW5pdGlh
bFBvc2l0aW9uOyB0cmFja1Bvc2l0aW9uIDw9IHNwYW4ucmVzb2x2ZWRGaW5hbFBvc2l0aW9uOyAr
K3RyYWNrUG9zaXRpb24pCisgICAgICAgIGdyaWRBcmVhQnJlYWR0aCArPSB0cmFja3NbdHJhY2tQ
b3NpdGlvbi50b0ludCgpXS5tX3VzZWRCcmVhZHRoOwogICAgIHJldHVybiBncmlkQXJlYUJyZWFk
dGg7CiB9CiAKQEAgLTExNjcsMTEgKzg2NSwxMSBAQCB2b2lkIFJlbmRlckdyaWQ6OnBvcHVsYXRl
R3JpZFBvc2l0aW9ucyhjb25zdCBHcmlkU2l6aW5nRGF0YSYgc2l6aW5nRGF0YSkKIExheW91dFBv
aW50IFJlbmRlckdyaWQ6OmZpbmRDaGlsZExvZ2ljYWxQb3NpdGlvbihSZW5kZXJCb3gqIGNoaWxk
LCBjb25zdCBHcmlkU2l6aW5nRGF0YSYgc2l6aW5nRGF0YSkKIHsKICAgICBjb25zdCBHcmlkQ29v
cmRpbmF0ZSYgY29vcmRpbmF0ZSA9IGNhY2hlZEdyaWRDb29yZGluYXRlKGNoaWxkKTsKLSAgICBB
U1NFUlRfVU5VU0VEKHNpemluZ0RhdGEsIGNvb3JkaW5hdGUuY29sdW1ucy5pbml0aWFsUG9zaXRp
b25JbmRleCA8IHNpemluZ0RhdGEuY29sdW1uVHJhY2tzLnNpemUoKSk7Ci0gICAgQVNTRVJUX1VO
VVNFRChzaXppbmdEYXRhLCBjb29yZGluYXRlLnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXggPCBz
aXppbmdEYXRhLnJvd1RyYWNrcy5zaXplKCkpOworICAgIEFTU0VSVF9VTlVTRUQoc2l6aW5nRGF0
YSwgY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCkgPCBz
aXppbmdEYXRhLmNvbHVtblRyYWNrcy5zaXplKCkpOworICAgIEFTU0VSVF9VTlVTRUQoc2l6aW5n
RGF0YSwgY29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCkgPCBz
aXppbmdEYXRhLnJvd1RyYWNrcy5zaXplKCkpOwogCiAgICAgLy8gVGhlIGdyaWQgaXRlbXMgc2hv
dWxkIGJlIGluc2lkZSB0aGUgZ3JpZCBjb250YWluZXIncyBib3JkZXIgYm94LCB0aGF0J3Mgd2h5
IHRoZXkgbmVlZCB0byBiZSBzaGlmdGVkLgotICAgIHJldHVybiBMYXlvdXRQb2ludChtX2NvbHVt
blBvc2l0aW9uc1tjb29yZGluYXRlLmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXhdICsgbWFy
Z2luU3RhcnRGb3JDaGlsZCgqY2hpbGQpLCBtX3Jvd1Bvc2l0aW9uc1tjb29yZGluYXRlLnJvd3Mu
aW5pdGlhbFBvc2l0aW9uSW5kZXhdICsgbWFyZ2luQmVmb3JlRm9yQ2hpbGQoKmNoaWxkKSk7Cisg
ICAgcmV0dXJuIExheW91dFBvaW50KG1fY29sdW1uUG9zaXRpb25zW2Nvb3JkaW5hdGUuY29sdW1u
cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpXSArIG1hcmdpblN0YXJ0Rm9yQ2hpbGQo
KmNoaWxkKSwgbV9yb3dQb3NpdGlvbnNbY29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkSW5pdGlhbFBv
c2l0aW9uLnRvSW50KCldICsgbWFyZ2luQmVmb3JlRm9yQ2hpbGQoKmNoaWxkKSk7CiB9CiAKIHZv
aWQgUmVuZGVyR3JpZDo6cGFpbnRDaGlsZHJlbihQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
TGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBQYWludEluZm8mIGZvckNoaWxkLCBib29sIHVzZVBy
aW50UmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4IDgxODRlY2Zi
NzQyNjJhNTRiMThlZDdhNjE4Mzg2MTY1MDQwMmJlNDcuLjNiM2I2ZWI0MTM5NTYxNTgzMmI0ZDE2
M2VhYThhNDA2MjkyMmY2YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApA
QCAtMjksNiArMjksNyBAQAogCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKIAorI2luY2x1
ZGUgIkdyaWRSZXNvbHZlZFBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiT3JkZXJJdGVyYXRvci5oIgog
I2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAKQEAgLTM4LDExICszOSw2IEBAIGNsYXNzIEdyaWRD
b29yZGluYXRlOwogY2xhc3MgR3JpZFNwYW47CiBjbGFzcyBHcmlkVHJhY2s7CiAKLWVudW0gR3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uIHsKLSAgICBGb3JDb2x1bW5zLAotICAgIEZvclJvd3MKLX07
Ci0KIGNsYXNzIFJlbmRlckdyaWQgZmluYWwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGlj
OgogICAgIFJlbmRlckdyaWQoRWxlbWVudCYsIFBhc3NSZWY8UmVuZGVyU3R5bGU+KTsKQEAgLTY2
LDcgKzYyLDYgQEAgcHJpdmF0ZToKIAogICAgIGNsYXNzIEdyaWRJdGVyYXRvcjsKICAgICBjbGFz
cyBHcmlkU2l6aW5nRGF0YTsKLSAgICBlbnVtIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiB7IEZv
ckNvbHVtbnMsIEZvclJvd3MgfTsKICAgICB2b2lkIGNvbXB1dGVVc2VkQnJlYWR0aE9mR3JpZFRy
YWNrcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIEdyaWRTaXppbmdEYXRhJik7CiAgICAgdm9p
ZCBjb21wdXRlVXNlZEJyZWFkdGhPZkdyaWRUcmFja3MoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9u
LCBHcmlkU2l6aW5nRGF0YSYsIExheW91dFVuaXQmIGF2YWlsYWJsZUxvZ2ljYWxTcGFjZSk7CiAg
ICAgYm9vbCBncmlkRWxlbWVudElzU2hyaW5rVG9GaXQoKTsKQEAgLTc2LDcgKzcxLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHJlc29sdmVDb250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9ucyhH
cmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIEdyaWRTaXppbmdEYXRhJik7CiAKICAgICB2b2lkIGdy
b3dHcmlkKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbik7Ci0gICAgdm9pZCBpbnNlcnRJdGVtSW50
b0dyaWQoUmVuZGVyQm94Kiwgc2l6ZV90IHJvd1RyYWNrLCBzaXplX3QgY29sdW1uVHJhY2spOwor
ICAgIHZvaWQgaW5zZXJ0SXRlbUludG9HcmlkKFJlbmRlckJveCosIGNvbnN0IEdyaWRSZXNvbHZl
ZFBvc2l0aW9uJiByb3dUcmFjaywgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIGNvbHVtblRy
YWNrKTsKICAgICB2b2lkIGluc2VydEl0ZW1JbnRvR3JpZChSZW5kZXJCb3gqLCBjb25zdCBHcmlk
Q29vcmRpbmF0ZSYpOwogICAgIHZvaWQgcGxhY2VJdGVtc09uR3JpZCgpOwogICAgIHZvaWQgcG9w
dWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKCk7CkBAIC0xMDAsOSArOTUsNiBAQCBw
cml2YXRlOgogICAgIGRvdWJsZSBjb21wdXRlTm9ybWFsaXplZEZyYWN0aW9uQnJlYWR0aChWZWN0
b3I8R3JpZFRyYWNrPiYsIGNvbnN0IEdyaWRTcGFuJiB0cmFja3NTcGFuLCBHcmlkVHJhY2tTaXpp
bmdEaXJlY3Rpb24sIExheW91dFVuaXQgYXZhaWxhYmxlTG9naWNhbFNwYWNlKSBjb25zdDsKIAog
ICAgIGNvbnN0IEdyaWRUcmFja1NpemUmIGdyaWRUcmFja1NpemUoR3JpZFRyYWNrU2l6aW5nRGly
ZWN0aW9uLCBzaXplX3QpIGNvbnN0OwotICAgIHNpemVfdCBleHBsaWNpdEdyaWRDb2x1bW5Db3Vu
dCgpIGNvbnN0OwotICAgIHNpemVfdCBleHBsaWNpdEdyaWRSb3dDb3VudCgpIGNvbnN0OwotICAg
IHNpemVfdCBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShHcmlkUG9zaXRpb25TaWRlKSBjb25zdDsK
IAogICAgIExheW91dFVuaXQgbG9naWNhbENvbnRlbnRIZWlnaHRGb3JDaGlsZChSZW5kZXJCb3gq
LCBWZWN0b3I8R3JpZFRyYWNrPiYpOwogICAgIExheW91dFVuaXQgbWluQ29udGVudEZvckNoaWxk
KFJlbmRlckJveCosIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgVmVjdG9yPEdyaWRUcmFjaz4m
IGNvbHVtblRyYWNrcyk7CkBAIC0xMTAsMTcgKzEwMiw2IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0
UG9pbnQgZmluZENoaWxkTG9naWNhbFBvc2l0aW9uKFJlbmRlckJveCosIGNvbnN0IEdyaWRTaXpp
bmdEYXRhJik7CiAgICAgR3JpZENvb3JkaW5hdGUgY2FjaGVkR3JpZENvb3JkaW5hdGUoY29uc3Qg
UmVuZGVyQm94KikgY29uc3Q7CiAKLSAgICBHcmlkU3BhbiByZXNvbHZlR3JpZFBvc2l0aW9uc0Zy
b21BdXRvUGxhY2VtZW50UG9zaXRpb24oY29uc3QgUmVuZGVyQm94KiwgR3JpZFRyYWNrU2l6aW5n
RGlyZWN0aW9uLCBzaXplX3QpIGNvbnN0OwotICAgIHZvaWQgYWRqdXN0TmFtZWRHcmlkSXRlbVBv
c2l0aW9uKEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNpZGUpIGNvbnN0OwotICAgIHZvaWQg
YWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShHcmlkUG9zaXRpb24mIGluaXRpYWxQb3NpdGlv
biwgR3JpZFBvc2l0aW9uJiBmaW5hbFBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIGluaXRpYWxQ
b3NpdGlvblNpZGUsIEdyaWRQb3NpdGlvblNpZGUgZmluYWxQb3NpdGlvblNpZGUpIGNvbnN0Owot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5
bGUoY29uc3QgUmVuZGVyQm94KiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKLSAg
ICBzaXplX3QgcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZShjb25zdCBHcmlk
UG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKSBjb25zdDsKLSAgICBzaXplX3QgcmVzb2x2ZUdy
aWRQb3NpdGlvbkZyb21TdHlsZShjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRl
KSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVHcmlkUG9zaXRp
b25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9u
LCBjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKSBjb25zdDsKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0
T3Bwb3NpdGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBH
cmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8R3JpZFNwYW4+IHJlc29sdmVSb3dTdGFydENvbHVtblN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0
aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oc2l6ZV90IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlv
biwgY29uc3QgR3JpZFBvc2l0aW9uJiwgY29uc3QgVmVjdG9yPHNpemVfdD4mKSBjb25zdDsKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVSb3dFbmRDb2x1bW5FbmROYW1lZEdy
aWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBv
c2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYp
IGNvbnN0OwotCiAgICAgTGF5b3V0VW5pdCBncmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBS
ZW5kZXJCb3gqIGNoaWxkLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIGNvbnN0IFZlY3RvcjxH
cmlkVHJhY2s+JikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDaGlsZHJlbihQYWlu
dEluZm8mIGZvclNlbGYsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgUGFpbnRJbmZv
JiBmb3JDaGlsZCwgYm9vbCB1c2VQcmludFJlY3QpIG92ZXJyaWRlIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRDb29yZGluYXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZENvb3JkaW5hdGUuaAppbmRleCA0NGQyMDBi
Y2RkNWExZmE4ZWFiMzJmMjk2Yjg3OGQ5M2IwNGNmMjcyLi45MDhmMzY3MmI2OTUzNDY2NTVhZDlm
OWRkYzJmM2M5ZjI4NGJlNjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvR3JpZENvb3JkaW5hdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvR3JpZENvb3JkaW5hdGUuaApAQCAtMzQsMzAgKzM0LDMxIEBACiAKICNpZiBFTkFCTEUoQ1NT
X0dSSURfTEFZT1VUKQogCisjaW5jbHVkZSAiR3JpZFJlc29sdmVkUG9zaXRpb24uaCIKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEEgc3BhbiBpbiBhIHNpbmdsZSBkaXJlY3Rpb24gKGVp
dGhlciByb3dzIG9yIGNvbHVtbnMpLiBOb3RlIHRoYXQgfGluaXRpYWxQb3NpdGlvbkluZGV4fAot
Ly8gYW5kIHxmaW5hbFBvc2l0aW9uSW5kZXh8IGFyZSBncmlkIGFyZWFzJyBpbmRleGVzLCBOT1Qg
Z3JpZCBsaW5lcycuIEl0ZXJhdGluZyBvdmVyIHRoZQotLy8gc3BhbiBzaG91bGQgaW5jbHVkZSBi
b3RoIHxpbml0aWFsUG9zaXRpb25JbmRleHwgYW5kIHxmaW5hbFBvc2l0aW9uSW5kZXh8IHRvIGJl
IGNvcnJlY3QuCisvLyBBIHNwYW4gaW4gYSBzaW5nbGUgZGlyZWN0aW9uIChlaXRoZXIgcm93cyBv
ciBjb2x1bW5zKS4gTm90ZSB0aGF0IHxyZXNvbHZlZEluaXRpYWxQb3NpdGlvbnwKKy8vIGFuZCB8
cmVzb2x2ZWRGaW5hbFBvc2l0aW9ufCBhcmUgZ3JpZCBhcmVhcycgaW5kZXhlcywgTk9UIGdyaWQg
bGluZXMnLiBJdGVyYXRpbmcgb3ZlciB0aGUKKy8vIHNwYW4gc2hvdWxkIGluY2x1ZGUgYm90aCB8
cmVzb2x2ZWRJbml0aWFsUG9zaXRpb258IGFuZCB8cmVzb2x2ZWRGaW5hbFBvc2l0aW9ufCB0byBi
ZSBjb3JyZWN0LgogY2xhc3MgR3JpZFNwYW4gewogcHVibGljOgotICAgIEdyaWRTcGFuKHNpemVf
dCBpbml0aWFsUG9zaXRpb24sIHNpemVfdCBmaW5hbFBvc2l0aW9uKQotICAgICAgICA6IGluaXRp
YWxQb3NpdGlvbkluZGV4KGluaXRpYWxQb3NpdGlvbikKLSAgICAgICAgLCBmaW5hbFBvc2l0aW9u
SW5kZXgoZmluYWxQb3NpdGlvbikKKyAgICBHcmlkU3Bhbihjb25zdCBHcmlkUmVzb2x2ZWRQb3Np
dGlvbiYgcmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9u
JiByZXNvbHZlZEZpbmFsUG9zaXRpb24pCisgICAgICAgIDogcmVzb2x2ZWRJbml0aWFsUG9zaXRp
b24ocmVzb2x2ZWRJbml0aWFsUG9zaXRpb24pCisgICAgICAgICwgcmVzb2x2ZWRGaW5hbFBvc2l0
aW9uKHJlc29sdmVkRmluYWxQb3NpdGlvbikKICAgICB7Ci0gICAgICAgIEFTU0VSVChpbml0aWFs
UG9zaXRpb25JbmRleCA8PSBmaW5hbFBvc2l0aW9uSW5kZXgpOworICAgICAgICBBU1NFUlQocmVz
b2x2ZWRJbml0aWFsUG9zaXRpb24gPD0gcmVzb2x2ZWRGaW5hbFBvc2l0aW9uKTsKICAgICB9CiAK
ICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgR3JpZFNwYW4mIG8pIGNvbnN0CiAgICAgewotICAg
ICAgICByZXR1cm4gaW5pdGlhbFBvc2l0aW9uSW5kZXggPT0gby5pbml0aWFsUG9zaXRpb25JbmRl
eCAmJiBmaW5hbFBvc2l0aW9uSW5kZXggPT0gby5maW5hbFBvc2l0aW9uSW5kZXg7CisgICAgICAg
IHJldHVybiByZXNvbHZlZEluaXRpYWxQb3NpdGlvbiA9PSBvLnJlc29sdmVkSW5pdGlhbFBvc2l0
aW9uICYmIHJlc29sdmVkRmluYWxQb3NpdGlvbiA9PSBvLnJlc29sdmVkRmluYWxQb3NpdGlvbjsK
ICAgICB9CiAKLSAgICBzaXplX3QgaW5pdGlhbFBvc2l0aW9uSW5kZXg7Ci0gICAgc2l6ZV90IGZp
bmFsUG9zaXRpb25JbmRleDsKKyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlvbiByZXNvbHZlZEluaXRp
YWxQb3NpdGlvbjsKKyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlvbiByZXNvbHZlZEZpbmFsUG9zaXRp
b247CiB9OwogCiAvLyBUaGlzIHJlcHJlc2VudHMgYSBncmlkIGFyZWEgdGhhdCBzcGFucyBpbiBi
b3RoIHJvd3MnIGFuZCBjb2x1bW5zJyBkaXJlY3Rpb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uLmgKaW5kZXggNjhmMmYzOTFjYzVkYTA3M2RkMTY3MDk4
YzA4YzVhOWY4NmE0OGZkNC4uNWEwYWY5ZWU0NzYwYjRjYzQ5NDMyMTRjYWRjYmZkOTU2YTVlYmNm
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb24uaApA
QCAtNDUsMTMgKzQ1LDYgQEAgZW51bSBHcmlkUG9zaXRpb25UeXBlIHsKICAgICBOYW1lZEdyaWRB
cmVhUG9zaXRpb24gLy8gPGlkZW50PgogfTsKIAotZW51bSBHcmlkUG9zaXRpb25TaWRlIHsKLSAg
ICBDb2x1bW5TdGFydFNpZGUsCi0gICAgQ29sdW1uRW5kU2lkZSwKLSAgICBSb3dTdGFydFNpZGUs
Ci0gICAgUm93RW5kU2lkZQotfTsKLQogY2xhc3MgR3JpZFBvc2l0aW9uIHsKIHB1YmxpYzoKICAg
ICBHcmlkUG9zaXRpb24oKQpAQCAtNjAsMjAgKzUzLDYgQEAgcHVibGljOgogICAgIHsKICAgICB9
CiAKLSAgICBzdGF0aWMgaW5saW5lIHNpemVfdCBhZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRD
b2x1bW5FbmRTaWRlKHNpemVfdCByZXNvbHZlZFBvc2l0aW9uKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIHJlc29sdmVkUG9zaXRpb24gPyByZXNvbHZlZFBvc2l0aW9uIC0gMSA6IDA7Ci0gICAgfQot
Ci0gICAgc3RhdGljIHNpemVfdCBhZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKHNpemVfdCByZXNv
bHZlZFBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCi0gICAgewotICAgICAgICAvLyBB
biBpdGVtIGZpbmlzaGluZyBvbiB0aGUgTi10aCBsaW5lIGJlbG9uZ3MgdG8gdGhlIE4tMS10aCBj
ZWxsLgotICAgICAgICBpZiAoc2lkZSA9PSBDb2x1bW5FbmRTaWRlIHx8IHNpZGUgPT0gUm93RW5k
U2lkZSkKLSAgICAgICAgICAgIHJldHVybiBhZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1
bW5FbmRTaWRlKHJlc29sdmVkUG9zaXRpb24pOwotCi0gICAgICAgIHJldHVybiByZXNvbHZlZFBv
c2l0aW9uOwotICAgIH0KLQogICAgIGJvb2wgaXNQb3NpdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGlu
dGVnZXJQb3NpdGlvbigpID4gMDsgfQogCiAgICAgR3JpZFBvc2l0aW9uVHlwZSB0eXBlKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDI5OGU0YzE1
ODhlMTM3NDZhNzNhMTUzOTUyMWE0YmJmOTkzZDY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcApAQCAtMCww
ICsxLDM0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oIgorCisjaWYgRU5BQkxF
KENTU19HUklEX0xBWU9VVCkKKworI2luY2x1ZGUgIkdyaWRDb29yZGluYXRlLmgiCisjaW5jbHVk
ZSAiUmVuZGVyQm94LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc2l6ZV90IEdyaWRSZXNv
bHZlZFBvc2l0aW9uOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudChjb25zdCBSZW5kZXJTdHlsZSYg
Z3JpZENvbnRhaW5lclN0eWxlKQoreworICAgIHJldHVybiBncmlkQ29udGFpbmVyU3R5bGUuZ3Jp
ZENvbHVtbnMoKS5zaXplKCk7Cit9CisKK3NpemVfdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6ZXhw
bGljaXRHcmlkUm93Q291bnQoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSkK
K3sKKyAgICByZXR1cm4gZ3JpZENvbnRhaW5lclN0eWxlLmdyaWRSb3dzKCkuc2l6ZSgpOworfQor
CitzdGF0aWMgaW5saW5lIGJvb2wgaXNDb2x1bW5TaWRlKEdyaWRQb3NpdGlvblNpZGUgc2lkZSkK
K3sKKyAgICByZXR1cm4gc2lkZSA9PSBDb2x1bW5TdGFydFNpZGUgfHwgc2lkZSA9PSBDb2x1bW5F
bmRTaWRlOworfQorCitzaXplX3QgR3JpZFJlc29sdmVkUG9zaXRpb246OmV4cGxpY2l0R3JpZFNp
emVGb3JTaWRlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIEdyaWRQb3Np
dGlvblNpZGUgc2lkZSkKK3sKKyAgICByZXR1cm4gaXNDb2x1bW5TaWRlKHNpZGUpID8gZXhwbGlj
aXRHcmlkQ29sdW1uQ291bnQoZ3JpZENvbnRhaW5lclN0eWxlKSA6IGV4cGxpY2l0R3JpZFJvd0Nv
dW50KGdyaWRDb250YWluZXJTdHlsZSk7Cit9CisKK0dyaWRTcGFuIEdyaWRSZXNvbHZlZFBvc2l0
aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24oY29uc3Qg
UmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBjb25zdCBHcmlkUmVzb2x2ZWRQ
b3NpdGlvbiYgaW5pdGlhbFBvc2l0aW9uKQoreworICAgIC8vIEZJWE1FOiBXZSBkb24ndCBzdXBw
b3J0IHNwYW5uaW5nIHdpdGggYXV0byBwb3NpdGlvbnMgeWV0LiBPbmNlIHdlIGRvLCB0aGlzIGlz
IHdyb25nLiBBbHNvIHdlIHNob3VsZCBtYWtlCisgICAgLy8gc3VyZSB0aGUgZ3JpZCBjYW4gYWNj
b21vZGF0ZSB0aGUgbmV3IGl0ZW0gYXMgd2Ugb25seSBncm93IDEgcG9zaXRpb24gaW4gYSBnaXZl
biBkaXJlY3Rpb24uCisgICAgcmV0dXJuIEdyaWRTcGFuKGluaXRpYWxQb3NpdGlvbiwgaW5pdGlh
bFBvc2l0aW9uKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGdyaWRMaW5lRGVmaW5lZEJlZm9y
ZUdyaWRBcmVhKGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBuYW1lZEdyaWRMaW5lRmlyc3RE
ZWZpbml0aW9uLCBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgZ3JpZEFyZWFDb29yZGluYXRlcywgR3Jp
ZFBvc2l0aW9uU2lkZSBzaWRlKQoreworICAgIHN3aXRjaCAoc2lkZSkgeworICAgIGNhc2UgQ29s
dW1uU3RhcnRTaWRlOgorICAgICAgICByZXR1cm4gbmFtZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlv
biA8IGdyaWRBcmVhQ29vcmRpbmF0ZXMuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsK
KyAgICBjYXNlIENvbHVtbkVuZFNpZGU6CisgICAgICAgIHJldHVybiBuYW1lZEdyaWRMaW5lRmly
c3REZWZpbml0aW9uIDwgZ3JpZEFyZWFDb29yZGluYXRlcy5jb2x1bW5zLnJlc29sdmVkRmluYWxQ
b3NpdGlvbjsKKyAgICBjYXNlIFJvd1N0YXJ0U2lkZToKKyAgICAgICAgcmV0dXJuIG5hbWVkR3Jp
ZExpbmVGaXJzdERlZmluaXRpb24gPCBncmlkQXJlYUNvb3JkaW5hdGVzLnJvd3MucmVzb2x2ZWRJ
bml0aWFsUG9zaXRpb247CisgICAgY2FzZSBSb3dFbmRTaWRlOgorICAgICAgICByZXR1cm4gbmFt
ZWRHcmlkTGluZUZpcnN0RGVmaW5pdGlvbiA8IGdyaWRBcmVhQ29vcmRpbmF0ZXMucm93cy5yZXNv
bHZlZEZpbmFsUG9zaXRpb247CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIHZvaWQgc2V0TmFtZWRMaW5lUG9zaXRpb25JZkRl
ZmluZWRCZWZvcmVBcmVhKEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIGNvbnN0IE5hbWVkR3JpZExp
bmVzTWFwJiBuYW1lZExpbmVzTWFwLCBjb25zdCBTdHJpbmcmIGxpbmVOYW1lLCBjb25zdCBHcmlk
Q29vcmRpbmF0ZSYgZ3JpZEFyZWFDb29yZGluYXRlLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7
CisgICAgYXV0byBsaW5lc0l0ZXJhdG9yID0gbmFtZWRMaW5lc01hcC5maW5kKGxpbmVOYW1lKTsK
KyAgICBpZiAobGluZXNJdGVyYXRvciA9PSBuYW1lZExpbmVzTWFwLmVuZCgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBuYW1lZEdyaWRMaW5lRmlyc3REZWZp
bml0aW9uID0gR3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUo
bGluZXNJdGVyYXRvci0+dmFsdWVbMF0sIHNpZGUpOworICAgIGlmIChncmlkTGluZURlZmluZWRC
ZWZvcmVHcmlkQXJlYShuYW1lZEdyaWRMaW5lRmlyc3REZWZpbml0aW9uLCBncmlkQXJlYUNvb3Jk
aW5hdGUsIHNpZGUpKQorICAgICAgICBwb3NpdGlvbi5zZXRFeHBsaWNpdFBvc2l0aW9uKDEsIGxp
bmVOYW1lKTsKK30KKwordm9pZCBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0TmFtZWRHcmlk
SXRlbVBvc2l0aW9uKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIEdyaWRQ
b3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sKKyAgICAvLyBUaGUg
U3R5bGVCdWlsZGVyIGFsd2F5cyB0cmVhdHMgPGN1c3RvbS1pZGVudD4gYXMgYSBuYW1lZCBncmlk
IGFyZWEuIFdlIG11c3QgZGVjaWRlIGhlcmUgaWYgdGhleSBhcmUgZ29pbmcgdG8gYmUKKyAgICAv
LyByZXNvbHZlZCB0byBlaXRoZXIgYSBncmlkIGFyZWEgb3IgYSBncmlkIGxpbmUuCisgICAgQVNT
RVJUKHBvc2l0aW9uLmlzTmFtZWRHcmlkQXJlYSgpKTsKKyAgICBjb25zdCBOYW1lZEdyaWRBcmVh
TWFwJiBncmlkQXJlYU1hcCA9IGdyaWRDb250YWluZXJTdHlsZS5uYW1lZEdyaWRBcmVhKCk7Cisg
ICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIG5hbWVkTGluZXNNYXAgPSBpc0NvbHVtblNpZGUo
c2lkZSkgPyBncmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6IGdyaWRD
b250YWluZXJTdHlsZS5uYW1lZEdyaWRSb3dMaW5lcygpOworCisgICAgU3RyaW5nIG5hbWVkR3Jp
ZEFyZWFPckdyaWRMaW5lID0gcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpOworICAgIGJvb2wgaXNT
dGFydFNpZGUgPSBzaWRlID09IENvbHVtblN0YXJ0U2lkZSB8fCBzaWRlID09IFJvd1N0YXJ0U2lk
ZTsKKworICAgIGF1dG8gYXJlYUl0ZXJhdG9yID0gZ3JpZEFyZWFNYXAuZmluZChuYW1lZEdyaWRB
cmVhT3JHcmlkTGluZSk7CisgICAgaWYgKGFyZWFJdGVyYXRvciAhPSBncmlkQXJlYU1hcC5lbmQo
KSkgeworICAgICAgICBTdHJpbmcgZ3JpZExpbmVOYW1lID0gbmFtZWRHcmlkQXJlYU9yR3JpZExp
bmUgKyAoaXNTdGFydFNpZGUgPyAiLXN0YXJ0IiA6ICItZW5kIik7CisgICAgICAgIHNldE5hbWVk
TGluZVBvc2l0aW9uSWZEZWZpbmVkQmVmb3JlQXJlYShwb3NpdGlvbiwgbmFtZWRMaW5lc01hcCwg
Z3JpZExpbmVOYW1lLCBhcmVhSXRlcmF0b3ItPnZhbHVlLCBzaWRlKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGJvb2wgaGFzU3RhcnRTdWZmaXggPSBuYW1lZEdyaWRBcmVhT3JHcmlk
TGluZS5lbmRzV2l0aCgiLXN0YXJ0Iik7CisgICAgYm9vbCBoYXNFbmRTdWZmaXggPSBuYW1lZEdy
aWRBcmVhT3JHcmlkTGluZS5lbmRzV2l0aCgiLWVuZCIpOworICAgIGlmICgoaGFzU3RhcnRTdWZm
aXggJiYgaXNTdGFydFNpZGUpIHx8IChoYXNFbmRTdWZmaXggJiYgIWlzU3RhcnRTaWRlKSkgewor
ICAgICAgICBzaXplX3Qgc3VmZml4TGVuZ3RoID0gaGFzU3RhcnRTdWZmaXggPyBzdHJsZW4oIi1z
dGFydCIpIDogc3RybGVuKCItZW5kIik7CisgICAgICAgIFN0cmluZyBncmlkQXJlYU5hbWUgPSBu
YW1lZEdyaWRBcmVhT3JHcmlkTGluZS5zdWJzdHJpbmcoMCwgbmFtZWRHcmlkQXJlYU9yR3JpZExp
bmUubGVuZ3RoKCkgLSBzdWZmaXhMZW5ndGgpOworCisgICAgICAgIGF1dG8gYXJlYUl0ZXJhdG9y
ID0gZ3JpZEFyZWFNYXAuZmluZChncmlkQXJlYU5hbWUpOworICAgICAgICBpZiAoYXJlYUl0ZXJh
dG9yICE9IGdyaWRBcmVhTWFwLmVuZCgpKSB7CisgICAgICAgICAgICBwb3NpdGlvbi5zZXROYW1l
ZEdyaWRBcmVhKGdyaWRBcmVhTmFtZSk7CisgICAgICAgICAgICBzZXROYW1lZExpbmVQb3NpdGlv
bklmRGVmaW5lZEJlZm9yZUFyZWEocG9zaXRpb24sIG5hbWVkTGluZXNNYXAsIG5hbWVkR3JpZEFy
ZWFPckdyaWRMaW5lLCBhcmVhSXRlcmF0b3ItPnZhbHVlLCBzaWRlKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChuYW1lZExpbmVzTWFwLmNvbnRhaW5z
KG5hbWVkR3JpZEFyZWFPckdyaWRMaW5lKSkKKyAgICAgICAgcG9zaXRpb24uc2V0RXhwbGljaXRQ
b3NpdGlvbigxLCBuYW1lZEdyaWRBcmVhT3JHcmlkTGluZSk7CisgICAgZWxzZQorICAgICAgICBw
b3NpdGlvbi5zZXRBdXRvUG9zaXRpb24oKTsKK30KKwordm9pZCBHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6YWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENv
bnRhaW5lclN0eWxlLCBHcmlkUG9zaXRpb24mIGluaXRpYWxQb3NpdGlvbiwgR3JpZFBvc2l0aW9u
JiBmaW5hbFBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIGluaXRpYWxQb3NpdGlvblNpZGUsIEdy
aWRQb3NpdGlvblNpZGUgZmluYWxQb3NpdGlvblNpZGUpCit7CisgICAgQVNTRVJUKGlzQ29sdW1u
U2lkZShpbml0aWFsUG9zaXRpb25TaWRlKSA9PSBpc0NvbHVtblNpZGUoZmluYWxQb3NpdGlvblNp
ZGUpKTsKKworICAgIC8vIFdlIG11c3QgaGFuZGxlIHRoZSBwbGFjZW1lbnQgZXJyb3IgaGFuZGxp
bmcgY29kZSBoZXJlIGluc3RlYWQgb2YgaW4gdGhlIFN0eWxlQWRqdXN0ZXIgYmVjYXVzZSB3ZSBk
b24ndCB3YW50IHRvCisgICAgLy8gb3ZlcndyaXRlIHRoZSBzcGVjaWZpZWQgdmFsdWVzLgorICAg
IGlmIChpbml0aWFsUG9zaXRpb24uaXNTcGFuKCkgJiYgZmluYWxQb3NpdGlvbi5pc1NwYW4oKSkK
KyAgICAgICAgZmluYWxQb3NpdGlvbi5zZXRBdXRvUG9zaXRpb24oKTsKKworICAgIGlmIChpbml0
aWFsUG9zaXRpb24uaXNOYW1lZEdyaWRBcmVhKCkpCisgICAgICAgIGFkanVzdE5hbWVkR3JpZEl0
ZW1Qb3NpdGlvbihncmlkQ29udGFpbmVyU3R5bGUsIGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFBv
c2l0aW9uU2lkZSk7CisKKyAgICBpZiAoZmluYWxQb3NpdGlvbi5pc05hbWVkR3JpZEFyZWEoKSkK
KyAgICAgICAgYWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uKGdyaWRDb250YWluZXJTdHlsZSwg
ZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvblNpZGUpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8
R3JpZFNwYW4+IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21T
dHlsZShjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBjb25zdCBSZW5kZXJC
b3gmIGdyaWRJdGVtLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAg
IEdyaWRQb3NpdGlvbiBpbml0aWFsUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMp
ID8gZ3JpZEl0ZW0uc3R5bGUoKS5ncmlkSXRlbUNvbHVtblN0YXJ0KCkgOiBncmlkSXRlbS5zdHls
ZSgpLmdyaWRJdGVtUm93U3RhcnQoKTsKKyAgICBjb25zdCBHcmlkUG9zaXRpb25TaWRlIGluaXRp
YWxQb3NpdGlvblNpZGUgPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gQ29sdW1uU3RhcnRT
aWRlIDogUm93U3RhcnRTaWRlOworICAgIEdyaWRQb3NpdGlvbiBmaW5hbFBvc2l0aW9uID0gKGRp
cmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGdyaWRJdGVtLnN0eWxlKCkuZ3JpZEl0ZW1Db2x1bW5F
bmQoKSA6IGdyaWRJdGVtLnN0eWxlKCkuZ3JpZEl0ZW1Sb3dFbmQoKTsKKyAgICBjb25zdCBHcmlk
UG9zaXRpb25TaWRlIGZpbmFsUG9zaXRpb25TaWRlID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5z
KSA/IENvbHVtbkVuZFNpZGUgOiBSb3dFbmRTaWRlOworCisgICAgYWRqdXN0R3JpZFBvc2l0aW9u
c0Zyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIGluaXRpYWxQb3NpdGlvbiwgZmluYWxQb3Np
dGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSwgZmluYWxQb3NpdGlvblNpZGUpOworCisgICAgaWYg
KGluaXRpYWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24o
KSAmJiBmaW5hbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlv
bigpKSB7CisgICAgICAgIGlmIChncmlkQ29udGFpbmVyU3R5bGUuZ3JpZEF1dG9GbG93KCkgPT0g
QXV0b0Zsb3dOb25lKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNw
YW4+KDAsIDApOworCisgICAgICAgIC8vIFdlIGNhbid0IGdldCBvdXIgZ3JpZCBwb3NpdGlvbnMg
d2l0aG91dCBydW5uaW5nIHRoZSBhdXRvIHBsYWNlbWVudCBhbGdvcml0aG0uCisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChpbml0aWFsUG9zaXRpb24uc2hvdWxkQmVS
ZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKCkpIHsKKyAgICAgICAgLy8gSW5mZXIgdGhl
IHBvc2l0aW9uIGZyb20gdGhlIGZpbmFsIHBvc2l0aW9uICgnYXV0byAvIDEnIG9yICdzcGFuIDIg
LyAzJyBjYXNlKS4KKyAgICAgICAgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24gZmluYWxSZXNv
bHZlZFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVy
U3R5bGUsIGZpbmFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb25TaWRlKTsKKyAgICAgICAgcmV0dXJu
IHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihncmlkQ29udGFpbmVy
U3R5bGUsIGZpbmFsUmVzb2x2ZWRQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9z
aXRpb25TaWRlKTsKKyAgICB9CisKKyAgICBpZiAoZmluYWxQb3NpdGlvbi5zaG91bGRCZVJlc29s
dmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKSkgeworICAgICAgICAvLyBJbmZlciBvdXIgcG9z
aXRpb24gZnJvbSB0aGUgaW5pdGlhbCBwb3NpdGlvbiAoJzEgLyBhdXRvJyBvciAnMyAvIHNwYW4g
MicgY2FzZSkuCisgICAgICAgIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uIGluaXRpYWxSZXNv
bHZlZFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVy
U3R5bGUsIGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSk7CisgICAgICAgIHJl
dHVybiByZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oZ3JpZENvbnRh
aW5lclN0eWxlLCBpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiwgZmluYWxQb3NpdGlvbiwgZmluYWxQ
b3NpdGlvblNpZGUpOworICAgIH0KKworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVk
SW5pdGlhbFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFp
bmVyU3R5bGUsIGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSk7CisgICAgR3Jp
ZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZWRGaW5hbFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3Np
dGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIGZpbmFsUG9zaXRpb24sIGZpbmFsUG9z
aXRpb25TaWRlKTsKKworICAgIC8vIElmICdncmlkLXJvdy1lbmQnIHNwZWNpZmllcyBhIGxpbmUg
YXQgb3IgYmVmb3JlIHRoYXQgc3BlY2lmaWVkIGJ5ICdncmlkLXJvdy1zdGFydCcsIGl0IGNvbXB1
dGVzIHRvICdzcGFuIDEnLgorICAgIGlmIChyZXNvbHZlZEZpbmFsUG9zaXRpb24gPCByZXNvbHZl
ZEluaXRpYWxQb3NpdGlvbikKKyAgICAgICAgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uID0gcmVzb2x2
ZWRJbml0aWFsUG9zaXRpb247CisKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bh
bj4ocmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIHJlc29sdmVkRmluYWxQb3NpdGlvbik7Cit9CisK
K0dyaWRSZXNvbHZlZFBvc2l0aW9uIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlTmFtZWRH
cmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVy
U3R5bGUsIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lk
ZSkKK3sKKyAgICBBU1NFUlQoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSk7CisK
KyAgICBjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYgZ3JpZExpbmVzTmFtZXMgPSBpc0NvbHVtblNp
ZGUoc2lkZSkgPyBncmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6IGdy
aWRDb250YWluZXJTdHlsZS5uYW1lZEdyaWRSb3dMaW5lcygpOworICAgIE5hbWVkR3JpZExpbmVz
TWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGdyaWRMaW5lc05hbWVzLmZpbmQocG9zaXRpb24ubmFt
ZWRHcmlkTGluZSgpKTsKKyAgICBpZiAoaXQgPT0gZ3JpZExpbmVzTmFtZXMuZW5kKCkpIHsKKyAg
ICAgICAgaWYgKHBvc2l0aW9uLmlzUG9zaXRpdmUoKSkKKyAgICAgICAgICAgIHJldHVybiAwOwor
ICAgICAgICBjb25zdCBzaXplX3QgbGFzdExpbmUgPSBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShn
cmlkQ29udGFpbmVyU3R5bGUsIHNpZGUpOworICAgICAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9z
aXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUobGFzdExpbmUsIHNpZGUpOworICAgIH0K
KworICAgIHNpemVfdCBuYW1lZEdyaWRMaW5lSW5kZXg7CisgICAgaWYgKHBvc2l0aW9uLmlzUG9z
aXRpdmUoKSkKKyAgICAgICAgbmFtZWRHcmlkTGluZUluZGV4ID0gc3RkOjptaW48c2l6ZV90Pihw
b3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSwgaXQtPnZhbHVlLnNpemUoKSkgLSAxOworICAgIGVs
c2UKKyAgICAgICAgbmFtZWRHcmlkTGluZUluZGV4ID0gc3RkOjptYXg8aW50PihpdC0+dmFsdWUu
c2l6ZSgpIC0gYWJzKHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpKSwgMCk7CisgICAgcmV0dXJu
IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGl0LT52YWx1
ZVtuYW1lZEdyaWRMaW5lSW5kZXhdLCBzaWRlKTsKK30KKworR3JpZFJlc29sdmVkUG9zaXRpb24g
R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29uc3Qg
UmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3Np
dGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQoreworICAgIHN3aXRjaCAocG9zaXRpb24udHlw
ZSgpKSB7CisgICAgY2FzZSBFeHBsaWNpdFBvc2l0aW9uOiB7CisgICAgICAgIEFTU0VSVChwb3Np
dGlvbi5pbnRlZ2VyUG9zaXRpb24oKSk7CisKKyAgICAgICAgaWYgKCFwb3NpdGlvbi5uYW1lZEdy
aWRMaW5lKCkuaXNOdWxsKCkpCisgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZU5hbWVkR3JpZExp
bmVQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIHBvc2l0aW9uLCBzaWRlKTsK
KworICAgICAgICAvLyBIYW5kbGUgPGludGVnZXI+IGV4cGxpY2l0IHBvc2l0aW9uLgorICAgICAg
ICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgpKQorICAgICAgICAgICAgcmV0dXJuIEdyaWRSZXNv
bHZlZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKHBvc2l0aW9uLmludGVnZXJQ
b3NpdGlvbigpIC0gMSwgc2lkZSk7CisKKyAgICAgICAgc2l6ZV90IHJlc29sdmVkUG9zaXRpb24g
PSBhYnMocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpIC0gMTsKKyAgICAgICAgY29uc3Qgc2l6
ZV90IGVuZE9mVHJhY2sgPSBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShncmlkQ29udGFpbmVyU3R5
bGUsIHNpZGUpOworCisgICAgICAgIC8vIFBlciBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVz
L1B1YmxpYy93d3ctc3R5bGUvMjAxM01hci8wNTg5Lmh0bWwsIHdlIGNsYW1wIG5lZ2F0aXZlIHZh
bHVlIHRvIHRoZSBmaXJzdCBsaW5lLgorICAgICAgICBpZiAoZW5kT2ZUcmFjayA8IHJlc29sdmVk
UG9zaXRpb24pCisgICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICByZXR1cm4gR3JpZFJl
c29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoZW5kT2ZUcmFjayAtIHJl
c29sdmVkUG9zaXRpb24sIHNpZGUpOworICAgIH0KKyAgICBjYXNlIE5hbWVkR3JpZEFyZWFQb3Np
dGlvbjoKKyAgICB7CisgICAgICAgIE5hbWVkR3JpZEFyZWFNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gZ3JpZENvbnRhaW5lclN0eWxlLm5hbWVkR3JpZEFyZWEoKS5maW5kKHBvc2l0aW9uLm5hbWVk
R3JpZExpbmUoKSk7CisgICAgICAgIC8vIFVua25vd24gZ3JpZCBhcmVhIHNob3VsZCBoYXZlIGJl
ZW4gY29tcHV0ZWQgdG8gJ2F1dG8nIGJ5IG5vdy4KKyAgICAgICAgQVNTRVJUKGl0ICE9IGdyaWRD
b250YWluZXJTdHlsZS5uYW1lZEdyaWRBcmVhKCkuZW5kKCkpOworICAgICAgICBjb25zdCBHcmlk
Q29vcmRpbmF0ZSYgZ3JpZEFyZWFDb29yZGluYXRlID0gaXQtPnZhbHVlOworICAgICAgICBzd2l0
Y2ggKHNpZGUpIHsKKyAgICAgICAgY2FzZSBDb2x1bW5TdGFydFNpZGU6CisgICAgICAgICAgICBy
ZXR1cm4gZ3JpZEFyZWFDb29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb247
CisgICAgICAgIGNhc2UgQ29sdW1uRW5kU2lkZToKKyAgICAgICAgICAgIHJldHVybiBncmlkQXJl
YUNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEZpbmFsUG9zaXRpb247CisgICAgICAgIGNhc2Ug
Um93U3RhcnRTaWRlOgorICAgICAgICAgICAgcmV0dXJuIGdyaWRBcmVhQ29vcmRpbmF0ZS5yb3dz
LnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOworICAgICAgICBjYXNlIFJvd0VuZFNpZGU6CisgICAg
ICAgICAgICByZXR1cm4gZ3JpZEFyZWFDb29yZGluYXRlLnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0
aW9uOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRpb24oMCk7CisgICAgfQorICAgIGNhc2UgQXV0b1Bvc2l0
aW9uOgorICAgIGNhc2UgU3BhblBvc2l0aW9uOgorICAgICAgICAvLyAnYXV0bycgYW5kIHNwYW4g
ZGVwZW5kIG9uIHRoZSBvcHBvc2l0ZSBwb3NpdGlvbiBmb3IgcmVzb2x1dGlvbiAoZS5nLiBncmlk
LXJvdzogYXV0byAvIDEgb3IgZ3JpZC1jb2x1bW46IHNwYW4gMyAvICJteUhlYWRlciIpLgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBv
c2l0aW9uKDApOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4g
R3JpZFJlc29sdmVkUG9zaXRpb24oMCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4g
R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQ
b3NpdGlvbihjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBjb25zdCBHcmlk
UmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9z
aXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7CisgICAgaWYgKHBvc2l0
aW9uLmlzQXV0bygpKQorICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4o
cmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pOworCisg
ICAgQVNTRVJUKHBvc2l0aW9uLmlzU3BhbigpKTsKKyAgICBBU1NFUlQocG9zaXRpb24uc3BhblBv
c2l0aW9uKCkgPiAwKTsKKworICAgIGlmICghcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVs
bCgpKSB7CisgICAgICAgIC8vIHNwYW4gMiAnYycgLT4gd2UgbmVlZCB0byBmaW5kIHRoZSBhcHBy
b3ByaWF0ZSBncmlkIGxpbmUgYmVmb3JlIC8gYWZ0ZXIgb3VyIG9wcG9zaXRlIHBvc2l0aW9uLgor
ICAgICAgICByZXR1cm4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0
ZVBvc2l0aW9uKGdyaWRDb250YWluZXJTdHlsZSwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBw
b3NpdGlvbiwgc2lkZSk7CisgICAgfQorCisgICAgLy8gJ3NwYW4gMScgaXMgY29udGFpbmVkIGlu
c2lkZSBhIHNpbmdsZSBncmlkIHRyYWNrIHJlZ2FyZGxlc3Mgb2YgdGhlIGRpcmVjdGlvbi4KKyAg
ICAvLyBUaGF0J3Mgd2h5IHRoZSBDU1Mgc3BhbiB2YWx1ZSBpcyBvbmUgbW9yZSB0aGFuIHRoZSBv
ZmZzZXQgd2UgYXBwbHkuCisgICAgc2l6ZV90IHBvc2l0aW9uT2Zmc2V0ID0gcG9zaXRpb24uc3Bh
blBvc2l0aW9uKCkgLSAxOworICAgIGlmIChzaWRlID09IENvbHVtblN0YXJ0U2lkZSB8fCBzaWRl
ID09IFJvd1N0YXJ0U2lkZSkgeworICAgICAgICBzaXplX3QgaW5pdGlhbFJlc29sdmVkUG9zaXRp
b24gPSBzdGQ6Om1heDxpbnQ+KDAsIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbi50b0ludCgpIC0g
cG9zaXRpb25PZmZzZXQpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bh
bj4oR3JpZFJlc29sdmVkUG9zaXRpb24oaW5pdGlhbFJlc29sdmVkUG9zaXRpb24pLCByZXNvbHZl
ZE9wcG9zaXRlUG9zaXRpb24pOworICAgIH0KKworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PEdyaWRTcGFuPihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIEdyaWRSZXNvbHZlZFBvc2l0aW9u
KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbi50b0ludCgpICsgcG9zaXRpb25PZmZzZXQpKTsKK30K
Kworc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2
ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJlbmRl
clN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBy
ZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdy
aWRQb3NpdGlvblNpZGUgc2lkZSkKK3sKKyAgICBBU1NFUlQocG9zaXRpb24uaXNTcGFuKCkpOwor
ICAgIEFTU0VSVCghcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVsbCgpKTsKKyAgICAvLyBO
ZWdhdGl2ZSBwb3NpdGlvbnMgYXJlIG5vdCBhbGxvd2VkIHBlciB0aGUgc3BlY2lmaWNhdGlvbiBh
bmQgc2hvdWxkIGhhdmUgYmVlbiBoYW5kbGVkIGR1cmluZyBwYXJzaW5nLgorICAgIEFTU0VSVChw
b3NpdGlvbi5zcGFuUG9zaXRpb24oKSA+IDApOworCisgICAgY29uc3QgTmFtZWRHcmlkTGluZXNN
YXAmIGdyaWRMaW5lc05hbWVzID0gaXNDb2x1bW5TaWRlKHNpZGUpID8gZ3JpZENvbnRhaW5lclN0
eWxlLm5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBncmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlk
Um93TGluZXMoKTsKKyAgICBOYW1lZEdyaWRMaW5lc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBn
cmlkTGluZXNOYW1lcy5maW5kKHBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSk7CisKKyAgICAvLyBJ
ZiB0aGVyZSBpcyBubyBuYW1lZCBncmlkIGxpbmUgb2YgdGhhdCBuYW1lLCB3ZSByZXNvbHZlIHRo
ZSBwb3NpdGlvbiB0byAnYXV0bycgKHdoaWNoIGlzIGVxdWl2YWxlbnQgdG8gJ3NwYW4gMScgaW4g
dGhpcyBjYXNlKS4KKyAgICAvLyBTZWUgaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJs
aWMvd3d3LXN0eWxlLzIwMTNKdW4vMDM5NC5odG1sLgorICAgIGlmIChpdCA9PSBncmlkTGluZXNO
YW1lcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJl
c29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKKworICAg
IGlmIChzaWRlID09IFJvd1N0YXJ0U2lkZSB8fCBzaWRlID09IENvbHVtblN0YXJ0U2lkZSkKKyAg
ICAgICAgcmV0dXJuIHJlc29sdmVSb3dTdGFydENvbHVtblN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0
aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBwb3Np
dGlvbiwgaXQtPnZhbHVlKTsKKworICAgIHJldHVybiByZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFt
ZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24ocmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uLCBwb3NpdGlvbiwgaXQtPnZhbHVlKTsKK30KKworc3RhdGljIGlubGluZSBzaXpl
X3QgZmlyc3ROYW1lZEdyaWRMaW5lQmVmb3JlUG9zaXRpb24oc2l6ZV90IHBvc2l0aW9uLCBjb25z
dCBWZWN0b3I8c2l6ZV90PiYgZ3JpZExpbmVzKQoreworICAgIC8vIFRoZSBncmlkIGxpbmUgaW5l
cXVhbGl0eSBuZWVkcyB0byBiZSBzdHJpY3QgKHdoaWNoIGRvZXNuJ3QgbWF0Y2ggdGhlIGFmdGVy
IC8gZW5kIGNhc2UpIGJlY2F1c2UgfHBvc2l0aW9ufCBpcworICAgIC8vIGFscmVhZHkgY29udmVy
dGVkIHRvIGFuIGluZGV4IGluIG91ciBncmlkIHJlcHJlc2VudGF0aW9uIChpZSBvbmUgd2FzIHJl
bW92ZWQgZnJvbSB0aGUgZ3JpZCBsaW5lIHRvIGFjY291bnQgZm9yCisgICAgLy8gdGhlIHNpZGUp
LgorICAgIHNpemVfdCBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbkluZGV4ID0gMDsKKyAgICBjb25z
dCBzaXplX3QqIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uID0gc3RkOjpsb3dlcl9ib3VuZChncmlk
TGluZXMuYmVnaW4oKSwgZ3JpZExpbmVzLmVuZCgpLCBwb3NpdGlvbik7CisgICAgaWYgKGZpcnN0
TGluZUJlZm9yZVBvc2l0aW9uICE9IGdyaWRMaW5lcy5lbmQoKSkgeworICAgICAgICBpZiAoKmZp
cnN0TGluZUJlZm9yZVBvc2l0aW9uID4gcG9zaXRpb24gJiYgZmlyc3RMaW5lQmVmb3JlUG9zaXRp
b24gIT0gZ3JpZExpbmVzLmJlZ2luKCkpCisgICAgICAgICAgICAtLWZpcnN0TGluZUJlZm9yZVBv
c2l0aW9uOworCisgICAgICAgIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uSW5kZXggPSBmaXJzdExp
bmVCZWZvcmVQb3NpdGlvbiAtIGdyaWRMaW5lcy5iZWdpbigpOworICAgIH0KKyAgICByZXR1cm4g
Zmlyc3RMaW5lQmVmb3JlUG9zaXRpb25JbmRleDsKK30KKworc3RkOjp1bmlxdWVfcHRyPEdyaWRT
cGFuPiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3RhcnROYW1l
ZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBHcmlkUmVzb2x2
ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24m
IHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYgZ3JpZExpbmVzKQoreworICAgIHNpemVf
dCBncmlkTGluZUluZGV4ID0gc3RkOjptYXg8aW50PigwLCBmaXJzdE5hbWVkR3JpZExpbmVCZWZv
cmVQb3NpdGlvbihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24udG9JbnQoKSwgZ3JpZExpbmVzKSAt
IHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpICsgMSk7CisgICAgR3JpZFJlc29sdmVkUG9zaXRpb24g
cmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gR3JpZFJlc29sdmVkUG9zaXRpb24oZ3JpZExpbmVz
W2dyaWRMaW5lSW5kZXhdKTsKKyAgICBpZiAocmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID4gcmVz
b2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKQorICAgICAgICByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24g
PSByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb247CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
R3JpZFNwYW4+KHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0
aW9uKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6cmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBv
c2l0ZVBvc2l0aW9uKGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRl
UG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIGNvbnN0IFZlY3RvcjxzaXpl
X3Q+JiBncmlkTGluZXMpCit7CisgICAgc2l6ZV90IGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3Np
dGlvbkluZGV4ID0gZ3JpZExpbmVzLnNpemUoKSAtIDE7CisgICAgY29uc3Qgc2l6ZV90KiBmaXJz
dExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb24gPSBzdGQ6OnVwcGVyX2JvdW5kKGdyaWRMaW5lcy5i
ZWdpbigpLCBncmlkTGluZXMuZW5kKCksIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7CisgICAg
aWYgKGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbiAhPSBncmlkTGluZXMuZW5kKCkpCisg
ICAgICAgIGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbkluZGV4ID0gZmlyc3RMaW5lQWZ0
ZXJPcHBvc2l0ZVBvc2l0aW9uIC0gZ3JpZExpbmVzLmJlZ2luKCk7CisKKyAgICBzaXplX3QgZ3Jp
ZExpbmVJbmRleCA9IHN0ZDo6bWluKGdyaWRMaW5lcy5zaXplKCkgLSAxLCBmaXJzdExpbmVBZnRl
ck9wcG9zaXRlUG9zaXRpb25JbmRleCArIHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpIC0gMSk7Cisg
ICAgR3JpZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gR3JpZFJl
c29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNpZGUo
Z3JpZExpbmVzW2dyaWRMaW5lSW5kZXhdKTsKKyAgICBpZiAocmVzb2x2ZWRHcmlkTGluZVBvc2l0
aW9uIDwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKQorICAgICAgICByZXNvbHZlZEdyaWRMaW5l
UG9zaXRpb24gPSByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb247CisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcmVzb2x2ZWRHcmlk
TGluZVBvc2l0aW9uKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKENTU19HUklEX0xBWU9VVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2RhMGM0NWQyMGFj
YWM5YjJjN2Q1ZDA0OTc1NWIwMTc5OGZlOTJkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5oCkBAIC0wLDAgKzEs
MTUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHcmlkUmVz
b2x2ZWRQb3NpdGlvbl9oCisjZGVmaW5lIEdyaWRSZXNvbHZlZFBvc2l0aW9uX2gKKworI2lmIEVO
QUJMRShDU1NfR1JJRF9MQVlPVVQpCisKKyNpbmNsdWRlICJHcmlkUG9zaXRpb24uaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBHcmlkU3BhbjsKK2NsYXNzIFJlbmRlckJveDsKK2Ns
YXNzIFJlbmRlclN0eWxlOworCitlbnVtIEdyaWRQb3NpdGlvblNpZGUgeworICAgIENvbHVtblN0
YXJ0U2lkZSwKKyAgICBDb2x1bW5FbmRTaWRlLAorICAgIFJvd1N0YXJ0U2lkZSwKKyAgICBSb3dF
bmRTaWRlCit9OworCitlbnVtIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiB7CisgICAgRm9yQ29s
dW1ucywKKyAgICBGb3JSb3dzCit9OworCisvLyBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYW4gaW5k
ZXggaW50byBvbmUgb2YgdGhlIGRpbWVuc2lvbnMgb2YgdGhlIGdyaWQgYXJyYXkuCisvLyBXcmFw
cyBhIHNpemVfdCBpbnRlZ2VyIGp1c3QgZm9yIHRoZSBwdXJwb3NlIG9mIGtub3dpbmcgd2hhdCB3
ZSBtYW5pcHVsYXRlIGluIHRoZSBncmlkIGNvZGUuCitjbGFzcyBHcmlkUmVzb2x2ZWRQb3NpdGlv
biB7CitwdWJsaWM6CisgICAgc3RhdGljIEdyaWRSZXNvbHZlZFBvc2l0aW9uIGFkanVzdEdyaWRQ
b3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNpZGUoc2l6ZV90IHJlc29sdmVkUG9zaXRpb24pCisg
ICAgeworICAgICAgICByZXR1cm4gcmVzb2x2ZWRQb3NpdGlvbiA/IEdyaWRSZXNvbHZlZFBvc2l0
aW9uKHJlc29sdmVkUG9zaXRpb24gLSAxKSA6IEdyaWRSZXNvbHZlZFBvc2l0aW9uKDApOworICAg
IH0KKworICAgIHN0YXRpYyBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBhZGp1c3RHcmlkUG9zaXRpb25G
b3JTaWRlKHNpemVfdCByZXNvbHZlZFBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCisg
ICAgeworICAgICAgICAvLyBBbiBpdGVtIGZpbmlzaGluZyBvbiB0aGUgTi10aCBsaW5lIGJlbG9u
Z3MgdG8gdGhlIE4tMS10aCBjZWxsLgorICAgICAgICBpZiAoc2lkZSA9PSBDb2x1bW5FbmRTaWRl
IHx8IHNpZGUgPT0gUm93RW5kU2lkZSkKKyAgICAgICAgICAgIHJldHVybiBhZGp1c3RHcmlkUG9z
aXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKHJlc29sdmVkUG9zaXRpb24pOworCisgICAgICAg
IHJldHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbihyZXNvbHZlZFBvc2l0aW9uKTsKKyAgICB9CisK
KyAgICBzdGF0aWMgc2l6ZV90IGV4cGxpY2l0R3JpZENvbHVtbkNvdW50KGNvbnN0IFJlbmRlclN0
eWxlJiBncmlkQ29udGFpbmVyU3R5bGUpOworICAgIHN0YXRpYyBzaXplX3QgZXhwbGljaXRHcmlk
Um93Q291bnQoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSk7CisKKyAgICBz
dGF0aWMgR3JpZFNwYW4gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0
aW9uKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgY29uc3QgR3Jp
ZFJlc29sdmVkUG9zaXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBhZGp1c3ROYW1lZEdyaWRJdGVt
UG9zaXRpb24oY29uc3QgUmVuZGVyU3R5bGUmLCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25T
aWRlKTsKKyAgICBzdGF0aWMgdm9pZCBhZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0
IFJlbmRlclN0eWxlJiwgR3JpZFBvc2l0aW9uJiBpbml0aWFsUG9zaXRpb24sIEdyaWRQb3NpdGlv
biYgZmluYWxQb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlLCBH
cmlkUG9zaXRpb25TaWRlIGZpbmFsUG9zaXRpb25TaWRlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlx
dWVfcHRyPEdyaWRTcGFuPiByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5k
ZXJTdHlsZSYsIGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbik7Cisg
ICAgc3RhdGljIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRp
b25Gcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlk
UG9zaXRpb25TaWRlKTsKKyAgICBzdGF0aWMgR3JpZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZUdy
aWRQb3NpdGlvbkZyb21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEdyaWRQb3NpdGlv
biYsIEdyaWRQb3NpdGlvblNpZGUpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNw
YW4+IHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBSZW5k
ZXJTdHlsZSYsIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9z
aXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNpZGUpOworICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25B
Z2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEdyaWRSZXNv
bHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlv
biYsIEdyaWRQb3NpdGlvblNpZGUpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNw
YW4+IHJlc29sdmVSb3dTdGFydENvbHVtblN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5z
dE9wcG9zaXRlUG9zaXRpb24oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29sdmVkT3Bw
b3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgY29uc3QgVmVjdG9yPHNpemVfdD4m
KTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNvbHZlUm93RW5kQ29s
dW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3Qg
R3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3Jp
ZFBvc2l0aW9uJiwgY29uc3QgVmVjdG9yPHNpemVfdD4mKTsKKworICAgIEdyaWRSZXNvbHZlZFBv
c2l0aW9uKHNpemVfdCBwb3NpdGlvbikKKyAgICAgICAgOiBtX2ludGVnZXJQb3NpdGlvbihwb3Np
dGlvbikKKyAgICB7CisgICAgfQorCisgICAgR3JpZFJlc29sdmVkUG9zaXRpb24oY29uc3QgR3Jp
ZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQorICAgIHsKKyAgICAg
ICAgQVNTRVJUKHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpKTsKKyAgICAgICAgc2l6ZV90IGlu
dGVnZXJQb3NpdGlvbiA9IHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpIC0gMTsKKworICAgICAg
ICBtX2ludGVnZXJQb3NpdGlvbiA9IGFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoaW50ZWdlclBv
c2l0aW9uLCBzaWRlKS5tX2ludGVnZXJQb3NpdGlvbjsKKyAgICB9CisKKyAgICBHcmlkUmVzb2x2
ZWRQb3NpdGlvbiYgb3BlcmF0b3IrKygpCisgICAgeworICAgICAgICBtX2ludGVnZXJQb3NpdGlv
bisrOworICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBtX2ludGVnZXJQb3NpdGlvbiA9PSBvdGhlci5tX2ludGVnZXJQb3NpdGlvbjsKKyAg
ICB9CisKKyAgICBib29sIG9wZXJhdG9yPChjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgb3Ro
ZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pbnRlZ2VyUG9zaXRpb24gPCBvdGhl
ci5tX2ludGVnZXJQb3NpdGlvbjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPihjb25zdCBH
cmlkUmVzb2x2ZWRQb3NpdGlvbiYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
bV9pbnRlZ2VyUG9zaXRpb24gPiBvdGhlci5tX2ludGVnZXJQb3NpdGlvbjsKKyAgICB9CisKKyAg
ICBib29sIG9wZXJhdG9yPD0oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIG90aGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW50ZWdlclBvc2l0aW9uIDw9IG90aGVyLm1faW50
ZWdlclBvc2l0aW9uOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I+PShjb25zdCBHcmlkUmVz
b2x2ZWRQb3NpdGlvbiYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pbnRl
Z2VyUG9zaXRpb24gPj0gb3RoZXIubV9pbnRlZ2VyUG9zaXRpb247CisgICAgfQorCisgICAgc2l6
ZV90IHRvSW50KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ludGVnZXJQb3NpdGlv
bjsKKyAgICB9CisKKyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBuZXh0KCkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbihtX2ludGVnZXJQb3NpdGlvbiAr
IDEpOworICAgIH0KKworcHJpdmF0ZToKKworICAgIHN0YXRpYyBzaXplX3QgZXhwbGljaXRHcmlk
U2l6ZUZvclNpZGUoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgR3JpZFBv
c2l0aW9uU2lkZSk7CisKKyAgICBzaXplX3QgbV9pbnRlZ2VyUG9zaXRpb247Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQor
CisjZW5kaWYgLy8gR3JpZFJlc29sdmVkUG9zaXRpb25faAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232944</attachid>
            <date>2014-06-12 04:28:13 -0700</date>
            <delta_ts>2014-06-12 14:50:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131732-20140612132747.patch</filename>
            <type>text/plain</type>
            <size>80450</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5ODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk5YTc4ZTA0MGJhOTBm
MzQ1NTliYTQxODMxNTVhNWQ3MWY1OGQ5ZS4uMzAwMjk5ZGI2NTE5MmI0YTVjZGE1OGZmMzJmZDRh
ZmFkZDVmOWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAxNC0wNi0xMiAgTWFu
dWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbQ1NTIEdy
aWQgTGF5b3V0XSBJbnRyb2R1Y2UgYW4gZXhwbGljaXQgdHlwZSBmb3IgcmVzb2x2ZWQgZ3JpZCBw
b3NpdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMTczMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdlIHdlcmUgdXNpbmcgc2ltcGxlIHNpemVfdCBpbnRlZ2VycyB0byByZXByZXNlbnQgcmVzb2x2
ZWQgZ3JpZAorICAgICAgICBwb3NpdGlvbnMgaW4gb3VyIGludGVybmFsIGRhdGEgc3RydWN0dXJl
cy4gVGhpcyBjaGFuZ2UgYWxsb3dzIHVzIHRvCisgICAgICAgIGNsYXJpZnkgdGhlIGNvZGUsIGF2
b2lkIHBvdGVudGlhbCBvZmYgYnkgb25lIG1pc3Rha2VzLCBhbmQgbW92ZSB0aGUKKyAgICAgICAg
cmVzb2x2aW5nIGNvZGUgdG8gYSBjZW50cmFsIHBsYWNlLgorCisgICAgICAgIEEgbmV3IGNsYXNz
IEdyaWRSZXNvbHZlZFBvc2l0aW9uIGhhcyBiZWVuIGNyZWF0ZWQgYW5kIHRoZSByZWxhdGVkCisg
ICAgICAgIG1ldGhvZHMgaGF2ZSBiZWVuIG1vdmVkIHRoZXJlIGZyb20gUmVuZGVyR3JpZC4KKyAg
ICAgICAgR3JpZFNwYW4gaXMgbm93IGRlZmluZWQgYnkgdHdvIEdyaWRSZXNvbHZlZFBvc2l0aW9u
LCBzbyBhbGwgdGhlIGNvZGUKKyAgICAgICAgdXNpbmcgaXQgaGFzIGJlZW4gbW9kaWZpZWQgdG8g
YWRhcHQgaXQgdG8gR3JpZFJlc29sdmVkUG9zaXRpb24uCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGFzIGl0IGlzIGFscmVhZHkgY292ZXJlZCBieSBjdXJyZW50IHRlc3RzCisgICAgICAgIChmYXN0
L2Nzcy1ncmlkLWxheW91dC8pLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1Zh
bHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ0ZvclBvc2l0aW9uKToKKyAgICAgICAg
KiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VH
cmlkVGVtcGxhdGVBcmVhc1Jvdyk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSW1wbGljaXROYW1lZEdyaWRMaW5lc0Zyb21HcmlkQXJl
YSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZVVzZWRCcmVhZHRoT2ZHcmlkVHJhY2tzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbXB1dGVOb3JtYWxpemVkRnJhY3Rpb25CcmVhZHRoKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlc29sdmVDb250ZW50QmFzZWRUcmFja1Np
emluZ0Z1bmN0aW9uc0Zvckl0ZW1zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6Omlu
c2VydEl0ZW1JbnRvR3JpZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwbGFjZUl0
ZW1zT25HcmlkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBvcHVsYXRlRXhwbGlj
aXRHcmlkQW5kT3JkZXJJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpw
bGFjZVNwZWNpZmllZE1ham9yQXhpc0l0ZW1zT25HcmlkKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0ZW1PbkdyaWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyR3JpZDo6YXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmZpbmRDaGlsZExvZ2ljYWxQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpleHBsaWNpdEdyaWRSb3dD
b3VudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppc0NvbHVtblNpZGUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6aXNTdGFydFNpZGUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyR3JpZDo6ZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1Bs
YWNlbWVudFBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmdyaWRMaW5lc0Zv
clNpZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW1wbGljaXROYW1lZEdyaWRMaW5l
Rm9yU2lkZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppc05vbkV4aXN0ZW50TmFtZWRM
aW5lT3JBcmVhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmFkanVz
dEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21T
dHlsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlR3Jp
ZFBvc2l0aW9uRnJvbVN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OnJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0
aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
Zmlyc3ROYW1lZEdyaWRMaW5lQmVmb3JlUG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3RhcnROYW1lZEdyaWRMaW5l
UG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0
aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJHcmlkLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRDb29yZGluYXRl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmlkU3Bhbjo6R3JpZFNwYW4pOgorICAgICAgICAoV2Vi
Q29yZTo6R3JpZFNwYW46Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9H
cmlkUG9zaXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRQb3NpdGlvbjo6YWRqdXN0R3Jp
ZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpHcmlkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUpOiBEZWxldGVkLgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OmV4cGxpY2l0R3JpZENv
bHVtbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBs
aWNpdEdyaWRSb3dDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjppc0NvbHVtblNpZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6aXNTdGFydFNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29s
dmVkUG9zaXRpb246OmV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2Vt
ZW50UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6Z3JpZExpbmVzRm9yU2lkZSk6CisgICAg
ICAgIChXZWJDb3JlOjppbXBsaWNpdE5hbWVkR3JpZExpbmVGb3JTaWRlKToKKyAgICAgICAgKFdl
YkNvcmU6OmlzTm9uRXhpc3RlbnROYW1lZExpbmVPckFyZWEpOgorICAgICAgICAoV2ViQ29yZTo6
R3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25z
RnJvbVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNv
bHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
aWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uQWdh
aW5zdE9wcG9zaXRlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9z
aXRpb246OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpmaXJzdE5hbWVkR3JpZExpbmVCZWZvcmVQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZVJvd1N0YXJ0
Q29sdW1uU3RhcnROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZVJvd0VuZENv
bHVtbkVuZE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9u
Rm9yUm93RW5kQ29sdW1uRW5kU2lkZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQ
b3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmlkUmVzb2x2ZWRQb3NpdGlvbjo6R3JpZFJlc29sdmVkUG9zaXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246Om9wZXJhdG9yKyspOgorICAgICAgICAoV2ViQ29y
ZTo6R3JpZFJlc29sdmVkUG9zaXRpb246Om9wZXJhdG9yPT0pOgorICAgICAgICAoV2ViQ29yZTo6
R3JpZFJlc29sdmVkUG9zaXRpb246Om9wZXJhdG9yPCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlk
UmVzb2x2ZWRQb3NpdGlvbjo6b3BlcmF0b3I+KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNv
bHZlZFBvc2l0aW9uOjpvcGVyYXRvcjw9KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZl
ZFBvc2l0aW9uOjpvcGVyYXRvcj49KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBv
c2l0aW9uOjp0b0ludCk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
bmV4dCk6CisKIDIwMTQtMDYtMTIgIFByYXRpayBTb2xhbmtpICA8cHNvbGFua2lAYXBwbGUuY29t
PgogCiAgICAgICAgIEF2b2lkIGNyZWF0aW5nIGEgQ0ZEYXRhIHdoZW4gY2hlY2tpbmcgaWYgYSBy
ZXNvdXJjZSBpcyBmaWxlIGJhY2tlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBkNDkyMzRmZDY4
ZGNjZmYzMjc2YjJjZmUzMTZjZTI3NjkxZjBhNDBiLi45MWIzZmU0ODhkMTNkZGI0ZTQyMzRlYmVm
NjkxNDZhYzk3OTUzNTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMjM4Nyw2ICsyMzg3LDcg
QEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmluZy9zdHlsZS9Db250ZW50RGF0YS5j
cHAKICAgICByZW5kZXJpbmcvc3R5bGUvQ291bnRlckRpcmVjdGl2ZXMuY3BwCiAgICAgcmVuZGVy
aW5nL3N0eWxlL0ZpbGxMYXllci5jcHAKKyAgICByZW5kZXJpbmcvc3R5bGUvR3JpZFJlc29sdmVk
UG9zaXRpb24uY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL0tleWZyYW1lTGlzdC5jcHAKICAgICBy
ZW5kZXJpbmcvc3R5bGUvTmluZVBpZWNlSW1hZ2UuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL1F1
b3Rlc0RhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUu
dmN4cHJvagppbmRleCA1ZDQ0Yzg5NzMwMjI1YmQxNjVhYWYyYjIyMzFmMmE0MTkyMzQ2ZGI2Li41
MDM0MTE2YTAzMzg3ZWM4ZGMyOGM2M2JkZjNhMjljMTJjMzhhMzczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKQEAgLTExNDcyLDYgKzExNDcy
LDcgQEAKICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJp
bmdcc3R5bGVcR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEtleWZyYW1lTGlzdC5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
RGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZy
b21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVn
fHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpAQCAtMjAxNTIsNiArMjAxNTMsNyBAQAog
ICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRDb29yZGluYXRl
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZExl
bmd0aC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdy
aWRQb3NpdGlvbi5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0
eWxlXEdyaWRSZXNvbHZlZFBvc2l0aW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxyZW5kZXJpbmdcc3R5bGVcR3JpZFRyYWNrU2l6ZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEtleWZyYW1lTGlzdC5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXE5pbmVQaWVjZUltYWdlLmgiIC8+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZp
bHRlcnMgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZp
bHRlcnMKaW5kZXggMTQwNmE1NDIyODRjM2ZjYTk1N2RlNDkzOWEyZDk1YTc0NjlhMGE5Mi4uMjIy
OTMwYjNiNDhhZmY3OGFkNDVmMjM5MTAzNjIyZWNhN2E4OThkMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAt
Mjc3NSw2ICsyNzc1LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xz
dHlsZVxGaWxsTGF5ZXIuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHN0eWxlPC9GaWx0
ZXI+CiAgICAgPC9DbENvbXBpbGU+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJp
bmdcc3R5bGVcR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIj4KKyAgICAgIDxGaWx0ZXI+cmVuZGVy
aW5nXHN0eWxlPC9GaWx0ZXI+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcS2V5ZnJhbWVMaXN0LmNwcCI+CiAgICAgICA8RmlsdGVy
PnJlbmRlcmluZ1xzdHlsZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAtOTcwOSw2ICs5
NzEyLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlk
UG9zaXRpb24uaCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzdHlsZTwvRmlsdGVyPgogICAg
IDwvQ2xJbmNsdWRlPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxl
XEdyaWRSZXNvbHZlZFBvc2l0aW9uLmgiPgorICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc3R5bGU8
L0ZpbHRlcj4KKyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJl
bmRlcmluZ1xzdHlsZVxHcmlkVHJhY2tTaXplLmgiPgogICAgICAgPEZpbHRlcj5yZW5kZXJpbmdc
c3R5bGU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyNDE1MGQ4NGE1ZGNmZTc3ZWI0
NWRhMGQzMGVhYTliNjEzNDJmYTIwLi4xNTQzZmY5MWRhNmRlZjkzMWZmZThhNjc3ODI5MDc3MDg2
MDQwNDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC01NzEyLDYgKzU3MTIsOCBAQAogCQlDREYyQjAxOTE4MjA1NDA3MDBGMkI0
MjQgLyogTW9ja1RyYWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQ0RGMkIwMEYxODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tUcmFja3MuaCAqLzsgfTsK
IAkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QyN0Y2RTQxNDU3Njc4NzAw
NzgyMDdEIC8qIE1lZGlhQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUNERjY1Q0NBMTQ1QjQ0ODgwMEM0QzdBQSAvKiBNZWRpYUNv
bnRyb2xsZXJJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENERjY1Q0M5MTQ1QjQzQTcwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRl
cmZhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQlDREY3NDgzRTE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNzQ4M0MxOEZF
QkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcCAqLzsgfTsKKwkJQ0RGNzQ4
M0YxOEZFQkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDgzRDE4RkVCQ0VDMDAwNkVD
QzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlDREZDMzYwNTE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3Rl
Q29tbWFuZExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENERkMzNjAzMThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVu
ZXIuY3BwICovOyB9OwogCQlDREZDMzYwNjE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFu
ZExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREZDMzYwNDE4Q0E2MUMyMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGQzM2MDcx
OENBNjk2QzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERkMzNjAyMThDQTYxNjMwMDI2
RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW0gKi87IH07CkBAIC0xMzE0Nyw2ICsx
MzE0OSw4IEBACiAJCUNERjJCMDBGMTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrVHJhY2tzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tUcmFja3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNjVDQzkxNDVCNDNBNzAwQzRDN0FBIC8qIE1lZGlhQ29udHJv
bGxlckludGVyZmFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNv
bnRyb2xsZXJJbnRlcmZhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGNjVD
Q0MxNDVCNkFGRTAwQzRDN0FBIC8qIEpTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxNZWRpYUVsZW1lbnRDdXN0b20u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREY3NDgzQzE4RkVCQ0VDMDAwNkVD
QzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwOyBwYXRoID0gc3R5bGUvR3JpZFJl
c29sdmVkUG9zaXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDREY3NDgz
RDE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gR3JpZFJlc29sdmVkUG9zaXRpb24uaDsgcGF0aCA9IHN0eWxl
L0dyaWRSZXNvbHZlZFBvc2l0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
RkMzNjAxMThDQTYxNjMwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmg7
IHBhdGggPSBpb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVySU9TLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUNERkMzNjAyMThDQTYxNjMwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlz
dGVuZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZW1v
dGVDb21tYW5kTGlzdGVuZXJJT1MubW07IHBhdGggPSBpb3MvUmVtb3RlQ29tbWFuZExpc3RlbmVy
SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREZDMzYwMzE4Q0E2MUMyMDAy
NkU1NkYgLyogUmVtb3RlQ29tbWFuZExpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMDg1NCw2ICsyMDg1OCw4IEBACiAJCQkJQ0QzRTI1MUIxODA0NkIw
NjAwRTI3RjU2IC8qIEdyaWRDb29yZGluYXRlLmggKi8sCiAJCQkJQ0RFRjRGRDYxN0U4NUM4RjAw
QUVFMjRCIC8qIEdyaWRMZW5ndGguaCAqLywKIAkJCQlBMTI3MDVDMjE2NTZCRDY1MDBDMkUyN0Mg
LyogR3JpZFBvc2l0aW9uLmggKi8sCisJCQkJQ0RGNzQ4M0MxOEZFQkNFQzAwMDZFQ0MwIC8qIEdy
aWRSZXNvbHZlZFBvc2l0aW9uLmNwcCAqLywKKwkJCQlDREY3NDgzRDE4RkVCQ0VDMDAwNkVDQzAg
LyogR3JpZFJlc29sdmVkUG9zaXRpb24uaCAqLywKIAkJCQlBMTJBMTA0RTE2NjQ0NERDMDA4RkEz
MTEgLyogR3JpZFRyYWNrU2l6ZS5oICovLAogCQkJCUJDNUVCQTBFMEU4MjNFNDcwMEIyNTk2NSAv
KiBLZXlmcmFtZUxpc3QuY3BwICovLAogCQkJCUJDNUVCQTBGMEU4MjNFNDcwMEIyNTk2NSAvKiBL
ZXlmcmFtZUxpc3QuaCAqLywKQEAgLTI0NjE3LDYgKzI0NjIzLDcgQEAKIAkJCQlBODBFN0U5RjBB
MUE4M0UzMDA3RkI4QzUgLyogSlNIVE1MQnV0dG9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM4RTY2NjIwOUYwOUI4NzAwOEE0OEVDIC8qIEpTSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDQ0JBRDQxMEMxOEMxNDIwMENFODkwRiAvKiBKU0hUTUxDb2xsZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlDREY3NDgzRjE4RkVCQ0VDMDAwNkVDQzAgLyogR3Jp
ZFJlc29sdmVkUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUY1QzA0MUU3MEZGQ0E5NkQw
MDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUQz
NTlEOEJGMTI5Q0E1NUMwMDA2RTVEMiAvKiBKU0hUTUxEZXRhaWxzRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNzY4MDhCNTAxNTlEQURGQTAwMkI1MjMzIC8qIEpTSFRNTERpYWxvZ0VsZW1l
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjczNjgsNiArMjczNzUsNyBAQAogCQkJCUE0MjI2RTk2
MTE2M0Q3M0EwMDhCODM5NyAvKiBET01IVE1MUHJvZ3Jlc3NFbGVtZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODUxODNCNEIwQUE2OTI2MTAwRjE5RkEzIC8qIERPTUhUTUxRdW90ZUVsZW1lbnQu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURGODE5QzBBQTc3RTRCMDA0ODZBRDcgLyogRE9NSFRN
TFNjcmlwdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKKwkJCQlDREY3NDgzRTE4RkVCQ0VDMDAw
NkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODVG
MzJBRjEwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxTZWxlY3RFbGVtZW50Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJODU5QTlDNTAwQUE1RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxTdHlsZUVsZW1l
bnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NURGODIxRTBBQTc4NDlFMDA0ODZBRDcgLyogRE9N
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcAppbmRleCBiMzUzODIyOTBm
MzQwZWFkNjkxNjMzYjQ1NzU5Y2MyNjljNTdkZjkzLi41YWQ3MWZiZGQzNmNmOGRjMDAzNDIwMzhk
MTM3Y2FhZmU2YWVhM2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRl
bXBsYXRlQXJlYXNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1w
bGF0ZUFyZWFzVmFsdWUuY3BwCkBAIC01NSwxMyArNTUsMTMgQEAgc3RhdGljIFN0cmluZyBzdHJp
bmdGb3JQb3NpdGlvbihjb25zdCBOYW1lZEdyaWRBcmVhTWFwJiBncmlkQXJlYU1hcCwgc2l6ZV90
IHJvdywKIAogICAgIGZvciAoY29uc3QgYXV0byYgaXQgOiBncmlkQXJlYU1hcCkgewogICAgICAg
ICBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0ZSA9IGl0LnZhbHVlOwotICAgICAgICBp
ZiAocm93ID49IGNvb3JkaW5hdGUucm93cy5pbml0aWFsUG9zaXRpb25JbmRleCAmJiByb3cgPD0g
Y29vcmRpbmF0ZS5yb3dzLmZpbmFsUG9zaXRpb25JbmRleCkKKyAgICAgICAgaWYgKHJvdyA+PSBj
b29yZGluYXRlLnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKSAmJiByb3cgPD0g
Y29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkRmluYWxQb3NpdGlvbi50b0ludCgpKQogICAgICAgICAg
ICAgY2FuZGlkYXRlcy5hcHBlbmQoaXQua2V5KTsKICAgICB9CiAKICAgICBmb3IgKGNvbnN0IGF1
dG8mIGl0IDogZ3JpZEFyZWFNYXApIHsKICAgICAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUmIGNv
b3JkaW5hdGUgPSBpdC52YWx1ZTsKLSAgICAgICAgaWYgKGNvbHVtbiA+PSBjb29yZGluYXRlLmNv
bHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXggJiYgY29sdW1uIDw9IGNvb3JkaW5hdGUuY29sdW1u
cy5maW5hbFBvc2l0aW9uSW5kZXggJiYgY2FuZGlkYXRlcy5jb250YWlucyhpdC5rZXkpKQorICAg
ICAgICBpZiAoY29sdW1uID49IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3Np
dGlvbi50b0ludCgpICYmIGNvbHVtbiA8PSBjb29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRGaW5h
bFBvc2l0aW9uLnRvSW50KCkgJiYgY2FuZGlkYXRlcy5jb250YWlucyhpdC5rZXkpKQogICAgICAg
ICAgICAgcmV0dXJuIGl0LmtleTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5k
ZXggMDBlOWIyZjZjZWI0ZjUyN2RkNzgwYzZkNjVlYmUwMDM5OGQ1NDMxMC4uM2I1YTM4NTg0NGUx
ZWEwNjkwM2JlNWY5NDEyYjA3MTJmZDg1MTk1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAK
QEAgLTUzNTIsMTggKzUzNTIsMTggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlR3JpZFRlbXBsYXRl
QXJlYXNSb3coTmFtZWRHcmlkQXJlYU1hcCYgZ3JpZEFyZWFNYXAsIGNvbnN0IHUKIAogICAgICAg
ICAgICAgLy8gVGhlIGZvbGxvd2luZyBjaGVja3MgdGVzdCB0aGF0IHRoZSBncmlkIGFyZWEgaXMg
YSBzaW5nbGUgZmlsbGVkLWluIHJlY3RhbmdsZS4KICAgICAgICAgICAgIC8vIDEuIFRoZSBuZXcg
cm93IGlzIGFkamFjZW50IHRvIHRoZSBwcmV2aW91c2x5IHBhcnNlZCByb3cuCi0gICAgICAgICAg
ICBpZiAocm93Q291bnQgIT0gZ3JpZENvb3JkaW5hdGUucm93cy5maW5hbFBvc2l0aW9uSW5kZXgg
KyAxKQorICAgICAgICAgICAgaWYgKHJvd0NvdW50ICE9IGdyaWRDb29yZGluYXRlLnJvd3MucmVz
b2x2ZWRGaW5hbFBvc2l0aW9uLm5leHQoKS50b0ludCgpKQogICAgICAgICAgICAgICAgIHJldHVy
biAwOwogCiAgICAgICAgICAgICAvLyAyLiBUaGUgbmV3IGFyZWEgc3RhcnRzIGF0IHRoZSBzYW1l
IHBvc2l0aW9uIGFzIHRoZSBwcmV2aW91c2x5IHBhcnNlZCBhcmVhLgotICAgICAgICAgICAgaWYg
KGN1cnJlbnRDb2x1bW4gIT0gZ3JpZENvb3JkaW5hdGUuY29sdW1ucy5pbml0aWFsUG9zaXRpb25J
bmRleCkKKyAgICAgICAgICAgIGlmIChjdXJyZW50Q29sdW1uICE9IGdyaWRDb29yZGluYXRlLmNv
bHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gMDsKIAogICAgICAgICAgICAgLy8gMy4gVGhlIG5ldyBhcmVhIGVuZHMgYXQgdGhlIHNh
bWUgcG9zaXRpb24gYXMgdGhlIHByZXZpb3VzbHkgcGFyc2VkIGFyZWEuCi0gICAgICAgICAgICBp
ZiAobG9va0FoZWFkQ29sdW1uICE9IGdyaWRDb29yZGluYXRlLmNvbHVtbnMuZmluYWxQb3NpdGlv
bkluZGV4KQorICAgICAgICAgICAgaWYgKGxvb2tBaGVhZENvbHVtbiAhPSBncmlkQ29vcmRpbmF0
ZS5jb2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlvbi50b0ludCgpKQogICAgICAgICAgICAgICAg
IHJldHVybiAwOwogCi0gICAgICAgICAgICArK2dyaWRDb29yZGluYXRlLnJvd3MuZmluYWxQb3Np
dGlvbkluZGV4OworICAgICAgICAgICAgKytncmlkQ29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkRmlu
YWxQb3NpdGlvbjsKICAgICAgICAgfQogICAgICAgICBjdXJyZW50Q29sdW1uID0gbG9va0FoZWFk
Q29sdW1uOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBjYzJh
NzA3NjdjY2QyNzRhYTNkMDE4ZWRhMDA4M2FiYzE1ZWQxOWE5Li41ZDUzMTI4MzhiMTdjMzgxMzRh
YzBlNmY5MmEzZGNjNmQ5YWQyNTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
CkBAIC0xODY0LDEyICsxODY0LDEyIEBAIHN0YXRpYyB2b2lkIGNyZWF0ZUltcGxpY2l0TmFtZWRH
cmlkTGluZXNGcm9tR3JpZEFyZWEoY29uc3QgTmFtZWRHcmlkQXJlYU1hcCYgbmFtCiAgICAgICAg
IEdyaWRTcGFuIGFyZWFTcGFuID0gZGlyZWN0aW9uID09IEZvclJvd3MgPyBhcmVhLnZhbHVlLnJv
d3MgOiBhcmVhLnZhbHVlLmNvbHVtbnM7CiAgICAgICAgIHsKICAgICAgICAgICAgIGF1dG8mIHN0
YXJ0VmVjdG9yID0gbmFtZWRHcmlkTGluZXMuYWRkKGFyZWEua2V5ICsgIi1zdGFydCIsIFZlY3Rv
cjxzaXplX3Q+KCkpLml0ZXJhdG9yLT52YWx1ZTsKLSAgICAgICAgICAgIHN0YXJ0VmVjdG9yLmFw
cGVuZChhcmVhU3Bhbi5pbml0aWFsUG9zaXRpb25JbmRleCk7CisgICAgICAgICAgICBzdGFydFZl
Y3Rvci5hcHBlbmQoYXJlYVNwYW4ucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKSk7CiAg
ICAgICAgICAgICBzdGQ6OnNvcnQoc3RhcnRWZWN0b3IuYmVnaW4oKSwgc3RhcnRWZWN0b3IuZW5k
KCkpOwogICAgICAgICB9CiAgICAgICAgIHsKICAgICAgICAgICAgIGF1dG8mIGVuZFZlY3RvciA9
IG5hbWVkR3JpZExpbmVzLmFkZChhcmVhLmtleSArICItZW5kIiwgVmVjdG9yPHNpemVfdD4oKSku
aXRlcmF0b3ItPnZhbHVlOwotICAgICAgICAgICAgZW5kVmVjdG9yLmFwcGVuZChhcmVhU3Bhbi5m
aW5hbFBvc2l0aW9uSW5kZXggKyAxKTsKKyAgICAgICAgICAgIGVuZFZlY3Rvci5hcHBlbmQoYXJl
YVNwYW4ucmVzb2x2ZWRGaW5hbFBvc2l0aW9uLm5leHQoKS50b0ludCgpKTsKICAgICAgICAgICAg
IHN0ZDo6c29ydChlbmRWZWN0b3IuYmVnaW4oKSwgZW5kVmVjdG9yLmVuZCgpKTsKICAgICAgICAg
fQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlk
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCA0MjFl
OTUwNGI5MTU2MGU1NWRiMmQ1NjY4NmM5YTA5YWVmYWYyNTViLi4yMDdkZWEwNmY5NjBlOTk2MWFl
MjEyZTc2MGI2MzlhMDJiYzViZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKIAog
I2luY2x1ZGUgIkdyaWRDb29yZGluYXRlLmgiCisjaW5jbHVkZSAiR3JpZFJlc29sdmVkUG9zaXRp
b24uaCIKICNpbmNsdWRlICJMYXlvdXRSZXBhaW50ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMYXll
ci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKQEAgLTM0MSw3ICszNDIsNyBAQCB2b2lkIFJl
bmRlckdyaWQ6OmNvbXB1dGVVc2VkQnJlYWR0aE9mR3JpZFRyYWNrcyhHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24gZGlyZWN0aQogICAgICAgICAgICAgICAgIGNvbnN0IEdyaWRTcGFuIHNwYW4gPSAo
ZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gY29vcmRpbmF0ZS5jb2x1bW5zIDogY29vcmRpbmF0
ZS5yb3dzOwogCiAgICAgICAgICAgICAgICAgLy8gRG8gbm90IGluY2x1ZGUgYWxyZWFkeSBwcm9j
ZXNzZWQgaXRlbXMuCi0gICAgICAgICAgICAgICAgaWYgKGkgPiAwICYmIHNwYW4uaW5pdGlhbFBv
c2l0aW9uSW5kZXggPD0gZmxleGlibGVTaXplZFRyYWNrc0luZGV4W2kgLSAxXSkKKyAgICAgICAg
ICAgICAgICBpZiAoaSA+IDAgJiYgc3Bhbi5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgp
IDw9IGZsZXhpYmxlU2l6ZWRUcmFja3NJbmRleFtpIC0gMV0pCiAgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogCiAgICAgICAgICAgICAgICAgZG91YmxlIGl0ZW1Ob3JtYWxpemVkRmxleEJy
ZWFkdGggPSBjb21wdXRlTm9ybWFsaXplZEZyYWN0aW9uQnJlYWR0aCh0cmFja3MsIHNwYW4sIGRp
cmVjdGlvbiwgbWF4Q29udGVudEZvckNoaWxkKGdyaWRJdGVtLCBkaXJlY3Rpb24sIHNpemluZ0Rh
dGEuY29sdW1uVHJhY2tzKSk7CkBAIC00MDAsMTIgKzQwMSwxMiBAQCBkb3VibGUgUmVuZGVyR3Jp
ZDo6Y29tcHV0ZU5vcm1hbGl6ZWRGcmFjdGlvbkJyZWFkdGgoVmVjdG9yPEdyaWRUcmFjaz4mIHRy
YWNrcywgYwogICAgIC8vIHxhdmFpbGFibGVMb2dpY2FsU3BhY2V8IGFscmVhZHkgYWNjb3VudHMg
Zm9yIHRoZSB1c2VkIGJyZWFkdGhzIHNvIG5vIG5lZWQgdG8gcmVtb3ZlIGl0IGhlcmUuCiAKICAg
ICBWZWN0b3I8R3JpZFRyYWNrRm9yTm9ybWFsaXphdGlvbj4gdHJhY2tzRm9yTm9ybWFsaXphdGlv
bjsKLSAgICBmb3IgKHNpemVfdCBpID0gdHJhY2tzU3Bhbi5pbml0aWFsUG9zaXRpb25JbmRleDsg
aSA8PSB0cmFja3NTcGFuLmZpbmFsUG9zaXRpb25JbmRleDsgKytpKSB7Ci0gICAgICAgIGNvbnN0
IEdyaWRUcmFja1NpemUmIHRyYWNrU2l6ZSA9IGdyaWRUcmFja1NpemUoZGlyZWN0aW9uLCBpKTsK
KyAgICBmb3IgKEdyaWRSZXNvbHZlZFBvc2l0aW9uIHBvc2l0aW9uID0gdHJhY2tzU3Bhbi5yZXNv
bHZlZEluaXRpYWxQb3NpdGlvbjsgcG9zaXRpb24gPD0gdHJhY2tzU3Bhbi5yZXNvbHZlZEZpbmFs
UG9zaXRpb247ICsrcG9zaXRpb24pIHsKKyAgICAgICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJh
Y2tTaXplID0gZ3JpZFRyYWNrU2l6ZShkaXJlY3Rpb24sIHBvc2l0aW9uLnRvSW50KCkpOwogICAg
ICAgICBpZiAoIXRyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5pc0ZsZXgoKSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHRyYWNrc0Zvck5vcm1hbGl6YXRpb24uYXBwZW5kKEdy
aWRUcmFja0Zvck5vcm1hbGl6YXRpb24odHJhY2tzW2ldLCB0cmFja1NpemUubWF4VHJhY2tCcmVh
ZHRoKCkuZmxleCgpKSk7CisgICAgICAgIHRyYWNrc0Zvck5vcm1hbGl6YXRpb24uYXBwZW5kKEdy
aWRUcmFja0Zvck5vcm1hbGl6YXRpb24odHJhY2tzW3Bvc2l0aW9uLnRvSW50KCldLCB0cmFja1Np
emUubWF4VHJhY2tCcmVhZHRoKCkuZmxleCgpKSk7CiAgICAgfQogCiAgICAgLy8gVGhlIGZ1bmN0
aW9uIGlzIG5vdCBjYWxsZWQgaWYgd2UgZG9uJ3QgaGF2ZSA8ZmxleD4gZ3JpZCB0cmFja3MKQEAg
LTQ2MSwzMSArNDYyLDYgQEAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgUmVuZGVyR3JpZDo6Z3JpZFRy
YWNrU2l6ZShHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW8KICAgICByZXR1cm4gdHJh
Y2tTaXplOwogfQogCi1zaXplX3QgUmVuZGVyR3JpZDo6ZXhwbGljaXRHcmlkQ29sdW1uQ291bnQo
KSBjb25zdAotewotICAgIHJldHVybiBzdHlsZSgpLmdyaWRDb2x1bW5zKCkuc2l6ZSgpOwotfQot
Ci1zaXplX3QgUmVuZGVyR3JpZDo6ZXhwbGljaXRHcmlkUm93Q291bnQoKSBjb25zdAotewotICAg
IHJldHVybiBzdHlsZSgpLmdyaWRSb3dzKCkuc2l6ZSgpOwotfQotCi1zdGF0aWMgaW5saW5lIGJv
b2wgaXNDb2x1bW5TaWRlKEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKLXsKLSAgICByZXR1cm4gc2lk
ZSA9PSBDb2x1bW5TdGFydFNpZGUgfHwgc2lkZSA9PSBDb2x1bW5FbmRTaWRlOwotfQotCi1zdGF0
aWMgaW5saW5lIGJvb2wgaXNTdGFydFNpZGUoR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQotewotICAg
IHJldHVybiBzaWRlID09IENvbHVtblN0YXJ0U2lkZSB8fCBzaWRlID09IFJvd1N0YXJ0U2lkZTsK
LX0KLQotc2l6ZV90IFJlbmRlckdyaWQ6OmV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKEdyaWRQb3Np
dGlvblNpZGUgc2lkZSkgY29uc3QKLXsKLSAgICByZXR1cm4gaXNDb2x1bW5TaWRlKHNpZGUpID8g
ZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoKSA6IGV4cGxpY2l0R3JpZFJvd0NvdW50KCk7Ci19Ci0K
IExheW91dFVuaXQgUmVuZGVyR3JpZDo6bG9naWNhbENvbnRlbnRIZWlnaHRGb3JDaGlsZChSZW5k
ZXJCb3gqIGNoaWxkLCBWZWN0b3I8R3JpZFRyYWNrPiYgY29sdW1uVHJhY2tzKQogewogICAgIExh
eW91dFVuaXQgb2xkT3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoID0g
Y2hpbGQtPmhhc092ZXJyaWRlQ29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRoKCkgPyBjaGlsZC0+
b3ZlcnJpZGVDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoKCkgOiBMYXlvdXRVbml0
KCk7CkBAIC01NTUsMTYgKzUzMSwxNiBAQCB2b2lkIFJlbmRlckdyaWQ6OnJlc29sdmVDb250ZW50
QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9ucyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpbwogdm9pZCBS
ZW5kZXJHcmlkOjpyZXNvbHZlQ29udGVudEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnNGb3JJdGVt
cyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBHcmlkU2l6aW5nRGF0YSYgc2l6
aW5nRGF0YSwgUmVuZGVyQm94KiBncmlkSXRlbSwgRmlsdGVyRnVuY3Rpb24gZmlsdGVyRnVuY3Rp
b24sIFNpemluZ0Z1bmN0aW9uIHNpemluZ0Z1bmN0aW9uLCBBY2N1bXVsYXRvckdldHRlciB0cmFj
a0dldHRlciwgQWNjdW11bGF0b3JHcm93RnVuY3Rpb24gdHJhY2tHcm93dGhGdW5jdGlvbikKIHsK
ICAgICBjb25zdCBHcmlkQ29vcmRpbmF0ZSBjb29yZGluYXRlID0gY2FjaGVkR3JpZENvb3JkaW5h
dGUoZ3JpZEl0ZW0pOwotICAgIGNvbnN0IHNpemVfdCBpbml0aWFsVHJhY2tJbmRleCA9IChkaXJl
Y3Rpb24gPT0gRm9yQ29sdW1ucykgPyBjb29yZGluYXRlLmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9u
SW5kZXggOiBjb29yZGluYXRlLnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXg7Ci0gICAgY29uc3Qg
c2l6ZV90IGZpbmFsVHJhY2tJbmRleCA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBjb29y
ZGluYXRlLmNvbHVtbnMuZmluYWxQb3NpdGlvbkluZGV4IDogY29vcmRpbmF0ZS5yb3dzLmZpbmFs
UG9zaXRpb25JbmRleDsKKyAgICBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBpbml0aWFsVHJh
Y2tQb3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBjb29yZGluYXRlLmNvbHVt
bnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24gOiBjb29yZGluYXRlLnJvd3MucmVzb2x2ZWRJbml0
aWFsUG9zaXRpb247CisgICAgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24gZmluYWxUcmFja1Bv
c2l0aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1ucy5y
ZXNvbHZlZEZpbmFsUG9zaXRpb24gOiBjb29yZGluYXRlLnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0
aW9uOwogCiAgICAgc2l6aW5nRGF0YS5maWx0ZXJlZFRyYWNrcy5zaHJpbmsoMCk7Ci0gICAgZm9y
IChzaXplX3QgdHJhY2tJbmRleCA9IGluaXRpYWxUcmFja0luZGV4OyB0cmFja0luZGV4IDw9IGZp
bmFsVHJhY2tJbmRleDsgKyt0cmFja0luZGV4KSB7Ci0gICAgICAgIGNvbnN0IEdyaWRUcmFja1Np
emUmIHRyYWNrU2l6ZSA9IGdyaWRUcmFja1NpemUoZGlyZWN0aW9uLCB0cmFja0luZGV4KTsKKyAg
ICBmb3IgKEdyaWRSZXNvbHZlZFBvc2l0aW9uIHRyYWNrSW5kZXggPSBpbml0aWFsVHJhY2tQb3Np
dGlvbjsgdHJhY2tJbmRleCA8PSBmaW5hbFRyYWNrUG9zaXRpb247ICsrdHJhY2tJbmRleCkgewor
ICAgICAgICBjb25zdCBHcmlkVHJhY2tTaXplJiB0cmFja1NpemUgPSBncmlkVHJhY2tTaXplKGRp
cmVjdGlvbiwgdHJhY2tJbmRleC50b0ludCgpKTsKICAgICAgICAgaWYgKCEodHJhY2tTaXplLipm
aWx0ZXJGdW5jdGlvbikoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIEdyaWRU
cmFjayYgdHJhY2sgPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gc2l6aW5nRGF0YS5jb2x1
bW5UcmFja3NbdHJhY2tJbmRleF0gOiBzaXppbmdEYXRhLnJvd1RyYWNrc1t0cmFja0luZGV4XTsK
KyAgICAgICAgR3JpZFRyYWNrJiB0cmFjayA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBz
aXppbmdEYXRhLmNvbHVtblRyYWNrc1t0cmFja0luZGV4LnRvSW50KCldIDogc2l6aW5nRGF0YS5y
b3dUcmFja3NbdHJhY2tJbmRleC50b0ludCgpXTsKICAgICAgICAgc2l6aW5nRGF0YS5maWx0ZXJl
ZFRyYWNrcy5hcHBlbmQoJnRyYWNrKTsKICAgICB9CiAKQEAgLTU3Miw4ICs1NDgsOCBAQCB2b2lk
IFJlbmRlckdyaWQ6OnJlc29sdmVDb250ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9uc0Zvckl0
ZW1zKEdyaWRUcmFja1NpemluZwogICAgICAgICByZXR1cm47CiAKICAgICBMYXlvdXRVbml0IGFk
ZGl0aW9uYWxCcmVhZHRoU3BhY2UgPSAodGhpcy0+KnNpemluZ0Z1bmN0aW9uKShncmlkSXRlbSwg
ZGlyZWN0aW9uLCBzaXppbmdEYXRhLmNvbHVtblRyYWNrcyk7Ci0gICAgZm9yIChzaXplX3QgdHJh
Y2tJbmRleEZvclNwYWNlID0gaW5pdGlhbFRyYWNrSW5kZXg7IHRyYWNrSW5kZXhGb3JTcGFjZSA8
PSBmaW5hbFRyYWNrSW5kZXg7ICsrdHJhY2tJbmRleEZvclNwYWNlKSB7Ci0gICAgICAgIEdyaWRU
cmFjayYgdHJhY2sgPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gc2l6aW5nRGF0YS5jb2x1
bW5UcmFja3NbdHJhY2tJbmRleEZvclNwYWNlXSA6IHNpemluZ0RhdGEucm93VHJhY2tzW3RyYWNr
SW5kZXhGb3JTcGFjZV07CisgICAgZm9yIChHcmlkUmVzb2x2ZWRQb3NpdGlvbiB0cmFja1Bvc2l0
aW9uRm9yU3BhY2UgPSBpbml0aWFsVHJhY2tQb3NpdGlvbjsgdHJhY2tQb3NpdGlvbkZvclNwYWNl
IDw9IGZpbmFsVHJhY2tQb3NpdGlvbjsgKyt0cmFja1Bvc2l0aW9uRm9yU3BhY2UpIHsKKyAgICAg
ICAgR3JpZFRyYWNrJiB0cmFjayA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBzaXppbmdE
YXRhLmNvbHVtblRyYWNrc1t0cmFja1Bvc2l0aW9uRm9yU3BhY2UudG9JbnQoKV0gOiBzaXppbmdE
YXRhLnJvd1RyYWNrc1t0cmFja1Bvc2l0aW9uRm9yU3BhY2UudG9JbnQoKV07CiAgICAgICAgIGFk
ZGl0aW9uYWxCcmVhZHRoU3BhY2UgLT0gKHRyYWNrLip0cmFja0dldHRlcikoKTsKICAgICB9CiAK
QEAgLTY0NywxNyArNjIzLDE3IEBAIHZvaWQgUmVuZGVyR3JpZDo6Z3Jvd0dyaWQoR3JpZFRyYWNr
U2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbikKIAogdm9pZCBSZW5kZXJHcmlkOjppbnNlcnRJdGVt
SW50b0dyaWQoUmVuZGVyQm94KiBjaGlsZCwgY29uc3QgR3JpZENvb3JkaW5hdGUmIGNvb3JkaW5h
dGUpCiB7Ci0gICAgZm9yIChzaXplX3Qgcm93ID0gY29vcmRpbmF0ZS5yb3dzLmluaXRpYWxQb3Np
dGlvbkluZGV4OyByb3cgPD0gY29vcmRpbmF0ZS5yb3dzLmZpbmFsUG9zaXRpb25JbmRleDsgKyty
b3cpIHsKLSAgICAgICAgZm9yIChzaXplX3QgY29sdW1uID0gY29vcmRpbmF0ZS5jb2x1bW5zLmlu
aXRpYWxQb3NpdGlvbkluZGV4OyBjb2x1bW4gPD0gY29vcmRpbmF0ZS5jb2x1bW5zLmZpbmFsUG9z
aXRpb25JbmRleDsgKytjb2x1bW4pCi0gICAgICAgICAgICBtX2dyaWRbcm93XVtjb2x1bW5dLmFw
cGVuZChjaGlsZCk7CisgICAgZm9yIChHcmlkUmVzb2x2ZWRQb3NpdGlvbiByb3cgPSBjb29yZGlu
YXRlLnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb247IHJvdyA8PSBjb29yZGluYXRlLnJvd3Mu
cmVzb2x2ZWRGaW5hbFBvc2l0aW9uOyArK3JvdykgeworICAgICAgICBmb3IgKEdyaWRSZXNvbHZl
ZFBvc2l0aW9uIGNvbHVtbiA9IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3Np
dGlvbjsgY29sdW1uIDw9IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEZpbmFsUG9zaXRpb247
ICsrY29sdW1uKQorICAgICAgICAgICAgbV9ncmlkW3Jvdy50b0ludCgpXVtjb2x1bW4udG9JbnQo
KV0uYXBwZW5kKGNoaWxkKTsKICAgICB9CiAgICAgbV9ncmlkSXRlbUNvb3JkaW5hdGUuc2V0KGNo
aWxkLCBjb29yZGluYXRlKTsKIH0KIAotdm9pZCBSZW5kZXJHcmlkOjppbnNlcnRJdGVtSW50b0dy
aWQoUmVuZGVyQm94KiBjaGlsZCwgc2l6ZV90IHJvd1RyYWNrLCBzaXplX3QgY29sdW1uVHJhY2sp
Cit2b2lkIFJlbmRlckdyaWQ6Omluc2VydEl0ZW1JbnRvR3JpZChSZW5kZXJCb3gqIGNoaWxkLCBj
b25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcm93VHJhY2ssIGNvbnN0IEdyaWRSZXNvbHZlZFBv
c2l0aW9uJiBjb2x1bW5UcmFjaykKIHsKLSAgICBjb25zdCBHcmlkU3BhbiYgcm93U3BhbiA9IHJl
c29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbihjaGlsZCwgRm9yUm93
cywgcm93VHJhY2spOwotICAgIGNvbnN0IEdyaWRTcGFuJiBjb2x1bW5TcGFuID0gcmVzb2x2ZUdy
aWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKGNoaWxkLCBGb3JDb2x1bW5zLCBj
b2x1bW5UcmFjayk7CisgICAgY29uc3QgR3JpZFNwYW4mIHJvd1NwYW4gPSBHcmlkUmVzb2x2ZWRQ
b3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKCpj
aGlsZCwgRm9yUm93cywgcm93VHJhY2spOworICAgIGNvbnN0IEdyaWRTcGFuJiBjb2x1bW5TcGFu
ID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9QbGFj
ZW1lbnRQb3NpdGlvbigqY2hpbGQsIEZvckNvbHVtbnMsIGNvbHVtblRyYWNrKTsKICAgICBpbnNl
cnRJdGVtSW50b0dyaWQoY2hpbGQsIEdyaWRDb29yZGluYXRlKHJvd1NwYW4sIGNvbHVtblNwYW4p
KTsKIH0KIApAQCAtNjc0LDggKzY1MCw4IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VJdGVtc09u
R3JpZCgpCiAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gbV9vcmRlckl0ZXJhdG9yLmZpcnN0
KCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci5uZXh0KCkpIHsKICAgICAgICAgLy8g
RklYTUU6IFdlIG5ldmVyIHJlLXJlc29sdmUgcG9zaXRpb25zIGlmIHRoZSBncmlkIGlzIGdyb3du
IGR1cmluZyBhdXRvLXBsYWNlbWVudCB3aGljaCBtYXkgbGVhZCBhdXRvIC8gPGludGVnZXI+CiAg
ICAgICAgIC8vIHBvc2l0aW9ucyB0byBub3QgbWF0Y2ggdGhlIGF1dGhvcidzIGludGVudC4gVGhl
IHNwZWNpZmljYXRpb24gaXMgdW5jbGVhciBvbiB3aGF0IHNob3VsZCBiZSBkb25lIGluIHRoaXMg
Y2FzZS4KLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByb3dQb3NpdGlvbnMgPSBy
ZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjaGlsZCwgRm9yUm93cyk7Ci0gICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gY29sdW1uUG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQb3Np
dGlvbnNGcm9tU3R5bGUoY2hpbGQsIEZvckNvbHVtbnMpOworICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8R3JpZFNwYW4+IHJvd1Bvc2l0aW9ucyA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZl
R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqY2hpbGQsIEZvclJvd3MpOworICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IGNvbHVtblBvc2l0aW9ucyA9IEdyaWRSZXNvbHZl
ZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqY2hpbGQs
IEZvckNvbHVtbnMpOwogICAgICAgICBpZiAoIXJvd1Bvc2l0aW9ucyB8fCAhY29sdW1uUG9zaXRp
b25zKSB7CiAgICAgICAgICAgICBHcmlkU3BhbiogbWFqb3JBeGlzUG9zaXRpb25zID0gKGF1dG9Q
bGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSA9PSBGb3JDb2x1bW5zKSA/IGNvbHVtblBvc2l0
aW9ucy5nZXQoKSA6IHJvd1Bvc2l0aW9ucy5nZXQoKTsKICAgICAgICAgICAgIGlmICghbWFqb3JB
eGlzUG9zaXRpb25zKQpAQCAtNzA0LDIyICs2ODAsMjIgQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFj
ZUl0ZW1zT25HcmlkKCkKIHZvaWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRP
cmRlckl0ZXJhdG9yKCkKIHsKICAgICBPcmRlckl0ZXJhdG9yUG9wdWxhdG9yIHBvcHVsYXRvciht
X29yZGVySXRlcmF0b3IpOwotICAgIHNpemVfdCBtYXhpbXVtUm93SW5kZXggPSBzdGQ6Om1heDxz
aXplX3Q+KDEsIGV4cGxpY2l0R3JpZFJvd0NvdW50KCkpOwotICAgIHNpemVfdCBtYXhpbXVtQ29s
dW1uSW5kZXggPSBzdGQ6Om1heDxzaXplX3Q+KDEsIGV4cGxpY2l0R3JpZENvbHVtbkNvdW50KCkp
OworICAgIHNpemVfdCBtYXhpbXVtUm93SW5kZXggPSBzdGQ6Om1heDxzaXplX3Q+KDEsIEdyaWRS
ZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdyaWRSb3dDb3VudChzdHlsZSgpKSk7CisgICAgc2l6
ZV90IG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4oMSwgR3JpZFJlc29sdmVk
UG9zaXRpb246OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KHN0eWxlKCkpKTsKIAogICAgIGZvciAo
UmVuZGVyQm94KiBjaGlsZCA9IGZpcnN0Q2hpbGRCb3goKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nQm94KCkpIHsKICAgICAgICAgcG9wdWxhdG9yLmNvbGxlY3RDaGlsZCgqY2hp
bGQpOwogCiAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gYnlwYXNzZXMgdGhlIGNhY2hlIChjYWNo
ZWRHcmlkQ29vcmRpbmF0ZSgpKSBhcyBpdCBpcyB1c2VkIHRvIGJ1aWxkIGl0LgotICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJvd1Bvc2l0aW9ucyA9IHJlc29sdmVHcmlkUG9zaXRp
b25zRnJvbVN0eWxlKGNoaWxkLCBGb3JSb3dzKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdy
aWRTcGFuPiBjb2x1bW5Qb3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShj
aGlsZCwgRm9yQ29sdW1ucyk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcm93
UG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJv
bVN0eWxlKHN0eWxlKCksICpjaGlsZCwgRm9yUm93cyk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxHcmlkU3Bhbj4gY29sdW1uUG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29s
dmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICpjaGlsZCwgRm9yQ29sdW1ucyk7CiAK
ICAgICAgICAgLy8gfHBvc2l0aW9uc3wgaXMgMCBpZiB3ZSBuZWVkIHRvIHJ1biB0aGUgYXV0by1w
bGFjZW1lbnQgYWxnb3JpdGhtLiBPdXIgZXN0aW1hdGlvbiBpZ25vcmVzCiAgICAgICAgIC8vIHRo
aXMgY2FzZSBhcyB0aGUgYXV0by1wbGFjZW1lbnQgYWxnb3JpdGhtIHdpbGwgZ3JvdyB0aGUgZ3Jp
ZCBhcyBuZWVkZWQuCiAgICAgICAgIGlmIChyb3dQb3NpdGlvbnMpCi0gICAgICAgICAgICBtYXhp
bXVtUm93SW5kZXggPSBzdGQ6Om1heChtYXhpbXVtUm93SW5kZXgsIHJvd1Bvc2l0aW9ucy0+Zmlu
YWxQb3NpdGlvbkluZGV4ICsgMSk7CisgICAgICAgICAgICBtYXhpbXVtUm93SW5kZXggPSBzdGQ6
Om1heChtYXhpbXVtUm93SW5kZXgsIHJvd1Bvc2l0aW9ucy0+cmVzb2x2ZWRGaW5hbFBvc2l0aW9u
Lm5leHQoKS50b0ludCgpKTsKICAgICAgICAgaWYgKGNvbHVtblBvc2l0aW9ucykKLSAgICAgICAg
ICAgIG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4KG1heGltdW1Db2x1bW5JbmRleCwgY29s
dW1uUG9zaXRpb25zLT5maW5hbFBvc2l0aW9uSW5kZXggKyAxKTsKKyAgICAgICAgICAgIG1heGlt
dW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4KG1heGltdW1Db2x1bW5JbmRleCwgY29sdW1uUG9zaXRp
b25zLT5yZXNvbHZlZEZpbmFsUG9zaXRpb24ubmV4dCgpLnRvSW50KCkpOwogICAgIH0KIAogICAg
IG1fZ3JpZC5ncm93KG1heGltdW1Sb3dJbmRleCk7CkBAIC03MzAsMTcgKzcwNiwxNyBAQCB2b2lk
IFJlbmRlckdyaWQ6OnBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRvcigpCiB2b2lk
IFJlbmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQoY29uc3QgVmVj
dG9yPFJlbmRlckJveCo+JiBhdXRvR3JpZEl0ZW1zKQogewogICAgIGZvciAoYXV0byYgYXV0b0dy
aWRJdGVtIDogYXV0b0dyaWRJdGVtcykgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNw
YW4+IG1ham9yQXhpc1Bvc2l0aW9ucyA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGF1
dG9HcmlkSXRlbSwgYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpKTsKLSAgICAgICAg
R3JpZEl0ZXJhdG9yIGl0ZXJhdG9yKG1fZ3JpZCwgYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVj
dGlvbigpLCBtYWpvckF4aXNQb3NpdGlvbnMtPmluaXRpYWxQb3NpdGlvbkluZGV4KTsKKyAgICAg
ICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBtYWpvckF4aXNQb3NpdGlvbnMgPSBHcmlkUmVz
b2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgKmF1
dG9HcmlkSXRlbSwgYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpKTsKKyAgICAgICAg
R3JpZEl0ZXJhdG9yIGl0ZXJhdG9yKG1fZ3JpZCwgYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVj
dGlvbigpLCBtYWpvckF4aXNQb3NpdGlvbnMtPnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50
KCkpOwogICAgICAgICBpZiAoc3RkOjp1bmlxdWVfcHRyPEdyaWRDb29yZGluYXRlPiBlbXB0eUdy
aWRBcmVhID0gaXRlcmF0b3IubmV4dEVtcHR5R3JpZEFyZWEoKSkgewotICAgICAgICAgICAgaW5z
ZXJ0SXRlbUludG9HcmlkKGF1dG9HcmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5pbml0aWFs
UG9zaXRpb25JbmRleCwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRl
eCk7CisgICAgICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoYXV0b0dyaWRJdGVtLCBlbXB0eUdy
aWRBcmVhLT5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLCBlbXB0eUdyaWRBcmVhLT5jb2x1
bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAg
ICAgICB9CiAKICAgICAgICAgZ3Jvd0dyaWQoYXV0b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlv
bigpKTsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRDb29yZGluYXRlPiBlbXB0eUdyaWRB
cmVhID0gaXRlcmF0b3IubmV4dEVtcHR5R3JpZEFyZWEoKTsKICAgICAgICAgQVNTRVJUKGVtcHR5
R3JpZEFyZWEpOwotICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoYXV0b0dyaWRJdGVtLCBlbXB0
eUdyaWRBcmVhLT5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4LCBlbXB0eUdyaWRBcmVhLT5jb2x1
bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4KTsKKyAgICAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGF1
dG9HcmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbiwg
ZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbik7CiAgICAgfQog
fQogCkBAIC03NTIsMTQgKzcyOCwxNCBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlQXV0b01ham9y
QXhpc0l0ZW1zT25HcmlkKGNvbnN0IFZlY3RvcjxSZW5kZXJCb3gqPiYgYXV0b0dyaQogCiB2b2lk
IFJlbmRlckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0ZW1PbkdyaWQoUmVuZGVyQm94KiBncmlk
SXRlbSkKIHsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IG1pbm9yQXhpc1Bvc2l0aW9u
cyA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGdyaWRJdGVtLCBhdXRvUGxhY2VtZW50
TWlub3JBeGlzRGlyZWN0aW9uKCkpOwotICAgIEFTU0VSVCghcmVzb2x2ZUdyaWRQb3NpdGlvbnNG
cm9tU3R5bGUoZ3JpZEl0ZW0sIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSkpOwor
ICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gbWlub3JBeGlzUG9zaXRpb25zID0gR3JpZFJl
c29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICpn
cmlkSXRlbSwgYXV0b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigpKTsKKyAgICBBU1NFUlQo
IUdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHls
ZSgpLCAqZ3JpZEl0ZW0sIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSkpOwogICAg
IHNpemVfdCBtaW5vckF4aXNJbmRleCA9IDA7CiAgICAgaWYgKG1pbm9yQXhpc1Bvc2l0aW9ucykg
ewotICAgICAgICBtaW5vckF4aXNJbmRleCA9IG1pbm9yQXhpc1Bvc2l0aW9ucy0+aW5pdGlhbFBv
c2l0aW9uSW5kZXg7CisgICAgICAgIG1pbm9yQXhpc0luZGV4ID0gbWlub3JBeGlzUG9zaXRpb25z
LT5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpOwogICAgICAgICBHcmlkSXRlcmF0b3Ig
aXRlcmF0b3IobV9ncmlkLCBhdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uKCksIG1pbm9y
QXhpc0luZGV4KTsKICAgICAgICAgaWYgKHN0ZDo6dW5pcXVlX3B0cjxHcmlkQ29vcmRpbmF0ZT4g
ZW1wdHlHcmlkQXJlYSA9IGl0ZXJhdG9yLm5leHRFbXB0eUdyaWRBcmVhKCkpIHsKLSAgICAgICAg
ICAgIGluc2VydEl0ZW1JbnRvR3JpZChncmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5pbml0
aWFsUG9zaXRpb25JbmRleCwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5pbml0aWFsUG9zaXRpb25J
bmRleCk7CisgICAgICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoZ3JpZEl0ZW0sIGVtcHR5R3Jp
ZEFyZWEtPnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIGVtcHR5R3JpZEFyZWEtPmNvbHVt
bnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgfSBlbHNlIHsKQEAgLTc2Nyw3ICs3NDMsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBs
YWNlQXV0b01ham9yQXhpc0l0ZW1PbkdyaWQoUmVuZGVyQm94KiBncmlkSXRlbSkKICAgICAgICAg
Zm9yIChzaXplX3QgbWFqb3JBeGlzSW5kZXggPSAwOyBtYWpvckF4aXNJbmRleCA8IGVuZE9mTWFq
b3JBeGlzOyArK21ham9yQXhpc0luZGV4KSB7CiAgICAgICAgICAgICBHcmlkSXRlcmF0b3IgaXRl
cmF0b3IobV9ncmlkLCBhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCksIG1ham9yQXhp
c0luZGV4KTsKICAgICAgICAgICAgIGlmIChzdGQ6OnVuaXF1ZV9wdHI8R3JpZENvb3JkaW5hdGU+
IGVtcHR5R3JpZEFyZWEgPSBpdGVyYXRvci5uZXh0RW1wdHlHcmlkQXJlYSgpKSB7Ci0gICAgICAg
ICAgICAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGdyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dz
LmluaXRpYWxQb3NpdGlvbkluZGV4LCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5zLmluaXRpYWxQb3Np
dGlvbkluZGV4KTsKKyAgICAgICAgICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoZ3JpZEl0ZW0s
IGVtcHR5R3JpZEFyZWEtPnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIGVtcHR5R3JpZEFy
ZWEtPmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24pOwogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNzgwLDE0ICs3NTYsMTQgQEAgdm9p
ZCBSZW5kZXJHcmlkOjpwbGFjZUF1dG9NYWpvckF4aXNJdGVtT25HcmlkKFJlbmRlckJveCogZ3Jp
ZEl0ZW0pCiAgICAgaW5zZXJ0SXRlbUludG9HcmlkKGdyaWRJdGVtLCByb3dJbmRleCwgY29sdW1u
SW5kZXgpOwogfQogCi1SZW5kZXJHcmlkOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gUmVuZGVy
R3JpZDo6YXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpIGNvbnN0CitHcmlkVHJhY2tT
aXppbmdEaXJlY3Rpb24gUmVuZGVyR3JpZDo6YXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlv
bigpIGNvbnN0CiB7CiAgICAgR3JpZEF1dG9GbG93IGZsb3cgPSBzdHlsZSgpLmdyaWRBdXRvRmxv
dygpOwogICAgIEFTU0VSVChmbG93ICE9IEF1dG9GbG93Tm9uZSk7CiAgICAgcmV0dXJuIChmbG93
ID09IEF1dG9GbG93Q29sdW1uKSA/IEZvckNvbHVtbnMgOiBGb3JSb3dzOwogfQogCi1SZW5kZXJH
cmlkOjpHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gUmVuZGVyR3JpZDo6YXV0b1BsYWNlbWVudE1p
bm9yQXhpc0RpcmVjdGlvbigpIGNvbnN0CitHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gUmVuZGVy
R3JpZDo6YXV0b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigpIGNvbnN0CiB7CiAgICAgR3Jp
ZEF1dG9GbG93IGZsb3cgPSBzdHlsZSgpLmdyaWRBdXRvRmxvdygpOwogICAgIEFTU0VSVChmbG93
ICE9IEF1dG9GbG93Tm9uZSk7CkBAIC04NTYsMjU2ICs4MzIsMTMgQEAgR3JpZENvb3JkaW5hdGUg
UmVuZGVyR3JpZDo6Y2FjaGVkR3JpZENvb3JkaW5hdGUoY29uc3QgUmVuZGVyQm94KiBncmlkSXRl
bSkgY29uc3QKICAgICByZXR1cm4gbV9ncmlkSXRlbUNvb3JkaW5hdGUuZ2V0KGdyaWRJdGVtKTsK
IH0KIAotR3JpZFNwYW4gUmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1Bs
YWNlbWVudFBvc2l0aW9uKGNvbnN0IFJlbmRlckJveCosIEdyaWRUcmFja1NpemluZ0RpcmVjdGlv
biwgc2l6ZV90IGluaXRpYWxQb3NpdGlvbikgY29uc3QKLXsKLSAgICAvLyBGSVhNRTogV2UgZG9u
J3Qgc3VwcG9ydCBzcGFubmluZyB3aXRoIGF1dG8gcG9zaXRpb25zIHlldC4gT25jZSB3ZSBkbywg
dGhpcyBpcyB3cm9uZy4gQWxzbyB3ZSBzaG91bGQgbWFrZQotICAgIC8vIHN1cmUgdGhlIGdyaWQg
Y2FuIGFjY29tb2RhdGUgdGhlIG5ldyBpdGVtIGFzIHdlIG9ubHkgZ3JvdyAxIHBvc2l0aW9uIGlu
IGEgZ2l2ZW4gZGlyZWN0aW9uLgotICAgIHJldHVybiBHcmlkU3Bhbihpbml0aWFsUG9zaXRpb24s
IGluaXRpYWxQb3NpdGlvbik7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgY29uc3QgTmFtZWRHcmlkTGlu
ZXNNYXAmIGdyaWRMaW5lc0ZvclNpZGUoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBHcmlkUG9z
aXRpb25TaWRlIHNpZGUpCi17Ci0gICAgcmV0dXJuIGlzQ29sdW1uU2lkZShzaWRlKSA/IHN0eWxl
Lm5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBzdHlsZS5uYW1lZEdyaWRSb3dMaW5lcygpOwotfQot
Ci1zdGF0aWMgaW5saW5lIGNvbnN0IFN0cmluZyBpbXBsaWNpdE5hbWVkR3JpZExpbmVGb3JTaWRl
KGNvbnN0IFN0cmluZyYgbGluZU5hbWUsIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKLXsKLSAgICBy
ZXR1cm4gbGluZU5hbWUgKyAoaXNTdGFydFNpZGUoc2lkZSkgPyAiLXN0YXJ0IiA6ICItZW5kIik7
Ci19Ci0KLXN0YXRpYyBib29sIGlzTm9uRXhpc3RlbnROYW1lZExpbmVPckFyZWEoY29uc3QgU3Ry
aW5nJiBsaW5lTmFtZSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBHcmlkUG9zaXRpb25TaWRl
IHNpZGUpCi17Ci0gICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIGdyaWRMaW5lTmFtZXMgPSBn
cmlkTGluZXNGb3JTaWRlKHN0eWxlLCBzaWRlKTsKLSAgICByZXR1cm4gIWdyaWRMaW5lTmFtZXMu
Y29udGFpbnMoaW1wbGljaXROYW1lZEdyaWRMaW5lRm9yU2lkZShsaW5lTmFtZSwgc2lkZSkpICYm
ICFncmlkTGluZU5hbWVzLmNvbnRhaW5zKGxpbmVOYW1lKTsKLX0KLQotdm9pZCBSZW5kZXJHcmlk
OjphZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKEdyaWRQb3NpdGlvbiYgaW5pdGlhbFBvc2l0
aW9uLCBHcmlkUG9zaXRpb24mIGZpbmFsUG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgaW5pdGlh
bFBvc2l0aW9uU2lkZSwgR3JpZFBvc2l0aW9uU2lkZSBmaW5hbFBvc2l0aW9uU2lkZSkgY29uc3QK
LXsKLSAgICBBU1NFUlQoaXNDb2x1bW5TaWRlKGluaXRpYWxQb3NpdGlvblNpZGUpID09IGlzQ29s
dW1uU2lkZShmaW5hbFBvc2l0aW9uU2lkZSkpOwotCi0gICAgLy8gV2UgbXVzdCBoYW5kbGUgdGhl
IHBsYWNlbWVudCBlcnJvciBoYW5kbGluZyBjb2RlIGhlcmUgaW5zdGVhZCBvZiBpbiB0aGUgU3R5
bGVBZGp1c3RlciBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8KLSAgICAvLyBvdmVyd3JpdGUgdGhl
IHNwZWNpZmllZCB2YWx1ZXMuCi0gICAgaWYgKGluaXRpYWxQb3NpdGlvbi5pc1NwYW4oKSAmJiBm
aW5hbFBvc2l0aW9uLmlzU3BhbigpKQotICAgICAgICBmaW5hbFBvc2l0aW9uLnNldEF1dG9Qb3Np
dGlvbigpOwotCi0gICAgLy8gVHJ5IHRvIGVhcmx5IGRldGVjdCB0aGUgY2FzZSBvZiBub24gZXhp
c3RpbmcgbmFtZWQgZ3JpZCBsaW5lcy4gVGhpcyB3YXkgd2UgY291bGQgYXNzdW1lIGxhdGVyIHRo
YXQKLSAgICAvLyBSZW5kZXJHcmlkOjpyZXNvbHZlR3Jpc1Bvc2l0aW9uRnJvbVN0eWxlKCkgd29u
J3QgcmVxdWlyZSB0aGUgYXV0b3BsYWNlbWVudCB0byBydW4sIGkuZS4sIGl0J2xsIGFsd2F5cyBy
ZXR1cm4gYQotICAgIC8vIHZhbGlkIHJlc29sdmVkIHBvc2l0aW9uLgotICAgIGlmIChpbml0aWFs
UG9zaXRpb24uaXNOYW1lZEdyaWRBcmVhKCkgJiYgaXNOb25FeGlzdGVudE5hbWVkTGluZU9yQXJl
YShpbml0aWFsUG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLCBzdHlsZSgpLCBpbml0aWFsUG9zaXRp
b25TaWRlKSkKLSAgICAgICAgaW5pdGlhbFBvc2l0aW9uLnNldEF1dG9Qb3NpdGlvbigpOwotCi0g
ICAgaWYgKGZpbmFsUG9zaXRpb24uaXNOYW1lZEdyaWRBcmVhKCkgJiYgaXNOb25FeGlzdGVudE5h
bWVkTGluZU9yQXJlYShmaW5hbFBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSwgc3R5bGUoKSwgZmlu
YWxQb3NpdGlvblNpZGUpKQotICAgICAgICBmaW5hbFBvc2l0aW9uLnNldEF1dG9Qb3NpdGlvbigp
OwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IFJlbmRlckdyaWQ6OnJlc29sdmVHcmlk
UG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlckJveCogZ3JpZEl0ZW0sIEdyaWRUcmFja1Np
emluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Ci17Ci0gICAgR3JpZFBvc2l0aW9uIGluaXRp
YWxQb3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBncmlkSXRlbS0+c3R5bGUo
KS5ncmlkSXRlbUNvbHVtblN0YXJ0KCkgOiBncmlkSXRlbS0+c3R5bGUoKS5ncmlkSXRlbVJvd1N0
YXJ0KCk7Ci0gICAgY29uc3QgR3JpZFBvc2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlID0g
KGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IENvbHVtblN0YXJ0U2lkZSA6IFJvd1N0YXJ0U2lk
ZTsKLSAgICBHcmlkUG9zaXRpb24gZmluYWxQb3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29s
dW1ucykgPyBncmlkSXRlbS0+c3R5bGUoKS5ncmlkSXRlbUNvbHVtbkVuZCgpIDogZ3JpZEl0ZW0t
PnN0eWxlKCkuZ3JpZEl0ZW1Sb3dFbmQoKTsKLSAgICBjb25zdCBHcmlkUG9zaXRpb25TaWRlIGZp
bmFsUG9zaXRpb25TaWRlID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IENvbHVtbkVuZFNp
ZGUgOiBSb3dFbmRTaWRlOwotCi0gICAgYWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShpbml0
aWFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUsIGZpbmFsUG9z
aXRpb25TaWRlKTsKLQotICAgIGlmIChpbml0aWFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKCkgJiYgZmluYWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVk
QWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKSkgewotICAgICAgICBpZiAoc3R5bGUoKS5ncmlkQXV0
b0Zsb3coKSA9PSBBdXRvRmxvd05vbmUpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxHcmlkU3Bhbj4oMCwgMCk7Ci0KLSAgICAgICAgLy8gV2UgY2FuJ3QgZ2V0IG91ciBncmlk
IHBvc2l0aW9ucyB3aXRob3V0IHJ1bm5pbmcgdGhlIGF1dG8gcGxhY2VtZW50IGFsZ29yaXRobS4K
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgaWYgKGluaXRpYWxQb3NpdGlv
bi5zaG91bGRCZVJlc29sdmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKSkgewotICAgICAgICAv
LyBJbmZlciB0aGUgcG9zaXRpb24gZnJvbSB0aGUgZmluYWwgcG9zaXRpb24gKCdhdXRvIC8gMScg
b3IgJ3NwYW4gMiAvIDMnIGNhc2UpLgotICAgICAgICBjb25zdCBzaXplX3QgZmluYWxSZXNvbHZl
ZFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShmaW5hbFBvc2l0aW9uLCBm
aW5hbFBvc2l0aW9uU2lkZSk7Ci0gICAgICAgIHJldHVybiByZXNvbHZlR3JpZFBvc2l0aW9uQWdh
aW5zdE9wcG9zaXRlUG9zaXRpb24oZmluYWxSZXNvbHZlZFBvc2l0aW9uLCBpbml0aWFsUG9zaXRp
b24sIGluaXRpYWxQb3NpdGlvblNpZGUpOwotICAgIH0KLQotICAgIGlmIChmaW5hbFBvc2l0aW9u
LnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigpKSB7Ci0gICAgICAgIC8v
IEluZmVyIG91ciBwb3NpdGlvbiBmcm9tIHRoZSBpbml0aWFsIHBvc2l0aW9uICgnMSAvIGF1dG8n
IG9yICczIC8gc3BhbiAyJyBjYXNlKS4KLSAgICAgICAgY29uc3Qgc2l6ZV90IGluaXRpYWxSZXNv
bHZlZFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShpbml0aWFsUG9zaXRp
b24sIGluaXRpYWxQb3NpdGlvblNpZGUpOwotICAgICAgICByZXR1cm4gcmVzb2x2ZUdyaWRQb3Np
dGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uLCBmaW5h
bFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uU2lkZSk7Ci0gICAgfQotCi0gICAgc2l6ZV90IHJlc29s
dmVkSW5pdGlhbFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShpbml0aWFs
UG9zaXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUpOwotICAgIHNpemVfdCByZXNvbHZlZEZpbmFs
UG9zaXRpb24gPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGZpbmFsUG9zaXRpb24sIGZp
bmFsUG9zaXRpb25TaWRlKTsKLQotICAgIC8vIElmICdncmlkLXJvdy1lbmQnIHNwZWNpZmllcyBh
IGxpbmUgYXQgb3IgYmVmb3JlIHRoYXQgc3BlY2lmaWVkIGJ5ICdncmlkLXJvdy1zdGFydCcsIGl0
IGNvbXB1dGVzIHRvICdzcGFuIDEnLgotICAgIGlmIChyZXNvbHZlZEZpbmFsUG9zaXRpb24gPCBy
ZXNvbHZlZEluaXRpYWxQb3NpdGlvbikKLSAgICAgICAgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uID0g
cmVzb2x2ZWRJbml0aWFsUG9zaXRpb247Ci0KLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxH
cmlkU3Bhbj4ocmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIHJlc29sdmVkRmluYWxQb3NpdGlvbik7
Ci19Ci0KLXNpemVfdCBSZW5kZXJHcmlkOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJv
bVN0eWxlKGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lk
ZSkgY29uc3QKLXsKLSAgICBBU1NFUlQoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwo
KSk7Ci0KLSAgICBjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYgZ3JpZExpbmVzTmFtZXMgPSBncmlk
TGluZXNGb3JTaWRlKHN0eWxlKCksIHNpZGUpOwotICAgIE5hbWVkR3JpZExpbmVzTWFwOjpjb25z
dF9pdGVyYXRvciBpdCA9IGdyaWRMaW5lc05hbWVzLmZpbmQocG9zaXRpb24ubmFtZWRHcmlkTGlu
ZSgpKTsKLSAgICBpZiAoaXQgPT0gZ3JpZExpbmVzTmFtZXMuZW5kKCkpIHsKLSAgICAgICAgaWYg
KHBvc2l0aW9uLmlzUG9zaXRpdmUoKSkKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBj
b25zdCBzaXplX3QgbGFzdExpbmUgPSBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShzaWRlKTsKLSAg
ICAgICAgcmV0dXJuIEdyaWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShsYXN0
TGluZSwgc2lkZSk7Ci0gICAgfQotCi0gICAgc2l6ZV90IG5hbWVkR3JpZExpbmVJbmRleDsKLSAg
ICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgpKQotICAgICAgICBuYW1lZEdyaWRMaW5lSW5kZXgg
PSBzdGQ6Om1pbjxzaXplX3Q+KHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpLCBpdC0+dmFsdWUu
c2l6ZSgpKSAtIDE7Ci0gICAgZWxzZQotICAgICAgICBuYW1lZEdyaWRMaW5lSW5kZXggPSBzdGQ6
Om1heDxpbnQ+KGl0LT52YWx1ZS5zaXplKCkgLSBhYnMocG9zaXRpb24uaW50ZWdlclBvc2l0aW9u
KCkpLCAwKTsKLSAgICByZXR1cm4gR3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JT
aWRlKGl0LT52YWx1ZVtuYW1lZEdyaWRMaW5lSW5kZXhdLCBzaWRlKTsKLX0KLQotc2l6ZV90IFJl
bmRlckdyaWQ6OnJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgR3JpZFBvc2l0aW9u
JiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKSBjb25zdAotewotICAgIHN3aXRjaCAo
cG9zaXRpb24udHlwZSgpKSB7Ci0gICAgY2FzZSBFeHBsaWNpdFBvc2l0aW9uOiB7Ci0gICAgICAg
IEFTU0VSVChwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSk7Ci0KLSAgICAgICAgaWYgKCFwb3Np
dGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpCi0gICAgICAgICAgICByZXR1cm4gcmVzb2x2
ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZShwb3NpdGlvbiwgc2lkZSk7Ci0KLSAgICAg
ICAgLy8gSGFuZGxlIDxpbnRlZ2VyPiBleHBsaWNpdCBwb3NpdGlvbi4KLSAgICAgICAgaWYgKHBv
c2l0aW9uLmlzUG9zaXRpdmUoKSkKLSAgICAgICAgICAgIHJldHVybiBHcmlkUG9zaXRpb246OmFk
anVzdEdyaWRQb3NpdGlvbkZvclNpZGUocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkgLSAxLCBz
aWRlKTsKLQotICAgICAgICBzaXplX3QgcmVzb2x2ZWRQb3NpdGlvbiA9IGFicyhwb3NpdGlvbi5p
bnRlZ2VyUG9zaXRpb24oKSkgLSAxOwotICAgICAgICBjb25zdCBzaXplX3QgZW5kT2ZUcmFjayA9
IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKHNpZGUpOwotCi0gICAgICAgIC8vIFBlciBodHRwOi8v
bGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ctc3R5bGUvMjAxM01hci8wNTg5Lmh0bWws
IHdlIGNsYW1wIG5lZ2F0aXZlIHZhbHVlIHRvIHRoZSBmaXJzdCBsaW5lLgotICAgICAgICBpZiAo
ZW5kT2ZUcmFjayA8IHJlc29sdmVkUG9zaXRpb24pCi0gICAgICAgICAgICByZXR1cm4gMDsKLQot
ICAgICAgICByZXR1cm4gR3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGVu
ZE9mVHJhY2sgLSByZXNvbHZlZFBvc2l0aW9uLCBzaWRlKTsKLSAgICB9Ci0gICAgY2FzZSBOYW1l
ZEdyaWRBcmVhUG9zaXRpb246Ci0gICAgewotICAgICAgICAvLyBGaXJzdCBhdHRlbXB0IHRvIG1h
dGNoIHRoZSBncmlkIGFyZWEncyBlZGdlIHRvIGEgbmFtZWQgZ3JpZCBhcmVhOiBpZiB0aGVyZSBp
cyBhIG5hbWVkIGxpbmUgd2l0aCB0aGUgbmFtZQotICAgICAgICAvLyAnJzxjdXN0b20taWRlbnQ+
LXN0YXJ0IChmb3IgZ3JpZC0qLXN0YXJ0KSAvIDxjdXN0b20taWRlbnQ+LWVuZCcnIChmb3IgZ3Jp
ZC0qLWVuZCksIGNvbnRyaWJ1dGVzIHRoZSBmaXJzdCBzdWNoCi0gICAgICAgIC8vIGxpbmUgdG8g
dGhlIGdyaWQgaXRlbSdzIHBsYWNlbWVudC4KLSAgICAgICAgU3RyaW5nIG5hbWVkR3JpZExpbmUg
PSBwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCk7Ci0gICAgICAgIEFTU0VSVCghaXNOb25FeGlzdGVu
dE5hbWVkTGluZU9yQXJlYShuYW1lZEdyaWRMaW5lLCBzdHlsZSgpLCBzaWRlKSk7Ci0KLSAgICAg
ICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIGdyaWRMaW5lTmFtZXMgPSBncmlkTGluZXNGb3JT
aWRlKHN0eWxlKCksIHNpZGUpOwotICAgICAgICBhdXRvIGltcGxpY2l0TGluZSA9IGdyaWRMaW5l
TmFtZXMuZmluZChpbXBsaWNpdE5hbWVkR3JpZExpbmVGb3JTaWRlKG5hbWVkR3JpZExpbmUsIHNp
ZGUpKTsKLSAgICAgICAgaWYgKGltcGxpY2l0TGluZSAhPSBncmlkTGluZU5hbWVzLmVuZCgpKQot
ICAgICAgICAgICAgcmV0dXJuIEdyaWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lk
ZShpbXBsaWNpdExpbmUtPnZhbHVlWzBdLCBzaWRlKTsKLQotICAgICAgICAvLyBPdGhlcndpc2Us
IGlmIHRoZXJlIGlzIGEgbmFtZWQgbGluZSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFtZSwgY29udHJp
YnV0ZXMgdGhlIGZpcnN0IHN1Y2ggbGluZSB0byB0aGUgZ3JpZAotICAgICAgICAvLyBpdGVtJ3Mg
cGxhY2VtZW50LgotICAgICAgICBhdXRvIGV4cGxpY2l0TGluZSA9IGdyaWRMaW5lTmFtZXMuZmlu
ZChuYW1lZEdyaWRMaW5lKTsKLSAgICAgICAgaWYgKGV4cGxpY2l0TGluZSAhPSBncmlkTGluZU5h
bWVzLmVuZCgpKQotICAgICAgICAgICAgcmV0dXJuIEdyaWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBv
c2l0aW9uRm9yU2lkZShleHBsaWNpdExpbmUtPnZhbHVlWzBdLCBzaWRlKTsKLQotICAgICAgICAv
LyBJZiBub25lIG9mIHRoZSBhYm92ZSB3b3JrcyBzcGVjcyBtYW5kYXRlIHVzIHRvIHRyZWF0IGl0
IGFzIGF1dG8gQlVUIHdlIHNob3VsZCBoYXZlIGRldGVjdGVkIGl0IGJlZm9yZSBjYWxsaW5nCi0g
ICAgICAgIC8vIHRoaXMgZnVuY3Rpb24gaW4gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUo
KS4gV2Ugc2hvdWxkIGJlIGNvdmVyZWQgYW55d2F5IGJ5IHRoZSBBU1NFUlQgYXQgdGhlIGJlZ2lu
bmluZwotICAgICAgICAvLyBvZiB0aGlzIGNhc2UgYmxvY2suCi0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgY2FzZSBBdXRvUG9zaXRp
b246Ci0gICAgY2FzZSBTcGFuUG9zaXRpb246Ci0gICAgICAgIC8vICdhdXRvJyBhbmQgc3BhbiBk
ZXBlbmQgb24gdGhlIG9wcG9zaXRlIHBvc2l0aW9uIGZvciByZXNvbHV0aW9uIChlLmcuIGdyaWQt
cm93OiBhdXRvIC8gMSBvciBncmlkLWNvbHVtbjogc3BhbiAzIC8gIm15SGVhZGVyIikuCi0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0
cjxHcmlkU3Bhbj4gUmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0
ZVBvc2l0aW9uKHNpemVfdCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3Np
dGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkgY29uc3QKLXsKLSAgICBpZiAo
cG9zaXRpb24uaXNBdXRvKCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRT
cGFuPihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7
Ci0KLSAgICBBU1NFUlQocG9zaXRpb24uaXNTcGFuKCkpOwotICAgIEFTU0VSVChwb3NpdGlvbi5z
cGFuUG9zaXRpb24oKSA+IDApOwotCi0gICAgaWYgKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCku
aXNOdWxsKCkpIHsKLSAgICAgICAgLy8gc3BhbiAyICdjJyAtPiB3ZSBuZWVkIHRvIGZpbmQgdGhl
IGFwcHJvcHJpYXRlIGdyaWQgbGluZSBiZWZvcmUgLyBhZnRlciBvdXIgb3Bwb3NpdGUgcG9zaXRp
b24uCi0gICAgICAgIHJldHVybiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9w
cG9zaXRlUG9zaXRpb24ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBwb3NpdGlvbiwgc2lkZSk7
Ci0gICAgfQotCi0gICAgLy8gJ3NwYW4gMScgaXMgY29udGFpbmVkIGluc2lkZSBhIHNpbmdsZSBn
cmlkIHRyYWNrIHJlZ2FyZGxlc3Mgb2YgdGhlIGRpcmVjdGlvbi4KLSAgICAvLyBUaGF0J3Mgd2h5
IHRoZSBDU1Mgc3BhbiB2YWx1ZSBpcyBvbmUgbW9yZSB0aGFuIHRoZSBvZmZzZXQgd2UgYXBwbHku
Ci0gICAgc2l6ZV90IHBvc2l0aW9uT2Zmc2V0ID0gcG9zaXRpb24uc3BhblBvc2l0aW9uKCkgLSAx
OwotICAgIGlmIChpc1N0YXJ0U2lkZShzaWRlKSkgewotICAgICAgICBzaXplX3QgaW5pdGlhbFJl
c29sdmVkUG9zaXRpb24gPSBzdGQ6Om1heDxpbnQ+KDAsIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlv
biAtIHBvc2l0aW9uT2Zmc2V0KTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3Jp
ZFNwYW4+KGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uLCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24p
OwotICAgIH0KLQotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZl
ZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiArIHBvc2l0aW9uT2Zm
c2V0KTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBSZW5kZXJHcmlkOjpyZXNvbHZl
TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oc2l6ZV90IHJlc29s
dmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBv
c2l0aW9uU2lkZSBzaWRlKSBjb25zdAotewotICAgIEFTU0VSVChwb3NpdGlvbi5pc1NwYW4oKSk7
Ci0gICAgQVNTRVJUKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpOwotICAgIC8v
IE5lZ2F0aXZlIHBvc2l0aW9ucyBhcmUgbm90IGFsbG93ZWQgcGVyIHRoZSBzcGVjaWZpY2F0aW9u
IGFuZCBzaG91bGQgaGF2ZSBiZWVuIGhhbmRsZWQgZHVyaW5nIHBhcnNpbmcuCi0gICAgQVNTRVJU
KHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpID4gMCk7Ci0KLSAgICBjb25zdCBOYW1lZEdyaWRMaW5l
c01hcCYgZ3JpZExpbmVzTmFtZXMgPSBncmlkTGluZXNGb3JTaWRlKHN0eWxlKCksIHNpZGUpOwot
ICAgIE5hbWVkR3JpZExpbmVzTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGdyaWRMaW5lc05hbWVz
LmZpbmQocG9zaXRpb24ubmFtZWRHcmlkTGluZSgpKTsKLQotICAgIC8vIElmIHRoZXJlIGlzIG5v
IG5hbWVkIGdyaWQgbGluZSBvZiB0aGF0IG5hbWUsIHdlIHJlc29sdmUgdGhlIHBvc2l0aW9uIHRv
ICdhdXRvJyAod2hpY2ggaXMgZXF1aXZhbGVudCB0byAnc3BhbiAxJyBpbiB0aGlzIGNhc2UpLgot
ICAgIC8vIFNlZSBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ctc3R5bGUv
MjAxM0p1bi8wMzk0Lmh0bWwuCi0gICAgaWYgKGl0ID09IGdyaWRMaW5lc05hbWVzLmVuZCgpKQot
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uLCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pOwotCi0gICAgaWYgKGlzU3RhcnRT
aWRlKHNpZGUpKQotICAgICAgICByZXR1cm4gcmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3RhcnROYW1l
ZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihyZXNvbHZlZE9wcG9zaXRl
UG9zaXRpb24sIHBvc2l0aW9uLCBpdC0+dmFsdWUpOwotCi0gICAgcmV0dXJuIHJlc29sdmVSb3dF
bmRDb2x1bW5FbmROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihy
ZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHBvc2l0aW9uLCBpdC0+dmFsdWUpOwotfQotCi1zdGF0
aWMgaW5saW5lIHNpemVfdCBmaXJzdE5hbWVkR3JpZExpbmVCZWZvcmVQb3NpdGlvbihzaXplX3Qg
cG9zaXRpb24sIGNvbnN0IFZlY3RvcjxzaXplX3Q+JiBncmlkTGluZXMpCi17Ci0gICAgLy8gVGhl
IGdyaWQgbGluZSBpbmVxdWFsaXR5IG5lZWRzIHRvIGJlIHN0cmljdCAod2hpY2ggZG9lc24ndCBt
YXRjaCB0aGUgYWZ0ZXIgLyBlbmQgY2FzZSkgYmVjYXVzZSB8cG9zaXRpb258IGlzCi0gICAgLy8g
YWxyZWFkeSBjb252ZXJ0ZWQgdG8gYW4gaW5kZXggaW4gb3VyIGdyaWQgcmVwcmVzZW50YXRpb24g
KGllIG9uZSB3YXMgcmVtb3ZlZCBmcm9tIHRoZSBncmlkIGxpbmUgdG8gYWNjb3VudCBmb3IKLSAg
ICAvLyB0aGUgc2lkZSkuCi0gICAgc2l6ZV90IGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uSW5kZXgg
PSAwOwotICAgIGNvbnN0IHNpemVfdCogZmlyc3RMaW5lQmVmb3JlUG9zaXRpb24gPSBzdGQ6Omxv
d2VyX2JvdW5kKGdyaWRMaW5lcy5iZWdpbigpLCBncmlkTGluZXMuZW5kKCksIHBvc2l0aW9uKTsK
LSAgICBpZiAoZmlyc3RMaW5lQmVmb3JlUG9zaXRpb24gIT0gZ3JpZExpbmVzLmVuZCgpKSB7Ci0g
ICAgICAgIGlmICgqZmlyc3RMaW5lQmVmb3JlUG9zaXRpb24gPiBwb3NpdGlvbiAmJiBmaXJzdExp
bmVCZWZvcmVQb3NpdGlvbiAhPSBncmlkTGluZXMuYmVnaW4oKSkKLSAgICAgICAgICAgIC0tZmly
c3RMaW5lQmVmb3JlUG9zaXRpb247Ci0KLSAgICAgICAgZmlyc3RMaW5lQmVmb3JlUG9zaXRpb25J
bmRleCA9IGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uIC0gZ3JpZExpbmVzLmJlZ2luKCk7Ci0gICAg
fQotICAgIHJldHVybiBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbkluZGV4OwotfQotCi1zdGQ6OnVu
aXF1ZV9wdHI8R3JpZFNwYW4+IFJlbmRlckdyaWQ6OnJlc29sdmVSb3dTdGFydENvbHVtblN0YXJ0
TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oc2l6ZV90IHJlc29s
dmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgY29uc3Qg
VmVjdG9yPHNpemVfdD4mIGdyaWRMaW5lcykgY29uc3QKLXsKLSAgICBzaXplX3QgZ3JpZExpbmVJ
bmRleCA9IHN0ZDo6bWF4PGludD4oMCwgZmlyc3ROYW1lZEdyaWRMaW5lQmVmb3JlUG9zaXRpb24o
cmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBncmlkTGluZXMpIC0gcG9zaXRpb24uc3BhblBvc2l0
aW9uKCkgKyAxKTsKLSAgICBzaXplX3QgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gZ3JpZExp
bmVzW2dyaWRMaW5lSW5kZXhdOwotICAgIGlmIChyZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPiBy
ZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pCi0gICAgICAgIHJlc29sdmVkR3JpZExpbmVQb3NpdGlv
biA9IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbjsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uLCByZXNvbHZlZE9wcG9zaXRlUG9z
aXRpb24pOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IFJlbmRlckdyaWQ6OnJlc29s
dmVSb3dFbmRDb2x1bW5FbmROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3Np
dGlvbihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24m
IHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYgZ3JpZExpbmVzKSBjb25zdAotewotICAg
IHNpemVfdCBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb25JbmRleCA9IGdyaWRMaW5lcy5z
aXplKCkgLSAxOwotICAgIGNvbnN0IHNpemVfdCogZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0
aW9uID0gc3RkOjp1cHBlcl9ib3VuZChncmlkTGluZXMuYmVnaW4oKSwgZ3JpZExpbmVzLmVuZCgp
LCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pOwotICAgIGlmIChmaXJzdExpbmVBZnRlck9wcG9z
aXRlUG9zaXRpb24gIT0gZ3JpZExpbmVzLmVuZCgpKQotICAgICAgICBmaXJzdExpbmVBZnRlck9w
cG9zaXRlUG9zaXRpb25JbmRleCA9IGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbiAtIGdy
aWRMaW5lcy5iZWdpbigpOwotCi0gICAgc2l6ZV90IGdyaWRMaW5lSW5kZXggPSBzdGQ6Om1pbihn
cmlkTGluZXMuc2l6ZSgpIC0gMSwgZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uSW5kZXgg
KyBwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSAtIDEpOwotICAgIHNpemVfdCByZXNvbHZlZEdyaWRM
aW5lUG9zaXRpb24gPSBHcmlkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENv
bHVtbkVuZFNpZGUoZ3JpZExpbmVzW2dyaWRMaW5lSW5kZXhdKTsKLSAgICBpZiAocmVzb2x2ZWRH
cmlkTGluZVBvc2l0aW9uIDwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKQotICAgICAgICByZXNv
bHZlZEdyaWRMaW5lUG9zaXRpb24gPSByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb247Ci0gICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwg
cmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uKTsKLX0KLQogTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpn
cmlkQXJlYUJyZWFkdGhGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxkLCBHcmlkVHJhY2tT
aXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBWZWN0b3I8R3JpZFRyYWNrPiYgdHJhY2tz
KSBjb25zdAogewogICAgIGNvbnN0IEdyaWRDb29yZGluYXRlJiBjb29yZGluYXRlID0gY2FjaGVk
R3JpZENvb3JkaW5hdGUoY2hpbGQpOwogICAgIGNvbnN0IEdyaWRTcGFuJiBzcGFuID0gKGRpcmVj
dGlvbiA9PSBGb3JDb2x1bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1ucyA6IGNvb3JkaW5hdGUucm93
czsKICAgICBMYXlvdXRVbml0IGdyaWRBcmVhQnJlYWR0aCA9IDA7Ci0gICAgZm9yIChzaXplX3Qg
dHJhY2tJbmRleCA9IHNwYW4uaW5pdGlhbFBvc2l0aW9uSW5kZXg7IHRyYWNrSW5kZXggPD0gc3Bh
bi5maW5hbFBvc2l0aW9uSW5kZXg7ICsrdHJhY2tJbmRleCkKLSAgICAgICAgZ3JpZEFyZWFCcmVh
ZHRoICs9IHRyYWNrc1t0cmFja0luZGV4XS5tX3VzZWRCcmVhZHRoOworICAgIGZvciAoR3JpZFJl
c29sdmVkUG9zaXRpb24gdHJhY2tQb3NpdGlvbiA9IHNwYW4ucmVzb2x2ZWRJbml0aWFsUG9zaXRp
b247IHRyYWNrUG9zaXRpb24gPD0gc3Bhbi5yZXNvbHZlZEZpbmFsUG9zaXRpb247ICsrdHJhY2tQ
b3NpdGlvbikKKyAgICAgICAgZ3JpZEFyZWFCcmVhZHRoICs9IHRyYWNrc1t0cmFja1Bvc2l0aW9u
LnRvSW50KCldLm1fdXNlZEJyZWFkdGg7CiAgICAgcmV0dXJuIGdyaWRBcmVhQnJlYWR0aDsKIH0K
IApAQCAtMTEyNSwxMSArODU4LDExIEBAIHZvaWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVHcmlkUG9z
aXRpb25zKGNvbnN0IEdyaWRTaXppbmdEYXRhJiBzaXppbmdEYXRhKQogTGF5b3V0UG9pbnQgUmVu
ZGVyR3JpZDo6ZmluZENoaWxkTG9naWNhbFBvc2l0aW9uKFJlbmRlckJveCogY2hpbGQsIGNvbnN0
IEdyaWRTaXppbmdEYXRhJiBzaXppbmdEYXRhKQogewogICAgIGNvbnN0IEdyaWRDb29yZGluYXRl
JiBjb29yZGluYXRlID0gY2FjaGVkR3JpZENvb3JkaW5hdGUoY2hpbGQpOwotICAgIEFTU0VSVF9V
TlVTRUQoc2l6aW5nRGF0YSwgY29vcmRpbmF0ZS5jb2x1bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4
IDwgc2l6aW5nRGF0YS5jb2x1bW5UcmFja3Muc2l6ZSgpKTsKLSAgICBBU1NFUlRfVU5VU0VEKHNp
emluZ0RhdGEsIGNvb3JkaW5hdGUucm93cy5pbml0aWFsUG9zaXRpb25JbmRleCA8IHNpemluZ0Rh
dGEucm93VHJhY2tzLnNpemUoKSk7CisgICAgQVNTRVJUX1VOVVNFRChzaXppbmdEYXRhLCBjb29y
ZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKSA8IHNpemluZ0Rh
dGEuY29sdW1uVHJhY2tzLnNpemUoKSk7CisgICAgQVNTRVJUX1VOVVNFRChzaXppbmdEYXRhLCBj
b29yZGluYXRlLnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKSA8IHNpemluZ0Rh
dGEucm93VHJhY2tzLnNpemUoKSk7CiAKICAgICAvLyBUaGUgZ3JpZCBpdGVtcyBzaG91bGQgYmUg
aW5zaWRlIHRoZSBncmlkIGNvbnRhaW5lcidzIGJvcmRlciBib3gsIHRoYXQncyB3aHkgdGhleSBu
ZWVkIHRvIGJlIHNoaWZ0ZWQuCi0gICAgcmV0dXJuIExheW91dFBvaW50KG1fY29sdW1uUG9zaXRp
b25zW2Nvb3JkaW5hdGUuY29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleF0gKyBtYXJnaW5TdGFy
dEZvckNoaWxkKCpjaGlsZCksIG1fcm93UG9zaXRpb25zW2Nvb3JkaW5hdGUucm93cy5pbml0aWFs
UG9zaXRpb25JbmRleF0gKyBtYXJnaW5CZWZvcmVGb3JDaGlsZCgqY2hpbGQpKTsKKyAgICByZXR1
cm4gTGF5b3V0UG9pbnQobV9jb2x1bW5Qb3NpdGlvbnNbY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29s
dmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCldICsgbWFyZ2luU3RhcnRGb3JDaGlsZCgqY2hpbGQp
LCBtX3Jvd1Bvc2l0aW9uc1tjb29yZGluYXRlLnJvd3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24u
dG9JbnQoKV0gKyBtYXJnaW5CZWZvcmVGb3JDaGlsZCgqY2hpbGQpKTsKIH0KIAogdm9pZCBSZW5k
ZXJHcmlkOjpwYWludENoaWxkcmVuKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQ
b2ludCYgcGFpbnRPZmZzZXQsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXggODE4NGVjZmI3NDI2MmE1
NGIxOGVkN2E2MTgzODYxNjUwNDAyYmU0Ny4uM2IzYjZlYjQxMzk1NjE1ODMyYjRkMTYzZWFhOGE0
MDYyOTIyZjZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCkBAIC0yOSw2
ICsyOSw3IEBACiAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogCisjaW5jbHVkZSAiR3Jp
ZFJlc29sdmVkUG9zaXRpb24uaCIKICNpbmNsdWRlICJPcmRlckl0ZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyQmxvY2suaCIKIApAQCAtMzgsMTEgKzM5LDYgQEAgY2xhc3MgR3JpZENvb3JkaW5h
dGU7CiBjbGFzcyBHcmlkU3BhbjsKIGNsYXNzIEdyaWRUcmFjazsKIAotZW51bSBHcmlkVHJhY2tT
aXppbmdEaXJlY3Rpb24gewotICAgIEZvckNvbHVtbnMsCi0gICAgRm9yUm93cwotfTsKLQogY2xh
c3MgUmVuZGVyR3JpZCBmaW5hbCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJsaWM6CiAgICAg
UmVuZGVyR3JpZChFbGVtZW50JiwgUGFzc1JlZjxSZW5kZXJTdHlsZT4pOwpAQCAtNjYsNyArNjIs
NiBAQCBwcml2YXRlOgogCiAgICAgY2xhc3MgR3JpZEl0ZXJhdG9yOwogICAgIGNsYXNzIEdyaWRT
aXppbmdEYXRhOwotICAgIGVudW0gR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIHsgRm9yQ29sdW1u
cywgRm9yUm93cyB9OwogICAgIHZvaWQgY29tcHV0ZVVzZWRCcmVhZHRoT2ZHcmlkVHJhY2tzKEdy
aWRUcmFja1NpemluZ0RpcmVjdGlvbiwgR3JpZFNpemluZ0RhdGEmKTsKICAgICB2b2lkIGNvbXB1
dGVVc2VkQnJlYWR0aE9mR3JpZFRyYWNrcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIEdyaWRT
aXppbmdEYXRhJiwgTGF5b3V0VW5pdCYgYXZhaWxhYmxlTG9naWNhbFNwYWNlKTsKICAgICBib29s
IGdyaWRFbGVtZW50SXNTaHJpbmtUb0ZpdCgpOwpAQCAtNzYsNyArNzEsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zKEdyaWRUcmFj
a1NpemluZ0RpcmVjdGlvbiwgR3JpZFNpemluZ0RhdGEmKTsKIAogICAgIHZvaWQgZ3Jvd0dyaWQo
R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uKTsKLSAgICB2b2lkIGluc2VydEl0ZW1JbnRvR3JpZChS
ZW5kZXJCb3gqLCBzaXplX3Qgcm93VHJhY2ssIHNpemVfdCBjb2x1bW5UcmFjayk7CisgICAgdm9p
ZCBpbnNlcnRJdGVtSW50b0dyaWQoUmVuZGVyQm94KiwgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRp
b24mIHJvd1RyYWNrLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgY29sdW1uVHJhY2spOwog
ICAgIHZvaWQgaW5zZXJ0SXRlbUludG9HcmlkKFJlbmRlckJveCosIGNvbnN0IEdyaWRDb29yZGlu
YXRlJik7CiAgICAgdm9pZCBwbGFjZUl0ZW1zT25HcmlkKCk7CiAgICAgdm9pZCBwb3B1bGF0ZUV4
cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoKTsKQEAgLTEwMCw5ICs5NSw2IEBAIHByaXZhdGU6
CiAgICAgZG91YmxlIGNvbXB1dGVOb3JtYWxpemVkRnJhY3Rpb25CcmVhZHRoKFZlY3RvcjxHcmlk
VHJhY2s+JiwgY29uc3QgR3JpZFNwYW4mIHRyYWNrc1NwYW4sIEdyaWRUcmFja1NpemluZ0RpcmVj
dGlvbiwgTGF5b3V0VW5pdCBhdmFpbGFibGVMb2dpY2FsU3BhY2UpIGNvbnN0OwogCiAgICAgY29u
c3QgR3JpZFRyYWNrU2l6ZSYgZ3JpZFRyYWNrU2l6ZShHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24s
IHNpemVfdCkgY29uc3Q7Ci0gICAgc2l6ZV90IGV4cGxpY2l0R3JpZENvbHVtbkNvdW50KCkgY29u
c3Q7Ci0gICAgc2l6ZV90IGV4cGxpY2l0R3JpZFJvd0NvdW50KCkgY29uc3Q7Ci0gICAgc2l6ZV90
IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKEdyaWRQb3NpdGlvblNpZGUpIGNvbnN0OwogCiAgICAg
TGF5b3V0VW5pdCBsb2dpY2FsQ29udGVudEhlaWdodEZvckNoaWxkKFJlbmRlckJveCosIFZlY3Rv
cjxHcmlkVHJhY2s+Jik7CiAgICAgTGF5b3V0VW5pdCBtaW5Db250ZW50Rm9yQ2hpbGQoUmVuZGVy
Qm94KiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBWZWN0b3I8R3JpZFRyYWNrPiYgY29sdW1u
VHJhY2tzKTsKQEAgLTExMCwxNyArMTAyLDYgQEAgcHJpdmF0ZToKICAgICBMYXlvdXRQb2ludCBm
aW5kQ2hpbGRMb2dpY2FsUG9zaXRpb24oUmVuZGVyQm94KiwgY29uc3QgR3JpZFNpemluZ0RhdGEm
KTsKICAgICBHcmlkQ29vcmRpbmF0ZSBjYWNoZWRHcmlkQ29vcmRpbmF0ZShjb25zdCBSZW5kZXJC
b3gqKSBjb25zdDsKIAotICAgIEdyaWRTcGFuIHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9Q
bGFjZW1lbnRQb3NpdGlvbihjb25zdCBSZW5kZXJCb3gqLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rp
b24sIHNpemVfdCkgY29uc3Q7Ci0gICAgdm9pZCBhZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRpb24o
R3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lkZSkgY29uc3Q7Ci0gICAgdm9pZCBhZGp1c3RH
cmlkUG9zaXRpb25zRnJvbVN0eWxlKEdyaWRQb3NpdGlvbiYgaW5pdGlhbFBvc2l0aW9uLCBHcmlk
UG9zaXRpb24mIGZpbmFsUG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgaW5pdGlhbFBvc2l0aW9u
U2lkZSwgR3JpZFBvc2l0aW9uU2lkZSBmaW5hbFBvc2l0aW9uU2lkZSkgY29uc3Q7Ci0gICAgc3Rk
Ojp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25z
dCBSZW5kZXJCb3gqLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pIGNvbnN0OwotICAgIHNpemVf
dCByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGNvbnN0IEdyaWRQb3NpdGlv
biYsIEdyaWRQb3NpdGlvblNpZGUpIGNvbnN0OwotICAgIHNpemVfdCByZXNvbHZlR3JpZFBvc2l0
aW9uRnJvbVN0eWxlKGNvbnN0IEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNpZGUpIGNvbnN0
OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWlu
c3RPcHBvc2l0ZVBvc2l0aW9uKHNpemVfdCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0
IEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNpZGUpIGNvbnN0OwotICAgIHN0ZDo6dW5pcXVl
X3B0cjxHcmlkU3Bhbj4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0
ZVBvc2l0aW9uKHNpemVfdCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3Np
dGlvbiYsIEdyaWRQb3NpdGlvblNpZGUpIGNvbnN0OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlk
U3Bhbj4gcmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3RhcnROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2Fp
bnN0T3Bwb3NpdGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25z
dCBHcmlkUG9zaXRpb24mLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYpIGNvbnN0OwotICAgIHN0ZDo6
dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5hbWVkR3JpZExpbmVQ
b3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHNpemVfdCByZXNvbHZlZE9wcG9zaXRlUG9z
aXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYsIGNvbnN0IFZlY3RvcjxzaXplX3Q+JikgY29uc3Q7
Ci0KICAgICBMYXlvdXRVbml0IGdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKGNvbnN0IFJlbmRlckJv
eCogY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgY29uc3QgVmVjdG9yPEdyaWRUcmFj
az4mKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9pZCBwYWludENoaWxkcmVuKFBhaW50SW5mbyYg
Zm9yU2VsZiwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBQYWludEluZm8mIGZvckNo
aWxkLCBib29sIHVzZVByaW50UmVjdCkgb3ZlcnJpZGUgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZENvb3JkaW5hdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkQ29vcmRpbmF0ZS5oCmluZGV4IDQ0ZDIwMGJjZGQ1YTFm
YThlYWIzMmYyOTZiODc4ZDkzYjA0Y2YyNzIuLjkwOGYzNjcyYjY5NTM0NjY1NWFkOWY5ZGRjMmYz
YzlmMjg0YmU2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9H
cmlkQ29vcmRpbmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Hcmlk
Q29vcmRpbmF0ZS5oCkBAIC0zNCwzMCArMzQsMzEgQEAKIAogI2lmIEVOQUJMRShDU1NfR1JJRF9M
QVlPVVQpCiAKKyNpbmNsdWRlICJHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oIgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotLy8gQSBzcGFuIGluIGEgc2luZ2xlIGRpcmVjdGlvbiAoZWl0aGVyIHJv
d3Mgb3IgY29sdW1ucykuIE5vdGUgdGhhdCB8aW5pdGlhbFBvc2l0aW9uSW5kZXh8Ci0vLyBhbmQg
fGZpbmFsUG9zaXRpb25JbmRleHwgYXJlIGdyaWQgYXJlYXMnIGluZGV4ZXMsIE5PVCBncmlkIGxp
bmVzJy4gSXRlcmF0aW5nIG92ZXIgdGhlCi0vLyBzcGFuIHNob3VsZCBpbmNsdWRlIGJvdGggfGlu
aXRpYWxQb3NpdGlvbkluZGV4fCBhbmQgfGZpbmFsUG9zaXRpb25JbmRleHwgdG8gYmUgY29ycmVj
dC4KKy8vIEEgc3BhbiBpbiBhIHNpbmdsZSBkaXJlY3Rpb24gKGVpdGhlciByb3dzIG9yIGNvbHVt
bnMpLiBOb3RlIHRoYXQgfHJlc29sdmVkSW5pdGlhbFBvc2l0aW9ufAorLy8gYW5kIHxyZXNvbHZl
ZEZpbmFsUG9zaXRpb258IGFyZSBncmlkIGFyZWFzJyBpbmRleGVzLCBOT1QgZ3JpZCBsaW5lcycu
IEl0ZXJhdGluZyBvdmVyIHRoZQorLy8gc3BhbiBzaG91bGQgaW5jbHVkZSBib3RoIHxyZXNvbHZl
ZEluaXRpYWxQb3NpdGlvbnwgYW5kIHxyZXNvbHZlZEZpbmFsUG9zaXRpb258IHRvIGJlIGNvcnJl
Y3QuCiBjbGFzcyBHcmlkU3BhbiB7CiBwdWJsaWM6Ci0gICAgR3JpZFNwYW4oc2l6ZV90IGluaXRp
YWxQb3NpdGlvbiwgc2l6ZV90IGZpbmFsUG9zaXRpb24pCi0gICAgICAgIDogaW5pdGlhbFBvc2l0
aW9uSW5kZXgoaW5pdGlhbFBvc2l0aW9uKQotICAgICAgICAsIGZpbmFsUG9zaXRpb25JbmRleChm
aW5hbFBvc2l0aW9uKQorICAgIEdyaWRTcGFuKGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBy
ZXNvbHZlZEluaXRpYWxQb3NpdGlvbiwgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29s
dmVkRmluYWxQb3NpdGlvbikKKyAgICAgICAgOiByZXNvbHZlZEluaXRpYWxQb3NpdGlvbihyZXNv
bHZlZEluaXRpYWxQb3NpdGlvbikKKyAgICAgICAgLCByZXNvbHZlZEZpbmFsUG9zaXRpb24ocmVz
b2x2ZWRGaW5hbFBvc2l0aW9uKQogICAgIHsKLSAgICAgICAgQVNTRVJUKGluaXRpYWxQb3NpdGlv
bkluZGV4IDw9IGZpbmFsUG9zaXRpb25JbmRleCk7CisgICAgICAgIEFTU0VSVChyZXNvbHZlZElu
aXRpYWxQb3NpdGlvbiA8PSByZXNvbHZlZEZpbmFsUG9zaXRpb24pOwogICAgIH0KIAogICAgIGJv
b2wgb3BlcmF0b3I9PShjb25zdCBHcmlkU3BhbiYgbykgY29uc3QKICAgICB7Ci0gICAgICAgIHJl
dHVybiBpbml0aWFsUG9zaXRpb25JbmRleCA9PSBvLmluaXRpYWxQb3NpdGlvbkluZGV4ICYmIGZp
bmFsUG9zaXRpb25JbmRleCA9PSBvLmZpbmFsUG9zaXRpb25JbmRleDsKKyAgICAgICAgcmV0dXJu
IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uID09IG8ucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24gJiYg
cmVzb2x2ZWRGaW5hbFBvc2l0aW9uID09IG8ucmVzb2x2ZWRGaW5hbFBvc2l0aW9uOwogICAgIH0K
IAotICAgIHNpemVfdCBpbml0aWFsUG9zaXRpb25JbmRleDsKLSAgICBzaXplX3QgZmluYWxQb3Np
dGlvbkluZGV4OworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVkSW5pdGlhbFBvc2l0
aW9uOworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVkRmluYWxQb3NpdGlvbjsKIH07
CiAKIC8vIFRoaXMgcmVwcmVzZW50cyBhIGdyaWQgYXJlYSB0aGF0IHNwYW5zIGluIGJvdGggcm93
cycgYW5kIGNvbHVtbnMnIGRpcmVjdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9HcmlkUG9zaXRpb24uaAppbmRleCA2OGYyZjM5MWNjNWRhMDczZGQxNjcwOThjMDhjNWE5
Zjg2YTQ4ZmQ0Li41YTBhZjllZTQ3NjBiNGNjNDk0MzIxNGNhZGNiZmQ5NTZhNWViY2ZjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5oCkBAIC00NSwx
MyArNDUsNiBAQCBlbnVtIEdyaWRQb3NpdGlvblR5cGUgewogICAgIE5hbWVkR3JpZEFyZWFQb3Np
dGlvbiAvLyA8aWRlbnQ+CiB9OwogCi1lbnVtIEdyaWRQb3NpdGlvblNpZGUgewotICAgIENvbHVt
blN0YXJ0U2lkZSwKLSAgICBDb2x1bW5FbmRTaWRlLAotICAgIFJvd1N0YXJ0U2lkZSwKLSAgICBS
b3dFbmRTaWRlCi19OwotCiBjbGFzcyBHcmlkUG9zaXRpb24gewogcHVibGljOgogICAgIEdyaWRQ
b3NpdGlvbigpCkBAIC02MCwyMCArNTMsNiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAg
IHN0YXRpYyBpbmxpbmUgc2l6ZV90IGFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVu
ZFNpZGUoc2l6ZV90IHJlc29sdmVkUG9zaXRpb24pCi0gICAgewotICAgICAgICByZXR1cm4gcmVz
b2x2ZWRQb3NpdGlvbiA/IHJlc29sdmVkUG9zaXRpb24gLSAxIDogMDsKLSAgICB9Ci0KLSAgICBz
dGF0aWMgc2l6ZV90IGFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoc2l6ZV90IHJlc29sdmVkUG9z
aXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKLSAgICB7Ci0gICAgICAgIC8vIEFuIGl0ZW0g
ZmluaXNoaW5nIG9uIHRoZSBOLXRoIGxpbmUgYmVsb25ncyB0byB0aGUgTi0xLXRoIGNlbGwuCi0g
ICAgICAgIGlmIChzaWRlID09IENvbHVtbkVuZFNpZGUgfHwgc2lkZSA9PSBSb3dFbmRTaWRlKQot
ICAgICAgICAgICAgcmV0dXJuIGFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNp
ZGUocmVzb2x2ZWRQb3NpdGlvbik7Ci0KLSAgICAgICAgcmV0dXJuIHJlc29sdmVkUG9zaXRpb247
Ci0gICAgfQotCiAgICAgYm9vbCBpc1Bvc2l0aXZlKCkgY29uc3QgeyByZXR1cm4gaW50ZWdlclBv
c2l0aW9uKCkgPiAwOyB9CiAKICAgICBHcmlkUG9zaXRpb25UeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX3R5cGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjOTUxMDBkNGI4OTI4NGY0
OTQxOTZlMTlmYzEyNDBkYTkxYzNlNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwCkBAIC0wLDAgKzEsMzEx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkdyaWRSZXNvbHZlZFBvc2l0aW9uLmgiCisKKyNpZiBFTkFCTEUoQ1NTX0dS
SURfTEFZT1VUKQorCisjaW5jbHVkZSAiR3JpZENvb3JkaW5hdGUuaCIKKyNpbmNsdWRlICJSZW5k
ZXJCb3guaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzaXplX3QgR3JpZFJlc29sdmVkUG9z
aXRpb246OmV4cGxpY2l0R3JpZENvbHVtbkNvdW50KGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29u
dGFpbmVyU3R5bGUpCit7CisgICAgcmV0dXJuIGdyaWRDb250YWluZXJTdHlsZS5ncmlkQ29sdW1u
cygpLnNpemUoKTsKK30KKworc2l6ZV90IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNpdEdy
aWRSb3dDb3VudChjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlKQoreworICAg
IHJldHVybiBncmlkQ29udGFpbmVyU3R5bGUuZ3JpZFJvd3MoKS5zaXplKCk7Cit9CisKK3N0YXRp
YyBpbmxpbmUgYm9vbCBpc0NvbHVtblNpZGUoR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQoreworICAg
IHJldHVybiBzaWRlID09IENvbHVtblN0YXJ0U2lkZSB8fCBzaWRlID09IENvbHVtbkVuZFNpZGU7
Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBpc1N0YXJ0U2lkZShHcmlkUG9zaXRpb25TaWRlIHNp
ZGUpCit7CisgICAgcmV0dXJuIHNpZGUgPT0gQ29sdW1uU3RhcnRTaWRlIHx8IHNpZGUgPT0gUm93
U3RhcnRTaWRlOworfQorCitzaXplX3QgR3JpZFJlc29sdmVkUG9zaXRpb246OmV4cGxpY2l0R3Jp
ZFNpemVGb3JTaWRlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIEdyaWRQ
b3NpdGlvblNpZGUgc2lkZSkKK3sKKyAgICByZXR1cm4gaXNDb2x1bW5TaWRlKHNpZGUpID8gZXhw
bGljaXRHcmlkQ29sdW1uQ291bnQoZ3JpZENvbnRhaW5lclN0eWxlKSA6IGV4cGxpY2l0R3JpZFJv
d0NvdW50KGdyaWRDb250YWluZXJTdHlsZSk7Cit9CisKK0dyaWRTcGFuIEdyaWRSZXNvbHZlZFBv
c2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24oY29u
c3QgUmVuZGVyQm94JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBjb25zdCBHcmlkUmVzb2x2
ZWRQb3NpdGlvbiYgaW5pdGlhbFBvc2l0aW9uKQoreworICAgIC8vIEZJWE1FOiBXZSBkb24ndCBz
dXBwb3J0IHNwYW5uaW5nIHdpdGggYXV0byBwb3NpdGlvbnMgeWV0LiBPbmNlIHdlIGRvLCB0aGlz
IGlzIHdyb25nLiBBbHNvIHdlIHNob3VsZCBtYWtlCisgICAgLy8gc3VyZSB0aGUgZ3JpZCBjYW4g
YWNjb21vZGF0ZSB0aGUgbmV3IGl0ZW0gYXMgd2Ugb25seSBncm93IDEgcG9zaXRpb24gaW4gYSBn
aXZlbiBkaXJlY3Rpb24uCisgICAgcmV0dXJuIEdyaWRTcGFuKGluaXRpYWxQb3NpdGlvbiwgaW5p
dGlhbFBvc2l0aW9uKTsKK30KKworc3RhdGljIGlubGluZSBjb25zdCBOYW1lZEdyaWRMaW5lc01h
cCYgZ3JpZExpbmVzRm9yU2lkZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIEdyaWRQb3NpdGlv
blNpZGUgc2lkZSkKK3sKKyAgICByZXR1cm4gaXNDb2x1bW5TaWRlKHNpZGUpID8gc3R5bGUubmFt
ZWRHcmlkQ29sdW1uTGluZXMoKSA6IHN0eWxlLm5hbWVkR3JpZFJvd0xpbmVzKCk7Cit9CisKK3N0
YXRpYyBpbmxpbmUgY29uc3QgU3RyaW5nIGltcGxpY2l0TmFtZWRHcmlkTGluZUZvclNpZGUoY29u
c3QgU3RyaW5nJiBsaW5lTmFtZSwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQoreworICAgIHJldHVy
biBsaW5lTmFtZSArIChpc1N0YXJ0U2lkZShzaWRlKSA/ICItc3RhcnQiIDogIi1lbmQiKTsKK30K
Kworc3RhdGljIGJvb2wgaXNOb25FeGlzdGVudE5hbWVkTGluZU9yQXJlYShjb25zdCBTdHJpbmcm
IGxpbmVOYW1lLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIEdyaWRQb3NpdGlvblNpZGUgc2lk
ZSkKK3sKKyAgICBjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYgZ3JpZExpbmVOYW1lcyA9IGdyaWRM
aW5lc0ZvclNpZGUoc3R5bGUsIHNpZGUpOworICAgIHJldHVybiAhZ3JpZExpbmVOYW1lcy5jb250
YWlucyhpbXBsaWNpdE5hbWVkR3JpZExpbmVGb3JTaWRlKGxpbmVOYW1lLCBzaWRlKSkgJiYgIWdy
aWRMaW5lTmFtZXMuY29udGFpbnMobGluZU5hbWUpOworfQorCit2b2lkIEdyaWRSZXNvbHZlZFBv
c2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBn
cmlkQ29udGFpbmVyU3R5bGUsIEdyaWRQb3NpdGlvbiYgaW5pdGlhbFBvc2l0aW9uLCBHcmlkUG9z
aXRpb24mIGZpbmFsUG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgaW5pdGlhbFBvc2l0aW9uU2lk
ZSwgR3JpZFBvc2l0aW9uU2lkZSBmaW5hbFBvc2l0aW9uU2lkZSkKK3sKKyAgICBBU1NFUlQoaXND
b2x1bW5TaWRlKGluaXRpYWxQb3NpdGlvblNpZGUpID09IGlzQ29sdW1uU2lkZShmaW5hbFBvc2l0
aW9uU2lkZSkpOworCisgICAgLy8gV2UgbXVzdCBoYW5kbGUgdGhlIHBsYWNlbWVudCBlcnJvciBo
YW5kbGluZyBjb2RlIGhlcmUgaW5zdGVhZCBvZiBpbiB0aGUgU3R5bGVBZGp1c3RlciBiZWNhdXNl
IHdlIGRvbid0IHdhbnQgdG8KKyAgICAvLyBvdmVyd3JpdGUgdGhlIHNwZWNpZmllZCB2YWx1ZXMu
CisgICAgaWYgKGluaXRpYWxQb3NpdGlvbi5pc1NwYW4oKSAmJiBmaW5hbFBvc2l0aW9uLmlzU3Bh
bigpKQorICAgICAgICBmaW5hbFBvc2l0aW9uLnNldEF1dG9Qb3NpdGlvbigpOworCisgICAgLy8g
VHJ5IHRvIGVhcmx5IGRldGVjdCB0aGUgY2FzZSBvZiBub24gZXhpc3RpbmcgbmFtZWQgZ3JpZCBs
aW5lcy4gVGhpcyB3YXkgd2UgY291bGQgYXNzdW1lIGxhdGVyIHRoYXQKKyAgICAvLyBHcmlkUmVz
b2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaXNQb3NpdGlvbkZyb21TdHlsZSgpIHdvbid0IHJlcXVp
cmUgdGhlIGF1dG9wbGFjZW1lbnQgdG8gcnVuLCBpLmUuLCBpdCdsbCBhbHdheXMgcmV0dXJuIGEK
KyAgICAvLyB2YWxpZCByZXNvbHZlZCBwb3NpdGlvbi4KKyAgICBpZiAoaW5pdGlhbFBvc2l0aW9u
LmlzTmFtZWRHcmlkQXJlYSgpICYmIGlzTm9uRXhpc3RlbnROYW1lZExpbmVPckFyZWEoaW5pdGlh
bFBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSwgZ3JpZENvbnRhaW5lclN0eWxlLCBpbml0aWFsUG9z
aXRpb25TaWRlKSkKKyAgICAgICAgaW5pdGlhbFBvc2l0aW9uLnNldEF1dG9Qb3NpdGlvbigpOwor
CisgICAgaWYgKGZpbmFsUG9zaXRpb24uaXNOYW1lZEdyaWRBcmVhKCkgJiYgaXNOb25FeGlzdGVu
dE5hbWVkTGluZU9yQXJlYShmaW5hbFBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSwgZ3JpZENvbnRh
aW5lclN0eWxlLCBmaW5hbFBvc2l0aW9uU2lkZSkpCisgICAgICAgIGZpbmFsUG9zaXRpb24uc2V0
QXV0b1Bvc2l0aW9uKCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gR3JpZFJlc29s
dmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0
eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0sIEdyaWRU
cmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgR3JpZFBvc2l0aW9uIGluaXRp
YWxQb3NpdGlvbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBncmlkSXRlbS5zdHlsZSgp
LmdyaWRJdGVtQ29sdW1uU3RhcnQoKSA6IGdyaWRJdGVtLnN0eWxlKCkuZ3JpZEl0ZW1Sb3dTdGFy
dCgpOworICAgIGNvbnN0IEdyaWRQb3NpdGlvblNpZGUgaW5pdGlhbFBvc2l0aW9uU2lkZSA9IChk
aXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBDb2x1bW5TdGFydFNpZGUgOiBSb3dTdGFydFNpZGU7
CisgICAgR3JpZFBvc2l0aW9uIGZpbmFsUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVt
bnMpID8gZ3JpZEl0ZW0uc3R5bGUoKS5ncmlkSXRlbUNvbHVtbkVuZCgpIDogZ3JpZEl0ZW0uc3R5
bGUoKS5ncmlkSXRlbVJvd0VuZCgpOworICAgIGNvbnN0IEdyaWRQb3NpdGlvblNpZGUgZmluYWxQ
b3NpdGlvblNpZGUgPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gQ29sdW1uRW5kU2lkZSA6
IFJvd0VuZFNpZGU7CisKKyAgICBhZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGdyaWRDb250
YWluZXJTdHlsZSwgaW5pdGlhbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRp
b25TaWRlLCBmaW5hbFBvc2l0aW9uU2lkZSk7CisKKyAgICBpZiAoaW5pdGlhbFBvc2l0aW9uLnNo
b3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigpICYmIGZpbmFsUG9zaXRpb24u
c2hvdWxkQmVSZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKCkpIHsKKyAgICAgICAgaWYg
KGdyaWRDb250YWluZXJTdHlsZS5ncmlkQXV0b0Zsb3coKSA9PSBBdXRvRmxvd05vbmUpCisgICAg
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4oMCwgMCk7CisKKyAgICAg
ICAgLy8gV2UgY2FuJ3QgZ2V0IG91ciBncmlkIHBvc2l0aW9ucyB3aXRob3V0IHJ1bm5pbmcgdGhl
IGF1dG8gcGxhY2VtZW50IGFsZ29yaXRobS4KKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
fQorCisgICAgaWYgKGluaXRpYWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVkQWdhaW5zdE9wcG9z
aXRlUG9zaXRpb24oKSkgeworICAgICAgICAvLyBJbmZlciB0aGUgcG9zaXRpb24gZnJvbSB0aGUg
ZmluYWwgcG9zaXRpb24gKCdhdXRvIC8gMScgb3IgJ3NwYW4gMiAvIDMnIGNhc2UpLgorICAgICAg
ICBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBmaW5hbFJlc29sdmVkUG9zaXRpb24gPSByZXNv
bHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHlsZSwgZmluYWxQb3NpdGlv
biwgZmluYWxQb3NpdGlvblNpZGUpOworICAgICAgICByZXR1cm4gcmVzb2x2ZUdyaWRQb3NpdGlv
bkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGdyaWRDb250YWluZXJTdHlsZSwgZmluYWxSZXNvbHZl
ZFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUpOworICAgIH0K
KworICAgIGlmIChmaW5hbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQ
b3NpdGlvbigpKSB7CisgICAgICAgIC8vIEluZmVyIG91ciBwb3NpdGlvbiBmcm9tIHRoZSBpbml0
aWFsIHBvc2l0aW9uICgnMSAvIGF1dG8nIG9yICczIC8gc3BhbiAyJyBjYXNlKS4KKyAgICAgICAg
Y29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24gaW5pdGlhbFJlc29sdmVkUG9zaXRpb24gPSByZXNv
bHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHlsZSwgaW5pdGlhbFBvc2l0
aW9uLCBpbml0aWFsUG9zaXRpb25TaWRlKTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVHcmlkUG9z
aXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihncmlkQ29udGFpbmVyU3R5bGUsIGluaXRpYWxS
ZXNvbHZlZFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uU2lkZSk7CisgICAg
fQorCisgICAgR3JpZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZWRJbml0aWFsUG9zaXRpb24gPSBy
ZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHlsZSwgaW5pdGlhbFBv
c2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRlKTsKKyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBy
ZXNvbHZlZEZpbmFsUG9zaXRpb24gPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGdyaWRD
b250YWluZXJTdHlsZSwgZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvblNpZGUpOworCisgICAg
Ly8gSWYgJ2dyaWQtcm93LWVuZCcgc3BlY2lmaWVzIGEgbGluZSBhdCBvciBiZWZvcmUgdGhhdCBz
cGVjaWZpZWQgYnkgJ2dyaWQtcm93LXN0YXJ0JywgaXQgY29tcHV0ZXMgdG8gJ3NwYW4gMScuCisg
ICAgaWYgKHJlc29sdmVkRmluYWxQb3NpdGlvbiA8IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uKQor
ICAgICAgICByZXNvbHZlZEZpbmFsUG9zaXRpb24gPSByZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsK
KworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZlZEluaXRpYWxQ
b3NpdGlvbiwgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uKTsKK30KKworR3JpZFJlc29sdmVkUG9zaXRp
b24gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9t
U3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgY29uc3QgR3JpZFBv
c2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQoreworICAgIEFTU0VSVCgh
cG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVsbCgpKTsKKworICAgIGNvbnN0IE5hbWVkR3Jp
ZExpbmVzTWFwJiBncmlkTGluZXNOYW1lcyA9IGlzQ29sdW1uU2lkZShzaWRlKSA/IGdyaWRDb250
YWluZXJTdHlsZS5uYW1lZEdyaWRDb2x1bW5MaW5lcygpIDogZ3JpZENvbnRhaW5lclN0eWxlLm5h
bWVkR3JpZFJvd0xpbmVzKCk7CisgICAgTmFtZWRHcmlkTGluZXNNYXA6OmNvbnN0X2l0ZXJhdG9y
IGl0ID0gZ3JpZExpbmVzTmFtZXMuZmluZChwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkpOworICAg
IGlmIChpdCA9PSBncmlkTGluZXNOYW1lcy5lbmQoKSkgeworICAgICAgICBpZiAocG9zaXRpb24u
aXNQb3NpdGl2ZSgpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNvbnN0IHNpemVf
dCBsYXN0TGluZSA9IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKGdyaWRDb250YWluZXJTdHlsZSwg
c2lkZSk7CisgICAgICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBv
c2l0aW9uRm9yU2lkZShsYXN0TGluZSwgc2lkZSk7CisgICAgfQorCisgICAgc2l6ZV90IG5hbWVk
R3JpZExpbmVJbmRleDsKKyAgICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgpKQorICAgICAgICBu
YW1lZEdyaWRMaW5lSW5kZXggPSBzdGQ6Om1pbjxzaXplX3Q+KHBvc2l0aW9uLmludGVnZXJQb3Np
dGlvbigpLCBpdC0+dmFsdWUuc2l6ZSgpKSAtIDE7CisgICAgZWxzZQorICAgICAgICBuYW1lZEdy
aWRMaW5lSW5kZXggPSBzdGQ6Om1heDxpbnQ+KGl0LT52YWx1ZS5zaXplKCkgLSBhYnMocG9zaXRp
b24uaW50ZWdlclBvc2l0aW9uKCkpLCAwKTsKKyAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRp
b246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoaXQtPnZhbHVlW25hbWVkR3JpZExpbmVJbmRl
eF0sIHNpZGUpOworfQorCitHcmlkUmVzb2x2ZWRQb3NpdGlvbiBHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6cmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENv
bnRhaW5lclN0eWxlLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25T
aWRlIHNpZGUpCit7CisgICAgc3dpdGNoIChwb3NpdGlvbi50eXBlKCkpIHsKKyAgICBjYXNlIEV4
cGxpY2l0UG9zaXRpb246IHsKKyAgICAgICAgQVNTRVJUKHBvc2l0aW9uLmludGVnZXJQb3NpdGlv
bigpKTsKKworICAgICAgICBpZiAoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSkK
KyAgICAgICAgICAgIHJldHVybiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxl
KGdyaWRDb250YWluZXJTdHlsZSwgcG9zaXRpb24sIHNpZGUpOworCisgICAgICAgIC8vIEhhbmRs
ZSA8aW50ZWdlcj4gZXhwbGljaXQgcG9zaXRpb24uCisgICAgICAgIGlmIChwb3NpdGlvbi5pc1Bv
c2l0aXZlKCkpCisgICAgICAgICAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVz
dEdyaWRQb3NpdGlvbkZvclNpZGUocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkgLSAxLCBzaWRl
KTsKKworICAgICAgICBzaXplX3QgcmVzb2x2ZWRQb3NpdGlvbiA9IGFicyhwb3NpdGlvbi5pbnRl
Z2VyUG9zaXRpb24oKSkgLSAxOworICAgICAgICBjb25zdCBzaXplX3QgZW5kT2ZUcmFjayA9IGV4
cGxpY2l0R3JpZFNpemVGb3JTaWRlKGdyaWRDb250YWluZXJTdHlsZSwgc2lkZSk7CisKKyAgICAg
ICAgLy8gUGVyIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1zdHlsZS8y
MDEzTWFyLzA1ODkuaHRtbCwgd2UgY2xhbXAgbmVnYXRpdmUgdmFsdWUgdG8gdGhlIGZpcnN0IGxp
bmUuCisgICAgICAgIGlmIChlbmRPZlRyYWNrIDwgcmVzb2x2ZWRQb3NpdGlvbikKKyAgICAgICAg
ICAgIHJldHVybiAwOworCisgICAgICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRq
dXN0R3JpZFBvc2l0aW9uRm9yU2lkZShlbmRPZlRyYWNrIC0gcmVzb2x2ZWRQb3NpdGlvbiwgc2lk
ZSk7CisgICAgfQorICAgIGNhc2UgTmFtZWRHcmlkQXJlYVBvc2l0aW9uOgorICAgIHsKKyAgICAg
ICAgLy8gRmlyc3QgYXR0ZW1wdCB0byBtYXRjaCB0aGUgZ3JpZCBhcmVhJ3MgZWRnZSB0byBhIG5h
bWVkIGdyaWQgYXJlYTogaWYgdGhlcmUgaXMgYSBuYW1lZCBsaW5lIHdpdGggdGhlIG5hbWUKKyAg
ICAgICAgLy8gJyc8Y3VzdG9tLWlkZW50Pi1zdGFydCAoZm9yIGdyaWQtKi1zdGFydCkgLyA8Y3Vz
dG9tLWlkZW50Pi1lbmQnJyAoZm9yIGdyaWQtKi1lbmQpLCBjb250cmlidXRlcyB0aGUgZmlyc3Qg
c3VjaAorICAgICAgICAvLyBsaW5lIHRvIHRoZSBncmlkIGl0ZW0ncyBwbGFjZW1lbnQuCisgICAg
ICAgIFN0cmluZyBuYW1lZEdyaWRMaW5lID0gcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpOworICAg
ICAgICBBU1NFUlQoIWlzTm9uRXhpc3RlbnROYW1lZExpbmVPckFyZWEobmFtZWRHcmlkTGluZSwg
Z3JpZENvbnRhaW5lclN0eWxlLCBzaWRlKSk7CisKKyAgICAgICAgY29uc3QgTmFtZWRHcmlkTGlu
ZXNNYXAmIGdyaWRMaW5lTmFtZXMgPSBncmlkTGluZXNGb3JTaWRlKGdyaWRDb250YWluZXJTdHls
ZSwgc2lkZSk7CisgICAgICAgIGF1dG8gaW1wbGljaXRMaW5lID0gZ3JpZExpbmVOYW1lcy5maW5k
KGltcGxpY2l0TmFtZWRHcmlkTGluZUZvclNpZGUobmFtZWRHcmlkTGluZSwgc2lkZSkpOworICAg
ICAgICBpZiAoaW1wbGljaXRMaW5lICE9IGdyaWRMaW5lTmFtZXMuZW5kKCkpCisgICAgICAgICAg
ICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUo
aW1wbGljaXRMaW5lLT52YWx1ZVswXSwgc2lkZSk7CisKKyAgICAgICAgLy8gT3RoZXJ3aXNlLCBp
ZiB0aGVyZSBpcyBhIG5hbWVkIGxpbmUgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUsIGNvbnRyaWJ1
dGVzIHRoZSBmaXJzdCBzdWNoIGxpbmUgdG8gdGhlIGdyaWQKKyAgICAgICAgLy8gaXRlbSdzIHBs
YWNlbWVudC4KKyAgICAgICAgYXV0byBleHBsaWNpdExpbmUgPSBncmlkTGluZU5hbWVzLmZpbmQo
bmFtZWRHcmlkTGluZSk7CisgICAgICAgIGlmIChleHBsaWNpdExpbmUgIT0gZ3JpZExpbmVOYW1l
cy5lbmQoKSkKKyAgICAgICAgICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0
R3JpZFBvc2l0aW9uRm9yU2lkZShleHBsaWNpdExpbmUtPnZhbHVlWzBdLCBzaWRlKTsKKworICAg
ICAgICAvLyBJZiBub25lIG9mIHRoZSBhYm92ZSB3b3JrcyBzcGVjcyBtYW5kYXRlIHVzIHRvIHRy
ZWF0IGl0IGFzIGF1dG8gQlVUIHdlIHNob3VsZCBoYXZlIGRldGVjdGVkIGl0IGJlZm9yZSBjYWxs
aW5nCisgICAgICAgIC8vIHRoaXMgZnVuY3Rpb24gaW4gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9t
U3R5bGUoKS4gV2Ugc2hvdWxkIGJlIGNvdmVyZWQgYW55d2F5IGJ5IHRoZSBBU1NFUlQgYXQgdGhl
IGJlZ2lubmluZworICAgICAgICAvLyBvZiB0aGlzIGNhc2UgYmxvY2suCisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgY2FzZSBBdXRv
UG9zaXRpb246CisgICAgY2FzZSBTcGFuUG9zaXRpb246CisgICAgICAgIC8vICdhdXRvJyBhbmQg
c3BhbiBkZXBlbmQgb24gdGhlIG9wcG9zaXRlIHBvc2l0aW9uIGZvciByZXNvbHV0aW9uIChlLmcu
IGdyaWQtcm93OiBhdXRvIC8gMSBvciBncmlkLWNvbHVtbjogc3BhbiAzIC8gIm15SGVhZGVyIiku
CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gR3JpZFJlc29s
dmVkUG9zaXRpb24oMCk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbigwKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPEdyaWRT
cGFuPiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBv
c2l0ZVBvc2l0aW9uKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGNvbnN0
IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdy
aWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sKKyAgICBpZiAo
cG9zaXRpb24uaXNBdXRvKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRT
cGFuPihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7
CisKKyAgICBBU1NFUlQocG9zaXRpb24uaXNTcGFuKCkpOworICAgIEFTU0VSVChwb3NpdGlvbi5z
cGFuUG9zaXRpb24oKSA+IDApOworCisgICAgaWYgKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCku
aXNOdWxsKCkpIHsKKyAgICAgICAgLy8gc3BhbiAyICdjJyAtPiB3ZSBuZWVkIHRvIGZpbmQgdGhl
IGFwcHJvcHJpYXRlIGdyaWQgbGluZSBiZWZvcmUgLyBhZnRlciBvdXIgb3Bwb3NpdGUgcG9zaXRp
b24uCisgICAgICAgIHJldHVybiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9w
cG9zaXRlUG9zaXRpb24oZ3JpZENvbnRhaW5lclN0eWxlLCByZXNvbHZlZE9wcG9zaXRlUG9zaXRp
b24sIHBvc2l0aW9uLCBzaWRlKTsKKyAgICB9CisKKyAgICAvLyAnc3BhbiAxJyBpcyBjb250YWlu
ZWQgaW5zaWRlIGEgc2luZ2xlIGdyaWQgdHJhY2sgcmVnYXJkbGVzcyBvZiB0aGUgZGlyZWN0aW9u
LgorICAgIC8vIFRoYXQncyB3aHkgdGhlIENTUyBzcGFuIHZhbHVlIGlzIG9uZSBtb3JlIHRoYW4g
dGhlIG9mZnNldCB3ZSBhcHBseS4KKyAgICBzaXplX3QgcG9zaXRpb25PZmZzZXQgPSBwb3NpdGlv
bi5zcGFuUG9zaXRpb24oKSAtIDE7CisgICAgaWYgKGlzU3RhcnRTaWRlKHNpZGUpKSB7CisgICAg
ICAgIHNpemVfdCBpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiA9IHN0ZDo6bWF4PGludD4oMCwgcmVz
b2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLnRvSW50KCkgLSBwb3NpdGlvbk9mZnNldCk7CisgICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihpbml0aWFsUmVzb2x2ZWRQb3NpdGlv
biwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCByZXNvbHZlZE9w
cG9zaXRlUG9zaXRpb24udG9JbnQoKSArIHBvc2l0aW9uT2Zmc2V0KTsKK30KKworc3RkOjp1bmlx
dWVfcHRyPEdyaWRTcGFuPiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZU5hbWVkR3JpZExp
bmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJlbmRlclN0eWxlJiBncmlk
Q29udGFpbmVyU3R5bGUsIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9z
aXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNp
ZGUgc2lkZSkKK3sKKyAgICBBU1NFUlQocG9zaXRpb24uaXNTcGFuKCkpOworICAgIEFTU0VSVCgh
cG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVsbCgpKTsKKyAgICAvLyBOZWdhdGl2ZSBwb3Np
dGlvbnMgYXJlIG5vdCBhbGxvd2VkIHBlciB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgc2hvdWxkIGhh
dmUgYmVlbiBoYW5kbGVkIGR1cmluZyBwYXJzaW5nLgorICAgIEFTU0VSVChwb3NpdGlvbi5zcGFu
UG9zaXRpb24oKSA+IDApOworCisgICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIGdyaWRMaW5l
c05hbWVzID0gaXNDb2x1bW5TaWRlKHNpZGUpID8gZ3JpZENvbnRhaW5lclN0eWxlLm5hbWVkR3Jp
ZENvbHVtbkxpbmVzKCkgOiBncmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlkUm93TGluZXMoKTsK
KyAgICBOYW1lZEdyaWRMaW5lc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBncmlkTGluZXNOYW1l
cy5maW5kKHBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSk7CisKKyAgICAvLyBJZiB0aGVyZSBpcyBu
byBuYW1lZCBncmlkIGxpbmUgb2YgdGhhdCBuYW1lLCB3ZSByZXNvbHZlIHRoZSBwb3NpdGlvbiB0
byAnYXV0bycgKHdoaWNoIGlzIGVxdWl2YWxlbnQgdG8gJ3NwYW4gMScgaW4gdGhpcyBjYXNlKS4K
KyAgICAvLyBTZWUgaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxl
LzIwMTNKdW4vMDM5NC5odG1sLgorICAgIGlmIChpdCA9PSBncmlkTGluZXNOYW1lcy5lbmQoKSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3Np
dGVQb3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKKworICAgIGlmIChzaWRlID09
IFJvd1N0YXJ0U2lkZSB8fCBzaWRlID09IENvbHVtblN0YXJ0U2lkZSkKKyAgICAgICAgcmV0dXJu
IHJlc29sdmVSb3dTdGFydENvbHVtblN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9w
cG9zaXRlUG9zaXRpb24ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBwb3NpdGlvbiwgaXQtPnZh
bHVlKTsKKworICAgIHJldHVybiByZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBv
c2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBw
b3NpdGlvbiwgaXQtPnZhbHVlKTsKK30KKworc3RhdGljIGlubGluZSBzaXplX3QgZmlyc3ROYW1l
ZEdyaWRMaW5lQmVmb3JlUG9zaXRpb24oc2l6ZV90IHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8c2l6
ZV90PiYgZ3JpZExpbmVzKQoreworICAgIC8vIFRoZSBncmlkIGxpbmUgaW5lcXVhbGl0eSBuZWVk
cyB0byBiZSBzdHJpY3QgKHdoaWNoIGRvZXNuJ3QgbWF0Y2ggdGhlIGFmdGVyIC8gZW5kIGNhc2Up
IGJlY2F1c2UgfHBvc2l0aW9ufCBpcworICAgIC8vIGFscmVhZHkgY29udmVydGVkIHRvIGFuIGlu
ZGV4IGluIG91ciBncmlkIHJlcHJlc2VudGF0aW9uIChpZSBvbmUgd2FzIHJlbW92ZWQgZnJvbSB0
aGUgZ3JpZCBsaW5lIHRvIGFjY291bnQgZm9yCisgICAgLy8gdGhlIHNpZGUpLgorICAgIHNpemVf
dCBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbkluZGV4ID0gMDsKKyAgICBjb25zdCBzaXplX3QqIGZp
cnN0TGluZUJlZm9yZVBvc2l0aW9uID0gc3RkOjpsb3dlcl9ib3VuZChncmlkTGluZXMuYmVnaW4o
KSwgZ3JpZExpbmVzLmVuZCgpLCBwb3NpdGlvbik7CisgICAgaWYgKGZpcnN0TGluZUJlZm9yZVBv
c2l0aW9uICE9IGdyaWRMaW5lcy5lbmQoKSkgeworICAgICAgICBpZiAoKmZpcnN0TGluZUJlZm9y
ZVBvc2l0aW9uID4gcG9zaXRpb24gJiYgZmlyc3RMaW5lQmVmb3JlUG9zaXRpb24gIT0gZ3JpZExp
bmVzLmJlZ2luKCkpCisgICAgICAgICAgICAtLWZpcnN0TGluZUJlZm9yZVBvc2l0aW9uOworCisg
ICAgICAgIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uSW5kZXggPSBmaXJzdExpbmVCZWZvcmVQb3Np
dGlvbiAtIGdyaWRMaW5lcy5iZWdpbigpOworICAgIH0KKyAgICByZXR1cm4gZmlyc3RMaW5lQmVm
b3JlUG9zaXRpb25JbmRleDsKK30KKworc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBHcmlkUmVz
b2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3RhcnROYW1lZEdyaWRMaW5lUG9z
aXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYg
cmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBj
b25zdCBWZWN0b3I8c2l6ZV90PiYgZ3JpZExpbmVzKQoreworICAgIHNpemVfdCBncmlkTGluZUlu
ZGV4ID0gc3RkOjptYXg8aW50PigwLCBmaXJzdE5hbWVkR3JpZExpbmVCZWZvcmVQb3NpdGlvbihy
ZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24udG9JbnQoKSwgZ3JpZExpbmVzKSAtIHBvc2l0aW9uLnNw
YW5Qb3NpdGlvbigpICsgMSk7CisgICAgR3JpZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZWRHcmlk
TGluZVBvc2l0aW9uID0gR3JpZFJlc29sdmVkUG9zaXRpb24oZ3JpZExpbmVzW2dyaWRMaW5lSW5k
ZXhdKTsKKyAgICBpZiAocmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID4gcmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uKQorICAgICAgICByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSByZXNvbHZlZE9w
cG9zaXRlUG9zaXRpb247CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJl
c29sdmVkR3JpZExpbmVQb3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKK30KKwor
c3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZVJv
d0VuZENvbHVtbkVuZE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9u
KGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNv
bnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIGNvbnN0IFZlY3RvcjxzaXplX3Q+JiBncmlkTGlu
ZXMpCit7CisgICAgc2l6ZV90IGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbkluZGV4ID0g
Z3JpZExpbmVzLnNpemUoKSAtIDE7CisgICAgY29uc3Qgc2l6ZV90KiBmaXJzdExpbmVBZnRlck9w
cG9zaXRlUG9zaXRpb24gPSBzdGQ6OnVwcGVyX2JvdW5kKGdyaWRMaW5lcy5iZWdpbigpLCBncmlk
TGluZXMuZW5kKCksIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7CisgICAgaWYgKGZpcnN0TGlu
ZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbiAhPSBncmlkTGluZXMuZW5kKCkpCisgICAgICAgIGZpcnN0
TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbkluZGV4ID0gZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBv
c2l0aW9uIC0gZ3JpZExpbmVzLmJlZ2luKCk7CisKKyAgICBzaXplX3QgZ3JpZExpbmVJbmRleCA9
IHN0ZDo6bWluKGdyaWRMaW5lcy5zaXplKCkgLSAxLCBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9z
aXRpb25JbmRleCArIHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpIC0gMSk7CisgICAgR3JpZFJlc29s
dmVkUG9zaXRpb24gcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gR3JpZFJlc29sdmVkUG9zaXRp
b246OmFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNpZGUoZ3JpZExpbmVzW2dy
aWRMaW5lSW5kZXhdKTsKKyAgICBpZiAocmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uIDwgcmVzb2x2
ZWRPcHBvc2l0ZVBvc2l0aW9uKQorICAgICAgICByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSBy
ZXNvbHZlZE9wcG9zaXRlUG9zaXRpb247CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3Jp
ZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9u
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19H
UklEX0xBWU9VVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9H
cmlkUmVzb2x2ZWRQb3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dy
aWRSZXNvbHZlZFBvc2l0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2RhMGM0NWQyMGFjYWM5YjJjN2Q1ZDA0
OTc1NWIwMTc5OGZlOTJkMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5oCkBAIC0wLDAgKzEsMTUzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHcmlkUmVzb2x2ZWRQb3NpdGlv
bl9oCisjZGVmaW5lIEdyaWRSZXNvbHZlZFBvc2l0aW9uX2gKKworI2lmIEVOQUJMRShDU1NfR1JJ
RF9MQVlPVVQpCisKKyNpbmNsdWRlICJHcmlkUG9zaXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBHcmlkU3BhbjsKK2NsYXNzIFJlbmRlckJveDsKK2NsYXNzIFJlbmRlclN0
eWxlOworCitlbnVtIEdyaWRQb3NpdGlvblNpZGUgeworICAgIENvbHVtblN0YXJ0U2lkZSwKKyAg
ICBDb2x1bW5FbmRTaWRlLAorICAgIFJvd1N0YXJ0U2lkZSwKKyAgICBSb3dFbmRTaWRlCit9Owor
CitlbnVtIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiB7CisgICAgRm9yQ29sdW1ucywKKyAgICBG
b3JSb3dzCit9OworCisvLyBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYW4gaW5kZXggaW50byBvbmUg
b2YgdGhlIGRpbWVuc2lvbnMgb2YgdGhlIGdyaWQgYXJyYXkuCisvLyBXcmFwcyBhIHNpemVfdCBp
bnRlZ2VyIGp1c3QgZm9yIHRoZSBwdXJwb3NlIG9mIGtub3dpbmcgd2hhdCB3ZSBtYW5pcHVsYXRl
IGluIHRoZSBncmlkIGNvZGUuCitjbGFzcyBHcmlkUmVzb2x2ZWRQb3NpdGlvbiB7CitwdWJsaWM6
CisgICAgc3RhdGljIEdyaWRSZXNvbHZlZFBvc2l0aW9uIGFkanVzdEdyaWRQb3NpdGlvbkZvclJv
d0VuZENvbHVtbkVuZFNpZGUoc2l6ZV90IHJlc29sdmVkUG9zaXRpb24pCisgICAgeworICAgICAg
ICByZXR1cm4gcmVzb2x2ZWRQb3NpdGlvbiA/IEdyaWRSZXNvbHZlZFBvc2l0aW9uKHJlc29sdmVk
UG9zaXRpb24gLSAxKSA6IEdyaWRSZXNvbHZlZFBvc2l0aW9uKDApOworICAgIH0KKworICAgIHN0
YXRpYyBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBhZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKHNpemVf
dCByZXNvbHZlZFBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCisgICAgeworICAgICAg
ICAvLyBBbiBpdGVtIGZpbmlzaGluZyBvbiB0aGUgTi10aCBsaW5lIGJlbG9uZ3MgdG8gdGhlIE4t
MS10aCBjZWxsLgorICAgICAgICBpZiAoc2lkZSA9PSBDb2x1bW5FbmRTaWRlIHx8IHNpZGUgPT0g
Um93RW5kU2lkZSkKKyAgICAgICAgICAgIHJldHVybiBhZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dF
bmRDb2x1bW5FbmRTaWRlKHJlc29sdmVkUG9zaXRpb24pOworCisgICAgICAgIHJldHVybiBHcmlk
UmVzb2x2ZWRQb3NpdGlvbihyZXNvbHZlZFBvc2l0aW9uKTsKKyAgICB9CisKKyAgICBzdGF0aWMg
c2l6ZV90IGV4cGxpY2l0R3JpZENvbHVtbkNvdW50KGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29u
dGFpbmVyU3R5bGUpOworICAgIHN0YXRpYyBzaXplX3QgZXhwbGljaXRHcmlkUm93Q291bnQoY29u
c3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSk7CisKKyAgICBzdGF0aWMgR3JpZFNw
YW4gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKGNvbnN0IFJl
bmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgY29uc3QgR3JpZFJlc29sdmVkUG9z
aXRpb24mKTsKKyAgICBzdGF0aWMgdm9pZCBhZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRpb24oY29u
c3QgUmVuZGVyU3R5bGUmLCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKTsKKyAgICBz
dGF0aWMgdm9pZCBhZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxl
JiwgR3JpZFBvc2l0aW9uJiBpbml0aWFsUG9zaXRpb24sIEdyaWRQb3NpdGlvbiYgZmluYWxQb3Np
dGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlLCBHcmlkUG9zaXRpb25T
aWRlIGZpbmFsUG9zaXRpb25TaWRlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdyaWRT
cGFuPiByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYsIGNv
bnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbik7CisgICAgc3RhdGljIEdy
aWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUo
Y29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRl
KTsKKyAgICBzdGF0aWMgR3JpZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZUdyaWRQb3NpdGlvbkZy
b21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEdyaWRQb3NpdGlvbiYsIEdyaWRQb3Np
dGlvblNpZGUpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVH
cmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBSZW5kZXJTdHlsZSYsIGNv
bnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0
IEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNpZGUpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3Np
dGVQb3NpdGlvbihjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9u
JiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYsIEdyaWRQb3Np
dGlvblNpZGUpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVS
b3dTdGFydENvbHVtblN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9z
aXRpb24oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlv
biwgY29uc3QgR3JpZFBvc2l0aW9uJiwgY29uc3QgVmVjdG9yPHNpemVfdD4mKTsKKyAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRH
cmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3QgR3JpZFJlc29sdmVk
UG9zaXRpb24mIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiwg
Y29uc3QgVmVjdG9yPHNpemVfdD4mKTsKKworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uKHNpemVf
dCBwb3NpdGlvbikKKyAgICAgICAgOiBtX2ludGVnZXJQb3NpdGlvbihwb3NpdGlvbikKKyAgICB7
CisgICAgfQorCisgICAgR3JpZFJlc29sdmVkUG9zaXRpb24oY29uc3QgR3JpZFBvc2l0aW9uJiBw
b3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHBv
c2l0aW9uLmludGVnZXJQb3NpdGlvbigpKTsKKyAgICAgICAgc2l6ZV90IGludGVnZXJQb3NpdGlv
biA9IHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpIC0gMTsKKworICAgICAgICBtX2ludGVnZXJQ
b3NpdGlvbiA9IGFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoaW50ZWdlclBvc2l0aW9uLCBzaWRl
KS5tX2ludGVnZXJQb3NpdGlvbjsKKyAgICB9CisKKyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYg
b3BlcmF0b3IrKygpCisgICAgeworICAgICAgICBtX2ludGVnZXJQb3NpdGlvbisrOworICAgICAg
ICByZXR1cm4gKnRoaXM7CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdyaWRS
ZXNvbHZlZFBvc2l0aW9uJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lu
dGVnZXJQb3NpdGlvbiA9PSBvdGhlci5tX2ludGVnZXJQb3NpdGlvbjsKKyAgICB9CisKKyAgICBi
b29sIG9wZXJhdG9yPChjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgb3RoZXIpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gbV9pbnRlZ2VyUG9zaXRpb24gPCBvdGhlci5tX2ludGVnZXJQ
b3NpdGlvbjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPihjb25zdCBHcmlkUmVzb2x2ZWRQ
b3NpdGlvbiYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pbnRlZ2VyUG9z
aXRpb24gPiBvdGhlci5tX2ludGVnZXJQb3NpdGlvbjsKKyAgICB9CisKKyAgICBib29sIG9wZXJh
dG9yPD0oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIG90aGVyKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG1faW50ZWdlclBvc2l0aW9uIDw9IG90aGVyLm1faW50ZWdlclBvc2l0aW9u
OworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I+PShjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlv
biYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pbnRlZ2VyUG9zaXRpb24g
Pj0gb3RoZXIubV9pbnRlZ2VyUG9zaXRpb247CisgICAgfQorCisgICAgc2l6ZV90IHRvSW50KCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ludGVnZXJQb3NpdGlvbjsKKyAgICB9CisK
KyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBuZXh0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJl
dHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbihtX2ludGVnZXJQb3NpdGlvbiArIDEpOworICAgIH0K
KworcHJpdmF0ZToKKworICAgIHN0YXRpYyBzaXplX3QgZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUo
Y29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgR3JpZFBvc2l0aW9uU2lkZSk7
CisKKyAgICBzaXplX3QgbV9pbnRlZ2VyUG9zaXRpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorCisjZW5kaWYgLy8g
R3JpZFJlc29sdmVkUG9zaXRpb25faAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232989</attachid>
            <date>2014-06-12 14:51:03 -0700</date>
            <delta_ts>2014-06-13 05:05:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131732-20140612235037.patch</filename>
            <type>text/plain</type>
            <size>80354</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5ODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk5YTc4ZTA0MGJhOTBm
MzQ1NTliYTQxODMxNTVhNWQ3MWY1OGQ5ZS4uNmM0YTg4N2NkOTg4MWJkNzM0ZGQzODhmYmE2ZWY2
NzQzZWUyZTIyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMyBAQAorMjAxNC0wNi0xMiAgTWFu
dWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbQ1NTIEdy
aWQgTGF5b3V0XSBJbnRyb2R1Y2UgYW4gZXhwbGljaXQgdHlwZSBmb3IgcmVzb2x2ZWQgZ3JpZCBw
b3NpdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMTczMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdlIHdlcmUgdXNpbmcgc2ltcGxlIHNpemVfdCBpbnRlZ2VycyB0byByZXByZXNlbnQgcmVzb2x2
ZWQgZ3JpZAorICAgICAgICBwb3NpdGlvbnMgaW4gb3VyIGludGVybmFsIGRhdGEgc3RydWN0dXJl
cy4gVGhpcyBjaGFuZ2UgYWxsb3dzIHVzIHRvCisgICAgICAgIGNsYXJpZnkgdGhlIGNvZGUsIGF2
b2lkIHBvdGVudGlhbCBvZmYgYnkgb25lIG1pc3Rha2VzLCBhbmQgbW92ZSB0aGUKKyAgICAgICAg
cmVzb2x2aW5nIGNvZGUgdG8gYSBjZW50cmFsIHBsYWNlLgorCisgICAgICAgIEEgbmV3IGNsYXNz
IEdyaWRSZXNvbHZlZFBvc2l0aW9uIGhhcyBiZWVuIGNyZWF0ZWQgYW5kIHRoZSByZWxhdGVkCisg
ICAgICAgIG1ldGhvZHMgaGF2ZSBiZWVuIG1vdmVkIHRoZXJlIGZyb20gUmVuZGVyR3JpZC4KKyAg
ICAgICAgR3JpZFNwYW4gaXMgbm93IGRlZmluZWQgYnkgdHdvIEdyaWRSZXNvbHZlZFBvc2l0aW9u
LCBzbyBhbGwgdGhlIGNvZGUKKyAgICAgICAgdXNpbmcgaXQgaGFzIGJlZW4gbW9kaWZpZWQgdG8g
YWRhcHQgaXQgdG8gR3JpZFJlc29sdmVkUG9zaXRpb24uCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
IGFzIGl0IGlzIGFscmVhZHkgY292ZXJlZCBieSBjdXJyZW50IHRlc3RzCisgICAgICAgIChmYXN0
L2Nzcy1ncmlkLWxheW91dC8pLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGNzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1Zh
bHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ0ZvclBvc2l0aW9uKToKKyAgICAgICAg
KiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VH
cmlkVGVtcGxhdGVBcmVhc1Jvdyk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSW1wbGljaXROYW1lZEdyaWRMaW5lc0Zyb21HcmlkQXJl
YSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZVVzZWRCcmVhZHRoT2ZHcmlkVHJhY2tzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNvbXB1dGVOb3JtYWxpemVkRnJhY3Rpb25CcmVhZHRoKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlc29sdmVDb250ZW50QmFzZWRUcmFja1Np
emluZ0Z1bmN0aW9uc0Zvckl0ZW1zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6Omlu
c2VydEl0ZW1JbnRvR3JpZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwbGFjZUl0
ZW1zT25HcmlkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBvcHVsYXRlRXhwbGlj
aXRHcmlkQW5kT3JkZXJJdGVyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpw
bGFjZVNwZWNpZmllZE1ham9yQXhpc0l0ZW1zT25HcmlkKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0ZW1PbkdyaWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyR3JpZDo6YXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvckNoaWxkKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmZpbmRDaGlsZExvZ2ljYWxQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpleHBsaWNpdEdyaWRSb3dD
b3VudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppc0NvbHVtblNpZGUpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6aXNTdGFydFNpZGUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyR3JpZDo6ZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1Bs
YWNlbWVudFBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmdyaWRMaW5lc0Zv
clNpZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6aW1wbGljaXROYW1lZEdyaWRMaW5l
Rm9yU2lkZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppc05vbkV4aXN0ZW50TmFtZWRM
aW5lT3JBcmVhKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmFkanVz
dEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21T
dHlsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlR3Jp
ZFBvc2l0aW9uRnJvbVN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OnJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0
aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
Zmlyc3ROYW1lZEdyaWRMaW5lQmVmb3JlUG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3RhcnROYW1lZEdyaWRMaW5l
UG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0
aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJHcmlkLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRDb29yZGluYXRl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmlkU3Bhbjo6R3JpZFNwYW4pOgorICAgICAgICAoV2Vi
Q29yZTo6R3JpZFNwYW46Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9H
cmlkUG9zaXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRQb3NpdGlvbjo6YWRqdXN0R3Jp
ZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpHcmlkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUpOiBEZWxldGVkLgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHA6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OmV4cGxpY2l0R3JpZENv
bHVtbkNvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBs
aWNpdEdyaWRSb3dDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjppc0NvbHVtblNpZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6aXNTdGFydFNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6ZXhwbGljaXRH
cmlkU2l6ZUZvclNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246
OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpncmlkTGluZXNGb3JTaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OmltcGxpY2l0
TmFtZWRHcmlkTGluZUZvclNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6aXNOb25FeGlzdGVudE5h
bWVkTGluZU9yQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
YWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVz
b2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRp
b25Gcm9tU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OnJl
c29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29s
dmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZU5hbWVkR3Jp
ZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OmZpcnN0TmFtZWRHcmlkTGluZUJlZm9yZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
aWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlUm93U3RhcnRDb2x1bW5TdGFydE5hbWVkR3JpZExp
bmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
aWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBv
c2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRS
ZXNvbHZlZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9z
aXRpb25Gb3JTaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpH
cmlkUmVzb2x2ZWRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3Np
dGlvbjo6b3BlcmF0b3IrKyk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
b3BlcmF0b3I8KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpvcGVy
YXRvcj4pOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246Om9wZXJhdG9y
PD0pOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246Om9wZXJhdG9yPj0p
OgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OnRvSW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpuZXh0KToKKwogMjAxNC0wNi0xMiAg
UHJhdGlrIFNvbGFua2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgY3Jl
YXRpbmcgYSBDRkRhdGEgd2hlbiBjaGVja2luZyBpZiBhIHJlc291cmNlIGlzIGZpbGUgYmFja2Vk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQ0OTIzNGZkNjhkY2NmZjMyNzZiMmNmZTMxNmNlMjc2
OTFmMGE0MGIuLjkxYjNmZTQ4OGQxM2RkYjRlNDIzNGViZWY2OTE0NmFjOTc5NTM1M2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0yMzg3LDYgKzIzODcsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VT
CiAgICAgcmVuZGVyaW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcAogICAgIHJlbmRlcmluZy9zdHls
ZS9Db3VudGVyRGlyZWN0aXZlcy5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNw
cAorICAgIHJlbmRlcmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAKICAgICByZW5k
ZXJpbmcvc3R5bGUvS2V5ZnJhbWVMaXN0LmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9OaW5lUGll
Y2VJbWFnZS5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDVkNDRjODk3
MzAyMjViZDE2NWFhZjJiMjIzMWYyYTQxOTIzNDZkYjYuLjUwMzQxMTZhMDMzODdlYzhkYzI4YzYz
YmRmM2EyOWMxMmMzOGEzNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvagpAQCAtMTE0NzIsNiArMTE0NzIsNyBAQAogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJv
ZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkUmVzb2x2ZWRQ
b3NpdGlvbi5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5
bGVcS2V5ZnJhbWVMaXN0LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CkBAIC0yMDE1Miw2ICsyMDE1Myw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZENvb3JkaW5hdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkTGVuZ3RoLmgiIC8+CiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFBvc2l0aW9uLmgiIC8+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFJlc29sdmVkUG9zaXRp
b24uaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlk
VHJhY2tTaXplLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5
bGVcS2V5ZnJhbWVMaXN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJp
bmdcc3R5bGVcTmluZVBpZWNlSW1hZ2UuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCAxNDA2YTU0MjI4
NGMzZmNhOTU3ZGU0OTM5YTJkOTVhNzQ2OWEwYTkyLi4yMjI5MzBiM2I0OGFmZjc4YWQ0NWYyMzkx
MDM2MjJlY2E3YTg5OGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC0yNzc1LDYgKzI3NzUsOSBAQAogICAg
IDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEZpbGxMYXllci5jcHAiPgog
ICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc3R5bGU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4K
KyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkUmVzb2x2ZWRQ
b3NpdGlvbi5jcHAiPgorICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc3R5bGU8L0ZpbHRlcj4KKyAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHls
ZVxLZXlmcmFtZUxpc3QuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHN0eWxlPC9GaWx0
ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC05NzA5LDYgKzk3MTIsOSBAQAogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRQb3NpdGlvbi5oIj4KICAgICAgIDxG
aWx0ZXI+cmVuZGVyaW5nXHN0eWxlPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFJlc29sdmVkUG9zaXRpb24u
aCI+CisgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzdHlsZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNs
dWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRUcmFj
a1NpemUuaCI+CiAgICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzdHlsZTwvRmlsdGVyPgogICAgIDwv
Q2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDI0MTUwZDg0YTVkY2ZlNzdlYjQ1ZGEwZDMwZWFhOWI2MTM0MmZhMjAu
LjE1NDNmZjkxZGE2ZGVmOTMxZmZlOGE2Nzc4MjkwNzcwODYwNDA0ODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3MTIsNiAr
NTcxMiw4IEBACiAJCUNERjJCMDE5MTgyMDU0MDcwMEYyQjQyNCAvKiBNb2NrVHJhY2tzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREYyQjAwRjE4MjA1
NDA2MDBGMkI0MjQgLyogTW9ja1RyYWNrcy5oICovOyB9OwogCQlDREY2NUNDODE0NUIxRTc1MDBD
NEM3QUEgLyogTWVkaWFDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDRDI3RjZFNDE0NTc2Nzg3MDA3ODIwN0QgLyogTWVkaWFDb250cm9s
bGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
Q0RGNjVDQ0ExNDVCNDQ4ODAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNjVDQzkxNDVC
NDNBNzAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERjc0ODNFMThGRUJDRUMwMDA2
RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREY3NDgzQzE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJl
c29sdmVkUG9zaXRpb24uY3BwICovOyB9OworCQlDREY3NDgzRjE4RkVCQ0VDMDAwNkVDQzAgLyog
R3JpZFJlc29sdmVkUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENERjc0ODNEMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3Np
dGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUNERkMzNjA1MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGQzM2MDMxOENB
NjFDMjAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAgKi87IH07CiAJCUNERkMz
NjA2MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERkMzNjA0MThDQTYxQzIwMDI2
RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREZDMzYwNzE4Q0E2OTZDMDAyNkU1NkYgLyogUmVt
b3RlQ29tbWFuZExpc3RlbmVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0RGQzM2MDIxOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRM
aXN0ZW5lcklPUy5tbSAqLzsgfTsKQEAgLTEzMTQ3LDYgKzEzMTQ5LDggQEAKIAkJQ0RGMkIwMEYx
ODIwNTQwNjAwRjJCNDI0IC8qIE1vY2tUcmFja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTW9ja1RyYWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY2
NUNDOTE0NUI0M0E3MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY2NUNDQzE0NUI2QUZFMDBDNEM3QUEgLyog
SlNIVE1MTWVkaWFFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEpTSFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUNERjc0ODNDMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3Np
dGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBHcmlkUmVzb2x2
ZWRQb3NpdGlvbi5jcHA7IHBhdGggPSBzdHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNERjc0ODNEMThGRUJDRUMwMDA2RUNDMCAvKiBH
cmlkUmVzb2x2ZWRQb3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBH
cmlkUmVzb2x2ZWRQb3NpdGlvbi5oOyBwYXRoID0gc3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGQzM2MDExOENBNjE2MzAwMjZFNTZG
IC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBSZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MuaDsgcGF0aCA9IGlvcy9SZW1vdGVDb21t
YW5kTGlzdGVuZXJJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGQzM2MDIx
OENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5t
bTsgcGF0aCA9IGlvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNERkMzNjAzMThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5k
TGlzdGVuZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3Rl
Q29tbWFuZExpc3RlbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwODU0
LDYgKzIwODU4LDggQEAKIAkJCQlDRDNFMjUxQjE4MDQ2QjA2MDBFMjdGNTYgLyogR3JpZENvb3Jk
aW5hdGUuaCAqLywKIAkJCQlDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5o
ICovLAogCQkJCUExMjcwNUMyMTY1NkJENjUwMEMyRTI3QyAvKiBHcmlkUG9zaXRpb24uaCAqLywK
KwkJCQlDREY3NDgzQzE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3Bw
ICovLAorCQkJCUNERjc0ODNEMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlv
bi5oICovLAogCQkJCUExMkExMDRFMTY2NDQ0REMwMDhGQTMxMSAvKiBHcmlkVHJhY2tTaXplLmgg
Ki8sCiAJCQkJQkM1RUJBMEUwRTgyM0U0NzAwQjI1OTY1IC8qIEtleWZyYW1lTGlzdC5jcHAgKi8s
CiAJCQkJQkM1RUJBMEYwRTgyM0U0NzAwQjI1OTY1IC8qIEtleWZyYW1lTGlzdC5oICovLApAQCAt
MjQ2MTcsNiArMjQ2MjMsNyBAQAogCQkJCUE4MEU3RTlGMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hU
TUxCdXR0b25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzhFNjY2MjA5RjA5Qjg3MDA4
QTQ4RUMgLyogSlNIVE1MQ2FudmFzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDQkFE
NDEwQzE4QzE0MjAwQ0U4OTBGIC8qIEpTSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCUNERjc0ODNGMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRjVDMDQxRTcwRkZDQTk2RDAwODM5RDRBIC8qIEpTSFRNTERhdGFM
aXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRDM1OUQ4QkYxMjlDQTU1QzAwMDZFNUQy
IC8qIEpTSFRNTERldGFpbHNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NjgwOEI1MDE1
OURBREZBMDAyQjUyMzMgLyogSlNIVE1MRGlhbG9nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNzM2OCw2ICsyNzM3NSw3IEBACiAJCQkJQTQyMjZFOTYxMTYzRDczQTAwOEI4Mzk3IC8qIERP
TUhUTUxQcm9ncmVzc0VsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTE4M0I0QjBBQTY5
MjYxMDBGMTlGQTMgLyogRE9NSFRNTFF1b3RlRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTg1REY4MTlDMEFBNzdFNEIwMDQ4NkFENyAvKiBET01IVE1MU2NyaXB0RWxlbWVudC5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUNERjc0ODNFMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQ
b3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFGMTBBQTYzQjg3MDBGRjMxODQg
LyogRE9NSFRNTFNlbGVjdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTlBOUM1MDBB
QTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTg1REY4MjFFMEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVDYXB0aW9uRWxlbWVu
dC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dy
aWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1w
bGF0ZUFyZWFzVmFsdWUuY3BwCmluZGV4IGIzNTM4MjI5MGYzNDBlYWQ2OTE2MzNiNDU3NTljYzI2
OWM1N2RmOTMuLjVhZDcxZmJkZDM2Y2Y4ZGMwMDM0MjAzOGQxMzdjYWFmZTZhZWEzZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKQEAg
LTU1LDEzICs1NSwxMyBAQCBzdGF0aWMgU3RyaW5nIHN0cmluZ0ZvclBvc2l0aW9uKGNvbnN0IE5h
bWVkR3JpZEFyZWFNYXAmIGdyaWRBcmVhTWFwLCBzaXplX3Qgcm93LAogCiAgICAgZm9yIChjb25z
dCBhdXRvJiBpdCA6IGdyaWRBcmVhTWFwKSB7CiAgICAgICAgIGNvbnN0IEdyaWRDb29yZGluYXRl
JiBjb29yZGluYXRlID0gaXQudmFsdWU7Ci0gICAgICAgIGlmIChyb3cgPj0gY29vcmRpbmF0ZS5y
b3dzLmluaXRpYWxQb3NpdGlvbkluZGV4ICYmIHJvdyA8PSBjb29yZGluYXRlLnJvd3MuZmluYWxQ
b3NpdGlvbkluZGV4KQorICAgICAgICBpZiAocm93ID49IGNvb3JkaW5hdGUucm93cy5yZXNvbHZl
ZEluaXRpYWxQb3NpdGlvbi50b0ludCgpICYmIHJvdyA8PSBjb29yZGluYXRlLnJvd3MucmVzb2x2
ZWRGaW5hbFBvc2l0aW9uLnRvSW50KCkpCiAgICAgICAgICAgICBjYW5kaWRhdGVzLmFwcGVuZChp
dC5rZXkpOwogICAgIH0KIAogICAgIGZvciAoY29uc3QgYXV0byYgaXQgOiBncmlkQXJlYU1hcCkg
ewogICAgICAgICBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0ZSA9IGl0LnZhbHVlOwot
ICAgICAgICBpZiAoY29sdW1uID49IGNvb3JkaW5hdGUuY29sdW1ucy5pbml0aWFsUG9zaXRpb25J
bmRleCAmJiBjb2x1bW4gPD0gY29vcmRpbmF0ZS5jb2x1bW5zLmZpbmFsUG9zaXRpb25JbmRleCAm
JiBjYW5kaWRhdGVzLmNvbnRhaW5zKGl0LmtleSkpCisgICAgICAgIGlmIChjb2x1bW4gPj0gY29v
cmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCkgJiYgY29sdW1u
IDw9IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEZpbmFsUG9zaXRpb24udG9JbnQoKSAmJiBj
YW5kaWRhdGVzLmNvbnRhaW5zKGl0LmtleSkpCiAgICAgICAgICAgICByZXR1cm4gaXQua2V5Owog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAwMGU5YjJmNmNlYjRmNTI3ZGQ3
ODBjNmQ2NWViZTAwMzk4ZDU0MzEwLi4zYjVhMzg1ODQ0ZTFlYTA2OTAzYmU1Zjk0MTJiMDcxMmZk
ODUxOTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNTM1MiwxOCArNTM1MiwxOCBA
QCBib29sIENTU1BhcnNlcjo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhc1JvdyhOYW1lZEdyaWRBcmVh
TWFwJiBncmlkQXJlYU1hcCwgY29uc3QgdQogCiAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5n
IGNoZWNrcyB0ZXN0IHRoYXQgdGhlIGdyaWQgYXJlYSBpcyBhIHNpbmdsZSBmaWxsZWQtaW4gcmVj
dGFuZ2xlLgogICAgICAgICAgICAgLy8gMS4gVGhlIG5ldyByb3cgaXMgYWRqYWNlbnQgdG8gdGhl
IHByZXZpb3VzbHkgcGFyc2VkIHJvdy4KLSAgICAgICAgICAgIGlmIChyb3dDb3VudCAhPSBncmlk
Q29vcmRpbmF0ZS5yb3dzLmZpbmFsUG9zaXRpb25JbmRleCArIDEpCisgICAgICAgICAgICBpZiAo
cm93Q291bnQgIT0gZ3JpZENvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRpb24ubmV4
dCgpLnRvSW50KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgICAgIC8v
IDIuIFRoZSBuZXcgYXJlYSBzdGFydHMgYXQgdGhlIHNhbWUgcG9zaXRpb24gYXMgdGhlIHByZXZp
b3VzbHkgcGFyc2VkIGFyZWEuCi0gICAgICAgICAgICBpZiAoY3VycmVudENvbHVtbiAhPSBncmlk
Q29vcmRpbmF0ZS5jb2x1bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4KQorICAgICAgICAgICAgaWYg
KGN1cnJlbnRDb2x1bW4gIT0gZ3JpZENvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQ
b3NpdGlvbi50b0ludCgpKQogICAgICAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgICAg
ICAvLyAzLiBUaGUgbmV3IGFyZWEgZW5kcyBhdCB0aGUgc2FtZSBwb3NpdGlvbiBhcyB0aGUgcHJl
dmlvdXNseSBwYXJzZWQgYXJlYS4KLSAgICAgICAgICAgIGlmIChsb29rQWhlYWRDb2x1bW4gIT0g
Z3JpZENvb3JkaW5hdGUuY29sdW1ucy5maW5hbFBvc2l0aW9uSW5kZXgpCisgICAgICAgICAgICBp
ZiAobG9va0FoZWFkQ29sdW1uICE9IGdyaWRDb29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRGaW5h
bFBvc2l0aW9uLnRvSW50KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAg
ICAgICsrZ3JpZENvb3JkaW5hdGUucm93cy5maW5hbFBvc2l0aW9uSW5kZXg7CisgICAgICAgICAg
ICArK2dyaWRDb29yZGluYXRlLnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0aW9uOwogICAgICAgICB9
CiAgICAgICAgIGN1cnJlbnRDb2x1bW4gPSBsb29rQWhlYWRDb2x1bW47CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGNjMmE3MDc2N2NjZDI3NGFhM2QwMThlZGEw
MDgzYWJjMTVlZDE5YTkuLjVkNTMxMjgzOGIxN2MzODEzNGFjMGU2ZjkyYTNkY2M2ZDlhZDI1Mzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE4NjQsMTIgKzE4NjQsMTIg
QEAgc3RhdGljIHZvaWQgY3JlYXRlSW1wbGljaXROYW1lZEdyaWRMaW5lc0Zyb21HcmlkQXJlYShj
b25zdCBOYW1lZEdyaWRBcmVhTWFwJiBuYW0KICAgICAgICAgR3JpZFNwYW4gYXJlYVNwYW4gPSBk
aXJlY3Rpb24gPT0gRm9yUm93cyA/IGFyZWEudmFsdWUucm93cyA6IGFyZWEudmFsdWUuY29sdW1u
czsKICAgICAgICAgewogICAgICAgICAgICAgYXV0byYgc3RhcnRWZWN0b3IgPSBuYW1lZEdyaWRM
aW5lcy5hZGQoYXJlYS5rZXkgKyAiLXN0YXJ0IiwgVmVjdG9yPHNpemVfdD4oKSkuaXRlcmF0b3It
PnZhbHVlOwotICAgICAgICAgICAgc3RhcnRWZWN0b3IuYXBwZW5kKGFyZWFTcGFuLmluaXRpYWxQ
b3NpdGlvbkluZGV4KTsKKyAgICAgICAgICAgIHN0YXJ0VmVjdG9yLmFwcGVuZChhcmVhU3Bhbi5y
ZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpKTsKICAgICAgICAgICAgIHN0ZDo6c29ydChz
dGFydFZlY3Rvci5iZWdpbigpLCBzdGFydFZlY3Rvci5lbmQoKSk7CiAgICAgICAgIH0KICAgICAg
ICAgewogICAgICAgICAgICAgYXV0byYgZW5kVmVjdG9yID0gbmFtZWRHcmlkTGluZXMuYWRkKGFy
ZWEua2V5ICsgIi1lbmQiLCBWZWN0b3I8c2l6ZV90PigpKS5pdGVyYXRvci0+dmFsdWU7Ci0gICAg
ICAgICAgICBlbmRWZWN0b3IuYXBwZW5kKGFyZWFTcGFuLmZpbmFsUG9zaXRpb25JbmRleCArIDEp
OworICAgICAgICAgICAgZW5kVmVjdG9yLmFwcGVuZChhcmVhU3Bhbi5yZXNvbHZlZEZpbmFsUG9z
aXRpb24ubmV4dCgpLnRvSW50KCkpOwogICAgICAgICAgICAgc3RkOjpzb3J0KGVuZFZlY3Rvci5i
ZWdpbigpLCBlbmRWZWN0b3IuZW5kKCkpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCmluZGV4IDQyMWU5NTA0YjkxNTYwZTU1ZGIyZDU2Njg2
YzlhMDlhZWZhZjI1NWIuLjIwN2RlYTA2Zjk2MGU5OTYxYWUyMTJlNzYwYjYzOWEwMmJjNWJlZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTMwLDYgKzMwLDcg
QEAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogCiAjaW5jbHVkZSAiR3JpZENvb3JkaW5h
dGUuaCIKKyNpbmNsdWRlICJHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oIgogI2luY2x1ZGUgIkxheW91
dFJlcGFpbnRlci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
Vmlldy5oIgpAQCAtMzQxLDcgKzM0Miw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0ZVVzZWRC
cmVhZHRoT2ZHcmlkVHJhY2tzKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3RpCiAgICAg
ICAgICAgICAgICAgY29uc3QgR3JpZFNwYW4gc3BhbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1u
cykgPyBjb29yZGluYXRlLmNvbHVtbnMgOiBjb29yZGluYXRlLnJvd3M7CiAKICAgICAgICAgICAg
ICAgICAvLyBEbyBub3QgaW5jbHVkZSBhbHJlYWR5IHByb2Nlc3NlZCBpdGVtcy4KLSAgICAgICAg
ICAgICAgICBpZiAoaSA+IDAgJiYgc3Bhbi5pbml0aWFsUG9zaXRpb25JbmRleCA8PSBmbGV4aWJs
ZVNpemVkVHJhY2tzSW5kZXhbaSAtIDFdKQorICAgICAgICAgICAgICAgIGlmIChpID4gMCAmJiBz
cGFuLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCkgPD0gZmxleGlibGVTaXplZFRyYWNr
c0luZGV4W2kgLSAxXSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAg
ICAgICAgICBkb3VibGUgaXRlbU5vcm1hbGl6ZWRGbGV4QnJlYWR0aCA9IGNvbXB1dGVOb3JtYWxp
emVkRnJhY3Rpb25CcmVhZHRoKHRyYWNrcywgc3BhbiwgZGlyZWN0aW9uLCBtYXhDb250ZW50Rm9y
Q2hpbGQoZ3JpZEl0ZW0sIGRpcmVjdGlvbiwgc2l6aW5nRGF0YS5jb2x1bW5UcmFja3MpKTsKQEAg
LTQwMCwxMiArNDAxLDEyIEBAIGRvdWJsZSBSZW5kZXJHcmlkOjpjb21wdXRlTm9ybWFsaXplZEZy
YWN0aW9uQnJlYWR0aChWZWN0b3I8R3JpZFRyYWNrPiYgdHJhY2tzLCBjCiAgICAgLy8gfGF2YWls
YWJsZUxvZ2ljYWxTcGFjZXwgYWxyZWFkeSBhY2NvdW50cyBmb3IgdGhlIHVzZWQgYnJlYWR0aHMg
c28gbm8gbmVlZCB0byByZW1vdmUgaXQgaGVyZS4KIAogICAgIFZlY3RvcjxHcmlkVHJhY2tGb3JO
b3JtYWxpemF0aW9uPiB0cmFja3NGb3JOb3JtYWxpemF0aW9uOwotICAgIGZvciAoc2l6ZV90IGkg
PSB0cmFja3NTcGFuLmluaXRpYWxQb3NpdGlvbkluZGV4OyBpIDw9IHRyYWNrc1NwYW4uZmluYWxQ
b3NpdGlvbkluZGV4OyArK2kpIHsKLSAgICAgICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tT
aXplID0gZ3JpZFRyYWNrU2l6ZShkaXJlY3Rpb24sIGkpOworICAgIGZvciAoR3JpZFJlc29sdmVk
UG9zaXRpb24gcG9zaXRpb24gPSB0cmFja3NTcGFuLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOyBw
b3NpdGlvbiA8PSB0cmFja3NTcGFuLnJlc29sdmVkRmluYWxQb3NpdGlvbjsgKytwb3NpdGlvbikg
eworICAgICAgICBjb25zdCBHcmlkVHJhY2tTaXplJiB0cmFja1NpemUgPSBncmlkVHJhY2tTaXpl
KGRpcmVjdGlvbiwgcG9zaXRpb24udG9JbnQoKSk7CiAgICAgICAgIGlmICghdHJhY2tTaXplLm1h
eFRyYWNrQnJlYWR0aCgpLmlzRmxleCgpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgdHJhY2tzRm9yTm9ybWFsaXphdGlvbi5hcHBlbmQoR3JpZFRyYWNrRm9yTm9ybWFsaXphdGlv
bih0cmFja3NbaV0sIHRyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5mbGV4KCkpKTsKKyAgICAg
ICAgdHJhY2tzRm9yTm9ybWFsaXphdGlvbi5hcHBlbmQoR3JpZFRyYWNrRm9yTm9ybWFsaXphdGlv
bih0cmFja3NbcG9zaXRpb24udG9JbnQoKV0sIHRyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5m
bGV4KCkpKTsKICAgICB9CiAKICAgICAvLyBUaGUgZnVuY3Rpb24gaXMgbm90IGNhbGxlZCBpZiB3
ZSBkb24ndCBoYXZlIDxmbGV4PiBncmlkIHRyYWNrcwpAQCAtNDYxLDMxICs0NjIsNiBAQCBjb25z
dCBHcmlkVHJhY2tTaXplJiBSZW5kZXJHcmlkOjpncmlkVHJhY2tTaXplKEdyaWRUcmFja1Npemlu
Z0RpcmVjdGlvbiBkaXJlY3RpbwogICAgIHJldHVybiB0cmFja1NpemU7CiB9CiAKLXNpemVfdCBS
ZW5kZXJHcmlkOjpleHBsaWNpdEdyaWRDb2x1bW5Db3VudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IHN0eWxlKCkuZ3JpZENvbHVtbnMoKS5zaXplKCk7Ci19Ci0KLXNpemVfdCBSZW5kZXJHcmlkOjpl
eHBsaWNpdEdyaWRSb3dDb3VudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0eWxlKCkuZ3JpZFJv
d3MoKS5zaXplKCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbHVtblNpZGUoR3JpZFBv
c2l0aW9uU2lkZSBzaWRlKQotewotICAgIHJldHVybiBzaWRlID09IENvbHVtblN0YXJ0U2lkZSB8
fCBzaWRlID09IENvbHVtbkVuZFNpZGU7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1N0YXJ0
U2lkZShHcmlkUG9zaXRpb25TaWRlIHNpZGUpCi17Ci0gICAgcmV0dXJuIHNpZGUgPT0gQ29sdW1u
U3RhcnRTaWRlIHx8IHNpZGUgPT0gUm93U3RhcnRTaWRlOwotfQotCi1zaXplX3QgUmVuZGVyR3Jp
ZDo6ZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoR3JpZFBvc2l0aW9uU2lkZSBzaWRlKSBjb25zdAot
ewotICAgIHJldHVybiBpc0NvbHVtblNpZGUoc2lkZSkgPyBleHBsaWNpdEdyaWRDb2x1bW5Db3Vu
dCgpIDogZXhwbGljaXRHcmlkUm93Q291bnQoKTsKLX0KLQogTGF5b3V0VW5pdCBSZW5kZXJHcmlk
Ojpsb2dpY2FsQ29udGVudEhlaWdodEZvckNoaWxkKFJlbmRlckJveCogY2hpbGQsIFZlY3RvcjxH
cmlkVHJhY2s+JiBjb2x1bW5UcmFja3MpCiB7CiAgICAgTGF5b3V0VW5pdCBvbGRPdmVycmlkZUNv
bnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsV2lkdGggPSBjaGlsZC0+aGFzT3ZlcnJpZGVDb250
YWluaW5nQmxvY2tMb2dpY2FsV2lkdGgoKSA/IGNoaWxkLT5vdmVycmlkZUNvbnRhaW5pbmdCbG9j
a0NvbnRlbnRMb2dpY2FsV2lkdGgoKSA6IExheW91dFVuaXQoKTsKQEAgLTU1NSwxNiArNTMxLDE2
IEBAIHZvaWQgUmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rp
b25zKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvCiB2b2lkIFJlbmRlckdyaWQ6OnJlc29sdmVDb250
ZW50QmFzZWRUcmFja1NpemluZ0Z1bmN0aW9uc0Zvckl0ZW1zKEdyaWRUcmFja1NpemluZ0RpcmVj
dGlvbiBkaXJlY3Rpb24sIEdyaWRTaXppbmdEYXRhJiBzaXppbmdEYXRhLCBSZW5kZXJCb3gqIGdy
aWRJdGVtLCBGaWx0ZXJGdW5jdGlvbiBmaWx0ZXJGdW5jdGlvbiwgU2l6aW5nRnVuY3Rpb24gc2l6
aW5nRnVuY3Rpb24sIEFjY3VtdWxhdG9yR2V0dGVyIHRyYWNrR2V0dGVyLCBBY2N1bXVsYXRvckdy
b3dGdW5jdGlvbiB0cmFja0dyb3d0aEZ1bmN0aW9uKQogewogICAgIGNvbnN0IEdyaWRDb29yZGlu
YXRlIGNvb3JkaW5hdGUgPSBjYWNoZWRHcmlkQ29vcmRpbmF0ZShncmlkSXRlbSk7Ci0gICAgY29u
c3Qgc2l6ZV90IGluaXRpYWxUcmFja0luZGV4ID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/
IGNvb3JkaW5hdGUuY29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleCA6IGNvb3JkaW5hdGUucm93
cy5pbml0aWFsUG9zaXRpb25JbmRleDsKLSAgICBjb25zdCBzaXplX3QgZmluYWxUcmFja0luZGV4
ID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1ucy5maW5hbFBv
c2l0aW9uSW5kZXggOiBjb29yZGluYXRlLnJvd3MuZmluYWxQb3NpdGlvbkluZGV4OworICAgIGNv
bnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uIGluaXRpYWxUcmFja1Bvc2l0aW9uID0gKGRpcmVjdGlv
biA9PSBGb3JDb2x1bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3Np
dGlvbiA6IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsKKyAgICBjb25z
dCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBmaW5hbFRyYWNrUG9zaXRpb24gPSAoZGlyZWN0aW9uID09
IEZvckNvbHVtbnMpID8gY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlvbiA6
IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRpb247CiAKICAgICBzaXppbmdEYXRh
LmZpbHRlcmVkVHJhY2tzLnNocmluaygwKTsKLSAgICBmb3IgKHNpemVfdCB0cmFja0luZGV4ID0g
aW5pdGlhbFRyYWNrSW5kZXg7IHRyYWNrSW5kZXggPD0gZmluYWxUcmFja0luZGV4OyArK3RyYWNr
SW5kZXgpIHsKLSAgICAgICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXplID0gZ3JpZFRy
YWNrU2l6ZShkaXJlY3Rpb24sIHRyYWNrSW5kZXgpOworICAgIGZvciAoR3JpZFJlc29sdmVkUG9z
aXRpb24gdHJhY2tJbmRleCA9IGluaXRpYWxUcmFja1Bvc2l0aW9uOyB0cmFja0luZGV4IDw9IGZp
bmFsVHJhY2tQb3NpdGlvbjsgKyt0cmFja0luZGV4KSB7CisgICAgICAgIGNvbnN0IEdyaWRUcmFj
a1NpemUmIHRyYWNrU2l6ZSA9IGdyaWRUcmFja1NpemUoZGlyZWN0aW9uLCB0cmFja0luZGV4LnRv
SW50KCkpOwogICAgICAgICBpZiAoISh0cmFja1NpemUuKmZpbHRlckZ1bmN0aW9uKSgpKQogICAg
ICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgR3JpZFRyYWNrJiB0cmFjayA9IChkaXJlY3Rp
b24gPT0gRm9yQ29sdW1ucykgPyBzaXppbmdEYXRhLmNvbHVtblRyYWNrc1t0cmFja0luZGV4XSA6
IHNpemluZ0RhdGEucm93VHJhY2tzW3RyYWNrSW5kZXhdOworICAgICAgICBHcmlkVHJhY2smIHRy
YWNrID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IHNpemluZ0RhdGEuY29sdW1uVHJhY2tz
W3RyYWNrSW5kZXgudG9JbnQoKV0gOiBzaXppbmdEYXRhLnJvd1RyYWNrc1t0cmFja0luZGV4LnRv
SW50KCldOwogICAgICAgICBzaXppbmdEYXRhLmZpbHRlcmVkVHJhY2tzLmFwcGVuZCgmdHJhY2sp
OwogICAgIH0KIApAQCAtNTcyLDggKzU0OCw4IEBAIHZvaWQgUmVuZGVyR3JpZDo6cmVzb2x2ZUNv
bnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMoR3JpZFRyYWNrU2l6aW5nCiAg
ICAgICAgIHJldHVybjsKIAogICAgIExheW91dFVuaXQgYWRkaXRpb25hbEJyZWFkdGhTcGFjZSA9
ICh0aGlzLT4qc2l6aW5nRnVuY3Rpb24pKGdyaWRJdGVtLCBkaXJlY3Rpb24sIHNpemluZ0RhdGEu
Y29sdW1uVHJhY2tzKTsKLSAgICBmb3IgKHNpemVfdCB0cmFja0luZGV4Rm9yU3BhY2UgPSBpbml0
aWFsVHJhY2tJbmRleDsgdHJhY2tJbmRleEZvclNwYWNlIDw9IGZpbmFsVHJhY2tJbmRleDsgKyt0
cmFja0luZGV4Rm9yU3BhY2UpIHsKLSAgICAgICAgR3JpZFRyYWNrJiB0cmFjayA9IChkaXJlY3Rp
b24gPT0gRm9yQ29sdW1ucykgPyBzaXppbmdEYXRhLmNvbHVtblRyYWNrc1t0cmFja0luZGV4Rm9y
U3BhY2VdIDogc2l6aW5nRGF0YS5yb3dUcmFja3NbdHJhY2tJbmRleEZvclNwYWNlXTsKKyAgICBm
b3IgKEdyaWRSZXNvbHZlZFBvc2l0aW9uIHRyYWNrUG9zaXRpb25Gb3JTcGFjZSA9IGluaXRpYWxU
cmFja1Bvc2l0aW9uOyB0cmFja1Bvc2l0aW9uRm9yU3BhY2UgPD0gZmluYWxUcmFja1Bvc2l0aW9u
OyArK3RyYWNrUG9zaXRpb25Gb3JTcGFjZSkgeworICAgICAgICBHcmlkVHJhY2smIHRyYWNrID0g
KGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IHNpemluZ0RhdGEuY29sdW1uVHJhY2tzW3RyYWNr
UG9zaXRpb25Gb3JTcGFjZS50b0ludCgpXSA6IHNpemluZ0RhdGEucm93VHJhY2tzW3RyYWNrUG9z
aXRpb25Gb3JTcGFjZS50b0ludCgpXTsKICAgICAgICAgYWRkaXRpb25hbEJyZWFkdGhTcGFjZSAt
PSAodHJhY2suKnRyYWNrR2V0dGVyKSgpOwogICAgIH0KIApAQCAtNjQ3LDE3ICs2MjMsMTcgQEAg
dm9pZCBSZW5kZXJHcmlkOjpncm93R3JpZChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0
aW9uKQogCiB2b2lkIFJlbmRlckdyaWQ6Omluc2VydEl0ZW1JbnRvR3JpZChSZW5kZXJCb3gqIGNo
aWxkLCBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0ZSkKIHsKLSAgICBmb3IgKHNpemVf
dCByb3cgPSBjb29yZGluYXRlLnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXg7IHJvdyA8PSBjb29y
ZGluYXRlLnJvd3MuZmluYWxQb3NpdGlvbkluZGV4OyArK3JvdykgewotICAgICAgICBmb3IgKHNp
emVfdCBjb2x1bW4gPSBjb29yZGluYXRlLmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXg7IGNv
bHVtbiA8PSBjb29yZGluYXRlLmNvbHVtbnMuZmluYWxQb3NpdGlvbkluZGV4OyArK2NvbHVtbikK
LSAgICAgICAgICAgIG1fZ3JpZFtyb3ddW2NvbHVtbl0uYXBwZW5kKGNoaWxkKTsKKyAgICBmb3Ig
KEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJvdyA9IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEluaXRp
YWxQb3NpdGlvbjsgcm93IDw9IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRpb247
ICsrcm93KSB7CisgICAgICAgIGZvciAoR3JpZFJlc29sdmVkUG9zaXRpb24gY29sdW1uID0gY29v
cmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOyBjb2x1bW4gPD0gY29vcmRp
bmF0ZS5jb2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlvbjsgKytjb2x1bW4pCisgICAgICAgICAg
ICBtX2dyaWRbcm93LnRvSW50KCldW2NvbHVtbi50b0ludCgpXS5hcHBlbmQoY2hpbGQpOwogICAg
IH0KICAgICBtX2dyaWRJdGVtQ29vcmRpbmF0ZS5zZXQoY2hpbGQsIGNvb3JkaW5hdGUpOwogfQog
Ci12b2lkIFJlbmRlckdyaWQ6Omluc2VydEl0ZW1JbnRvR3JpZChSZW5kZXJCb3gqIGNoaWxkLCBz
aXplX3Qgcm93VHJhY2ssIHNpemVfdCBjb2x1bW5UcmFjaykKK3ZvaWQgUmVuZGVyR3JpZDo6aW5z
ZXJ0SXRlbUludG9HcmlkKFJlbmRlckJveCogY2hpbGQsIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0
aW9uJiByb3dUcmFjaywgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIGNvbHVtblRyYWNrKQog
ewotICAgIGNvbnN0IEdyaWRTcGFuJiByb3dTcGFuID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9t
QXV0b1BsYWNlbWVudFBvc2l0aW9uKGNoaWxkLCBGb3JSb3dzLCByb3dUcmFjayk7Ci0gICAgY29u
c3QgR3JpZFNwYW4mIGNvbHVtblNwYW4gPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxh
Y2VtZW50UG9zaXRpb24oY2hpbGQsIEZvckNvbHVtbnMsIGNvbHVtblRyYWNrKTsKKyAgICBjb25z
dCBHcmlkU3BhbiYgcm93U3BhbiA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBv
c2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24oKmNoaWxkLCBGb3JSb3dzLCByb3dUcmFj
ayk7CisgICAgY29uc3QgR3JpZFNwYW4mIGNvbHVtblNwYW4gPSBHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKCpjaGlsZCwg
Rm9yQ29sdW1ucywgY29sdW1uVHJhY2spOwogICAgIGluc2VydEl0ZW1JbnRvR3JpZChjaGlsZCwg
R3JpZENvb3JkaW5hdGUocm93U3BhbiwgY29sdW1uU3BhbikpOwogfQogCkBAIC02NzQsOCArNjUw
LDggQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkKICAgICBmb3IgKFJlbmRl
ckJveCogY2hpbGQgPSBtX29yZGVySXRlcmF0b3IuZmlyc3QoKTsgY2hpbGQ7IGNoaWxkID0gbV9v
cmRlckl0ZXJhdG9yLm5leHQoKSkgewogICAgICAgICAvLyBGSVhNRTogV2UgbmV2ZXIgcmUtcmVz
b2x2ZSBwb3NpdGlvbnMgaWYgdGhlIGdyaWQgaXMgZ3Jvd24gZHVyaW5nIGF1dG8tcGxhY2VtZW50
IHdoaWNoIG1heSBsZWFkIGF1dG8gLyA8aW50ZWdlcj4KICAgICAgICAgLy8gcG9zaXRpb25zIHRv
IG5vdCBtYXRjaCB0aGUgYXV0aG9yJ3MgaW50ZW50LiBUaGUgc3BlY2lmaWNhdGlvbiBpcyB1bmNs
ZWFyIG9uIHdoYXQgc2hvdWxkIGJlIGRvbmUgaW4gdGhpcyBjYXNlLgotICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8R3JpZFNwYW4+IHJvd1Bvc2l0aW9ucyA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJv
bVN0eWxlKGNoaWxkLCBGb3JSb3dzKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFu
PiBjb2x1bW5Qb3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjaGlsZCwg
Rm9yQ29sdW1ucyk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcm93UG9zaXRp
b25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxl
KHN0eWxlKCksICpjaGlsZCwgRm9yUm93cyk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlk
U3Bhbj4gY29sdW1uUG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlk
UG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICpjaGlsZCwgRm9yQ29sdW1ucyk7CiAgICAgICAg
IGlmICghcm93UG9zaXRpb25zIHx8ICFjb2x1bW5Qb3NpdGlvbnMpIHsKICAgICAgICAgICAgIEdy
aWRTcGFuKiBtYWpvckF4aXNQb3NpdGlvbnMgPSAoYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVj
dGlvbigpID09IEZvckNvbHVtbnMpID8gY29sdW1uUG9zaXRpb25zLmdldCgpIDogcm93UG9zaXRp
b25zLmdldCgpOwogICAgICAgICAgICAgaWYgKCFtYWpvckF4aXNQb3NpdGlvbnMpCkBAIC03MDQs
MjIgKzY4MCwyMiBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQoKQogdm9pZCBS
ZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoKQogewogICAg
IE9yZGVySXRlcmF0b3JQb3B1bGF0b3IgcG9wdWxhdG9yKG1fb3JkZXJJdGVyYXRvcik7Ci0gICAg
c2l6ZV90IG1heGltdW1Sb3dJbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4oMSwgZXhwbGljaXRHcmlk
Um93Q291bnQoKSk7Ci0gICAgc2l6ZV90IG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4PHNp
emVfdD4oMSwgZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoKSk7CisgICAgc2l6ZV90IG1heGltdW1S
b3dJbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4oMSwgR3JpZFJlc29sdmVkUG9zaXRpb246OmV4cGxp
Y2l0R3JpZFJvd0NvdW50KHN0eWxlKCkpKTsKKyAgICBzaXplX3QgbWF4aW11bUNvbHVtbkluZGV4
ID0gc3RkOjptYXg8c2l6ZV90PigxLCBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6ZXhwbGljaXRHcmlk
Q29sdW1uQ291bnQoc3R5bGUoKSkpOwogCiAgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gZmly
c3RDaGlsZEJveCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmdCb3goKSkgewog
ICAgICAgICBwb3B1bGF0b3IuY29sbGVjdENoaWxkKCpjaGlsZCk7CiAKICAgICAgICAgLy8gVGhp
cyBmdW5jdGlvbiBieXBhc3NlcyB0aGUgY2FjaGUgKGNhY2hlZEdyaWRDb29yZGluYXRlKCkpIGFz
IGl0IGlzIHVzZWQgdG8gYnVpbGQgaXQuCi0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bh
bj4gcm93UG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY2hpbGQsIEZv
clJvd3MpOwotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IGNvbHVtblBvc2l0aW9u
cyA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNoaWxkLCBGb3JDb2x1bW5zKTsKKyAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByb3dQb3NpdGlvbnMgPSBHcmlkUmVzb2x2
ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgKmNoaWxk
LCBGb3JSb3dzKTsKKyAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBjb2x1bW5Qb3Np
dGlvbnMgPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5
bGUoc3R5bGUoKSwgKmNoaWxkLCBGb3JDb2x1bW5zKTsKIAogICAgICAgICAvLyB8cG9zaXRpb25z
fCBpcyAwIGlmIHdlIG5lZWQgdG8gcnVuIHRoZSBhdXRvLXBsYWNlbWVudCBhbGdvcml0aG0uIE91
ciBlc3RpbWF0aW9uIGlnbm9yZXMKICAgICAgICAgLy8gdGhpcyBjYXNlIGFzIHRoZSBhdXRvLXBs
YWNlbWVudCBhbGdvcml0aG0gd2lsbCBncm93IHRoZSBncmlkIGFzIG5lZWRlZC4KICAgICAgICAg
aWYgKHJvd1Bvc2l0aW9ucykKLSAgICAgICAgICAgIG1heGltdW1Sb3dJbmRleCA9IHN0ZDo6bWF4
KG1heGltdW1Sb3dJbmRleCwgcm93UG9zaXRpb25zLT5maW5hbFBvc2l0aW9uSW5kZXggKyAxKTsK
KyAgICAgICAgICAgIG1heGltdW1Sb3dJbmRleCA9IHN0ZDo6bWF4KG1heGltdW1Sb3dJbmRleCwg
cm93UG9zaXRpb25zLT5yZXNvbHZlZEZpbmFsUG9zaXRpb24ubmV4dCgpLnRvSW50KCkpOwogICAg
ICAgICBpZiAoY29sdW1uUG9zaXRpb25zKQotICAgICAgICAgICAgbWF4aW11bUNvbHVtbkluZGV4
ID0gc3RkOjptYXgobWF4aW11bUNvbHVtbkluZGV4LCBjb2x1bW5Qb3NpdGlvbnMtPmZpbmFsUG9z
aXRpb25JbmRleCArIDEpOworICAgICAgICAgICAgbWF4aW11bUNvbHVtbkluZGV4ID0gc3RkOjpt
YXgobWF4aW11bUNvbHVtbkluZGV4LCBjb2x1bW5Qb3NpdGlvbnMtPnJlc29sdmVkRmluYWxQb3Np
dGlvbi5uZXh0KCkudG9JbnQoKSk7CiAgICAgfQogCiAgICAgbV9ncmlkLmdyb3cobWF4aW11bVJv
d0luZGV4KTsKQEAgLTczMCwxNyArNzA2LDE3IEBAIHZvaWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVF
eHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKCkKIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VTcGVj
aWZpZWRNYWpvckF4aXNJdGVtc09uR3JpZChjb25zdCBWZWN0b3I8UmVuZGVyQm94Kj4mIGF1dG9H
cmlkSXRlbXMpCiB7CiAgICAgZm9yIChhdXRvJiBhdXRvR3JpZEl0ZW0gOiBhdXRvR3JpZEl0ZW1z
KSB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gbWFqb3JBeGlzUG9zaXRpb25z
ID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoYXV0b0dyaWRJdGVtLCBhdXRvUGxhY2Vt
ZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkpOwotICAgICAgICBHcmlkSXRlcmF0b3IgaXRlcmF0b3Io
bV9ncmlkLCBhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCksIG1ham9yQXhpc1Bvc2l0
aW9ucy0+aW5pdGlhbFBvc2l0aW9uSW5kZXgpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3Jp
ZFNwYW4+IG1ham9yQXhpc1Bvc2l0aW9ucyA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZl
R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqYXV0b0dyaWRJdGVtLCBhdXRvUGxhY2Vt
ZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkpOworICAgICAgICBHcmlkSXRlcmF0b3IgaXRlcmF0b3Io
bV9ncmlkLCBhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCksIG1ham9yQXhpc1Bvc2l0
aW9ucy0+cmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9JbnQoKSk7CiAgICAgICAgIGlmIChzdGQ6
OnVuaXF1ZV9wdHI8R3JpZENvb3JkaW5hdGU+IGVtcHR5R3JpZEFyZWEgPSBpdGVyYXRvci5uZXh0
RW1wdHlHcmlkQXJlYSgpKSB7Ci0gICAgICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoYXV0b0dy
aWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4LCBlbXB0eUdy
aWRBcmVhLT5jb2x1bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4KTsKKyAgICAgICAgICAgIGluc2Vy
dEl0ZW1JbnRvR3JpZChhdXRvR3JpZEl0ZW0sIGVtcHR5R3JpZEFyZWEtPnJvd3MucmVzb2x2ZWRJ
bml0aWFsUG9zaXRpb24sIGVtcHR5R3JpZEFyZWEtPmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9z
aXRpb24pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBncm93
R3JpZChhdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uKCkpOwogICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8R3JpZENvb3JkaW5hdGU+IGVtcHR5R3JpZEFyZWEgPSBpdGVyYXRvci5uZXh0RW1w
dHlHcmlkQXJlYSgpOwogICAgICAgICBBU1NFUlQoZW1wdHlHcmlkQXJlYSk7Ci0gICAgICAgIGlu
c2VydEl0ZW1JbnRvR3JpZChhdXRvR3JpZEl0ZW0sIGVtcHR5R3JpZEFyZWEtPnJvd3MuaW5pdGlh
bFBvc2l0aW9uSW5kZXgsIGVtcHR5R3JpZEFyZWEtPmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5k
ZXgpOworICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoYXV0b0dyaWRJdGVtLCBlbXB0eUdyaWRB
cmVhLT5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5z
LnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uKTsKICAgICB9CiB9CiAKQEAgLTc1MiwxNCArNzI4LDE0
IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbXNPbkdyaWQoY29uc3Qg
VmVjdG9yPFJlbmRlckJveCo+JiBhdXRvR3JpCiAKIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VBdXRv
TWFqb3JBeGlzSXRlbU9uR3JpZChSZW5kZXJCb3gqIGdyaWRJdGVtKQogewotICAgIHN0ZDo6dW5p
cXVlX3B0cjxHcmlkU3Bhbj4gbWlub3JBeGlzUG9zaXRpb25zID0gcmVzb2x2ZUdyaWRQb3NpdGlv
bnNGcm9tU3R5bGUoZ3JpZEl0ZW0sIGF1dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSk7
Ci0gICAgQVNTRVJUKCFyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShncmlkSXRlbSwgYXV0
b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpKSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEdy
aWRTcGFuPiBtaW5vckF4aXNQb3NpdGlvbnMgPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2
ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgKmdyaWRJdGVtLCBhdXRvUGxhY2VtZW50
TWlub3JBeGlzRGlyZWN0aW9uKCkpOworICAgIEFTU0VSVCghR3JpZFJlc29sdmVkUG9zaXRpb246
OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICpncmlkSXRlbSwgYXV0b1Bs
YWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpKSk7CiAgICAgc2l6ZV90IG1pbm9yQXhpc0luZGV4
ID0gMDsKICAgICBpZiAobWlub3JBeGlzUG9zaXRpb25zKSB7Ci0gICAgICAgIG1pbm9yQXhpc0lu
ZGV4ID0gbWlub3JBeGlzUG9zaXRpb25zLT5pbml0aWFsUG9zaXRpb25JbmRleDsKKyAgICAgICAg
bWlub3JBeGlzSW5kZXggPSBtaW5vckF4aXNQb3NpdGlvbnMtPnJlc29sdmVkSW5pdGlhbFBvc2l0
aW9uLnRvSW50KCk7CiAgICAgICAgIEdyaWRJdGVyYXRvciBpdGVyYXRvcihtX2dyaWQsIGF1dG9Q
bGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSwgbWlub3JBeGlzSW5kZXgpOwogICAgICAgICBp
ZiAoc3RkOjp1bmlxdWVfcHRyPEdyaWRDb29yZGluYXRlPiBlbXB0eUdyaWRBcmVhID0gaXRlcmF0
b3IubmV4dEVtcHR5R3JpZEFyZWEoKSkgewotICAgICAgICAgICAgaW5zZXJ0SXRlbUludG9Hcmlk
KGdyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4LCBlbXB0
eUdyaWRBcmVhLT5jb2x1bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4KTsKKyAgICAgICAgICAgIGlu
c2VydEl0ZW1JbnRvR3JpZChncmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5yZXNvbHZlZElu
aXRpYWxQb3NpdGlvbiwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3Np
dGlvbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9IGVsc2UgewpAQCAt
NzY3LDcgKzc0Myw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9u
R3JpZChSZW5kZXJCb3gqIGdyaWRJdGVtKQogICAgICAgICBmb3IgKHNpemVfdCBtYWpvckF4aXNJ
bmRleCA9IDA7IG1ham9yQXhpc0luZGV4IDwgZW5kT2ZNYWpvckF4aXM7ICsrbWFqb3JBeGlzSW5k
ZXgpIHsKICAgICAgICAgICAgIEdyaWRJdGVyYXRvciBpdGVyYXRvcihtX2dyaWQsIGF1dG9QbGFj
ZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgbWFqb3JBeGlzSW5kZXgpOwogICAgICAgICAgICAg
aWYgKHN0ZDo6dW5pcXVlX3B0cjxHcmlkQ29vcmRpbmF0ZT4gZW1wdHlHcmlkQXJlYSA9IGl0ZXJh
dG9yLm5leHRFbXB0eUdyaWRBcmVhKCkpIHsKLSAgICAgICAgICAgICAgICBpbnNlcnRJdGVtSW50
b0dyaWQoZ3JpZEl0ZW0sIGVtcHR5R3JpZEFyZWEtPnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXgs
IGVtcHR5R3JpZEFyZWEtPmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXgpOworICAgICAgICAg
ICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChncmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5y
ZXNvbHZlZEluaXRpYWxQb3NpdGlvbiwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5yZXNvbHZlZElu
aXRpYWxQb3NpdGlvbik7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQog
ICAgICAgICB9CkBAIC03ODAsMTQgKzc1NiwxNCBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlQXV0
b01ham9yQXhpc0l0ZW1PbkdyaWQoUmVuZGVyQm94KiBncmlkSXRlbSkKICAgICBpbnNlcnRJdGVt
SW50b0dyaWQoZ3JpZEl0ZW0sIHJvd0luZGV4LCBjb2x1bW5JbmRleCk7CiB9CiAKLVJlbmRlckdy
aWQ6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWFq
b3JBeGlzRGlyZWN0aW9uKCkgY29uc3QKK0dyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBSZW5kZXJH
cmlkOjphdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkgY29uc3QKIHsKICAgICBHcmlk
QXV0b0Zsb3cgZmxvdyA9IHN0eWxlKCkuZ3JpZEF1dG9GbG93KCk7CiAgICAgQVNTRVJUKGZsb3cg
IT0gQXV0b0Zsb3dOb25lKTsKICAgICByZXR1cm4gKGZsb3cgPT0gQXV0b0Zsb3dDb2x1bW4pID8g
Rm9yQ29sdW1ucyA6IEZvclJvd3M7CiB9CiAKLVJlbmRlckdyaWQ6OkdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbiBSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uKCkgY29u
c3QKK0dyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWlu
b3JBeGlzRGlyZWN0aW9uKCkgY29uc3QKIHsKICAgICBHcmlkQXV0b0Zsb3cgZmxvdyA9IHN0eWxl
KCkuZ3JpZEF1dG9GbG93KCk7CiAgICAgQVNTRVJUKGZsb3cgIT0gQXV0b0Zsb3dOb25lKTsKQEAg
LTg1NiwyNTYgKzgzMiwxMyBAQCBHcmlkQ29vcmRpbmF0ZSBSZW5kZXJHcmlkOjpjYWNoZWRHcmlk
Q29vcmRpbmF0ZShjb25zdCBSZW5kZXJCb3gqIGdyaWRJdGVtKSBjb25zdAogICAgIHJldHVybiBt
X2dyaWRJdGVtQ29vcmRpbmF0ZS5nZXQoZ3JpZEl0ZW0pOwogfQogCi1HcmlkU3BhbiBSZW5kZXJH
cmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24oY29uc3Qg
UmVuZGVyQm94KiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBzaXplX3QgaW5pdGlhbFBvc2l0
aW9uKSBjb25zdAotewotICAgIC8vIEZJWE1FOiBXZSBkb24ndCBzdXBwb3J0IHNwYW5uaW5nIHdp
dGggYXV0byBwb3NpdGlvbnMgeWV0LiBPbmNlIHdlIGRvLCB0aGlzIGlzIHdyb25nLiBBbHNvIHdl
IHNob3VsZCBtYWtlCi0gICAgLy8gc3VyZSB0aGUgZ3JpZCBjYW4gYWNjb21vZGF0ZSB0aGUgbmV3
IGl0ZW0gYXMgd2Ugb25seSBncm93IDEgcG9zaXRpb24gaW4gYSBnaXZlbiBkaXJlY3Rpb24uCi0g
ICAgcmV0dXJuIEdyaWRTcGFuKGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uKTsKLX0K
LQotc3RhdGljIGlubGluZSBjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYgZ3JpZExpbmVzRm9yU2lk
ZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKLXsKLSAg
ICByZXR1cm4gaXNDb2x1bW5TaWRlKHNpZGUpID8gc3R5bGUubmFtZWRHcmlkQ29sdW1uTGluZXMo
KSA6IHN0eWxlLm5hbWVkR3JpZFJvd0xpbmVzKCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgY29uc3Qg
U3RyaW5nIGltcGxpY2l0TmFtZWRHcmlkTGluZUZvclNpZGUoY29uc3QgU3RyaW5nJiBsaW5lTmFt
ZSwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQotewotICAgIHJldHVybiBsaW5lTmFtZSArIChpc1N0
YXJ0U2lkZShzaWRlKSA/ICItc3RhcnQiIDogIi1lbmQiKTsKLX0KLQotc3RhdGljIGJvb2wgaXNO
b25FeGlzdGVudE5hbWVkTGluZU9yQXJlYShjb25zdCBTdHJpbmcmIGxpbmVOYW1lLCBjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUsIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKLXsKLSAgICBjb25zdCBO
YW1lZEdyaWRMaW5lc01hcCYgZ3JpZExpbmVOYW1lcyA9IGdyaWRMaW5lc0ZvclNpZGUoc3R5bGUs
IHNpZGUpOwotICAgIHJldHVybiAhZ3JpZExpbmVOYW1lcy5jb250YWlucyhpbXBsaWNpdE5hbWVk
R3JpZExpbmVGb3JTaWRlKGxpbmVOYW1lLCBzaWRlKSkgJiYgIWdyaWRMaW5lTmFtZXMuY29udGFp
bnMobGluZU5hbWUpOwotfQotCi12b2lkIFJlbmRlckdyaWQ6OmFkanVzdEdyaWRQb3NpdGlvbnNG
cm9tU3R5bGUoR3JpZFBvc2l0aW9uJiBpbml0aWFsUG9zaXRpb24sIEdyaWRQb3NpdGlvbiYgZmlu
YWxQb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlLCBHcmlkUG9z
aXRpb25TaWRlIGZpbmFsUG9zaXRpb25TaWRlKSBjb25zdAotewotICAgIEFTU0VSVChpc0NvbHVt
blNpZGUoaW5pdGlhbFBvc2l0aW9uU2lkZSkgPT0gaXNDb2x1bW5TaWRlKGZpbmFsUG9zaXRpb25T
aWRlKSk7Ci0KLSAgICAvLyBXZSBtdXN0IGhhbmRsZSB0aGUgcGxhY2VtZW50IGVycm9yIGhhbmRs
aW5nIGNvZGUgaGVyZSBpbnN0ZWFkIG9mIGluIHRoZSBTdHlsZUFkanVzdGVyIGJlY2F1c2Ugd2Ug
ZG9uJ3Qgd2FudCB0bwotICAgIC8vIG92ZXJ3cml0ZSB0aGUgc3BlY2lmaWVkIHZhbHVlcy4KLSAg
ICBpZiAoaW5pdGlhbFBvc2l0aW9uLmlzU3BhbigpICYmIGZpbmFsUG9zaXRpb24uaXNTcGFuKCkp
Ci0gICAgICAgIGZpbmFsUG9zaXRpb24uc2V0QXV0b1Bvc2l0aW9uKCk7Ci0KLSAgICAvLyBUcnkg
dG8gZWFybHkgZGV0ZWN0IHRoZSBjYXNlIG9mIG5vbiBleGlzdGluZyBuYW1lZCBncmlkIGxpbmVz
LiBUaGlzIHdheSB3ZSBjb3VsZCBhc3N1bWUgbGF0ZXIgdGhhdAotICAgIC8vIFJlbmRlckdyaWQ6
OnJlc29sdmVHcmlzUG9zaXRpb25Gcm9tU3R5bGUoKSB3b24ndCByZXF1aXJlIHRoZSBhdXRvcGxh
Y2VtZW50IHRvIHJ1biwgaS5lLiwgaXQnbGwgYWx3YXlzIHJldHVybiBhCi0gICAgLy8gdmFsaWQg
cmVzb2x2ZWQgcG9zaXRpb24uCi0gICAgaWYgKGluaXRpYWxQb3NpdGlvbi5pc05hbWVkR3JpZEFy
ZWEoKSAmJiBpc05vbkV4aXN0ZW50TmFtZWRMaW5lT3JBcmVhKGluaXRpYWxQb3NpdGlvbi5uYW1l
ZEdyaWRMaW5lKCksIHN0eWxlKCksIGluaXRpYWxQb3NpdGlvblNpZGUpKQotICAgICAgICBpbml0
aWFsUG9zaXRpb24uc2V0QXV0b1Bvc2l0aW9uKCk7Ci0KLSAgICBpZiAoZmluYWxQb3NpdGlvbi5p
c05hbWVkR3JpZEFyZWEoKSAmJiBpc05vbkV4aXN0ZW50TmFtZWRMaW5lT3JBcmVhKGZpbmFsUG9z
aXRpb24ubmFtZWRHcmlkTGluZSgpLCBzdHlsZSgpLCBmaW5hbFBvc2l0aW9uU2lkZSkpCi0gICAg
ICAgIGZpbmFsUG9zaXRpb24uc2V0QXV0b1Bvc2l0aW9uKCk7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0
cjxHcmlkU3Bhbj4gUmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29u
c3QgUmVuZGVyQm94KiBncmlkSXRlbSwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlv
bikgY29uc3QKLXsKLSAgICBHcmlkUG9zaXRpb24gaW5pdGlhbFBvc2l0aW9uID0gKGRpcmVjdGlv
biA9PSBGb3JDb2x1bW5zKSA/IGdyaWRJdGVtLT5zdHlsZSgpLmdyaWRJdGVtQ29sdW1uU3RhcnQo
KSA6IGdyaWRJdGVtLT5zdHlsZSgpLmdyaWRJdGVtUm93U3RhcnQoKTsKLSAgICBjb25zdCBHcmlk
UG9zaXRpb25TaWRlIGluaXRpYWxQb3NpdGlvblNpZGUgPSAoZGlyZWN0aW9uID09IEZvckNvbHVt
bnMpID8gQ29sdW1uU3RhcnRTaWRlIDogUm93U3RhcnRTaWRlOwotICAgIEdyaWRQb3NpdGlvbiBm
aW5hbFBvc2l0aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGdyaWRJdGVtLT5zdHls
ZSgpLmdyaWRJdGVtQ29sdW1uRW5kKCkgOiBncmlkSXRlbS0+c3R5bGUoKS5ncmlkSXRlbVJvd0Vu
ZCgpOwotICAgIGNvbnN0IEdyaWRQb3NpdGlvblNpZGUgZmluYWxQb3NpdGlvblNpZGUgPSAoZGly
ZWN0aW9uID09IEZvckNvbHVtbnMpID8gQ29sdW1uRW5kU2lkZSA6IFJvd0VuZFNpZGU7Ci0KLSAg
ICBhZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGluaXRpYWxQb3NpdGlvbiwgZmluYWxQb3Np
dGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSwgZmluYWxQb3NpdGlvblNpZGUpOwotCi0gICAgaWYg
KGluaXRpYWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24o
KSAmJiBmaW5hbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlv
bigpKSB7Ci0gICAgICAgIGlmIChzdHlsZSgpLmdyaWRBdXRvRmxvdygpID09IEF1dG9GbG93Tm9u
ZSkKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPigwLCAwKTsK
LQotICAgICAgICAvLyBXZSBjYW4ndCBnZXQgb3VyIGdyaWQgcG9zaXRpb25zIHdpdGhvdXQgcnVu
bmluZyB0aGUgYXV0byBwbGFjZW1lbnQgYWxnb3JpdGhtLgotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICB9Ci0KLSAgICBpZiAoaW5pdGlhbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2Fp
bnN0T3Bwb3NpdGVQb3NpdGlvbigpKSB7Ci0gICAgICAgIC8vIEluZmVyIHRoZSBwb3NpdGlvbiBm
cm9tIHRoZSBmaW5hbCBwb3NpdGlvbiAoJ2F1dG8gLyAxJyBvciAnc3BhbiAyIC8gMycgY2FzZSku
Ci0gICAgICAgIGNvbnN0IHNpemVfdCBmaW5hbFJlc29sdmVkUG9zaXRpb24gPSByZXNvbHZlR3Jp
ZFBvc2l0aW9uRnJvbVN0eWxlKGZpbmFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb25TaWRlKTsKLSAg
ICAgICAgcmV0dXJuIHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihm
aW5hbFJlc29sdmVkUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lk
ZSk7Ci0gICAgfQotCi0gICAgaWYgKGZpbmFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWlu
c3RPcHBvc2l0ZVBvc2l0aW9uKCkpIHsKLSAgICAgICAgLy8gSW5mZXIgb3VyIHBvc2l0aW9uIGZy
b20gdGhlIGluaXRpYWwgcG9zaXRpb24gKCcxIC8gYXV0bycgb3IgJzMgLyBzcGFuIDInIGNhc2Up
LgotICAgICAgICBjb25zdCBzaXplX3QgaW5pdGlhbFJlc29sdmVkUG9zaXRpb24gPSByZXNvbHZl
R3JpZFBvc2l0aW9uRnJvbVN0eWxlKGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lk
ZSk7Ci0gICAgICAgIHJldHVybiByZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9z
aXRpb24oaW5pdGlhbFJlc29sdmVkUG9zaXRpb24sIGZpbmFsUG9zaXRpb24sIGZpbmFsUG9zaXRp
b25TaWRlKTsKLSAgICB9Ci0KLSAgICBzaXplX3QgcmVzb2x2ZWRJbml0aWFsUG9zaXRpb24gPSBy
ZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0
aW9uU2lkZSk7Ci0gICAgc2l6ZV90IHJlc29sdmVkRmluYWxQb3NpdGlvbiA9IHJlc29sdmVHcmlk
UG9zaXRpb25Gcm9tU3R5bGUoZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvblNpZGUpOwotCi0g
ICAgLy8gSWYgJ2dyaWQtcm93LWVuZCcgc3BlY2lmaWVzIGEgbGluZSBhdCBvciBiZWZvcmUgdGhh
dCBzcGVjaWZpZWQgYnkgJ2dyaWQtcm93LXN0YXJ0JywgaXQgY29tcHV0ZXMgdG8gJ3NwYW4gMScu
Ci0gICAgaWYgKHJlc29sdmVkRmluYWxQb3NpdGlvbiA8IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9u
KQotICAgICAgICByZXNvbHZlZEZpbmFsUG9zaXRpb24gPSByZXNvbHZlZEluaXRpYWxQb3NpdGlv
bjsKLQotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZlZEluaXRp
YWxQb3NpdGlvbiwgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uKTsKLX0KLQotc2l6ZV90IFJlbmRlckdy
aWQ6OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgR3JpZFBvc2l0
aW9uJiBwb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKSBjb25zdAotewotICAgIEFTU0VS
VCghcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVsbCgpKTsKLQotICAgIGNvbnN0IE5hbWVk
R3JpZExpbmVzTWFwJiBncmlkTGluZXNOYW1lcyA9IGdyaWRMaW5lc0ZvclNpZGUoc3R5bGUoKSwg
c2lkZSk7Ci0gICAgTmFtZWRHcmlkTGluZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZ3JpZExp
bmVzTmFtZXMuZmluZChwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkpOwotICAgIGlmIChpdCA9PSBn
cmlkTGluZXNOYW1lcy5lbmQoKSkgewotICAgICAgICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgp
KQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIGNvbnN0IHNpemVfdCBsYXN0TGluZSA9
IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKHNpZGUpOwotICAgICAgICByZXR1cm4gR3JpZFBvc2l0
aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGxhc3RMaW5lLCBzaWRlKTsKLSAgICB9Ci0K
LSAgICBzaXplX3QgbmFtZWRHcmlkTGluZUluZGV4OwotICAgIGlmIChwb3NpdGlvbi5pc1Bvc2l0
aXZlKCkpCi0gICAgICAgIG5hbWVkR3JpZExpbmVJbmRleCA9IHN0ZDo6bWluPHNpemVfdD4ocG9z
aXRpb24uaW50ZWdlclBvc2l0aW9uKCksIGl0LT52YWx1ZS5zaXplKCkpIC0gMTsKLSAgICBlbHNl
Ci0gICAgICAgIG5hbWVkR3JpZExpbmVJbmRleCA9IHN0ZDo6bWF4PGludD4oaXQtPnZhbHVlLnNp
emUoKSAtIGFicyhwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSksIDApOwotICAgIHJldHVybiBH
cmlkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoaXQtPnZhbHVlW25hbWVkR3Jp
ZExpbmVJbmRleF0sIHNpZGUpOwotfQotCi1zaXplX3QgUmVuZGVyR3JpZDo6cmVzb2x2ZUdyaWRQ
b3NpdGlvbkZyb21TdHlsZShjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRp
b25TaWRlIHNpZGUpIGNvbnN0Ci17Ci0gICAgc3dpdGNoIChwb3NpdGlvbi50eXBlKCkpIHsKLSAg
ICBjYXNlIEV4cGxpY2l0UG9zaXRpb246IHsKLSAgICAgICAgQVNTRVJUKHBvc2l0aW9uLmludGVn
ZXJQb3NpdGlvbigpKTsKLQotICAgICAgICBpZiAoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5p
c051bGwoKSkKLSAgICAgICAgICAgIHJldHVybiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9u
RnJvbVN0eWxlKHBvc2l0aW9uLCBzaWRlKTsKLQotICAgICAgICAvLyBIYW5kbGUgPGludGVnZXI+
IGV4cGxpY2l0IHBvc2l0aW9uLgotICAgICAgICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgpKQot
ICAgICAgICAgICAgcmV0dXJuIEdyaWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lk
ZShwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSAtIDEsIHNpZGUpOwotCi0gICAgICAgIHNpemVf
dCByZXNvbHZlZFBvc2l0aW9uID0gYWJzKHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpKSAtIDE7
Ci0gICAgICAgIGNvbnN0IHNpemVfdCBlbmRPZlRyYWNrID0gZXhwbGljaXRHcmlkU2l6ZUZvclNp
ZGUoc2lkZSk7Ci0KLSAgICAgICAgLy8gUGVyIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMv
UHVibGljL3d3dy1zdHlsZS8yMDEzTWFyLzA1ODkuaHRtbCwgd2UgY2xhbXAgbmVnYXRpdmUgdmFs
dWUgdG8gdGhlIGZpcnN0IGxpbmUuCi0gICAgICAgIGlmIChlbmRPZlRyYWNrIDwgcmVzb2x2ZWRQ
b3NpdGlvbikKLSAgICAgICAgICAgIHJldHVybiAwOwotCi0gICAgICAgIHJldHVybiBHcmlkUG9z
aXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoZW5kT2ZUcmFjayAtIHJlc29sdmVkUG9z
aXRpb24sIHNpZGUpOwotICAgIH0KLSAgICBjYXNlIE5hbWVkR3JpZEFyZWFQb3NpdGlvbjoKLSAg
ICB7Ci0gICAgICAgIC8vIEZpcnN0IGF0dGVtcHQgdG8gbWF0Y2ggdGhlIGdyaWQgYXJlYSdzIGVk
Z2UgdG8gYSBuYW1lZCBncmlkIGFyZWE6IGlmIHRoZXJlIGlzIGEgbmFtZWQgbGluZSB3aXRoIHRo
ZSBuYW1lCi0gICAgICAgIC8vICcnPGN1c3RvbS1pZGVudD4tc3RhcnQgKGZvciBncmlkLSotc3Rh
cnQpIC8gPGN1c3RvbS1pZGVudD4tZW5kJycgKGZvciBncmlkLSotZW5kKSwgY29udHJpYnV0ZXMg
dGhlIGZpcnN0IHN1Y2gKLSAgICAgICAgLy8gbGluZSB0byB0aGUgZ3JpZCBpdGVtJ3MgcGxhY2Vt
ZW50LgotICAgICAgICBTdHJpbmcgbmFtZWRHcmlkTGluZSA9IHBvc2l0aW9uLm5hbWVkR3JpZExp
bmUoKTsKLSAgICAgICAgQVNTRVJUKCFpc05vbkV4aXN0ZW50TmFtZWRMaW5lT3JBcmVhKG5hbWVk
R3JpZExpbmUsIHN0eWxlKCksIHNpZGUpKTsKLQotICAgICAgICBjb25zdCBOYW1lZEdyaWRMaW5l
c01hcCYgZ3JpZExpbmVOYW1lcyA9IGdyaWRMaW5lc0ZvclNpZGUoc3R5bGUoKSwgc2lkZSk7Ci0g
ICAgICAgIGF1dG8gaW1wbGljaXRMaW5lID0gZ3JpZExpbmVOYW1lcy5maW5kKGltcGxpY2l0TmFt
ZWRHcmlkTGluZUZvclNpZGUobmFtZWRHcmlkTGluZSwgc2lkZSkpOwotICAgICAgICBpZiAoaW1w
bGljaXRMaW5lICE9IGdyaWRMaW5lTmFtZXMuZW5kKCkpCi0gICAgICAgICAgICByZXR1cm4gR3Jp
ZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGltcGxpY2l0TGluZS0+dmFsdWVb
MF0sIHNpZGUpOwotCi0gICAgICAgIC8vIE90aGVyd2lzZSwgaWYgdGhlcmUgaXMgYSBuYW1lZCBs
aW5lIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLCBjb250cmlidXRlcyB0aGUgZmlyc3Qgc3VjaCBs
aW5lIHRvIHRoZSBncmlkCi0gICAgICAgIC8vIGl0ZW0ncyBwbGFjZW1lbnQuCi0gICAgICAgIGF1
dG8gZXhwbGljaXRMaW5lID0gZ3JpZExpbmVOYW1lcy5maW5kKG5hbWVkR3JpZExpbmUpOwotICAg
ICAgICBpZiAoZXhwbGljaXRMaW5lICE9IGdyaWRMaW5lTmFtZXMuZW5kKCkpCi0gICAgICAgICAg
ICByZXR1cm4gR3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGV4cGxpY2l0
TGluZS0+dmFsdWVbMF0sIHNpZGUpOwotCi0gICAgICAgIC8vIElmIG5vbmUgb2YgdGhlIGFib3Zl
IHdvcmtzIHNwZWNzIG1hbmRhdGUgdXMgdG8gdHJlYXQgaXQgYXMgYXV0byBCVVQgd2Ugc2hvdWxk
IGhhdmUgZGV0ZWN0ZWQgaXQgYmVmb3JlIGNhbGxpbmcKLSAgICAgICAgLy8gdGhpcyBmdW5jdGlv
biBpbiByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZSgpLiBXZSBzaG91bGQgYmUgY292ZXJl
ZCBhbnl3YXkgYnkgdGhlIEFTU0VSVCBhdCB0aGUgYmVnaW5uaW5nCi0gICAgICAgIC8vIG9mIHRo
aXMgY2FzZSBibG9jay4KLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJl
dHVybiAwOwotICAgIH0KLSAgICBjYXNlIEF1dG9Qb3NpdGlvbjoKLSAgICBjYXNlIFNwYW5Qb3Np
dGlvbjoKLSAgICAgICAgLy8gJ2F1dG8nIGFuZCBzcGFuIGRlcGVuZCBvbiB0aGUgb3Bwb3NpdGUg
cG9zaXRpb24gZm9yIHJlc29sdXRpb24gKGUuZy4gZ3JpZC1yb3c6IGF1dG8gLyAxIG9yIGdyaWQt
Y29sdW1uOiBzcGFuIDMgLyAibXlIZWFkZXIiKS4KLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICByZXR1cm4gMDsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBSZW5kZXJHcmlk
OjpyZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oc2l6ZV90IHJlc29s
dmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBv
c2l0aW9uU2lkZSBzaWRlKSBjb25zdAotewotICAgIGlmIChwb3NpdGlvbi5pc0F1dG8oKSkKLSAg
ICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQ
b3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKLQotICAgIEFTU0VSVChwb3NpdGlv
bi5pc1NwYW4oKSk7Ci0gICAgQVNTRVJUKHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpID4gMCk7Ci0K
LSAgICBpZiAoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSkgewotICAgICAgICAv
LyBzcGFuIDIgJ2MnIC0+IHdlIG5lZWQgdG8gZmluZCB0aGUgYXBwcm9wcmlhdGUgZ3JpZCBsaW5l
IGJlZm9yZSAvIGFmdGVyIG91ciBvcHBvc2l0ZSBwb3NpdGlvbi4KLSAgICAgICAgcmV0dXJuIHJl
c29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihyZXNvbHZl
ZE9wcG9zaXRlUG9zaXRpb24sIHBvc2l0aW9uLCBzaWRlKTsKLSAgICB9Ci0KLSAgICAvLyAnc3Bh
biAxJyBpcyBjb250YWluZWQgaW5zaWRlIGEgc2luZ2xlIGdyaWQgdHJhY2sgcmVnYXJkbGVzcyBv
ZiB0aGUgZGlyZWN0aW9uLgotICAgIC8vIFRoYXQncyB3aHkgdGhlIENTUyBzcGFuIHZhbHVlIGlz
IG9uZSBtb3JlIHRoYW4gdGhlIG9mZnNldCB3ZSBhcHBseS4KLSAgICBzaXplX3QgcG9zaXRpb25P
ZmZzZXQgPSBwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSAtIDE7Ci0gICAgaWYgKGlzU3RhcnRTaWRl
KHNpZGUpKSB7Ci0gICAgICAgIHNpemVfdCBpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiA9IHN0ZDo6
bWF4PGludD4oMCwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uIC0gcG9zaXRpb25PZmZzZXQpOwot
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4oaW5pdGlhbFJlc29sdmVk
UG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7Ci0gICAgfQotCi0gICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcmVz
b2x2ZWRPcHBvc2l0ZVBvc2l0aW9uICsgcG9zaXRpb25PZmZzZXQpOwotfQotCi1zdGQ6OnVuaXF1
ZV9wdHI8R3JpZFNwYW4+IFJlbmRlckdyaWQ6OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25B
Z2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBj
b25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpIGNvbnN0
Ci17Ci0gICAgQVNTRVJUKHBvc2l0aW9uLmlzU3BhbigpKTsKLSAgICBBU1NFUlQoIXBvc2l0aW9u
Lm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSk7Ci0gICAgLy8gTmVnYXRpdmUgcG9zaXRpb25zIGFy
ZSBub3QgYWxsb3dlZCBwZXIgdGhlIHNwZWNpZmljYXRpb24gYW5kIHNob3VsZCBoYXZlIGJlZW4g
aGFuZGxlZCBkdXJpbmcgcGFyc2luZy4KLSAgICBBU1NFUlQocG9zaXRpb24uc3BhblBvc2l0aW9u
KCkgPiAwKTsKLQotICAgIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBncmlkTGluZXNOYW1lcyA9
IGdyaWRMaW5lc0ZvclNpZGUoc3R5bGUoKSwgc2lkZSk7Ci0gICAgTmFtZWRHcmlkTGluZXNNYXA6
OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZ3JpZExpbmVzTmFtZXMuZmluZChwb3NpdGlvbi5uYW1lZEdy
aWRMaW5lKCkpOwotCi0gICAgLy8gSWYgdGhlcmUgaXMgbm8gbmFtZWQgZ3JpZCBsaW5lIG9mIHRo
YXQgbmFtZSwgd2UgcmVzb2x2ZSB0aGUgcG9zaXRpb24gdG8gJ2F1dG8nICh3aGljaCBpcyBlcXVp
dmFsZW50IHRvICdzcGFuIDEnIGluIHRoaXMgY2FzZSkuCi0gICAgLy8gU2VlIGh0dHA6Ly9saXN0
cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1zdHlsZS8yMDEzSnVuLzAzOTQuaHRtbC4KLSAg
ICBpZiAoaXQgPT0gZ3JpZExpbmVzTmFtZXMuZW5kKCkpCi0gICAgICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkT3Bw
b3NpdGVQb3NpdGlvbik7Ci0KLSAgICBpZiAoaXNTdGFydFNpZGUoc2lkZSkpCi0gICAgICAgIHJl
dHVybiByZXNvbHZlUm93U3RhcnRDb2x1bW5TdGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWlu
c3RPcHBvc2l0ZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcG9zaXRpb24sIGl0
LT52YWx1ZSk7Ci0KLSAgICByZXR1cm4gcmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5hbWVkR3JpZExp
bmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlv
biwgcG9zaXRpb24sIGl0LT52YWx1ZSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgc2l6ZV90IGZpcnN0
TmFtZWRHcmlkTGluZUJlZm9yZVBvc2l0aW9uKHNpemVfdCBwb3NpdGlvbiwgY29uc3QgVmVjdG9y
PHNpemVfdD4mIGdyaWRMaW5lcykKLXsKLSAgICAvLyBUaGUgZ3JpZCBsaW5lIGluZXF1YWxpdHkg
bmVlZHMgdG8gYmUgc3RyaWN0ICh3aGljaCBkb2Vzbid0IG1hdGNoIHRoZSBhZnRlciAvIGVuZCBj
YXNlKSBiZWNhdXNlIHxwb3NpdGlvbnwgaXMKLSAgICAvLyBhbHJlYWR5IGNvbnZlcnRlZCB0byBh
biBpbmRleCBpbiBvdXIgZ3JpZCByZXByZXNlbnRhdGlvbiAoaWUgb25lIHdhcyByZW1vdmVkIGZy
b20gdGhlIGdyaWQgbGluZSB0byBhY2NvdW50IGZvcgotICAgIC8vIHRoZSBzaWRlKS4KLSAgICBz
aXplX3QgZmlyc3RMaW5lQmVmb3JlUG9zaXRpb25JbmRleCA9IDA7Ci0gICAgY29uc3Qgc2l6ZV90
KiBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbiA9IHN0ZDo6bG93ZXJfYm91bmQoZ3JpZExpbmVzLmJl
Z2luKCksIGdyaWRMaW5lcy5lbmQoKSwgcG9zaXRpb24pOwotICAgIGlmIChmaXJzdExpbmVCZWZv
cmVQb3NpdGlvbiAhPSBncmlkTGluZXMuZW5kKCkpIHsKLSAgICAgICAgaWYgKCpmaXJzdExpbmVC
ZWZvcmVQb3NpdGlvbiA+IHBvc2l0aW9uICYmIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uICE9IGdy
aWRMaW5lcy5iZWdpbigpKQotICAgICAgICAgICAgLS1maXJzdExpbmVCZWZvcmVQb3NpdGlvbjsK
LQotICAgICAgICBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbkluZGV4ID0gZmlyc3RMaW5lQmVmb3Jl
UG9zaXRpb24gLSBncmlkTGluZXMuYmVnaW4oKTsKLSAgICB9Ci0gICAgcmV0dXJuIGZpcnN0TGlu
ZUJlZm9yZVBvc2l0aW9uSW5kZXg7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gUmVu
ZGVyR3JpZDo6cmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3RhcnROYW1lZEdyaWRMaW5lUG9zaXRpb25B
Z2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBj
b25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYgZ3JpZExp
bmVzKSBjb25zdAotewotICAgIHNpemVfdCBncmlkTGluZUluZGV4ID0gc3RkOjptYXg8aW50Pigw
LCBmaXJzdE5hbWVkR3JpZExpbmVCZWZvcmVQb3NpdGlvbihyZXNvbHZlZE9wcG9zaXRlUG9zaXRp
b24sIGdyaWRMaW5lcykgLSBwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSArIDEpOwotICAgIHNpemVf
dCByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSBncmlkTGluZXNbZ3JpZExpbmVJbmRleF07Ci0g
ICAgaWYgKHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA+IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlv
bikKLSAgICAgICAgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gcmVzb2x2ZWRPcHBvc2l0ZVBv
c2l0aW9uOwotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZlZEdy
aWRMaW5lUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7Ci19Ci0KLXN0ZDo6dW5p
cXVlX3B0cjxHcmlkU3Bhbj4gUmVuZGVyR3JpZDo6cmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5hbWVk
R3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHNpemVfdCByZXNvbHZlZE9w
cG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIGNvbnN0IFZlY3Rv
cjxzaXplX3Q+JiBncmlkTGluZXMpIGNvbnN0Ci17Ci0gICAgc2l6ZV90IGZpcnN0TGluZUFmdGVy
T3Bwb3NpdGVQb3NpdGlvbkluZGV4ID0gZ3JpZExpbmVzLnNpemUoKSAtIDE7Ci0gICAgY29uc3Qg
c2l6ZV90KiBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb24gPSBzdGQ6OnVwcGVyX2JvdW5k
KGdyaWRMaW5lcy5iZWdpbigpLCBncmlkTGluZXMuZW5kKCksIHJlc29sdmVkT3Bwb3NpdGVQb3Np
dGlvbik7Ci0gICAgaWYgKGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbiAhPSBncmlkTGlu
ZXMuZW5kKCkpCi0gICAgICAgIGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbkluZGV4ID0g
Zmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uIC0gZ3JpZExpbmVzLmJlZ2luKCk7Ci0KLSAg
ICBzaXplX3QgZ3JpZExpbmVJbmRleCA9IHN0ZDo6bWluKGdyaWRMaW5lcy5zaXplKCkgLSAxLCBm
aXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb25JbmRleCArIHBvc2l0aW9uLnNwYW5Qb3NpdGlv
bigpIC0gMSk7Ci0gICAgc2l6ZV90IHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA9IEdyaWRQb3Np
dGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZShncmlkTGluZXNb
Z3JpZExpbmVJbmRleF0pOwotICAgIGlmIChyZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPCByZXNv
bHZlZE9wcG9zaXRlUG9zaXRpb24pCi0gICAgICAgIHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA9
IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbjsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxH
cmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCByZXNvbHZlZEdyaWRMaW5lUG9zaXRp
b24pOwotfQotCiBMYXlvdXRVbml0IFJlbmRlckdyaWQ6OmdyaWRBcmVhQnJlYWR0aEZvckNoaWxk
KGNvbnN0IFJlbmRlckJveCogY2hpbGQsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rp
b24sIGNvbnN0IFZlY3RvcjxHcmlkVHJhY2s+JiB0cmFja3MpIGNvbnN0CiB7CiAgICAgY29uc3Qg
R3JpZENvb3JkaW5hdGUmIGNvb3JkaW5hdGUgPSBjYWNoZWRHcmlkQ29vcmRpbmF0ZShjaGlsZCk7
CiAgICAgY29uc3QgR3JpZFNwYW4mIHNwYW4gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8g
Y29vcmRpbmF0ZS5jb2x1bW5zIDogY29vcmRpbmF0ZS5yb3dzOwogICAgIExheW91dFVuaXQgZ3Jp
ZEFyZWFCcmVhZHRoID0gMDsKLSAgICBmb3IgKHNpemVfdCB0cmFja0luZGV4ID0gc3Bhbi5pbml0
aWFsUG9zaXRpb25JbmRleDsgdHJhY2tJbmRleCA8PSBzcGFuLmZpbmFsUG9zaXRpb25JbmRleDsg
Kyt0cmFja0luZGV4KQotICAgICAgICBncmlkQXJlYUJyZWFkdGggKz0gdHJhY2tzW3RyYWNrSW5k
ZXhdLm1fdXNlZEJyZWFkdGg7CisgICAgZm9yIChHcmlkUmVzb2x2ZWRQb3NpdGlvbiB0cmFja1Bv
c2l0aW9uID0gc3Bhbi5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsgdHJhY2tQb3NpdGlvbiA8PSBz
cGFuLnJlc29sdmVkRmluYWxQb3NpdGlvbjsgKyt0cmFja1Bvc2l0aW9uKQorICAgICAgICBncmlk
QXJlYUJyZWFkdGggKz0gdHJhY2tzW3RyYWNrUG9zaXRpb24udG9JbnQoKV0ubV91c2VkQnJlYWR0
aDsKICAgICByZXR1cm4gZ3JpZEFyZWFCcmVhZHRoOwogfQogCkBAIC0xMTI1LDExICs4NTgsMTEg
QEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUdyaWRQb3NpdGlvbnMoY29uc3QgR3JpZFNpemlu
Z0RhdGEmIHNpemluZ0RhdGEpCiBMYXlvdXRQb2ludCBSZW5kZXJHcmlkOjpmaW5kQ2hpbGRMb2dp
Y2FsUG9zaXRpb24oUmVuZGVyQm94KiBjaGlsZCwgY29uc3QgR3JpZFNpemluZ0RhdGEmIHNpemlu
Z0RhdGEpCiB7CiAgICAgY29uc3QgR3JpZENvb3JkaW5hdGUmIGNvb3JkaW5hdGUgPSBjYWNoZWRH
cmlkQ29vcmRpbmF0ZShjaGlsZCk7Ci0gICAgQVNTRVJUX1VOVVNFRChzaXppbmdEYXRhLCBjb29y
ZGluYXRlLmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXggPCBzaXppbmdEYXRhLmNvbHVtblRy
YWNrcy5zaXplKCkpOwotICAgIEFTU0VSVF9VTlVTRUQoc2l6aW5nRGF0YSwgY29vcmRpbmF0ZS5y
b3dzLmluaXRpYWxQb3NpdGlvbkluZGV4IDwgc2l6aW5nRGF0YS5yb3dUcmFja3Muc2l6ZSgpKTsK
KyAgICBBU1NFUlRfVU5VU0VEKHNpemluZ0RhdGEsIGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZl
ZEluaXRpYWxQb3NpdGlvbi50b0ludCgpIDwgc2l6aW5nRGF0YS5jb2x1bW5UcmFja3Muc2l6ZSgp
KTsKKyAgICBBU1NFUlRfVU5VU0VEKHNpemluZ0RhdGEsIGNvb3JkaW5hdGUucm93cy5yZXNvbHZl
ZEluaXRpYWxQb3NpdGlvbi50b0ludCgpIDwgc2l6aW5nRGF0YS5yb3dUcmFja3Muc2l6ZSgpKTsK
IAogICAgIC8vIFRoZSBncmlkIGl0ZW1zIHNob3VsZCBiZSBpbnNpZGUgdGhlIGdyaWQgY29udGFp
bmVyJ3MgYm9yZGVyIGJveCwgdGhhdCdzIHdoeSB0aGV5IG5lZWQgdG8gYmUgc2hpZnRlZC4KLSAg
ICByZXR1cm4gTGF5b3V0UG9pbnQobV9jb2x1bW5Qb3NpdGlvbnNbY29vcmRpbmF0ZS5jb2x1bW5z
LmluaXRpYWxQb3NpdGlvbkluZGV4XSArIG1hcmdpblN0YXJ0Rm9yQ2hpbGQoKmNoaWxkKSwgbV9y
b3dQb3NpdGlvbnNbY29vcmRpbmF0ZS5yb3dzLmluaXRpYWxQb3NpdGlvbkluZGV4XSArIG1hcmdp
bkJlZm9yZUZvckNoaWxkKCpjaGlsZCkpOworICAgIHJldHVybiBMYXlvdXRQb2ludChtX2NvbHVt
blBvc2l0aW9uc1tjb29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9J
bnQoKV0gKyBtYXJnaW5TdGFydEZvckNoaWxkKCpjaGlsZCksIG1fcm93UG9zaXRpb25zW2Nvb3Jk
aW5hdGUucm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpXSArIG1hcmdpbkJlZm9y
ZUZvckNoaWxkKCpjaGlsZCkpOwogfQogCiB2b2lkIFJlbmRlckdyaWQ6OnBhaW50Q2hpbGRyZW4o
UGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgUGFp
bnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmludFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuaAppbmRleCA4MTg0ZWNmYjc0MjYyYTU0YjE4ZWQ3YTYxODM4NjE2NTA0MDJi
ZTQ3Li4zYjNiNmViNDEzOTU2MTU4MzJiNGQxNjNlYWE4YTQwNjI5MjJmNmMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lmIEVOQUJM
RShDU1NfR1JJRF9MQVlPVVQpCiAKKyNpbmNsdWRlICJHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oIgog
I2luY2x1ZGUgIk9yZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogCkBA
IC0zOCwxMSArMzksNiBAQCBjbGFzcyBHcmlkQ29vcmRpbmF0ZTsKIGNsYXNzIEdyaWRTcGFuOwog
Y2xhc3MgR3JpZFRyYWNrOwogCi1lbnVtIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiB7Ci0gICAg
Rm9yQ29sdW1ucywKLSAgICBGb3JSb3dzCi19OwotCiBjbGFzcyBSZW5kZXJHcmlkIGZpbmFsIDog
cHVibGljIFJlbmRlckJsb2NrIHsKIHB1YmxpYzoKICAgICBSZW5kZXJHcmlkKEVsZW1lbnQmLCBQ
YXNzUmVmPFJlbmRlclN0eWxlPik7CkBAIC02Niw3ICs2Miw2IEBAIHByaXZhdGU6CiAKICAgICBj
bGFzcyBHcmlkSXRlcmF0b3I7CiAgICAgY2xhc3MgR3JpZFNpemluZ0RhdGE7Ci0gICAgZW51bSBH
cmlkVHJhY2tTaXppbmdEaXJlY3Rpb24geyBGb3JDb2x1bW5zLCBGb3JSb3dzIH07CiAgICAgdm9p
ZCBjb21wdXRlVXNlZEJyZWFkdGhPZkdyaWRUcmFja3MoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9u
LCBHcmlkU2l6aW5nRGF0YSYpOwogICAgIHZvaWQgY29tcHV0ZVVzZWRCcmVhZHRoT2ZHcmlkVHJh
Y2tzKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgR3JpZFNpemluZ0RhdGEmLCBMYXlvdXRVbml0
JiBhdmFpbGFibGVMb2dpY2FsU3BhY2UpOwogICAgIGJvb2wgZ3JpZEVsZW1lbnRJc1Nocmlua1Rv
Rml0KCk7CkBAIC03Niw3ICs3MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXNvbHZlQ29udGVu
dEJhc2VkVHJhY2tTaXppbmdGdW5jdGlvbnMoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBHcmlk
U2l6aW5nRGF0YSYpOwogCiAgICAgdm9pZCBncm93R3JpZChHcmlkVHJhY2tTaXppbmdEaXJlY3Rp
b24pOwotICAgIHZvaWQgaW5zZXJ0SXRlbUludG9HcmlkKFJlbmRlckJveCosIHNpemVfdCByb3dU
cmFjaywgc2l6ZV90IGNvbHVtblRyYWNrKTsKKyAgICB2b2lkIGluc2VydEl0ZW1JbnRvR3JpZChS
ZW5kZXJCb3gqLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcm93VHJhY2ssIGNvbnN0IEdy
aWRSZXNvbHZlZFBvc2l0aW9uJiBjb2x1bW5UcmFjayk7CiAgICAgdm9pZCBpbnNlcnRJdGVtSW50
b0dyaWQoUmVuZGVyQm94KiwgY29uc3QgR3JpZENvb3JkaW5hdGUmKTsKICAgICB2b2lkIHBsYWNl
SXRlbXNPbkdyaWQoKTsKICAgICB2b2lkIHBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVy
YXRvcigpOwpAQCAtMTAwLDkgKzk1LDYgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgY29tcHV0ZU5v
cm1hbGl6ZWRGcmFjdGlvbkJyZWFkdGgoVmVjdG9yPEdyaWRUcmFjaz4mLCBjb25zdCBHcmlkU3Bh
biYgdHJhY2tzU3BhbiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBMYXlvdXRVbml0IGF2YWls
YWJsZUxvZ2ljYWxTcGFjZSkgY29uc3Q7CiAKICAgICBjb25zdCBHcmlkVHJhY2tTaXplJiBncmlk
VHJhY2tTaXplKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgc2l6ZV90KSBjb25zdDsKLSAgICBz
aXplX3QgZXhwbGljaXRHcmlkQ29sdW1uQ291bnQoKSBjb25zdDsKLSAgICBzaXplX3QgZXhwbGlj
aXRHcmlkUm93Q291bnQoKSBjb25zdDsKLSAgICBzaXplX3QgZXhwbGljaXRHcmlkU2l6ZUZvclNp
ZGUoR3JpZFBvc2l0aW9uU2lkZSkgY29uc3Q7CiAKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxDb250
ZW50SGVpZ2h0Rm9yQ2hpbGQoUmVuZGVyQm94KiwgVmVjdG9yPEdyaWRUcmFjaz4mKTsKICAgICBM
YXlvdXRVbml0IG1pbkNvbnRlbnRGb3JDaGlsZChSZW5kZXJCb3gqLCBHcmlkVHJhY2tTaXppbmdE
aXJlY3Rpb24sIFZlY3RvcjxHcmlkVHJhY2s+JiBjb2x1bW5UcmFja3MpOwpAQCAtMTEwLDE3ICsx
MDIsNiBAQCBwcml2YXRlOgogICAgIExheW91dFBvaW50IGZpbmRDaGlsZExvZ2ljYWxQb3NpdGlv
bihSZW5kZXJCb3gqLCBjb25zdCBHcmlkU2l6aW5nRGF0YSYpOwogICAgIEdyaWRDb29yZGluYXRl
IGNhY2hlZEdyaWRDb29yZGluYXRlKGNvbnN0IFJlbmRlckJveCopIGNvbnN0OwogCi0gICAgR3Jp
ZFNwYW4gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKGNvbnN0
IFJlbmRlckJveCosIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgc2l6ZV90KSBjb25zdDsKLSAg
ICB2b2lkIGFkanVzdE5hbWVkR3JpZEl0ZW1Qb3NpdGlvbihHcmlkUG9zaXRpb24mLCBHcmlkUG9z
aXRpb25TaWRlKSBjb25zdDsKLSAgICB2b2lkIGFkanVzdEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUo
R3JpZFBvc2l0aW9uJiBpbml0aWFsUG9zaXRpb24sIEdyaWRQb3NpdGlvbiYgZmluYWxQb3NpdGlv
biwgR3JpZFBvc2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlLCBHcmlkUG9zaXRpb25TaWRl
IGZpbmFsUG9zaXRpb25TaWRlKSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+
IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlckJveCosIEdyaWRUcmFj
a1NpemluZ0RpcmVjdGlvbikgY29uc3Q7Ci0gICAgc2l6ZV90IHJlc29sdmVOYW1lZEdyaWRMaW5l
UG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lkZSkg
Y29uc3Q7Ci0gICAgc2l6ZV90IHJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgR3Jp
ZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lkZSkgY29uc3Q7Ci0gICAgc3RkOjp1bmlxdWVfcHRy
PEdyaWRTcGFuPiByZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oc2l6
ZV90IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgR3JpZFBv
c2l0aW9uU2lkZSkgY29uc3Q7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNvbHZl
TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oc2l6ZV90IHJlc29s
dmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lk
ZSkgY29uc3Q7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNvbHZlUm93U3RhcnRD
b2x1bW5TdGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHNp
emVfdCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYsIGNvbnN0
IFZlY3RvcjxzaXplX3Q+JikgY29uc3Q7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBy
ZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRl
UG9zaXRpb24oc2l6ZV90IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0
aW9uJiwgY29uc3QgVmVjdG9yPHNpemVfdD4mKSBjb25zdDsKLQogICAgIExheW91dFVuaXQgZ3Jp
ZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94KiBjaGlsZCwgR3JpZFRyYWNrU2l6
aW5nRGlyZWN0aW9uLCBjb25zdCBWZWN0b3I8R3JpZFRyYWNrPiYpIGNvbnN0OwogCiAgICAgdmly
dHVhbCB2b2lkIHBhaW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBmb3JTZWxmLCBjb25zdCBMYXlvdXRQ
b2ludCYgcGFpbnRPZmZzZXQsIFBhaW50SW5mbyYgZm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0
KSBvdmVycmlkZSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9HcmlkQ29vcmRpbmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dy
aWRDb29yZGluYXRlLmgKaW5kZXggNDRkMjAwYmNkZDVhMWZhOGVhYjMyZjI5NmI4NzhkOTNiMDRj
ZjI3Mi4uOTA4ZjM2NzJiNjk1MzQ2NjU1YWQ5ZjlkZGMyZjNjOWYyODRiZTY3MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRDb29yZGluYXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRDb29yZGluYXRlLmgKQEAgLTM0LDMw
ICszNCwzMSBAQAogCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKIAorI2luY2x1ZGUgIkdy
aWRSZXNvbHZlZFBvc2l0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0vLyBBIHNw
YW4gaW4gYSBzaW5nbGUgZGlyZWN0aW9uIChlaXRoZXIgcm93cyBvciBjb2x1bW5zKS4gTm90ZSB0
aGF0IHxpbml0aWFsUG9zaXRpb25JbmRleHwKLS8vIGFuZCB8ZmluYWxQb3NpdGlvbkluZGV4fCBh
cmUgZ3JpZCBhcmVhcycgaW5kZXhlcywgTk9UIGdyaWQgbGluZXMnLiBJdGVyYXRpbmcgb3ZlciB0
aGUKLS8vIHNwYW4gc2hvdWxkIGluY2x1ZGUgYm90aCB8aW5pdGlhbFBvc2l0aW9uSW5kZXh8IGFu
ZCB8ZmluYWxQb3NpdGlvbkluZGV4fCB0byBiZSBjb3JyZWN0LgorLy8gQSBzcGFuIGluIGEgc2lu
Z2xlIGRpcmVjdGlvbiAoZWl0aGVyIHJvd3Mgb3IgY29sdW1ucykuIE5vdGUgdGhhdCB8cmVzb2x2
ZWRJbml0aWFsUG9zaXRpb258CisvLyBhbmQgfHJlc29sdmVkRmluYWxQb3NpdGlvbnwgYXJlIGdy
aWQgYXJlYXMnIGluZGV4ZXMsIE5PVCBncmlkIGxpbmVzJy4gSXRlcmF0aW5nIG92ZXIgdGhlCisv
LyBzcGFuIHNob3VsZCBpbmNsdWRlIGJvdGggfHJlc29sdmVkSW5pdGlhbFBvc2l0aW9ufCBhbmQg
fHJlc29sdmVkRmluYWxQb3NpdGlvbnwgdG8gYmUgY29ycmVjdC4KIGNsYXNzIEdyaWRTcGFuIHsK
IHB1YmxpYzoKLSAgICBHcmlkU3BhbihzaXplX3QgaW5pdGlhbFBvc2l0aW9uLCBzaXplX3QgZmlu
YWxQb3NpdGlvbikKLSAgICAgICAgOiBpbml0aWFsUG9zaXRpb25JbmRleChpbml0aWFsUG9zaXRp
b24pCi0gICAgICAgICwgZmluYWxQb3NpdGlvbkluZGV4KGZpbmFsUG9zaXRpb24pCisgICAgR3Jp
ZFNwYW4oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIHJlc29sdmVkSW5pdGlhbFBvc2l0aW9u
LCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uKQorICAg
ICAgICA6IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uKHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uKQor
ICAgICAgICAsIHJlc29sdmVkRmluYWxQb3NpdGlvbihyZXNvbHZlZEZpbmFsUG9zaXRpb24pCiAg
ICAgewotICAgICAgICBBU1NFUlQoaW5pdGlhbFBvc2l0aW9uSW5kZXggPD0gZmluYWxQb3NpdGlv
bkluZGV4KTsKKyAgICAgICAgQVNTRVJUKHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uIDw9IHJlc29s
dmVkRmluYWxQb3NpdGlvbik7CiAgICAgfQogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEdy
aWRTcGFuJiBvKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIGluaXRpYWxQb3NpdGlvbklu
ZGV4ID09IG8uaW5pdGlhbFBvc2l0aW9uSW5kZXggJiYgZmluYWxQb3NpdGlvbkluZGV4ID09IG8u
ZmluYWxQb3NpdGlvbkluZGV4OworICAgICAgICByZXR1cm4gcmVzb2x2ZWRJbml0aWFsUG9zaXRp
b24gPT0gby5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbiAmJiByZXNvbHZlZEZpbmFsUG9zaXRpb24g
PT0gby5yZXNvbHZlZEZpbmFsUG9zaXRpb247CiAgICAgfQogCi0gICAgc2l6ZV90IGluaXRpYWxQ
b3NpdGlvbkluZGV4OwotICAgIHNpemVfdCBmaW5hbFBvc2l0aW9uSW5kZXg7CisgICAgR3JpZFJl
c29sdmVkUG9zaXRpb24gcmVzb2x2ZWRJbml0aWFsUG9zaXRpb247CisgICAgR3JpZFJlc29sdmVk
UG9zaXRpb24gcmVzb2x2ZWRGaW5hbFBvc2l0aW9uOwogfTsKIAogLy8gVGhpcyByZXByZXNlbnRz
IGEgZ3JpZCBhcmVhIHRoYXQgc3BhbnMgaW4gYm90aCByb3dzJyBhbmQgY29sdW1ucycgZGlyZWN0
aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3Np
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5oCmlu
ZGV4IDY4ZjJmMzkxY2M1ZGEwNzNkZDE2NzA5OGMwOGM1YTlmODZhNDhmZDQuLjVhMGFmOWVlNDc2
MGI0Y2M0OTQzMjE0Y2FkY2JmZDk1NmE1ZWJjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9HcmlkUG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uLmgKQEAgLTQ1LDEzICs0NSw2IEBAIGVudW0gR3JpZFBv
c2l0aW9uVHlwZSB7CiAgICAgTmFtZWRHcmlkQXJlYVBvc2l0aW9uIC8vIDxpZGVudD4KIH07CiAK
LWVudW0gR3JpZFBvc2l0aW9uU2lkZSB7Ci0gICAgQ29sdW1uU3RhcnRTaWRlLAotICAgIENvbHVt
bkVuZFNpZGUsCi0gICAgUm93U3RhcnRTaWRlLAotICAgIFJvd0VuZFNpZGUKLX07Ci0KIGNsYXNz
IEdyaWRQb3NpdGlvbiB7CiBwdWJsaWM6CiAgICAgR3JpZFBvc2l0aW9uKCkKQEAgLTYwLDIwICs1
Myw2IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgc3RhdGljIGlubGluZSBzaXplX3Qg
YWRqdXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZShzaXplX3QgcmVzb2x2ZWRQ
b3NpdGlvbikKLSAgICB7Ci0gICAgICAgIHJldHVybiByZXNvbHZlZFBvc2l0aW9uID8gcmVzb2x2
ZWRQb3NpdGlvbiAtIDEgOiAwOwotICAgIH0KLQotICAgIHN0YXRpYyBzaXplX3QgYWRqdXN0R3Jp
ZFBvc2l0aW9uRm9yU2lkZShzaXplX3QgcmVzb2x2ZWRQb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lk
ZSBzaWRlKQotICAgIHsKLSAgICAgICAgLy8gQW4gaXRlbSBmaW5pc2hpbmcgb24gdGhlIE4tdGgg
bGluZSBiZWxvbmdzIHRvIHRoZSBOLTEtdGggY2VsbC4KLSAgICAgICAgaWYgKHNpZGUgPT0gQ29s
dW1uRW5kU2lkZSB8fCBzaWRlID09IFJvd0VuZFNpZGUpCi0gICAgICAgICAgICByZXR1cm4gYWRq
dXN0R3JpZFBvc2l0aW9uRm9yUm93RW5kQ29sdW1uRW5kU2lkZShyZXNvbHZlZFBvc2l0aW9uKTsK
LQotICAgICAgICByZXR1cm4gcmVzb2x2ZWRQb3NpdGlvbjsKLSAgICB9Ci0KICAgICBib29sIGlz
UG9zaXRpdmUoKSBjb25zdCB7IHJldHVybiBpbnRlZ2VyUG9zaXRpb24oKSA+IDA7IH0KIAogICAg
IEdyaWRQb3NpdGlvblR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlv
bi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODVjMTY4ZWRmNzlhYzA3ZjBiOWZhNGIzMDNiNzgxOTg2NGQ3MDhj
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Hcmlk
UmVzb2x2ZWRQb3NpdGlvbi5jcHAKQEAgLTAsMCArMSwzMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR3JpZFJlc29s
dmVkUG9zaXRpb24uaCIKKworI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisKKyNpbmNsdWRl
ICJHcmlkQ29vcmRpbmF0ZS5oIgorI2luY2x1ZGUgIlJlbmRlckJveC5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3NpemVfdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6ZXhwbGljaXRHcmlkQ29s
dW1uQ291bnQoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSkKK3sKKyAgICBy
ZXR1cm4gZ3JpZENvbnRhaW5lclN0eWxlLmdyaWRDb2x1bW5zKCkuc2l6ZSgpOworfQorCitzaXpl
X3QgR3JpZFJlc29sdmVkUG9zaXRpb246OmV4cGxpY2l0R3JpZFJvd0NvdW50KGNvbnN0IFJlbmRl
clN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUpCit7CisgICAgcmV0dXJuIGdyaWRDb250YWluZXJT
dHlsZS5ncmlkUm93cygpLnNpemUoKTsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzQ29sdW1u
U2lkZShHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7CisgICAgcmV0dXJuIHNpZGUgPT0gQ29sdW1u
U3RhcnRTaWRlIHx8IHNpZGUgPT0gQ29sdW1uRW5kU2lkZTsKK30KKworc3RhdGljIGlubGluZSBi
b29sIGlzU3RhcnRTaWRlKEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sKKyAgICByZXR1cm4gc2lk
ZSA9PSBDb2x1bW5TdGFydFNpZGUgfHwgc2lkZSA9PSBSb3dTdGFydFNpZGU7Cit9CisKK3N0YXRp
YyBzaXplX3QgZXhwbGljaXRHcmlkU2l6ZUZvclNpZGUoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRD
b250YWluZXJTdHlsZSwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQoreworICAgIHJldHVybiBpc0Nv
bHVtblNpZGUoc2lkZSkgPyBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6ZXhwbGljaXRHcmlkQ29sdW1u
Q291bnQoZ3JpZENvbnRhaW5lclN0eWxlKSA6IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpleHBsaWNp
dEdyaWRSb3dDb3VudChncmlkQ29udGFpbmVyU3R5bGUpOworfQorCitHcmlkU3BhbiBHcmlkUmVz
b2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0
aW9uKGNvbnN0IFJlbmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgY29uc3QgR3Jp
ZFJlc29sdmVkUG9zaXRpb24mIGluaXRpYWxQb3NpdGlvbikKK3sKKyAgICAvLyBGSVhNRTogV2Ug
ZG9uJ3Qgc3VwcG9ydCBzcGFubmluZyB3aXRoIGF1dG8gcG9zaXRpb25zIHlldC4gT25jZSB3ZSBk
bywgdGhpcyBpcyB3cm9uZy4gQWxzbyB3ZSBzaG91bGQgbWFrZQorICAgIC8vIHN1cmUgdGhlIGdy
aWQgY2FuIGFjY29tb2RhdGUgdGhlIG5ldyBpdGVtIGFzIHdlIG9ubHkgZ3JvdyAxIHBvc2l0aW9u
IGluIGEgZ2l2ZW4gZGlyZWN0aW9uLgorICAgIHJldHVybiBHcmlkU3Bhbihpbml0aWFsUG9zaXRp
b24sIGluaXRpYWxQb3NpdGlvbik7Cit9CisKK3N0YXRpYyBpbmxpbmUgY29uc3QgTmFtZWRHcmlk
TGluZXNNYXAmIGdyaWRMaW5lc0ZvclNpZGUoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBHcmlk
UG9zaXRpb25TaWRlIHNpZGUpCit7CisgICAgcmV0dXJuIGlzQ29sdW1uU2lkZShzaWRlKSA/IHN0
eWxlLm5hbWVkR3JpZENvbHVtbkxpbmVzKCkgOiBzdHlsZS5uYW1lZEdyaWRSb3dMaW5lcygpOwor
fQorCitzdGF0aWMgaW5saW5lIGNvbnN0IFN0cmluZyBpbXBsaWNpdE5hbWVkR3JpZExpbmVGb3JT
aWRlKGNvbnN0IFN0cmluZyYgbGluZU5hbWUsIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sKKyAg
ICByZXR1cm4gbGluZU5hbWUgKyAoaXNTdGFydFNpZGUoc2lkZSkgPyAiLXN0YXJ0IiA6ICItZW5k
Iik7Cit9CisKK3N0YXRpYyBib29sIGlzTm9uRXhpc3RlbnROYW1lZExpbmVPckFyZWEoY29uc3Qg
U3RyaW5nJiBsaW5lTmFtZSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBHcmlkUG9zaXRpb25T
aWRlIHNpZGUpCit7CisgICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIGdyaWRMaW5lTmFtZXMg
PSBncmlkTGluZXNGb3JTaWRlKHN0eWxlLCBzaWRlKTsKKyAgICByZXR1cm4gIWdyaWRMaW5lTmFt
ZXMuY29udGFpbnMoaW1wbGljaXROYW1lZEdyaWRMaW5lRm9yU2lkZShsaW5lTmFtZSwgc2lkZSkp
ICYmICFncmlkTGluZU5hbWVzLmNvbnRhaW5zKGxpbmVOYW1lKTsKK30KKwordm9pZCBHcmlkUmVz
b2x2ZWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5kZXJT
dHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBHcmlkUG9zaXRpb24mIGluaXRpYWxQb3NpdGlvbiwg
R3JpZFBvc2l0aW9uJiBmaW5hbFBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIGluaXRpYWxQb3Np
dGlvblNpZGUsIEdyaWRQb3NpdGlvblNpZGUgZmluYWxQb3NpdGlvblNpZGUpCit7CisgICAgQVNT
RVJUKGlzQ29sdW1uU2lkZShpbml0aWFsUG9zaXRpb25TaWRlKSA9PSBpc0NvbHVtblNpZGUoZmlu
YWxQb3NpdGlvblNpZGUpKTsKKworICAgIC8vIFdlIG11c3QgaGFuZGxlIHRoZSBwbGFjZW1lbnQg
ZXJyb3IgaGFuZGxpbmcgY29kZSBoZXJlIGluc3RlYWQgb2YgaW4gdGhlIFN0eWxlQWRqdXN0ZXIg
YmVjYXVzZSB3ZSBkb24ndCB3YW50IHRvCisgICAgLy8gb3ZlcndyaXRlIHRoZSBzcGVjaWZpZWQg
dmFsdWVzLgorICAgIGlmIChpbml0aWFsUG9zaXRpb24uaXNTcGFuKCkgJiYgZmluYWxQb3NpdGlv
bi5pc1NwYW4oKSkKKyAgICAgICAgZmluYWxQb3NpdGlvbi5zZXRBdXRvUG9zaXRpb24oKTsKKwor
ICAgIC8vIFRyeSB0byBlYXJseSBkZXRlY3QgdGhlIGNhc2Ugb2Ygbm9uIGV4aXN0aW5nIG5hbWVk
IGdyaWQgbGluZXMuIFRoaXMgd2F5IHdlIGNvdWxkIGFzc3VtZSBsYXRlciB0aGF0CisgICAgLy8g
R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlzUG9zaXRpb25Gcm9tU3R5bGUoKSB3b24n
dCByZXF1aXJlIHRoZSBhdXRvcGxhY2VtZW50IHRvIHJ1biwgaS5lLiwgaXQnbGwgYWx3YXlzIHJl
dHVybiBhCisgICAgLy8gdmFsaWQgcmVzb2x2ZWQgcG9zaXRpb24uCisgICAgaWYgKGluaXRpYWxQ
b3NpdGlvbi5pc05hbWVkR3JpZEFyZWEoKSAmJiBpc05vbkV4aXN0ZW50TmFtZWRMaW5lT3JBcmVh
KGluaXRpYWxQb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCksIGdyaWRDb250YWluZXJTdHlsZSwgaW5p
dGlhbFBvc2l0aW9uU2lkZSkpCisgICAgICAgIGluaXRpYWxQb3NpdGlvbi5zZXRBdXRvUG9zaXRp
b24oKTsKKworICAgIGlmIChmaW5hbFBvc2l0aW9uLmlzTmFtZWRHcmlkQXJlYSgpICYmIGlzTm9u
RXhpc3RlbnROYW1lZExpbmVPckFyZWEoZmluYWxQb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCksIGdy
aWRDb250YWluZXJTdHlsZSwgZmluYWxQb3NpdGlvblNpZGUpKQorICAgICAgICBmaW5hbFBvc2l0
aW9uLnNldEF1dG9Qb3NpdGlvbigpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IEdy
aWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBS
ZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBjb25zdCBSZW5kZXJCb3gmIGdyaWRJdGVt
LCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIEdyaWRQb3NpdGlv
biBpbml0aWFsUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gZ3JpZEl0ZW0u
c3R5bGUoKS5ncmlkSXRlbUNvbHVtblN0YXJ0KCkgOiBncmlkSXRlbS5zdHlsZSgpLmdyaWRJdGVt
Um93U3RhcnQoKTsKKyAgICBjb25zdCBHcmlkUG9zaXRpb25TaWRlIGluaXRpYWxQb3NpdGlvblNp
ZGUgPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gQ29sdW1uU3RhcnRTaWRlIDogUm93U3Rh
cnRTaWRlOworICAgIEdyaWRQb3NpdGlvbiBmaW5hbFBvc2l0aW9uID0gKGRpcmVjdGlvbiA9PSBG
b3JDb2x1bW5zKSA/IGdyaWRJdGVtLnN0eWxlKCkuZ3JpZEl0ZW1Db2x1bW5FbmQoKSA6IGdyaWRJ
dGVtLnN0eWxlKCkuZ3JpZEl0ZW1Sb3dFbmQoKTsKKyAgICBjb25zdCBHcmlkUG9zaXRpb25TaWRl
IGZpbmFsUG9zaXRpb25TaWRlID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IENvbHVtbkVu
ZFNpZGUgOiBSb3dFbmRTaWRlOworCisgICAgYWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShn
cmlkQ29udGFpbmVyU3R5bGUsIGluaXRpYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvbiwgaW5pdGlh
bFBvc2l0aW9uU2lkZSwgZmluYWxQb3NpdGlvblNpZGUpOworCisgICAgaWYgKGluaXRpYWxQb3Np
dGlvbi5zaG91bGRCZVJlc29sdmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oKSAmJiBmaW5hbFBv
c2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigpKSB7CisgICAg
ICAgIGlmIChncmlkQ29udGFpbmVyU3R5bGUuZ3JpZEF1dG9GbG93KCkgPT0gQXV0b0Zsb3dOb25l
KQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KDAsIDApOwor
CisgICAgICAgIC8vIFdlIGNhbid0IGdldCBvdXIgZ3JpZCBwb3NpdGlvbnMgd2l0aG91dCBydW5u
aW5nIHRoZSBhdXRvIHBsYWNlbWVudCBhbGdvcml0aG0uCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIH0KKworICAgIGlmIChpbml0aWFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWlu
c3RPcHBvc2l0ZVBvc2l0aW9uKCkpIHsKKyAgICAgICAgLy8gSW5mZXIgdGhlIHBvc2l0aW9uIGZy
b20gdGhlIGZpbmFsIHBvc2l0aW9uICgnYXV0byAvIDEnIG9yICdzcGFuIDIgLyAzJyBjYXNlKS4K
KyAgICAgICAgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24gZmluYWxSZXNvbHZlZFBvc2l0aW9u
ID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIGZpbmFs
UG9zaXRpb24sIGZpbmFsUG9zaXRpb25TaWRlKTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVHcmlk
UG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihncmlkQ29udGFpbmVyU3R5bGUsIGZpbmFs
UmVzb2x2ZWRQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRlKTsK
KyAgICB9CisKKyAgICBpZiAoZmluYWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVkQWdhaW5zdE9w
cG9zaXRlUG9zaXRpb24oKSkgeworICAgICAgICAvLyBJbmZlciBvdXIgcG9zaXRpb24gZnJvbSB0
aGUgaW5pdGlhbCBwb3NpdGlvbiAoJzEgLyBhdXRvJyBvciAnMyAvIHNwYW4gMicgY2FzZSkuCisg
ICAgICAgIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uIGluaXRpYWxSZXNvbHZlZFBvc2l0aW9u
ID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIGluaXRp
YWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSk7CisgICAgICAgIHJldHVybiByZXNvbHZl
R3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oZ3JpZENvbnRhaW5lclN0eWxlLCBp
bml0aWFsUmVzb2x2ZWRQb3NpdGlvbiwgZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvblNpZGUp
OworICAgIH0KKworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVkSW5pdGlhbFBvc2l0
aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIGlu
aXRpYWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uU2lkZSk7CisgICAgR3JpZFJlc29sdmVkUG9z
aXRpb24gcmVzb2x2ZWRGaW5hbFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHls
ZShncmlkQ29udGFpbmVyU3R5bGUsIGZpbmFsUG9zaXRpb24sIGZpbmFsUG9zaXRpb25TaWRlKTsK
KworICAgIC8vIElmICdncmlkLXJvdy1lbmQnIHNwZWNpZmllcyBhIGxpbmUgYXQgb3IgYmVmb3Jl
IHRoYXQgc3BlY2lmaWVkIGJ5ICdncmlkLXJvdy1zdGFydCcsIGl0IGNvbXB1dGVzIHRvICdzcGFu
IDEnLgorICAgIGlmIChyZXNvbHZlZEZpbmFsUG9zaXRpb24gPCByZXNvbHZlZEluaXRpYWxQb3Np
dGlvbikKKyAgICAgICAgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uID0gcmVzb2x2ZWRJbml0aWFsUG9z
aXRpb247CisKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRJ
bml0aWFsUG9zaXRpb24sIHJlc29sdmVkRmluYWxQb3NpdGlvbik7Cit9CisKK0dyaWRSZXNvbHZl
ZFBvc2l0aW9uIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0
aW9uRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGNvbnN0
IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sKKyAgICBB
U1NFUlQoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSk7CisKKyAgICBjb25zdCBO
YW1lZEdyaWRMaW5lc01hcCYgZ3JpZExpbmVzTmFtZXMgPSBpc0NvbHVtblNpZGUoc2lkZSkgPyBn
cmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlkQ29sdW1uTGluZXMoKSA6IGdyaWRDb250YWluZXJT
dHlsZS5uYW1lZEdyaWRSb3dMaW5lcygpOworICAgIE5hbWVkR3JpZExpbmVzTWFwOjpjb25zdF9p
dGVyYXRvciBpdCA9IGdyaWRMaW5lc05hbWVzLmZpbmQocG9zaXRpb24ubmFtZWRHcmlkTGluZSgp
KTsKKyAgICBpZiAoaXQgPT0gZ3JpZExpbmVzTmFtZXMuZW5kKCkpIHsKKyAgICAgICAgaWYgKHBv
c2l0aW9uLmlzUG9zaXRpdmUoKSkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBjb25z
dCBzaXplX3QgbGFzdExpbmUgPSBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShncmlkQ29udGFpbmVy
U3R5bGUsIHNpZGUpOworICAgICAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVz
dEdyaWRQb3NpdGlvbkZvclNpZGUobGFzdExpbmUsIHNpZGUpOworICAgIH0KKworICAgIHNpemVf
dCBuYW1lZEdyaWRMaW5lSW5kZXg7CisgICAgaWYgKHBvc2l0aW9uLmlzUG9zaXRpdmUoKSkKKyAg
ICAgICAgbmFtZWRHcmlkTGluZUluZGV4ID0gc3RkOjptaW48c2l6ZV90Pihwb3NpdGlvbi5pbnRl
Z2VyUG9zaXRpb24oKSwgaXQtPnZhbHVlLnNpemUoKSkgLSAxOworICAgIGVsc2UKKyAgICAgICAg
bmFtZWRHcmlkTGluZUluZGV4ID0gc3RkOjptYXg8aW50PihpdC0+dmFsdWUuc2l6ZSgpIC0gYWJz
KHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpKSwgMCk7CisgICAgcmV0dXJuIEdyaWRSZXNvbHZl
ZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGl0LT52YWx1ZVtuYW1lZEdyaWRM
aW5lSW5kZXhdLCBzaWRlKTsKK30KKworR3JpZFJlc29sdmVkUG9zaXRpb24gR3JpZFJlc29sdmVk
UG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUm
IGdyaWRDb250YWluZXJTdHlsZSwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgR3JpZFBv
c2l0aW9uU2lkZSBzaWRlKQoreworICAgIHN3aXRjaCAocG9zaXRpb24udHlwZSgpKSB7CisgICAg
Y2FzZSBFeHBsaWNpdFBvc2l0aW9uOiB7CisgICAgICAgIEFTU0VSVChwb3NpdGlvbi5pbnRlZ2Vy
UG9zaXRpb24oKSk7CisKKyAgICAgICAgaWYgKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNO
dWxsKCkpCisgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZy
b21TdHlsZShncmlkQ29udGFpbmVyU3R5bGUsIHBvc2l0aW9uLCBzaWRlKTsKKworICAgICAgICAv
LyBIYW5kbGUgPGludGVnZXI+IGV4cGxpY2l0IHBvc2l0aW9uLgorICAgICAgICBpZiAocG9zaXRp
b24uaXNQb3NpdGl2ZSgpKQorICAgICAgICAgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9u
OjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpIC0g
MSwgc2lkZSk7CisKKyAgICAgICAgc2l6ZV90IHJlc29sdmVkUG9zaXRpb24gPSBhYnMocG9zaXRp
b24uaW50ZWdlclBvc2l0aW9uKCkpIC0gMTsKKyAgICAgICAgY29uc3Qgc2l6ZV90IGVuZE9mVHJh
Y2sgPSBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShncmlkQ29udGFpbmVyU3R5bGUsIHNpZGUpOwor
CisgICAgICAgIC8vIFBlciBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ct
c3R5bGUvMjAxM01hci8wNTg5Lmh0bWwsIHdlIGNsYW1wIG5lZ2F0aXZlIHZhbHVlIHRvIHRoZSBm
aXJzdCBsaW5lLgorICAgICAgICBpZiAoZW5kT2ZUcmFjayA8IHJlc29sdmVkUG9zaXRpb24pCisg
ICAgICAgICAgICByZXR1cm4gMDsKKworICAgICAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRp
b246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoZW5kT2ZUcmFjayAtIHJlc29sdmVkUG9zaXRp
b24sIHNpZGUpOworICAgIH0KKyAgICBjYXNlIE5hbWVkR3JpZEFyZWFQb3NpdGlvbjoKKyAgICB7
CisgICAgICAgIC8vIEZpcnN0IGF0dGVtcHQgdG8gbWF0Y2ggdGhlIGdyaWQgYXJlYSdzIGVkZ2Ug
dG8gYSBuYW1lZCBncmlkIGFyZWE6IGlmIHRoZXJlIGlzIGEgbmFtZWQgbGluZSB3aXRoIHRoZSBu
YW1lCisgICAgICAgIC8vICcnPGN1c3RvbS1pZGVudD4tc3RhcnQgKGZvciBncmlkLSotc3RhcnQp
IC8gPGN1c3RvbS1pZGVudD4tZW5kJycgKGZvciBncmlkLSotZW5kKSwgY29udHJpYnV0ZXMgdGhl
IGZpcnN0IHN1Y2gKKyAgICAgICAgLy8gbGluZSB0byB0aGUgZ3JpZCBpdGVtJ3MgcGxhY2VtZW50
LgorICAgICAgICBTdHJpbmcgbmFtZWRHcmlkTGluZSA9IHBvc2l0aW9uLm5hbWVkR3JpZExpbmUo
KTsKKyAgICAgICAgQVNTRVJUKCFpc05vbkV4aXN0ZW50TmFtZWRMaW5lT3JBcmVhKG5hbWVkR3Jp
ZExpbmUsIGdyaWRDb250YWluZXJTdHlsZSwgc2lkZSkpOworCisgICAgICAgIGNvbnN0IE5hbWVk
R3JpZExpbmVzTWFwJiBncmlkTGluZU5hbWVzID0gZ3JpZExpbmVzRm9yU2lkZShncmlkQ29udGFp
bmVyU3R5bGUsIHNpZGUpOworICAgICAgICBhdXRvIGltcGxpY2l0TGluZSA9IGdyaWRMaW5lTmFt
ZXMuZmluZChpbXBsaWNpdE5hbWVkR3JpZExpbmVGb3JTaWRlKG5hbWVkR3JpZExpbmUsIHNpZGUp
KTsKKyAgICAgICAgaWYgKGltcGxpY2l0TGluZSAhPSBncmlkTGluZU5hbWVzLmVuZCgpKQorICAg
ICAgICAgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25G
b3JTaWRlKGltcGxpY2l0TGluZS0+dmFsdWVbMF0sIHNpZGUpOworCisgICAgICAgIC8vIE90aGVy
d2lzZSwgaWYgdGhlcmUgaXMgYSBuYW1lZCBsaW5lIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLCBj
b250cmlidXRlcyB0aGUgZmlyc3Qgc3VjaCBsaW5lIHRvIHRoZSBncmlkCisgICAgICAgIC8vIGl0
ZW0ncyBwbGFjZW1lbnQuCisgICAgICAgIGF1dG8gZXhwbGljaXRMaW5lID0gZ3JpZExpbmVOYW1l
cy5maW5kKG5hbWVkR3JpZExpbmUpOworICAgICAgICBpZiAoZXhwbGljaXRMaW5lICE9IGdyaWRM
aW5lTmFtZXMuZW5kKCkpCisgICAgICAgICAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRpb246
OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoZXhwbGljaXRMaW5lLT52YWx1ZVswXSwgc2lkZSk7
CisKKyAgICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgYWJvdmUgd29ya3Mgc3BlY3MgbWFuZGF0ZSB1
cyB0byB0cmVhdCBpdCBhcyBhdXRvIEJVVCB3ZSBzaG91bGQgaGF2ZSBkZXRlY3RlZCBpdCBiZWZv
cmUgY2FsbGluZworICAgICAgICAvLyB0aGlzIGZ1bmN0aW9uIGluIHJlc29sdmVHcmlkUG9zaXRp
b25zRnJvbVN0eWxlKCkuIFdlIHNob3VsZCBiZSBjb3ZlcmVkIGFueXdheSBieSB0aGUgQVNTRVJU
IGF0IHRoZSBiZWdpbm5pbmcKKyAgICAgICAgLy8gb2YgdGhpcyBjYXNlIGJsb2NrLgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAgIGNh
c2UgQXV0b1Bvc2l0aW9uOgorICAgIGNhc2UgU3BhblBvc2l0aW9uOgorICAgICAgICAvLyAnYXV0
bycgYW5kIHNwYW4gZGVwZW5kIG9uIHRoZSBvcHBvc2l0ZSBwb3NpdGlvbiBmb3IgcmVzb2x1dGlv
biAoZS5nLiBncmlkLXJvdzogYXV0byAvIDEgb3IgZ3JpZC1jb2x1bW46IHNwYW4gMyAvICJteUhl
YWRlciIpLgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIEdy
aWRSZXNvbHZlZFBvc2l0aW9uKDApOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRpb24oMCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0
cjxHcmlkU3Bhbj4gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25BZ2Fp
bnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxl
LCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBj
b25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7Cisg
ICAgaWYgKHBvc2l0aW9uLmlzQXV0bygpKQorICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCByZXNvbHZlZE9wcG9zaXRlUG9z
aXRpb24pOworCisgICAgQVNTRVJUKHBvc2l0aW9uLmlzU3BhbigpKTsKKyAgICBBU1NFUlQocG9z
aXRpb24uc3BhblBvc2l0aW9uKCkgPiAwKTsKKworICAgIGlmICghcG9zaXRpb24ubmFtZWRHcmlk
TGluZSgpLmlzTnVsbCgpKSB7CisgICAgICAgIC8vIHNwYW4gMiAnYycgLT4gd2UgbmVlZCB0byBm
aW5kIHRoZSBhcHByb3ByaWF0ZSBncmlkIGxpbmUgYmVmb3JlIC8gYWZ0ZXIgb3VyIG9wcG9zaXRl
IHBvc2l0aW9uLgorICAgICAgICByZXR1cm4gcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKGdyaWRDb250YWluZXJTdHlsZSwgcmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uLCBwb3NpdGlvbiwgc2lkZSk7CisgICAgfQorCisgICAgLy8gJ3NwYW4gMScgaXMg
Y29udGFpbmVkIGluc2lkZSBhIHNpbmdsZSBncmlkIHRyYWNrIHJlZ2FyZGxlc3Mgb2YgdGhlIGRp
cmVjdGlvbi4KKyAgICAvLyBUaGF0J3Mgd2h5IHRoZSBDU1Mgc3BhbiB2YWx1ZSBpcyBvbmUgbW9y
ZSB0aGFuIHRoZSBvZmZzZXQgd2UgYXBwbHkuCisgICAgc2l6ZV90IHBvc2l0aW9uT2Zmc2V0ID0g
cG9zaXRpb24uc3BhblBvc2l0aW9uKCkgLSAxOworICAgIGlmIChpc1N0YXJ0U2lkZShzaWRlKSkg
eworICAgICAgICBzaXplX3QgaW5pdGlhbFJlc29sdmVkUG9zaXRpb24gPSBzdGQ6Om1heDxpbnQ+
KDAsIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbi50b0ludCgpIC0gcG9zaXRpb25PZmZzZXQpOwor
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4oaW5pdGlhbFJlc29sdmVk
UG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7CisgICAgfQorCisgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcmVz
b2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLnRvSW50KCkgKyBwb3NpdGlvbk9mZnNldCk7Cit9CisKK3N0
ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVOYW1l
ZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBSZW5kZXJTdHls
ZSYgZ3JpZENvbnRhaW5lclN0eWxlLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2
ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9z
aXRpb25TaWRlIHNpZGUpCit7CisgICAgQVNTRVJUKHBvc2l0aW9uLmlzU3BhbigpKTsKKyAgICBB
U1NFUlQoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSk7CisgICAgLy8gTmVnYXRp
dmUgcG9zaXRpb25zIGFyZSBub3QgYWxsb3dlZCBwZXIgdGhlIHNwZWNpZmljYXRpb24gYW5kIHNo
b3VsZCBoYXZlIGJlZW4gaGFuZGxlZCBkdXJpbmcgcGFyc2luZy4KKyAgICBBU1NFUlQocG9zaXRp
b24uc3BhblBvc2l0aW9uKCkgPiAwKTsKKworICAgIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBn
cmlkTGluZXNOYW1lcyA9IGlzQ29sdW1uU2lkZShzaWRlKSA/IGdyaWRDb250YWluZXJTdHlsZS5u
YW1lZEdyaWRDb2x1bW5MaW5lcygpIDogZ3JpZENvbnRhaW5lclN0eWxlLm5hbWVkR3JpZFJvd0xp
bmVzKCk7CisgICAgTmFtZWRHcmlkTGluZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZ3JpZExp
bmVzTmFtZXMuZmluZChwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkpOworCisgICAgLy8gSWYgdGhl
cmUgaXMgbm8gbmFtZWQgZ3JpZCBsaW5lIG9mIHRoYXQgbmFtZSwgd2UgcmVzb2x2ZSB0aGUgcG9z
aXRpb24gdG8gJ2F1dG8nICh3aGljaCBpcyBlcXVpdmFsZW50IHRvICdzcGFuIDEnIGluIHRoaXMg
Y2FzZSkuCisgICAgLy8gU2VlIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3
dy1zdHlsZS8yMDEzSnVuLzAzOTQuaHRtbC4KKyAgICBpZiAoaXQgPT0gZ3JpZExpbmVzTmFtZXMu
ZW5kKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZl
ZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7CisKKyAgICBpZiAo
c2lkZSA9PSBSb3dTdGFydFNpZGUgfHwgc2lkZSA9PSBDb2x1bW5TdGFydFNpZGUpCisgICAgICAg
IHJldHVybiByZXNvbHZlUm93U3RhcnRDb2x1bW5TdGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcG9zaXRpb24s
IGl0LT52YWx1ZSk7CisKKyAgICByZXR1cm4gcmVzb2x2ZVJvd0VuZENvbHVtbkVuZE5hbWVkR3Jp
ZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3Np
dGlvbiwgcG9zaXRpb24sIGl0LT52YWx1ZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc2l6ZV90IGZp
cnN0TmFtZWRHcmlkTGluZUJlZm9yZVBvc2l0aW9uKHNpemVfdCBwb3NpdGlvbiwgY29uc3QgVmVj
dG9yPHNpemVfdD4mIGdyaWRMaW5lcykKK3sKKyAgICAvLyBUaGUgZ3JpZCBsaW5lIGluZXF1YWxp
dHkgbmVlZHMgdG8gYmUgc3RyaWN0ICh3aGljaCBkb2Vzbid0IG1hdGNoIHRoZSBhZnRlciAvIGVu
ZCBjYXNlKSBiZWNhdXNlIHxwb3NpdGlvbnwgaXMKKyAgICAvLyBhbHJlYWR5IGNvbnZlcnRlZCB0
byBhbiBpbmRleCBpbiBvdXIgZ3JpZCByZXByZXNlbnRhdGlvbiAoaWUgb25lIHdhcyByZW1vdmVk
IGZyb20gdGhlIGdyaWQgbGluZSB0byBhY2NvdW50IGZvcgorICAgIC8vIHRoZSBzaWRlKS4KKyAg
ICBzaXplX3QgZmlyc3RMaW5lQmVmb3JlUG9zaXRpb25JbmRleCA9IDA7CisgICAgY29uc3Qgc2l6
ZV90KiBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbiA9IHN0ZDo6bG93ZXJfYm91bmQoZ3JpZExpbmVz
LmJlZ2luKCksIGdyaWRMaW5lcy5lbmQoKSwgcG9zaXRpb24pOworICAgIGlmIChmaXJzdExpbmVC
ZWZvcmVQb3NpdGlvbiAhPSBncmlkTGluZXMuZW5kKCkpIHsKKyAgICAgICAgaWYgKCpmaXJzdExp
bmVCZWZvcmVQb3NpdGlvbiA+IHBvc2l0aW9uICYmIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uICE9
IGdyaWRMaW5lcy5iZWdpbigpKQorICAgICAgICAgICAgLS1maXJzdExpbmVCZWZvcmVQb3NpdGlv
bjsKKworICAgICAgICBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbkluZGV4ID0gZmlyc3RMaW5lQmVm
b3JlUG9zaXRpb24gLSBncmlkTGluZXMuYmVnaW4oKTsKKyAgICB9CisgICAgcmV0dXJuIGZpcnN0
TGluZUJlZm9yZVBvc2l0aW9uSW5kZXg7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4g
R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVSb3dTdGFydENvbHVtblN0YXJ0TmFtZWRHcmlk
TGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3QgR3JpZFJlc29sdmVkUG9z
aXRpb24mIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3Np
dGlvbiwgY29uc3QgVmVjdG9yPHNpemVfdD4mIGdyaWRMaW5lcykKK3sKKyAgICBzaXplX3QgZ3Jp
ZExpbmVJbmRleCA9IHN0ZDo6bWF4PGludD4oMCwgZmlyc3ROYW1lZEdyaWRMaW5lQmVmb3JlUG9z
aXRpb24ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLnRvSW50KCksIGdyaWRMaW5lcykgLSBwb3Np
dGlvbi5zcGFuUG9zaXRpb24oKSArIDEpOworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29s
dmVkR3JpZExpbmVQb3NpdGlvbiA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uKGdyaWRMaW5lc1tncmlk
TGluZUluZGV4XSk7CisgICAgaWYgKHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA+IHJlc29sdmVk
T3Bwb3NpdGVQb3NpdGlvbikKKyAgICAgICAgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gcmVz
b2x2ZWRPcHBvc2l0ZVBvc2l0aW9uOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRT
cGFuPihyZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7
Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gR3JpZFJlc29sdmVkUG9zaXRpb246OnJl
c29sdmVSb3dFbmRDb2x1bW5FbmROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQ
b3NpdGlvbihjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0
aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYg
Z3JpZExpbmVzKQoreworICAgIHNpemVfdCBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb25J
bmRleCA9IGdyaWRMaW5lcy5zaXplKCkgLSAxOworICAgIGNvbnN0IHNpemVfdCogZmlyc3RMaW5l
QWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uID0gc3RkOjp1cHBlcl9ib3VuZChncmlkTGluZXMuYmVnaW4o
KSwgZ3JpZExpbmVzLmVuZCgpLCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pOworICAgIGlmIChm
aXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb24gIT0gZ3JpZExpbmVzLmVuZCgpKQorICAgICAg
ICBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb25JbmRleCA9IGZpcnN0TGluZUFmdGVyT3Bw
b3NpdGVQb3NpdGlvbiAtIGdyaWRMaW5lcy5iZWdpbigpOworCisgICAgc2l6ZV90IGdyaWRMaW5l
SW5kZXggPSBzdGQ6Om1pbihncmlkTGluZXMuc2l6ZSgpIC0gMSwgZmlyc3RMaW5lQWZ0ZXJPcHBv
c2l0ZVBvc2l0aW9uSW5kZXggKyBwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSAtIDEpOworICAgIEdy
aWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA9IEdyaWRSZXNvbHZl
ZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKGdyaWRM
aW5lc1tncmlkTGluZUluZGV4XSk7CisgICAgaWYgKHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA8
IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbikKKyAgICAgICAgcmVzb2x2ZWRHcmlkTGluZVBvc2l0
aW9uID0gcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPEdyaWRTcGFuPihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkR3JpZExpbmVQ
b3NpdGlvbik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShDU1NfR1JJRF9MQVlPVVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxZmU4NDkyYjZhMGRiYmRm
OGE1YTRiMTUyNjkyM2MwOWRhYmRhMjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uaApAQCAtMCwwICsxLDE1MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgR3JpZFJlc29sdmVk
UG9zaXRpb25faAorI2RlZmluZSBHcmlkUmVzb2x2ZWRQb3NpdGlvbl9oCisKKyNpZiBFTkFCTEUo
Q1NTX0dSSURfTEFZT1VUKQorCisjaW5jbHVkZSAiR3JpZFBvc2l0aW9uLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgR3JpZFNwYW47CitjbGFzcyBSZW5kZXJCb3g7CitjbGFzcyBS
ZW5kZXJTdHlsZTsKKworZW51bSBHcmlkUG9zaXRpb25TaWRlIHsKKyAgICBDb2x1bW5TdGFydFNp
ZGUsCisgICAgQ29sdW1uRW5kU2lkZSwKKyAgICBSb3dTdGFydFNpZGUsCisgICAgUm93RW5kU2lk
ZQorfTsKKworZW51bSBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24geworICAgIEZvckNvbHVtbnMs
CisgICAgRm9yUm93cworfTsKKworLy8gVGhpcyBjbGFzcyByZXByZXNlbnRzIGFuIGluZGV4IGlu
dG8gb25lIG9mIHRoZSBkaW1lbnNpb25zIG9mIHRoZSBncmlkIGFycmF5LgorLy8gV3JhcHMgYSBz
aXplX3QgaW50ZWdlciBqdXN0IGZvciB0aGUgcHVycG9zZSBvZiBrbm93aW5nIHdoYXQgd2UgbWFu
aXB1bGF0ZSBpbiB0aGUgZ3JpZCBjb2RlLgorY2xhc3MgR3JpZFJlc29sdmVkUG9zaXRpb24gewor
cHVibGljOgorICAgIHN0YXRpYyBHcmlkUmVzb2x2ZWRQb3NpdGlvbiBhZGp1c3RHcmlkUG9zaXRp
b25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKHNpemVfdCByZXNvbHZlZFBvc2l0aW9uKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHJlc29sdmVkUG9zaXRpb24gPyBHcmlkUmVzb2x2ZWRQb3NpdGlvbihy
ZXNvbHZlZFBvc2l0aW9uIC0gMSkgOiBHcmlkUmVzb2x2ZWRQb3NpdGlvbigwKTsKKyAgICB9CisK
KyAgICBzdGF0aWMgR3JpZFJlc29sdmVkUG9zaXRpb24gYWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lk
ZShzaXplX3QgcmVzb2x2ZWRQb3NpdGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQorICAgIHsK
KyAgICAgICAgLy8gQW4gaXRlbSBmaW5pc2hpbmcgb24gdGhlIE4tdGggbGluZSBiZWxvbmdzIHRv
IHRoZSBOLTEtdGggY2VsbC4KKyAgICAgICAgaWYgKHNpZGUgPT0gQ29sdW1uRW5kU2lkZSB8fCBz
aWRlID09IFJvd0VuZFNpZGUpCisgICAgICAgICAgICByZXR1cm4gYWRqdXN0R3JpZFBvc2l0aW9u
Rm9yUm93RW5kQ29sdW1uRW5kU2lkZShyZXNvbHZlZFBvc2l0aW9uKTsKKworICAgICAgICByZXR1
cm4gR3JpZFJlc29sdmVkUG9zaXRpb24ocmVzb2x2ZWRQb3NpdGlvbik7CisgICAgfQorCisgICAg
c3RhdGljIHNpemVfdCBleHBsaWNpdEdyaWRDb2x1bW5Db3VudChjb25zdCBSZW5kZXJTdHlsZSYg
Z3JpZENvbnRhaW5lclN0eWxlKTsKKyAgICBzdGF0aWMgc2l6ZV90IGV4cGxpY2l0R3JpZFJvd0Nv
dW50KGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUpOworCisgICAgc3RhdGlj
IEdyaWRTcGFuIHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbihj
b25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIGNvbnN0IEdyaWRSZXNv
bHZlZFBvc2l0aW9uJik7CisgICAgc3RhdGljIHZvaWQgYWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0
aW9uKGNvbnN0IFJlbmRlclN0eWxlJiwgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lkZSk7
CisgICAgc3RhdGljIHZvaWQgYWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5k
ZXJTdHlsZSYsIEdyaWRQb3NpdGlvbiYgaW5pdGlhbFBvc2l0aW9uLCBHcmlkUG9zaXRpb24mIGZp
bmFsUG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgaW5pdGlhbFBvc2l0aW9uU2lkZSwgR3JpZFBv
c2l0aW9uU2lkZSBmaW5hbFBvc2l0aW9uU2lkZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxHcmlkU3Bhbj4gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5
bGUmLCBjb25zdCBSZW5kZXJCb3gmLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24pOworICAgIHN0
YXRpYyBHcmlkUmVzb2x2ZWRQb3NpdGlvbiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJv
bVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0
aW9uU2lkZSk7CisgICAgc3RhdGljIEdyaWRSZXNvbHZlZFBvc2l0aW9uIHJlc29sdmVHcmlkUG9z
aXRpb25Gcm9tU3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBHcmlkUG9zaXRpb24mLCBH
cmlkUG9zaXRpb25TaWRlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBy
ZXNvbHZlR3JpZFBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oY29uc3QgUmVuZGVyU3R5
bGUmLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9u
LCBjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKTsKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5z
dE9wcG9zaXRlUG9zaXRpb24oY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBHcmlkUmVzb2x2ZWRQ
b3NpdGlvbiYgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mLCBH
cmlkUG9zaXRpb25TaWRlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBy
ZXNvbHZlUm93U3RhcnRDb2x1bW5TdGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBv
c2l0ZVBvc2l0aW9uKGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRl
UG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYsIGNvbnN0IFZlY3RvcjxzaXplX3Q+Jik7Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcmVzb2x2ZVJvd0VuZENvbHVtbkVu
ZE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IEdyaWRS
ZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3Np
dGlvbiYsIGNvbnN0IFZlY3RvcjxzaXplX3Q+Jik7CisKKyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlv
bihzaXplX3QgcG9zaXRpb24pCisgICAgICAgIDogbV9pbnRlZ2VyUG9zaXRpb24ocG9zaXRpb24p
CisgICAgeworICAgIH0KKworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uKGNvbnN0IEdyaWRQb3Np
dGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKKyAgICB7CisgICAgICAgIEFT
U0VSVChwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSk7CisgICAgICAgIHNpemVfdCBpbnRlZ2Vy
UG9zaXRpb24gPSBwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24oKSAtIDE7CisKKyAgICAgICAgbV9p
bnRlZ2VyUG9zaXRpb24gPSBhZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKGludGVnZXJQb3NpdGlv
biwgc2lkZSkubV9pbnRlZ2VyUG9zaXRpb247CisgICAgfQorCisgICAgR3JpZFJlc29sdmVkUG9z
aXRpb24mIG9wZXJhdG9yKysoKQorICAgIHsKKyAgICAgICAgbV9pbnRlZ2VyUG9zaXRpb24rKzsK
KyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1
cm4gbV9pbnRlZ2VyUG9zaXRpb24gPT0gb3RoZXIubV9pbnRlZ2VyUG9zaXRpb247CisgICAgfQor
CisgICAgYm9vbCBvcGVyYXRvcjwoY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIG90aGVyKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW50ZWdlclBvc2l0aW9uIDwgb3RoZXIubV9p
bnRlZ2VyUG9zaXRpb247CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj4oY29uc3QgR3JpZFJl
c29sdmVkUG9zaXRpb24mIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW50
ZWdlclBvc2l0aW9uID4gb3RoZXIubV9pbnRlZ2VyUG9zaXRpb247CisgICAgfQorCisgICAgYm9v
bCBvcGVyYXRvcjw9KGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBvdGhlcikgY29uc3QKKyAg
ICB7CisgICAgICAgIHJldHVybiBtX2ludGVnZXJQb3NpdGlvbiA8PSBvdGhlci5tX2ludGVnZXJQ
b3NpdGlvbjsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPj0oY29uc3QgR3JpZFJlc29sdmVk
UG9zaXRpb24mIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW50ZWdlclBv
c2l0aW9uID49IG90aGVyLm1faW50ZWdlclBvc2l0aW9uOworICAgIH0KKworICAgIHNpemVfdCB0
b0ludCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9pbnRlZ2VyUG9zaXRpb247Cisg
ICAgfQorCisgICAgR3JpZFJlc29sdmVkUG9zaXRpb24gbmV4dCgpIGNvbnN0CisgICAgeworICAg
ICAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRpb24obV9pbnRlZ2VyUG9zaXRpb24gKyAxKTsK
KyAgICB9CisKK3ByaXZhdGU6CisKKyAgICBzaXplX3QgbV9pbnRlZ2VyUG9zaXRpb247Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX0dSSURfTEFZ
T1VUKQorCisjZW5kaWYgLy8gR3JpZFJlc29sdmVkUG9zaXRpb25faAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233041</attachid>
            <date>2014-06-13 05:06:08 -0700</date>
            <delta_ts>2014-06-13 06:10:31 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-131732-20140613140543.patch</filename>
            <type>text/plain</type>
            <size>79557</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5ODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzk5YTc4ZTA0MGJhOTBm
MzQ1NTliYTQxODMxNTVhNWQ3MWY1OGQ5ZS4uODU3ZTFiZjRhOGY2Yjg2YTE1YjdjMGVjZDA3NGYy
NjAwZTkwMjZhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMSBAQAorMjAxNC0wNi0xMiAgTWFu
dWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbQ1NTIEdy
aWQgTGF5b3V0XSBJbnRyb2R1Y2UgYW4gZXhwbGljaXQgdHlwZSBmb3IgcmVzb2x2ZWQgZ3JpZCBw
b3NpdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMTczMgorCisgICAgICAgIFJldmlld2VkIGJ5IFNlcmdpbyBWaWxsYXIgU2VuaW4uCisKKyAg
ICAgICAgV2Ugd2VyZSB1c2luZyBzaW1wbGUgc2l6ZV90IGludGVnZXJzIHRvIHJlcHJlc2VudCBy
ZXNvbHZlZCBncmlkCisgICAgICAgIHBvc2l0aW9ucyBpbiBvdXIgaW50ZXJuYWwgZGF0YSBzdHJ1
Y3R1cmVzLiBUaGlzIGNoYW5nZSBhbGxvd3MgdXMgdG8KKyAgICAgICAgY2xhcmlmeSB0aGUgY29k
ZSwgYXZvaWQgcG90ZW50aWFsIG9mZiBieSBvbmUgbWlzdGFrZXMsIGFuZCBtb3ZlIHRoZQorICAg
ICAgICByZXNvbHZpbmcgY29kZSB0byBhIGNlbnRyYWwgcGxhY2UuCisKKyAgICAgICAgQSBuZXcg
Y2xhc3MgR3JpZFJlc29sdmVkUG9zaXRpb24gaGFzIGJlZW4gY3JlYXRlZCBhbmQgdGhlIHJlbGF0
ZWQKKyAgICAgICAgbWV0aG9kcyBoYXZlIGJlZW4gbW92ZWQgdGhlcmUgZnJvbSBSZW5kZXJHcmlk
LgorICAgICAgICBHcmlkU3BhbiBpcyBub3cgZGVmaW5lZCBieSB0d28gR3JpZFJlc29sdmVkUG9z
aXRpb24sIHNvIGFsbCB0aGUgY29kZQorICAgICAgICB1c2luZyBpdCBoYXMgYmVlbiBtb2RpZmll
ZCB0byBhZGFwdCBpdCB0byBHcmlkUmVzb2x2ZWRQb3NpdGlvbi4KKworICAgICAgICBObyBuZXcg
dGVzdHMgYXMgaXQgaXMgYWxyZWFkeSBjb3ZlcmVkIGJ5IGN1cnJlbnQgdGVzdHMKKyAgICAgICAg
KGZhc3QvY3NzLWdyaWQtbGF5b3V0LykuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogY3NzL0NTU0dyaWRUZW1wbGF0ZUFy
ZWFzVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaW5nRm9yUG9zaXRpb24pOgorICAg
ICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpw
YXJzZUdyaWRUZW1wbGF0ZUFyZWFzUm93KToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJbXBsaWNpdE5hbWVkR3JpZExpbmVzRnJvbUdy
aWRBcmVhKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJHcmlkOjpjb21wdXRlVXNlZEJyZWFkdGhPZkdyaWRUcmFja3MpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZU5vcm1hbGl6ZWRGcmFjdGlvbkJyZWFk
dGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRlbnRCYXNlZFRy
YWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3Jp
ZDo6aW5zZXJ0SXRlbUludG9HcmlkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnBs
YWNlSXRlbXNPbkdyaWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cG9wdWxhdGVF
eHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdy
aWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JBeGlzSXRlbU9uR3JpZCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Z3JpZEFyZWFCcmVhZHRoRm9yQ2hp
bGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6ZmluZENoaWxkTG9naWNhbFBvc2l0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmV4cGxpY2l0R3JpZENvbHVtbkNv
dW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmV4cGxpY2l0R3Jp
ZFJvd0NvdW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzQ29sdW1uU2lkZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppc1N0YXJ0U2lkZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJHcmlkOjpleHBsaWNpdEdyaWRTaXplRm9yU2lkZSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21B
dXRvUGxhY2VtZW50UG9zaXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Z3JpZExp
bmVzRm9yU2lkZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjppbXBsaWNpdE5hbWVkR3Jp
ZExpbmVGb3JTaWRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzTm9uRXhpc3RlbnRO
YW1lZExpbmVPckFyZWEpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6
YWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9u
RnJvbVN0eWxlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlc29s
dmVHcmlkUG9zaXRpb25Gcm9tU3R5bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyR3JpZDo6cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlc29sdmVOYW1lZEdyaWRMaW5l
UG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpmaXJzdE5hbWVkR3JpZExpbmVCZWZvcmVQb3NpdGlvbik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJHcmlkOjpyZXNvbHZlUm93U3RhcnRDb2x1bW5TdGFydE5hbWVkR3Jp
ZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OnJlc29sdmVSb3dFbmRDb2x1bW5FbmROYW1lZEdyaWRMaW5l
UG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckdyaWQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvR3JpZENvb3Jk
aW5hdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRTcGFuOjpHcmlkU3Bhbik6CisgICAgICAg
IChXZWJDb3JlOjpHcmlkU3Bhbjo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL0dyaWRQb3NpdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFBvc2l0aW9uOjphZGp1
c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkdyaWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZSk6IERlbGV0
ZWQuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjppc0NvbHVtblNpZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6aXNTdGFydFNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6ZXhwbGljaXRHcmlkU2l6ZUZvclNp
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlk
UG9zaXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpn
cmlkTGluZXNGb3JTaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OmltcGxpY2l0TmFtZWRHcmlkTGlu
ZUZvclNpZGUpOgorICAgICAgICAoV2ViQ29yZTo6aXNOb25FeGlzdGVudE5hbWVkTGluZU9yQXJl
YSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBv
c2l0aW9uc0Zyb21TdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6R3Jp
ZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUp
OgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9z
aXRpb25Gcm9tU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246
OnJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlv
bkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmZpcnN0TmFtZWRH
cmlkTGluZUJlZm9yZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBv
c2l0aW9uOjpyZXNvbHZlUm93U3RhcnRDb2x1bW5TdGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBv
c2l0aW9uOjpyZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5z
dE9wcG9zaXRlUG9zaXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9HcmlkUmVzb2x2
ZWRQb3NpdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0
aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpHcmlkUmVzb2x2ZWRQ
b3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6b3BlcmF0
b3IrKyk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6b3BlcmF0b3I9
PSk6CisgICAgICAgIChXZWJDb3JlOjpHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6b3BlcmF0b3I8KToK
KyAgICAgICAgKFdlYkNvcmU6OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpvcGVyYXRvcj4pOgorICAg
ICAgICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246Om9wZXJhdG9yPD0pOgorICAgICAg
ICAoV2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246Om9wZXJhdG9yPj0pOgorICAgICAgICAo
V2ViQ29yZTo6R3JpZFJlc29sdmVkUG9zaXRpb246OnRvSW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkdyaWRSZXNvbHZlZFBvc2l0aW9uOjpuZXh0KToKKwogMjAxNC0wNi0xMiAgUHJhdGlrIFNvbGFu
a2kgIDxwc29sYW5raUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgY3JlYXRpbmcgYSBDRkRh
dGEgd2hlbiBjaGVja2luZyBpZiBhIHJlc291cmNlIGlzIGZpbGUgYmFja2VkCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IGQ0OTIzNGZkNjhkY2NmZjMyNzZiMmNmZTMxNmNlMjc2OTFmMGE0MGIuLjkx
YjNmZTQ4OGQxM2RkYjRlNDIzNGViZWY2OTE0NmFjOTc5NTM1M2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CkBAIC0yMzg3LDYgKzIzODcsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcmVuZGVy
aW5nL3N0eWxlL0NvbnRlbnREYXRhLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9Db3VudGVyRGly
ZWN0aXZlcy5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAorICAgIHJlbmRl
cmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAKICAgICByZW5kZXJpbmcvc3R5bGUv
S2V5ZnJhbWVMaXN0LmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9OaW5lUGllY2VJbWFnZS5jcHAK
ICAgICByZW5kZXJpbmcvc3R5bGUvUXVvdGVzRGF0YS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCmluZGV4IDVkNDRjODk3MzAyMjViZDE2NWFh
ZjJiMjIzMWYyYTQxOTIzNDZkYjYuLjUwMzQxMTZhMDMzODdlYzhkYzI4YzYzYmRmM2EyOWMxMmMz
OGEzNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvagpAQCAtMTE0NzIsNiArMTE0NzIsNyBAQAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4z
MiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENv
bmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQn
Ij50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcS2V5ZnJhbWVM
aXN0LmNwcCI+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1
aWxkPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlv
bil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CkBA
IC0yMDE1Miw2ICsyMDE1Myw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJp
bmdcc3R5bGVcR3JpZENvb3JkaW5hdGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4u
XHJlbmRlcmluZ1xzdHlsZVxHcmlkTGVuZ3RoLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFBvc2l0aW9uLmgiIC8+CisgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFJlc29sdmVkUG9zaXRpb24uaCIgLz4KICAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkVHJhY2tTaXplLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcS2V5ZnJhbWVM
aXN0LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcTmlu
ZVBpZWNlSW1hZ2UuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCAxNDA2YTU0MjI4NGMzZmNhOTU3ZGU0
OTM5YTJkOTVhNzQ2OWEwYTkyLi4yMjI5MzBiM2I0OGFmZjc4YWQ0NWYyMzkxMDM2MjJlY2E3YTg5
OGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvai5maWx0ZXJzCkBAIC0yNzc1LDYgKzI3NzUsOSBAQAogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEZpbGxMYXllci5jcHAiPgogICAgICAgPEZpbHRl
cj5yZW5kZXJpbmdcc3R5bGU8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAi
PgorICAgICAgPEZpbHRlcj5yZW5kZXJpbmdcc3R5bGU8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGls
ZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJlbmRlcmluZ1xzdHlsZVxLZXlmcmFtZUxp
c3QuY3BwIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVyaW5nXHN0eWxlPC9GaWx0ZXI+CiAgICAgPC9D
bENvbXBpbGU+CkBAIC05NzA5LDYgKzk3MTIsOSBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccmVuZGVyaW5nXHN0eWxlXEdyaWRQb3NpdGlvbi5oIj4KICAgICAgIDxGaWx0ZXI+cmVuZGVy
aW5nXHN0eWxlPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxyZW5kZXJpbmdcc3R5bGVcR3JpZFJlc29sdmVkUG9zaXRpb24uaCI+CisgICAgICA8
RmlsdGVyPnJlbmRlcmluZ1xzdHlsZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccmVuZGVyaW5nXHN0eWxlXEdyaWRUcmFja1NpemUuaCI+CiAg
ICAgICA8RmlsdGVyPnJlbmRlcmluZ1xzdHlsZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDI0MTUwZDg0YTVkY2ZlNzdlYjQ1ZGEwZDMwZWFhOWI2MTM0MmZhMjAuLjE1NDNmZjkxZGE2
ZGVmOTMxZmZlOGE2Nzc4MjkwNzcwODYwNDA0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU3MTIsNiArNTcxMiw4IEBACiAJ
CUNERjJCMDE5MTgyMDU0MDcwMEYyQjQyNCAvKiBNb2NrVHJhY2tzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREYyQjAwRjE4MjA1NDA2MDBGMkI0MjQg
LyogTW9ja1RyYWNrcy5oICovOyB9OwogCQlDREY2NUNDODE0NUIxRTc1MDBDNEM3QUEgLyogTWVk
aWFDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDRDI3RjZFNDE0NTc2Nzg3MDA3ODIwN0QgLyogTWVkaWFDb250cm9sbGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RGNjVDQ0ExNDVC
NDQ4ODAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGNjVDQzkxNDVCNDNBNzAwQzRDN0FB
IC8qIE1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCUNERjc0ODNFMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlk
UmVzb2x2ZWRQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDREY3NDgzQzE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRp
b24uY3BwICovOyB9OworCQlDREY3NDgzRjE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVk
UG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENERjc0ODNEMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNERkMzNjA1MThD
QTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RGQzM2MDMxOENBNjFDMjAwMjZFNTZG
IC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lci5jcHAgKi87IH07CiAJCUNERkMzNjA2MThDQTYxQzIw
MDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENERkMzNjA0MThDQTYxQzIwMDI2RTU2RiAvKiBSZW1v
dGVDb21tYW5kTGlzdGVuZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlDREZDMzYwNzE4Q0E2OTZDMDAyNkU1NkYgLyogUmVtb3RlQ29tbWFuZExp
c3RlbmVySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQ0RGQzM2MDIxOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5t
bSAqLzsgfTsKQEAgLTEzMTQ3LDYgKzEzMTQ5LDggQEAKIAkJQ0RGMkIwMEYxODIwNTQwNjAwRjJC
NDI0IC8qIE1vY2tUcmFja3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9j
a1RyYWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREY2NUNDOTE0NUI0M0E3
MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVySW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDREY2NUNDQzE0NUI2QUZFMDBDNEM3QUEgLyogSlNIVE1MTWVkaWFF
bGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
SFRNTE1lZGlhRWxlbWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUNERjc0ODNDMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5j
cHA7IHBhdGggPSBzdHlsZS9HcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNERjc0ODNEMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQ
b3NpdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBHcmlkUmVzb2x2ZWRQ
b3NpdGlvbi5oOyBwYXRoID0gc3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGQzM2MDExOENBNjE2MzAwMjZFNTZGIC8qIFJlbW90ZUNv
bW1hbmRMaXN0ZW5lcklPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1v
dGVDb21tYW5kTGlzdGVuZXJJT1MuaDsgcGF0aCA9IGlvcy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJ
T1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RGQzM2MDIxOENBNjE2MzAwMjZF
NTZGIC8qIFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFJlbW90ZUNvbW1hbmRMaXN0ZW5lcklPUy5tbTsgcGF0aCA9IGlv
cy9SZW1vdGVDb21tYW5kTGlzdGVuZXJJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNERkMzNjAzMThDQTYxQzIwMDI2RTU2RiAvKiBSZW1vdGVDb21tYW5kTGlzdGVuZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlQ29tbWFuZExpc3Rl
bmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwODU0LDYgKzIwODU4LDgg
QEAKIAkJCQlDRDNFMjUxQjE4MDQ2QjA2MDBFMjdGNTYgLyogR3JpZENvb3JkaW5hdGUuaCAqLywK
IAkJCQlDREVGNEZENjE3RTg1QzhGMDBBRUUyNEIgLyogR3JpZExlbmd0aC5oICovLAogCQkJCUEx
MjcwNUMyMTY1NkJENjUwMEMyRTI3QyAvKiBHcmlkUG9zaXRpb24uaCAqLywKKwkJCQlDREY3NDgz
QzE4RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwICovLAorCQkJCUNE
Rjc0ODNEMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oICovLAogCQkJ
CUExMkExMDRFMTY2NDQ0REMwMDhGQTMxMSAvKiBHcmlkVHJhY2tTaXplLmggKi8sCiAJCQkJQkM1
RUJBMEUwRTgyM0U0NzAwQjI1OTY1IC8qIEtleWZyYW1lTGlzdC5jcHAgKi8sCiAJCQkJQkM1RUJB
MEYwRTgyM0U0NzAwQjI1OTY1IC8qIEtleWZyYW1lTGlzdC5oICovLApAQCAtMjQ2MTcsNiArMjQ2
MjMsNyBAQAogCQkJCUE4MEU3RTlGMEExQTgzRTMwMDdGQjhDNSAvKiBKU0hUTUxCdXR0b25FbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzhFNjY2MjA5RjA5Qjg3MDA4QTQ4RUMgLyogSlNI
VE1MQ2FudmFzRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDQkFENDEwQzE4QzE0MjAw
Q0U4OTBGIC8qIEpTSFRNTENvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUNERjc0ODNG
MThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRjVDMDQxRTcwRkZDQTk2RDAwODM5RDRBIC8qIEpTSFRNTERhdGFMaXN0RWxlbWVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRDM1OUQ4QkYxMjlDQTU1QzAwMDZFNUQyIC8qIEpTSFRNTERl
dGFpbHNFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3NjgwOEI1MDE1OURBREZBMDAyQjUy
MzMgLyogSlNIVE1MRGlhbG9nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzM2OCw2ICsy
NzM3NSw3IEBACiAJCQkJQTQyMjZFOTYxMTYzRDczQTAwOEI4Mzk3IC8qIERPTUhUTUxQcm9ncmVz
c0VsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTE4M0I0QjBBQTY5MjYxMDBGMTlGQTMg
LyogRE9NSFRNTFF1b3RlRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1REY4MTlDMEFB
NzdFNEIwMDQ4NkFENyAvKiBET01IVE1MU2NyaXB0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAor
CQkJCUNERjc0ODNFMThGRUJDRUMwMDA2RUNDMCAvKiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk4NUYzMkFGMTBBQTYzQjg3MDBGRjMxODQgLyogRE9NSFRNTFNl
bGVjdEVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4NTlBOUM1MDBBQTVFM0JEMDBCNjk0
QjIgLyogRE9NSFRNTFN0eWxlRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1REY4MjFF
MEFBNzg0OUUwMDQ4NkFENyAvKiBET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudC5tbSBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFy
ZWFzVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFs
dWUuY3BwCmluZGV4IGIzNTM4MjI5MGYzNDBlYWQ2OTE2MzNiNDU3NTljYzI2OWM1N2RmOTMuLjVh
ZDcxZmJkZDM2Y2Y4ZGMwMDM0MjAzOGQxMzdjYWFmZTZhZWEzZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKQEAgLTU1LDEzICs1NSwx
MyBAQCBzdGF0aWMgU3RyaW5nIHN0cmluZ0ZvclBvc2l0aW9uKGNvbnN0IE5hbWVkR3JpZEFyZWFN
YXAmIGdyaWRBcmVhTWFwLCBzaXplX3Qgcm93LAogCiAgICAgZm9yIChjb25zdCBhdXRvJiBpdCA6
IGdyaWRBcmVhTWFwKSB7CiAgICAgICAgIGNvbnN0IEdyaWRDb29yZGluYXRlJiBjb29yZGluYXRl
ID0gaXQudmFsdWU7Ci0gICAgICAgIGlmIChyb3cgPj0gY29vcmRpbmF0ZS5yb3dzLmluaXRpYWxQ
b3NpdGlvbkluZGV4ICYmIHJvdyA8PSBjb29yZGluYXRlLnJvd3MuZmluYWxQb3NpdGlvbkluZGV4
KQorICAgICAgICBpZiAocm93ID49IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEluaXRpYWxQb3Np
dGlvbi50b0ludCgpICYmIHJvdyA8PSBjb29yZGluYXRlLnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0
aW9uLnRvSW50KCkpCiAgICAgICAgICAgICBjYW5kaWRhdGVzLmFwcGVuZChpdC5rZXkpOwogICAg
IH0KIAogICAgIGZvciAoY29uc3QgYXV0byYgaXQgOiBncmlkQXJlYU1hcCkgewogICAgICAgICBj
b25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0ZSA9IGl0LnZhbHVlOwotICAgICAgICBpZiAo
Y29sdW1uID49IGNvb3JkaW5hdGUuY29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleCAmJiBjb2x1
bW4gPD0gY29vcmRpbmF0ZS5jb2x1bW5zLmZpbmFsUG9zaXRpb25JbmRleCAmJiBjYW5kaWRhdGVz
LmNvbnRhaW5zKGl0LmtleSkpCisgICAgICAgIGlmIChjb2x1bW4gPj0gY29vcmRpbmF0ZS5jb2x1
bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCkgJiYgY29sdW1uIDw9IGNvb3JkaW5h
dGUuY29sdW1ucy5yZXNvbHZlZEZpbmFsUG9zaXRpb24udG9JbnQoKSAmJiBjYW5kaWRhdGVzLmNv
bnRhaW5zKGl0LmtleSkpCiAgICAgICAgICAgICByZXR1cm4gaXQua2V5OwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAwMGU5YjJmNmNlYjRmNTI3ZGQ3ODBjNmQ2NWViZTAw
Mzk4ZDU0MzEwLi4zYjVhMzg1ODQ0ZTFlYTA2OTAzYmU1Zjk0MTJiMDcxMmZkODUxOTU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNTM1MiwxOCArNTM1MiwxOCBAQCBib29sIENTU1Bh
cnNlcjo6cGFyc2VHcmlkVGVtcGxhdGVBcmVhc1JvdyhOYW1lZEdyaWRBcmVhTWFwJiBncmlkQXJl
YU1hcCwgY29uc3QgdQogCiAgICAgICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNoZWNrcyB0ZXN0
IHRoYXQgdGhlIGdyaWQgYXJlYSBpcyBhIHNpbmdsZSBmaWxsZWQtaW4gcmVjdGFuZ2xlLgogICAg
ICAgICAgICAgLy8gMS4gVGhlIG5ldyByb3cgaXMgYWRqYWNlbnQgdG8gdGhlIHByZXZpb3VzbHkg
cGFyc2VkIHJvdy4KLSAgICAgICAgICAgIGlmIChyb3dDb3VudCAhPSBncmlkQ29vcmRpbmF0ZS5y
b3dzLmZpbmFsUG9zaXRpb25JbmRleCArIDEpCisgICAgICAgICAgICBpZiAocm93Q291bnQgIT0g
Z3JpZENvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRpb24ubmV4dCgpLnRvSW50KCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAgICAgICAgIC8vIDIuIFRoZSBuZXcg
YXJlYSBzdGFydHMgYXQgdGhlIHNhbWUgcG9zaXRpb24gYXMgdGhlIHByZXZpb3VzbHkgcGFyc2Vk
IGFyZWEuCi0gICAgICAgICAgICBpZiAoY3VycmVudENvbHVtbiAhPSBncmlkQ29vcmRpbmF0ZS5j
b2x1bW5zLmluaXRpYWxQb3NpdGlvbkluZGV4KQorICAgICAgICAgICAgaWYgKGN1cnJlbnRDb2x1
bW4gIT0gZ3JpZENvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0lu
dCgpKQogICAgICAgICAgICAgICAgIHJldHVybiAwOwogCiAgICAgICAgICAgICAvLyAzLiBUaGUg
bmV3IGFyZWEgZW5kcyBhdCB0aGUgc2FtZSBwb3NpdGlvbiBhcyB0aGUgcHJldmlvdXNseSBwYXJz
ZWQgYXJlYS4KLSAgICAgICAgICAgIGlmIChsb29rQWhlYWRDb2x1bW4gIT0gZ3JpZENvb3JkaW5h
dGUuY29sdW1ucy5maW5hbFBvc2l0aW9uSW5kZXgpCisgICAgICAgICAgICBpZiAobG9va0FoZWFk
Q29sdW1uICE9IGdyaWRDb29yZGluYXRlLmNvbHVtbnMucmVzb2x2ZWRGaW5hbFBvc2l0aW9uLnRv
SW50KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgICAgICsrZ3JpZENv
b3JkaW5hdGUucm93cy5maW5hbFBvc2l0aW9uSW5kZXg7CisgICAgICAgICAgICArK2dyaWRDb29y
ZGluYXRlLnJvd3MucmVzb2x2ZWRGaW5hbFBvc2l0aW9uOwogICAgICAgICB9CiAgICAgICAgIGN1
cnJlbnRDb2x1bW4gPSBsb29rQWhlYWRDb2x1bW47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwCmluZGV4IGNjMmE3MDc2N2NjZDI3NGFhM2QwMThlZGEwMDgzYWJjMTVlZDE5
YTkuLjVkNTMxMjgzOGIxN2MzODEzNGFjMGU2ZjkyYTNkY2M2ZDlhZDI1MzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE4NjQsMTIgKzE4NjQsMTIgQEAgc3RhdGljIHZv
aWQgY3JlYXRlSW1wbGljaXROYW1lZEdyaWRMaW5lc0Zyb21HcmlkQXJlYShjb25zdCBOYW1lZEdy
aWRBcmVhTWFwJiBuYW0KICAgICAgICAgR3JpZFNwYW4gYXJlYVNwYW4gPSBkaXJlY3Rpb24gPT0g
Rm9yUm93cyA/IGFyZWEudmFsdWUucm93cyA6IGFyZWEudmFsdWUuY29sdW1uczsKICAgICAgICAg
ewogICAgICAgICAgICAgYXV0byYgc3RhcnRWZWN0b3IgPSBuYW1lZEdyaWRMaW5lcy5hZGQoYXJl
YS5rZXkgKyAiLXN0YXJ0IiwgVmVjdG9yPHNpemVfdD4oKSkuaXRlcmF0b3ItPnZhbHVlOwotICAg
ICAgICAgICAgc3RhcnRWZWN0b3IuYXBwZW5kKGFyZWFTcGFuLmluaXRpYWxQb3NpdGlvbkluZGV4
KTsKKyAgICAgICAgICAgIHN0YXJ0VmVjdG9yLmFwcGVuZChhcmVhU3Bhbi5yZXNvbHZlZEluaXRp
YWxQb3NpdGlvbi50b0ludCgpKTsKICAgICAgICAgICAgIHN0ZDo6c29ydChzdGFydFZlY3Rvci5i
ZWdpbigpLCBzdGFydFZlY3Rvci5lbmQoKSk7CiAgICAgICAgIH0KICAgICAgICAgewogICAgICAg
ICAgICAgYXV0byYgZW5kVmVjdG9yID0gbmFtZWRHcmlkTGluZXMuYWRkKGFyZWEua2V5ICsgIi1l
bmQiLCBWZWN0b3I8c2l6ZV90PigpKS5pdGVyYXRvci0+dmFsdWU7Ci0gICAgICAgICAgICBlbmRW
ZWN0b3IuYXBwZW5kKGFyZWFTcGFuLmZpbmFsUG9zaXRpb25JbmRleCArIDEpOworICAgICAgICAg
ICAgZW5kVmVjdG9yLmFwcGVuZChhcmVhU3Bhbi5yZXNvbHZlZEZpbmFsUG9zaXRpb24ubmV4dCgp
LnRvSW50KCkpOwogICAgICAgICAgICAgc3RkOjpzb3J0KGVuZFZlY3Rvci5iZWdpbigpLCBlbmRW
ZWN0b3IuZW5kKCkpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuY3BwCmluZGV4IDQyMWU5NTA0YjkxNTYwZTU1ZGIyZDU2Njg2YzlhMDlhZWZhZjI1
NWIuLjYxY2QyNmNlNmQ3MTVhNDI0MjI1MmFkMzQ0MzFjNThjZjEwYWZkM2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpZiBFTkFC
TEUoQ1NTX0dSSURfTEFZT1VUKQogCiAjaW5jbHVkZSAiR3JpZENvb3JkaW5hdGUuaCIKKyNpbmNs
dWRlICJHcmlkUmVzb2x2ZWRQb3NpdGlvbi5oIgogI2luY2x1ZGUgIkxheW91dFJlcGFpbnRlci5o
IgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgpAQCAt
MzQxLDcgKzM0Miw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0ZVVzZWRCcmVhZHRoT2ZHcmlk
VHJhY2tzKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3RpCiAgICAgICAgICAgICAgICAg
Y29uc3QgR3JpZFNwYW4gc3BhbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBjb29yZGlu
YXRlLmNvbHVtbnMgOiBjb29yZGluYXRlLnJvd3M7CiAKICAgICAgICAgICAgICAgICAvLyBEbyBu
b3QgaW5jbHVkZSBhbHJlYWR5IHByb2Nlc3NlZCBpdGVtcy4KLSAgICAgICAgICAgICAgICBpZiAo
aSA+IDAgJiYgc3Bhbi5pbml0aWFsUG9zaXRpb25JbmRleCA8PSBmbGV4aWJsZVNpemVkVHJhY2tz
SW5kZXhbaSAtIDFdKQorICAgICAgICAgICAgICAgIGlmIChpID4gMCAmJiBzcGFuLnJlc29sdmVk
SW5pdGlhbFBvc2l0aW9uLnRvSW50KCkgPD0gZmxleGlibGVTaXplZFRyYWNrc0luZGV4W2kgLSAx
XSkKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgICAgICBkb3Vi
bGUgaXRlbU5vcm1hbGl6ZWRGbGV4QnJlYWR0aCA9IGNvbXB1dGVOb3JtYWxpemVkRnJhY3Rpb25C
cmVhZHRoKHRyYWNrcywgc3BhbiwgZGlyZWN0aW9uLCBtYXhDb250ZW50Rm9yQ2hpbGQoZ3JpZEl0
ZW0sIGRpcmVjdGlvbiwgc2l6aW5nRGF0YS5jb2x1bW5UcmFja3MpKTsKQEAgLTQwMCwxMiArNDAx
LDEyIEBAIGRvdWJsZSBSZW5kZXJHcmlkOjpjb21wdXRlTm9ybWFsaXplZEZyYWN0aW9uQnJlYWR0
aChWZWN0b3I8R3JpZFRyYWNrPiYgdHJhY2tzLCBjCiAgICAgLy8gfGF2YWlsYWJsZUxvZ2ljYWxT
cGFjZXwgYWxyZWFkeSBhY2NvdW50cyBmb3IgdGhlIHVzZWQgYnJlYWR0aHMgc28gbm8gbmVlZCB0
byByZW1vdmUgaXQgaGVyZS4KIAogICAgIFZlY3RvcjxHcmlkVHJhY2tGb3JOb3JtYWxpemF0aW9u
PiB0cmFja3NGb3JOb3JtYWxpemF0aW9uOwotICAgIGZvciAoc2l6ZV90IGkgPSB0cmFja3NTcGFu
LmluaXRpYWxQb3NpdGlvbkluZGV4OyBpIDw9IHRyYWNrc1NwYW4uZmluYWxQb3NpdGlvbkluZGV4
OyArK2kpIHsKLSAgICAgICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXplID0gZ3JpZFRy
YWNrU2l6ZShkaXJlY3Rpb24sIGkpOworICAgIGZvciAoR3JpZFJlc29sdmVkUG9zaXRpb24gcG9z
aXRpb24gPSB0cmFja3NTcGFuLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOyBwb3NpdGlvbiA8PSB0
cmFja3NTcGFuLnJlc29sdmVkRmluYWxQb3NpdGlvbjsgKytwb3NpdGlvbikgeworICAgICAgICBj
b25zdCBHcmlkVHJhY2tTaXplJiB0cmFja1NpemUgPSBncmlkVHJhY2tTaXplKGRpcmVjdGlvbiwg
cG9zaXRpb24udG9JbnQoKSk7CiAgICAgICAgIGlmICghdHJhY2tTaXplLm1heFRyYWNrQnJlYWR0
aCgpLmlzRmxleCgpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgdHJhY2tzRm9y
Tm9ybWFsaXphdGlvbi5hcHBlbmQoR3JpZFRyYWNrRm9yTm9ybWFsaXphdGlvbih0cmFja3NbaV0s
IHRyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5mbGV4KCkpKTsKKyAgICAgICAgdHJhY2tzRm9y
Tm9ybWFsaXphdGlvbi5hcHBlbmQoR3JpZFRyYWNrRm9yTm9ybWFsaXphdGlvbih0cmFja3NbcG9z
aXRpb24udG9JbnQoKV0sIHRyYWNrU2l6ZS5tYXhUcmFja0JyZWFkdGgoKS5mbGV4KCkpKTsKICAg
ICB9CiAKICAgICAvLyBUaGUgZnVuY3Rpb24gaXMgbm90IGNhbGxlZCBpZiB3ZSBkb24ndCBoYXZl
IDxmbGV4PiBncmlkIHRyYWNrcwpAQCAtNDYxLDMxICs0NjIsNiBAQCBjb25zdCBHcmlkVHJhY2tT
aXplJiBSZW5kZXJHcmlkOjpncmlkVHJhY2tTaXplKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBk
aXJlY3RpbwogICAgIHJldHVybiB0cmFja1NpemU7CiB9CiAKLXNpemVfdCBSZW5kZXJHcmlkOjpl
eHBsaWNpdEdyaWRDb2x1bW5Db3VudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0eWxlKCkuZ3Jp
ZENvbHVtbnMoKS5zaXplKCk7Ci19Ci0KLXNpemVfdCBSZW5kZXJHcmlkOjpleHBsaWNpdEdyaWRS
b3dDb3VudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0eWxlKCkuZ3JpZFJvd3MoKS5zaXplKCk7
Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0NvbHVtblNpZGUoR3JpZFBvc2l0aW9uU2lkZSBz
aWRlKQotewotICAgIHJldHVybiBzaWRlID09IENvbHVtblN0YXJ0U2lkZSB8fCBzaWRlID09IENv
bHVtbkVuZFNpZGU7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9vbCBpc1N0YXJ0U2lkZShHcmlkUG9z
aXRpb25TaWRlIHNpZGUpCi17Ci0gICAgcmV0dXJuIHNpZGUgPT0gQ29sdW1uU3RhcnRTaWRlIHx8
IHNpZGUgPT0gUm93U3RhcnRTaWRlOwotfQotCi1zaXplX3QgUmVuZGVyR3JpZDo6ZXhwbGljaXRH
cmlkU2l6ZUZvclNpZGUoR3JpZFBvc2l0aW9uU2lkZSBzaWRlKSBjb25zdAotewotICAgIHJldHVy
biBpc0NvbHVtblNpZGUoc2lkZSkgPyBleHBsaWNpdEdyaWRDb2x1bW5Db3VudCgpIDogZXhwbGlj
aXRHcmlkUm93Q291bnQoKTsKLX0KLQogTGF5b3V0VW5pdCBSZW5kZXJHcmlkOjpsb2dpY2FsQ29u
dGVudEhlaWdodEZvckNoaWxkKFJlbmRlckJveCogY2hpbGQsIFZlY3RvcjxHcmlkVHJhY2s+JiBj
b2x1bW5UcmFja3MpCiB7CiAgICAgTGF5b3V0VW5pdCBvbGRPdmVycmlkZUNvbnRhaW5pbmdCbG9j
a0NvbnRlbnRMb2dpY2FsV2lkdGggPSBjaGlsZC0+aGFzT3ZlcnJpZGVDb250YWluaW5nQmxvY2tM
b2dpY2FsV2lkdGgoKSA/IGNoaWxkLT5vdmVycmlkZUNvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dp
Y2FsV2lkdGgoKSA6IExheW91dFVuaXQoKTsKQEAgLTU1NSwxNiArNTMxLDE2IEBAIHZvaWQgUmVu
ZGVyR3JpZDo6cmVzb2x2ZUNvbnRlbnRCYXNlZFRyYWNrU2l6aW5nRnVuY3Rpb25zKEdyaWRUcmFj
a1NpemluZ0RpcmVjdGlvCiB2b2lkIFJlbmRlckdyaWQ6OnJlc29sdmVDb250ZW50QmFzZWRUcmFj
a1NpemluZ0Z1bmN0aW9uc0Zvckl0ZW1zKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rp
b24sIEdyaWRTaXppbmdEYXRhJiBzaXppbmdEYXRhLCBSZW5kZXJCb3gqIGdyaWRJdGVtLCBGaWx0
ZXJGdW5jdGlvbiBmaWx0ZXJGdW5jdGlvbiwgU2l6aW5nRnVuY3Rpb24gc2l6aW5nRnVuY3Rpb24s
IEFjY3VtdWxhdG9yR2V0dGVyIHRyYWNrR2V0dGVyLCBBY2N1bXVsYXRvckdyb3dGdW5jdGlvbiB0
cmFja0dyb3d0aEZ1bmN0aW9uKQogewogICAgIGNvbnN0IEdyaWRDb29yZGluYXRlIGNvb3JkaW5h
dGUgPSBjYWNoZWRHcmlkQ29vcmRpbmF0ZShncmlkSXRlbSk7Ci0gICAgY29uc3Qgc2l6ZV90IGlu
aXRpYWxUcmFja0luZGV4ID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1bW5zKSA/IGNvb3JkaW5hdGUu
Y29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleCA6IGNvb3JkaW5hdGUucm93cy5pbml0aWFsUG9z
aXRpb25JbmRleDsKLSAgICBjb25zdCBzaXplX3QgZmluYWxUcmFja0luZGV4ID0gKGRpcmVjdGlv
biA9PSBGb3JDb2x1bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1ucy5maW5hbFBvc2l0aW9uSW5kZXgg
OiBjb29yZGluYXRlLnJvd3MuZmluYWxQb3NpdGlvbkluZGV4OworICAgIGNvbnN0IEdyaWRSZXNv
bHZlZFBvc2l0aW9uIGluaXRpYWxUcmFja1Bvc2l0aW9uID0gKGRpcmVjdGlvbiA9PSBGb3JDb2x1
bW5zKSA/IGNvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbiA6IGNvb3Jk
aW5hdGUucm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsKKyAgICBjb25zdCBHcmlkUmVzb2x2
ZWRQb3NpdGlvbiBmaW5hbFRyYWNrUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMp
ID8gY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlvbiA6IGNvb3JkaW5hdGUu
cm93cy5yZXNvbHZlZEZpbmFsUG9zaXRpb247CiAKICAgICBzaXppbmdEYXRhLmZpbHRlcmVkVHJh
Y2tzLnNocmluaygwKTsKLSAgICBmb3IgKHNpemVfdCB0cmFja0luZGV4ID0gaW5pdGlhbFRyYWNr
SW5kZXg7IHRyYWNrSW5kZXggPD0gZmluYWxUcmFja0luZGV4OyArK3RyYWNrSW5kZXgpIHsKLSAg
ICAgICAgY29uc3QgR3JpZFRyYWNrU2l6ZSYgdHJhY2tTaXplID0gZ3JpZFRyYWNrU2l6ZShkaXJl
Y3Rpb24sIHRyYWNrSW5kZXgpOworICAgIGZvciAoR3JpZFJlc29sdmVkUG9zaXRpb24gdHJhY2tJ
bmRleCA9IGluaXRpYWxUcmFja1Bvc2l0aW9uOyB0cmFja0luZGV4IDw9IGZpbmFsVHJhY2tQb3Np
dGlvbjsgKyt0cmFja0luZGV4KSB7CisgICAgICAgIGNvbnN0IEdyaWRUcmFja1NpemUmIHRyYWNr
U2l6ZSA9IGdyaWRUcmFja1NpemUoZGlyZWN0aW9uLCB0cmFja0luZGV4LnRvSW50KCkpOwogICAg
ICAgICBpZiAoISh0cmFja1NpemUuKmZpbHRlckZ1bmN0aW9uKSgpKQogICAgICAgICAgICAgY29u
dGludWU7CiAKLSAgICAgICAgR3JpZFRyYWNrJiB0cmFjayA9IChkaXJlY3Rpb24gPT0gRm9yQ29s
dW1ucykgPyBzaXppbmdEYXRhLmNvbHVtblRyYWNrc1t0cmFja0luZGV4XSA6IHNpemluZ0RhdGEu
cm93VHJhY2tzW3RyYWNrSW5kZXhdOworICAgICAgICBHcmlkVHJhY2smIHRyYWNrID0gKGRpcmVj
dGlvbiA9PSBGb3JDb2x1bW5zKSA/IHNpemluZ0RhdGEuY29sdW1uVHJhY2tzW3RyYWNrSW5kZXgu
dG9JbnQoKV0gOiBzaXppbmdEYXRhLnJvd1RyYWNrc1t0cmFja0luZGV4LnRvSW50KCldOwogICAg
ICAgICBzaXppbmdEYXRhLmZpbHRlcmVkVHJhY2tzLmFwcGVuZCgmdHJhY2spOwogICAgIH0KIApA
QCAtNTcyLDggKzU0OCw4IEBAIHZvaWQgUmVuZGVyR3JpZDo6cmVzb2x2ZUNvbnRlbnRCYXNlZFRy
YWNrU2l6aW5nRnVuY3Rpb25zRm9ySXRlbXMoR3JpZFRyYWNrU2l6aW5nCiAgICAgICAgIHJldHVy
bjsKIAogICAgIExheW91dFVuaXQgYWRkaXRpb25hbEJyZWFkdGhTcGFjZSA9ICh0aGlzLT4qc2l6
aW5nRnVuY3Rpb24pKGdyaWRJdGVtLCBkaXJlY3Rpb24sIHNpemluZ0RhdGEuY29sdW1uVHJhY2tz
KTsKLSAgICBmb3IgKHNpemVfdCB0cmFja0luZGV4Rm9yU3BhY2UgPSBpbml0aWFsVHJhY2tJbmRl
eDsgdHJhY2tJbmRleEZvclNwYWNlIDw9IGZpbmFsVHJhY2tJbmRleDsgKyt0cmFja0luZGV4Rm9y
U3BhY2UpIHsKLSAgICAgICAgR3JpZFRyYWNrJiB0cmFjayA9IChkaXJlY3Rpb24gPT0gRm9yQ29s
dW1ucykgPyBzaXppbmdEYXRhLmNvbHVtblRyYWNrc1t0cmFja0luZGV4Rm9yU3BhY2VdIDogc2l6
aW5nRGF0YS5yb3dUcmFja3NbdHJhY2tJbmRleEZvclNwYWNlXTsKKyAgICBmb3IgKEdyaWRSZXNv
bHZlZFBvc2l0aW9uIHRyYWNrUG9zaXRpb25Gb3JTcGFjZSA9IGluaXRpYWxUcmFja1Bvc2l0aW9u
OyB0cmFja1Bvc2l0aW9uRm9yU3BhY2UgPD0gZmluYWxUcmFja1Bvc2l0aW9uOyArK3RyYWNrUG9z
aXRpb25Gb3JTcGFjZSkgeworICAgICAgICBHcmlkVHJhY2smIHRyYWNrID0gKGRpcmVjdGlvbiA9
PSBGb3JDb2x1bW5zKSA/IHNpemluZ0RhdGEuY29sdW1uVHJhY2tzW3RyYWNrUG9zaXRpb25Gb3JT
cGFjZS50b0ludCgpXSA6IHNpemluZ0RhdGEucm93VHJhY2tzW3RyYWNrUG9zaXRpb25Gb3JTcGFj
ZS50b0ludCgpXTsKICAgICAgICAgYWRkaXRpb25hbEJyZWFkdGhTcGFjZSAtPSAodHJhY2suKnRy
YWNrR2V0dGVyKSgpOwogICAgIH0KIApAQCAtNjQ3LDE3ICs2MjMsMTcgQEAgdm9pZCBSZW5kZXJH
cmlkOjpncm93R3JpZChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKQogCiB2b2lk
IFJlbmRlckdyaWQ6Omluc2VydEl0ZW1JbnRvR3JpZChSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBH
cmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0ZSkKIHsKLSAgICBmb3IgKHNpemVfdCByb3cgPSBjb29y
ZGluYXRlLnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXg7IHJvdyA8PSBjb29yZGluYXRlLnJvd3Mu
ZmluYWxQb3NpdGlvbkluZGV4OyArK3JvdykgewotICAgICAgICBmb3IgKHNpemVfdCBjb2x1bW4g
PSBjb29yZGluYXRlLmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXg7IGNvbHVtbiA8PSBjb29y
ZGluYXRlLmNvbHVtbnMuZmluYWxQb3NpdGlvbkluZGV4OyArK2NvbHVtbikKLSAgICAgICAgICAg
IG1fZ3JpZFtyb3ddW2NvbHVtbl0uYXBwZW5kKGNoaWxkKTsKKyAgICBmb3IgKEdyaWRSZXNvbHZl
ZFBvc2l0aW9uIHJvdyA9IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsg
cm93IDw9IGNvb3JkaW5hdGUucm93cy5yZXNvbHZlZEZpbmFsUG9zaXRpb247ICsrcm93KSB7Cisg
ICAgICAgIGZvciAoR3JpZFJlc29sdmVkUG9zaXRpb24gY29sdW1uID0gY29vcmRpbmF0ZS5jb2x1
bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOyBjb2x1bW4gPD0gY29vcmRpbmF0ZS5jb2x1bW5z
LnJlc29sdmVkRmluYWxQb3NpdGlvbjsgKytjb2x1bW4pCisgICAgICAgICAgICBtX2dyaWRbcm93
LnRvSW50KCldW2NvbHVtbi50b0ludCgpXS5hcHBlbmQoY2hpbGQpOwogICAgIH0KICAgICBtX2dy
aWRJdGVtQ29vcmRpbmF0ZS5zZXQoY2hpbGQsIGNvb3JkaW5hdGUpOwogfQogCi12b2lkIFJlbmRl
ckdyaWQ6Omluc2VydEl0ZW1JbnRvR3JpZChSZW5kZXJCb3gqIGNoaWxkLCBzaXplX3Qgcm93VHJh
Y2ssIHNpemVfdCBjb2x1bW5UcmFjaykKK3ZvaWQgUmVuZGVyR3JpZDo6aW5zZXJ0SXRlbUludG9H
cmlkKFJlbmRlckJveCogY2hpbGQsIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByb3dUcmFj
aywgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIGNvbHVtblRyYWNrKQogewotICAgIGNvbnN0
IEdyaWRTcGFuJiByb3dTcGFuID0gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVu
dFBvc2l0aW9uKGNoaWxkLCBGb3JSb3dzLCByb3dUcmFjayk7Ci0gICAgY29uc3QgR3JpZFNwYW4m
IGNvbHVtblNwYW4gPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRp
b24oY2hpbGQsIEZvckNvbHVtbnMsIGNvbHVtblRyYWNrKTsKKyAgICBjb25zdCBHcmlkU3BhbiYg
cm93U3BhbiA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21B
dXRvUGxhY2VtZW50UG9zaXRpb24oKmNoaWxkLCBGb3JSb3dzLCByb3dUcmFjayk7CisgICAgY29u
c3QgR3JpZFNwYW4mIGNvbHVtblNwYW4gPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdy
aWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKCpjaGlsZCwgRm9yQ29sdW1ucywg
Y29sdW1uVHJhY2spOwogICAgIGluc2VydEl0ZW1JbnRvR3JpZChjaGlsZCwgR3JpZENvb3JkaW5h
dGUocm93U3BhbiwgY29sdW1uU3BhbikpOwogfQogCkBAIC02NzQsOCArNjUwLDggQEAgdm9pZCBS
ZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQg
PSBtX29yZGVySXRlcmF0b3IuZmlyc3QoKTsgY2hpbGQ7IGNoaWxkID0gbV9vcmRlckl0ZXJhdG9y
Lm5leHQoKSkgewogICAgICAgICAvLyBGSVhNRTogV2UgbmV2ZXIgcmUtcmVzb2x2ZSBwb3NpdGlv
bnMgaWYgdGhlIGdyaWQgaXMgZ3Jvd24gZHVyaW5nIGF1dG8tcGxhY2VtZW50IHdoaWNoIG1heSBs
ZWFkIGF1dG8gLyA8aW50ZWdlcj4KICAgICAgICAgLy8gcG9zaXRpb25zIHRvIG5vdCBtYXRjaCB0
aGUgYXV0aG9yJ3MgaW50ZW50LiBUaGUgc3BlY2lmaWNhdGlvbiBpcyB1bmNsZWFyIG9uIHdoYXQg
c2hvdWxkIGJlIGRvbmUgaW4gdGhpcyBjYXNlLgotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3Jp
ZFNwYW4+IHJvd1Bvc2l0aW9ucyA9IHJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNoaWxk
LCBGb3JSb3dzKTsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBjb2x1bW5Qb3Np
dGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjaGlsZCwgRm9yQ29sdW1ucyk7
CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcm93UG9zaXRpb25zID0gR3JpZFJl
c29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICpj
aGlsZCwgRm9yUm93cyk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gY29sdW1u
UG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25zRnJv
bVN0eWxlKHN0eWxlKCksICpjaGlsZCwgRm9yQ29sdW1ucyk7CiAgICAgICAgIGlmICghcm93UG9z
aXRpb25zIHx8ICFjb2x1bW5Qb3NpdGlvbnMpIHsKICAgICAgICAgICAgIEdyaWRTcGFuKiBtYWpv
ckF4aXNQb3NpdGlvbnMgPSAoYXV0b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpID09IEZv
ckNvbHVtbnMpID8gY29sdW1uUG9zaXRpb25zLmdldCgpIDogcm93UG9zaXRpb25zLmdldCgpOwog
ICAgICAgICAgICAgaWYgKCFtYWpvckF4aXNQb3NpdGlvbnMpCkBAIC03MDQsMjIgKzY4MCwyMiBA
QCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQoKQogdm9pZCBSZW5kZXJHcmlkOjpw
b3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoKQogewogICAgIE9yZGVySXRlcmF0
b3JQb3B1bGF0b3IgcG9wdWxhdG9yKG1fb3JkZXJJdGVyYXRvcik7Ci0gICAgc2l6ZV90IG1heGlt
dW1Sb3dJbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4oMSwgZXhwbGljaXRHcmlkUm93Q291bnQoKSk7
Ci0gICAgc2l6ZV90IG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4oMSwgZXhw
bGljaXRHcmlkQ29sdW1uQ291bnQoKSk7CisgICAgc2l6ZV90IG1heGltdW1Sb3dJbmRleCA9IHN0
ZDo6bWF4PHNpemVfdD4oMSwgc3R5bGUoKS5ncmlkUm93cygpLnNpemUoKSk7CisgICAgc2l6ZV90
IG1heGltdW1Db2x1bW5JbmRleCA9IHN0ZDo6bWF4PHNpemVfdD4oMSwgc3R5bGUoKS5ncmlkQ29s
dW1ucygpLnNpemUoKSk7CiAKICAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBmaXJzdENoaWxk
Qm94KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7CiAgICAgICAg
IHBvcHVsYXRvci5jb2xsZWN0Q2hpbGQoKmNoaWxkKTsKIAogICAgICAgICAvLyBUaGlzIGZ1bmN0
aW9uIGJ5cGFzc2VzIHRoZSBjYWNoZSAoY2FjaGVkR3JpZENvb3JkaW5hdGUoKSkgYXMgaXQgaXMg
dXNlZCB0byBidWlsZCBpdC4KLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByb3dQ
b3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjaGlsZCwgRm9yUm93cyk7
Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gY29sdW1uUG9zaXRpb25zID0gcmVz
b2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY2hpbGQsIEZvckNvbHVtbnMpOworICAgICAgICBz
dGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJvd1Bvc2l0aW9ucyA9IEdyaWRSZXNvbHZlZFBvc2l0
aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqY2hpbGQsIEZvclJv
d3MpOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IGNvbHVtblBvc2l0aW9ucyA9
IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHls
ZSgpLCAqY2hpbGQsIEZvckNvbHVtbnMpOwogCiAgICAgICAgIC8vIHxwb3NpdGlvbnN8IGlzIDAg
aWYgd2UgbmVlZCB0byBydW4gdGhlIGF1dG8tcGxhY2VtZW50IGFsZ29yaXRobS4gT3VyIGVzdGlt
YXRpb24gaWdub3JlcwogICAgICAgICAvLyB0aGlzIGNhc2UgYXMgdGhlIGF1dG8tcGxhY2VtZW50
IGFsZ29yaXRobSB3aWxsIGdyb3cgdGhlIGdyaWQgYXMgbmVlZGVkLgogICAgICAgICBpZiAocm93
UG9zaXRpb25zKQotICAgICAgICAgICAgbWF4aW11bVJvd0luZGV4ID0gc3RkOjptYXgobWF4aW11
bVJvd0luZGV4LCByb3dQb3NpdGlvbnMtPmZpbmFsUG9zaXRpb25JbmRleCArIDEpOworICAgICAg
ICAgICAgbWF4aW11bVJvd0luZGV4ID0gc3RkOjptYXgobWF4aW11bVJvd0luZGV4LCByb3dQb3Np
dGlvbnMtPnJlc29sdmVkRmluYWxQb3NpdGlvbi5uZXh0KCkudG9JbnQoKSk7CiAgICAgICAgIGlm
IChjb2x1bW5Qb3NpdGlvbnMpCi0gICAgICAgICAgICBtYXhpbXVtQ29sdW1uSW5kZXggPSBzdGQ6
Om1heChtYXhpbXVtQ29sdW1uSW5kZXgsIGNvbHVtblBvc2l0aW9ucy0+ZmluYWxQb3NpdGlvbklu
ZGV4ICsgMSk7CisgICAgICAgICAgICBtYXhpbXVtQ29sdW1uSW5kZXggPSBzdGQ6Om1heChtYXhp
bXVtQ29sdW1uSW5kZXgsIGNvbHVtblBvc2l0aW9ucy0+cmVzb2x2ZWRGaW5hbFBvc2l0aW9uLm5l
eHQoKS50b0ludCgpKTsKICAgICB9CiAKICAgICBtX2dyaWQuZ3JvdyhtYXhpbXVtUm93SW5kZXgp
OwpAQCAtNzMwLDE3ICs3MDYsMTcgQEAgdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0
R3JpZEFuZE9yZGVySXRlcmF0b3IoKQogdm9pZCBSZW5kZXJHcmlkOjpwbGFjZVNwZWNpZmllZE1h
am9yQXhpc0l0ZW1zT25HcmlkKGNvbnN0IFZlY3RvcjxSZW5kZXJCb3gqPiYgYXV0b0dyaWRJdGVt
cykKIHsKICAgICBmb3IgKGF1dG8mIGF1dG9HcmlkSXRlbSA6IGF1dG9HcmlkSXRlbXMpIHsKLSAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBtYWpvckF4aXNQb3NpdGlvbnMgPSByZXNv
bHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShhdXRvR3JpZEl0ZW0sIGF1dG9QbGFjZW1lbnRNYWpv
ckF4aXNEaXJlY3Rpb24oKSk7Ci0gICAgICAgIEdyaWRJdGVyYXRvciBpdGVyYXRvcihtX2dyaWQs
IGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgbWFqb3JBeGlzUG9zaXRpb25zLT5p
bml0aWFsUG9zaXRpb25JbmRleCk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4g
bWFqb3JBeGlzUG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9z
aXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICphdXRvR3JpZEl0ZW0sIGF1dG9QbGFjZW1lbnRNYWpv
ckF4aXNEaXJlY3Rpb24oKSk7CisgICAgICAgIEdyaWRJdGVyYXRvciBpdGVyYXRvcihtX2dyaWQs
IGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSwgbWFqb3JBeGlzUG9zaXRpb25zLT5y
ZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpKTsKICAgICAgICAgaWYgKHN0ZDo6dW5pcXVl
X3B0cjxHcmlkQ29vcmRpbmF0ZT4gZW1wdHlHcmlkQXJlYSA9IGl0ZXJhdG9yLm5leHRFbXB0eUdy
aWRBcmVhKCkpIHsKLSAgICAgICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChhdXRvR3JpZEl0ZW0s
IGVtcHR5R3JpZEFyZWEtPnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXgsIGVtcHR5R3JpZEFyZWEt
PmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXgpOworICAgICAgICAgICAgaW5zZXJ0SXRlbUlu
dG9HcmlkKGF1dG9HcmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5yZXNvbHZlZEluaXRpYWxQ
b3NpdGlvbiwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbik7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAgICAgICAgIGdyb3dHcmlkKGF1
dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSk7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0
cjxHcmlkQ29vcmRpbmF0ZT4gZW1wdHlHcmlkQXJlYSA9IGl0ZXJhdG9yLm5leHRFbXB0eUdyaWRB
cmVhKCk7CiAgICAgICAgIEFTU0VSVChlbXB0eUdyaWRBcmVhKTsKLSAgICAgICAgaW5zZXJ0SXRl
bUludG9HcmlkKGF1dG9HcmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5pbml0aWFsUG9zaXRp
b25JbmRleCwgZW1wdHlHcmlkQXJlYS0+Y29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleCk7Cisg
ICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChhdXRvR3JpZEl0ZW0sIGVtcHR5R3JpZEFyZWEtPnJv
d3MucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIGVtcHR5R3JpZEFyZWEtPmNvbHVtbnMucmVzb2x2
ZWRJbml0aWFsUG9zaXRpb24pOwogICAgIH0KIH0KIApAQCAtNzUyLDE0ICs3MjgsMTQgQEAgdm9p
ZCBSZW5kZXJHcmlkOjpwbGFjZUF1dG9NYWpvckF4aXNJdGVtc09uR3JpZChjb25zdCBWZWN0b3I8
UmVuZGVyQm94Kj4mIGF1dG9HcmkKIAogdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUF1dG9NYWpvckF4
aXNJdGVtT25HcmlkKFJlbmRlckJveCogZ3JpZEl0ZW0pCiB7Ci0gICAgc3RkOjp1bmlxdWVfcHRy
PEdyaWRTcGFuPiBtaW5vckF4aXNQb3NpdGlvbnMgPSByZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21T
dHlsZShncmlkSXRlbSwgYXV0b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigpKTsKLSAgICBB
U1NFUlQoIXJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGdyaWRJdGVtLCBhdXRvUGxhY2Vt
ZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+
IG1pbm9yQXhpc1Bvc2l0aW9ucyA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3JpZFBv
c2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqZ3JpZEl0ZW0sIGF1dG9QbGFjZW1lbnRNaW5vckF4
aXNEaXJlY3Rpb24oKSk7CisgICAgQVNTRVJUKCFHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2
ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgKmdyaWRJdGVtLCBhdXRvUGxhY2VtZW50
TWFqb3JBeGlzRGlyZWN0aW9uKCkpKTsKICAgICBzaXplX3QgbWlub3JBeGlzSW5kZXggPSAwOwog
ICAgIGlmIChtaW5vckF4aXNQb3NpdGlvbnMpIHsKLSAgICAgICAgbWlub3JBeGlzSW5kZXggPSBt
aW5vckF4aXNQb3NpdGlvbnMtPmluaXRpYWxQb3NpdGlvbkluZGV4OworICAgICAgICBtaW5vckF4
aXNJbmRleCA9IG1pbm9yQXhpc1Bvc2l0aW9ucy0+cmVzb2x2ZWRJbml0aWFsUG9zaXRpb24udG9J
bnQoKTsKICAgICAgICAgR3JpZEl0ZXJhdG9yIGl0ZXJhdG9yKG1fZ3JpZCwgYXV0b1BsYWNlbWVu
dE1pbm9yQXhpc0RpcmVjdGlvbigpLCBtaW5vckF4aXNJbmRleCk7CiAgICAgICAgIGlmIChzdGQ6
OnVuaXF1ZV9wdHI8R3JpZENvb3JkaW5hdGU+IGVtcHR5R3JpZEFyZWEgPSBpdGVyYXRvci5uZXh0
RW1wdHlHcmlkQXJlYSgpKSB7Ci0gICAgICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoZ3JpZEl0
ZW0sIGVtcHR5R3JpZEFyZWEtPnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXgsIGVtcHR5R3JpZEFy
ZWEtPmNvbHVtbnMuaW5pdGlhbFBvc2l0aW9uSW5kZXgpOworICAgICAgICAgICAgaW5zZXJ0SXRl
bUludG9HcmlkKGdyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dzLnJlc29sdmVkSW5pdGlhbFBv
c2l0aW9uLCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CkBAIC03NjcsNyAr
NzQzLDcgQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUF1dG9NYWpvckF4aXNJdGVtT25HcmlkKFJl
bmRlckJveCogZ3JpZEl0ZW0pCiAgICAgICAgIGZvciAoc2l6ZV90IG1ham9yQXhpc0luZGV4ID0g
MDsgbWFqb3JBeGlzSW5kZXggPCBlbmRPZk1ham9yQXhpczsgKyttYWpvckF4aXNJbmRleCkgewog
ICAgICAgICAgICAgR3JpZEl0ZXJhdG9yIGl0ZXJhdG9yKG1fZ3JpZCwgYXV0b1BsYWNlbWVudE1h
am9yQXhpc0RpcmVjdGlvbigpLCBtYWpvckF4aXNJbmRleCk7CiAgICAgICAgICAgICBpZiAoc3Rk
Ojp1bmlxdWVfcHRyPEdyaWRDb29yZGluYXRlPiBlbXB0eUdyaWRBcmVhID0gaXRlcmF0b3IubmV4
dEVtcHR5R3JpZEFyZWEoKSkgewotICAgICAgICAgICAgICAgIGluc2VydEl0ZW1JbnRvR3JpZChn
cmlkSXRlbSwgZW1wdHlHcmlkQXJlYS0+cm93cy5pbml0aWFsUG9zaXRpb25JbmRleCwgZW1wdHlH
cmlkQXJlYS0+Y29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleCk7CisgICAgICAgICAgICAgICAg
aW5zZXJ0SXRlbUludG9HcmlkKGdyaWRJdGVtLCBlbXB0eUdyaWRBcmVhLT5yb3dzLnJlc29sdmVk
SW5pdGlhbFBvc2l0aW9uLCBlbXB0eUdyaWRBcmVhLT5jb2x1bW5zLnJlc29sdmVkSW5pdGlhbFBv
c2l0aW9uKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KQEAgLTc4MCwxNCArNzU2LDE0IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VBdXRvTWFqb3JB
eGlzSXRlbU9uR3JpZChSZW5kZXJCb3gqIGdyaWRJdGVtKQogICAgIGluc2VydEl0ZW1JbnRvR3Jp
ZChncmlkSXRlbSwgcm93SW5kZXgsIGNvbHVtbkluZGV4KTsKIH0KIAotUmVuZGVyR3JpZDo6R3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uIFJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNYWpvckF4aXNE
aXJlY3Rpb24oKSBjb25zdAorR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIFJlbmRlckdyaWQ6OmF1
dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSBjb25zdAogewogICAgIEdyaWRBdXRvRmxv
dyBmbG93ID0gc3R5bGUoKS5ncmlkQXV0b0Zsb3coKTsKICAgICBBU1NFUlQoZmxvdyAhPSBBdXRv
Rmxvd05vbmUpOwogICAgIHJldHVybiAoZmxvdyA9PSBBdXRvRmxvd0NvbHVtbikgPyBGb3JDb2x1
bW5zIDogRm9yUm93czsKIH0KIAotUmVuZGVyR3JpZDo6R3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9u
IFJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSBjb25zdAorR3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uIFJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNaW5vckF4aXNE
aXJlY3Rpb24oKSBjb25zdAogewogICAgIEdyaWRBdXRvRmxvdyBmbG93ID0gc3R5bGUoKS5ncmlk
QXV0b0Zsb3coKTsKICAgICBBU1NFUlQoZmxvdyAhPSBBdXRvRmxvd05vbmUpOwpAQCAtODU2LDI1
NiArODMyLDEzIEBAIEdyaWRDb29yZGluYXRlIFJlbmRlckdyaWQ6OmNhY2hlZEdyaWRDb29yZGlu
YXRlKGNvbnN0IFJlbmRlckJveCogZ3JpZEl0ZW0pIGNvbnN0CiAgICAgcmV0dXJuIG1fZ3JpZEl0
ZW1Db29yZGluYXRlLmdldChncmlkSXRlbSk7CiB9CiAKLUdyaWRTcGFuIFJlbmRlckdyaWQ6OnJl
c29sdmVHcmlkUG9zaXRpb25zRnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbihjb25zdCBSZW5kZXJC
b3gqLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIHNpemVfdCBpbml0aWFsUG9zaXRpb24pIGNv
bnN0Ci17Ci0gICAgLy8gRklYTUU6IFdlIGRvbid0IHN1cHBvcnQgc3Bhbm5pbmcgd2l0aCBhdXRv
IHBvc2l0aW9ucyB5ZXQuIE9uY2Ugd2UgZG8sIHRoaXMgaXMgd3JvbmcuIEFsc28gd2Ugc2hvdWxk
IG1ha2UKLSAgICAvLyBzdXJlIHRoZSBncmlkIGNhbiBhY2NvbW9kYXRlIHRoZSBuZXcgaXRlbSBh
cyB3ZSBvbmx5IGdyb3cgMSBwb3NpdGlvbiBpbiBhIGdpdmVuIGRpcmVjdGlvbi4KLSAgICByZXR1
cm4gR3JpZFNwYW4oaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb24pOwotfQotCi1zdGF0
aWMgaW5saW5lIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBncmlkTGluZXNGb3JTaWRlKGNvbnN0
IFJlbmRlclN0eWxlJiBzdHlsZSwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQotewotICAgIHJldHVy
biBpc0NvbHVtblNpZGUoc2lkZSkgPyBzdHlsZS5uYW1lZEdyaWRDb2x1bW5MaW5lcygpIDogc3R5
bGUubmFtZWRHcmlkUm93TGluZXMoKTsKLX0KLQotc3RhdGljIGlubGluZSBjb25zdCBTdHJpbmcg
aW1wbGljaXROYW1lZEdyaWRMaW5lRm9yU2lkZShjb25zdCBTdHJpbmcmIGxpbmVOYW1lLCBHcmlk
UG9zaXRpb25TaWRlIHNpZGUpCi17Ci0gICAgcmV0dXJuIGxpbmVOYW1lICsgKGlzU3RhcnRTaWRl
KHNpZGUpID8gIi1zdGFydCIgOiAiLWVuZCIpOwotfQotCi1zdGF0aWMgYm9vbCBpc05vbkV4aXN0
ZW50TmFtZWRMaW5lT3JBcmVhKGNvbnN0IFN0cmluZyYgbGluZU5hbWUsIGNvbnN0IFJlbmRlclN0
eWxlJiBzdHlsZSwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQotewotICAgIGNvbnN0IE5hbWVkR3Jp
ZExpbmVzTWFwJiBncmlkTGluZU5hbWVzID0gZ3JpZExpbmVzRm9yU2lkZShzdHlsZSwgc2lkZSk7
Ci0gICAgcmV0dXJuICFncmlkTGluZU5hbWVzLmNvbnRhaW5zKGltcGxpY2l0TmFtZWRHcmlkTGlu
ZUZvclNpZGUobGluZU5hbWUsIHNpZGUpKSAmJiAhZ3JpZExpbmVOYW1lcy5jb250YWlucyhsaW5l
TmFtZSk7Ci19Ci0KLXZvaWQgUmVuZGVyR3JpZDo6YWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHls
ZShHcmlkUG9zaXRpb24mIGluaXRpYWxQb3NpdGlvbiwgR3JpZFBvc2l0aW9uJiBmaW5hbFBvc2l0
aW9uLCBHcmlkUG9zaXRpb25TaWRlIGluaXRpYWxQb3NpdGlvblNpZGUsIEdyaWRQb3NpdGlvblNp
ZGUgZmluYWxQb3NpdGlvblNpZGUpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGlzQ29sdW1uU2lkZShp
bml0aWFsUG9zaXRpb25TaWRlKSA9PSBpc0NvbHVtblNpZGUoZmluYWxQb3NpdGlvblNpZGUpKTsK
LQotICAgIC8vIFdlIG11c3QgaGFuZGxlIHRoZSBwbGFjZW1lbnQgZXJyb3IgaGFuZGxpbmcgY29k
ZSBoZXJlIGluc3RlYWQgb2YgaW4gdGhlIFN0eWxlQWRqdXN0ZXIgYmVjYXVzZSB3ZSBkb24ndCB3
YW50IHRvCi0gICAgLy8gb3ZlcndyaXRlIHRoZSBzcGVjaWZpZWQgdmFsdWVzLgotICAgIGlmIChp
bml0aWFsUG9zaXRpb24uaXNTcGFuKCkgJiYgZmluYWxQb3NpdGlvbi5pc1NwYW4oKSkKLSAgICAg
ICAgZmluYWxQb3NpdGlvbi5zZXRBdXRvUG9zaXRpb24oKTsKLQotICAgIC8vIFRyeSB0byBlYXJs
eSBkZXRlY3QgdGhlIGNhc2Ugb2Ygbm9uIGV4aXN0aW5nIG5hbWVkIGdyaWQgbGluZXMuIFRoaXMg
d2F5IHdlIGNvdWxkIGFzc3VtZSBsYXRlciB0aGF0Ci0gICAgLy8gUmVuZGVyR3JpZDo6cmVzb2x2
ZUdyaXNQb3NpdGlvbkZyb21TdHlsZSgpIHdvbid0IHJlcXVpcmUgdGhlIGF1dG9wbGFjZW1lbnQg
dG8gcnVuLCBpLmUuLCBpdCdsbCBhbHdheXMgcmV0dXJuIGEKLSAgICAvLyB2YWxpZCByZXNvbHZl
ZCBwb3NpdGlvbi4KLSAgICBpZiAoaW5pdGlhbFBvc2l0aW9uLmlzTmFtZWRHcmlkQXJlYSgpICYm
IGlzTm9uRXhpc3RlbnROYW1lZExpbmVPckFyZWEoaW5pdGlhbFBvc2l0aW9uLm5hbWVkR3JpZExp
bmUoKSwgc3R5bGUoKSwgaW5pdGlhbFBvc2l0aW9uU2lkZSkpCi0gICAgICAgIGluaXRpYWxQb3Np
dGlvbi5zZXRBdXRvUG9zaXRpb24oKTsKLQotICAgIGlmIChmaW5hbFBvc2l0aW9uLmlzTmFtZWRH
cmlkQXJlYSgpICYmIGlzTm9uRXhpc3RlbnROYW1lZExpbmVPckFyZWEoZmluYWxQb3NpdGlvbi5u
YW1lZEdyaWRMaW5lKCksIHN0eWxlKCksIGZpbmFsUG9zaXRpb25TaWRlKSkKLSAgICAgICAgZmlu
YWxQb3NpdGlvbi5zZXRBdXRvUG9zaXRpb24oKTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPEdyaWRT
cGFuPiBSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5k
ZXJCb3gqIGdyaWRJdGVtLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24gZGlyZWN0aW9uKSBjb25z
dAotewotICAgIEdyaWRQb3NpdGlvbiBpbml0aWFsUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZv
ckNvbHVtbnMpID8gZ3JpZEl0ZW0tPnN0eWxlKCkuZ3JpZEl0ZW1Db2x1bW5TdGFydCgpIDogZ3Jp
ZEl0ZW0tPnN0eWxlKCkuZ3JpZEl0ZW1Sb3dTdGFydCgpOwotICAgIGNvbnN0IEdyaWRQb3NpdGlv
blNpZGUgaW5pdGlhbFBvc2l0aW9uU2lkZSA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBD
b2x1bW5TdGFydFNpZGUgOiBSb3dTdGFydFNpZGU7Ci0gICAgR3JpZFBvc2l0aW9uIGZpbmFsUG9z
aXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gZ3JpZEl0ZW0tPnN0eWxlKCkuZ3Jp
ZEl0ZW1Db2x1bW5FbmQoKSA6IGdyaWRJdGVtLT5zdHlsZSgpLmdyaWRJdGVtUm93RW5kKCk7Ci0g
ICAgY29uc3QgR3JpZFBvc2l0aW9uU2lkZSBmaW5hbFBvc2l0aW9uU2lkZSA9IChkaXJlY3Rpb24g
PT0gRm9yQ29sdW1ucykgPyBDb2x1bW5FbmRTaWRlIDogUm93RW5kU2lkZTsKLQotICAgIGFkanVz
dEdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoaW5pdGlhbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uLCBp
bml0aWFsUG9zaXRpb25TaWRlLCBmaW5hbFBvc2l0aW9uU2lkZSk7Ci0KLSAgICBpZiAoaW5pdGlh
bFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigpICYmIGZp
bmFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKCkpIHsK
LSAgICAgICAgaWYgKHN0eWxlKCkuZ3JpZEF1dG9GbG93KCkgPT0gQXV0b0Zsb3dOb25lKQotICAg
ICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KDAsIDApOwotCi0gICAg
ICAgIC8vIFdlIGNhbid0IGdldCBvdXIgZ3JpZCBwb3NpdGlvbnMgd2l0aG91dCBydW5uaW5nIHRo
ZSBhdXRvIHBsYWNlbWVudCBhbGdvcml0aG0uCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IH0KLQotICAgIGlmIChpbml0aWFsUG9zaXRpb24uc2hvdWxkQmVSZXNvbHZlZEFnYWluc3RPcHBv
c2l0ZVBvc2l0aW9uKCkpIHsKLSAgICAgICAgLy8gSW5mZXIgdGhlIHBvc2l0aW9uIGZyb20gdGhl
IGZpbmFsIHBvc2l0aW9uICgnYXV0byAvIDEnIG9yICdzcGFuIDIgLyAzJyBjYXNlKS4KLSAgICAg
ICAgY29uc3Qgc2l6ZV90IGZpbmFsUmVzb2x2ZWRQb3NpdGlvbiA9IHJlc29sdmVHcmlkUG9zaXRp
b25Gcm9tU3R5bGUoZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvblNpZGUpOwotICAgICAgICBy
ZXR1cm4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGZpbmFsUmVz
b2x2ZWRQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRlKTsKLSAg
ICB9Ci0KLSAgICBpZiAoZmluYWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVkQWdhaW5zdE9wcG9z
aXRlUG9zaXRpb24oKSkgewotICAgICAgICAvLyBJbmZlciBvdXIgcG9zaXRpb24gZnJvbSB0aGUg
aW5pdGlhbCBwb3NpdGlvbiAoJzEgLyBhdXRvJyBvciAnMyAvIHNwYW4gMicgY2FzZSkuCi0gICAg
ICAgIGNvbnN0IHNpemVfdCBpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiA9IHJlc29sdmVHcmlkUG9z
aXRpb25Gcm9tU3R5bGUoaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRlKTsKLSAg
ICAgICAgcmV0dXJuIHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihp
bml0aWFsUmVzb2x2ZWRQb3NpdGlvbiwgZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvblNpZGUp
OwotICAgIH0KLQotICAgIHNpemVfdCByZXNvbHZlZEluaXRpYWxQb3NpdGlvbiA9IHJlc29sdmVH
cmlkUG9zaXRpb25Gcm9tU3R5bGUoaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRl
KTsKLSAgICBzaXplX3QgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uID0gcmVzb2x2ZUdyaWRQb3NpdGlv
bkZyb21TdHlsZShmaW5hbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uU2lkZSk7Ci0KLSAgICAvLyBJ
ZiAnZ3JpZC1yb3ctZW5kJyBzcGVjaWZpZXMgYSBsaW5lIGF0IG9yIGJlZm9yZSB0aGF0IHNwZWNp
ZmllZCBieSAnZ3JpZC1yb3ctc3RhcnQnLCBpdCBjb21wdXRlcyB0byAnc3BhbiAxJy4KLSAgICBp
ZiAocmVzb2x2ZWRGaW5hbFBvc2l0aW9uIDwgcmVzb2x2ZWRJbml0aWFsUG9zaXRpb24pCi0gICAg
ICAgIHJlc29sdmVkRmluYWxQb3NpdGlvbiA9IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOwotCi0g
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkSW5pdGlhbFBvc2l0
aW9uLCByZXNvbHZlZEZpbmFsUG9zaXRpb24pOwotfQotCi1zaXplX3QgUmVuZGVyR3JpZDo6cmVz
b2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkZyb21TdHlsZShjb25zdCBHcmlkUG9zaXRpb24mIHBv
c2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKCFwb3Np
dGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpOwotCi0gICAgY29uc3QgTmFtZWRHcmlkTGlu
ZXNNYXAmIGdyaWRMaW5lc05hbWVzID0gZ3JpZExpbmVzRm9yU2lkZShzdHlsZSgpLCBzaWRlKTsK
LSAgICBOYW1lZEdyaWRMaW5lc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBncmlkTGluZXNOYW1l
cy5maW5kKHBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSk7Ci0gICAgaWYgKGl0ID09IGdyaWRMaW5l
c05hbWVzLmVuZCgpKSB7Ci0gICAgICAgIGlmIChwb3NpdGlvbi5pc1Bvc2l0aXZlKCkpCi0gICAg
ICAgICAgICByZXR1cm4gMDsKLSAgICAgICAgY29uc3Qgc2l6ZV90IGxhc3RMaW5lID0gZXhwbGlj
aXRHcmlkU2l6ZUZvclNpZGUoc2lkZSk7Ci0gICAgICAgIHJldHVybiBHcmlkUG9zaXRpb246OmFk
anVzdEdyaWRQb3NpdGlvbkZvclNpZGUobGFzdExpbmUsIHNpZGUpOwotICAgIH0KLQotICAgIHNp
emVfdCBuYW1lZEdyaWRMaW5lSW5kZXg7Ci0gICAgaWYgKHBvc2l0aW9uLmlzUG9zaXRpdmUoKSkK
LSAgICAgICAgbmFtZWRHcmlkTGluZUluZGV4ID0gc3RkOjptaW48c2l6ZV90Pihwb3NpdGlvbi5p
bnRlZ2VyUG9zaXRpb24oKSwgaXQtPnZhbHVlLnNpemUoKSkgLSAxOwotICAgIGVsc2UKLSAgICAg
ICAgbmFtZWRHcmlkTGluZUluZGV4ID0gc3RkOjptYXg8aW50PihpdC0+dmFsdWUuc2l6ZSgpIC0g
YWJzKHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpKSwgMCk7Ci0gICAgcmV0dXJuIEdyaWRQb3Np
dGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShpdC0+dmFsdWVbbmFtZWRHcmlkTGluZUlu
ZGV4XSwgc2lkZSk7Ci19Ci0KLXNpemVfdCBSZW5kZXJHcmlkOjpyZXNvbHZlR3JpZFBvc2l0aW9u
RnJvbVN0eWxlKGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUg
c2lkZSkgY29uc3QKLXsKLSAgICBzd2l0Y2ggKHBvc2l0aW9uLnR5cGUoKSkgewotICAgIGNhc2Ug
RXhwbGljaXRQb3NpdGlvbjogewotICAgICAgICBBU1NFUlQocG9zaXRpb24uaW50ZWdlclBvc2l0
aW9uKCkpOwotCi0gICAgICAgIGlmICghcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVsbCgp
KQotICAgICAgICAgICAgcmV0dXJuIHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5
bGUocG9zaXRpb24sIHNpZGUpOwotCi0gICAgICAgIC8vIEhhbmRsZSA8aW50ZWdlcj4gZXhwbGlj
aXQgcG9zaXRpb24uCi0gICAgICAgIGlmIChwb3NpdGlvbi5pc1Bvc2l0aXZlKCkpCi0gICAgICAg
ICAgICByZXR1cm4gR3JpZFBvc2l0aW9uOjphZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKHBvc2l0
aW9uLmludGVnZXJQb3NpdGlvbigpIC0gMSwgc2lkZSk7Ci0KLSAgICAgICAgc2l6ZV90IHJlc29s
dmVkUG9zaXRpb24gPSBhYnMocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpIC0gMTsKLSAgICAg
ICAgY29uc3Qgc2l6ZV90IGVuZE9mVHJhY2sgPSBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShzaWRl
KTsKLQotICAgICAgICAvLyBQZXIgaHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMv
d3d3LXN0eWxlLzIwMTNNYXIvMDU4OS5odG1sLCB3ZSBjbGFtcCBuZWdhdGl2ZSB2YWx1ZSB0byB0
aGUgZmlyc3QgbGluZS4KLSAgICAgICAgaWYgKGVuZE9mVHJhY2sgPCByZXNvbHZlZFBvc2l0aW9u
KQotICAgICAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICAgICAgcmV0dXJuIEdyaWRQb3NpdGlvbjo6
YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShlbmRPZlRyYWNrIC0gcmVzb2x2ZWRQb3NpdGlvbiwg
c2lkZSk7Ci0gICAgfQotICAgIGNhc2UgTmFtZWRHcmlkQXJlYVBvc2l0aW9uOgotICAgIHsKLSAg
ICAgICAgLy8gRmlyc3QgYXR0ZW1wdCB0byBtYXRjaCB0aGUgZ3JpZCBhcmVhJ3MgZWRnZSB0byBh
IG5hbWVkIGdyaWQgYXJlYTogaWYgdGhlcmUgaXMgYSBuYW1lZCBsaW5lIHdpdGggdGhlIG5hbWUK
LSAgICAgICAgLy8gJyc8Y3VzdG9tLWlkZW50Pi1zdGFydCAoZm9yIGdyaWQtKi1zdGFydCkgLyA8
Y3VzdG9tLWlkZW50Pi1lbmQnJyAoZm9yIGdyaWQtKi1lbmQpLCBjb250cmlidXRlcyB0aGUgZmly
c3Qgc3VjaAotICAgICAgICAvLyBsaW5lIHRvIHRoZSBncmlkIGl0ZW0ncyBwbGFjZW1lbnQuCi0g
ICAgICAgIFN0cmluZyBuYW1lZEdyaWRMaW5lID0gcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpOwot
ICAgICAgICBBU1NFUlQoIWlzTm9uRXhpc3RlbnROYW1lZExpbmVPckFyZWEobmFtZWRHcmlkTGlu
ZSwgc3R5bGUoKSwgc2lkZSkpOwotCi0gICAgICAgIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBn
cmlkTGluZU5hbWVzID0gZ3JpZExpbmVzRm9yU2lkZShzdHlsZSgpLCBzaWRlKTsKLSAgICAgICAg
YXV0byBpbXBsaWNpdExpbmUgPSBncmlkTGluZU5hbWVzLmZpbmQoaW1wbGljaXROYW1lZEdyaWRM
aW5lRm9yU2lkZShuYW1lZEdyaWRMaW5lLCBzaWRlKSk7Ci0gICAgICAgIGlmIChpbXBsaWNpdExp
bmUgIT0gZ3JpZExpbmVOYW1lcy5lbmQoKSkKLSAgICAgICAgICAgIHJldHVybiBHcmlkUG9zaXRp
b246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoaW1wbGljaXRMaW5lLT52YWx1ZVswXSwgc2lk
ZSk7Ci0KLSAgICAgICAgLy8gT3RoZXJ3aXNlLCBpZiB0aGVyZSBpcyBhIG5hbWVkIGxpbmUgd2l0
aCB0aGUgc3BlY2lmaWVkIG5hbWUsIGNvbnRyaWJ1dGVzIHRoZSBmaXJzdCBzdWNoIGxpbmUgdG8g
dGhlIGdyaWQKLSAgICAgICAgLy8gaXRlbSdzIHBsYWNlbWVudC4KLSAgICAgICAgYXV0byBleHBs
aWNpdExpbmUgPSBncmlkTGluZU5hbWVzLmZpbmQobmFtZWRHcmlkTGluZSk7Ci0gICAgICAgIGlm
IChleHBsaWNpdExpbmUgIT0gZ3JpZExpbmVOYW1lcy5lbmQoKSkKLSAgICAgICAgICAgIHJldHVy
biBHcmlkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoZXhwbGljaXRMaW5lLT52
YWx1ZVswXSwgc2lkZSk7Ci0KLSAgICAgICAgLy8gSWYgbm9uZSBvZiB0aGUgYWJvdmUgd29ya3Mg
c3BlY3MgbWFuZGF0ZSB1cyB0byB0cmVhdCBpdCBhcyBhdXRvIEJVVCB3ZSBzaG91bGQgaGF2ZSBk
ZXRlY3RlZCBpdCBiZWZvcmUgY2FsbGluZwotICAgICAgICAvLyB0aGlzIGZ1bmN0aW9uIGluIHJl
c29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKCkuIFdlIHNob3VsZCBiZSBjb3ZlcmVkIGFueXdh
eSBieSB0aGUgQVNTRVJUIGF0IHRoZSBiZWdpbm5pbmcKLSAgICAgICAgLy8gb2YgdGhpcyBjYXNl
IGJsb2NrLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIDA7
Ci0gICAgfQotICAgIGNhc2UgQXV0b1Bvc2l0aW9uOgotICAgIGNhc2UgU3BhblBvc2l0aW9uOgot
ICAgICAgICAvLyAnYXV0bycgYW5kIHNwYW4gZGVwZW5kIG9uIHRoZSBvcHBvc2l0ZSBwb3NpdGlv
biBmb3IgcmVzb2x1dGlvbiAoZS5nLiBncmlkLXJvdzogYXV0byAvIDEgb3IgZ3JpZC1jb2x1bW46
IHNwYW4gMyAvICJteUhlYWRlciIpLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJl
dHVybiAwOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IFJlbmRlckdyaWQ6OnJlc29s
dmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBv
c2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25T
aWRlIHNpZGUpIGNvbnN0Ci17Ci0gICAgaWYgKHBvc2l0aW9uLmlzQXV0bygpKQotICAgICAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9u
LCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24pOwotCi0gICAgQVNTRVJUKHBvc2l0aW9uLmlzU3Bh
bigpKTsKLSAgICBBU1NFUlQocG9zaXRpb24uc3BhblBvc2l0aW9uKCkgPiAwKTsKLQotICAgIGlm
ICghcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpLmlzTnVsbCgpKSB7Ci0gICAgICAgIC8vIHNwYW4g
MiAnYycgLT4gd2UgbmVlZCB0byBmaW5kIHRoZSBhcHByb3ByaWF0ZSBncmlkIGxpbmUgYmVmb3Jl
IC8gYWZ0ZXIgb3VyIG9wcG9zaXRlIHBvc2l0aW9uLgotICAgICAgICByZXR1cm4gcmVzb2x2ZU5h
bWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3Np
dGVQb3NpdGlvbiwgcG9zaXRpb24sIHNpZGUpOwotICAgIH0KLQotICAgIC8vICdzcGFuIDEnIGlz
IGNvbnRhaW5lZCBpbnNpZGUgYSBzaW5nbGUgZ3JpZCB0cmFjayByZWdhcmRsZXNzIG9mIHRoZSBk
aXJlY3Rpb24uCi0gICAgLy8gVGhhdCdzIHdoeSB0aGUgQ1NTIHNwYW4gdmFsdWUgaXMgb25lIG1v
cmUgdGhhbiB0aGUgb2Zmc2V0IHdlIGFwcGx5LgotICAgIHNpemVfdCBwb3NpdGlvbk9mZnNldCA9
IHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpIC0gMTsKLSAgICBpZiAoaXNTdGFydFNpZGUoc2lkZSkp
IHsKLSAgICAgICAgc2l6ZV90IGluaXRpYWxSZXNvbHZlZFBvc2l0aW9uID0gc3RkOjptYXg8aW50
PigwLCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24gLSBwb3NpdGlvbk9mZnNldCk7Ci0gICAgICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihpbml0aWFsUmVzb2x2ZWRQb3NpdGlv
biwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxHcmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCByZXNvbHZlZE9w
cG9zaXRlUG9zaXRpb24gKyBwb3NpdGlvbk9mZnNldCk7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0cjxH
cmlkU3Bhbj4gUmVuZGVyR3JpZDo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RP
cHBvc2l0ZVBvc2l0aW9uKHNpemVfdCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdy
aWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkgY29uc3QKLXsKLSAg
ICBBU1NFUlQocG9zaXRpb24uaXNTcGFuKCkpOwotICAgIEFTU0VSVCghcG9zaXRpb24ubmFtZWRH
cmlkTGluZSgpLmlzTnVsbCgpKTsKLSAgICAvLyBOZWdhdGl2ZSBwb3NpdGlvbnMgYXJlIG5vdCBh
bGxvd2VkIHBlciB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgc2hvdWxkIGhhdmUgYmVlbiBoYW5kbGVk
IGR1cmluZyBwYXJzaW5nLgotICAgIEFTU0VSVChwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSA+IDAp
OwotCi0gICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIGdyaWRMaW5lc05hbWVzID0gZ3JpZExp
bmVzRm9yU2lkZShzdHlsZSgpLCBzaWRlKTsKLSAgICBOYW1lZEdyaWRMaW5lc01hcDo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBncmlkTGluZXNOYW1lcy5maW5kKHBvc2l0aW9uLm5hbWVkR3JpZExpbmUo
KSk7Ci0KLSAgICAvLyBJZiB0aGVyZSBpcyBubyBuYW1lZCBncmlkIGxpbmUgb2YgdGhhdCBuYW1l
LCB3ZSByZXNvbHZlIHRoZSBwb3NpdGlvbiB0byAnYXV0bycgKHdoaWNoIGlzIGVxdWl2YWxlbnQg
dG8gJ3NwYW4gMScgaW4gdGhpcyBjYXNlKS4KLSAgICAvLyBTZWUgaHR0cDovL2xpc3RzLnczLm9y
Zy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTNKdW4vMDM5NC5odG1sLgotICAgIGlmIChp
dCA9PSBncmlkTGluZXNOYW1lcy5lbmQoKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0ZVBv
c2l0aW9uKTsKLQotICAgIGlmIChpc1N0YXJ0U2lkZShzaWRlKSkKLSAgICAgICAgcmV0dXJuIHJl
c29sdmVSb3dTdGFydENvbHVtblN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9z
aXRlUG9zaXRpb24ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBwb3NpdGlvbiwgaXQtPnZhbHVl
KTsKLQotICAgIHJldHVybiByZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0
aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBwb3Np
dGlvbiwgaXQtPnZhbHVlKTsKLX0KLQotc3RhdGljIGlubGluZSBzaXplX3QgZmlyc3ROYW1lZEdy
aWRMaW5lQmVmb3JlUG9zaXRpb24oc2l6ZV90IHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8c2l6ZV90
PiYgZ3JpZExpbmVzKQotewotICAgIC8vIFRoZSBncmlkIGxpbmUgaW5lcXVhbGl0eSBuZWVkcyB0
byBiZSBzdHJpY3QgKHdoaWNoIGRvZXNuJ3QgbWF0Y2ggdGhlIGFmdGVyIC8gZW5kIGNhc2UpIGJl
Y2F1c2UgfHBvc2l0aW9ufCBpcwotICAgIC8vIGFscmVhZHkgY29udmVydGVkIHRvIGFuIGluZGV4
IGluIG91ciBncmlkIHJlcHJlc2VudGF0aW9uIChpZSBvbmUgd2FzIHJlbW92ZWQgZnJvbSB0aGUg
Z3JpZCBsaW5lIHRvIGFjY291bnQgZm9yCi0gICAgLy8gdGhlIHNpZGUpLgotICAgIHNpemVfdCBm
aXJzdExpbmVCZWZvcmVQb3NpdGlvbkluZGV4ID0gMDsKLSAgICBjb25zdCBzaXplX3QqIGZpcnN0
TGluZUJlZm9yZVBvc2l0aW9uID0gc3RkOjpsb3dlcl9ib3VuZChncmlkTGluZXMuYmVnaW4oKSwg
Z3JpZExpbmVzLmVuZCgpLCBwb3NpdGlvbik7Ci0gICAgaWYgKGZpcnN0TGluZUJlZm9yZVBvc2l0
aW9uICE9IGdyaWRMaW5lcy5lbmQoKSkgewotICAgICAgICBpZiAoKmZpcnN0TGluZUJlZm9yZVBv
c2l0aW9uID4gcG9zaXRpb24gJiYgZmlyc3RMaW5lQmVmb3JlUG9zaXRpb24gIT0gZ3JpZExpbmVz
LmJlZ2luKCkpCi0gICAgICAgICAgICAtLWZpcnN0TGluZUJlZm9yZVBvc2l0aW9uOwotCi0gICAg
ICAgIGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uSW5kZXggPSBmaXJzdExpbmVCZWZvcmVQb3NpdGlv
biAtIGdyaWRMaW5lcy5iZWdpbigpOwotICAgIH0KLSAgICByZXR1cm4gZmlyc3RMaW5lQmVmb3Jl
UG9zaXRpb25JbmRleDsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBSZW5kZXJHcmlk
OjpyZXNvbHZlUm93U3RhcnRDb2x1bW5TdGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RP
cHBvc2l0ZVBvc2l0aW9uKHNpemVfdCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdy
aWRQb3NpdGlvbiYgcG9zaXRpb24sIGNvbnN0IFZlY3RvcjxzaXplX3Q+JiBncmlkTGluZXMpIGNv
bnN0Ci17Ci0gICAgc2l6ZV90IGdyaWRMaW5lSW5kZXggPSBzdGQ6Om1heDxpbnQ+KDAsIGZpcnN0
TmFtZWRHcmlkTGluZUJlZm9yZVBvc2l0aW9uKHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgZ3Jp
ZExpbmVzKSAtIHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpICsgMSk7Ci0gICAgc2l6ZV90IHJlc29s
dmVkR3JpZExpbmVQb3NpdGlvbiA9IGdyaWRMaW5lc1tncmlkTGluZUluZGV4XTsKLSAgICBpZiAo
cmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID4gcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKQotICAg
ICAgICByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb247
Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkR3JpZExpbmVQ
b3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKLX0KLQotc3RkOjp1bmlxdWVfcHRy
PEdyaWRTcGFuPiBSZW5kZXJHcmlkOjpyZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGlu
ZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oc2l6ZV90IHJlc29sdmVkT3Bwb3NpdGVQ
b3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3NpdGlvbiwgY29uc3QgVmVjdG9yPHNpemVf
dD4mIGdyaWRMaW5lcykgY29uc3QKLXsKLSAgICBzaXplX3QgZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0
ZVBvc2l0aW9uSW5kZXggPSBncmlkTGluZXMuc2l6ZSgpIC0gMTsKLSAgICBjb25zdCBzaXplX3Qq
IGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbiA9IHN0ZDo6dXBwZXJfYm91bmQoZ3JpZExp
bmVzLmJlZ2luKCksIGdyaWRMaW5lcy5lbmQoKSwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsK
LSAgICBpZiAoZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uICE9IGdyaWRMaW5lcy5lbmQo
KSkKLSAgICAgICAgZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uSW5kZXggPSBmaXJzdExp
bmVBZnRlck9wcG9zaXRlUG9zaXRpb24gLSBncmlkTGluZXMuYmVnaW4oKTsKLQotICAgIHNpemVf
dCBncmlkTGluZUluZGV4ID0gc3RkOjptaW4oZ3JpZExpbmVzLnNpemUoKSAtIDEsIGZpcnN0TGlu
ZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbkluZGV4ICsgcG9zaXRpb24uc3BhblBvc2l0aW9uKCkgLSAx
KTsKLSAgICBzaXplX3QgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gR3JpZFBvc2l0aW9uOjph
ZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKGdyaWRMaW5lc1tncmlkTGlu
ZUluZGV4XSk7Ci0gICAgaWYgKHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbiA8IHJlc29sdmVkT3Bw
b3NpdGVQb3NpdGlvbikKLSAgICAgICAgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gcmVzb2x2
ZWRPcHBvc2l0ZVBvc2l0aW9uOwotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFu
PihyZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkR3JpZExpbmVQb3NpdGlvbik7Ci19
Ci0KIExheW91dFVuaXQgUmVuZGVyR3JpZDo6Z3JpZEFyZWFCcmVhZHRoRm9yQ2hpbGQoY29uc3Qg
UmVuZGVyQm94KiBjaGlsZCwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29u
c3QgVmVjdG9yPEdyaWRUcmFjaz4mIHRyYWNrcykgY29uc3QKIHsKICAgICBjb25zdCBHcmlkQ29v
cmRpbmF0ZSYgY29vcmRpbmF0ZSA9IGNhY2hlZEdyaWRDb29yZGluYXRlKGNoaWxkKTsKICAgICBj
b25zdCBHcmlkU3BhbiYgc3BhbiA9IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBjb29yZGlu
YXRlLmNvbHVtbnMgOiBjb29yZGluYXRlLnJvd3M7CiAgICAgTGF5b3V0VW5pdCBncmlkQXJlYUJy
ZWFkdGggPSAwOwotICAgIGZvciAoc2l6ZV90IHRyYWNrSW5kZXggPSBzcGFuLmluaXRpYWxQb3Np
dGlvbkluZGV4OyB0cmFja0luZGV4IDw9IHNwYW4uZmluYWxQb3NpdGlvbkluZGV4OyArK3RyYWNr
SW5kZXgpCi0gICAgICAgIGdyaWRBcmVhQnJlYWR0aCArPSB0cmFja3NbdHJhY2tJbmRleF0ubV91
c2VkQnJlYWR0aDsKKyAgICBmb3IgKEdyaWRSZXNvbHZlZFBvc2l0aW9uIHRyYWNrUG9zaXRpb24g
PSBzcGFuLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uOyB0cmFja1Bvc2l0aW9uIDw9IHNwYW4ucmVz
b2x2ZWRGaW5hbFBvc2l0aW9uOyArK3RyYWNrUG9zaXRpb24pCisgICAgICAgIGdyaWRBcmVhQnJl
YWR0aCArPSB0cmFja3NbdHJhY2tQb3NpdGlvbi50b0ludCgpXS5tX3VzZWRCcmVhZHRoOwogICAg
IHJldHVybiBncmlkQXJlYUJyZWFkdGg7CiB9CiAKQEAgLTExMjUsMTEgKzg1OCwxMSBAQCB2b2lk
IFJlbmRlckdyaWQ6OnBvcHVsYXRlR3JpZFBvc2l0aW9ucyhjb25zdCBHcmlkU2l6aW5nRGF0YSYg
c2l6aW5nRGF0YSkKIExheW91dFBvaW50IFJlbmRlckdyaWQ6OmZpbmRDaGlsZExvZ2ljYWxQb3Np
dGlvbihSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBHcmlkU2l6aW5nRGF0YSYgc2l6aW5nRGF0YSkK
IHsKICAgICBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0ZSA9IGNhY2hlZEdyaWRDb29y
ZGluYXRlKGNoaWxkKTsKLSAgICBBU1NFUlRfVU5VU0VEKHNpemluZ0RhdGEsIGNvb3JkaW5hdGUu
Y29sdW1ucy5pbml0aWFsUG9zaXRpb25JbmRleCA8IHNpemluZ0RhdGEuY29sdW1uVHJhY2tzLnNp
emUoKSk7Ci0gICAgQVNTRVJUX1VOVVNFRChzaXppbmdEYXRhLCBjb29yZGluYXRlLnJvd3MuaW5p
dGlhbFBvc2l0aW9uSW5kZXggPCBzaXppbmdEYXRhLnJvd1RyYWNrcy5zaXplKCkpOworICAgIEFT
U0VSVF9VTlVTRUQoc2l6aW5nRGF0YSwgY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkSW5pdGlh
bFBvc2l0aW9uLnRvSW50KCkgPCBzaXppbmdEYXRhLmNvbHVtblRyYWNrcy5zaXplKCkpOworICAg
IEFTU0VSVF9VTlVTRUQoc2l6aW5nRGF0YSwgY29vcmRpbmF0ZS5yb3dzLnJlc29sdmVkSW5pdGlh
bFBvc2l0aW9uLnRvSW50KCkgPCBzaXppbmdEYXRhLnJvd1RyYWNrcy5zaXplKCkpOwogCiAgICAg
Ly8gVGhlIGdyaWQgaXRlbXMgc2hvdWxkIGJlIGluc2lkZSB0aGUgZ3JpZCBjb250YWluZXIncyBi
b3JkZXIgYm94LCB0aGF0J3Mgd2h5IHRoZXkgbmVlZCB0byBiZSBzaGlmdGVkLgotICAgIHJldHVy
biBMYXlvdXRQb2ludChtX2NvbHVtblBvc2l0aW9uc1tjb29yZGluYXRlLmNvbHVtbnMuaW5pdGlh
bFBvc2l0aW9uSW5kZXhdICsgbWFyZ2luU3RhcnRGb3JDaGlsZCgqY2hpbGQpLCBtX3Jvd1Bvc2l0
aW9uc1tjb29yZGluYXRlLnJvd3MuaW5pdGlhbFBvc2l0aW9uSW5kZXhdICsgbWFyZ2luQmVmb3Jl
Rm9yQ2hpbGQoKmNoaWxkKSk7CisgICAgcmV0dXJuIExheW91dFBvaW50KG1fY29sdW1uUG9zaXRp
b25zW2Nvb3JkaW5hdGUuY29sdW1ucy5yZXNvbHZlZEluaXRpYWxQb3NpdGlvbi50b0ludCgpXSAr
IG1hcmdpblN0YXJ0Rm9yQ2hpbGQoKmNoaWxkKSwgbV9yb3dQb3NpdGlvbnNbY29vcmRpbmF0ZS5y
b3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uLnRvSW50KCldICsgbWFyZ2luQmVmb3JlRm9yQ2hp
bGQoKmNoaWxkKSk7CiB9CiAKIHZvaWQgUmVuZGVyR3JpZDo6cGFpbnRDaGlsZHJlbihQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBQYWludEluZm8m
IGZvckNoaWxkLCBib29sIHVzZVByaW50UmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5oCmluZGV4IDgxODRlY2ZiNzQyNjJhNTRiMThlZDdhNjE4Mzg2MTY1MDQwMmJlNDcuLjNi
M2I2ZWI0MTM5NTYxNTgzMmI0ZDE2M2VhYThhNDA2MjkyMmY2YzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuaApAQCAtMjksNiArMjksNyBAQAogCiAjaWYgRU5BQkxFKENTU19H
UklEX0xBWU9VVCkKIAorI2luY2x1ZGUgIkdyaWRSZXNvbHZlZFBvc2l0aW9uLmgiCiAjaW5jbHVk
ZSAiT3JkZXJJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAKQEAgLTM4LDEx
ICszOSw2IEBAIGNsYXNzIEdyaWRDb29yZGluYXRlOwogY2xhc3MgR3JpZFNwYW47CiBjbGFzcyBH
cmlkVHJhY2s7CiAKLWVudW0gR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIHsKLSAgICBGb3JDb2x1
bW5zLAotICAgIEZvclJvd3MKLX07Ci0KIGNsYXNzIFJlbmRlckdyaWQgZmluYWwgOiBwdWJsaWMg
UmVuZGVyQmxvY2sgewogcHVibGljOgogICAgIFJlbmRlckdyaWQoRWxlbWVudCYsIFBhc3NSZWY8
UmVuZGVyU3R5bGU+KTsKQEAgLTY2LDcgKzYyLDYgQEAgcHJpdmF0ZToKIAogICAgIGNsYXNzIEdy
aWRJdGVyYXRvcjsKICAgICBjbGFzcyBHcmlkU2l6aW5nRGF0YTsKLSAgICBlbnVtIEdyaWRUcmFj
a1NpemluZ0RpcmVjdGlvbiB7IEZvckNvbHVtbnMsIEZvclJvd3MgfTsKICAgICB2b2lkIGNvbXB1
dGVVc2VkQnJlYWR0aE9mR3JpZFRyYWNrcyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIEdyaWRT
aXppbmdEYXRhJik7CiAgICAgdm9pZCBjb21wdXRlVXNlZEJyZWFkdGhPZkdyaWRUcmFja3MoR3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBHcmlkU2l6aW5nRGF0YSYsIExheW91dFVuaXQmIGF2YWls
YWJsZUxvZ2ljYWxTcGFjZSk7CiAgICAgYm9vbCBncmlkRWxlbWVudElzU2hyaW5rVG9GaXQoKTsK
QEAgLTc2LDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlc29sdmVDb250ZW50QmFzZWRU
cmFja1NpemluZ0Z1bmN0aW9ucyhHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIEdyaWRTaXppbmdE
YXRhJik7CiAKICAgICB2b2lkIGdyb3dHcmlkKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbik7Ci0g
ICAgdm9pZCBpbnNlcnRJdGVtSW50b0dyaWQoUmVuZGVyQm94Kiwgc2l6ZV90IHJvd1RyYWNrLCBz
aXplX3QgY29sdW1uVHJhY2spOworICAgIHZvaWQgaW5zZXJ0SXRlbUludG9HcmlkKFJlbmRlckJv
eCosIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByb3dUcmFjaywgY29uc3QgR3JpZFJlc29s
dmVkUG9zaXRpb24mIGNvbHVtblRyYWNrKTsKICAgICB2b2lkIGluc2VydEl0ZW1JbnRvR3JpZChS
ZW5kZXJCb3gqLCBjb25zdCBHcmlkQ29vcmRpbmF0ZSYpOwogICAgIHZvaWQgcGxhY2VJdGVtc09u
R3JpZCgpOwogICAgIHZvaWQgcG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKCk7
CkBAIC0xMDAsOSArOTUsNiBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBjb21wdXRlTm9ybWFsaXpl
ZEZyYWN0aW9uQnJlYWR0aChWZWN0b3I8R3JpZFRyYWNrPiYsIGNvbnN0IEdyaWRTcGFuJiB0cmFj
a3NTcGFuLCBHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIExheW91dFVuaXQgYXZhaWxhYmxlTG9n
aWNhbFNwYWNlKSBjb25zdDsKIAogICAgIGNvbnN0IEdyaWRUcmFja1NpemUmIGdyaWRUcmFja1Np
emUoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBzaXplX3QpIGNvbnN0OwotICAgIHNpemVfdCBl
eHBsaWNpdEdyaWRDb2x1bW5Db3VudCgpIGNvbnN0OwotICAgIHNpemVfdCBleHBsaWNpdEdyaWRS
b3dDb3VudCgpIGNvbnN0OwotICAgIHNpemVfdCBleHBsaWNpdEdyaWRTaXplRm9yU2lkZShHcmlk
UG9zaXRpb25TaWRlKSBjb25zdDsKIAogICAgIExheW91dFVuaXQgbG9naWNhbENvbnRlbnRIZWln
aHRGb3JDaGlsZChSZW5kZXJCb3gqLCBWZWN0b3I8R3JpZFRyYWNrPiYpOwogICAgIExheW91dFVu
aXQgbWluQ29udGVudEZvckNoaWxkKFJlbmRlckJveCosIEdyaWRUcmFja1NpemluZ0RpcmVjdGlv
biwgVmVjdG9yPEdyaWRUcmFjaz4mIGNvbHVtblRyYWNrcyk7CkBAIC0xMTAsMTcgKzEwMiw2IEBA
IHByaXZhdGU6CiAgICAgTGF5b3V0UG9pbnQgZmluZENoaWxkTG9naWNhbFBvc2l0aW9uKFJlbmRl
ckJveCosIGNvbnN0IEdyaWRTaXppbmdEYXRhJik7CiAgICAgR3JpZENvb3JkaW5hdGUgY2FjaGVk
R3JpZENvb3JkaW5hdGUoY29uc3QgUmVuZGVyQm94KikgY29uc3Q7CiAKLSAgICBHcmlkU3BhbiBy
ZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24oY29uc3QgUmVuZGVy
Qm94KiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBzaXplX3QpIGNvbnN0OwotICAgIHZvaWQg
YWRqdXN0TmFtZWRHcmlkSXRlbVBvc2l0aW9uKEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNp
ZGUpIGNvbnN0OwotICAgIHZvaWQgYWRqdXN0R3JpZFBvc2l0aW9uc0Zyb21TdHlsZShHcmlkUG9z
aXRpb24mIGluaXRpYWxQb3NpdGlvbiwgR3JpZFBvc2l0aW9uJiBmaW5hbFBvc2l0aW9uLCBHcmlk
UG9zaXRpb25TaWRlIGluaXRpYWxQb3NpdGlvblNpZGUsIEdyaWRQb3NpdGlvblNpZGUgZmluYWxQ
b3NpdGlvblNpZGUpIGNvbnN0OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcmVzb2x2
ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoY29uc3QgUmVuZGVyQm94KiwgR3JpZFRyYWNrU2l6aW5n
RGlyZWN0aW9uKSBjb25zdDsKLSAgICBzaXplX3QgcmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlv
bkZyb21TdHlsZShjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKSBjb25zdDsK
LSAgICBzaXplX3QgcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHlsZShjb25zdCBHcmlkUG9zaXRp
b24mLCBHcmlkUG9zaXRpb25TaWRlKSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNw
YW4+IHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihzaXplX3QgcmVz
b2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25T
aWRlKSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVOYW1lZEdy
aWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihzaXplX3QgcmVzb2x2ZWRPcHBv
c2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKSBjb25z
dDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVSb3dTdGFydENvbHVtblN0
YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24oc2l6ZV90IHJl
c29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgY29uc3QgVmVjdG9y
PHNpemVfdD4mKSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVS
b3dFbmRDb2x1bW5FbmROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlv
bihzaXplX3QgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mLCBj
b25zdCBWZWN0b3I8c2l6ZV90PiYpIGNvbnN0OwotCiAgICAgTGF5b3V0VW5pdCBncmlkQXJlYUJy
ZWFkdGhGb3JDaGlsZChjb25zdCBSZW5kZXJCb3gqIGNoaWxkLCBHcmlkVHJhY2tTaXppbmdEaXJl
Y3Rpb24sIGNvbnN0IFZlY3RvcjxHcmlkVHJhY2s+JikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZv
aWQgcGFpbnRDaGlsZHJlbihQYWludEluZm8mIGZvclNlbGYsIGNvbnN0IExheW91dFBvaW50JiBw
YWludE9mZnNldCwgUGFpbnRJbmZvJiBmb3JDaGlsZCwgYm9vbCB1c2VQcmludFJlY3QpIG92ZXJy
aWRlIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dy
aWRDb29yZGluYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZENvb3Jk
aW5hdGUuaAppbmRleCA0NGQyMDBiY2RkNWExZmE4ZWFiMzJmMjk2Yjg3OGQ5M2IwNGNmMjcyLi45
MDhmMzY3MmI2OTUzNDY2NTVhZDlmOWRkYzJmM2M5ZjI4NGJlNjczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZENvb3JkaW5hdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZENvb3JkaW5hdGUuaApAQCAtMzQsMzAgKzM0LDMx
IEBACiAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogCisjaW5jbHVkZSAiR3JpZFJlc29s
dmVkUG9zaXRpb24uaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEEgc3BhbiBpbiBh
IHNpbmdsZSBkaXJlY3Rpb24gKGVpdGhlciByb3dzIG9yIGNvbHVtbnMpLiBOb3RlIHRoYXQgfGlu
aXRpYWxQb3NpdGlvbkluZGV4fAotLy8gYW5kIHxmaW5hbFBvc2l0aW9uSW5kZXh8IGFyZSBncmlk
IGFyZWFzJyBpbmRleGVzLCBOT1QgZ3JpZCBsaW5lcycuIEl0ZXJhdGluZyBvdmVyIHRoZQotLy8g
c3BhbiBzaG91bGQgaW5jbHVkZSBib3RoIHxpbml0aWFsUG9zaXRpb25JbmRleHwgYW5kIHxmaW5h
bFBvc2l0aW9uSW5kZXh8IHRvIGJlIGNvcnJlY3QuCisvLyBBIHNwYW4gaW4gYSBzaW5nbGUgZGly
ZWN0aW9uIChlaXRoZXIgcm93cyBvciBjb2x1bW5zKS4gTm90ZSB0aGF0IHxyZXNvbHZlZEluaXRp
YWxQb3NpdGlvbnwKKy8vIGFuZCB8cmVzb2x2ZWRGaW5hbFBvc2l0aW9ufCBhcmUgZ3JpZCBhcmVh
cycgaW5kZXhlcywgTk9UIGdyaWQgbGluZXMnLiBJdGVyYXRpbmcgb3ZlciB0aGUKKy8vIHNwYW4g
c2hvdWxkIGluY2x1ZGUgYm90aCB8cmVzb2x2ZWRJbml0aWFsUG9zaXRpb258IGFuZCB8cmVzb2x2
ZWRGaW5hbFBvc2l0aW9ufCB0byBiZSBjb3JyZWN0LgogY2xhc3MgR3JpZFNwYW4gewogcHVibGlj
OgotICAgIEdyaWRTcGFuKHNpemVfdCBpbml0aWFsUG9zaXRpb24sIHNpemVfdCBmaW5hbFBvc2l0
aW9uKQotICAgICAgICA6IGluaXRpYWxQb3NpdGlvbkluZGV4KGluaXRpYWxQb3NpdGlvbikKLSAg
ICAgICAgLCBmaW5hbFBvc2l0aW9uSW5kZXgoZmluYWxQb3NpdGlvbikKKyAgICBHcmlkU3Bhbihj
b25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRJbml0aWFsUG9zaXRpb24sIGNvbnN0
IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZEZpbmFsUG9zaXRpb24pCisgICAgICAgIDog
cmVzb2x2ZWRJbml0aWFsUG9zaXRpb24ocmVzb2x2ZWRJbml0aWFsUG9zaXRpb24pCisgICAgICAg
ICwgcmVzb2x2ZWRGaW5hbFBvc2l0aW9uKHJlc29sdmVkRmluYWxQb3NpdGlvbikKICAgICB7Ci0g
ICAgICAgIEFTU0VSVChpbml0aWFsUG9zaXRpb25JbmRleCA8PSBmaW5hbFBvc2l0aW9uSW5kZXgp
OworICAgICAgICBBU1NFUlQocmVzb2x2ZWRJbml0aWFsUG9zaXRpb24gPD0gcmVzb2x2ZWRGaW5h
bFBvc2l0aW9uKTsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgR3JpZFNwYW4m
IG8pIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gaW5pdGlhbFBvc2l0aW9uSW5kZXggPT0g
by5pbml0aWFsUG9zaXRpb25JbmRleCAmJiBmaW5hbFBvc2l0aW9uSW5kZXggPT0gby5maW5hbFBv
c2l0aW9uSW5kZXg7CisgICAgICAgIHJldHVybiByZXNvbHZlZEluaXRpYWxQb3NpdGlvbiA9PSBv
LnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uICYmIHJlc29sdmVkRmluYWxQb3NpdGlvbiA9PSBvLnJl
c29sdmVkRmluYWxQb3NpdGlvbjsKICAgICB9CiAKLSAgICBzaXplX3QgaW5pdGlhbFBvc2l0aW9u
SW5kZXg7Ci0gICAgc2l6ZV90IGZpbmFsUG9zaXRpb25JbmRleDsKKyAgICBHcmlkUmVzb2x2ZWRQ
b3NpdGlvbiByZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsKKyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlv
biByZXNvbHZlZEZpbmFsUG9zaXRpb247CiB9OwogCiAvLyBUaGlzIHJlcHJlc2VudHMgYSBncmlk
IGFyZWEgdGhhdCBzcGFucyBpbiBib3RoIHJvd3MnIGFuZCBjb2x1bW5zJyBkaXJlY3Rpb24uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFBvc2l0aW9uLmgKaW5kZXggNjhm
MmYzOTFjYzVkYTA3M2RkMTY3MDk4YzA4YzVhOWY4NmE0OGZkNC4uNWEwYWY5ZWU0NzYwYjRjYzQ5
NDMyMTRjYWRjYmZkOTU2YTVlYmNmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0dyaWRQb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9HcmlkUG9zaXRpb24uaApAQCAtNDUsMTMgKzQ1LDYgQEAgZW51bSBHcmlkUG9zaXRpb25U
eXBlIHsKICAgICBOYW1lZEdyaWRBcmVhUG9zaXRpb24gLy8gPGlkZW50PgogfTsKIAotZW51bSBH
cmlkUG9zaXRpb25TaWRlIHsKLSAgICBDb2x1bW5TdGFydFNpZGUsCi0gICAgQ29sdW1uRW5kU2lk
ZSwKLSAgICBSb3dTdGFydFNpZGUsCi0gICAgUm93RW5kU2lkZQotfTsKLQogY2xhc3MgR3JpZFBv
c2l0aW9uIHsKIHB1YmxpYzoKICAgICBHcmlkUG9zaXRpb24oKQpAQCAtNjAsMjAgKzUzLDYgQEAg
cHVibGljOgogICAgIHsKICAgICB9CiAKLSAgICBzdGF0aWMgaW5saW5lIHNpemVfdCBhZGp1c3RH
cmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKHNpemVfdCByZXNvbHZlZFBvc2l0aW9u
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJlc29sdmVkUG9zaXRpb24gPyByZXNvbHZlZFBvc2l0
aW9uIC0gMSA6IDA7Ci0gICAgfQotCi0gICAgc3RhdGljIHNpemVfdCBhZGp1c3RHcmlkUG9zaXRp
b25Gb3JTaWRlKHNpemVfdCByZXNvbHZlZFBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUp
Ci0gICAgewotICAgICAgICAvLyBBbiBpdGVtIGZpbmlzaGluZyBvbiB0aGUgTi10aCBsaW5lIGJl
bG9uZ3MgdG8gdGhlIE4tMS10aCBjZWxsLgotICAgICAgICBpZiAoc2lkZSA9PSBDb2x1bW5FbmRT
aWRlIHx8IHNpZGUgPT0gUm93RW5kU2lkZSkKLSAgICAgICAgICAgIHJldHVybiBhZGp1c3RHcmlk
UG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRTaWRlKHJlc29sdmVkUG9zaXRpb24pOwotCi0gICAg
ICAgIHJldHVybiByZXNvbHZlZFBvc2l0aW9uOwotICAgIH0KLQogICAgIGJvb2wgaXNQb3NpdGl2
ZSgpIGNvbnN0IHsgcmV0dXJuIGludGVnZXJQb3NpdGlvbigpID4gMDsgfQogCiAgICAgR3JpZFBv
c2l0aW9uVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvR3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBvc2l0aW9uLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ZmIzNmNiZDdkYTI1OTU3YzI2OGExYzdjNTg2MjkxNTMyYTlkNzU1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZl
ZFBvc2l0aW9uLmNwcApAQCAtMCwwICsxLDMwMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHcmlkUmVzb2x2ZWRQb3Np
dGlvbi5oIgorCisjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKKworI2luY2x1ZGUgIkdyaWRD
b29yZGluYXRlLmgiCisjaW5jbHVkZSAiUmVuZGVyQm94LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworc3RhdGljIGlubGluZSBib29sIGlzQ29sdW1uU2lkZShHcmlkUG9zaXRpb25TaWRlIHNp
ZGUpCit7CisgICAgcmV0dXJuIHNpZGUgPT0gQ29sdW1uU3RhcnRTaWRlIHx8IHNpZGUgPT0gQ29s
dW1uRW5kU2lkZTsKK30KKworc3RhdGljIGlubGluZSBib29sIGlzU3RhcnRTaWRlKEdyaWRQb3Np
dGlvblNpZGUgc2lkZSkKK3sKKyAgICByZXR1cm4gc2lkZSA9PSBDb2x1bW5TdGFydFNpZGUgfHwg
c2lkZSA9PSBSb3dTdGFydFNpZGU7Cit9CisKK3N0YXRpYyBzaXplX3QgZXhwbGljaXRHcmlkU2l6
ZUZvclNpZGUoY29uc3QgUmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgR3JpZFBvc2l0
aW9uU2lkZSBzaWRlKQoreworICAgIHJldHVybiBpc0NvbHVtblNpZGUoc2lkZSkgPyBncmlkQ29u
dGFpbmVyU3R5bGUuZ3JpZENvbHVtbnMoKS5zaXplKCkgOiBncmlkQ29udGFpbmVyU3R5bGUuZ3Jp
ZFJvd3MoKS5zaXplKCk7Cit9CisKK0dyaWRTcGFuIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNv
bHZlR3JpZFBvc2l0aW9uc0Zyb21BdXRvUGxhY2VtZW50UG9zaXRpb24oY29uc3QgUmVuZGVyQm94
JiwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYg
aW5pdGlhbFBvc2l0aW9uKQoreworICAgIC8vIEZJWE1FOiBXZSBkb24ndCBzdXBwb3J0IHNwYW5u
aW5nIHdpdGggYXV0byBwb3NpdGlvbnMgeWV0LiBPbmNlIHdlIGRvLCB0aGlzIGlzIHdyb25nLiBB
bHNvIHdlIHNob3VsZCBtYWtlCisgICAgLy8gc3VyZSB0aGUgZ3JpZCBjYW4gYWNjb21vZGF0ZSB0
aGUgbmV3IGl0ZW0gYXMgd2Ugb25seSBncm93IDEgcG9zaXRpb24gaW4gYSBnaXZlbiBkaXJlY3Rp
b24uCisgICAgcmV0dXJuIEdyaWRTcGFuKGluaXRpYWxQb3NpdGlvbiwgaW5pdGlhbFBvc2l0aW9u
KTsKK30KKworc3RhdGljIGlubGluZSBjb25zdCBOYW1lZEdyaWRMaW5lc01hcCYgZ3JpZExpbmVz
Rm9yU2lkZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkK
K3sKKyAgICByZXR1cm4gaXNDb2x1bW5TaWRlKHNpZGUpID8gc3R5bGUubmFtZWRHcmlkQ29sdW1u
TGluZXMoKSA6IHN0eWxlLm5hbWVkR3JpZFJvd0xpbmVzKCk7Cit9CisKK3N0YXRpYyBpbmxpbmUg
Y29uc3QgU3RyaW5nIGltcGxpY2l0TmFtZWRHcmlkTGluZUZvclNpZGUoY29uc3QgU3RyaW5nJiBs
aW5lTmFtZSwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQoreworICAgIHJldHVybiBsaW5lTmFtZSAr
IChpc1N0YXJ0U2lkZShzaWRlKSA/ICItc3RhcnQiIDogIi1lbmQiKTsKK30KKworc3RhdGljIGJv
b2wgaXNOb25FeGlzdGVudE5hbWVkTGluZU9yQXJlYShjb25zdCBTdHJpbmcmIGxpbmVOYW1lLCBj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sKKyAgICBj
b25zdCBOYW1lZEdyaWRMaW5lc01hcCYgZ3JpZExpbmVOYW1lcyA9IGdyaWRMaW5lc0ZvclNpZGUo
c3R5bGUsIHNpZGUpOworICAgIHJldHVybiAhZ3JpZExpbmVOYW1lcy5jb250YWlucyhpbXBsaWNp
dE5hbWVkR3JpZExpbmVGb3JTaWRlKGxpbmVOYW1lLCBzaWRlKSkgJiYgIWdyaWRMaW5lTmFtZXMu
Y29udGFpbnMobGluZU5hbWUpOworfQorCit2b2lkIEdyaWRSZXNvbHZlZFBvc2l0aW9uOjphZGp1
c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVy
U3R5bGUsIEdyaWRQb3NpdGlvbiYgaW5pdGlhbFBvc2l0aW9uLCBHcmlkUG9zaXRpb24mIGZpbmFs
UG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgaW5pdGlhbFBvc2l0aW9uU2lkZSwgR3JpZFBvc2l0
aW9uU2lkZSBmaW5hbFBvc2l0aW9uU2lkZSkKK3sKKyAgICBBU1NFUlQoaXNDb2x1bW5TaWRlKGlu
aXRpYWxQb3NpdGlvblNpZGUpID09IGlzQ29sdW1uU2lkZShmaW5hbFBvc2l0aW9uU2lkZSkpOwor
CisgICAgLy8gV2UgbXVzdCBoYW5kbGUgdGhlIHBsYWNlbWVudCBlcnJvciBoYW5kbGluZyBjb2Rl
IGhlcmUgaW5zdGVhZCBvZiBpbiB0aGUgU3R5bGVBZGp1c3RlciBiZWNhdXNlIHdlIGRvbid0IHdh
bnQgdG8KKyAgICAvLyBvdmVyd3JpdGUgdGhlIHNwZWNpZmllZCB2YWx1ZXMuCisgICAgaWYgKGlu
aXRpYWxQb3NpdGlvbi5pc1NwYW4oKSAmJiBmaW5hbFBvc2l0aW9uLmlzU3BhbigpKQorICAgICAg
ICBmaW5hbFBvc2l0aW9uLnNldEF1dG9Qb3NpdGlvbigpOworCisgICAgLy8gVHJ5IHRvIGVhcmx5
IGRldGVjdCB0aGUgY2FzZSBvZiBub24gZXhpc3RpbmcgbmFtZWQgZ3JpZCBsaW5lcy4gVGhpcyB3
YXkgd2UgY291bGQgYXNzdW1lIGxhdGVyIHRoYXQKKyAgICAvLyBHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6cmVzb2x2ZUdyaXNQb3NpdGlvbkZyb21TdHlsZSgpIHdvbid0IHJlcXVpcmUgdGhlIGF1dG9w
bGFjZW1lbnQgdG8gcnVuLCBpLmUuLCBpdCdsbCBhbHdheXMgcmV0dXJuIGEKKyAgICAvLyB2YWxp
ZCByZXNvbHZlZCBwb3NpdGlvbi4KKyAgICBpZiAoaW5pdGlhbFBvc2l0aW9uLmlzTmFtZWRHcmlk
QXJlYSgpICYmIGlzTm9uRXhpc3RlbnROYW1lZExpbmVPckFyZWEoaW5pdGlhbFBvc2l0aW9uLm5h
bWVkR3JpZExpbmUoKSwgZ3JpZENvbnRhaW5lclN0eWxlLCBpbml0aWFsUG9zaXRpb25TaWRlKSkK
KyAgICAgICAgaW5pdGlhbFBvc2l0aW9uLnNldEF1dG9Qb3NpdGlvbigpOworCisgICAgaWYgKGZp
bmFsUG9zaXRpb24uaXNOYW1lZEdyaWRBcmVhKCkgJiYgaXNOb25FeGlzdGVudE5hbWVkTGluZU9y
QXJlYShmaW5hbFBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKSwgZ3JpZENvbnRhaW5lclN0eWxlLCBm
aW5hbFBvc2l0aW9uU2lkZSkpCisgICAgICAgIGZpbmFsUG9zaXRpb24uc2V0QXV0b1Bvc2l0aW9u
KCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gR3JpZFJlc29sdmVkUG9zaXRpb246
OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29u
dGFpbmVyU3R5bGUsIGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0sIEdyaWRUcmFja1NpemluZ0Rp
cmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgR3JpZFBvc2l0aW9uIGluaXRpYWxQb3NpdGlvbiA9
IChkaXJlY3Rpb24gPT0gRm9yQ29sdW1ucykgPyBncmlkSXRlbS5zdHlsZSgpLmdyaWRJdGVtQ29s
dW1uU3RhcnQoKSA6IGdyaWRJdGVtLnN0eWxlKCkuZ3JpZEl0ZW1Sb3dTdGFydCgpOworICAgIGNv
bnN0IEdyaWRQb3NpdGlvblNpZGUgaW5pdGlhbFBvc2l0aW9uU2lkZSA9IChkaXJlY3Rpb24gPT0g
Rm9yQ29sdW1ucykgPyBDb2x1bW5TdGFydFNpZGUgOiBSb3dTdGFydFNpZGU7CisgICAgR3JpZFBv
c2l0aW9uIGZpbmFsUG9zaXRpb24gPSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gZ3JpZEl0
ZW0uc3R5bGUoKS5ncmlkSXRlbUNvbHVtbkVuZCgpIDogZ3JpZEl0ZW0uc3R5bGUoKS5ncmlkSXRl
bVJvd0VuZCgpOworICAgIGNvbnN0IEdyaWRQb3NpdGlvblNpZGUgZmluYWxQb3NpdGlvblNpZGUg
PSAoZGlyZWN0aW9uID09IEZvckNvbHVtbnMpID8gQ29sdW1uRW5kU2lkZSA6IFJvd0VuZFNpZGU7
CisKKyAgICBhZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHlsZSwg
aW5pdGlhbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uLCBpbml0aWFsUG9zaXRpb25TaWRlLCBmaW5h
bFBvc2l0aW9uU2lkZSk7CisKKyAgICBpZiAoaW5pdGlhbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2
ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigpICYmIGZpbmFsUG9zaXRpb24uc2hvdWxkQmVSZXNv
bHZlZEFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKCkpIHsKKyAgICAgICAgaWYgKGdyaWRDb250YWlu
ZXJTdHlsZS5ncmlkQXV0b0Zsb3coKSA9PSBBdXRvRmxvd05vbmUpCisgICAgICAgICAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxHcmlkU3Bhbj4oMCwgMCk7CisKKyAgICAgICAgLy8gV2UgY2Fu
J3QgZ2V0IG91ciBncmlkIHBvc2l0aW9ucyB3aXRob3V0IHJ1bm5pbmcgdGhlIGF1dG8gcGxhY2Vt
ZW50IGFsZ29yaXRobS4KKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgaWYg
KGluaXRpYWxQb3NpdGlvbi5zaG91bGRCZVJlc29sdmVkQWdhaW5zdE9wcG9zaXRlUG9zaXRpb24o
KSkgeworICAgICAgICAvLyBJbmZlciB0aGUgcG9zaXRpb24gZnJvbSB0aGUgZmluYWwgcG9zaXRp
b24gKCdhdXRvIC8gMScgb3IgJ3NwYW4gMiAvIDMnIGNhc2UpLgorICAgICAgICBjb25zdCBHcmlk
UmVzb2x2ZWRQb3NpdGlvbiBmaW5hbFJlc29sdmVkUG9zaXRpb24gPSByZXNvbHZlR3JpZFBvc2l0
aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHlsZSwgZmluYWxQb3NpdGlvbiwgZmluYWxQb3Np
dGlvblNpZGUpOworICAgICAgICByZXR1cm4gcmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBv
c2l0ZVBvc2l0aW9uKGdyaWRDb250YWluZXJTdHlsZSwgZmluYWxSZXNvbHZlZFBvc2l0aW9uLCBp
bml0aWFsUG9zaXRpb24sIGluaXRpYWxQb3NpdGlvblNpZGUpOworICAgIH0KKworICAgIGlmIChm
aW5hbFBvc2l0aW9uLnNob3VsZEJlUmVzb2x2ZWRBZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbigpKSB7
CisgICAgICAgIC8vIEluZmVyIG91ciBwb3NpdGlvbiBmcm9tIHRoZSBpbml0aWFsIHBvc2l0aW9u
ICgnMSAvIGF1dG8nIG9yICczIC8gc3BhbiAyJyBjYXNlKS4KKyAgICAgICAgY29uc3QgR3JpZFJl
c29sdmVkUG9zaXRpb24gaW5pdGlhbFJlc29sdmVkUG9zaXRpb24gPSByZXNvbHZlR3JpZFBvc2l0
aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHlsZSwgaW5pdGlhbFBvc2l0aW9uLCBpbml0aWFs
UG9zaXRpb25TaWRlKTsKKyAgICAgICAgcmV0dXJuIHJlc29sdmVHcmlkUG9zaXRpb25BZ2FpbnN0
T3Bwb3NpdGVQb3NpdGlvbihncmlkQ29udGFpbmVyU3R5bGUsIGluaXRpYWxSZXNvbHZlZFBvc2l0
aW9uLCBmaW5hbFBvc2l0aW9uLCBmaW5hbFBvc2l0aW9uU2lkZSk7CisgICAgfQorCisgICAgR3Jp
ZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZWRJbml0aWFsUG9zaXRpb24gPSByZXNvbHZlR3JpZFBv
c2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHlsZSwgaW5pdGlhbFBvc2l0aW9uLCBpbml0
aWFsUG9zaXRpb25TaWRlKTsKKyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlvbiByZXNvbHZlZEZpbmFs
UG9zaXRpb24gPSByZXNvbHZlR3JpZFBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWluZXJTdHls
ZSwgZmluYWxQb3NpdGlvbiwgZmluYWxQb3NpdGlvblNpZGUpOworCisgICAgLy8gSWYgJ2dyaWQt
cm93LWVuZCcgc3BlY2lmaWVzIGEgbGluZSBhdCBvciBiZWZvcmUgdGhhdCBzcGVjaWZpZWQgYnkg
J2dyaWQtcm93LXN0YXJ0JywgaXQgY29tcHV0ZXMgdG8gJ3NwYW4gMScuCisgICAgaWYgKHJlc29s
dmVkRmluYWxQb3NpdGlvbiA8IHJlc29sdmVkSW5pdGlhbFBvc2l0aW9uKQorICAgICAgICByZXNv
bHZlZEZpbmFsUG9zaXRpb24gPSByZXNvbHZlZEluaXRpYWxQb3NpdGlvbjsKKworICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZlZEluaXRpYWxQb3NpdGlvbiwgcmVz
b2x2ZWRGaW5hbFBvc2l0aW9uKTsKK30KKworR3JpZFJlc29sdmVkUG9zaXRpb24gR3JpZFJlc29s
dmVkUG9zaXRpb246OnJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUoY29uc3Qg
UmVuZGVyU3R5bGUmIGdyaWRDb250YWluZXJTdHlsZSwgY29uc3QgR3JpZFBvc2l0aW9uJiBwb3Np
dGlvbiwgR3JpZFBvc2l0aW9uU2lkZSBzaWRlKQoreworICAgIEFTU0VSVCghcG9zaXRpb24ubmFt
ZWRHcmlkTGluZSgpLmlzTnVsbCgpKTsKKworICAgIGNvbnN0IE5hbWVkR3JpZExpbmVzTWFwJiBn
cmlkTGluZXNOYW1lcyA9IGlzQ29sdW1uU2lkZShzaWRlKSA/IGdyaWRDb250YWluZXJTdHlsZS5u
YW1lZEdyaWRDb2x1bW5MaW5lcygpIDogZ3JpZENvbnRhaW5lclN0eWxlLm5hbWVkR3JpZFJvd0xp
bmVzKCk7CisgICAgTmFtZWRHcmlkTGluZXNNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gZ3JpZExp
bmVzTmFtZXMuZmluZChwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkpOworICAgIGlmIChpdCA9PSBn
cmlkTGluZXNOYW1lcy5lbmQoKSkgeworICAgICAgICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgp
KQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGNvbnN0IHNpemVfdCBsYXN0TGluZSA9
IGV4cGxpY2l0R3JpZFNpemVGb3JTaWRlKGdyaWRDb250YWluZXJTdHlsZSwgc2lkZSk7CisgICAg
ICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lk
ZShsYXN0TGluZSwgc2lkZSk7CisgICAgfQorCisgICAgc2l6ZV90IG5hbWVkR3JpZExpbmVJbmRl
eDsKKyAgICBpZiAocG9zaXRpb24uaXNQb3NpdGl2ZSgpKQorICAgICAgICBuYW1lZEdyaWRMaW5l
SW5kZXggPSBzdGQ6Om1pbjxzaXplX3Q+KHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpLCBpdC0+
dmFsdWUuc2l6ZSgpKSAtIDE7CisgICAgZWxzZQorICAgICAgICBuYW1lZEdyaWRMaW5lSW5kZXgg
PSBzdGQ6Om1heDxpbnQ+KGl0LT52YWx1ZS5zaXplKCkgLSBhYnMocG9zaXRpb24uaW50ZWdlclBv
c2l0aW9uKCkpLCAwKTsKKyAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdy
aWRQb3NpdGlvbkZvclNpZGUoaXQtPnZhbHVlW25hbWVkR3JpZExpbmVJbmRleF0sIHNpZGUpOwor
fQorCitHcmlkUmVzb2x2ZWRQb3NpdGlvbiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdy
aWRQb3NpdGlvbkZyb21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYgZ3JpZENvbnRhaW5lclN0eWxl
LCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCit7
CisgICAgc3dpdGNoIChwb3NpdGlvbi50eXBlKCkpIHsKKyAgICBjYXNlIEV4cGxpY2l0UG9zaXRp
b246IHsKKyAgICAgICAgQVNTRVJUKHBvc2l0aW9uLmludGVnZXJQb3NpdGlvbigpKTsKKworICAg
ICAgICBpZiAoIXBvc2l0aW9uLm5hbWVkR3JpZExpbmUoKS5pc051bGwoKSkKKyAgICAgICAgICAg
IHJldHVybiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uRnJvbVN0eWxlKGdyaWRDb250YWlu
ZXJTdHlsZSwgcG9zaXRpb24sIHNpZGUpOworCisgICAgICAgIC8vIEhhbmRsZSA8aW50ZWdlcj4g
ZXhwbGljaXQgcG9zaXRpb24uCisgICAgICAgIGlmIChwb3NpdGlvbi5pc1Bvc2l0aXZlKCkpCisg
ICAgICAgICAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlv
bkZvclNpZGUocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkgLSAxLCBzaWRlKTsKKworICAgICAg
ICBzaXplX3QgcmVzb2x2ZWRQb3NpdGlvbiA9IGFicyhwb3NpdGlvbi5pbnRlZ2VyUG9zaXRpb24o
KSkgLSAxOworICAgICAgICBjb25zdCBzaXplX3QgZW5kT2ZUcmFjayA9IGV4cGxpY2l0R3JpZFNp
emVGb3JTaWRlKGdyaWRDb250YWluZXJTdHlsZSwgc2lkZSk7CisKKyAgICAgICAgLy8gUGVyIGh0
dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1zdHlsZS8yMDEzTWFyLzA1ODku
aHRtbCwgd2UgY2xhbXAgbmVnYXRpdmUgdmFsdWUgdG8gdGhlIGZpcnN0IGxpbmUuCisgICAgICAg
IGlmIChlbmRPZlRyYWNrIDwgcmVzb2x2ZWRQb3NpdGlvbikKKyAgICAgICAgICAgIHJldHVybiAw
OworCisgICAgICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0
aW9uRm9yU2lkZShlbmRPZlRyYWNrIC0gcmVzb2x2ZWRQb3NpdGlvbiwgc2lkZSk7CisgICAgfQor
ICAgIGNhc2UgTmFtZWRHcmlkQXJlYVBvc2l0aW9uOgorICAgIHsKKyAgICAgICAgLy8gRmlyc3Qg
YXR0ZW1wdCB0byBtYXRjaCB0aGUgZ3JpZCBhcmVhJ3MgZWRnZSB0byBhIG5hbWVkIGdyaWQgYXJl
YTogaWYgdGhlcmUgaXMgYSBuYW1lZCBsaW5lIHdpdGggdGhlIG5hbWUKKyAgICAgICAgLy8gJyc8
Y3VzdG9tLWlkZW50Pi1zdGFydCAoZm9yIGdyaWQtKi1zdGFydCkgLyA8Y3VzdG9tLWlkZW50Pi1l
bmQnJyAoZm9yIGdyaWQtKi1lbmQpLCBjb250cmlidXRlcyB0aGUgZmlyc3Qgc3VjaAorICAgICAg
ICAvLyBsaW5lIHRvIHRoZSBncmlkIGl0ZW0ncyBwbGFjZW1lbnQuCisgICAgICAgIFN0cmluZyBu
YW1lZEdyaWRMaW5lID0gcG9zaXRpb24ubmFtZWRHcmlkTGluZSgpOworICAgICAgICBBU1NFUlQo
IWlzTm9uRXhpc3RlbnROYW1lZExpbmVPckFyZWEobmFtZWRHcmlkTGluZSwgZ3JpZENvbnRhaW5l
clN0eWxlLCBzaWRlKSk7CisKKyAgICAgICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIGdyaWRM
aW5lTmFtZXMgPSBncmlkTGluZXNGb3JTaWRlKGdyaWRDb250YWluZXJTdHlsZSwgc2lkZSk7Cisg
ICAgICAgIGF1dG8gaW1wbGljaXRMaW5lID0gZ3JpZExpbmVOYW1lcy5maW5kKGltcGxpY2l0TmFt
ZWRHcmlkTGluZUZvclNpZGUobmFtZWRHcmlkTGluZSwgc2lkZSkpOworICAgICAgICBpZiAoaW1w
bGljaXRMaW5lICE9IGdyaWRMaW5lTmFtZXMuZW5kKCkpCisgICAgICAgICAgICByZXR1cm4gR3Jp
ZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdyaWRQb3NpdGlvbkZvclNpZGUoaW1wbGljaXRMaW5l
LT52YWx1ZVswXSwgc2lkZSk7CisKKyAgICAgICAgLy8gT3RoZXJ3aXNlLCBpZiB0aGVyZSBpcyBh
IG5hbWVkIGxpbmUgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUsIGNvbnRyaWJ1dGVzIHRoZSBmaXJz
dCBzdWNoIGxpbmUgdG8gdGhlIGdyaWQKKyAgICAgICAgLy8gaXRlbSdzIHBsYWNlbWVudC4KKyAg
ICAgICAgYXV0byBleHBsaWNpdExpbmUgPSBncmlkTGluZU5hbWVzLmZpbmQobmFtZWRHcmlkTGlu
ZSk7CisgICAgICAgIGlmIChleHBsaWNpdExpbmUgIT0gZ3JpZExpbmVOYW1lcy5lbmQoKSkKKyAg
ICAgICAgICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6YWRqdXN0R3JpZFBvc2l0aW9u
Rm9yU2lkZShleHBsaWNpdExpbmUtPnZhbHVlWzBdLCBzaWRlKTsKKworICAgICAgICAvLyBJZiBu
b25lIG9mIHRoZSBhYm92ZSB3b3JrcyBzcGVjcyBtYW5kYXRlIHVzIHRvIHRyZWF0IGl0IGFzIGF1
dG8gQlVUIHdlIHNob3VsZCBoYXZlIGRldGVjdGVkIGl0IGJlZm9yZSBjYWxsaW5nCisgICAgICAg
IC8vIHRoaXMgZnVuY3Rpb24gaW4gcmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoKS4gV2Ug
c2hvdWxkIGJlIGNvdmVyZWQgYW55d2F5IGJ5IHRoZSBBU1NFUlQgYXQgdGhlIGJlZ2lubmluZwor
ICAgICAgICAvLyBvZiB0aGlzIGNhc2UgYmxvY2suCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAgY2FzZSBBdXRvUG9zaXRpb246Cisg
ICAgY2FzZSBTcGFuUG9zaXRpb246CisgICAgICAgIC8vICdhdXRvJyBhbmQgc3BhbiBkZXBlbmQg
b24gdGhlIG9wcG9zaXRlIHBvc2l0aW9uIGZvciByZXNvbHV0aW9uIChlLmcuIGdyaWQtcm93OiBh
dXRvIC8gMSBvciBncmlkLWNvbHVtbjogc3BhbiAzIC8gIm15SGVhZGVyIikuCisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gR3JpZFJlc29sdmVkUG9zaXRpb24o
MCk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBHcmlkUmVz
b2x2ZWRQb3NpdGlvbigwKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBHcmlkUmVz
b2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9u
KGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5bGUsIGNvbnN0IEdyaWRSZXNvbHZl
ZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3NpdGlvbiYg
cG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sKKyAgICBpZiAocG9zaXRpb24uaXNB
dXRvKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihyZXNvbHZl
ZE9wcG9zaXRlUG9zaXRpb24sIHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7CisKKyAgICBBU1NF
UlQocG9zaXRpb24uaXNTcGFuKCkpOworICAgIEFTU0VSVChwb3NpdGlvbi5zcGFuUG9zaXRpb24o
KSA+IDApOworCisgICAgaWYgKCFwb3NpdGlvbi5uYW1lZEdyaWRMaW5lKCkuaXNOdWxsKCkpIHsK
KyAgICAgICAgLy8gc3BhbiAyICdjJyAtPiB3ZSBuZWVkIHRvIGZpbmQgdGhlIGFwcHJvcHJpYXRl
IGdyaWQgbGluZSBiZWZvcmUgLyBhZnRlciBvdXIgb3Bwb3NpdGUgcG9zaXRpb24uCisgICAgICAg
IHJldHVybiByZXNvbHZlTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRp
b24oZ3JpZENvbnRhaW5lclN0eWxlLCByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIHBvc2l0aW9u
LCBzaWRlKTsKKyAgICB9CisKKyAgICAvLyAnc3BhbiAxJyBpcyBjb250YWluZWQgaW5zaWRlIGEg
c2luZ2xlIGdyaWQgdHJhY2sgcmVnYXJkbGVzcyBvZiB0aGUgZGlyZWN0aW9uLgorICAgIC8vIFRo
YXQncyB3aHkgdGhlIENTUyBzcGFuIHZhbHVlIGlzIG9uZSBtb3JlIHRoYW4gdGhlIG9mZnNldCB3
ZSBhcHBseS4KKyAgICBzaXplX3QgcG9zaXRpb25PZmZzZXQgPSBwb3NpdGlvbi5zcGFuUG9zaXRp
b24oKSAtIDE7CisgICAgaWYgKGlzU3RhcnRTaWRlKHNpZGUpKSB7CisgICAgICAgIHNpemVfdCBp
bml0aWFsUmVzb2x2ZWRQb3NpdGlvbiA9IHN0ZDo6bWF4PGludD4oMCwgcmVzb2x2ZWRPcHBvc2l0
ZVBvc2l0aW9uLnRvSW50KCkgLSBwb3NpdGlvbk9mZnNldCk7CisgICAgICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPEdyaWRTcGFuPihpbml0aWFsUmVzb2x2ZWRQb3NpdGlvbiwgcmVzb2x2ZWRP
cHBvc2l0ZVBvc2l0aW9uKTsKKyAgICB9CisKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxH
cmlkU3Bhbj4ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCByZXNvbHZlZE9wcG9zaXRlUG9zaXRp
b24udG9JbnQoKSArIHBvc2l0aW9uT2Zmc2V0KTsKK30KKworc3RkOjp1bmlxdWVfcHRyPEdyaWRT
cGFuPiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZU5hbWVkR3JpZExpbmVQb3NpdGlvbkFn
YWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJlbmRlclN0eWxlJiBncmlkQ29udGFpbmVyU3R5
bGUsIGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24s
IGNvbnN0IEdyaWRQb3NpdGlvbiYgcG9zaXRpb24sIEdyaWRQb3NpdGlvblNpZGUgc2lkZSkKK3sK
KyAgICBBU1NFUlQocG9zaXRpb24uaXNTcGFuKCkpOworICAgIEFTU0VSVCghcG9zaXRpb24ubmFt
ZWRHcmlkTGluZSgpLmlzTnVsbCgpKTsKKyAgICAvLyBOZWdhdGl2ZSBwb3NpdGlvbnMgYXJlIG5v
dCBhbGxvd2VkIHBlciB0aGUgc3BlY2lmaWNhdGlvbiBhbmQgc2hvdWxkIGhhdmUgYmVlbiBoYW5k
bGVkIGR1cmluZyBwYXJzaW5nLgorICAgIEFTU0VSVChwb3NpdGlvbi5zcGFuUG9zaXRpb24oKSA+
IDApOworCisgICAgY29uc3QgTmFtZWRHcmlkTGluZXNNYXAmIGdyaWRMaW5lc05hbWVzID0gaXND
b2x1bW5TaWRlKHNpZGUpID8gZ3JpZENvbnRhaW5lclN0eWxlLm5hbWVkR3JpZENvbHVtbkxpbmVz
KCkgOiBncmlkQ29udGFpbmVyU3R5bGUubmFtZWRHcmlkUm93TGluZXMoKTsKKyAgICBOYW1lZEdy
aWRMaW5lc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBncmlkTGluZXNOYW1lcy5maW5kKHBvc2l0
aW9uLm5hbWVkR3JpZExpbmUoKSk7CisKKyAgICAvLyBJZiB0aGVyZSBpcyBubyBuYW1lZCBncmlk
IGxpbmUgb2YgdGhhdCBuYW1lLCB3ZSByZXNvbHZlIHRoZSBwb3NpdGlvbiB0byAnYXV0bycgKHdo
aWNoIGlzIGVxdWl2YWxlbnQgdG8gJ3NwYW4gMScgaW4gdGhpcyBjYXNlKS4KKyAgICAvLyBTZWUg
aHR0cDovL2xpc3RzLnczLm9yZy9BcmNoaXZlcy9QdWJsaWMvd3d3LXN0eWxlLzIwMTNKdW4vMDM5
NC5odG1sLgorICAgIGlmIChpdCA9PSBncmlkTGluZXNOYW1lcy5lbmQoKSkKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbiwg
cmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKKworICAgIGlmIChzaWRlID09IFJvd1N0YXJ0U2lk
ZSB8fCBzaWRlID09IENvbHVtblN0YXJ0U2lkZSkKKyAgICAgICAgcmV0dXJuIHJlc29sdmVSb3dT
dGFydENvbHVtblN0YXJ0TmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9wcG9zaXRlUG9zaXRp
b24ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBwb3NpdGlvbiwgaXQtPnZhbHVlKTsKKworICAg
IHJldHVybiByZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5z
dE9wcG9zaXRlUG9zaXRpb24ocmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uLCBwb3NpdGlvbiwgaXQt
PnZhbHVlKTsKK30KKworc3RhdGljIGlubGluZSBzaXplX3QgZmlyc3ROYW1lZEdyaWRMaW5lQmVm
b3JlUG9zaXRpb24oc2l6ZV90IHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYgZ3JpZExp
bmVzKQoreworICAgIC8vIFRoZSBncmlkIGxpbmUgaW5lcXVhbGl0eSBuZWVkcyB0byBiZSBzdHJp
Y3QgKHdoaWNoIGRvZXNuJ3QgbWF0Y2ggdGhlIGFmdGVyIC8gZW5kIGNhc2UpIGJlY2F1c2UgfHBv
c2l0aW9ufCBpcworICAgIC8vIGFscmVhZHkgY29udmVydGVkIHRvIGFuIGluZGV4IGluIG91ciBn
cmlkIHJlcHJlc2VudGF0aW9uIChpZSBvbmUgd2FzIHJlbW92ZWQgZnJvbSB0aGUgZ3JpZCBsaW5l
IHRvIGFjY291bnQgZm9yCisgICAgLy8gdGhlIHNpZGUpLgorICAgIHNpemVfdCBmaXJzdExpbmVC
ZWZvcmVQb3NpdGlvbkluZGV4ID0gMDsKKyAgICBjb25zdCBzaXplX3QqIGZpcnN0TGluZUJlZm9y
ZVBvc2l0aW9uID0gc3RkOjpsb3dlcl9ib3VuZChncmlkTGluZXMuYmVnaW4oKSwgZ3JpZExpbmVz
LmVuZCgpLCBwb3NpdGlvbik7CisgICAgaWYgKGZpcnN0TGluZUJlZm9yZVBvc2l0aW9uICE9IGdy
aWRMaW5lcy5lbmQoKSkgeworICAgICAgICBpZiAoKmZpcnN0TGluZUJlZm9yZVBvc2l0aW9uID4g
cG9zaXRpb24gJiYgZmlyc3RMaW5lQmVmb3JlUG9zaXRpb24gIT0gZ3JpZExpbmVzLmJlZ2luKCkp
CisgICAgICAgICAgICAtLWZpcnN0TGluZUJlZm9yZVBvc2l0aW9uOworCisgICAgICAgIGZpcnN0
TGluZUJlZm9yZVBvc2l0aW9uSW5kZXggPSBmaXJzdExpbmVCZWZvcmVQb3NpdGlvbiAtIGdyaWRM
aW5lcy5iZWdpbigpOworICAgIH0KKyAgICByZXR1cm4gZmlyc3RMaW5lQmVmb3JlUG9zaXRpb25J
bmRleDsKK30KKworc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6cmVzb2x2ZVJvd1N0YXJ0Q29sdW1uU3RhcnROYW1lZEdyaWRMaW5lUG9zaXRpb25BZ2FpbnN0
T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgcmVzb2x2ZWRPcHBv
c2l0ZVBvc2l0aW9uLCBjb25zdCBHcmlkUG9zaXRpb24mIHBvc2l0aW9uLCBjb25zdCBWZWN0b3I8
c2l6ZV90PiYgZ3JpZExpbmVzKQoreworICAgIHNpemVfdCBncmlkTGluZUluZGV4ID0gc3RkOjpt
YXg8aW50PigwLCBmaXJzdE5hbWVkR3JpZExpbmVCZWZvcmVQb3NpdGlvbihyZXNvbHZlZE9wcG9z
aXRlUG9zaXRpb24udG9JbnQoKSwgZ3JpZExpbmVzKSAtIHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigp
ICsgMSk7CisgICAgR3JpZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9u
ID0gR3JpZFJlc29sdmVkUG9zaXRpb24oZ3JpZExpbmVzW2dyaWRMaW5lSW5kZXhdKTsKKyAgICBp
ZiAocmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID4gcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKQor
ICAgICAgICByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSByZXNvbHZlZE9wcG9zaXRlUG9zaXRp
b247CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29sdmVkR3JpZExp
bmVQb3NpdGlvbiwgcmVzb2x2ZWRPcHBvc2l0ZVBvc2l0aW9uKTsKK30KKworc3RkOjp1bmlxdWVf
cHRyPEdyaWRTcGFuPiBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZVJvd0VuZENvbHVtbkVu
ZE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IEdyaWRS
ZXNvbHZlZFBvc2l0aW9uJiByZXNvbHZlZE9wcG9zaXRlUG9zaXRpb24sIGNvbnN0IEdyaWRQb3Np
dGlvbiYgcG9zaXRpb24sIGNvbnN0IFZlY3RvcjxzaXplX3Q+JiBncmlkTGluZXMpCit7CisgICAg
c2l6ZV90IGZpcnN0TGluZUFmdGVyT3Bwb3NpdGVQb3NpdGlvbkluZGV4ID0gZ3JpZExpbmVzLnNp
emUoKSAtIDE7CisgICAgY29uc3Qgc2l6ZV90KiBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRp
b24gPSBzdGQ6OnVwcGVyX2JvdW5kKGdyaWRMaW5lcy5iZWdpbigpLCBncmlkTGluZXMuZW5kKCks
IHJlc29sdmVkT3Bwb3NpdGVQb3NpdGlvbik7CisgICAgaWYgKGZpcnN0TGluZUFmdGVyT3Bwb3Np
dGVQb3NpdGlvbiAhPSBncmlkTGluZXMuZW5kKCkpCisgICAgICAgIGZpcnN0TGluZUFmdGVyT3Bw
b3NpdGVQb3NpdGlvbkluZGV4ID0gZmlyc3RMaW5lQWZ0ZXJPcHBvc2l0ZVBvc2l0aW9uIC0gZ3Jp
ZExpbmVzLmJlZ2luKCk7CisKKyAgICBzaXplX3QgZ3JpZExpbmVJbmRleCA9IHN0ZDo6bWluKGdy
aWRMaW5lcy5zaXplKCkgLSAxLCBmaXJzdExpbmVBZnRlck9wcG9zaXRlUG9zaXRpb25JbmRleCAr
IHBvc2l0aW9uLnNwYW5Qb3NpdGlvbigpIC0gMSk7CisgICAgR3JpZFJlc29sdmVkUG9zaXRpb24g
cmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uID0gR3JpZFJlc29sdmVkUG9zaXRpb246OmFkanVzdEdy
aWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVuZFNpZGUoZ3JpZExpbmVzW2dyaWRMaW5lSW5kZXhd
KTsKKyAgICBpZiAocmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uIDwgcmVzb2x2ZWRPcHBvc2l0ZVBv
c2l0aW9uKQorICAgICAgICByZXNvbHZlZEdyaWRMaW5lUG9zaXRpb24gPSByZXNvbHZlZE9wcG9z
aXRlUG9zaXRpb247CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8R3JpZFNwYW4+KHJlc29s
dmVkT3Bwb3NpdGVQb3NpdGlvbiwgcmVzb2x2ZWRHcmlkTGluZVBvc2l0aW9uKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19HUklEX0xBWU9VVCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9HcmlkUmVzb2x2ZWRQ
b3NpdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0dyaWRSZXNvbHZlZFBv
c2l0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTAxNjc0MTZkZTEwYjA5ZDNjY2FlZjE2ZDE5NDNhMjRjMGQ5
YWRhYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9H
cmlkUmVzb2x2ZWRQb3NpdGlvbi5oCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBHcmlkUmVzb2x2ZWRQb3NpdGlvbl9oCisjZGVmaW5l
IEdyaWRSZXNvbHZlZFBvc2l0aW9uX2gKKworI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisK
KyNpbmNsdWRlICJHcmlkUG9zaXRpb24uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBHcmlkU3BhbjsKK2NsYXNzIFJlbmRlckJveDsKK2NsYXNzIFJlbmRlclN0eWxlOworCitlbnVt
IEdyaWRQb3NpdGlvblNpZGUgeworICAgIENvbHVtblN0YXJ0U2lkZSwKKyAgICBDb2x1bW5FbmRT
aWRlLAorICAgIFJvd1N0YXJ0U2lkZSwKKyAgICBSb3dFbmRTaWRlCit9OworCitlbnVtIEdyaWRU
cmFja1NpemluZ0RpcmVjdGlvbiB7CisgICAgRm9yQ29sdW1ucywKKyAgICBGb3JSb3dzCit9Owor
CisvLyBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYW4gaW5kZXggaW50byBvbmUgb2YgdGhlIGRpbWVu
c2lvbnMgb2YgdGhlIGdyaWQgYXJyYXkuCisvLyBXcmFwcyBhIHNpemVfdCBpbnRlZ2VyIGp1c3Qg
Zm9yIHRoZSBwdXJwb3NlIG9mIGtub3dpbmcgd2hhdCB3ZSBtYW5pcHVsYXRlIGluIHRoZSBncmlk
IGNvZGUuCitjbGFzcyBHcmlkUmVzb2x2ZWRQb3NpdGlvbiB7CitwdWJsaWM6CisgICAgc3RhdGlj
IEdyaWRSZXNvbHZlZFBvc2l0aW9uIGFkanVzdEdyaWRQb3NpdGlvbkZvclJvd0VuZENvbHVtbkVu
ZFNpZGUoc2l6ZV90IHJlc29sdmVkUG9zaXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gcmVz
b2x2ZWRQb3NpdGlvbiA/IEdyaWRSZXNvbHZlZFBvc2l0aW9uKHJlc29sdmVkUG9zaXRpb24gLSAx
KSA6IEdyaWRSZXNvbHZlZFBvc2l0aW9uKDApOworICAgIH0KKworICAgIHN0YXRpYyBHcmlkUmVz
b2x2ZWRQb3NpdGlvbiBhZGp1c3RHcmlkUG9zaXRpb25Gb3JTaWRlKHNpemVfdCByZXNvbHZlZFBv
c2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCisgICAgeworICAgICAgICAvLyBBbiBpdGVt
IGZpbmlzaGluZyBvbiB0aGUgTi10aCBsaW5lIGJlbG9uZ3MgdG8gdGhlIE4tMS10aCBjZWxsLgor
ICAgICAgICBpZiAoc2lkZSA9PSBDb2x1bW5FbmRTaWRlIHx8IHNpZGUgPT0gUm93RW5kU2lkZSkK
KyAgICAgICAgICAgIHJldHVybiBhZGp1c3RHcmlkUG9zaXRpb25Gb3JSb3dFbmRDb2x1bW5FbmRT
aWRlKHJlc29sdmVkUG9zaXRpb24pOworCisgICAgICAgIHJldHVybiBHcmlkUmVzb2x2ZWRQb3Np
dGlvbihyZXNvbHZlZFBvc2l0aW9uKTsKKyAgICB9CisKKyAgICBzdGF0aWMgR3JpZFNwYW4gcmVz
b2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKGNvbnN0IFJlbmRlckJv
eCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24m
KTsKKyAgICBzdGF0aWMgdm9pZCBhZGp1c3ROYW1lZEdyaWRJdGVtUG9zaXRpb24oY29uc3QgUmVu
ZGVyU3R5bGUmLCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKTsKKyAgICBzdGF0aWMg
dm9pZCBhZGp1c3RHcmlkUG9zaXRpb25zRnJvbVN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJiwgR3Jp
ZFBvc2l0aW9uJiBpbml0aWFsUG9zaXRpb24sIEdyaWRQb3NpdGlvbiYgZmluYWxQb3NpdGlvbiwg
R3JpZFBvc2l0aW9uU2lkZSBpbml0aWFsUG9zaXRpb25TaWRlLCBHcmlkUG9zaXRpb25TaWRlIGZp
bmFsUG9zaXRpb25TaWRlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiBy
ZXNvbHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IFJl
bmRlckJveCYsIEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbik7CisgICAgc3RhdGljIEdyaWRSZXNv
bHZlZFBvc2l0aW9uIHJlc29sdmVOYW1lZEdyaWRMaW5lUG9zaXRpb25Gcm9tU3R5bGUoY29uc3Qg
UmVuZGVyU3R5bGUmLCBjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlkUG9zaXRpb25TaWRlKTsKKyAg
ICBzdGF0aWMgR3JpZFJlc29sdmVkUG9zaXRpb24gcmVzb2x2ZUdyaWRQb3NpdGlvbkZyb21TdHls
ZShjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEdyaWRQb3NpdGlvbiYsIEdyaWRQb3NpdGlvblNp
ZGUpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R3JpZFNwYW4+IHJlc29sdmVHcmlkUG9z
aXRpb25BZ2FpbnN0T3Bwb3NpdGVQb3NpdGlvbihjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IEdy
aWRSZXNvbHZlZFBvc2l0aW9uJiwgY29uc3QgR3JpZFBvc2l0aW9uJiwgR3JpZFBvc2l0aW9uU2lk
ZSk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHcmlkU3Bhbj4gcmVzb2x2ZU5hbWVkR3Jp
ZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBvc2l0aW9uKGNvbnN0IFJlbmRlclN0eWxlJiwg
Y29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mLCBjb25zdCBHcmlkUG9zaXRpb24mLCBHcmlkUG9z
aXRpb25TaWRlKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdyaWRTcGFuPiByZXNvbHZl
Um93U3RhcnRDb2x1bW5TdGFydE5hbWVkR3JpZExpbmVQb3NpdGlvbkFnYWluc3RPcHBvc2l0ZVBv
c2l0aW9uKGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiwgY29uc3QgR3JpZFBvc2l0aW9uJiwg
Y29uc3QgVmVjdG9yPHNpemVfdD4mKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdyaWRT
cGFuPiByZXNvbHZlUm93RW5kQ29sdW1uRW5kTmFtZWRHcmlkTGluZVBvc2l0aW9uQWdhaW5zdE9w
cG9zaXRlUG9zaXRpb24oY29uc3QgR3JpZFJlc29sdmVkUG9zaXRpb24mLCBjb25zdCBHcmlkUG9z
aXRpb24mLCBjb25zdCBWZWN0b3I8c2l6ZV90PiYpOworCisgICAgR3JpZFJlc29sdmVkUG9zaXRp
b24oc2l6ZV90IHBvc2l0aW9uKQorICAgICAgICA6IG1faW50ZWdlclBvc2l0aW9uKHBvc2l0aW9u
KQorICAgIHsKKyAgICB9CisKKyAgICBHcmlkUmVzb2x2ZWRQb3NpdGlvbihjb25zdCBHcmlkUG9z
aXRpb24mIHBvc2l0aW9uLCBHcmlkUG9zaXRpb25TaWRlIHNpZGUpCisgICAgeworICAgICAgICBB
U1NFUlQocG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkpOworICAgICAgICBzaXplX3QgaW50ZWdl
clBvc2l0aW9uID0gcG9zaXRpb24uaW50ZWdlclBvc2l0aW9uKCkgLSAxOworCisgICAgICAgIG1f
aW50ZWdlclBvc2l0aW9uID0gYWRqdXN0R3JpZFBvc2l0aW9uRm9yU2lkZShpbnRlZ2VyUG9zaXRp
b24sIHNpZGUpLm1faW50ZWdlclBvc2l0aW9uOworICAgIH0KKworICAgIEdyaWRSZXNvbHZlZFBv
c2l0aW9uJiBvcGVyYXRvcisrKCkKKyAgICB7CisgICAgICAgIG1faW50ZWdlclBvc2l0aW9uKys7
CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29u
c3QgR3JpZFJlc29sdmVkUG9zaXRpb24mIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIG1faW50ZWdlclBvc2l0aW9uID09IG90aGVyLm1faW50ZWdlclBvc2l0aW9uOworICAgIH0K
KworICAgIGJvb2wgb3BlcmF0b3I8KGNvbnN0IEdyaWRSZXNvbHZlZFBvc2l0aW9uJiBvdGhlcikg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ludGVnZXJQb3NpdGlvbiA8IG90aGVyLm1f
aW50ZWdlclBvc2l0aW9uOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0b3I+KGNvbnN0IEdyaWRS
ZXNvbHZlZFBvc2l0aW9uJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2lu
dGVnZXJQb3NpdGlvbiA+IG90aGVyLm1faW50ZWdlclBvc2l0aW9uOworICAgIH0KKworICAgIGJv
b2wgb3BlcmF0b3I8PShjb25zdCBHcmlkUmVzb2x2ZWRQb3NpdGlvbiYgb3RoZXIpIGNvbnN0Cisg
ICAgeworICAgICAgICByZXR1cm4gbV9pbnRlZ2VyUG9zaXRpb24gPD0gb3RoZXIubV9pbnRlZ2Vy
UG9zaXRpb247CisgICAgfQorCisgICAgYm9vbCBvcGVyYXRvcj49KGNvbnN0IEdyaWRSZXNvbHZl
ZFBvc2l0aW9uJiBvdGhlcikgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2ludGVnZXJQ
b3NpdGlvbiA+PSBvdGhlci5tX2ludGVnZXJQb3NpdGlvbjsKKyAgICB9CisKKyAgICBzaXplX3Qg
dG9JbnQoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1faW50ZWdlclBvc2l0aW9uOwor
ICAgIH0KKworICAgIEdyaWRSZXNvbHZlZFBvc2l0aW9uIG5leHQoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIEdyaWRSZXNvbHZlZFBvc2l0aW9uKG1faW50ZWdlclBvc2l0aW9uICsgMSk7
CisgICAgfQorCitwcml2YXRlOgorCisgICAgc2l6ZV90IG1faW50ZWdlclBvc2l0aW9uOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19HUklEX0xB
WU9VVCkKKworI2VuZGlmIC8vIEdyaWRSZXNvbHZlZFBvc2l0aW9uX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>