<?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>100766</bug_id>
          
          <creation_ts>2012-10-30 09:37:41 -0700</creation_ts>
          <short_desc>[CSS Exclusions] Refactor ExclusionShapeInsideInfo to more general ExclusionShapeInfo</short_desc>
          <delta_ts>2013-03-01 15:09:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>89256</blocked>
    
    <blocked>100398</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bem Jones-Bey">bjonesbe</reporter>
          <assigned_to name="Bear Travis">betravis</assigned_to>
          <cc>betravis</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>754446</commentid>
    <comment_count>0</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2012-10-30 09:37:41 -0700</bug_when>
    <thetext>Create a common superclass, and also there are fixes in ExclusionShapeOutsideInfo that may need to be copied to ExclusionShapeInsideInfo. See bug 100398 for a bit more info.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766048</commentid>
    <comment_count>1</comment_count>
      <attachid>173986</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-11-13 14:16:50 -0800</bug_when>
    <thetext>Created attachment 173986
Initial patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766056</commentid>
    <comment_count>2</comment_count>
      <attachid>173989</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-11-13 14:31:23 -0800</bug_when>
    <thetext>Created attachment 173989
Simplifying xcode project</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766318</commentid>
    <comment_count>3</comment_count>
      <attachid>173989</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2012-11-13 19:21:01 -0800</bug_when>
    <thetext>Comment on attachment 173989
Simplifying xcode project

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

&gt; Source/WebCore/rendering/ExclusionShapeInfo.cpp:55
&gt; +    return shape &amp;&amp; (shape-&gt;type() == BasicShape::BASIC_SHAPE_RECTANGLE || shape-&gt;type() == BasicShape::BASIC_SHAPE_POLYGON);

This check against the type() should be different for shapeInside and shapeOutside (for example, shapeOutside only supports rectangles at the moment).

&gt; Source/WebCore/rendering/ExclusionShapeInfo.cpp:98
&gt; +BasicShape* ExclusionShapeInfo&lt;RenderBox, CSSPropertyWebkitShapeOutside&gt;::basicShapeForRenderer(const RenderBox* renderer) { return renderer-&gt;style()-&gt;shapeOutside(); }

It seems to me like this would be a lot clearer if we did this with subclasses (ExclusionShapeInsideInfo, ExclusionShapeOutsideInfo) and overriding instead of overloading, but I guess that you&apos;re doing it this way for efficiency?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767333</commentid>
    <comment_count>4</comment_count>
      <attachid>174266</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-11-14 14:48:07 -0800</bug_when>
    <thetext>Created attachment 174266
Updating patch

Attempting to simplify out the static helper methods, and remove as many repetitions of the template setup as possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767343</commentid>
    <comment_count>5</comment_count>
      <attachid>174266</attachid>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2012-11-14 14:57:51 -0800</bug_when>
    <thetext>Comment on attachment 174266
Updating patch

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

&gt; Source/WebCore/rendering/ExclusionShapeInfo.h:57
&gt; +        return shape &amp;&amp; (shape-&gt;type() == BasicShape::BASIC_SHAPE_RECTANGLE || shape-&gt;type() == BasicShape::BASIC_SHAPE_POLYGON);

I&apos;m still concerned that this line needs to be different in the shapeInside and shapeOutside case. How are we going to handle that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767420</commentid>
    <comment_count>6</comment_count>
      <attachid>174280</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-11-14 16:11:55 -0800</bug_when>
    <thetext>Created attachment 174280
Factoring out code that does not require a template

Created ExclusionShapeInfoPartial class with code that does not need to be templatized. Also slightly altering the isInfoEnabledForRenderer method so that it can be specialized for ShapeOutside.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767494</commentid>
    <comment_count>7</comment_count>
      <attachid>174280</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 17:08:52 -0800</bug_when>
    <thetext>Comment on attachment 174280
Factoring out code that does not require a template

Attachment 174280 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14846165

New failing tests:
inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768298</commentid>
    <comment_count>8</comment_count>
      <attachid>174488</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-11-15 10:49:53 -0800</bug_when>
    <thetext>Created attachment 174488
Updating patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816051</commentid>
    <comment_count>9</comment_count>
      <attachid>184625</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-01-24 18:08:47 -0800</bug_when>
    <thetext>Created attachment 184625
Updating to current ExclusionShapeInside/OutsideInfo code

Now that ExclusionShapeOutsideInfo is also present, the patch needed to be updated. There is also the possibility of moving ExclusionShapeInsideInfo into RenderBlockRareData, so I have simplified the MappedInfo class for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816650</commentid>
    <comment_count>10</comment_count>
    <who name="Bem Jones-Bey">bjonesbe</who>
    <bug_when>2013-01-25 09:26:40 -0800</bug_when>
    <thetext>I like it. Just FYI, in my patch for Bug 106927, I have added a method  (shapeLogicalOffset) to ExclusiomShapeOutsideInfo. I don&apos;t think it makes sense for Shape Inside, so it&apos;ll probably stay in ExclusionShapeOutsideInfo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816773</commentid>
    <comment_count>11</comment_count>
      <attachid>184777</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-01-25 11:14:20 -0800</bug_when>
    <thetext>Created attachment 184777
Updating patch

Removing some extraneous diffs, and running by the bots again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816945</commentid>
    <comment_count>12</comment_count>
      <attachid>184777</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-01-25 15:10:07 -0800</bug_when>
    <thetext>Comment on attachment 184777
Updating patch

LGTM. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>816951</commentid>
    <comment_count>13</comment_count>
      <attachid>184777</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-25 15:22:56 -0800</bug_when>
    <thetext>Comment on attachment 184777
Updating patch

Rejecting attachment 184777 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-01&apos;, &apos;validate-changelog&apos;, &apos;--non-interactive&apos;, 184777, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

/mnt/git/webkit-commit-queue/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/16121573</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817060</commentid>
    <comment_count>14</comment_count>
      <attachid>184841</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-01-25 17:06:43 -0800</bug_when>
    <thetext>Created attachment 184841
Fixing changelog and some whitespace issues

Accidentally removed the blank reviewer line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817860</commentid>
    <comment_count>15</comment_count>
      <attachid>184841</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-28 10:38:01 -0800</bug_when>
    <thetext>Comment on attachment 184841
Fixing changelog and some whitespace issues

Clearing flags on attachment: 184841

Committed r140978: &lt;http://trac.webkit.org/changeset/140978&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817861</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-28 10:38:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845549</commentid>
    <comment_count>17</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-03-01 15:09:02 -0800</bug_when>
    <thetext>*** Bug 100976 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173986</attachid>
            <date>2012-11-13 14:16:50 -0800</date>
            <delta_ts>2012-11-13 14:31:21 -0800</delta_ts>
            <desc>Initial patch</desc>
            <filename>bug-100766-20121113141450.patch</filename>
            <type>text/plain</type>
            <size>46391</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDdjOWI1NTZlZjRlNTYw
ODAzMGEyMTY0ODdiMDFjNTI3MTI5ODgzYS4uYTI5Y2FmNmVlM2EyMmQ5ZGQ4NWJjNTdlNjJkMDI0
YzI4ZjE3MjBhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTExLTEzICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IFJlZmFjdG9yIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyB0byBtb3JlIGdlbmVyYWwgRXhjbHVz
aW9uU2hhcGVJbmZvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDA3NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZWZhY3RvcmluZyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gdG8gdGhlIG1vcmUgZ2Vu
ZXJhbCBFeGNsdXNpb25TaGFwZUluZm8sIHdoaWNoCisgICAgICAgIGNhbiBiZSB1c2VkIGJ5IGJv
dGggdGhlIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBhbmQgRXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mbyB0eXBlcy4KKyAgICAgICAgVGhpcyByZWZhY3RvcmluZyBvcHRzIGZvciBhIHRlbXBsYXRl
IGNsYXNzLCBhcyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gYXBwbGllcyB0bworICAgICAgICBS
ZW5kZXJCbG9jaywgd2hpbGUgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyBhcHBsaWVzIHRvIFJl
bmRlckJveC4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBjcmVhdGVzIHRoZSBN
YXBwZWRJbmZvIHR5cGUsIHRvIGdlbmVyYWxpemUgdGhlIHBhcmFkaWdtIG9mIGNyZWF0aW5nCisg
ICAgICAgIGFuIGluZm8gdHlwZSBwZXIga2V5IGFuZCBzdG9yaW5nIGl0IGluIGEgZ2xvYmFsIG1h
cC4KKworICAgICAgICBSZWZhY3RvcmluZywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBNYWtlZmlsZSByZW5hbWUgZnJvbSBFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8gdG8gRXhjbHVzaW9uU2hhcGVJbmZvLgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERpdHRvLgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5jcHA6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6OjpsaW5l
T3ZlcmxhcHNTaGFwZUJvdW5kcyk6IFVwZGF0aW5nIHRvIEV4Y2x1c2lvblNoYXBlSW5mbyBjbGFz
cyB0ZW1wbGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6Ojo6aXNJbmZvRW5hYmxlZEZvclJlbmRlcmVy
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjo6OmNvbXB1dGVTaGFwZVNpemUpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6Ojo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6OjpiYXNpY1NoYXBlRm9yUmVuZGVyZXIpOiBIZWxwZXIgbWV0aG9kIHRv
IHJldHJpZXZlIHRoZSBCYXNpY1NoYXBlIGZvciBhIFNoYXBlSW5mby4KKyAgICAgICAgKFdlYkNv
cmU6Ojo6c2VnbWVudHNGb3JFeGNsdXNpb25TaGFwZSk6IEhlbHBlciBtZXRob2QgdG8gcmV0cmll
dmUgdGhlIHNlZ21lbnRzIGZyb20gYW4gRXhjbHVzaW9uU2hhcGUuCisgICAgICAgICogcmVuZGVy
aW5nL0V4Y2x1c2lvblNoYXBlSW5mby5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvTWFwcGVkSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoTWFwcGVkSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjo6OmluZm9NYXApOiBS
ZXRyaWV2ZSB0aGUgc3RhdGljIG1hcCB1c2VkIHRvIHN0b3JlIGluZm9zLgorICAgICAgICAoV2Vi
Q29yZTo6OjplbnN1cmVJbmZvKTogUGxhY2UgYW4gaW5mbyBmb3IgdGhlIGdpdmVuIGtleSBpZiBv
bmUgZG9lcyBub3QgZXhpc3QuCisgICAgICAgIChXZWJDb3JlOjo6OnJlbW92ZUluZm8pOiBSZW1v
dmUgdGhlIGluZm8gZm9yIHRoZSBnaXZlbiBrZXkuCisgICAgICAgIChXZWJDb3JlOjo6OmluZm8p
OiBMb29rIHVwIHRoZSBpbmZvIGZvciB0aGUgZ2l2ZW4ga2V5LgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6d2lsbEJl
RGVzdHJveWVkKTogUmVmYWN0b3IgdG8gdXNlIHRoZSBuZXcgRXhjbHVzaW9uU2hhcGVJbmZvCisg
ICAgICAgIG1ldGhvZCBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRh
dGVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKTogRGl0dG8uCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpleGNsdXNpb25TaGFwZUluc2lkZUluZm8pOiBEaXR0
by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKwogMjAx
Mi0xMS0xMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTmV0
d29ya1Byb2Nlc3M6IFVzZSBhbiBhY2N1cmF0ZSBzaG91bGRDb250ZW50U25pZmYgdmFsdWUgd2hl
biBjcmVhdGluZyBSZXNvdXJjZUhhbmRsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDdjYWFl
NDVkMDNjOTZhZDcyMTg0YjJiNmZiMzBjZTZiMjk2N2NjZS4uYWQzZjJmNjRjYzZhYWVlMWExNjNm
Y2YzZTRjZGNhZDQ5NTNhZDM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIwNDcsNyArMjA0
Nyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdv
bi5jcHAKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcAogICAgIHJlbmRlcmlu
Zy9FeGNsdXNpb25TaGFwZS5jcHAKLSAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvLmNwcAorICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwCiAgICAgcmVuZGVy
aW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcAogICAgIHJlbmRlcmluZy9GaXhlZFRhYmxlTGF5
b3V0LmNwcAogICAgIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDkzMDBjY2M2M2YyMDY5YmVkOTM2NzcxYWU4Nzg1YjFh
NWVlYWFjYjguLmVlMmQ0Mjk5MzM2MTYzOGE0MDZmZjI0MDFhZjI3NjE1ZGY1NDcwNzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDk0Myw4ICs0OTQzLDggQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xl
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5oIFwKLQlTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCBcCi0JU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIFwKKwlTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmls
dGVyRWZmZWN0UmVuZGVyZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFi
bGVMYXlvdXQuY3BwIFwKQEAgLTQ5NjgsNiArNDk2OCw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmggXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xheW91dFJlcGFpbnRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NYXBw
ZWRJbmZvLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9PdmVybGFwVGVzdFJlcXVlc3RD
bGllbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhZ2luYXRpb24uaCBcCiAJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhaW50SW5mby5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGQ5Y2U2
Y2U0ZTFmNmI1M2M1MmQ1M2E0N2FmOTNjYTFlNDdiZmY0YzAuLjEyYTgxZjI4NWE5OWViYjU1MjE3
ODZlZDFhZWQ5ODM3MWMwNWFmNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTEyMCw3ICsxMTIwLDcgQEAg
U09VUkNFUyArPSBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwIFwKICAgICBy
ZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lv
blNoYXBlLmNwcCBcCi0gICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAg
XAorICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwIFwKICAgICByZW5kZXJpbmcv
RmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwIFwKICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91
dC5jcHAgXAogICAgIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAgXApAQCAtMjMz
MCw3ICsyMzMwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHln
b24uaCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5oIFwKICAgICByZW5kZXJp
bmcvRXhjbHVzaW9uU2hhcGUuaCBcCi0gICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mby5oIFwKKyAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmggXAogICAgIHJlbmRl
cmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oIFwKICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxh
eW91dC5oIFwKICAgICByZW5kZXJpbmcvSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmggXApAQCAt
MjM0MCw2ICsyMzQwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5nL0lubGluZVRleHRC
b3guaCBcCiAgICAgcmVuZGVyaW5nL0xheW91dFN0YXRlLmggXAogICAgIHJlbmRlcmluZy9MYXlv
dXRSZXBhaW50ZXIuaCBcCisgICAgcmVuZGVyaW5nL01hcHBlZEluZm8uaCBcCiAgICAgcmVuZGVy
aW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oIFwKICAgICByZW5kZXJpbmcvbWF0aG1sL1Jl
bmRlck1hdGhNTEZlbmNlZC5oIFwKICAgICByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZy
YWN0aW9uLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDJiYjBmYzcwZmJiYTIzMmE0MTMxMDdjZWFl
MThjYjU3ZGI2MTFhNmIuLmQ2N2RkNjE2YTEyNzFjMjM2M2JiZjg4YjNmZmViNzMxYWJjNGUzN2Eg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKQEAgLTMyODIsOCArMzI4Miw4IEBACiAgICAgICAgICAgICAncmVu
ZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvRXhj
bHVzaW9uU2hhcGUuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUu
aCcsCi0gICAgICAgICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAn
LAotICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCcsCisg
ICAgICAgICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5jcHAnLAorICAgICAgICAg
ICAgJ3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uaCcsCiAgICAgICAgICAgICAncmVuZGVy
aW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0Zp
bHRlckVmZmVjdFJlbmRlcmVyLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9GaXhlZFRhYmxl
TGF5b3V0LmNwcCcsCkBAIC0zMzAxLDYgKzMzMDEsNyBAQAogICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9JbmxpbmVUZXh0Qm94LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0xheW91dFN0YXRl
LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0xheW91dFJlcGFpbnRlci5jcHAnLAorICAg
ICAgICAgICAgJ3JlbmRlcmluZy9NYXBwZWRJbmZvLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9Qb2ludGVyRXZlbnRzSGl0UnVsZXMuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUG9p
bnRlckV2ZW50c0hpdFJ1bGVzLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJBcHBs
ZXQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
aW5kZXggMDc4OWY1ZmUwNWEzOWNhMDk0ZmQ2MTE2ZTdhZGZmZTc3MjJmYjhmMC4uYWQ2NzBkODE5
ZjJmZTcwY2E3ODg4OTE1NmI1NTFkMzM5ZDczMzM1NyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTM4NDQzLDExICszODQ0MywxMSBAQAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICA8
L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXEV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mby5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcRXhj
bHVzaW9uU2hhcGVJbmZvLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIgorCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXEV4Y2x1c2lvblNoYXBlSW5mby5oIgogCQkJCT4K
IAkJCTwvRmlsZT4KIAkJCTxGaWxlCkBAIC0zODk3NSw2ICszODk3NSwxMCBAQAogCQkJCT4KIAkJ
CTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcTWFwcGVk
SW5mby5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIu
LlxyZW5kZXJpbmdcUGFpbnRJbmZvLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU2YzdmYTJh
NDJmN2EwZWQ1MGFlNzY1Y2FlODdiYzA5OGJhNzhkYjEuLjE2MWU5MTBlNGE4MjdlZGNmMDdiMTI2
NjA0YWY0ZWE1NDVkOWViYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM0MzYsNyArMzQzNiw2IEBACiAJCTk3MTJBNUFFMTUw
MDRFREEwMDQ4QUYxMCAvKiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MTJBNTU1MTUwMDRFREEwMDQ4QUYx
MCAvKiBET01XaW5kb3dJbmRleGVkRGF0YWJhc2UuaCAqLzsgfTsKIAkJOTcxMkE1QjAxNTAwNEVE
QTAwNDhBRjEwIC8qIElEQkFueS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NzEyQTU1NzE1MDA0RURBMDA0OEFGMTAgLyogSURCQW55LmNwcCAqLzsg
fTsKIAkJOTcxMkE1QjExNTAwNEVEQTAwNDhBRjEwIC8qIElEQkFueS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1NTgxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQkFueS5oICovOyB9OwotCQk5NzEyQTVFNTE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFj
a2luZ1N0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3MTJBNThDMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJCYWNraW5nU3RvcmUuY3BwICovOyB9
OwogCQk5NzEyQTVCMzE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFja2luZ1N0b3JlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU1QTE1MDA0RURB
MDA0OEFGMTAgLyogSURCQmFja2luZ1N0b3JlLmggKi87IH07CiAJCTk3MTJBNUI0MTUwMDRFREEw
MDQ4QUYxMCAvKiBJREJDYWxsYmFja3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3MTJBNTVCMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJDYWxsYmFja3Mu
aCAqLzsgfTsKIAkJOTcxMkE1QjUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkN1cnNvci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU1QzE1MDA0
RURBMDA0OEFGMTAgLyogSURCQ3Vyc29yLmNwcCAqLzsgfTsKQEAgLTM0NzYsNiArMzQ3NSw3IEBA
CiAJCTk3MTJBNURGMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJLZXlQYXRoLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4NjE1MDA0RURBMDA0OEFG
MTAgLyogSURCS2V5UGF0aC5oICovOyB9OwogCQk5NzEyQTVFMjE1MDA0RURBMDA0OEFGMTAgLyog
SURCS2V5UmFuZ2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTcxMkE1ODkxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVJhbmdlLmNwcCAqLzsgfTsK
IAkJOTcxMkE1RTMxNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVJhbmdlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzEyQTU4QTE1MDA0RURBMDA0OEFG
MTAgLyogSURCS2V5UmFuZ2UuaCAqLzsgfTsKKwkJOTcxMkE1RTUxNTAwNEVEQTAwNDhBRjEwIC8q
IElEQkJhY2tpbmdTdG9yZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NzEyQTU4QzE1MDA0RURBMDA0OEFGMTAgLyogSURCQmFja2luZ1N0b3JlLmNw
cCAqLzsgfTsKIAkJOTcxMkE1RTcxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkxldmVsREJDb2Rpbmcu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1
OEUxNTAwNEVEQTAwNDhBRjEwIC8qIElEQkxldmVsREJDb2RpbmcuY3BwICovOyB9OwogCQk5NzEy
QTVFODE1MDA0RURBMDA0OEFGMTAgLyogSURCTGV2ZWxEQkNvZGluZy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcxMkE1OEYxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQkxldmVsREJDb2RpbmcuaCAqLzsgfTsKIAkJOTcxMkE1RTkxNTAwNEVEQTAwNDhBRjEw
IC8qIElEQk9iamVjdFN0b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk3MTJBNTkwMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZS5j
cHAgKi87IH07CkBAIC02NTAzLDYgKzY1MDMsNyBAQAogCQlGRDYyOUVBMzE1NEI0NzE2MDAwNkQw
MjYgLyogQXVkaW9CYXNpY0luc3BlY3Rvck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENjI5RUExMTU0QjQ3MTYwMDA2RDAyNiAvKiBBdWRpb0Jh
c2ljSW5zcGVjdG9yTm9kZS5oICovOyB9OwogCQlGRDYyOUVBNDE1NEI0NzE2MDAwNkQwMjYgLyog
QXVkaW9CYXNpY0luc3BlY3Rvck5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkQ2MjlFQTIxNTRCNDcxNjAwMDZEMDI2IC8qIEF1ZGlvQmFzaWNJ
bnNwZWN0b3JOb2RlLmNwcCAqLzsgfTsKIAkJRkQ2MkY1MkUxNDU4OThEODAwOTRCMEVEIC8qIEF1
ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZENjJGNTJEMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVBy
b3ZpZGVyQ2xpZW50LmggKi87IH07CisJCUZENjU0REY5MTY1MkVGM0MwMDgyNzBFQiAvKiBNYXBw
ZWRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RDY1NERGNzE2NTJFODIzMDA4MjcwRUIgLyogTWFwcGVkSW5mby5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZENjcxQTc3MTU5QkIwNzAwMDE5NzU1
OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDY3MUE3NDE1OUJCMDcwMDAxOTc1NTkgLyogTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwICovOyB9OwogCQlGRDY3MUE3ODE1OUJCMDcwMDAx
OTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENjcxQTc1MTU5QkIwNzAwMDE5NzU1OSAvKiBN
ZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oICovOyB9OwogCQlGRDZFRDJDMzEzNkI4RTQyMDAz
Q0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDZFRDJDMTEzNkI4RTQyMDAzQ0YwNzIgLyogRHlu
YW1pY3NDb21wcmVzc29yTm9kZS5jcHAgKi87IH07CkBAIC02NTExLDggKzY1MTIsOCBAQAogCQlG
RDZFRDJDODEzNkI4RTY2MDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDZFRDJDNjEzNkI4RTY2MDAz
Q0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yLmggKi87IH07CiAJCUZENkYyNTJDMTNGNUVGMEUw
MDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RjI1MjkxM0Y1RUYwRTAwNjUxNjVG
IC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAgKi87IH07CiAJCUZENkYyNTJEMTNG
NUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENkYyNTJBMTNGNUVGMEUwMDY1
MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCAqLzsgfTsKLQkJRkQ3NDhBQkYx
NUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDc0OEFCRDE1QkY3NEVEMDA1
OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCAqLzsgfTsKLQkJRkQ3NDhBQzAx
NUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ3NDhBQkUxNUJGNzRFRDAwNTlD
RjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUZENzQ4QUJGMTVCRjc0RUQwMDU5Q0YwRCAvKiBF
eGNsdXNpb25TaGFwZUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkQ3NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5m
by5jcHAgKi87IH07CisJCUZENzQ4QUMwMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFw
ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
NzQ4QUJFMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRDc4NjhCOTEzNkI5OTky
MDBENDAzREYgLyogSlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENzg2OEI3MTM2Qjk5OTIwMEQ0MDNERiAv
KiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwICovOyB9OwogCQlGRDc4NjhCQTEzNkI5OTky
MDBENDAzREYgLyogSlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDc4NjhCODEzNkI5OTkyMDBENDAzREYgLyog
SlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmggKi87IH07CiAJCUZEN0YyOTkxMTNENEMwQ0IwMEFE
OTUzNSAvKiBXYXZlU2hhcGVyRFNQS2VybmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEN0YyOThBMTNENEMwQ0IwMEFEOTUzNSAvKiBXYXZlU2hh
cGVyRFNQS2VybmVsLmNwcCAqLzsgfTsKQEAgLTEwNzA2LDcgKzEwNzA3LDYgQEAKIAkJOTcxMkE1
OEExNTAwNEVEQTAwNDhBRjEwIC8qIElEQktleVJhbmdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IElEQktleVJhbmdlLmg7IHBhdGggPSBNb2R1bGVzL2luZGV4ZWRkYi9JREJL
ZXlSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU4QjE1MDA0RURB
MDA0OEFGMTAgLyogSURCS2V5UmFuZ2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IElEQktl
eVJhbmdlLmlkbDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcxMkE1OEMxNTAwNEVEQTAwNDhBRjEwIC8qIElE
QkJhY2tpbmdTdG9yZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJ
REJCYWNraW5nU3RvcmUuY3BwOyBwYXRoID0gTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0
b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTcxMkE1OEQxNTAwNEVEQTAw
NDhBRjEwIC8qIElEQkJhY2tpbmdTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBJREJCYWNraW5nU3RvcmUuaDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tp
bmdTdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzEyQTU4RTE1MDA0RURB
MDA0OEFGMTAgLyogSURCTGV2ZWxEQkNvZGluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBJREJMZXZlbERCQ29kaW5nLmNwcDsgcGF0aCA9IE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkxldmVsREJDb2RpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NzEyQTU4RjE1MDA0RURBMDA0OEFGMTAgLyogSURCTGV2ZWxEQkNvZGluZy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBJREJMZXZlbERCQ29kaW5nLmg7IHBhdGggPSBNb2R1bGVz
L2luZGV4ZWRkYi9JREJMZXZlbERCQ29kaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk3MTJBNTkwMTUwMDRFREEwMDQ4QUYxMCAvKiBJREJPYmplY3RTdG9yZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBJREJPYmplY3RTdG9yZS5jcHA7IHBhdGgg
PSBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMzk4OSw2ICsxMzk4OSw3IEBACiAJCUZENjI5RUExMTU0QjQ3MTYwMDA2
RDAyNiAvKiBBdWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBdWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGRDYyOUVBMjE1NEI0NzE2MDAwNkQwMjYgLyogQXVkaW9CYXNpY0luc3BlY3Rv
ck5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXVkaW9CYXNp
Y0luc3BlY3Rvck5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRDYyRjUy
RDE0NTg5OEQ4MDA5NEIwRUQgLyogQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZENjU0REY3MTY1MkU4MjMwMDgyNzBFQiAvKiBN
YXBwZWRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1hcHBlZEluZm8u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ2NzFBNzQxNTlCQjA3MDAwMTk3NTU5
IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ2NzFBNzUxNTlCQjA3MDAwMTk3NTU5IC8qIE1lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2VOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
ZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUZENjcxQTc2MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQwMDAsOCArMTQwMDEsOCBAQAogCQlG
RDZGMjUyOTEzRjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhRWxlbWVudEF1ZGlv
U291cmNlTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZENkYyNTJBMTNG
NUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZENkYyNTJCMTNGNUVGMEUwMDY1MTY1RiAvKiBN
ZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1l
ZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUZENzQ4QUJEMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkQ3NDhBQkUxNUJG
NzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkQ3NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lv
blNoYXBlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGNs
dXNpb25TaGFwZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRDc0OEFC
RTE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbmZvLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2x1c2lvblNoYXBlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGRDc4NjhCNzEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5hbWljc0NvbXBy
ZXNzb3JOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRHlu
YW1pY3NDb21wcmVzc29yTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZE
Nzg2OEI4MTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZEN0YyOThBMTNENEMwQ0IwMEFEOTUzNSAv
KiBXYXZlU2hhcGVyRFNQS2VybmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdhdmVTaGFwZXJEU1BLZXJuZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjE0NTEsOCArMjE0NTIsOCBAQAogCQkJCTZFODc5OEI3MTVGODFFNEEwMEJGRTRBQSAv
KiBFeGNsdXNpb25SZWN0YW5nbGUuaCAqLywKIAkJCQk2RTg3OThCODE1RjgxRTRBMDBCRkU0QUEg
LyogRXhjbHVzaW9uU2hhcGUuY3BwICovLAogCQkJCTZFODc5OEI5MTVGODFFNEEwMEJGRTRBQSAv
KiBFeGNsdXNpb25TaGFwZS5oICovLAotCQkJCUZENzQ4QUJEMTVCRjc0RUQwMDU5Q0YwRCAvKiBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwICovLAotCQkJCUZENzQ4QUJFMTVCRjc0RUQwMDU5
Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCAqLywKKwkJCQlGRDc0OEFCRDE1QkY3
NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbmZvLmNwcCAqLywKKwkJCQlGRDc0OEFCRTE1
QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbmZvLmggKi8sCiAJCQkJMzEzMTNGNjMx
NDQzQjM1RTAwNkUyQTkwIC8qIEZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCAqLywKIAkJCQkzMTMx
M0Y2NDE0NDNCMzVFMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCAqLywKIAkJCQlB
OENGRjA0ODBBMTU0RjA5MDAwQTQyMzQgLyogRml4ZWRUYWJsZUxheW91dC5jcHAgKi8sCkBAIC0y
MTQ3Niw2ICsyMTQ3Nyw3IEBACiAJCQkJQTEyMEFDQTAxM0Y5OTgzNzAwRkU0QUM3IC8qIExheW91
dFJlcGFpbnRlci5oICovLAogCQkJCTJEOTA2NjA0MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRT
dGF0ZS5jcHAgKi8sCiAJCQkJMkQ5MDY2MDUwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRl
LmggKi8sCisJCQkJRkQ2NTRERjcxNjUyRTgyMzAwODI3MEVCIC8qIE1hcHBlZEluZm8uaCAqLywK
IAkJCQkzNzc0QUJBMzBGQTIxRUI0MDBBRDdERTkgLyogT3ZlcmxhcFRlc3RSZXF1ZXN0Q2xpZW50
LmggKi8sCiAJCQkJOTM3N0FCOUYxNURFRkVFRjAwMzFGRDA0IC8qIFBhZ2luYXRpb24uaCAqLywK
IAkJCQkwODg1MDY3RDExREEwNDVCMDAxODJCOTggLyogUGFpbnRJbmZvLmggKi8sCkBAIC0yMjM4
Myw2ICsyMjM4NSw3IEBACiAJCQlmaWxlcyA9ICgKIAkJCQlCQzdGQTYyMTBEMUYwQ0JEMDBEQjIy
QTkgLyogRHluYW1pY05vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlEQTA5NzM3
NEY2MDBENzQ0NjMgLyogSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlGRDY1NERGOTE2NTJFRjNDMDA4MjcwRUIgLyogTWFwcGVkSW5mby5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTgxMzY5RDgwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxTZWxlY3RFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBODEzNjlEQzA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTE9wdGlvbkVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM2OURCMTUwNUYwNzYwMDFCNzRBQyAvKiBB
YnN0cmFjdERhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKQEAgLTIzNTA0LDcgKzIzNTA3LDcgQEAK
IAkJCQk2RUFGMzQxMDE2MTM4NjlBMDA4NTk2MjUgLyogRXhjbHVzaW9uUG9seWdvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNkU4Nzk4QkQxNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblJlY3Rh
bmdsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU4Nzk4QkYxNUY4MUU0QTAwQkZFNEFBIC8qIEV4
Y2x1c2lvblNoYXBlLmggaW4gSGVhZGVycyAqLywKLQkJCQlGRDc0OEFDMDE1QkY3NEVEMDA1OUNG
MEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQlGRDc0
OEFDMDE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbmZvLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2RTY3RDJBOTEyODBFOEJEMDA4NzU4RjcgLyogRXh0ZW5zaW9uczNELmggaW4gSGVh
ZGVycyAqLywKIAkJCQk2RTY3RDJBNzEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9uczNET3Bl
bkdMLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NERBQjVCMjE1QTYyMzU4MDA5N0MxRTQgLyogRXh0
ZW5zaW9uczNET3BlbkdMQ29tbW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTI2NzQyLDcgKzI2NzQ1
LDcgQEAKIAkJCQk2RUFGMzQwRjE2MTM4NjlBMDA4NTk2MjUgLyogRXhjbHVzaW9uUG9seWdvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk2RTg3OThCQzE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVz
aW9uUmVjdGFuZ2xlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFODc5OEJFMTVGODFFNEEwMEJG
RTRBQSAvKiBFeGNsdXNpb25TaGFwZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGRDc0OEFCRjE1
QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUZENzQ4QUJGMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU2N0QyQTYxMjgwRThBNDAwODc1OEY3IC8qIEV4dGVu
c2lvbnMzRE9wZW5HTC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NERBQjVCMTE1QTYyMzU4MDA5
N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNp
b25TaGFwZUluZm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ4NjM5ZjI4YjZmMzRkOWVhYTg0Zjg4YTNhNWYx
YmQwNzUzM2QzOTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbmZvLmNwcApAQCAtMCwwICsxLDEwOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisg
KiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFp
bWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hh
cGVJbmZvLmgiCisKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisKKyNpbmNsdWRlICJDU1NQ
cm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5k
ZXJCb3guaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZTxjbGFzcyBSZW5kZXJUeXBlLCBD
U1NQcm9wZXJ0eUlEIFNoYXBlUHJvcGVydHk+Citib29sIEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5k
ZXJUeXBlLCBTaGFwZVByb3BlcnR5Pjo6bGluZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSBjb25zdAor
eworICAgIEZsb2F0UmVjdCBzaGFwZUJvdW5kcyA9IHNoYXBlKCktPnNoYXBlTG9naWNhbEJvdW5k
aW5nQm94KCk7CisgICAgcmV0dXJuIG1fbGluZVRvcCA8IHNoYXBlQm91bmRzLm1heFkoKSAmJiBt
X2xpbmVUb3AgKyBtX2xpbmVIZWlnaHQgPj0gc2hhcGVCb3VuZHMueSgpOworfQorCit0ZW1wbGF0
ZTxjbGFzcyBSZW5kZXJUeXBlLCBDU1NQcm9wZXJ0eUlEIFNoYXBlUHJvcGVydHk+Citib29sIEV4
Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJUeXBlLCBTaGFwZVByb3BlcnR5Pjo6aXNJbmZvRW5hYmxl
ZEZvclJlbmRlcmVyKGNvbnN0IFJlbmRlclR5cGUqIHJlbmRlcmVyKQoreworICAgIC8vIEZJWE1F
OiBCdWcgODk3MDc6IEVuYWJsZSBzaGFwZSBpbnNpZGUgZm9yIG5vbi1yZWN0YW5ndWxhciBzaGFw
ZXMKKyAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IGJhc2ljU2hhcGVGb3JSZW5kZXJlcihyZW5kZXJl
cik7CisgICAgcmV0dXJuIHNoYXBlICYmIChzaGFwZS0+dHlwZSgpID09IEJhc2ljU2hhcGU6OkJB
U0lDX1NIQVBFX1JFQ1RBTkdMRSB8fCBzaGFwZS0+dHlwZSgpID09IEJhc2ljU2hhcGU6OkJBU0lD
X1NIQVBFX1BPTFlHT04pOworfQorCit0ZW1wbGF0ZTxjbGFzcyBSZW5kZXJUeXBlLCBDU1NQcm9w
ZXJ0eUlEIFNoYXBlUHJvcGVydHk+Cit2b2lkIEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJUeXBl
LCBTaGFwZVByb3BlcnR5Pjo6Y29tcHV0ZVNoYXBlU2l6ZShMYXlvdXRVbml0IGxvZ2ljYWxXaWR0
aCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KQoreworICAgIGlmICghbV9zaGFwZVNpemVEaXJ0
eSAmJiBsb2dpY2FsV2lkdGggPT0gbV9sb2dpY2FsV2lkdGggJiYgbG9naWNhbEhlaWdodCA9PSBt
X2xvZ2ljYWxIZWlnaHQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2xvZ2ljYWxXaWR0
aCA9IGxvZ2ljYWxXaWR0aDsKKyAgICBtX2xvZ2ljYWxIZWlnaHQgPSBsb2dpY2FsSGVpZ2h0Owor
ICAgIAorICAgIEJhc2ljU2hhcGUqIHNoYXBlU3R5bGUgPSBiYXNpY1NoYXBlRm9yUmVuZGVyZXIo
bV9yZW5kZXJlcik7CisgICAgQVNTRVJUKHNoYXBlU3R5bGUpOworICAgIAorICAgIG1fc2hhcGUg
PSBFeGNsdXNpb25TaGFwZTo6Y3JlYXRlRXhjbHVzaW9uU2hhcGUoc2hhcGVTdHlsZSwgbV9sb2dp
Y2FsV2lkdGgsIG1fbG9naWNhbEhlaWdodCwgbV9yZW5kZXJlci0+c3R5bGUoKS0+d3JpdGluZ01v
ZGUoKSk7CisgICAgbV9zaGFwZVNpemVEaXJ0eSA9IGZhbHNlOworfQorCit0ZW1wbGF0ZTxjbGFz
cyBSZW5kZXJUeXBlLCBDU1NQcm9wZXJ0eUlEIFNoYXBlUHJvcGVydHk+Citib29sIEV4Y2x1c2lv
blNoYXBlSW5mbzxSZW5kZXJUeXBlLCBTaGFwZVByb3BlcnR5Pjo6Y29tcHV0ZVNlZ21lbnRzRm9y
TGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkKK3sKKyAgICBB
U1NFUlQobGluZUhlaWdodCA+PSAwKTsKKyAgICBtX2xpbmVUb3AgPSBsaW5lVG9wOworICAgIG1f
bGluZUhlaWdodCA9IGxpbmVIZWlnaHQ7CisgICAgbV9zZWdtZW50cy5jbGVhcigpOworICAgIAor
ICAgIGlmIChsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpKQorICAgICAgICBFeGNsdXNpb25TaGFw
ZUluZm88UmVuZGVyVHlwZSwgU2hhcGVQcm9wZXJ0eT46OnNlZ21lbnRzRm9yRXhjbHVzaW9uU2hh
cGUodGhpcy0+c2hhcGUoKSwgbGluZVRvcCwgc3RkOjptaW4obGluZUhlaWdodCwgc2hhcGVMb2dp
Y2FsQm90dG9tKCkgLSBsaW5lVG9wKSwgbV9zZWdtZW50cyk7CisgICAgCisgICAgcmV0dXJuIG1f
c2VnbWVudHMuc2l6ZSgpOworfQorCit0ZW1wbGF0ZTw+CitCYXNpY1NoYXBlKiBFeGNsdXNpb25T
aGFwZUluZm88UmVuZGVyQmxvY2ssIENTU1Byb3BlcnR5V2Via2l0U2hhcGVJbnNpZGU+OjpiYXNp
Y1NoYXBlRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyKSB7IHJldHVybiBy
ZW5kZXJlci0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKTsgfQorCit0ZW1wbGF0ZTw+Cit2b2lkIEV4
Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJCbG9jaywgQ1NTUHJvcGVydHlXZWJraXRTaGFwZUluc2lk
ZT46OnNlZ21lbnRzRm9yRXhjbHVzaW9uU2hhcGUoRXhjbHVzaW9uU2hhcGUqIGV4Y2x1c2lvblNo
YXBlLCBMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCwgU2VnbWVudExp
c3QmIHNlZ21lbnRzKQoreworICAgIGV4Y2x1c2lvblNoYXBlLT5nZXRJbmNsdWRlZEludGVydmFs
cyhsaW5lVG9wLCBsaW5lSGVpZ2h0LCBzZWdtZW50cyk7Cit9CisKK3RlbXBsYXRlPD4KK0Jhc2lj
U2hhcGUqIEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJCb3gsIENTU1Byb3BlcnR5V2Via2l0U2hh
cGVPdXRzaWRlPjo6YmFzaWNTaGFwZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlckJveCogcmVuZGVy
ZXIpIHsgcmV0dXJuIHJlbmRlcmVyLT5zdHlsZSgpLT5zaGFwZU91dHNpZGUoKTsgfQorCit0ZW1w
bGF0ZTw+Cit2b2lkIEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJCb3gsIENTU1Byb3BlcnR5V2Vi
a2l0U2hhcGVPdXRzaWRlPjo6c2VnbWVudHNGb3JFeGNsdXNpb25TaGFwZShFeGNsdXNpb25TaGFw
ZSogZXhjbHVzaW9uU2hhcGUsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVp
Z2h0LCBTZWdtZW50TGlzdCYgc2VnbWVudHMpCit7CisgICAgZXhjbHVzaW9uU2hhcGUtPmdldEV4
Y2x1ZGVkSW50ZXJ2YWxzKGxpbmVUb3AsIGxpbmVIZWlnaHQsIHNlZ21lbnRzKTsKK30KKwordGVt
cGxhdGUgY2xhc3MgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlckJsb2NrLCBDU1NQcm9wZXJ0eVdl
YmtpdFNoYXBlSW5zaWRlPjsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V4Y2x1c2lvblNoYXBlSW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzNjFhMzM0ODRlMzJkY2NmYmI1ZGUy
ODA5MGE4ZWM1NGE1MWFlMDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmgKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlz
Y2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAg
ICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBFeGNsdXNpb25TaGFwZUluZm9faAorI2RlZmluZSBF
eGNsdXNpb25TaGFwZUluZm9faAorCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorCisjaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlLmgiCisj
aW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiTWFwcGVkSW5mby5oIgorI2luY2x1ZGUg
IlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFJlbmRlckJveDsKK2NsYXNzIFJlbmRlckJsb2NrOworCit0ZW1wbGF0ZTxj
bGFzcyBSZW5kZXJUeXBlLCBDU1NQcm9wZXJ0eUlEIFNoYXBlUHJvcGVydHk+CitjbGFzcyBFeGNs
dXNpb25TaGFwZUluZm86IHB1YmxpYyBNYXBwZWRJbmZvPFJlbmRlclR5cGUsIEV4Y2x1c2lvblNo
YXBlSW5mbzxSZW5kZXJUeXBlLCBTaGFwZVByb3BlcnR5PiA+IHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICB+RXhjbHVzaW9uU2hhcGVJbmZvKCkgeyB9CisKKyAg
ICBzdGF0aWMgUGFzc093blB0cjxFeGNsdXNpb25TaGFwZUluZm8+IGNyZWF0ZUluZm8oY29uc3Qg
UmVuZGVyVHlwZSogcmVuZGVyZXIpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBFeGNsdXNpb25TaGFw
ZUluZm8ocmVuZGVyZXIpKTsgfQorICAgIHN0YXRpYyBib29sIGlzSW5mb0VuYWJsZWRGb3JSZW5k
ZXJlcihjb25zdCBSZW5kZXJUeXBlKik7CisKKyAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbFRv
cCgpIHsgcmV0dXJuIHNoYXBlTG9naWNhbEJvdW5kc1koKTsgfQorICAgIExheW91dFVuaXQgc2hh
cGVMb2dpY2FsQm90dG9tKCkgeyByZXR1cm4gc2hhcGVMb2dpY2FsQm91bmRzTWF4WSgpOyB9Cisg
ICAgYm9vbCBoYXNTZWdtZW50cygpIGNvbnN0IHsgcmV0dXJuIGxpbmVPdmVybGFwc1NoYXBlQm91
bmRzKCkgJiYgbV9zZWdtZW50cy5zaXplKCk7IH0KKyAgICBjb25zdCBTZWdtZW50TGlzdCYgc2Vn
bWVudHMoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc1NlZ21lbnRzKCkpOworICAgICAgICBy
ZXR1cm4gbV9zZWdtZW50czsKKyAgICB9CisgICAgYm9vbCBjb21wdXRlU2VnbWVudHNGb3JMaW5l
KExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KTsKKyAgICBib29sIGxp
bmVPdmVybGFwc1NoYXBlQm91bmRzKCkgY29uc3Q7CisgICAgdm9pZCBjb21wdXRlU2hhcGVTaXpl
KExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpOworICAg
IHZvaWQgZGlydHlTaGFwZVNpemUoKSB7IG1fc2hhcGVTaXplRGlydHkgPSB0cnVlOyB9CisKK3By
aXZhdGU6CisgICAgRXhjbHVzaW9uU2hhcGVJbmZvKGNvbnN0IFJlbmRlclR5cGUqIHJlbmRlcmVy
KSA6IG1fcmVuZGVyZXIocmVuZGVyZXIpLCBtX3NoYXBlU2l6ZURpcnR5KHRydWUpIHsgfQorCisg
ICAgY29uc3QgUmVuZGVyVHlwZSogbV9yZW5kZXJlcjsKKworICAgIEV4Y2x1c2lvblNoYXBlKiBz
aGFwZSgpIGNvbnN0IHsgQVNTRVJUKG1fc2hhcGUgJiYgIW1fc2hhcGVTaXplRGlydHkpOyByZXR1
cm4gbV9zaGFwZS5nZXQoKTsgfTsKKyAgICBPd25QdHI8RXhjbHVzaW9uU2hhcGU+IG1fc2hhcGU7
CisKKyAgICBMYXlvdXRVbml0IG1fbGluZVRvcDsKKyAgICBMYXlvdXRVbml0IG1fbGluZUhlaWdo
dDsKKyAgICBMYXlvdXRVbml0IG1fbG9naWNhbFdpZHRoOworICAgIExheW91dFVuaXQgbV9sb2dp
Y2FsSGVpZ2h0OworCisgICAgU2VnbWVudExpc3QgbV9zZWdtZW50czsKKyAgICBib29sIG1fc2hh
cGVTaXplRGlydHk7CisKKyAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbEJvdW5kc1koKSBjb25z
dAorICAgIHsKKyAgICAgICAgLy8gVXNlIGZyb21GbG9hdENlaWwoKSB0byBlbnN1cmUgdGhhdCB0
aGUgcmV0dXJuZWQgTGF5b3V0VW5pdCB2YWx1ZSBpcyB3aXRoaW4gdGhlIHNoYXBlJ3MgYm91bmRz
LgorICAgICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChzaGFwZSgpLT5zaGFw
ZUxvZ2ljYWxCb3VuZGluZ0JveCgpLnkoKSk7CisgICAgfQorICAgIAorICAgIExheW91dFVuaXQg
c2hhcGVMb2dpY2FsQm91bmRzTWF4WSgpIGNvbnN0CisgICAgeworICAgICAgICAvLyBVc2UgZnJv
bUZsb2F0Rmxvb3IoKSB0byBlbnN1cmUgdGhhdCB0aGUgcmV0dXJuZWQgTGF5b3V0VW5pdCB2YWx1
ZSBpcyB3aXRoaW4gdGhlIHNoYXBlJ3MgYm91bmRzLgorICAgICAgICByZXR1cm4gTGF5b3V0VW5p
dDo6ZnJvbUZsb2F0Rmxvb3Ioc2hhcGUoKS0+c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKS5tYXhZ
KCkpOworICAgIH0KKworICAgIHN0YXRpYyBCYXNpY1NoYXBlKiBiYXNpY1NoYXBlRm9yUmVuZGVy
ZXIoY29uc3QgUmVuZGVyVHlwZSopOworICAgIHN0YXRpYyB2b2lkIHNlZ21lbnRzRm9yRXhjbHVz
aW9uU2hhcGUoRXhjbHVzaW9uU2hhcGUqLCBMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQg
bGluZUhlaWdodCwgU2VnbWVudExpc3QmIHNlZ21lbnRzKTsKK307CisKK3R5cGVkZWYgRXhjbHVz
aW9uU2hhcGVJbmZvPFJlbmRlckJsb2NrLCBDU1NQcm9wZXJ0eVdlYmtpdFNoYXBlSW5zaWRlPiBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm87Cit9CisjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjc4MzBmMTBlZjZiZTRjMzkyMzA3ODM1M2M0ZDA5
ODdkNzcxYTBkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDExOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEy
IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKLSAqICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCi0g
KiAgICBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscwotICogICAgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgQkUKLSAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKLSAqIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IKLSAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgotICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLmgiCi0KLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0KLSNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCi0jaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotdHlwZWRlZiBIYXNoTWFwPGNvbnN0IFJlbmRlckJsb2NrKiwgT3duUHRyPEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbz4gPiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXA7Ci0KLXN0YXRpYyBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAmIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCgp
Ci17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAs
IHN0YXRpY0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCwgKCkpOwotICAgIHJldHVybiBzdGF0
aWNFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXA7Ci19Ci0KLUV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbzo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFJlbmRlckJsb2NrKiBibG9jaykKLSAgICA6
IG1fYmxvY2soYmxvY2spCi0gICAgLCBtX3NoYXBlU2l6ZURpcnR5KHRydWUpCi17Ci19Ci0KLUV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6fkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpCi17Ci19
Ci0KLUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpl
bnN1cmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayhSZW5kZXJCbG9jayog
YmxvY2spCi17Ci0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwOjpBZGRSZXN1bHQgcmVz
dWx0ID0gZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwKCkuYWRkKGJsb2NrLCBjcmVhdGUoYmxv
Y2spKTsKLSAgICByZXR1cm4gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKLX0KLQotRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKiBibG9jaykK
LXsKLSAgICBBU1NFUlQoYmxvY2stPnN0eWxlKCktPnNoYXBlSW5zaWRlKCkpOwotICAgIHJldHVy
biBleGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAoKS5nZXQoYmxvY2spOwotfQotCi1ib29sIEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aXNFeGNsdXNpb25TaGFwZUluc2lkZUluZm9FbmFibGVk
Rm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQotewotICAgIC8vIEZJWE1F
OiBCdWcgODk3MDc6IEVuYWJsZSBzaGFwZSBpbnNpZGUgZm9yIG5vbi1yZWN0YW5ndWxhciBzaGFw
ZXMKLSAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IGJsb2NrLT5zdHlsZSgpLT5zaGFwZUluc2lkZSgp
OwotICAgIHJldHVybiBzaGFwZSAmJiAoc2hhcGUtPnR5cGUoKSA9PSBCYXNpY1NoYXBlOjpCQVNJ
Q19TSEFQRV9SRUNUQU5HTEUgfHwgc2hhcGUtPnR5cGUoKSA9PSBCYXNpY1NoYXBlOjpCQVNJQ19T
SEFQRV9QT0xZR09OKTsKLX0KLQotdm9pZCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OnJlbW92
ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2Nr
KiBibG9jaykKLXsKLSAgICBpZiAoIWJsb2NrLT5zdHlsZSgpIHx8ICFibG9jay0+c3R5bGUoKS0+
c2hhcGVJbnNpZGUoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mb01hcCgpLnJlbW92ZShibG9jayk7Ci19Ci0KLXZvaWQgRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvOjpjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBMYXlvdXRVbml0
IGxvZ2ljYWxIZWlnaHQpCi17Ci0gICAgaWYgKCFtX3NoYXBlU2l6ZURpcnR5ICYmIGxvZ2ljYWxX
aWR0aCA9PSBtX2xvZ2ljYWxXaWR0aCAmJiBsb2dpY2FsSGVpZ2h0ID09IG1fbG9naWNhbEhlaWdo
dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9zaGFwZVNpemVEaXJ0eSA9IGZhbHNlOwotICAg
IG1fbG9naWNhbFdpZHRoID0gbG9naWNhbFdpZHRoOwotICAgIG1fbG9naWNhbEhlaWdodCA9IGxv
Z2ljYWxIZWlnaHQ7Ci0KLSAgICAvLyBGSVhNRTogQnVnIDg5OTkzOiBUaGUgd3JhcCBzaGFwZSBt
YXkgY29tZSBmcm9tIHRoZSBwYXJlbnQgb2JqZWN0Ci0gICAgQmFzaWNTaGFwZSogc2hhcGUgPSBt
X2Jsb2NrLT5zdHlsZSgpLT5zaGFwZUluc2lkZSgpOwotICAgIEFTU0VSVChzaGFwZSk7Ci0KLSAg
ICBtX3NoYXBlID0gRXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUV4Y2x1c2lvblNoYXBlKHNoYXBlLCBs
b2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQsIG1fYmxvY2stPnN0eWxlKCktPndyaXRpbmdNb2Rl
KCkpOwotICAgIEFTU0VSVChtX3NoYXBlKTsKLX0KLQotYm9vbCBFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm86OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRV
bml0IGxpbmVIZWlnaHQpCi17Ci0gICAgQVNTRVJUKGxpbmVIZWlnaHQgPj0gMCk7Ci0gICAgbV9s
aW5lVG9wID0gbGluZVRvcDsKLSAgICBtX2xpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0OwotICAgIG1f
c2VnbWVudHMuY2xlYXIoKTsKLQotICAgIGlmIChsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpKSB7
Ci0gICAgICAgIEFTU0VSVChtX3NoYXBlKTsKLSAgICAgICAgbV9zaGFwZS0+Z2V0SW5jbHVkZWRJ
bnRlcnZhbHMobGluZVRvcCwgc3RkOjptaW4obGluZUhlaWdodCwgc2hhcGVMb2dpY2FsQm90dG9t
KCkgLSBsaW5lVG9wKSwgbV9zZWdtZW50cyk7Ci0gICAgfQotICAgIHJldHVybiBtX3NlZ21lbnRz
LnNpemUoKTsKLX0KLQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDhiZTExNGQ0YjJjYTNjMDFhMWQ0Mjc4M2RlOGZmZDliYTc4MWUxM2MuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oCisrKyAvZGV2L251bGwKQEAgLTEsMTA1ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0
ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0g
KiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZwotICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzCi0gKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxB
UyBJU+KAnSBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQot
ICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLAotICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgotICogVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GCi0gKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvX2gKLSNkZWZpbmUgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvX2gKLQot
I2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLQotI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlLmgi
Ci0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiTGF5b3V0VW5pdC5oIgotI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBSZW5kZXJCbG9j
azsKLQotY2xhc3MgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvIHsKLSAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICB+RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7Ci0K
LSAgICBzdGF0aWMgUGFzc093blB0cjxFeGNsdXNpb25TaGFwZUluc2lkZUluZm8+IGNyZWF0ZShS
ZW5kZXJCbG9jayogYmxvY2spIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8oYmxvY2spKTsgfQotICAgIHN0YXRpYyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8q
IGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2Nr
Kik7Ci0gICAgc3RhdGljIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZW5zdXJlRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soUmVuZGVyQmxvY2sqKTsKLSAgICBzdGF0aWMg
dm9pZCByZW1vdmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayhjb25zdCBS
ZW5kZXJCbG9jayopOwotICAgIHN0YXRpYyBib29sIGlzRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
RW5hYmxlZEZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKik7Ci0KLSAgICBMYXlvdXRV
bml0IHNoYXBlTG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIHNoYXBlTG9naWNhbEJvdW5kc1ko
KTsgfQotICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsQm90dG9tKCkgY29uc3QgeyByZXR1cm4g
c2hhcGVMb2dpY2FsQm91bmRzTWF4WSgpOyB9Ci0gICAgYm9vbCBsaW5lT3ZlcmxhcHNTaGFwZUJv
dW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fbGluZVRvcCA8IHNoYXBlTG9naWNhbEJvdHRvbSgpICYm
IG1fbGluZVRvcCArIG1fbGluZUhlaWdodCA+PSBzaGFwZUxvZ2ljYWxUb3AoKTsgfQotCi0gICAg
Ym9vbCBoYXNTZWdtZW50cygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbGluZU92ZXJs
YXBzU2hhcGVCb3VuZHMoKSAmJiBtX3NlZ21lbnRzLnNpemUoKTsKLSAgICB9Ci0gICAgY29uc3Qg
U2VnbWVudExpc3QmIHNlZ21lbnRzKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChoYXNT
ZWdtZW50cygpKTsKLSAgICAgICAgcmV0dXJuIG1fc2VnbWVudHM7Ci0gICAgfQotICAgIGJvb2wg
Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGlu
ZUhlaWdodCk7Ci0gICAgdm9pZCBjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9naWNhbFdp
ZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpOwotICAgIHZvaWQgZGlydHlTaGFwZVNpemUo
KSB7IG1fc2hhcGVTaXplRGlydHkgPSB0cnVlOyB9Ci0KLXByaXZhdGU6Ci0gICAgRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvKFJlbmRlckJsb2NrKik7Ci0KLSAgICBpbmxpbmUgTGF5b3V0VW5pdCBz
aGFwZUxvZ2ljYWxCb3VuZHNZKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3NoYXBl
KTsKLSAgICAgICAgLy8gVXNlIGZyb21GbG9hdENlaWwoKSB0byBlbnN1cmUgdGhhdCB0aGUgcmV0
dXJuZWQgTGF5b3V0VW5pdCB2YWx1ZSBpcyB3aXRoaW4gdGhlIHNoYXBlJ3MgYm91bmRzLgotICAg
ICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChtX3NoYXBlLT5zaGFwZUxvZ2lj
YWxCb3VuZGluZ0JveCgpLnkoKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIExheW91dFVuaXQgc2hh
cGVMb2dpY2FsQm91bmRzTWF4WSgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV9zaGFw
ZSk7Ci0gICAgICAgIC8vIFVzZSBmcm9tRmxvYXRGbG9vcigpIHRvIGVuc3VyZSB0aGF0IHRoZSBy
ZXR1cm5lZCBMYXlvdXRVbml0IHZhbHVlIGlzIHdpdGhpbiB0aGUgc2hhcGUncyBib3VuZHMuCi0g
ICAgICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRGbG9vcihtX3NoYXBlLT5zaGFwZUxv
Z2ljYWxCb3VuZGluZ0JveCgpLm1heFkoKSk7Ci0gICAgfQotCi0gICAgUmVuZGVyQmxvY2sqIG1f
YmxvY2s7Ci0gICAgT3duUHRyPEV4Y2x1c2lvblNoYXBlPiBtX3NoYXBlOwotCi0gICAgTGF5b3V0
VW5pdCBtX2xpbmVUb3A7Ci0gICAgTGF5b3V0VW5pdCBtX2xpbmVIZWlnaHQ7Ci0gICAgTGF5b3V0
VW5pdCBtX2xvZ2ljYWxXaWR0aDsKLSAgICBMYXlvdXRVbml0IG1fbG9naWNhbEhlaWdodDsKLQot
ICAgIFNlZ21lbnRMaXN0IG1fc2VnbWVudHM7Ci0gICAgYm9vbCBtX3NoYXBlU2l6ZURpcnR5Owot
fTsKLQotfQotI2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MYXlvdXRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRl
LmgKaW5kZXggMTZlMDEwMDVmY2VhNTQyMzViYmZkZjA4N2NiODlkM2E3OGRiZWZmNy4uOWVjNWUx
NzYzYzliYWQzODQxYTRlYWNkNTEwYTY5ZjI4ZjU3ZWM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xheW91dFN0YXRlLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAorI2lmIEVOQUJMRShDU1NfRVhD
TFVTSU9OUykKKyNpbmNsdWRlICJFeGNsdXNpb25TaGFwZUluZm8uaCIKKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlckFyZW5hOwpAQCAtMzgsOSArNDIsNiBAQCBj
bGFzcyBSZW5kZXJCbG9jazsKIGNsYXNzIFJlbmRlckJveDsKIGNsYXNzIFJlbmRlck9iamVjdDsK
IGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7Ci0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotY2xh
c3MgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOwotI2VuZGlmCiAKIGNsYXNzIExheW91dFN0YXRl
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMYXlvdXRTdGF0ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFwcGVkSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL01hcHBlZEluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjg4MTIyZDZmN2ZiYTY3OTMxOWI2MzJm
NDlmNjIzNjAzMjNhZGUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL01hcHBlZEluZm8uaApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
CisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgTWFwcGVkSW5mb19oCisjZGVmaW5lIE1hcHBlZEluZm9faAorCisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlIDxj
bGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlwZT4KK2NsYXNzIE1hcHBlZEluZm8geworICAgIHB1
YmxpYzoKKyAgICAgICAgc3RhdGljIEluZm9UeXBlKiBlbnN1cmVJbmZvKGNvbnN0IEtleVR5cGUq
KTsKKyAgICAgICAgc3RhdGljIHZvaWQgcmVtb3ZlSW5mbyhjb25zdCBLZXlUeXBlKik7CisgICAg
ICAgIHN0YXRpYyBJbmZvVHlwZSogaW5mbyhjb25zdCBLZXlUeXBlKik7CisgICAgcHJpdmF0ZToK
KyAgICAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IEtleVR5cGUqLCBPd25QdHI8SW5mb1R5cGU+
ID4gSW5mb01hcDsKKyAgICAgICAgc3RhdGljIEluZm9NYXAmIGluZm9NYXAoKTsKK307CisKK3Rl
bXBsYXRlIDxjbGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlwZT4KK3R5cGVuYW1lIE1hcHBlZElu
Zm88S2V5VHlwZSwgSW5mb1R5cGU+OjpJbmZvTWFwJiBNYXBwZWRJbmZvPEtleVR5cGUsIEluZm9U
eXBlPjo6aW5mb01hcCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChJbmZvTWFwLCBzdGF0
aWNJbmZvTWFwLCAoKSk7CisgICAgcmV0dXJuIHN0YXRpY0luZm9NYXA7Cit9CisKK3RlbXBsYXRl
IDxjbGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlwZT4KK0luZm9UeXBlKiBNYXBwZWRJbmZvPEtl
eVR5cGUsIEluZm9UeXBlPjo6ZW5zdXJlSW5mbyhjb25zdCBLZXlUeXBlKiBrZXkpCit7CisgICAg
SW5mb01hcCYgaW5mb01hcCA9IE1hcHBlZEluZm88S2V5VHlwZSwgSW5mb1R5cGU+OjppbmZvTWFw
KCk7CisgICAgaWYgKEluZm9UeXBlKiBpbmZvID0gaW5mb01hcC5nZXQoa2V5KSkKKyAgICAgICAg
cmV0dXJuIGluZm87CisgICAgdHlwZW5hbWUgSW5mb01hcDo6QWRkUmVzdWx0IHJlc3VsdCA9IGlu
Zm9NYXAuYWRkKGtleSwgSW5mb1R5cGU6OmNyZWF0ZUluZm8oa2V5KSk7CisgICAgcmV0dXJuIHJl
c3VsdC5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBLZXlUeXBl
LCBjbGFzcyBJbmZvVHlwZT4KK3ZvaWQgTWFwcGVkSW5mbzxLZXlUeXBlLCBJbmZvVHlwZT46OnJl
bW92ZUluZm8oY29uc3QgS2V5VHlwZSoga2V5KQoreworICAgIGluZm9NYXAoKS5yZW1vdmUoa2V5
KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIEtleVR5cGUsIGNsYXNzIEluZm9UeXBlPgorSW5mb1R5
cGUqIE1hcHBlZEluZm88S2V5VHlwZSwgSW5mb1R5cGU+OjppbmZvKGNvbnN0IEtleVR5cGUqIGtl
eSkKK3sKKyAgICByZXR1cm4gaW5mb01hcCgpLmdldChrZXkpOworfQorCit9CisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDk4MmIwOTUxOTliNDMx
YjEwYWYzZDhjZmRmMzViMGZlNTg1YWU1ZDMuLjNhZWM4YTNhMTA2YzdlNzFjZDk5ODQ5YTlhNzE2
ZmFkMDg0ZTdlM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApA
QCAtNjMsNyArNjMsNyBAQAogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCiAjaW5jbHVkZSA8
d3RmL1N0ZExpYkV4dHJhcy5oPgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSNpbmNsdWRl
ICJFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCIKKyNpbmNsdWRlICJFeGNsdXNpb25TaGFwZUlu
Zm8uaCIKICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtMjc4LDcgKzI3OCw3IEBA
IHZvaWQgUmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCgpCiAgICAgICAgIGxpbmVHcmlkQm94
KCktPmRlc3Ryb3kocmVuZGVyQXJlbmEoKSk7CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMp
Ci0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpyZW1vdmVFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsKKyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86
OnJlbW92ZUluZm8odGhpcyk7CiAjZW5kaWYKIAogICAgIGlmIChVTkxJS0VMWShnRGVsYXllZFVw
ZGF0ZVNjcm9sbEluZm9TZXQgIT0gMCkpCkBAIC0xNDA1LDEwICsxNDA1LDEwIEBAIHZvaWQgUmVu
ZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2Uo
Y29uc3QgQmFzaWNTaGFwCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChzaGFwZUluc2lkZSkg
ewotICAgICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyA9IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6ZW5zdXJlRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvRm9yUmVuZGVyQmxvY2sodGhpcyk7CisgICAgICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
OjplbnN1cmVJbmZvKHRoaXMpOwogICAgICAgICBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmRp
cnR5U2hhcGVTaXplKCk7CiAgICAgfSBlbHNlCi0gICAgICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbzo6cmVtb3ZlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2sodGhpcyk7
CisgICAgICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6cmVtb3ZlSW5mbyh0aGlzKTsKIH0K
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmluZGV4IDU1YTAw
MWY2MWM0Y2IzYTEyMmVhZTlkYTc4Y2ZmYTIwYzk2NzQyMjcuLmQxOTg5Y2Y1NDk5YWE1YmNkNDNh
YTllYmUyMmUwNzA2ODlhZjdlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5oCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAKICNp
ZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0jaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvLmgiCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVJbmZvLmgiCiAjZW5kaWYKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBJbmxpbmVJdGVyYXRvcjsKIGNs
YXNzIExheW91dFN0YXRlTWFpbnRhaW5lcjsKIGNsYXNzIExpbmVMYXlvdXRTdGF0ZTsKIGNsYXNz
IExpbmVXaWR0aDsKK2NsYXNzIFJlbmRlckJsb2NrOwogY2xhc3MgUmVuZGVySW5saW5lOwogY2xh
c3MgUmVuZGVyVGV4dDsKIApAQCAtNDIzLDcgKzQyNCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCiAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25T
aGFwZUluc2lkZUluZm8oKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0eWxlKCktPnNo
YXBlSW5zaWRlKCkgJiYgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0V4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayh0aGlzKSA/IEV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbzo6ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2sodGhpcykgOiAw
OworICAgICAgICByZXR1cm4gc3R5bGUoKS0+c2hhcGVJbnNpZGUoKSAmJiBFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm86OmlzSW5mb0VuYWJsZWRGb3JSZW5kZXJlcih0aGlzKSA/IEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbzo6aW5mbyh0aGlzKSA6IDA7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXgg
MmU1OGVhNjc3MTE2MzlkMTgxOGUzY2E4Mjk2ZjlmZjk5Y2EwZDgyNi4uNzQ3MTFmZjlhNGFkMTk3
M2E5YzM5ZjhiMzgwNmI3MDlhMmQyM2E4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAKICNpbmNs
dWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgogCiAjaWYgRU5BQkxFKENTU19FWENM
VVNJT05TKQotI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIgorI2luY2x1ZGUg
IkV4Y2x1c2lvblNoYXBlSW5mby5oIgogI2VuZGlmCiAKICNpZiBFTkFCTEUoU1ZHKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173989</attachid>
            <date>2012-11-13 14:31:23 -0800</date>
            <delta_ts>2012-11-14 14:48:02 -0800</delta_ts>
            <desc>Simplifying xcode project</desc>
            <filename>bug-100766-20121113142923.patch</filename>
            <type>text/plain</type>
            <size>42643</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY5YmZiNWY4ZWMyMDA3
YmJjZmU4MzBlODY2YzdjZDcxNjk3ZDlhMy4uNjhhMDg0NTFhZmE2YTQwNTY0NmI3MjExZmQwNWQw
OTM3NjA2NDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEyLTExLTEzICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IFJlZmFjdG9yIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyB0byBtb3JlIGdlbmVyYWwgRXhjbHVz
aW9uU2hhcGVJbmZvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDA3NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZWZhY3RvcmluZyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gdG8gdGhlIG1vcmUgZ2Vu
ZXJhbCBFeGNsdXNpb25TaGFwZUluZm8sIHdoaWNoCisgICAgICAgIGNhbiBiZSB1c2VkIGJ5IGJv
dGggdGhlIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBhbmQgRXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mbyB0eXBlcy4KKyAgICAgICAgVGhpcyByZWZhY3RvcmluZyBvcHRzIGZvciBhIHRlbXBsYXRl
IGNsYXNzLCBhcyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gYXBwbGllcyB0bworICAgICAgICBS
ZW5kZXJCbG9jaywgd2hpbGUgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyBhcHBsaWVzIHRvIFJl
bmRlckJveC4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBjcmVhdGVzIHRoZSBN
YXBwZWRJbmZvIHR5cGUsIHRvIGdlbmVyYWxpemUgdGhlIHBhcmFkaWdtIG9mIGNyZWF0aW5nCisg
ICAgICAgIGFuIGluZm8gdHlwZSBwZXIga2V5IGFuZCBzdG9yaW5nIGl0IGluIGEgZ2xvYmFsIG1h
cC4KKworICAgICAgICBSZWZhY3RvcmluZywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBNYWtlZmlsZSByZW5hbWUgZnJvbSBFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8gdG8gRXhjbHVzaW9uU2hhcGVJbmZvLgorICAgICAgICAqIEdOVW1ha2Vm
aWxlLmxpc3QuYW06IERpdHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERpdHRvLgorICAgICAg
ICAqIFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5jcHA6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLmNwcC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6OjpsaW5l
T3ZlcmxhcHNTaGFwZUJvdW5kcyk6IFVwZGF0aW5nIHRvIEV4Y2x1c2lvblNoYXBlSW5mbyBjbGFz
cyB0ZW1wbGF0ZS4KKyAgICAgICAgKFdlYkNvcmU6Ojo6aXNJbmZvRW5hYmxlZEZvclJlbmRlcmVy
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjo6OmNvbXB1dGVTaGFwZVNpemUpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6Ojo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6OjpiYXNpY1NoYXBlRm9yUmVuZGVyZXIpOiBIZWxwZXIgbWV0aG9kIHRv
IHJldHJpZXZlIHRoZSBCYXNpY1NoYXBlIGZvciBhIFNoYXBlSW5mby4KKyAgICAgICAgKFdlYkNv
cmU6Ojo6c2VnbWVudHNGb3JFeGNsdXNpb25TaGFwZSk6IEhlbHBlciBtZXRob2QgdG8gcmV0cmll
dmUgdGhlIHNlZ21lbnRzIGZyb20gYW4gRXhjbHVzaW9uU2hhcGUuCisgICAgICAgICogcmVuZGVy
aW5nL0V4Y2x1c2lvblNoYXBlSW5mby5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvTWFwcGVkSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoTWFwcGVkSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjo6OmluZm9NYXApOiBS
ZXRyaWV2ZSB0aGUgc3RhdGljIG1hcCB1c2VkIHRvIHN0b3JlIGluZm9zLgorICAgICAgICAoV2Vi
Q29yZTo6OjplbnN1cmVJbmZvKTogUGxhY2UgYW4gaW5mbyBmb3IgdGhlIGdpdmVuIGtleSBpZiBv
bmUgZG9lcyBub3QgZXhpc3QuCisgICAgICAgIChXZWJDb3JlOjo6OnJlbW92ZUluZm8pOiBSZW1v
dmUgdGhlIGluZm8gZm9yIHRoZSBnaXZlbiBrZXkuCisgICAgICAgIChXZWJDb3JlOjo6OmluZm8p
OiBMb29rIHVwIHRoZSBpbmZvIGZvciB0aGUgZ2l2ZW4ga2V5LgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6d2lsbEJl
RGVzdHJveWVkKTogUmVmYWN0b3IgdG8gdXNlIHRoZSBuZXcgRXhjbHVzaW9uU2hhcGVJbmZvCisg
ICAgICAgIG1ldGhvZCBuYW1lcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRh
dGVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKTogRGl0dG8uCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpleGNsdXNpb25TaGFwZUluc2lkZUluZm8pOiBEaXR0
by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcDoKKwogMjAx
Mi0xMS0xMyAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NT
IFJlZ2lvbnNdIEFkZCBSZWdpb24gaW5mbyBmb3IgUm9vdExpbmVCb3hlcyBhbmQgcGFjayB0aGUg
cGFnaW5hdGlvbiBkYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGRiMGZhNDk5MjNiM2YzZGRk
NzMzNmJiOGZlODM3ZjgyNjliN2Q1NTQuLjkyYjZlYWUwNWU1ZDcyOGIwOTQ3NWE1OTU3ZDA3MjA1
NTM4N2FlZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMDQ4LDcgKzIwNDgsNyBAQCBTRVQo
V2ViQ29yZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwCiAgICAg
cmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5jcHAKICAgICByZW5kZXJpbmcvRXhjbHVzaW9u
U2hhcGUuY3BwCi0gICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAKKyAg
ICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmNwcAogICAgIHJlbmRlcmluZy9GaWx0ZXJF
ZmZlY3RSZW5kZXJlci5jcHAKICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAKICAg
ICByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQppbmRleCAyNDRjMGY3NDU4MGQ3ZjE1OWMwZTAyNWU4ODRlYjVjMDE2NTg0MzM1Li4w
MTE2MWFlY2NkY2Q3NThkMWQwNzlkNDAwMDgzOTA0MDE2YTQ2YzU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KQEAgLTQ5NDQsOCArNDk0NCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuaCBcCi0JU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V4Y2x1c2lvblNoYXBlSW5mby5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZUluZm8uaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVj
dFJlbmRlcmVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJl
bmRlcmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNw
cCBcCkBAIC00OTY5LDYgKzQ5NjksNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvTGF5b3V0UmVwYWludGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRS
ZXBhaW50ZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFwcGVkSW5mby5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvT3ZlcmxhcFRlc3RSZXF1ZXN0Q2xpZW50LmggXAog
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWdpbmF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9QYWludEluZm8uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCA1ZGQ4MWVkMmY4Nzk3OTAx
OTJkZjdiOTE4MWJlZjczY2QzOGRjNmZkLi5kMGE2ZmYwMGJiMmQzOTI5YzQ3ZTVlZThmNTA0N2U5
OWFlNGI5Mzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTExMjAsNyArMTEyMCw3IEBAIFNPVVJDRVMgKz0g
XAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmNwcCBcCiAgICAgcmVuZGVyaW5nL0V4
Y2x1c2lvblJlY3RhbmdsZS5jcHAgXAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAg
XAotICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwIFwKKyAgICByZW5k
ZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmNwcCBcCiAgICAgcmVuZGVyaW5nL0ZpbHRlckVmZmVj
dFJlbmRlcmVyLmNwcCBcCiAgICAgcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwIFwKICAg
ICByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwIFwKQEAgLTIzMzAsNyArMjMzMCw3
IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmggXAogICAg
IHJlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuaCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lv
blNoYXBlLmggXAotICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBcCisg
ICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5oIFwKICAgICByZW5kZXJpbmcvRmlsdGVy
RWZmZWN0UmVuZGVyZXIuaCBcCiAgICAgcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuaCBcCiAg
ICAgcmVuZGVyaW5nL0hpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5oIFwKQEAgLTIzNDAsNiArMjM0
MCw3IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmggXAogICAg
IHJlbmRlcmluZy9MYXlvdXRTdGF0ZS5oIFwKICAgICByZW5kZXJpbmcvTGF5b3V0UmVwYWludGVy
LmggXAorICAgIHJlbmRlcmluZy9NYXBwZWRJbmZvLmggXAogICAgIHJlbmRlcmluZy9tYXRobWwv
UmVuZGVyTWF0aE1MQmxvY2suaCBcCiAgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxG
ZW5jZWQuaCBcCiAgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5oIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQppbmRleCBjZWY5NGI5OTMwMzM0M2Q4N2Q4ZWVjNWU5YjUyYTQ0ZTE0YjAw
Y2RhLi5hZjBkYjczZDk5ZWQ5NzQ2NWE0MjdhNTdiMjdjYTljNGUxMWE2NTRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCkBAIC0zMjgzLDggKzMyODMsOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNs
dXNpb25SZWN0YW5nbGUuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmgnLAotICAgICAg
ICAgICAgJ3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwJywKLSAgICAgICAg
ICAgICdyZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgnLAorICAgICAgICAgICAg
J3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJp
bmcvRXhjbHVzaW9uU2hhcGVJbmZvLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9GaWx0ZXJF
ZmZlY3RSZW5kZXJlci5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RS
ZW5kZXJlci5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAn
LApAQCAtMzMwMiw2ICszMzAyLDcgQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAnLAogICAg
ICAgICAgICAgJ3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuY3BwJywKKyAgICAgICAgICAgICdy
ZW5kZXJpbmcvTWFwcGVkSW5mby5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUG9pbnRlckV2
ZW50c0hpdFJ1bGVzLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL1BvaW50ZXJFdmVudHNI
aXRSdWxlcy5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUmVuZGVyQXBwbGV0LmNwcCcsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDc3Yzg1
ZTUxMjM0MDFlN2U4ODNiNGVkMDJkYjk2MTU0Y2I5YzhhNTMuLjRiMmRjMzA4YzIxOWJiZTY1NmI1
YmNjZWZkZWVmNWNlYTJkYjZiMjggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCkBAIC0zODQ0MywxMSArMzg0NDMsMTEgQEAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPgogICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgogCQkJ
PEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8uY3BwIgorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXEV4Y2x1c2lvblNoYXBl
SW5mby5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHJlbmRlcmluZ1xFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCIKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHJlbmRlcmluZ1xFeGNsdXNpb25TaGFwZUluZm8uaCIKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQpAQCAtMzg5NzUsNiArMzg5NzUsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXE1hcHBlZEluZm8uaCIKKwkJ
CQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5n
XFBhaW50SW5mby5oIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNTAxZTliNzlmNzkwNWMzNzM4
ODdkNDNlNjY2ZmZmYmVmODY4ZDcyLi5kYjBkZTg2OTA0NGE4MTc3ZWFlZjc5NTA0Y2RlMzliMDYw
MjcwY2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC02NTAzLDYgKzY1MDMsNyBAQAogCQlGRDYyOUVBMzE1NEI0NzE2MDAwNkQw
MjYgLyogQXVkaW9CYXNpY0luc3BlY3Rvck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENjI5RUExMTU0QjQ3MTYwMDA2RDAyNiAvKiBBdWRpb0Jh
c2ljSW5zcGVjdG9yTm9kZS5oICovOyB9OwogCQlGRDYyOUVBNDE1NEI0NzE2MDAwNkQwMjYgLyog
QXVkaW9CYXNpY0luc3BlY3Rvck5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkQ2MjlFQTIxNTRCNDcxNjAwMDZEMDI2IC8qIEF1ZGlvQmFzaWNJ
bnNwZWN0b3JOb2RlLmNwcCAqLzsgfTsKIAkJRkQ2MkY1MkUxNDU4OThEODAwOTRCMEVEIC8qIEF1
ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEZENjJGNTJEMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVBy
b3ZpZGVyQ2xpZW50LmggKi87IH07CisJCUZENjU0REY5MTY1MkVGM0MwMDgyNzBFQiAvKiBNYXBw
ZWRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
RDY1NERGNzE2NTJFODIzMDA4MjcwRUIgLyogTWFwcGVkSW5mby5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZENjcxQTc3MTU5QkIwNzAwMDE5NzU1
OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDY3MUE3NDE1OUJCMDcwMDAxOTc1NTkgLyogTWVk
aWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwICovOyB9OwogCQlGRDY3MUE3ODE1OUJCMDcwMDAx
OTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENjcxQTc1MTU5QkIwNzAwMDE5NzU1OSAvKiBN
ZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oICovOyB9OwogCQlGRDZFRDJDMzEzNkI4RTQyMDAz
Q0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDZFRDJDMTEzNkI4RTQyMDAzQ0YwNzIgLyogRHlu
YW1pY3NDb21wcmVzc29yTm9kZS5jcHAgKi87IH07CkBAIC02NTExLDggKzY1MTIsOCBAQAogCQlG
RDZFRDJDODEzNkI4RTY2MDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDZFRDJDNjEzNkI4RTY2MDAz
Q0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yLmggKi87IH07CiAJCUZENkYyNTJDMTNGNUVGMEUw
MDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RjI1MjkxM0Y1RUYwRTAwNjUxNjVG
IC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAgKi87IH07CiAJCUZENkYyNTJEMTNG
NUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENkYyNTJBMTNGNUVGMEUwMDY1
MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCAqLzsgfTsKLQkJRkQ3NDhBQkYx
NUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDc0OEFCRDE1QkY3NEVEMDA1
OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCAqLzsgfTsKLQkJRkQ3NDhBQzAx
NUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ3NDhBQkUxNUJGNzRFRDAwNTlD
RjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUZENzQ4QUJGMTVCRjc0RUQwMDU5Q0YwRCAvKiBF
eGNsdXNpb25TaGFwZUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRkQ3NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5m
by5jcHAgKi87IH07CisJCUZENzQ4QUMwMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFw
ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
NzQ4QUJFMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGRDc4NjhCOTEzNkI5OTky
MDBENDAzREYgLyogSlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENzg2OEI3MTM2Qjk5OTIwMEQ0MDNERiAv
KiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwICovOyB9OwogCQlGRDc4NjhCQTEzNkI5OTky
MDBENDAzREYgLyogSlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDc4NjhCODEzNkI5OTkyMDBENDAzREYgLyog
SlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmggKi87IH07CiAJCUZEN0YyOTkxMTNENEMwQ0IwMEFE
OTUzNSAvKiBXYXZlU2hhcGVyRFNQS2VybmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEN0YyOThBMTNENEMwQ0IwMEFEOTUzNSAvKiBXYXZlU2hh
cGVyRFNQS2VybmVsLmNwcCAqLzsgfTsKQEAgLTEzOTkwLDYgKzEzOTkxLDcgQEAKIAkJRkQ2MjlF
QTExNTRCNDcxNjAwMDZEMDI2IC8qIEF1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZENjI5RUEyMTU0QjQ3MTYwMDA2RDAyNiAvKiBBdWRp
b0Jhc2ljSW5zcGVjdG9yTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBBdWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUZENjJGNTJEMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU291cmNlUHJvdmlk
ZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkQ2NTRERjcxNjUyRTgy
MzAwODI3MEVCIC8qIE1hcHBlZEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWFwcGVkSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRDY3MUE3NDE1
OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRDY3MUE3NTE1OUJCMDcwMDAxOTc1
NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRkQ2NzFBNzYxNTlCQjA3MDAwMTk3NTU5IC8qIE1lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VOb2RlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVN0cmVhbUF1ZGlv
U291cmNlTm9kZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAwMSw4ICsx
NDAwMyw4IEBACiAJCUZENkYyNTI5MTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRp
b1NvdXJjZU5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVk
aWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRkQ2RjI1MkExM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9k
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUVsZW1lbnRBdWRpb1Nv
dXJjZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ2RjI1MkIxM0Y1RUYw
RTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRkQ3NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlGRDc0OEFCRTE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRDc0OEFCRDE1QkY3NEVEMDA1OUNG
MEQgLyogRXhjbHVzaW9uU2hhcGVJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEV4Y2x1c2lvblNoYXBlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUZENzQ4QUJFMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjbHVzaW9uU2hhcGVJbmZvLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZENzg2OEI3MTM2Qjk5OTIwMEQ0MDNERiAvKiBK
U0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNEeW5hbWljc0NvbXByZXNzb3JOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRkQ3ODY4QjgxMzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVz
c29yTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0R5bmFtaWNzQ29t
cHJlc3Nvck5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ3RjI5OEExM0Q0
QzBDQjAwQUQ5NTM1IC8qIFdhdmVTaGFwZXJEU1BLZXJuZWwuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gV2F2ZVNoYXBlckRTUEtlcm5lbC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMTQ2OSw4ICsyMTQ3MSw4IEBACiAJCQkJNkU4Nzk4QjcxNUY4
MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblJlY3RhbmdsZS5oICovLAogCQkJCTZFODc5OEI4MTVG
ODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25TaGFwZS5jcHAgKi8sCiAJCQkJNkU4Nzk4QjkxNUY4
MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblNoYXBlLmggKi8sCi0JCQkJRkQ3NDhBQkQxNUJGNzRF
RDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgKi8sCi0JCQkJRkQ3NDhB
QkUxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oICovLAorCQkJ
CUZENzQ4QUJEMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uY3BwICovLAor
CQkJCUZENzQ4QUJFMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCAqLywK
IAkJCQkzMTMxM0Y2MzE0NDNCMzVFMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3Bw
ICovLAogCQkJCTMxMzEzRjY0MTQ0M0IzNUUwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJl
ci5oICovLAogCQkJCUE4Q0ZGMDQ4MEExNTRGMDkwMDBBNDIzNCAvKiBGaXhlZFRhYmxlTGF5b3V0
LmNwcCAqLywKQEAgLTIxNDk0LDYgKzIxNDk2LDcgQEAKIAkJCQlBMTIwQUNBMDEzRjk5ODM3MDBG
RTRBQzcgLyogTGF5b3V0UmVwYWludGVyLmggKi8sCiAJCQkJMkQ5MDY2MDQwQkUxNDFENDAwOTU2
OTk4IC8qIExheW91dFN0YXRlLmNwcCAqLywKIAkJCQkyRDkwNjYwNTBCRTE0MUQ0MDA5NTY5OTgg
LyogTGF5b3V0U3RhdGUuaCAqLywKKwkJCQlGRDY1NERGNzE2NTJFODIzMDA4MjcwRUIgLyogTWFw
cGVkSW5mby5oICovLAogCQkJCTM3NzRBQkEzMEZBMjFFQjQwMEFEN0RFOSAvKiBPdmVybGFwVGVz
dFJlcXVlc3RDbGllbnQuaCAqLywKIAkJCQk5Mzc3QUI5RjE1REVGRUVGMDAzMUZEMDQgLyogUGFn
aW5hdGlvbi5oICovLAogCQkJCTA4ODUwNjdEMTFEQTA0NUIwMDE4MkI5OCAvKiBQYWludEluZm8u
aCAqLywKQEAgLTIyNDAxLDYgKzIyNDA0LDcgQEAKIAkJCWZpbGVzID0gKAogCQkJCUJDN0ZBNjIx
MEQxRjBDQkQwMERCMjJBOSAvKiBEeW5hbWljTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4MTM2OURBMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCUZENjU0REY5MTY1MkVGM0MwMDgyNzBFQiAvKiBNYXBwZWRJbmZvLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODEzNjlEODA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTFNlbGVj
dEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OURDMDk3Mzc0RjYwMEQ3NDQ2MyAv
KiBIVE1MT3B0aW9uRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzY5REIxNTA1RjA3
NjAwMUI3NEFDIC8qIEFic3RyYWN0RGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjM1MjIs
NyArMjM1MjYsNyBAQAogCQkJCTZFQUYzNDEwMTYxMzg2OUEwMDg1OTYyNSAvKiBFeGNsdXNpb25Q
b2x5Z29uLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTg3OThCRDE1RjgxRTRBMDBCRkU0QUEgLyog
RXhjbHVzaW9uUmVjdGFuZ2xlLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTg3OThCRjE1RjgxRTRB
MDBCRkU0QUEgLyogRXhjbHVzaW9uU2hhcGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUZENzQ4QUMw
MTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBpbiBIZWFkZXJz
ICovLAorCQkJCUZENzQ4QUMwMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8u
aCBpbiBIZWFkZXJzICovLAogCQkJCTZFNjdEMkE5MTI4MEU4QkQwMDg3NThGNyAvKiBFeHRlbnNp
b25zM0QuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFNjdEMkE3MTI4MEU4QTQwMDg3NThGNyAvKiBF
eHRlbnNpb25zM0RPcGVuR0wuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0REFCNUIyMTVBNjIzNTgw
MDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uaCBpbiBIZWFkZXJzICovLApAQCAt
MjY3NjAsNyArMjY3NjQsNyBAQAogCQkJCTZFQUYzNDBGMTYxMzg2OUEwMDg1OTYyNSAvKiBFeGNs
dXNpb25Qb2x5Z29uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFODc5OEJDMTVGODFFNEEwMEJG
RTRBQSAvKiBFeGNsdXNpb25SZWN0YW5nbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU4Nzk4
QkUxNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblNoYXBlLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUZENzQ4QUJGMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8u
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRkQ3NDhBQkYxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1
c2lvblNoYXBlSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2RTY3RDJBNjEyODBFOEE0MDA4
NzU4RjcgLyogRXh0ZW5zaW9uczNET3BlbkdMLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0REFC
NUIxMTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNzcyODY5NEUxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0
ZXJBbmlzb3Ryb3BpYy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg2MzlmMjhiNmYzNGQ5
ZWFhODRmODhhM2E1ZjFiZDA3NTMzZDM5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwCkBAIC0wLDAgKzEsMTA4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcK
KyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAor
ICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJFeGNsdXNpb25TaGFwZUluZm8uaCIKKworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKwor
I2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgor
I2luY2x1ZGUgIlJlbmRlckJveC5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVk
ZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlPGNsYXNz
IFJlbmRlclR5cGUsIENTU1Byb3BlcnR5SUQgU2hhcGVQcm9wZXJ0eT4KK2Jvb2wgRXhjbHVzaW9u
U2hhcGVJbmZvPFJlbmRlclR5cGUsIFNoYXBlUHJvcGVydHk+OjpsaW5lT3ZlcmxhcHNTaGFwZUJv
dW5kcygpIGNvbnN0Cit7CisgICAgRmxvYXRSZWN0IHNoYXBlQm91bmRzID0gc2hhcGUoKS0+c2hh
cGVMb2dpY2FsQm91bmRpbmdCb3goKTsKKyAgICByZXR1cm4gbV9saW5lVG9wIDwgc2hhcGVCb3Vu
ZHMubWF4WSgpICYmIG1fbGluZVRvcCArIG1fbGluZUhlaWdodCA+PSBzaGFwZUJvdW5kcy55KCk7
Cit9CisKK3RlbXBsYXRlPGNsYXNzIFJlbmRlclR5cGUsIENTU1Byb3BlcnR5SUQgU2hhcGVQcm9w
ZXJ0eT4KK2Jvb2wgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlclR5cGUsIFNoYXBlUHJvcGVydHk+
Ojppc0luZm9FbmFibGVkRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyVHlwZSogcmVuZGVyZXIpCit7
CisgICAgLy8gRklYTUU6IEJ1ZyA4OTcwNzogRW5hYmxlIHNoYXBlIGluc2lkZSBmb3Igbm9uLXJl
Y3Rhbmd1bGFyIHNoYXBlcworICAgIEJhc2ljU2hhcGUqIHNoYXBlID0gYmFzaWNTaGFwZUZvclJl
bmRlcmVyKHJlbmRlcmVyKTsKKyAgICByZXR1cm4gc2hhcGUgJiYgKHNoYXBlLT50eXBlKCkgPT0g
QmFzaWNTaGFwZTo6QkFTSUNfU0hBUEVfUkVDVEFOR0xFIHx8IHNoYXBlLT50eXBlKCkgPT0gQmFz
aWNTaGFwZTo6QkFTSUNfU0hBUEVfUE9MWUdPTik7Cit9CisKK3RlbXBsYXRlPGNsYXNzIFJlbmRl
clR5cGUsIENTU1Byb3BlcnR5SUQgU2hhcGVQcm9wZXJ0eT4KK3ZvaWQgRXhjbHVzaW9uU2hhcGVJ
bmZvPFJlbmRlclR5cGUsIFNoYXBlUHJvcGVydHk+Ojpjb21wdXRlU2hhcGVTaXplKExheW91dFVu
aXQgbG9naWNhbFdpZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpCit7CisgICAgaWYgKCFt
X3NoYXBlU2l6ZURpcnR5ICYmIGxvZ2ljYWxXaWR0aCA9PSBtX2xvZ2ljYWxXaWR0aCAmJiBsb2dp
Y2FsSGVpZ2h0ID09IG1fbG9naWNhbEhlaWdodCkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAg
IG1fbG9naWNhbFdpZHRoID0gbG9naWNhbFdpZHRoOworICAgIG1fbG9naWNhbEhlaWdodCA9IGxv
Z2ljYWxIZWlnaHQ7CisgICAgCisgICAgQmFzaWNTaGFwZSogc2hhcGVTdHlsZSA9IGJhc2ljU2hh
cGVGb3JSZW5kZXJlcihtX3JlbmRlcmVyKTsKKyAgICBBU1NFUlQoc2hhcGVTdHlsZSk7CisgICAg
CisgICAgbV9zaGFwZSA9IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShzaGFw
ZVN0eWxlLCBtX2xvZ2ljYWxXaWR0aCwgbV9sb2dpY2FsSGVpZ2h0LCBtX3JlbmRlcmVyLT5zdHls
ZSgpLT53cml0aW5nTW9kZSgpKTsKKyAgICBtX3NoYXBlU2l6ZURpcnR5ID0gZmFsc2U7Cit9CisK
K3RlbXBsYXRlPGNsYXNzIFJlbmRlclR5cGUsIENTU1Byb3BlcnR5SUQgU2hhcGVQcm9wZXJ0eT4K
K2Jvb2wgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlclR5cGUsIFNoYXBlUHJvcGVydHk+Ojpjb21w
dXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVp
Z2h0KQoreworICAgIEFTU0VSVChsaW5lSGVpZ2h0ID49IDApOworICAgIG1fbGluZVRvcCA9IGxp
bmVUb3A7CisgICAgbV9saW5lSGVpZ2h0ID0gbGluZUhlaWdodDsKKyAgICBtX3NlZ21lbnRzLmNs
ZWFyKCk7CisgICAgCisgICAgaWYgKGxpbmVPdmVybGFwc1NoYXBlQm91bmRzKCkpCisgICAgICAg
IEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJUeXBlLCBTaGFwZVByb3BlcnR5Pjo6c2VnbWVudHNG
b3JFeGNsdXNpb25TaGFwZSh0aGlzLT5zaGFwZSgpLCBsaW5lVG9wLCBzdGQ6Om1pbihsaW5lSGVp
Z2h0LCBzaGFwZUxvZ2ljYWxCb3R0b20oKSAtIGxpbmVUb3ApLCBtX3NlZ21lbnRzKTsKKyAgICAK
KyAgICByZXR1cm4gbV9zZWdtZW50cy5zaXplKCk7Cit9CisKK3RlbXBsYXRlPD4KK0Jhc2ljU2hh
cGUqIEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJCbG9jaywgQ1NTUHJvcGVydHlXZWJraXRTaGFw
ZUluc2lkZT46OmJhc2ljU2hhcGVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJCbG9jayogcmVuZGVy
ZXIpIHsgcmV0dXJuIHJlbmRlcmVyLT5zdHlsZSgpLT5zaGFwZUluc2lkZSgpOyB9CisKK3RlbXBs
YXRlPD4KK3ZvaWQgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlckJsb2NrLCBDU1NQcm9wZXJ0eVdl
YmtpdFNoYXBlSW5zaWRlPjo6c2VnbWVudHNGb3JFeGNsdXNpb25TaGFwZShFeGNsdXNpb25TaGFw
ZSogZXhjbHVzaW9uU2hhcGUsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVp
Z2h0LCBTZWdtZW50TGlzdCYgc2VnbWVudHMpCit7CisgICAgZXhjbHVzaW9uU2hhcGUtPmdldElu
Y2x1ZGVkSW50ZXJ2YWxzKGxpbmVUb3AsIGxpbmVIZWlnaHQsIHNlZ21lbnRzKTsKK30KKwordGVt
cGxhdGU8PgorQmFzaWNTaGFwZSogRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlckJveCwgQ1NTUHJv
cGVydHlXZWJraXRTaGFwZU91dHNpZGU+OjpiYXNpY1NoYXBlRm9yUmVuZGVyZXIoY29uc3QgUmVu
ZGVyQm94KiByZW5kZXJlcikgeyByZXR1cm4gcmVuZGVyZXItPnN0eWxlKCktPnNoYXBlT3V0c2lk
ZSgpOyB9CisKK3RlbXBsYXRlPD4KK3ZvaWQgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlckJveCwg
Q1NTUHJvcGVydHlXZWJraXRTaGFwZU91dHNpZGU+OjpzZWdtZW50c0ZvckV4Y2x1c2lvblNoYXBl
KEV4Y2x1c2lvblNoYXBlKiBleGNsdXNpb25TaGFwZSwgTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlv
dXRVbml0IGxpbmVIZWlnaHQsIFNlZ21lbnRMaXN0JiBzZWdtZW50cykKK3sKKyAgICBleGNsdXNp
b25TaGFwZS0+Z2V0RXhjbHVkZWRJbnRlcnZhbHMobGluZVRvcCwgbGluZUhlaWdodCwgc2VnbWVu
dHMpOworfQorCit0ZW1wbGF0ZSBjbGFzcyBFeGNsdXNpb25TaGFwZUluZm88UmVuZGVyQmxvY2ss
IENTU1Byb3BlcnR5V2Via2l0U2hhcGVJbnNpZGU+OworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM2MWEzMzQ4
NGUzMmRjY2ZiYjVkZTI4MDkwYThlYzU0YTUxYWUwMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uaApAQCAtMCwwICsxLDEwNiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICog
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEV4Y2x1c2lvblNoYXBlSW5m
b19oCisjZGVmaW5lIEV4Y2x1c2lvblNoYXBlSW5mb19oCisKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xV
U0lPTlMpCisKKyNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCisjaW5jbHVkZSAiRXhjbHVz
aW9uU2hhcGUuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJNYXBwZWRJbmZv
LmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyQm94OworY2xhc3MgUmVuZGVyQmxvY2s7
CisKK3RlbXBsYXRlPGNsYXNzIFJlbmRlclR5cGUsIENTU1Byb3BlcnR5SUQgU2hhcGVQcm9wZXJ0
eT4KK2NsYXNzIEV4Y2x1c2lvblNoYXBlSW5mbzogcHVibGljIE1hcHBlZEluZm88UmVuZGVyVHlw
ZSwgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlclR5cGUsIFNoYXBlUHJvcGVydHk+ID4geworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIH5FeGNsdXNpb25TaGFwZUlu
Zm8oKSB7IH0KKworICAgIHN0YXRpYyBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlSW5mbz4gY3Jl
YXRlSW5mbyhjb25zdCBSZW5kZXJUeXBlKiByZW5kZXJlcikgeyByZXR1cm4gYWRvcHRQdHIobmV3
IEV4Y2x1c2lvblNoYXBlSW5mbyhyZW5kZXJlcikpOyB9CisgICAgc3RhdGljIGJvb2wgaXNJbmZv
RW5hYmxlZEZvclJlbmRlcmVyKGNvbnN0IFJlbmRlclR5cGUqKTsKKworICAgIExheW91dFVuaXQg
c2hhcGVMb2dpY2FsVG9wKCkgeyByZXR1cm4gc2hhcGVMb2dpY2FsQm91bmRzWSgpOyB9CisgICAg
TGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxCb3R0b20oKSB7IHJldHVybiBzaGFwZUxvZ2ljYWxCb3Vu
ZHNNYXhZKCk7IH0KKyAgICBib29sIGhhc1NlZ21lbnRzKCkgY29uc3QgeyByZXR1cm4gbGluZU92
ZXJsYXBzU2hhcGVCb3VuZHMoKSAmJiBtX3NlZ21lbnRzLnNpemUoKTsgfQorICAgIGNvbnN0IFNl
Z21lbnRMaXN0JiBzZWdtZW50cygpCisgICAgeworICAgICAgICBBU1NFUlQoaGFzU2VnbWVudHMo
KSk7CisgICAgICAgIHJldHVybiBtX3NlZ21lbnRzOworICAgIH0KKyAgICBib29sIGNvbXB1dGVT
ZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQp
OworICAgIGJvb2wgbGluZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSBjb25zdDsKKyAgICB2b2lkIGNv
bXB1dGVTaGFwZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNh
bEhlaWdodCk7CisgICAgdm9pZCBkaXJ0eVNoYXBlU2l6ZSgpIHsgbV9zaGFwZVNpemVEaXJ0eSA9
IHRydWU7IH0KKworcHJpdmF0ZToKKyAgICBFeGNsdXNpb25TaGFwZUluZm8oY29uc3QgUmVuZGVy
VHlwZSogcmVuZGVyZXIpIDogbV9yZW5kZXJlcihyZW5kZXJlciksIG1fc2hhcGVTaXplRGlydHko
dHJ1ZSkgeyB9CisKKyAgICBjb25zdCBSZW5kZXJUeXBlKiBtX3JlbmRlcmVyOworCisgICAgRXhj
bHVzaW9uU2hhcGUqIHNoYXBlKCkgY29uc3QgeyBBU1NFUlQobV9zaGFwZSAmJiAhbV9zaGFwZVNp
emVEaXJ0eSk7IHJldHVybiBtX3NoYXBlLmdldCgpOyB9OworICAgIE93blB0cjxFeGNsdXNpb25T
aGFwZT4gbV9zaGFwZTsKKworICAgIExheW91dFVuaXQgbV9saW5lVG9wOworICAgIExheW91dFVu
aXQgbV9saW5lSGVpZ2h0OworICAgIExheW91dFVuaXQgbV9sb2dpY2FsV2lkdGg7CisgICAgTGF5
b3V0VW5pdCBtX2xvZ2ljYWxIZWlnaHQ7CisKKyAgICBTZWdtZW50TGlzdCBtX3NlZ21lbnRzOwor
ICAgIGJvb2wgbV9zaGFwZVNpemVEaXJ0eTsKKworICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2Fs
Qm91bmRzWSgpIGNvbnN0CisgICAgeworICAgICAgICAvLyBVc2UgZnJvbUZsb2F0Q2VpbCgpIHRv
IGVuc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBMYXlvdXRVbml0IHZhbHVlIGlzIHdpdGhpbiB0aGUg
c2hhcGUncyBib3VuZHMuCisgICAgICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWls
KHNoYXBlKCktPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkueSgpKTsKKyAgICB9CisgICAgCisg
ICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxCb3VuZHNNYXhZKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIC8vIFVzZSBmcm9tRmxvYXRGbG9vcigpIHRvIGVuc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBM
YXlvdXRVbml0IHZhbHVlIGlzIHdpdGhpbiB0aGUgc2hhcGUncyBib3VuZHMuCisgICAgICAgIHJl
dHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRGbG9vcihzaGFwZSgpLT5zaGFwZUxvZ2ljYWxCb3Vu
ZGluZ0JveCgpLm1heFkoKSk7CisgICAgfQorCisgICAgc3RhdGljIEJhc2ljU2hhcGUqIGJhc2lj
U2hhcGVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJUeXBlKik7CisgICAgc3RhdGljIHZvaWQgc2Vn
bWVudHNGb3JFeGNsdXNpb25TaGFwZShFeGNsdXNpb25TaGFwZSosIExheW91dFVuaXQgbGluZVRv
cCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0LCBTZWdtZW50TGlzdCYgc2VnbWVudHMpOworfTsKKwor
dHlwZWRlZiBFeGNsdXNpb25TaGFwZUluZm88UmVuZGVyQmxvY2ssIENTU1Byb3BlcnR5V2Via2l0
U2hhcGVJbnNpZGU+IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzsKK30KKyNlbmRpZgorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzgzMGYxMGVmNmJlNGMz
OTIzMDc4MzUzYzRkMDk4N2Q3NzFhMGRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8uY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTE4ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwotICogICAgZGlz
Y2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCi0gKiAg
ICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQotICogTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAotICogT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgotICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCi0gKiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAq
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8uaCIKLQotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLQot
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKLSNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi10eXBlZGVmIEhhc2hNYXA8Y29uc3QgUmVuZGVyQmxvY2sqLCBPd25Q
dHI8RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvPiA+IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01h
cDsKLQotc3RhdGljIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCYgZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvTWFwKCkKLXsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mb01hcCwgc3RhdGljRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwLCAoKSk7Ci0g
ICAgcmV0dXJuIHN0YXRpY0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcDsKLX0KLQotRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvOjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oUmVuZGVyQmxvY2sq
IGJsb2NrKQotICAgIDogbV9ibG9jayhibG9jaykKLSAgICAsIG1fc2hhcGVTaXplRGlydHkodHJ1
ZSkKLXsKLX0KLQotRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjp+RXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvKCkKLXsKLX0KLQotRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm86OmVuc3VyZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2Nr
KFJlbmRlckJsb2NrKiBibG9jaykKLXsKLSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXA6
OkFkZFJlc3VsdCByZXN1bHQgPSBleGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAoKS5hZGQoYmxv
Y2ssIGNyZWF0ZShibG9jaykpOwotICAgIHJldHVybiByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmdl
dCgpOwotfQotCi1FeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbzo6ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVy
QmxvY2sqIGJsb2NrKQotewotICAgIEFTU0VSVChibG9jay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUo
KSk7Ci0gICAgcmV0dXJuIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCgpLmdldChibG9jayk7
Ci19Ci0KLWJvb2wgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0V4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayogYmxvY2spCi17
Ci0gICAgLy8gRklYTUU6IEJ1ZyA4OTcwNzogRW5hYmxlIHNoYXBlIGluc2lkZSBmb3Igbm9uLXJl
Y3Rhbmd1bGFyIHNoYXBlcwotICAgIEJhc2ljU2hhcGUqIHNoYXBlID0gYmxvY2stPnN0eWxlKCkt
PnNoYXBlSW5zaWRlKCk7Ci0gICAgcmV0dXJuIHNoYXBlICYmIChzaGFwZS0+dHlwZSgpID09IEJh
c2ljU2hhcGU6OkJBU0lDX1NIQVBFX1JFQ1RBTkdMRSB8fCBzaGFwZS0+dHlwZSgpID09IEJhc2lj
U2hhcGU6OkJBU0lDX1NIQVBFX1BPTFlHT04pOwotfQotCi12b2lkIEV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbzo6cmVtb3ZlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soY29u
c3QgUmVuZGVyQmxvY2sqIGJsb2NrKQotewotICAgIGlmICghYmxvY2stPnN0eWxlKCkgfHwgIWJs
b2NrLT5zdHlsZSgpLT5zaGFwZUluc2lkZSgpKQotICAgICAgICByZXR1cm47Ci0gICAgZXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvTWFwKCkucmVtb3ZlKGJsb2NrKTsKLX0KLQotdm9pZCBFeGNsdXNp
b25TaGFwZUluc2lkZUluZm86OmNvbXB1dGVTaGFwZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lk
dGgsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCkKLXsKLSAgICBpZiAoIW1fc2hhcGVTaXplRGly
dHkgJiYgbG9naWNhbFdpZHRoID09IG1fbG9naWNhbFdpZHRoICYmIGxvZ2ljYWxIZWlnaHQgPT0g
bV9sb2dpY2FsSGVpZ2h0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3NoYXBlU2l6ZURpcnR5
ID0gZmFsc2U7Ci0gICAgbV9sb2dpY2FsV2lkdGggPSBsb2dpY2FsV2lkdGg7Ci0gICAgbV9sb2dp
Y2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodDsKLQotICAgIC8vIEZJWE1FOiBCdWcgODk5OTM6IFRo
ZSB3cmFwIHNoYXBlIG1heSBjb21lIGZyb20gdGhlIHBhcmVudCBvYmplY3QKLSAgICBCYXNpY1No
YXBlKiBzaGFwZSA9IG1fYmxvY2stPnN0eWxlKCktPnNoYXBlSW5zaWRlKCk7Ci0gICAgQVNTRVJU
KHNoYXBlKTsKLQotICAgIG1fc2hhcGUgPSBFeGNsdXNpb25TaGFwZTo6Y3JlYXRlRXhjbHVzaW9u
U2hhcGUoc2hhcGUsIGxvZ2ljYWxXaWR0aCwgbG9naWNhbEhlaWdodCwgbV9ibG9jay0+c3R5bGUo
KS0+d3JpdGluZ01vZGUoKSk7Ci0gICAgQVNTRVJUKG1fc2hhcGUpOwotfQotCi1ib29sIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxp
bmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkKLXsKLSAgICBBU1NFUlQobGluZUhlaWdodCA+
PSAwKTsKLSAgICBtX2xpbmVUb3AgPSBsaW5lVG9wOwotICAgIG1fbGluZUhlaWdodCA9IGxpbmVI
ZWlnaHQ7Ci0gICAgbV9zZWdtZW50cy5jbGVhcigpOwotCi0gICAgaWYgKGxpbmVPdmVybGFwc1No
YXBlQm91bmRzKCkpIHsKLSAgICAgICAgQVNTRVJUKG1fc2hhcGUpOwotICAgICAgICBtX3NoYXBl
LT5nZXRJbmNsdWRlZEludGVydmFscyhsaW5lVG9wLCBzdGQ6Om1pbihsaW5lSGVpZ2h0LCBzaGFw
ZUxvZ2ljYWxCb3R0b20oKSAtIGxpbmVUb3ApLCBtX3NlZ21lbnRzKTsKLSAgICB9Ci0gICAgcmV0
dXJuIG1fc2VnbWVudHMuc2l6ZSgpOwotfQotCi19Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOGJlMTE0ZDRiMmNhM2MwMWExZDQyNzgzZGU4ZmZkOWJhNzgxZTEz
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgKKysrIC9kZXYvbnVs
bApAQCAtMSwxMDUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBZG9iZSBTeXN0
ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwotICogICAgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKLSAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIEJFCi0gKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCi0gKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SCi0gKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YKLSAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgotICogU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9faAotI2RlZmluZSBFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm9faAotCi0jaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotCi0jaW5jbHVkZSAiRXhj
bHVzaW9uU2hhcGUuaCIKLSNpbmNsdWRlICJGbG9hdFJlY3QuaCIKLSNpbmNsdWRlICJMYXlvdXRV
bml0LmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIFJlbmRlckJsb2NrOwotCi1jbGFzcyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gewotICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIH5FeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8oKTsKLQotICAgIHN0YXRpYyBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbz4gY3JlYXRlKFJlbmRlckJsb2NrKiBibG9jaykgeyByZXR1cm4gYWRvcHRQdHIobmV3IEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhibG9jaykpOyB9Ci0gICAgc3RhdGljIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soY29u
c3QgUmVuZGVyQmxvY2sqKTsKLSAgICBzdGF0aWMgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBl
bnN1cmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayhSZW5kZXJCbG9jayop
OwotICAgIHN0YXRpYyB2b2lkIHJlbW92ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRl
ckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKik7Ci0gICAgc3RhdGljIGJvb2wgaXNFeGNsdXNpb25T
aGFwZUluc2lkZUluZm9FbmFibGVkRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqKTsK
LQotICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsVG9wKCkgY29uc3QgeyByZXR1cm4gc2hhcGVM
b2dpY2FsQm91bmRzWSgpOyB9Ci0gICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxCb3R0b20oKSBj
b25zdCB7IHJldHVybiBzaGFwZUxvZ2ljYWxCb3VuZHNNYXhZKCk7IH0KLSAgICBib29sIGxpbmVP
dmVybGFwc1NoYXBlQm91bmRzKCkgY29uc3QgeyByZXR1cm4gbV9saW5lVG9wIDwgc2hhcGVMb2dp
Y2FsQm90dG9tKCkgJiYgbV9saW5lVG9wICsgbV9saW5lSGVpZ2h0ID49IHNoYXBlTG9naWNhbFRv
cCgpOyB9Ci0KLSAgICBib29sIGhhc1NlZ21lbnRzKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpICYmIG1fc2VnbWVudHMuc2l6ZSgpOwotICAg
IH0KLSAgICBjb25zdCBTZWdtZW50TGlzdCYgc2VnbWVudHMoKSBjb25zdAotICAgIHsKLSAgICAg
ICAgQVNTRVJUKGhhc1NlZ21lbnRzKCkpOwotICAgICAgICByZXR1cm4gbV9zZWdtZW50czsKLSAg
ICB9Ci0gICAgYm9vbCBjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwg
TGF5b3V0VW5pdCBsaW5lSGVpZ2h0KTsKLSAgICB2b2lkIGNvbXB1dGVTaGFwZVNpemUoTGF5b3V0
VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCk7Ci0gICAgdm9pZCBk
aXJ0eVNoYXBlU2l6ZSgpIHsgbV9zaGFwZVNpemVEaXJ0eSA9IHRydWU7IH0KLQotcHJpdmF0ZToK
LSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oUmVuZGVyQmxvY2sqKTsKLQotICAgIGlubGlu
ZSBMYXlvdXRVbml0IHNoYXBlTG9naWNhbEJvdW5kc1koKSBjb25zdAotICAgIHsKLSAgICAgICAg
QVNTRVJUKG1fc2hhcGUpOwotICAgICAgICAvLyBVc2UgZnJvbUZsb2F0Q2VpbCgpIHRvIGVuc3Vy
ZSB0aGF0IHRoZSByZXR1cm5lZCBMYXlvdXRVbml0IHZhbHVlIGlzIHdpdGhpbiB0aGUgc2hhcGUn
cyBib3VuZHMuCi0gICAgICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKG1fc2hh
cGUtPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkueSgpKTsKLSAgICB9Ci0KLSAgICBpbmxpbmUg
TGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxCb3VuZHNNYXhZKCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IEFTU0VSVChtX3NoYXBlKTsKLSAgICAgICAgLy8gVXNlIGZyb21GbG9hdEZsb29yKCkgdG8gZW5z
dXJlIHRoYXQgdGhlIHJldHVybmVkIExheW91dFVuaXQgdmFsdWUgaXMgd2l0aGluIHRoZSBzaGFw
ZSdzIGJvdW5kcy4KLSAgICAgICAgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdEZsb29yKG1f
c2hhcGUtPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkubWF4WSgpKTsKLSAgICB9Ci0KLSAgICBS
ZW5kZXJCbG9jayogbV9ibG9jazsKLSAgICBPd25QdHI8RXhjbHVzaW9uU2hhcGU+IG1fc2hhcGU7
Ci0KLSAgICBMYXlvdXRVbml0IG1fbGluZVRvcDsKLSAgICBMYXlvdXRVbml0IG1fbGluZUhlaWdo
dDsKLSAgICBMYXlvdXRVbml0IG1fbG9naWNhbFdpZHRoOwotICAgIExheW91dFVuaXQgbV9sb2dp
Y2FsSGVpZ2h0OwotCi0gICAgU2VnbWVudExpc3QgbV9zZWdtZW50czsKLSAgICBib29sIG1fc2hh
cGVTaXplRGlydHk7Ci19OwotCi19Ci0jZW5kaWYKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvTGF5b3V0U3RhdGUuaAppbmRleCAzODU3MWY5MWQ3OGFmNjE4MDQ5ODFkZTExY2ZiNDkzZTRm
NmM2OTIyLi41NWQ4MDQ3ODFlYmJkODljZWM2M2JiZGMxNzEzZWRhNjU4MjQwMTAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaApAQCAtMzEsNiArMzEsMTAgQEAKICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCisjaWYg
RU5BQkxFKENTU19FWENMVVNJT05TKQorI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5mby5oIgor
I2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyQXJlbmE7CkBAIC0z
OCw5ICs0Miw2IEBAIGNsYXNzIFJlbmRlckJsb2NrOwogY2xhc3MgUmVuZGVyQm94OwogY2xhc3Mg
UmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVyRmxvd1RocmVhZDsKLSNpZiBFTkFCTEUoQ1NTX0VY
Q0xVU0lPTlMpCi1jbGFzcyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm87Ci0jZW5kaWYKIAogY2xh
c3MgTGF5b3V0U3RhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExheW91dFN0YXRlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NYXBwZWRJbmZvLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFwcGVkSW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyODgxMjJkNmY3
ZmJhNjc5MzE5YjYzMmY0OWY2MjM2MDMyM2FkZTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTWFwcGVkSW5mby5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAg
ZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisg
KiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICog
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNYXBwZWRJbmZvX2gKKyNkZWZpbmUgTWFwcGVk
SW5mb19oCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KwordGVtcGxhdGUgPGNsYXNzIEtleVR5cGUsIGNsYXNzIEluZm9UeXBlPgorY2xhc3MgTWFwcGVk
SW5mbyB7CisgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgSW5mb1R5cGUqIGVuc3VyZUluZm8o
Y29uc3QgS2V5VHlwZSopOworICAgICAgICBzdGF0aWMgdm9pZCByZW1vdmVJbmZvKGNvbnN0IEtl
eVR5cGUqKTsKKyAgICAgICAgc3RhdGljIEluZm9UeXBlKiBpbmZvKGNvbnN0IEtleVR5cGUqKTsK
KyAgICBwcml2YXRlOgorICAgICAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgS2V5VHlwZSosIE93
blB0cjxJbmZvVHlwZT4gPiBJbmZvTWFwOworICAgICAgICBzdGF0aWMgSW5mb01hcCYgaW5mb01h
cCgpOworfTsKKwordGVtcGxhdGUgPGNsYXNzIEtleVR5cGUsIGNsYXNzIEluZm9UeXBlPgordHlw
ZW5hbWUgTWFwcGVkSW5mbzxLZXlUeXBlLCBJbmZvVHlwZT46OkluZm9NYXAmIE1hcHBlZEluZm88
S2V5VHlwZSwgSW5mb1R5cGU+OjppbmZvTWFwKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEluZm9NYXAsIHN0YXRpY0luZm9NYXAsICgpKTsKKyAgICByZXR1cm4gc3RhdGljSW5mb01hcDsK
K30KKwordGVtcGxhdGUgPGNsYXNzIEtleVR5cGUsIGNsYXNzIEluZm9UeXBlPgorSW5mb1R5cGUq
IE1hcHBlZEluZm88S2V5VHlwZSwgSW5mb1R5cGU+OjplbnN1cmVJbmZvKGNvbnN0IEtleVR5cGUq
IGtleSkKK3sKKyAgICBJbmZvTWFwJiBpbmZvTWFwID0gTWFwcGVkSW5mbzxLZXlUeXBlLCBJbmZv
VHlwZT46OmluZm9NYXAoKTsKKyAgICBpZiAoSW5mb1R5cGUqIGluZm8gPSBpbmZvTWFwLmdldChr
ZXkpKQorICAgICAgICByZXR1cm4gaW5mbzsKKyAgICB0eXBlbmFtZSBJbmZvTWFwOjpBZGRSZXN1
bHQgcmVzdWx0ID0gaW5mb01hcC5hZGQoa2V5LCBJbmZvVHlwZTo6Y3JlYXRlSW5mbyhrZXkpKTsK
KyAgICByZXR1cm4gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKK30KKwordGVtcGxhdGUg
PGNsYXNzIEtleVR5cGUsIGNsYXNzIEluZm9UeXBlPgordm9pZCBNYXBwZWRJbmZvPEtleVR5cGUs
IEluZm9UeXBlPjo6cmVtb3ZlSW5mbyhjb25zdCBLZXlUeXBlKiBrZXkpCit7CisgICAgaW5mb01h
cCgpLnJlbW92ZShrZXkpOworfQorCit0ZW1wbGF0ZSA8Y2xhc3MgS2V5VHlwZSwgY2xhc3MgSW5m
b1R5cGU+CitJbmZvVHlwZSogTWFwcGVkSW5mbzxLZXlUeXBlLCBJbmZvVHlwZT46OmluZm8oY29u
c3QgS2V5VHlwZSoga2V5KQoreworICAgIHJldHVybiBpbmZvTWFwKCkuZ2V0KGtleSk7Cit9CisK
K30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXgg
MTlhMWFmYWZhM2M0MDUzYzc3MGFhMzA2MzI5NTJjZjg2MWE3OTY4My4uYTY1MGI4NGFkZWRjYjM3
NWI0MzU1OGQ3ZjgyNjMxODBlZjJhOTJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCkBAIC02Myw3ICs2Myw3IEBACiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUu
aCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQotI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIgorI2luY2x1ZGUgIkV4
Y2x1c2lvblNoYXBlSW5mby5oIgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC0y
NzgsNyArMjc4LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6d2lsbEJlRGVzdHJveWVkKCkKICAgICAg
ICAgbGluZUdyaWRCb3goKS0+ZGVzdHJveShyZW5kZXJBcmVuYSgpKTsKIAogI2lmIEVOQUJMRShD
U1NfRVhDTFVTSU9OUykKLSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OnJlbW92ZUV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKHRoaXMpOworICAgIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbzo6cmVtb3ZlSW5mbyh0aGlzKTsKICNlbmRpZgogCiAgICAgaWYgKFVOTElL
RUxZKGdEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCAhPSAwKSkKQEAgLTE0MDUsMTAgKzE0MDUs
MTAgQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvQWZ0
ZXJTdHlsZUNoYW5nZShjb25zdCBCYXNpY1NoYXAKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KHNoYXBlSW5zaWRlKSB7Ci0gICAgICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvID0gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjplbnN1cmVFeGNs
dXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsKKyAgICAgICAgRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8gPSBFeGNsdXNpb25T
aGFwZUluc2lkZUluZm86OmVuc3VyZUluZm8odGhpcyk7CiAgICAgICAgIGV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mby0+ZGlydHlTaGFwZVNpemUoKTsKICAgICB9IGVsc2UKLSAgICAgICAgRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvOjpyZW1vdmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5k
ZXJCbG9jayh0aGlzKTsKKyAgICAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpyZW1vdmVJ
bmZvKHRoaXMpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmgKaW5kZXggNTVhMDAxZjYxYzRjYjNhMTIyZWFlOWRhNzhjZmZhMjBjOTY3NDIyNy4uZDE5ODlj
ZjU0OTlhYTViY2Q0M2FhOWViZTIyZTA3MDY4OWFmN2VlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmgKQEAgLTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlIDx3dGYvTGlzdEhh
c2hTZXQuaD4KIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSNpbmNsdWRlICJFeGNsdXNp
b25TaGFwZUluc2lkZUluZm8uaCIKKyNpbmNsdWRlICJFeGNsdXNpb25TaGFwZUluZm8uaCIKICNl
bmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NSw2ICs0NSw3IEBAIGNsYXNzIElubGlu
ZUl0ZXJhdG9yOwogY2xhc3MgTGF5b3V0U3RhdGVNYWludGFpbmVyOwogY2xhc3MgTGluZUxheW91
dFN0YXRlOwogY2xhc3MgTGluZVdpZHRoOworY2xhc3MgUmVuZGVyQmxvY2s7CiBjbGFzcyBSZW5k
ZXJJbmxpbmU7CiBjbGFzcyBSZW5kZXJUZXh0OwogCkBAIC00MjMsNyArNDI0LDcgQEAgcHVibGlj
OgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1
cm4gc3R5bGUoKS0+c2hhcGVJbnNpZGUoKSAmJiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86Omlz
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRW5hYmxlZEZvclJlbmRlckJsb2NrKHRoaXMpID8gRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpleGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJC
bG9jayh0aGlzKSA6IDA7CisgICAgICAgIHJldHVybiBzdHlsZSgpLT5zaGFwZUluc2lkZSgpICYm
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aXNJbmZvRW5hYmxlZEZvclJlbmRlcmVyKHRoaXMp
ID8gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppbmZvKHRoaXMpIDogMDsKICAgICB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5
b3V0LmNwcAppbmRleCBiOTNhOGM3NWZmMjJiN2ZiMDgzOTRjMjk4NjdmYmFkOGY1ODg0ZTJiLi4z
NjU2ZTViYjU1YTUxYzFhYWJiZGJlYjAyODJkOGRlNzI3MjQ3OTY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtNDYsNyAr
NDYsNyBAQAogI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CiAKICNpZiBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0jaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
LmgiCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVJbmZvLmgiCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShTVkcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174266</attachid>
            <date>2012-11-14 14:48:07 -0800</date>
            <delta_ts>2012-11-14 16:11:52 -0800</delta_ts>
            <desc>Updating patch</desc>
            <filename>bug-100766-20121114144606.patch</filename>
            <type>text/plain</type>
            <size>41213</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY5YmZiNWY4ZWMyMDA3
YmJjZmU4MzBlODY2YzdjZDcxNjk3ZDlhMy4uZjgwOTMyMjBjOGNkYjE4MWEyY2Q4NzE3OTIyYWYw
NTEwNDQzZDRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTExLTE0ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IFJlZmFjdG9yIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyB0byBtb3JlIGdlbmVyYWwgRXhjbHVz
aW9uU2hhcGVJbmZvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDA3NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZWZhY3RvcmluZyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gdG8gdGhlIG1vcmUgZ2Vu
ZXJhbCBFeGNsdXNpb25TaGFwZUluZm8sIHdoaWNoCisgICAgICAgIGNhbiBiZSB1c2VkIGJ5IGJv
dGggdGhlIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBhbmQgRXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mbyB0eXBlcy4KKyAgICAgICAgVGhpcyByZWZhY3RvcmluZyBvcHRzIGZvciBhIHRlbXBsYXRl
IGNsYXNzLCBhcyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gYXBwbGllcyB0bworICAgICAgICBS
ZW5kZXJCbG9jaywgd2hpbGUgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyBhcHBsaWVzIHRvIFJl
bmRlckJveC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gY3JlYXRlcyB0aGUgTWFwcGVkSW5m
byB0eXBlLCB0byBnZW5lcmFsaXplIHRoZSBwYXJhZGlnbSBvZiBjcmVhdGluZworICAgICAgICBh
biBpbmZvIHR5cGUgcGVyIGtleSBhbmQgc3RvcmluZyBpdCBpbiBhIGdsb2JhbCBtYXAuCisKKyAg
ICAgICAgUmVmYWN0b3JpbmcsIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDogTWFrZWZpbGUgcmVuYW1lIGZyb20gRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvIHRvIEV4Y2x1c2lvblNoYXBlSW5mby4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQucHJpOiBEaXR0by4KKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERp
dHRvLgorICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5j
cHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6bGluZU92ZXJsYXBz
U2hhcGVCb3VuZHMpOiBVcGRhdGluZyB0byBFeGNsdXNpb25TaGFwZUluZm8gY2xhc3MgdGVtcGxh
dGUuCisgICAgICAgIChXZWJDb3JlOjo6OmlzSW5mb0VuYWJsZWRGb3JSZW5kZXJlcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Ojpjb21wdXRlU2hhcGVTaXplKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjo6OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUpOiBEaXR0by4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmguCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHJlbmRlcmluZy9NYXBwZWRJbmZvLmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChNYXBwZWRJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6aW5mb01h
cCk6IFJldHJpZXZlIHRoZSBzdGF0aWMgbWFwIHVzZWQgdG8gc3RvcmUgaW5mb3MuCisgICAgICAg
IChXZWJDb3JlOjo6OmVuc3VyZUluZm8pOiBQbGFjZSBhbiBpbmZvIGZvciB0aGUgZ2l2ZW4ga2V5
IGlmIG9uZSBkb2VzIG5vdCBleGlzdC4KKyAgICAgICAgKFdlYkNvcmU6Ojo6cmVtb3ZlSW5mbyk6
IFJlbW92ZSB0aGUgaW5mbyBmb3IgdGhlIGdpdmVuIGtleS4KKyAgICAgICAgKFdlYkNvcmU6Ojo6
aW5mbyk6IExvb2sgdXAgdGhlIGluZm8gZm9yIHRoZSBnaXZlbiBrZXkuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp3
aWxsQmVEZXN0cm95ZWQpOiBSZWZhY3RvciB0byB1c2UgdGhlIG5ldyBFeGNsdXNpb25TaGFwZUlu
Zm8KKyAgICAgICAgbWV0aG9kIG5hbWVzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UpOiBEaXR0by4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyk6
IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgor
CiAyMDEyLTExLTEzICBBbmRyZWkgQnVjdXIgIDxhYnVjdXJAYWRvYmUuY29tPgogCiAgICAgICAg
IFtDU1MgUmVnaW9uc10gQWRkIFJlZ2lvbiBpbmZvIGZvciBSb290TGluZUJveGVzIGFuZCBwYWNr
IHRoZSBwYWdpbmF0aW9uIGRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZGIwZmE0OTkyM2Iz
ZjNkZGQ3MzM2YmI4ZmU4MzdmODI2OWI3ZDU1NC4uOTJiNmVhZTA1ZTVkNzI4YjA5NDc1YTU5NTdk
MDcyMDU1Mzg3YWVlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTIwNDgsNyArMjA0OCw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5jcHAK
ICAgICByZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcAogICAgIHJlbmRlcmluZy9FeGNs
dXNpb25TaGFwZS5jcHAKLSAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNw
cAorICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwCiAgICAgcmVuZGVyaW5nL0Zp
bHRlckVmZmVjdFJlbmRlcmVyLmNwcAogICAgIHJlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNw
cAogICAgIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDI0NGMwZjc0NTgwZDdmMTU5YzBlMDI1ZTg4NGViNWMwMTY1ODQz
MzUuLjAxMTYxYWVjY2RjZDc1OGQxZDA3OWQ0MDAwODM5MDQwMTZhNDZjNTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNDk0NCw4ICs0OTQ0LDggQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmggXAog
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5oIFwKLQlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V4Y2x1c2lvblNoYXBlSW5mby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVy
RWZmZWN0UmVuZGVyZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmlsdGVyRWZm
ZWN0UmVuZGVyZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlv
dXQuY3BwIFwKQEAgLTQ5NjksNiArNDk2OSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmggXAogCVNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xh
eW91dFJlcGFpbnRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NYXBwZWRJbmZv
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9PdmVybGFwVGVzdFJlcXVlc3RDbGllbnQu
aCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1BhZ2luYXRpb24uaCBcCiAJU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1BhaW50SW5mby5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDVkZDgxZWQyZjg3
OTc5MDE5MmRmN2I5MTgxYmVmNzNjZDM4ZGM2ZmQuLmQwYTZmZjAwYmIyZDM5MjljNDdlNWVlOGY1
MDQ3ZTk5YWU0YjkzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysr
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTEyMCw3ICsxMTIwLDcgQEAgU09VUkNF
UyArPSBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwIFwKICAgICByZW5kZXJp
bmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
LmNwcCBcCi0gICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgXAorICAg
IHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwIFwKICAgICByZW5kZXJpbmcvRmlsdGVy
RWZmZWN0UmVuZGVyZXIuY3BwIFwKICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAg
XAogICAgIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHAgXApAQCAtMjMzMCw3ICsy
MzMwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uaCBc
CiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5oIFwKICAgICByZW5kZXJpbmcvRXhj
bHVzaW9uU2hhcGUuaCBcCi0gICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5o
IFwKKyAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmggXAogICAgIHJlbmRlcmluZy9G
aWx0ZXJFZmZlY3RSZW5kZXJlci5oIFwKICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5o
IFwKICAgICByZW5kZXJpbmcvSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmggXApAQCAtMjM0MCw2
ICsyMzQwLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5nL0lubGluZVRleHRCb3guaCBc
CiAgICAgcmVuZGVyaW5nL0xheW91dFN0YXRlLmggXAogICAgIHJlbmRlcmluZy9MYXlvdXRSZXBh
aW50ZXIuaCBcCisgICAgcmVuZGVyaW5nL01hcHBlZEluZm8uaCBcCiAgICAgcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxCbG9jay5oIFwKICAgICByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1h
dGhNTEZlbmNlZC5oIFwKICAgICByZW5kZXJpbmcvbWF0aG1sL1JlbmRlck1hdGhNTEZyYWN0aW9u
LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IGNlZjk0Yjk5MzAzMzQzZDg3ZDhlZWM1ZTliNTJhNDRl
MTRiMDBjZGEuLmFmMGRiNzNkOTllZDk3NDY1YTQyN2E1N2IyN2NhOWM0ZTExYTY1NGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKQEAgLTMyODMsOCArMzI4Myw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5n
L0V4Y2x1c2lvblJlY3RhbmdsZS5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvRXhjbHVzaW9u
U2hhcGUuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuaCcsCi0g
ICAgICAgICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAnLAotICAg
ICAgICAgICAgJ3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCcsCisgICAgICAg
ICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5jcHAnLAorICAgICAgICAgICAgJ3Jl
bmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0Zp
bHRlckVmZmVjdFJlbmRlcmVyLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0ZpbHRlckVm
ZmVjdFJlbmRlcmVyLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0
LmNwcCcsCkBAIC0zMzAyLDYgKzMzMDIsNyBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcCcs
CiAgICAgICAgICAgICAncmVuZGVyaW5nL0xheW91dFJlcGFpbnRlci5jcHAnLAorICAgICAgICAg
ICAgJ3JlbmRlcmluZy9NYXBwZWRJbmZvLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9Qb2lu
dGVyRXZlbnRzSGl0UnVsZXMuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUG9pbnRlckV2
ZW50c0hpdFJ1bGVzLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9SZW5kZXJBcHBsZXQuY3Bw
JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
NzdjODVlNTEyMzQwMWU3ZTg4M2I0ZWQwMmRiOTYxNTRjYjljOGE1My4uNGIyZGMzMDhjMjE5YmJl
NjU2YjViY2NlZmRlZWY1Y2VhMmRiNmIyOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTM4NDQzLDExICszODQ0MywxMSBAQAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+
CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mby5jcHAiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcRXhjbHVzaW9u
U2hhcGVJbmZvLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQotCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccmVuZGVyaW5nXEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIgorCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccmVuZGVyaW5nXEV4Y2x1c2lvblNoYXBlSW5mby5oIgogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCkBAIC0zODk3NSw2ICszODk3NSwxMCBAQAogCQkJCT4KIAkJCTwvRmls
ZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcTWFwcGVkSW5mby5o
IgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5k
ZXJpbmdcUGFpbnRJbmZvLmgiCiAJCQkJPgogCQkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGI1MDFlOWI3OWY3OTA1
YzM3Mzg4N2Q0M2U2NjZmZmZiZWY4NjhkNzIuLmRiMGRlODY5MDQ0YTgxNzdlYWVmNzk1MDRjZGUz
OWIwNjAyNzBjYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTY1MDMsNiArNjUwMyw3IEBACiAJCUZENjI5RUEzMTU0QjQ3MTYw
MDA2RDAyNiAvKiBBdWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2MjlFQTExNTRCNDcxNjAwMDZEMDI2IC8qIEF1
ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmggKi87IH07CiAJCUZENjI5RUE0MTU0QjQ3MTYwMDA2RDAy
NiAvKiBBdWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDYyOUVBMjE1NEI0NzE2MDAwNkQwMjYgLyogQXVkaW9C
YXNpY0luc3BlY3Rvck5vZGUuY3BwICovOyB9OwogCQlGRDYyRjUyRTE0NTg5OEQ4MDA5NEIwRUQg
LyogQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2MkY1MkQxNDU4OThEODAwOTRCMEVEIC8qIEF1ZGlvU291
cmNlUHJvdmlkZXJDbGllbnQuaCAqLzsgfTsKKwkJRkQ2NTRERjkxNjUyRUYzQzAwODI3MEVCIC8q
IE1hcHBlZEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZENjU0REY3MTY1MkU4MjMwMDgyNzBFQiAvKiBNYXBwZWRJbmZvLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRkQ2NzFBNzcxNTlCQjA3MDAw
MTk3NTU5IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENjcxQTc0MTU5QkIwNzAwMDE5NzU1OSAv
KiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAgKi87IH07CiAJCUZENjcxQTc4MTU5QkIw
NzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2NzFBNzUxNTlCQjA3MDAwMTk3NTU5
IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmggKi87IH07CiAJCUZENkVEMkMzMTM2QjhF
NDIwMDNDRjA3MiAvKiBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENkVEMkMxMTM2QjhFNDIwMDNDRjA3MiAv
KiBEeW5hbWljc0NvbXByZXNzb3JOb2RlLmNwcCAqLzsgfTsKQEAgLTY1MTEsOCArNjUxMiw4IEBA
CiAJCUZENkVEMkM4MTM2QjhFNjYwMDNDRjA3MiAvKiBEeW5hbWljc0NvbXByZXNzb3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENkVEMkM2MTM2QjhF
NjYwMDNDRjA3MiAvKiBEeW5hbWljc0NvbXByZXNzb3IuaCAqLzsgfTsKIAkJRkQ2RjI1MkMxM0Y1
RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDZGMjUyOTEzRjVFRjBFMDA2
NTE2NUYgLyogTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcCAqLzsgfTsKIAkJRkQ2RjI1
MkQxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ2RjI1MkExM0Y1RUYw
RTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oICovOyB9OwotCQlGRDc0
OEFCRjE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENzQ4QUJEMTVCRjc0
RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwICovOyB9OwotCQlGRDc0
OEFDMDE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDc0OEFCRTE1QkY3NEVE
MDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkQ3NDhBQkYxNUJGNzRFRDAwNTlDRjBE
IC8qIEV4Y2x1c2lvblNoYXBlSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGRDc0OEFCRDE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hh
cGVJbmZvLmNwcCAqLzsgfTsKKwkJRkQ3NDhBQzAxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lv
blNoYXBlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRkQ3NDhBQkUxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5mby5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZENzg2OEI5MTM2
Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ3ODY4QjcxMzZCOTk5MjAwRDQw
M0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHAgKi87IH07CiAJCUZENzg2OEJBMTM2
Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENzg2OEI4MTM2Qjk5OTIwMEQ0MDNE
RiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaCAqLzsgfTsKIAkJRkQ3RjI5OTExM0Q0QzBD
QjAwQUQ5NTM1IC8qIFdhdmVTaGFwZXJEU1BLZXJuZWwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ3RjI5OEExM0Q0QzBDQjAwQUQ5NTM1IC8qIFdh
dmVTaGFwZXJEU1BLZXJuZWwuY3BwICovOyB9OwpAQCAtMTM5OTAsNiArMTM5OTEsNyBAQAogCQlG
RDYyOUVBMTE1NEI0NzE2MDAwNkQwMjYgLyogQXVkaW9CYXNpY0luc3BlY3Rvck5vZGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9CYXNpY0luc3BlY3Rvck5vZGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ2MjlFQTIxNTRCNDcxNjAwMDZEMDI2IC8q
IEF1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEF1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRkQ2MkY1MkQxNDU4OThEODAwOTRCMEVEIC8qIEF1ZGlvU291cmNlUHJvdmlk
ZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9Tb3VyY2VQ
cm92aWRlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGRDY1NERGNzE2
NTJFODIzMDA4MjcwRUIgLyogTWFwcGVkSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNYXBwZWRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZENjcx
QTc0MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVN0cmVhbUF1ZGlvU291cmNl
Tm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZENjcxQTc1MTU5QkIwNzAw
MDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGRDY3MUE3NjE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZU5vZGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE1lZGlhU3RyZWFt
QXVkaW9Tb3VyY2VOb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0MDAx
LDggKzE0MDAzLDggQEAKIAkJRkQ2RjI1MjkxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVu
dEF1ZGlvU291cmNlTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGRDZGMjUyQTEzRjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVtZW50QXVkaW9Tb3Vy
Y2VOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhRWxlbWVudEF1
ZGlvU291cmNlTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRDZGMjUyQjEz
RjVFRjBFMDA2NTE2NUYgLyogTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlGRDc0OEFCRDE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUZENzQ4QUJFMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZENzQ4QUJEMTVCRjc0RUQw
MDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRXhjbHVzaW9uU2hhcGVJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRkQ3NDhBQkUxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5m
by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNsdXNpb25TaGFwZUluZm8u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ3ODY4QjcxMzZCOTk5MjAwRDQwM0RG
IC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGRDc4NjhCODEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5hbWljc0Nv
bXByZXNzb3JOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRHluYW1p
Y3NDb21wcmVzc29yTm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRDdGMjk4
QTEzRDRDMENCMDBBRDk1MzUgLyogV2F2ZVNoYXBlckRTUEtlcm5lbC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXYXZlU2hhcGVyRFNQS2VybmVsLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxNDY5LDggKzIxNDcxLDggQEAKIAkJCQk2RTg3OThC
NzE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uUmVjdGFuZ2xlLmggKi8sCiAJCQkJNkU4Nzk4
QjgxNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblNoYXBlLmNwcCAqLywKIAkJCQk2RTg3OThC
OTE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uU2hhcGUuaCAqLywKLQkJCQlGRDc0OEFCRDE1
QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCAqLywKLQkJCQlG
RDc0OEFCRTE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggKi8s
CisJCQkJRkQ3NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5mby5jcHAg
Ki8sCisJCQkJRkQ3NDhBQkUxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5mby5o
ICovLAogCQkJCTMxMzEzRjYzMTQ0M0IzNUUwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJl
ci5jcHAgKi8sCiAJCQkJMzEzMTNGNjQxNDQzQjM1RTAwNkUyQTkwIC8qIEZpbHRlckVmZmVjdFJl
bmRlcmVyLmggKi8sCiAJCQkJQThDRkYwNDgwQTE1NEYwOTAwMEE0MjM0IC8qIEZpeGVkVGFibGVM
YXlvdXQuY3BwICovLApAQCAtMjE0OTQsNiArMjE0OTYsNyBAQAogCQkJCUExMjBBQ0EwMTNGOTk4
MzcwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuaCAqLywKIAkJCQkyRDkwNjYwNDBCRTE0MUQ0
MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwICovLAogCQkJCTJEOTA2NjA1MEJFMTQxRDQwMDk1
Njk5OCAvKiBMYXlvdXRTdGF0ZS5oICovLAorCQkJCUZENjU0REY3MTY1MkU4MjMwMDgyNzBFQiAv
KiBNYXBwZWRJbmZvLmggKi8sCiAJCQkJMzc3NEFCQTMwRkEyMUVCNDAwQUQ3REU5IC8qIE92ZXJs
YXBUZXN0UmVxdWVzdENsaWVudC5oICovLAogCQkJCTkzNzdBQjlGMTVERUZFRUYwMDMxRkQwNCAv
KiBQYWdpbmF0aW9uLmggKi8sCiAJCQkJMDg4NTA2N0QxMURBMDQ1QjAwMTgyQjk4IC8qIFBhaW50
SW5mby5oICovLApAQCAtMjI0MDEsNiArMjI0MDQsNyBAQAogCQkJZmlsZXMgPSAoCiAJCQkJQkM3
RkE2MjEwRDFGMENCRDAwREIyMkE5IC8qIER5bmFtaWNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTgxMzY5REEwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxPcHRpb25zQ29sbGVjdGlvbi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRkQ2NTRERjkxNjUyRUYzQzAwODI3MEVCIC8qIE1hcHBlZElu
Zm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OUQ4MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1M
U2VsZWN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxMzY5REMwOTczNzRGNjAwRDc0
NDYzIC8qIEhUTUxPcHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5N0JDNjlEQjE1
MDVGMDc2MDAxQjc0QUMgLyogQWJzdHJhY3REYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
MzUyMiw3ICsyMzUyNiw3IEBACiAJCQkJNkVBRjM0MTAxNjEzODY5QTAwODU5NjI1IC8qIEV4Y2x1
c2lvblBvbHlnb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTZFODc5OEJEMTVGODFFNEEwMEJGRTRB
QSAvKiBFeGNsdXNpb25SZWN0YW5nbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTZFODc5OEJGMTVG
ODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25TaGFwZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRkQ3
NDhBQzAxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRkQ3NDhBQzAxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBl
SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU2N0QyQTkxMjgwRThCRDAwODc1OEY3IC8qIEV4
dGVuc2lvbnMzRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU2N0QyQTcxMjgwRThBNDAwODc1OEY3
IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDREQUI1QjIxNUE2
MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNjc2MCw3ICsyNjc2NCw3IEBACiAJCQkJNkVBRjM0MEYxNjEzODY5QTAwODU5NjI1IC8q
IEV4Y2x1c2lvblBvbHlnb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU4Nzk4QkMxNUY4MUU0
QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblJlY3RhbmdsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2
RTg3OThCRTE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uU2hhcGUuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJRkQ3NDhBQkYxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mby5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGRDc0OEFCRjE1QkY3NEVEMDA1OUNGMEQgLyog
RXhjbHVzaW9uU2hhcGVJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFNjdEMkE2MTI4MEU4
QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDREQUI1QjExNUE2MjM1ODAwOTdDMUU0IC8qIEV4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk3NzI4Njk0RTE0Rjg4ODI1MDBGNDg0REMgLyogRVhUVGV4dHVy
ZUZpbHRlckFuaXNvdHJvcGljLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzY0NTVkMjE1
Zjg2NTE3OTBiN2RiZjYzMjUyZWFkZTI2YWUzNDE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5jcHAKQEAgLTAsMCArMSw3NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAg
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICog
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRXhjbHVzaW9uU2hhcGVJbmZvLmgiCisKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMp
CisKKyNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJlbmRlckJveC5oIgorI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlIDxjbGFzcyBSZW5kZXJUeXBlLCBCYXNpY1NoYXBlKiAo
UmVuZGVyU3R5bGU6OipzaGFwZUdldHRlcikoKSBjb25zdCwgdm9pZCAoRXhjbHVzaW9uU2hhcGU6
OippbnRlcnZhbEdldHRlcikoZmxvYXQsIGZsb2F0LCBTZWdtZW50TGlzdCYpIGNvbnN0Pgordm9p
ZCBFeGNsdXNpb25TaGFwZUluZm88UmVuZGVyVHlwZSwgc2hhcGVHZXR0ZXIsIGludGVydmFsR2V0
dGVyPjo6Y29tcHV0ZVNoYXBlU2l6ZShMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5p
dCBsb2dpY2FsSGVpZ2h0KQoreworICAgIGlmICghbV9zaGFwZVNpemVEaXJ0eSAmJiBsb2dpY2Fs
V2lkdGggPT0gbV9sb2dpY2FsV2lkdGggJiYgbG9naWNhbEhlaWdodCA9PSBtX2xvZ2ljYWxIZWln
aHQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2xvZ2ljYWxXaWR0aCA9IGxvZ2ljYWxX
aWR0aDsKKyAgICBtX2xvZ2ljYWxIZWlnaHQgPSBsb2dpY2FsSGVpZ2h0OworICAgIAorICAgIEJh
c2ljU2hhcGUqIHNoYXBlU3R5bGUgPSAobV9yZW5kZXJlci0+c3R5bGUoKS0+KnNoYXBlR2V0dGVy
KSgpOworICAgIEFTU0VSVChzaGFwZVN0eWxlKTsKKyAgICAKKyAgICBtX3NoYXBlID0gRXhjbHVz
aW9uU2hhcGU6OmNyZWF0ZUV4Y2x1c2lvblNoYXBlKHNoYXBlU3R5bGUsIG1fbG9naWNhbFdpZHRo
LCBtX2xvZ2ljYWxIZWlnaHQsIG1fcmVuZGVyZXItPnN0eWxlKCktPndyaXRpbmdNb2RlKCkpOwor
ICAgIG1fc2hhcGVTaXplRGlydHkgPSBmYWxzZTsKK30KKwordGVtcGxhdGUgPGNsYXNzIFJlbmRl
clR5cGUsIEJhc2ljU2hhcGUqIChSZW5kZXJTdHlsZTo6KnNoYXBlR2V0dGVyKSgpIGNvbnN0LCB2
b2lkIChFeGNsdXNpb25TaGFwZTo6KmludGVydmFsR2V0dGVyKShmbG9hdCwgZmxvYXQsIFNlZ21l
bnRMaXN0JikgY29uc3Q+Citib29sIEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJUeXBlLCBzaGFw
ZUdldHRlciwgaW50ZXJ2YWxHZXR0ZXI+Ojpjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVu
aXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KQoreworICAgIEFTU0VSVChsaW5lSGVp
Z2h0ID49IDApOworICAgIG1fbGluZVRvcCA9IGxpbmVUb3A7CisgICAgbV9saW5lSGVpZ2h0ID0g
bGluZUhlaWdodDsKKyAgICBtX3NlZ21lbnRzLmNsZWFyKCk7CisgICAgCisgICAgaWYgKGxpbmVP
dmVybGFwc1NoYXBlQm91bmRzKCkpCisgICAgICAgIChzaGFwZSgpLT4qaW50ZXJ2YWxHZXR0ZXIp
KGxpbmVUb3AsIHN0ZDo6bWluKGxpbmVIZWlnaHQsIHNoYXBlTG9naWNhbEJvdHRvbSgpIC0gbGlu
ZVRvcCksIG1fc2VnbWVudHMpOworICAgIAorICAgIHJldHVybiBtX3NlZ21lbnRzLnNpemUoKTsK
K30KKwordGVtcGxhdGUgY2xhc3MgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlckJsb2NrLCAmUmVu
ZGVyU3R5bGU6OnNoYXBlSW5zaWRlLCAmRXhjbHVzaW9uU2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2
YWxzPjsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4
Y2x1c2lvblNoYXBlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlSW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjYTM4OTIzMjI2ODgwZjg5MjJmYTcxMWFhZmMwNmM2NGI2
OTMwNjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVz
aW9uU2hhcGVJbmZvLmgKQEAgLTAsMCArMSwxMTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcK
KyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBFeGNsdXNpb25TaGFwZUluZm9faAorI2RlZmluZSBFeGNsdXNpb25TaGFw
ZUluZm9faAorCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorCisjaW5jbHVkZSAiRXhjbHVz
aW9uU2hhcGUuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJNYXBwZWRJbmZv
LmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyQmxvY2s7CisKK3RlbXBsYXRlIDxjbGFz
cyBSZW5kZXJUeXBlLCBCYXNpY1NoYXBlKiAoUmVuZGVyU3R5bGU6OipzaGFwZUdldHRlcikoKSBj
b25zdCwgdm9pZCAoRXhjbHVzaW9uU2hhcGU6OippbnRlcnZhbEdldHRlcikoZmxvYXQsIGZsb2F0
LCBTZWdtZW50TGlzdCYpIGNvbnN0PgorY2xhc3MgRXhjbHVzaW9uU2hhcGVJbmZvIDogcHVibGlj
IE1hcHBlZEluZm88UmVuZGVyVHlwZSwgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlclR5cGUsIHNo
YXBlR2V0dGVyLCBpbnRlcnZhbEdldHRlcj4gPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CitwdWJsaWM6CisgICAgfkV4Y2x1c2lvblNoYXBlSW5mbygpIHsgfQorCisgICAgc3RhdGlj
IFBhc3NPd25QdHI8RXhjbHVzaW9uU2hhcGVJbmZvPiBjcmVhdGVJbmZvKGNvbnN0IFJlbmRlck9i
amVjdCogcmVuZGVyZXIpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBFeGNsdXNpb25TaGFwZUluZm8o
cmVuZGVyZXIpKTsgfQorICAgIHN0YXRpYyBib29sIGlzSW5mb0VuYWJsZWRGb3JSZW5kZXJlcihj
b25zdCBSZW5kZXJUeXBlKiByZW5kZXJlcikKKyAgICB7CisgICAgICAgIEJhc2ljU2hhcGUqIHNo
YXBlID0gKHJlbmRlcmVyLT5zdHlsZSgpLT4qc2hhcGVHZXR0ZXIpKCk7CisgICAgICAgIHJldHVy
biBzaGFwZSAmJiAoc2hhcGUtPnR5cGUoKSA9PSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9SRUNU
QU5HTEUgfHwgc2hhcGUtPnR5cGUoKSA9PSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9QT0xZR09O
KTsKKyAgICB9CisKKyAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbFRvcCgpIHsgcmV0dXJuIHNo
YXBlTG9naWNhbEJvdW5kc1koKTsgfQorICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsQm90dG9t
KCkgeyByZXR1cm4gc2hhcGVMb2dpY2FsQm91bmRzTWF4WSgpOyB9CisgICAgYm9vbCBoYXNTZWdt
ZW50cygpIGNvbnN0IHsgcmV0dXJuIGxpbmVPdmVybGFwc1NoYXBlQm91bmRzKCkgJiYgbV9zZWdt
ZW50cy5zaXplKCk7IH0KKyAgICBjb25zdCBTZWdtZW50TGlzdCYgc2VnbWVudHMoKQorICAgIHsK
KyAgICAgICAgQVNTRVJUKGhhc1NlZ21lbnRzKCkpOworICAgICAgICByZXR1cm4gbV9zZWdtZW50
czsKKyAgICB9CisKKyAgICBib29sIGxpbmVPdmVybGFwc1NoYXBlQm91bmRzKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIEZsb2F0UmVjdCBzaGFwZUJvdW5kcyA9IHNoYXBlKCktPnNoYXBlTG9naWNh
bEJvdW5kaW5nQm94KCk7CisgICAgICAgIHJldHVybiBtX2xpbmVUb3AgPCBzaGFwZUJvdW5kcy5t
YXhZKCkgJiYgbV9saW5lVG9wICsgbV9saW5lSGVpZ2h0ID49IHNoYXBlQm91bmRzLnkoKTsKKyAg
ICB9CisgICAgdm9pZCBkaXJ0eVNoYXBlU2l6ZSgpIHsgbV9zaGFwZVNpemVEaXJ0eSA9IHRydWU7
IH0KKworICAgIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3As
IExheW91dFVuaXQgbGluZUhlaWdodCk7CisgICAgdm9pZCBjb21wdXRlU2hhcGVTaXplKExheW91
dFVuaXQgbG9naWNhbFdpZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpOworCitwcml2YXRl
OgorICAgIEV4Y2x1c2lvblNoYXBlSW5mbyhjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRlcmVyKSA6
IG1fcmVuZGVyZXIocmVuZGVyZXIpLCBtX3NoYXBlU2l6ZURpcnR5KHRydWUpIHsgfQorCisgICAg
Y29uc3QgUmVuZGVyT2JqZWN0KiBtX3JlbmRlcmVyOworCisgICAgRXhjbHVzaW9uU2hhcGUqIHNo
YXBlKCkgY29uc3QgeyBBU1NFUlQobV9zaGFwZSAmJiAhbV9zaGFwZVNpemVEaXJ0eSk7IHJldHVy
biBtX3NoYXBlLmdldCgpOyB9OworICAgIE93blB0cjxFeGNsdXNpb25TaGFwZT4gbV9zaGFwZTsK
KworICAgIExheW91dFVuaXQgbV9saW5lVG9wOworICAgIExheW91dFVuaXQgbV9saW5lSGVpZ2h0
OworICAgIExheW91dFVuaXQgbV9sb2dpY2FsV2lkdGg7CisgICAgTGF5b3V0VW5pdCBtX2xvZ2lj
YWxIZWlnaHQ7CisKKyAgICBTZWdtZW50TGlzdCBtX3NlZ21lbnRzOworICAgIGJvb2wgbV9zaGFw
ZVNpemVEaXJ0eTsKKworICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsQm91bmRzWSgpIGNvbnN0
CisgICAgeworICAgICAgICAvLyBVc2UgZnJvbUZsb2F0Q2VpbCgpIHRvIGVuc3VyZSB0aGF0IHRo
ZSByZXR1cm5lZCBMYXlvdXRVbml0IHZhbHVlIGlzIHdpdGhpbiB0aGUgc2hhcGUncyBib3VuZHMu
CisgICAgICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKHNoYXBlKCktPnNoYXBl
TG9naWNhbEJvdW5kaW5nQm94KCkueSgpKTsKKyAgICB9CisKKyAgICBMYXlvdXRVbml0IHNoYXBl
TG9naWNhbEJvdW5kc01heFkoKSBjb25zdAorICAgIHsKKyAgICAgICAgLy8gVXNlIGZyb21GbG9h
dEZsb29yKCkgdG8gZW5zdXJlIHRoYXQgdGhlIHJldHVybmVkIExheW91dFVuaXQgdmFsdWUgaXMg
d2l0aGluIHRoZSBzaGFwZSdzIGJvdW5kcy4KKyAgICAgICAgcmV0dXJuIExheW91dFVuaXQ6OmZy
b21GbG9hdEZsb29yKHNoYXBlKCktPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkubWF4WSgpKTsK
KyAgICB9Cit9OworCit0eXBlZGVmIEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJCbG9jaywgJlJl
bmRlclN0eWxlOjpzaGFwZUluc2lkZSwgJkV4Y2x1c2lvblNoYXBlOjpnZXRJbmNsdWRlZEludGVy
dmFscz4gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOworCit9CisjZW5kaWYKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjc4MzBmMTBlZjZiZTRjMzkyMzA3
ODM1M2M0ZDA5ODdkNzcxYTBkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDExOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKLSAq
ICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nCi0gKiAgICBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWlt
ZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscwotICogICAgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKLSAqIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKLSAqIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IKLSAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgotICogVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCi0gKiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvLmgiCi0KLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0KLSNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCi0jaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotdHlwZWRlZiBIYXNoTWFwPGNvbnN0IFJlbmRlckJsb2NrKiwgT3duUHRyPEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbz4gPiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXA7Ci0K
LXN0YXRpYyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAmIGV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mb01hcCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm9NYXAsIHN0YXRpY0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCwgKCkpOwotICAgIHJl
dHVybiBzdGF0aWNFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXA7Ci19Ci0KLUV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbzo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFJlbmRlckJsb2NrKiBibG9j
aykKLSAgICA6IG1fYmxvY2soYmxvY2spCi0gICAgLCBtX3NoYXBlU2l6ZURpcnR5KHRydWUpCi17
Ci19Ci0KLUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6fkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
bygpCi17Ci19Ci0KLUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvOjplbnN1cmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayhSZW5k
ZXJCbG9jayogYmxvY2spCi17Ci0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwOjpBZGRS
ZXN1bHQgcmVzdWx0ID0gZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwKCkuYWRkKGJsb2NrLCBj
cmVhdGUoYmxvY2spKTsKLSAgICByZXR1cm4gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsK
LX0KLQotRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86
OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2Nr
KiBibG9jaykKLXsKLSAgICBBU1NFUlQoYmxvY2stPnN0eWxlKCktPnNoYXBlSW5zaWRlKCkpOwot
ICAgIHJldHVybiBleGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAoKS5nZXQoYmxvY2spOwotfQot
Ci1ib29sIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aXNFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm9FbmFibGVkRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQotewotICAg
IC8vIEZJWE1FOiBCdWcgODk3MDc6IEVuYWJsZSBzaGFwZSBpbnNpZGUgZm9yIG5vbi1yZWN0YW5n
dWxhciBzaGFwZXMKLSAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IGJsb2NrLT5zdHlsZSgpLT5zaGFw
ZUluc2lkZSgpOwotICAgIHJldHVybiBzaGFwZSAmJiAoc2hhcGUtPnR5cGUoKSA9PSBCYXNpY1No
YXBlOjpCQVNJQ19TSEFQRV9SRUNUQU5HTEUgfHwgc2hhcGUtPnR5cGUoKSA9PSBCYXNpY1NoYXBl
OjpCQVNJQ19TSEFQRV9QT0xZR09OKTsKLX0KLQotdm9pZCBFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm86OnJlbW92ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0IFJl
bmRlckJsb2NrKiBibG9jaykKLXsKLSAgICBpZiAoIWJsb2NrLT5zdHlsZSgpIHx8ICFibG9jay0+
c3R5bGUoKS0+c2hhcGVJbnNpZGUoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mb01hcCgpLnJlbW92ZShibG9jayk7Ci19Ci0KLXZvaWQgRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvOjpjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBM
YXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpCi17Ci0gICAgaWYgKCFtX3NoYXBlU2l6ZURpcnR5ICYm
IGxvZ2ljYWxXaWR0aCA9PSBtX2xvZ2ljYWxXaWR0aCAmJiBsb2dpY2FsSGVpZ2h0ID09IG1fbG9n
aWNhbEhlaWdodCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9zaGFwZVNpemVEaXJ0eSA9IGZh
bHNlOwotICAgIG1fbG9naWNhbFdpZHRoID0gbG9naWNhbFdpZHRoOwotICAgIG1fbG9naWNhbEhl
aWdodCA9IGxvZ2ljYWxIZWlnaHQ7Ci0KLSAgICAvLyBGSVhNRTogQnVnIDg5OTkzOiBUaGUgd3Jh
cCBzaGFwZSBtYXkgY29tZSBmcm9tIHRoZSBwYXJlbnQgb2JqZWN0Ci0gICAgQmFzaWNTaGFwZSog
c2hhcGUgPSBtX2Jsb2NrLT5zdHlsZSgpLT5zaGFwZUluc2lkZSgpOwotICAgIEFTU0VSVChzaGFw
ZSk7Ci0KLSAgICBtX3NoYXBlID0gRXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUV4Y2x1c2lvblNoYXBl
KHNoYXBlLCBsb2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQsIG1fYmxvY2stPnN0eWxlKCktPndy
aXRpbmdNb2RlKCkpOwotICAgIEFTU0VSVChtX3NoYXBlKTsKLX0KLQotYm9vbCBFeGNsdXNpb25T
aGFwZUluc2lkZUluZm86OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9w
LCBMYXlvdXRVbml0IGxpbmVIZWlnaHQpCi17Ci0gICAgQVNTRVJUKGxpbmVIZWlnaHQgPj0gMCk7
Ci0gICAgbV9saW5lVG9wID0gbGluZVRvcDsKLSAgICBtX2xpbmVIZWlnaHQgPSBsaW5lSGVpZ2h0
OwotICAgIG1fc2VnbWVudHMuY2xlYXIoKTsKLQotICAgIGlmIChsaW5lT3ZlcmxhcHNTaGFwZUJv
dW5kcygpKSB7Ci0gICAgICAgIEFTU0VSVChtX3NoYXBlKTsKLSAgICAgICAgbV9zaGFwZS0+Z2V0
SW5jbHVkZWRJbnRlcnZhbHMobGluZVRvcCwgc3RkOjptaW4obGluZUhlaWdodCwgc2hhcGVMb2dp
Y2FsQm90dG9tKCkgLSBsaW5lVG9wKSwgbV9zZWdtZW50cyk7Ci0gICAgfQotICAgIHJldHVybiBt
X3NlZ21lbnRzLnNpemUoKTsKLX0KLQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDhiZTExNGQ0YjJjYTNjMDFhMWQ0Mjc4M2RlOGZmZDliYTc4MWUxM2MuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oCisrKyAvZGV2L251bGwKQEAg
LTEsMTA1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJ
bmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQotICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAgIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0gKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZwotICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzCi0gKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhP
TERFUiBCRQotICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLAotICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgot
ICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GCi0gKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYg
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvX2gKLSNkZWZpbmUgRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvX2gKLQotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLQotI2luY2x1ZGUgIkV4Y2x1c2lv
blNoYXBlLmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAiTGF5b3V0VW5pdC5o
IgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgot
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBS
ZW5kZXJCbG9jazsKLQotY2xhc3MgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvIHsKLSAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICB+RXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvKCk7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxFeGNsdXNpb25TaGFwZUluc2lkZUluZm8+
IGNyZWF0ZShSZW5kZXJCbG9jayogYmxvY2spIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBFeGNsdXNp
b25TaGFwZUluc2lkZUluZm8oYmxvY2spKTsgfQotICAgIHN0YXRpYyBFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0IFJl
bmRlckJsb2NrKik7Ci0gICAgc3RhdGljIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZW5zdXJl
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soUmVuZGVyQmxvY2sqKTsKLSAg
ICBzdGF0aWMgdm9pZCByZW1vdmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9j
ayhjb25zdCBSZW5kZXJCbG9jayopOwotICAgIHN0YXRpYyBib29sIGlzRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvRW5hYmxlZEZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKik7Ci0KLSAg
ICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIHNoYXBlTG9naWNh
bEJvdW5kc1koKTsgfQotICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsQm90dG9tKCkgY29uc3Qg
eyByZXR1cm4gc2hhcGVMb2dpY2FsQm91bmRzTWF4WSgpOyB9Ci0gICAgYm9vbCBsaW5lT3Zlcmxh
cHNTaGFwZUJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fbGluZVRvcCA8IHNoYXBlTG9naWNhbEJv
dHRvbSgpICYmIG1fbGluZVRvcCArIG1fbGluZUhlaWdodCA+PSBzaGFwZUxvZ2ljYWxUb3AoKTsg
fQotCi0gICAgYm9vbCBoYXNTZWdtZW50cygpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4g
bGluZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSAmJiBtX3NlZ21lbnRzLnNpemUoKTsKLSAgICB9Ci0g
ICAgY29uc3QgU2VnbWVudExpc3QmIHNlZ21lbnRzKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChoYXNTZWdtZW50cygpKTsKLSAgICAgICAgcmV0dXJuIG1fc2VnbWVudHM7Ci0gICAgfQot
ICAgIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91
dFVuaXQgbGluZUhlaWdodCk7Ci0gICAgdm9pZCBjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQg
bG9naWNhbFdpZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpOwotICAgIHZvaWQgZGlydHlT
aGFwZVNpemUoKSB7IG1fc2hhcGVTaXplRGlydHkgPSB0cnVlOyB9Ci0KLXByaXZhdGU6Ci0gICAg
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFJlbmRlckJsb2NrKik7Ci0KLSAgICBpbmxpbmUgTGF5
b3V0VW5pdCBzaGFwZUxvZ2ljYWxCb3VuZHNZKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChtX3NoYXBlKTsKLSAgICAgICAgLy8gVXNlIGZyb21GbG9hdENlaWwoKSB0byBlbnN1cmUgdGhh
dCB0aGUgcmV0dXJuZWQgTGF5b3V0VW5pdCB2YWx1ZSBpcyB3aXRoaW4gdGhlIHNoYXBlJ3MgYm91
bmRzLgotICAgICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChtX3NoYXBlLT5z
aGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLnkoKSk7Ci0gICAgfQotCi0gICAgaW5saW5lIExheW91
dFVuaXQgc2hhcGVMb2dpY2FsQm91bmRzTWF4WSgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NF
UlQobV9zaGFwZSk7Ci0gICAgICAgIC8vIFVzZSBmcm9tRmxvYXRGbG9vcigpIHRvIGVuc3VyZSB0
aGF0IHRoZSByZXR1cm5lZCBMYXlvdXRVbml0IHZhbHVlIGlzIHdpdGhpbiB0aGUgc2hhcGUncyBi
b3VuZHMuCi0gICAgICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRGbG9vcihtX3NoYXBl
LT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLm1heFkoKSk7Ci0gICAgfQotCi0gICAgUmVuZGVy
QmxvY2sqIG1fYmxvY2s7Ci0gICAgT3duUHRyPEV4Y2x1c2lvblNoYXBlPiBtX3NoYXBlOwotCi0g
ICAgTGF5b3V0VW5pdCBtX2xpbmVUb3A7Ci0gICAgTGF5b3V0VW5pdCBtX2xpbmVIZWlnaHQ7Ci0g
ICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxXaWR0aDsKLSAgICBMYXlvdXRVbml0IG1fbG9naWNhbEhl
aWdodDsKLQotICAgIFNlZ21lbnRMaXN0IG1fc2VnbWVudHM7Ci0gICAgYm9vbCBtX3NoYXBlU2l6
ZURpcnR5OwotfTsKLQotfQotI2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xh
eW91dFN0YXRlLmgKaW5kZXggMzg1NzFmOTFkNzhhZjYxODA0OTgxZGUxMWNmYjQ5M2U0ZjZjNjky
Mi4uNTVkODA0NzgxZWJiZDg5Y2VjNjNiYmRjMTcxM2VkYTY1ODI0MDEwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAorI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKKyNpbmNsdWRlICJFeGNsdXNpb25TaGFwZUluZm8uaCIKKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlckFyZW5hOwpAQCAtMzgsOSAr
NDIsNiBAQCBjbGFzcyBSZW5kZXJCbG9jazsKIGNsYXNzIFJlbmRlckJveDsKIGNsYXNzIFJlbmRl
ck9iamVjdDsKIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7Ci0jaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQotY2xhc3MgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOwotI2VuZGlmCiAKIGNsYXNzIExh
eW91dFN0YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMYXlvdXRTdGF0ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFwcGVkSW5mby5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL01hcHBlZEluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjg4MTIyZDZmN2ZiYTY3
OTMxOWI2MzJmNDlmNjIzNjAzMjNhZGUyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL01hcHBlZEluZm8uaApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUK
KyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2Ns
YWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgTWFwcGVkSW5mb19oCisjZGVmaW5lIE1hcHBlZEluZm9f
aAorCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Cisj
aW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3Rl
bXBsYXRlIDxjbGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlwZT4KK2NsYXNzIE1hcHBlZEluZm8g
eworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIEluZm9UeXBlKiBlbnN1cmVJbmZvKGNvbnN0
IEtleVR5cGUqKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcmVtb3ZlSW5mbyhjb25zdCBLZXlUeXBl
Kik7CisgICAgICAgIHN0YXRpYyBJbmZvVHlwZSogaW5mbyhjb25zdCBLZXlUeXBlKik7CisgICAg
cHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IEtleVR5cGUqLCBPd25QdHI8
SW5mb1R5cGU+ID4gSW5mb01hcDsKKyAgICAgICAgc3RhdGljIEluZm9NYXAmIGluZm9NYXAoKTsK
K307CisKK3RlbXBsYXRlIDxjbGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlwZT4KK3R5cGVuYW1l
IE1hcHBlZEluZm88S2V5VHlwZSwgSW5mb1R5cGU+OjpJbmZvTWFwJiBNYXBwZWRJbmZvPEtleVR5
cGUsIEluZm9UeXBlPjo6aW5mb01hcCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChJbmZv
TWFwLCBzdGF0aWNJbmZvTWFwLCAoKSk7CisgICAgcmV0dXJuIHN0YXRpY0luZm9NYXA7Cit9CisK
K3RlbXBsYXRlIDxjbGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlwZT4KK0luZm9UeXBlKiBNYXBw
ZWRJbmZvPEtleVR5cGUsIEluZm9UeXBlPjo6ZW5zdXJlSW5mbyhjb25zdCBLZXlUeXBlKiBrZXkp
Cit7CisgICAgSW5mb01hcCYgaW5mb01hcCA9IE1hcHBlZEluZm88S2V5VHlwZSwgSW5mb1R5cGU+
OjppbmZvTWFwKCk7CisgICAgaWYgKEluZm9UeXBlKiBpbmZvID0gaW5mb01hcC5nZXQoa2V5KSkK
KyAgICAgICAgcmV0dXJuIGluZm87CisgICAgdHlwZW5hbWUgSW5mb01hcDo6QWRkUmVzdWx0IHJl
c3VsdCA9IGluZm9NYXAuYWRkKGtleSwgSW5mb1R5cGU6OmNyZWF0ZUluZm8oa2V5KSk7CisgICAg
cmV0dXJuIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7Cit9CisKK3RlbXBsYXRlIDxjbGFz
cyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlwZT4KK3ZvaWQgTWFwcGVkSW5mbzxLZXlUeXBlLCBJbmZv
VHlwZT46OnJlbW92ZUluZm8oY29uc3QgS2V5VHlwZSoga2V5KQoreworICAgIGluZm9NYXAoKS5y
ZW1vdmUoa2V5KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIEtleVR5cGUsIGNsYXNzIEluZm9UeXBl
PgorSW5mb1R5cGUqIE1hcHBlZEluZm88S2V5VHlwZSwgSW5mb1R5cGU+OjppbmZvKGNvbnN0IEtl
eVR5cGUqIGtleSkKK3sKKyAgICByZXR1cm4gaW5mb01hcCgpLmdldChrZXkpOworfQorCit9Cisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDE5YTFh
ZmFmYTNjNDA1M2M3NzBhYTMwNjMyOTUyY2Y4NjFhNzk2ODMuLmE2NTBiODRhZGVkY2IzNzViNDM1
NThkN2Y4MjYzMTgwZWYyYTkyYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcApAQCAtNjMsNyArNjMsNyBAQAogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCiAj
aW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykK
LSNpbmNsdWRlICJFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCIKKyNpbmNsdWRlICJFeGNsdXNp
b25TaGFwZUluZm8uaCIKICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtMjc4LDcg
KzI3OCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCgpCiAgICAgICAgIGxp
bmVHcmlkQm94KCktPmRlc3Ryb3kocmVuZGVyQXJlbmEoKSk7CiAKICNpZiBFTkFCTEUoQ1NTX0VY
Q0xVU0lPTlMpCi0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpyZW1vdmVFeGNsdXNpb25T
aGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsKKyAgICBFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm86OnJlbW92ZUluZm8odGhpcyk7CiAjZW5kaWYKIAogICAgIGlmIChVTkxJS0VMWShn
RGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQgIT0gMCkpCkBAIC0xNDA1LDEwICsxNDA1LDEwIEBA
IHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5
bGVDaGFuZ2UoY29uc3QgQmFzaWNTaGFwCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChzaGFw
ZUluc2lkZSkgewotICAgICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbyA9IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6ZW5zdXJlRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2sodGhpcyk7CisgICAgICAgIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvOjplbnN1cmVJbmZvKHRoaXMpOwogICAgICAgICBleGNsdXNpb25TaGFwZUluc2lk
ZUluZm8tPmRpcnR5U2hhcGVTaXplKCk7CiAgICAgfSBlbHNlCi0gICAgICAgIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbzo6cmVtb3ZlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxv
Y2sodGhpcyk7CisgICAgICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6cmVtb3ZlSW5mbyh0
aGlzKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCmlu
ZGV4IDU1YTAwMWY2MWM0Y2IzYTEyMmVhZTlkYTc4Y2ZmYTIwYzk2NzQyMjcuLmQxOTg5Y2Y1NDk5
YWE1YmNkNDNhYTllYmUyMmUwNzA2ODlhZjdlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5oCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0
Lmg+CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0jaW5jbHVkZSAiRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvLmgiCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVJbmZvLmgiCiAjZW5kaWYK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBJbmxpbmVJdGVy
YXRvcjsKIGNsYXNzIExheW91dFN0YXRlTWFpbnRhaW5lcjsKIGNsYXNzIExpbmVMYXlvdXRTdGF0
ZTsKIGNsYXNzIExpbmVXaWR0aDsKK2NsYXNzIFJlbmRlckJsb2NrOwogY2xhc3MgUmVuZGVySW5s
aW5lOwogY2xhc3MgUmVuZGVyVGV4dDsKIApAQCAtNDIzLDcgKzQyNCw3IEBAIHB1YmxpYzoKICNp
ZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBl
eGNsdXNpb25TaGFwZUluc2lkZUluZm8oKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0
eWxlKCktPnNoYXBlSW5zaWRlKCkgJiYgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0V4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayh0aGlzKSA/IEV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbzo6ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2so
dGhpcykgOiAwOworICAgICAgICByZXR1cm4gc3R5bGUoKS0+c2hhcGVJbnNpZGUoKSAmJiBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm86OmlzSW5mb0VuYWJsZWRGb3JSZW5kZXJlcih0aGlzKSA/IEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aW5mbyh0aGlzKSA6IDA7CiAgICAgfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlv
dXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5j
cHAKaW5kZXggYjkzYThjNzVmZjIyYjdmYjA4Mzk0YzI5ODY3ZmJhZDhmNTg4NGUyYi4uMzY1NmU1
YmI1NWE1MWMxYWFiYmRiZWIwMjgyZDhkZTcyNzI0Nzk2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTQ2LDcgKzQ2LDcg
QEAKICNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgogCiAjaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQotI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIgor
I2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5mby5oIgogI2VuZGlmCiAKICNpZiBFTkFCTEUoU1ZH
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174280</attachid>
            <date>2012-11-14 16:11:55 -0800</date>
            <delta_ts>2012-11-15 10:49:50 -0800</delta_ts>
            <desc>Factoring out code that does not require a template</desc>
            <filename>bug-100766-20121114160954.patch</filename>
            <type>text/plain</type>
            <size>43163</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY5YmZiNWY4ZWMyMDA3
YmJjZmU4MzBlODY2YzdjZDcxNjk3ZDlhMy4uOTUzMzg0NjA0YzA2MDg2YzUxY2RlOTM3MjdhOTY1
ZmViNWM5Zjg3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTExLTE0ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IFJlZmFjdG9yIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyB0byBtb3JlIGdlbmVyYWwgRXhjbHVz
aW9uU2hhcGVJbmZvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDA3NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZWZhY3RvcmluZyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gdG8gdGhlIG1vcmUgZ2Vu
ZXJhbCBFeGNsdXNpb25TaGFwZUluZm8sIHdoaWNoCisgICAgICAgIGNhbiBiZSB1c2VkIGJ5IGJv
dGggdGhlIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBhbmQgRXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mbyB0eXBlcy4KKyAgICAgICAgVGhpcyByZWZhY3RvcmluZyBvcHRzIGZvciBhIHRlbXBsYXRl
IGNsYXNzLCBhcyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gYXBwbGllcyB0bworICAgICAgICBS
ZW5kZXJCbG9jaywgd2hpbGUgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyBhcHBsaWVzIHRvIFJl
bmRlckJveC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gY3JlYXRlcyB0aGUgTWFwcGVkSW5m
byB0eXBlLCB0byBnZW5lcmFsaXplIHRoZSBwYXJhZGlnbSBvZiBjcmVhdGluZworICAgICAgICBh
biBpbmZvIHR5cGUgcGVyIGtleSBhbmQgc3RvcmluZyBpdCBpbiBhIGdsb2JhbCBtYXAuCisKKyAg
ICAgICAgUmVmYWN0b3JpbmcsIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDogTWFrZWZpbGUgcmVuYW1lIGZyb20gRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvIHRvIEV4Y2x1c2lvblNoYXBlSW5mby4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQucHJpOiBEaXR0by4KKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERp
dHRvLgorICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5j
cHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6Y29tcHV0ZVNoYXBl
U2l6ZSk6IE1vdmVkIGZyb20gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcC4KKyAgICAgICAg
KFdlYkNvcmU6Ojo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6Ojppc0luZm9FbmFibGVkRm9yUmVuZGVyZXIpOiBEaXR0by4gUmVuYW1lZCBmcm9tIGlz
SW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jay4KKyAgICAgICAgKFdlYkNvcmU6Ojo6RXhjbHVzaW9u
U2hhcGVJbmZvKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5m
by5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mby5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChFeGNsdXNpb25TaGFw
ZUluZm9QYXJ0aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5mb1BhcnRp
YWw6On5FeGNsdXNpb25TaGFwZUluZm9QYXJ0aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1
c2lvblNoYXBlSW5mb1BhcnRpYWw6OnNoYXBlTG9naWNhbFRvcCk6IE1vdmVkIGZyb20gRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvLmguCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUlu
Zm9QYXJ0aWFsOjpzaGFwZUxvZ2ljYWxCb3R0b20pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkV4Y2x1c2lvblNoYXBlSW5mb1BhcnRpYWw6Omhhc1NlZ21lbnRzKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluZm9QYXJ0aWFsOjpzZWdtZW50cyk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbmZvUGFydGlhbDo6bGluZU92ZXJsYXBz
U2hhcGVCb3VuZHMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5m
b1BhcnRpYWw6OmRpcnR5U2hhcGVTaXplKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFeGNs
dXNpb25TaGFwZUluZm9QYXJ0aWFsOjpFeGNsdXNpb25TaGFwZUluZm9QYXJ0aWFsKTogUGFydGlh
bCBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gdGhh
dCBkb2VzIG5vdCByZXF1aXJlIHRlbXBsYXRpbmcuCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNp
b25TaGFwZUluZm9QYXJ0aWFsOjpzaGFwZSk6IEdldHRlciBmb3IgRXhjbHVzaW9uU2hhcGVJbmZv
J3MgRXhjbHVzaW9uU2hhcGUuCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluZm9Q
YXJ0aWFsOjpzaGFwZUxvZ2ljYWxCb3VuZHNZKTogTW92ZWQgZnJvbSBFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8uaC4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5mb1BhcnRpYWw6
OnNoYXBlTG9naWNhbEJvdW5kc01heFkpOiBEaXR0by4KKyAgICAgICAgKEV4Y2x1c2lvblNoYXBl
SW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluZm86OmNyZWF0ZUluZm8p
OiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9NYXBwZWRJbmZvLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChNYXBwZWRJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6
aW5mb01hcCk6IEdldCB0aGUgc3RhdGljIG1hcCBmb3IgbG9va2luZyB1cCBpbmZvcy4KKyAgICAg
ICAgKFdlYkNvcmU6Ojo6ZW5zdXJlSW5mbyk6IElmIHRoZXJlIGlzIG5vdCBhbiBpbmZvIGZvciB0
aGUgZ2l2ZW4ga2V5LMKgY3JlYXRlIG9uZS4KKyAgICAgICAgKFdlYkNvcmU6Ojo6cmVtb3ZlSW5m
byk6IFJlbW92ZXMgdGhlIGluZm8gYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBrZXkuCisgICAg
ICAgIChXZWJDb3JlOjo6OmluZm8pOiBMb29rcyB1cCB0aGUgaW5mbyBhc3NvY2lhdGVkIHdpdGgg
dGhlIGdpdmVuIGtleS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCk6IE1vZGlmeSB0byB1
c2UgdGhlIG5ldyBFeGNsdXNpb25TaGFwZUluZm8KKyAgICAgICAgbWV0aG9kIG5hbWVzLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
b0FmdGVyU3R5bGVDaGFuZ2UpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOiBEaXR0by4KKwogMjAxMi0xMS0xMyAgQW5kcmVpIEJ1
Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNdIEFkZCBSZWdp
b24gaW5mbyBmb3IgUm9vdExpbmVCb3hlcyBhbmQgcGFjayB0aGUgcGFnaW5hdGlvbiBkYXRhCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IGRiMGZhNDk5MjNiM2YzZGRkNzMzNmJiOGZlODM3ZjgyNjli
N2Q1NTQuLjkyYjZlYWUwNWU1ZDcyOGIwOTQ3NWE1OTU3ZDA3MjA1NTM4N2FlZWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0yMDQ4LDcgKzIwNDgsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lv
blJlY3RhbmdsZS5jcHAKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuY3BwCi0gICAgcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAKKyAgICByZW5kZXJpbmcvRXhjbHVz
aW9uU2hhcGVJbmZvLmNwcAogICAgIHJlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAK
ICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAKICAgICByZW5kZXJpbmcvRmxvd1Ro
cmVhZENvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAyNDRj
MGY3NDU4MGQ3ZjE1OWMwZTAyNWU4ODRlYjVjMDE2NTg0MzM1Li4wMTE2MWFlY2NkY2Q3NThkMWQw
NzlkNDAwMDgzOTA0MDE2YTQ2YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTQ5NDQsOCArNDk0NCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRXhjbHVzaW9uU2hhcGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVz
aW9uU2hhcGUuaCBcCi0JU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mby5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8uaCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5m
by5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uaCBc
CiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcCBcCkBAIC00OTY5LDYgKzQ5
NjksNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
YXlvdXRTdGF0ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0UmVwYWludGVy
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFwcGVkSW5mby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvT3ZlcmxhcFRlc3RSZXF1ZXN0Q2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9QYWdpbmF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludElu
Zm8uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQppbmRleCA1ZGQ4MWVkMmY4Nzk3OTAxOTJkZjdiOTE4MWJlZjczY2Qz
OGRjNmZkLi5kMGE2ZmYwMGJiMmQzOTI5YzQ3ZTVlZThmNTA0N2U5OWFlNGI5Mzk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKQEAgLTExMjAsNyArMTEyMCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9F
eGNsdXNpb25Qb2x5Z29uLmNwcCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5j
cHAgXAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAgXAotICAgIHJlbmRlcmluZy9F
eGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwIFwKKyAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVJbmZvLmNwcCBcCiAgICAgcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCBcCiAg
ICAgcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwIFwKICAgICByZW5kZXJpbmcvRmxvd1Ro
cmVhZENvbnRyb2xsZXIuY3BwIFwKQEAgLTIzMzAsNyArMjMzMCw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIHJlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmggXAogICAgIHJlbmRlcmluZy9FeGNsdXNp
b25SZWN0YW5nbGUuaCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmggXAotICAgIHJl
bmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBcCisgICAgcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlSW5mby5oIFwKICAgICByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCBc
CiAgICAgcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuaCBcCiAgICAgcmVuZGVyaW5nL0hpdFRl
c3RpbmdUcmFuc2Zvcm1TdGF0ZS5oIFwKQEAgLTIzNDAsNiArMjM0MCw3IEBAIEhFQURFUlMgKz0g
XAogICAgIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmggXAogICAgIHJlbmRlcmluZy9MYXlvdXRT
dGF0ZS5oIFwKICAgICByZW5kZXJpbmcvTGF5b3V0UmVwYWludGVyLmggXAorICAgIHJlbmRlcmlu
Zy9NYXBwZWRJbmZvLmggXAogICAgIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2su
aCBcCiAgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuaCBcCiAgICAgcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBjZWY5NGI5OTMwMzM0M2Q4N2Q4ZWVjNWU5YjUyYTQ0ZTE0YjAwY2RhLi5hZjBkYjczZDk5ZWQ5
NzQ2NWE0MjdhNTdiMjdjYTljNGUxMWE2NTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMjgzLDgg
KzMyODMsOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuaCcs
CiAgICAgICAgICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmNwcCcsCiAgICAgICAgICAg
ICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmgnLAotICAgICAgICAgICAgJ3JlbmRlcmluZy9F
eGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwJywKLSAgICAgICAgICAgICdyZW5kZXJpbmcvRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNsdXNp
b25TaGFwZUluZm8uY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJ
bmZvLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAn
LAogICAgICAgICAgICAgJ3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oJywKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAnLApAQCAtMzMwMiw2ICszMzAy
LDcgQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9MYXlvdXRSZXBhaW50ZXIuY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvTWFwcGVkSW5m
by5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmNwcCcs
CiAgICAgICAgICAgICAncmVuZGVyaW5nL1BvaW50ZXJFdmVudHNIaXRSdWxlcy5oJywKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvUmVuZGVyQXBwbGV0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDc3Yzg1ZTUxMjM0MDFlN2U4ODNiNGVk
MDJkYjk2MTU0Y2I5YzhhNTMuLjRiMmRjMzA4YzIxOWJiZTY1NmI1YmNjZWZkZWVmNWNlYTJkYjZi
MjggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC0zODQ0MywxMSArMzg0NDMsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PgogICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHJlbmRlcmluZ1xFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwIgorCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXEV4Y2x1c2lvblNoYXBlSW5mby5jcHAiCiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8uaCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xF
eGNsdXNpb25TaGFwZUluZm8uaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQpAQCAtMzg5
NzUsNiArMzg5NzUsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccmVuZGVyaW5nXE1hcHBlZEluZm8uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFBhaW50SW5mby5oIgogCQkJ
CT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBiNTAxZTliNzlmNzkwNWMzNzM4ODdkNDNlNjY2ZmZmYmVmODY4
ZDcyLi5kYjBkZTg2OTA0NGE4MTc3ZWFlZjc5NTA0Y2RlMzliMDYwMjcwY2E0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NTAz
LDYgKzY1MDMsNyBAQAogCQlGRDYyOUVBMzE1NEI0NzE2MDAwNkQwMjYgLyogQXVkaW9CYXNpY0lu
c3BlY3Rvck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZENjI5RUExMTU0QjQ3MTYwMDA2RDAyNiAvKiBBdWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5o
ICovOyB9OwogCQlGRDYyOUVBNDE1NEI0NzE2MDAwNkQwMjYgLyogQXVkaW9CYXNpY0luc3BlY3Rv
ck5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkQ2MjlFQTIxNTRCNDcxNjAwMDZEMDI2IC8qIEF1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmNwcCAq
LzsgfTsKIAkJRkQ2MkY1MkUxNDU4OThEODAwOTRCMEVEIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
NjJGNTJEMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggKi87
IH07CisJCUZENjU0REY5MTY1MkVGM0MwMDgyNzBFQiAvKiBNYXBwZWRJbmZvLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDY1NERGNzE2NTJFODIzMDA4
MjcwRUIgLyogTWFwcGVkSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUZENjcxQTc3MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1
ZGlvU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRDY3MUE3NDE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZU5vZGUuY3BwICovOyB9OwogCQlGRDY3MUE3ODE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZENjcxQTc1MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291
cmNlTm9kZS5oICovOyB9OwogCQlGRDZFRDJDMzEzNkI4RTQyMDAzQ0YwNzIgLyogRHluYW1pY3ND
b21wcmVzc29yTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRDZFRDJDMTEzNkI4RTQyMDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yTm9k
ZS5jcHAgKi87IH07CkBAIC02NTExLDggKzY1MTIsOCBAQAogCQlGRDZFRDJDODEzNkI4RTY2MDAz
Q0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRDZFRDJDNjEzNkI4RTY2MDAzQ0YwNzIgLyogRHluYW1pY3ND
b21wcmVzc29yLmggKi87IH07CiAJCUZENkYyNTJDMTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVs
ZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkQ2RjI1MjkxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1
ZGlvU291cmNlTm9kZS5jcHAgKi87IH07CiAJCUZENkYyNTJEMTNGNUVGMEUwMDY1MTY1RiAvKiBN
ZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZENkYyNTJBMTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVsZW1l
bnRBdWRpb1NvdXJjZU5vZGUuaCAqLzsgfTsKLQkJRkQ3NDhBQkYxNUJGNzRFRDAwNTlDRjBEIC8q
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRDc0OEFCRDE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvLmNwcCAqLzsgfTsKLQkJRkQ3NDhBQzAxNUJGNzRFRDAwNTlDRjBEIC8q
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkQ3NDhBQkUxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUZENzQ4QUJGMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ3NDhB
QkQxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5mby5jcHAgKi87IH07CisJCUZE
NzQ4QUMwMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENzQ4QUJFMTVCRjc0RUQwMDU5
Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlGRDc4NjhCOTEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5h
bWljc0NvbXByZXNzb3JOb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZENzg2OEI3MTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJl
c3Nvck5vZGUuY3BwICovOyB9OwogCQlGRDc4NjhCQTEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5h
bWljc0NvbXByZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRDc4NjhCODEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5hbWljc0NvbXByZXNz
b3JOb2RlLmggKi87IH07CiAJCUZEN0YyOTkxMTNENEMwQ0IwMEFEOTUzNSAvKiBXYXZlU2hhcGVy
RFNQS2VybmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZEN0YyOThBMTNENEMwQ0IwMEFEOTUzNSAvKiBXYXZlU2hhcGVyRFNQS2VybmVsLmNwcCAq
LzsgfTsKQEAgLTEzOTkwLDYgKzEzOTkxLDcgQEAKIAkJRkQ2MjlFQTExNTRCNDcxNjAwMDZEMDI2
IC8qIEF1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEF1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUZENjI5RUEyMTU0QjQ3MTYwMDA2RDAyNiAvKiBBdWRpb0Jhc2ljSW5zcGVjdG9yTm9k
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb0Jhc2ljSW5z
cGVjdG9yTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZENjJGNTJEMTQ1
ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkQ2NTRERjcxNjUyRTgyMzAwODI3MEVCIC8qIE1hcHBl
ZEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFwcGVkSW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRDY3MUE3NDE1OUJCMDcwMDAxOTc1NTkgLyog
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGRDY3MUE3NTE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZU5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ2
NzFBNzYxNTlCQjA3MDAwMTk3NTU5IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAwMSw4ICsxNDAwMyw4IEBACiAJCUZENkYy
NTI5MTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFFbGVtZW50QXVkaW9Tb3Vy
Y2VOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ2RjI1MkExM0Y1RUYw
RTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ2RjI1MkIxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlh
RWxlbWVudEF1ZGlvU291cmNlTm9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFF
bGVtZW50QXVkaW9Tb3VyY2VOb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
RkQ3NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGRDc0OEFCRTE1QkY3NEVE
MDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGRDc0OEFCRDE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hh
cGVJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4Y2x1c2lv
blNoYXBlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZENzQ4QUJFMTVC
Rjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRXhjbHVzaW9uU2hhcGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUZENzg2OEI3MTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nv
ck5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEeW5hbWlj
c0NvbXByZXNzb3JOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ3ODY4
QjgxMzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ3RjI5OEExM0Q0QzBDQjAwQUQ5NTM1IC8qIFdh
dmVTaGFwZXJEU1BLZXJuZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2F2ZVNoYXBlckRTUEtlcm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMTQ2OSw4ICsyMTQ3MSw4IEBACiAJCQkJNkU4Nzk4QjcxNUY4MUU0QTAwQkZFNEFBIC8qIEV4
Y2x1c2lvblJlY3RhbmdsZS5oICovLAogCQkJCTZFODc5OEI4MTVGODFFNEEwMEJGRTRBQSAvKiBF
eGNsdXNpb25TaGFwZS5jcHAgKi8sCiAJCQkJNkU4Nzk4QjkxNUY4MUU0QTAwQkZFNEFBIC8qIEV4
Y2x1c2lvblNoYXBlLmggKi8sCi0JCQkJRkQ3NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgKi8sCi0JCQkJRkQ3NDhBQkUxNUJGNzRFRDAwNTlDRjBE
IC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oICovLAorCQkJCUZENzQ4QUJEMTVCRjc0RUQw
MDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uY3BwICovLAorCQkJCUZENzQ4QUJFMTVCRjc0
RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCAqLywKIAkJCQkzMTMxM0Y2MzE0NDNC
MzVFMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwICovLAogCQkJCTMxMzEzRjY0
MTQ0M0IzNUUwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJlci5oICovLAogCQkJCUE4Q0ZG
MDQ4MEExNTRGMDkwMDBBNDIzNCAvKiBGaXhlZFRhYmxlTGF5b3V0LmNwcCAqLywKQEAgLTIxNDk0
LDYgKzIxNDk2LDcgQEAKIAkJCQlBMTIwQUNBMDEzRjk5ODM3MDBGRTRBQzcgLyogTGF5b3V0UmVw
YWludGVyLmggKi8sCiAJCQkJMkQ5MDY2MDQwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRl
LmNwcCAqLywKIAkJCQkyRDkwNjYwNTBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCAq
LywKKwkJCQlGRDY1NERGNzE2NTJFODIzMDA4MjcwRUIgLyogTWFwcGVkSW5mby5oICovLAogCQkJ
CTM3NzRBQkEzMEZBMjFFQjQwMEFEN0RFOSAvKiBPdmVybGFwVGVzdFJlcXVlc3RDbGllbnQuaCAq
LywKIAkJCQk5Mzc3QUI5RjE1REVGRUVGMDAzMUZEMDQgLyogUGFnaW5hdGlvbi5oICovLAogCQkJ
CTA4ODUwNjdEMTFEQTA0NUIwMDE4MkI5OCAvKiBQYWludEluZm8uaCAqLywKQEAgLTIyNDAxLDYg
KzIyNDA0LDcgQEAKIAkJCWZpbGVzID0gKAogCQkJCUJDN0ZBNjIxMEQxRjBDQkQwMERCMjJBOSAv
KiBEeW5hbWljTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OURBMDk3Mzc0RjYw
MEQ3NDQ2MyAvKiBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUZE
NjU0REY5MTY1MkVGM0MwMDgyNzBFQiAvKiBNYXBwZWRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODEzNjlEODA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTFNlbGVjdEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4MTM2OURDMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MT3B0aW9uRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzY5REIxNTA1RjA3NjAwMUI3NEFDIC8qIEFic3Ry
YWN0RGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjM1MjIsNyArMjM1MjYsNyBAQAogCQkJ
CTZFQUYzNDEwMTYxMzg2OUEwMDg1OTYyNSAvKiBFeGNsdXNpb25Qb2x5Z29uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2RTg3OThCRDE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uUmVjdGFuZ2xl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTg3OThCRjE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVz
aW9uU2hhcGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUZENzQ4QUMwMTVCRjc0RUQwMDU5Q0YwRCAv
KiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCUZENzQ4QUMw
MTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCBpbiBIZWFkZXJzICovLAog
CQkJCTZFNjdEMkE5MTI4MEU4QkQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTZFNjdEMkE3MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ0REFCNUIyMTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRlbnNp
b25zM0RPcGVuR0xDb21tb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3NjAsNyArMjY3NjQsNyBA
QAogCQkJCTZFQUYzNDBGMTYxMzg2OUEwMDg1OTYyNSAvKiBFeGNsdXNpb25Qb2x5Z29uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTZFODc5OEJDMTVGODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25S
ZWN0YW5nbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU4Nzk4QkUxNUY4MUU0QTAwQkZFNEFB
IC8qIEV4Y2x1c2lvblNoYXBlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZENzQ4QUJGMTVCRjc0
RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJRkQ3NDhBQkYxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5mby5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk2RTY3RDJBNjEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9u
czNET3BlbkdMLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFF
NCAvKiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzcy
ODY5NEUxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlSW5mby5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODMzYzMxMDgxOTAyZDAxNWY2NTMyODUwNzY4MGVlOWRm
NGUzYTc1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZUluZm8uY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5m
by5oIgorCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorCisjaW5jbHVkZSAiUmVuZGVyQmxv
Y2suaCIKKyNpbmNsdWRlICJSZW5kZXJCb3guaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0
ZSA8Y2xhc3MgUmVuZGVyVHlwZSwgQmFzaWNTaGFwZSogKFJlbmRlclN0eWxlOjoqc2hhcGVHZXR0
ZXIpKCkgY29uc3QsIHZvaWQgKEV4Y2x1c2lvblNoYXBlOjoqaW50ZXJ2YWxHZXR0ZXIpKGZsb2F0
LCBmbG9hdCwgU2VnbWVudExpc3QmKSBjb25zdD4KK3ZvaWQgRXhjbHVzaW9uU2hhcGVJbmZvPFJl
bmRlclR5cGUsIHNoYXBlR2V0dGVyLCBpbnRlcnZhbEdldHRlcj46OmNvbXB1dGVTaGFwZVNpemUo
TGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCkKK3sKKyAg
ICBpZiAoIW1fc2hhcGVTaXplRGlydHkgJiYgbG9naWNhbFdpZHRoID09IG1fbG9naWNhbFdpZHRo
ICYmIGxvZ2ljYWxIZWlnaHQgPT0gbV9sb2dpY2FsSGVpZ2h0KQorICAgICAgICByZXR1cm47Cisg
ICAgCisgICAgbV9sb2dpY2FsV2lkdGggPSBsb2dpY2FsV2lkdGg7CisgICAgbV9sb2dpY2FsSGVp
Z2h0ID0gbG9naWNhbEhlaWdodDsKKyAgICAKKyAgICBCYXNpY1NoYXBlKiBzaGFwZVN0eWxlID0g
KG1fcmVuZGVyZXItPnN0eWxlKCktPipzaGFwZUdldHRlcikoKTsKKyAgICBBU1NFUlQoc2hhcGVT
dHlsZSk7CisgICAgCisgICAgbV9zaGFwZSA9IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNp
b25TaGFwZShzaGFwZVN0eWxlLCBtX2xvZ2ljYWxXaWR0aCwgbV9sb2dpY2FsSGVpZ2h0LCBtX3Jl
bmRlcmVyLT5zdHlsZSgpLT53cml0aW5nTW9kZSgpKTsKKyAgICBtX3NoYXBlU2l6ZURpcnR5ID0g
ZmFsc2U7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBSZW5kZXJUeXBlLCBCYXNpY1NoYXBlKiAoUmVu
ZGVyU3R5bGU6OipzaGFwZUdldHRlcikoKSBjb25zdCwgdm9pZCAoRXhjbHVzaW9uU2hhcGU6Oipp
bnRlcnZhbEdldHRlcikoZmxvYXQsIGZsb2F0LCBTZWdtZW50TGlzdCYpIGNvbnN0PgorYm9vbCBF
eGNsdXNpb25TaGFwZUluZm88UmVuZGVyVHlwZSwgc2hhcGVHZXR0ZXIsIGludGVydmFsR2V0dGVy
Pjo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQg
bGluZUhlaWdodCkKK3sKKyAgICBBU1NFUlQobGluZUhlaWdodCA+PSAwKTsKKyAgICBtX2xpbmVU
b3AgPSBsaW5lVG9wOworICAgIG1fbGluZUhlaWdodCA9IGxpbmVIZWlnaHQ7CisgICAgbV9zZWdt
ZW50cy5jbGVhcigpOworICAgIAorICAgIGlmIChsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpKQor
ICAgICAgICAoc2hhcGUoKS0+KmludGVydmFsR2V0dGVyKShsaW5lVG9wLCBzdGQ6Om1pbihsaW5l
SGVpZ2h0LCBzaGFwZUxvZ2ljYWxCb3R0b20oKSAtIGxpbmVUb3ApLCBtX3NlZ21lbnRzKTsKKyAg
ICAKKyAgICByZXR1cm4gbV9zZWdtZW50cy5zaXplKCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBS
ZW5kZXJUeXBlLCBCYXNpY1NoYXBlKiAoUmVuZGVyU3R5bGU6OipzaGFwZUdldHRlcikoKSBjb25z
dCwgdm9pZCAoRXhjbHVzaW9uU2hhcGU6OippbnRlcnZhbEdldHRlcikoZmxvYXQsIGZsb2F0LCBT
ZWdtZW50TGlzdCYpIGNvbnN0PgorYm9vbCBFeGNsdXNpb25TaGFwZUluZm88UmVuZGVyVHlwZSwg
c2hhcGVHZXR0ZXIsIGludGVydmFsR2V0dGVyPjo6aXNJbmZvRW5hYmxlZEZvclJlbmRlcmVyKGNv
bnN0IFJlbmRlclR5cGUqIHJlbmRlcmVyKQoreworICAgIEJhc2ljU2hhcGUqIHNoYXBlID0gKHJl
bmRlcmVyLT5zdHlsZSgpLT4qc2hhcGVHZXR0ZXIpKCk7CisgICAgcmV0dXJuIHNoYXBlICYmIChz
aGFwZS0+dHlwZSgpID09IEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX1JFQ1RBTkdMRSB8fCBzaGFw
ZS0+dHlwZSgpID09IEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX1BPTFlHT04pOworfQorCit0ZW1w
bGF0ZSA8Y2xhc3MgUmVuZGVyVHlwZSwgQmFzaWNTaGFwZSogKFJlbmRlclN0eWxlOjoqc2hhcGVH
ZXR0ZXIpKCkgY29uc3QsIHZvaWQgKEV4Y2x1c2lvblNoYXBlOjoqaW50ZXJ2YWxHZXR0ZXIpKGZs
b2F0LCBmbG9hdCwgU2VnbWVudExpc3QmKSBjb25zdD4KK0V4Y2x1c2lvblNoYXBlSW5mbzxSZW5k
ZXJUeXBlLCBzaGFwZUdldHRlciwgaW50ZXJ2YWxHZXR0ZXI+OjpFeGNsdXNpb25TaGFwZUluZm8o
Y29uc3QgUmVuZGVyVHlwZSogcmVuZGVyZXIpCisgICAgOiBFeGNsdXNpb25TaGFwZUluZm9QYXJ0
aWFsKHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlck9iamVjdCo+KHJlbmRlcmVyKSkKK3sKK30KKwor
dGVtcGxhdGUgY2xhc3MgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlckJsb2NrLCAmUmVuZGVyU3R5
bGU6OnNoYXBlSW5zaWRlLCAmRXhjbHVzaW9uU2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzPjsK
K30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lv
blNoYXBlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5m
by5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ0YmQwNTRkZGZkMmYwZjhkZjQ5NmEyZjE4NmY2MmI4N2Q5MGRhNWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVJbmZvLmgKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRv
YmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAg
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBFeGNsdXNpb25TaGFwZUluZm9faAorI2RlZmluZSBFeGNsdXNpb25TaGFwZUluZm9f
aAorCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hh
cGUuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJNYXBwZWRJbmZvLmgiCisj
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyQmxvY2s7CisKK2NsYXNzIEV4Y2x1c2lvblNoYXBl
SW5mb1BhcnRpYWwgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IH5FeGNsdXNpb25TaGFwZUluZm9QYXJ0aWFsKCkgeyB9CisKKyAgICBMYXlvdXRVbml0IHNoYXBl
TG9naWNhbFRvcCgpIHsgcmV0dXJuIHNoYXBlTG9naWNhbEJvdW5kc1koKTsgfQorICAgIExheW91
dFVuaXQgc2hhcGVMb2dpY2FsQm90dG9tKCkgeyByZXR1cm4gc2hhcGVMb2dpY2FsQm91bmRzTWF4
WSgpOyB9CisgICAgYm9vbCBoYXNTZWdtZW50cygpIGNvbnN0IHsgcmV0dXJuIGxpbmVPdmVybGFw
c1NoYXBlQm91bmRzKCkgJiYgbV9zZWdtZW50cy5zaXplKCk7IH0KKyAgICBjb25zdCBTZWdtZW50
TGlzdCYgc2VnbWVudHMoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc1NlZ21lbnRzKCkpOwor
ICAgICAgICByZXR1cm4gbV9zZWdtZW50czsKKyAgICB9CisKKyAgICBib29sIGxpbmVPdmVybGFw
c1NoYXBlQm91bmRzKCkgY29uc3QKKyAgICB7CisgICAgICAgIEZsb2F0UmVjdCBzaGFwZUJvdW5k
cyA9IHNoYXBlKCktPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCk7CisgICAgICAgIHJldHVybiBt
X2xpbmVUb3AgPCBzaGFwZUJvdW5kcy5tYXhZKCkgJiYgbV9saW5lVG9wICsgbV9saW5lSGVpZ2h0
ID49IHNoYXBlQm91bmRzLnkoKTsKKyAgICB9CisgICAgdm9pZCBkaXJ0eVNoYXBlU2l6ZSgpIHsg
bV9zaGFwZVNpemVEaXJ0eSA9IHRydWU7IH0KKworcHJvdGVjdGVkOgorICAgIEV4Y2x1c2lvblNo
YXBlSW5mb1BhcnRpYWwoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikgOiBtX3JlbmRlcmVy
KHJlbmRlcmVyKSwgbV9zaGFwZVNpemVEaXJ0eSh0cnVlKSB7IH0KKworICAgIGNvbnN0IFJlbmRl
ck9iamVjdCogbV9yZW5kZXJlcjsKKworICAgIEV4Y2x1c2lvblNoYXBlKiBzaGFwZSgpIGNvbnN0
IHsgQVNTRVJUKG1fc2hhcGUgJiYgIW1fc2hhcGVTaXplRGlydHkpOyByZXR1cm4gbV9zaGFwZS5n
ZXQoKTsgfTsKKyAgICBPd25QdHI8RXhjbHVzaW9uU2hhcGU+IG1fc2hhcGU7CisKKyAgICBMYXlv
dXRVbml0IG1fbGluZVRvcDsKKyAgICBMYXlvdXRVbml0IG1fbGluZUhlaWdodDsKKyAgICBMYXlv
dXRVbml0IG1fbG9naWNhbFdpZHRoOworICAgIExheW91dFVuaXQgbV9sb2dpY2FsSGVpZ2h0Owor
CisgICAgU2VnbWVudExpc3QgbV9zZWdtZW50czsKKyAgICBib29sIG1fc2hhcGVTaXplRGlydHk7
CisKKyAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbEJvdW5kc1koKSBjb25zdAorICAgIHsKKyAg
ICAgICAgLy8gVXNlIGZyb21GbG9hdENlaWwoKSB0byBlbnN1cmUgdGhhdCB0aGUgcmV0dXJuZWQg
TGF5b3V0VW5pdCB2YWx1ZSBpcyB3aXRoaW4gdGhlIHNoYXBlJ3MgYm91bmRzLgorICAgICAgICBy
ZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChzaGFwZSgpLT5zaGFwZUxvZ2ljYWxCb3Vu
ZGluZ0JveCgpLnkoKSk7CisgICAgfQorCisgICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxCb3Vu
ZHNNYXhZKCkgY29uc3QKKyAgICB7CisgICAgICAgIC8vIFVzZSBmcm9tRmxvYXRGbG9vcigpIHRv
IGVuc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBMYXlvdXRVbml0IHZhbHVlIGlzIHdpdGhpbiB0aGUg
c2hhcGUncyBib3VuZHMuCisgICAgICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRGbG9v
cihzaGFwZSgpLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLm1heFkoKSk7CisgICAgfQorfTsK
KwordGVtcGxhdGUgPGNsYXNzIFJlbmRlclR5cGUsIEJhc2ljU2hhcGUqIChSZW5kZXJTdHlsZTo6
KnNoYXBlR2V0dGVyKSgpIGNvbnN0LCB2b2lkIChFeGNsdXNpb25TaGFwZTo6KmludGVydmFsR2V0
dGVyKShmbG9hdCwgZmxvYXQsIFNlZ21lbnRMaXN0JikgY29uc3Q+CitjbGFzcyBFeGNsdXNpb25T
aGFwZUluZm8gOiBwdWJsaWMgRXhjbHVzaW9uU2hhcGVJbmZvUGFydGlhbCwgcHVibGljIE1hcHBl
ZEluZm88UmVuZGVyVHlwZSwgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlclR5cGUsIHNoYXBlR2V0
dGVyLCBpbnRlcnZhbEdldHRlcj4gPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8RXhjbHVzaW9uU2hhcGVJbmZvPiBjcmVhdGVJ
bmZvKGNvbnN0IFJlbmRlclR5cGUqIHJlbmRlcmVyKSB7IHJldHVybiBhZG9wdFB0cihuZXcgRXhj
bHVzaW9uU2hhcGVJbmZvKHJlbmRlcmVyKSk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0luZm9FbmFi
bGVkRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyVHlwZSopOworICAgIGJvb2wgY29tcHV0ZVNlZ21l
bnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCk7Cisg
ICAgdm9pZCBjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBMYXlvdXRV
bml0IGxvZ2ljYWxIZWlnaHQpOworcHJvdGVjdGVkOgorICAgIEV4Y2x1c2lvblNoYXBlSW5mbyhj
b25zdCBSZW5kZXJUeXBlKik7Cit9OworCit0eXBlZGVmIEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5k
ZXJCbG9jaywgJlJlbmRlclN0eWxlOjpzaGFwZUluc2lkZSwgJkV4Y2x1c2lvblNoYXBlOjpnZXRJ
bmNsdWRlZEludGVydmFscz4gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOworCit9CisjZW5kaWYK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjc4MzBmMTBl
ZjZiZTRjMzkyMzA3ODM1M2M0ZDA5ODdkNzcxYTBkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDExOCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAq
ICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cwotICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKLSAqIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwK
LSAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKLSAqIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgotICogVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgiCi0KLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lP
TlMpCi0KLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlJlbmRlckJsb2Nr
LmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdHlwZWRlZiBIYXNoTWFwPGNvbnN0IFJlbmRlckJsb2Nr
KiwgT3duUHRyPEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbz4gPiBFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm9NYXA7Ci0KLXN0YXRpYyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAmIGV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mb01hcCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChFeGNsdXNp
b25TaGFwZUluc2lkZUluZm9NYXAsIHN0YXRpY0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCwg
KCkpOwotICAgIHJldHVybiBzdGF0aWNFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXA7Ci19Ci0K
LUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFJlbmRl
ckJsb2NrKiBibG9jaykKLSAgICA6IG1fYmxvY2soYmxvY2spCi0gICAgLCBtX3NoYXBlU2l6ZURp
cnR5KHRydWUpCi17Ci19Ci0KLUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6fkV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbygpCi17Ci19Ci0KLUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvOjplbnN1cmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5k
ZXJCbG9jayhSZW5kZXJCbG9jayogYmxvY2spCi17Ci0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwKCku
YWRkKGJsb2NrLCBjcmVhdGUoYmxvY2spKTsKLSAgICByZXR1cm4gcmVzdWx0Lml0ZXJhdG9yLT52
YWx1ZS5nZXQoKTsKLX0KLQotRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm86OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0
IFJlbmRlckJsb2NrKiBibG9jaykKLXsKLSAgICBBU1NFUlQoYmxvY2stPnN0eWxlKCktPnNoYXBl
SW5zaWRlKCkpOwotICAgIHJldHVybiBleGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAoKS5nZXQo
YmxvY2spOwotfQotCi1ib29sIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aXNFeGNsdXNpb25T
aGFwZUluc2lkZUluZm9FbmFibGVkRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJs
b2NrKQotewotICAgIC8vIEZJWE1FOiBCdWcgODk3MDc6IEVuYWJsZSBzaGFwZSBpbnNpZGUgZm9y
IG5vbi1yZWN0YW5ndWxhciBzaGFwZXMKLSAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IGJsb2NrLT5z
dHlsZSgpLT5zaGFwZUluc2lkZSgpOwotICAgIHJldHVybiBzaGFwZSAmJiAoc2hhcGUtPnR5cGUo
KSA9PSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9SRUNUQU5HTEUgfHwgc2hhcGUtPnR5cGUoKSA9
PSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9QT0xZR09OKTsKLX0KLQotdm9pZCBFeGNsdXNpb25T
aGFwZUluc2lkZUluZm86OnJlbW92ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJs
b2NrKGNvbnN0IFJlbmRlckJsb2NrKiBibG9jaykKLXsKLSAgICBpZiAoIWJsb2NrLT5zdHlsZSgp
IHx8ICFibG9jay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKSkKLSAgICAgICAgcmV0dXJuOwotICAg
IGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCgpLnJlbW92ZShibG9jayk7Ci19Ci0KLXZvaWQg
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9n
aWNhbFdpZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpCi17Ci0gICAgaWYgKCFtX3NoYXBl
U2l6ZURpcnR5ICYmIGxvZ2ljYWxXaWR0aCA9PSBtX2xvZ2ljYWxXaWR0aCAmJiBsb2dpY2FsSGVp
Z2h0ID09IG1fbG9naWNhbEhlaWdodCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9zaGFwZVNp
emVEaXJ0eSA9IGZhbHNlOwotICAgIG1fbG9naWNhbFdpZHRoID0gbG9naWNhbFdpZHRoOwotICAg
IG1fbG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQ7Ci0KLSAgICAvLyBGSVhNRTogQnVnIDg5
OTkzOiBUaGUgd3JhcCBzaGFwZSBtYXkgY29tZSBmcm9tIHRoZSBwYXJlbnQgb2JqZWN0Ci0gICAg
QmFzaWNTaGFwZSogc2hhcGUgPSBtX2Jsb2NrLT5zdHlsZSgpLT5zaGFwZUluc2lkZSgpOwotICAg
IEFTU0VSVChzaGFwZSk7Ci0KLSAgICBtX3NoYXBlID0gRXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUV4
Y2x1c2lvblNoYXBlKHNoYXBlLCBsb2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQsIG1fYmxvY2st
PnN0eWxlKCktPndyaXRpbmdNb2RlKCkpOwotICAgIEFTU0VSVChtX3NoYXBlKTsKLX0KLQotYm9v
bCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0
VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQpCi17Ci0gICAgQVNTRVJUKGxpbmVI
ZWlnaHQgPj0gMCk7Ci0gICAgbV9saW5lVG9wID0gbGluZVRvcDsKLSAgICBtX2xpbmVIZWlnaHQg
PSBsaW5lSGVpZ2h0OwotICAgIG1fc2VnbWVudHMuY2xlYXIoKTsKLQotICAgIGlmIChsaW5lT3Zl
cmxhcHNTaGFwZUJvdW5kcygpKSB7Ci0gICAgICAgIEFTU0VSVChtX3NoYXBlKTsKLSAgICAgICAg
bV9zaGFwZS0+Z2V0SW5jbHVkZWRJbnRlcnZhbHMobGluZVRvcCwgc3RkOjptaW4obGluZUhlaWdo
dCwgc2hhcGVMb2dpY2FsQm90dG9tKCkgLSBsaW5lVG9wKSwgbV9zZWdtZW50cyk7Ci0gICAgfQot
ICAgIHJldHVybiBtX3NlZ21lbnRzLnNpemUoKTsKLX0KLQotfQotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiZTExNGQ0YjJjYTNjMDFhMWQ0Mjc4M2RlOGZmZDli
YTc4MWUxM2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oCisrKyAv
ZGV2L251bGwKQEAgLTEsMTA1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRv
YmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQotICogICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAg
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwotICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCi0gKiAgICBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIEhPTERFUiBCRQotICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAotICogT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUgotICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCi0gKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvX2gKLSNkZWZpbmUgRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvX2gKLQotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLQotI2luY2x1
ZGUgIkV4Y2x1c2lvblNoYXBlLmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAi
TGF5b3V0VW5pdC5oIgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBSZW5kZXJCbG9jazsKLQotY2xhc3MgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
IHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICB+RXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvKCk7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm8+IGNyZWF0ZShSZW5kZXJCbG9jayogYmxvY2spIHsgcmV0dXJuIGFkb3B0UHRy
KG5ldyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oYmxvY2spKTsgfQotICAgIHN0YXRpYyBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJs
b2NrKGNvbnN0IFJlbmRlckJsb2NrKik7Ci0gICAgc3RhdGljIEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyogZW5zdXJlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soUmVuZGVy
QmxvY2sqKTsKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9G
b3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayopOwotICAgIHN0YXRpYyBib29sIGlzRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvRW5hYmxlZEZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJs
b2NrKik7Ci0KLSAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJu
IHNoYXBlTG9naWNhbEJvdW5kc1koKTsgfQotICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsQm90
dG9tKCkgY29uc3QgeyByZXR1cm4gc2hhcGVMb2dpY2FsQm91bmRzTWF4WSgpOyB9Ci0gICAgYm9v
bCBsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fbGluZVRvcCA8IHNo
YXBlTG9naWNhbEJvdHRvbSgpICYmIG1fbGluZVRvcCArIG1fbGluZUhlaWdodCA+PSBzaGFwZUxv
Z2ljYWxUb3AoKTsgfQotCi0gICAgYm9vbCBoYXNTZWdtZW50cygpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gbGluZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSAmJiBtX3NlZ21lbnRzLnNpemUo
KTsKLSAgICB9Ci0gICAgY29uc3QgU2VnbWVudExpc3QmIHNlZ21lbnRzKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChoYXNTZWdtZW50cygpKTsKLSAgICAgICAgcmV0dXJuIG1fc2VnbWVu
dHM7Ci0gICAgfQotICAgIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxp
bmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCk7Ci0gICAgdm9pZCBjb21wdXRlU2hhcGVTaXpl
KExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpOwotICAg
IHZvaWQgZGlydHlTaGFwZVNpemUoKSB7IG1fc2hhcGVTaXplRGlydHkgPSB0cnVlOyB9Ci0KLXBy
aXZhdGU6Ci0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFJlbmRlckJsb2NrKik7Ci0KLSAg
ICBpbmxpbmUgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxCb3VuZHNZKCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3NoYXBlKTsKLSAgICAgICAgLy8gVXNlIGZyb21GbG9hdENlaWwoKSB0
byBlbnN1cmUgdGhhdCB0aGUgcmV0dXJuZWQgTGF5b3V0VW5pdCB2YWx1ZSBpcyB3aXRoaW4gdGhl
IHNoYXBlJ3MgYm91bmRzLgotICAgICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2Vp
bChtX3NoYXBlLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLnkoKSk7Ci0gICAgfQotCi0gICAg
aW5saW5lIExheW91dFVuaXQgc2hhcGVMb2dpY2FsQm91bmRzTWF4WSgpIGNvbnN0Ci0gICAgewot
ICAgICAgICBBU1NFUlQobV9zaGFwZSk7Ci0gICAgICAgIC8vIFVzZSBmcm9tRmxvYXRGbG9vcigp
IHRvIGVuc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBMYXlvdXRVbml0IHZhbHVlIGlzIHdpdGhpbiB0
aGUgc2hhcGUncyBib3VuZHMuCi0gICAgICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRG
bG9vcihtX3NoYXBlLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLm1heFkoKSk7Ci0gICAgfQot
Ci0gICAgUmVuZGVyQmxvY2sqIG1fYmxvY2s7Ci0gICAgT3duUHRyPEV4Y2x1c2lvblNoYXBlPiBt
X3NoYXBlOwotCi0gICAgTGF5b3V0VW5pdCBtX2xpbmVUb3A7Ci0gICAgTGF5b3V0VW5pdCBtX2xp
bmVIZWlnaHQ7Ci0gICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxXaWR0aDsKLSAgICBMYXlvdXRVbml0
IG1fbG9naWNhbEhlaWdodDsKLQotICAgIFNlZ21lbnRMaXN0IG1fc2VnbWVudHM7Ci0gICAgYm9v
bCBtX3NoYXBlU2l6ZURpcnR5OwotfTsKLQotfQotI2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0xheW91dFN0YXRlLmgKaW5kZXggMzg1NzFmOTFkNzhhZjYxODA0OTgxZGUxMWNm
YjQ5M2U0ZjZjNjkyMi4uNTVkODA0NzgxZWJiZDg5Y2VjNjNiYmRjMTcxM2VkYTY1ODI0MDEwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKQEAgLTMxLDYgKzMxLDEwIEBA
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
IAorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyNpbmNsdWRlICJFeGNsdXNpb25TaGFwZUlu
Zm8uaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlckFyZW5h
OwpAQCAtMzgsOSArNDIsNiBAQCBjbGFzcyBSZW5kZXJCbG9jazsKIGNsYXNzIFJlbmRlckJveDsK
IGNsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7Ci0jaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQotY2xhc3MgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOwotI2VuZGlm
CiAKIGNsYXNzIExheW91dFN0YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMYXlvdXRT
dGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFwcGVkSW5mby5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcHBlZEluZm8uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjg4
MTIyZDZmN2ZiYTY3OTMxOWI2MzJmNDlmNjIzNjAzMjNhZGUyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcHBlZEluZm8uaApAQCAtMCwwICsxLDgwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcK
KyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAor
ICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWFwcGVkSW5mb19oCisjZGVmaW5l
IE1hcHBlZEluZm9faAorCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3RlbXBsYXRlIDxjbGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlwZT4KK2NsYXNz
IE1hcHBlZEluZm8geworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIEluZm9UeXBlKiBlbnN1
cmVJbmZvKGNvbnN0IEtleVR5cGUqKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcmVtb3ZlSW5mbyhj
b25zdCBLZXlUeXBlKik7CisgICAgICAgIHN0YXRpYyBJbmZvVHlwZSogaW5mbyhjb25zdCBLZXlU
eXBlKik7CisgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IEtleVR5
cGUqLCBPd25QdHI8SW5mb1R5cGU+ID4gSW5mb01hcDsKKyAgICAgICAgc3RhdGljIEluZm9NYXAm
IGluZm9NYXAoKTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlw
ZT4KK3R5cGVuYW1lIE1hcHBlZEluZm88S2V5VHlwZSwgSW5mb1R5cGU+OjpJbmZvTWFwJiBNYXBw
ZWRJbmZvPEtleVR5cGUsIEluZm9UeXBlPjo6aW5mb01hcCgpCit7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChJbmZvTWFwLCBzdGF0aWNJbmZvTWFwLCAoKSk7CisgICAgcmV0dXJuIHN0YXRpY0lu
Zm9NYXA7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlwZT4KK0lu
Zm9UeXBlKiBNYXBwZWRJbmZvPEtleVR5cGUsIEluZm9UeXBlPjo6ZW5zdXJlSW5mbyhjb25zdCBL
ZXlUeXBlKiBrZXkpCit7CisgICAgSW5mb01hcCYgaW5mb01hcCA9IE1hcHBlZEluZm88S2V5VHlw
ZSwgSW5mb1R5cGU+OjppbmZvTWFwKCk7CisgICAgaWYgKEluZm9UeXBlKiBpbmZvID0gaW5mb01h
cC5nZXQoa2V5KSkKKyAgICAgICAgcmV0dXJuIGluZm87CisgICAgdHlwZW5hbWUgSW5mb01hcDo6
QWRkUmVzdWx0IHJlc3VsdCA9IGluZm9NYXAuYWRkKGtleSwgSW5mb1R5cGU6OmNyZWF0ZUluZm8o
a2V5KSk7CisgICAgcmV0dXJuIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7Cit9CisKK3Rl
bXBsYXRlIDxjbGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlwZT4KK3ZvaWQgTWFwcGVkSW5mbzxL
ZXlUeXBlLCBJbmZvVHlwZT46OnJlbW92ZUluZm8oY29uc3QgS2V5VHlwZSoga2V5KQoreworICAg
IGluZm9NYXAoKS5yZW1vdmUoa2V5KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIEtleVR5cGUsIGNs
YXNzIEluZm9UeXBlPgorSW5mb1R5cGUqIE1hcHBlZEluZm88S2V5VHlwZSwgSW5mb1R5cGU+Ojpp
bmZvKGNvbnN0IEtleVR5cGUqIGtleSkKK3sKKyAgICByZXR1cm4gaW5mb01hcCgpLmdldChrZXkp
OworfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CmluZGV4IDE5YTFhZmFmYTNjNDA1M2M3NzBhYTMwNjMyOTUyY2Y4NjFhNzk2ODMuLmE2NTBiODRh
ZGVkY2IzNzViNDM1NThkN2Y4MjYzMTgwZWYyYTkyYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNjMsNyArNjMsNyBAQAogI2luY2x1ZGUgIlRyYW5zZm9y
bVN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2lmIEVOQUJMRShDU1Nf
RVhDTFVTSU9OUykKLSNpbmNsdWRlICJFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCIKKyNpbmNs
dWRlICJFeGNsdXNpb25TaGFwZUluZm8uaCIKICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2Ugc3Rk
OwpAQCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCgp
CiAgICAgICAgIGxpbmVHcmlkQm94KCktPmRlc3Ryb3kocmVuZGVyQXJlbmEoKSk7CiAKICNpZiBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpyZW1v
dmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsKKyAgICBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm86OnJlbW92ZUluZm8odGhpcyk7CiAjZW5kaWYKIAogICAgIGlm
IChVTkxJS0VMWShnRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQgIT0gMCkpCkBAIC0xNDA1LDEw
ICsxNDA1LDEwIEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mb0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgQmFzaWNTaGFwCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGlmIChzaGFwZUluc2lkZSkgewotICAgICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8q
IGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6ZW5z
dXJlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2sodGhpcyk7CisgICAgICAg
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvOjplbnN1cmVJbmZvKHRoaXMpOwogICAgICAgICBleGNsdXNp
b25TaGFwZUluc2lkZUluZm8tPmRpcnR5U2hhcGVTaXplKCk7CiAgICAgfSBlbHNlCi0gICAgICAg
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6cmVtb3ZlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
Rm9yUmVuZGVyQmxvY2sodGhpcyk7CisgICAgICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6
cmVtb3ZlSW5mbyh0aGlzKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCmluZGV4IDU1YTAwMWY2MWM0Y2IzYTEyMmVhZTlkYTc4Y2ZmYTIwYzk2NzQyMjcu
LmQxOTg5Y2Y1NDk5YWE1YmNkNDNhYTllYmUyMmUwNzA2ODlhZjdlZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSA8d3Rm
L0xpc3RIYXNoU2V0Lmg+CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0jaW5jbHVkZSAi
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgiCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVJbmZv
LmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDUsNiArNDUsNyBAQCBjbGFz
cyBJbmxpbmVJdGVyYXRvcjsKIGNsYXNzIExheW91dFN0YXRlTWFpbnRhaW5lcjsKIGNsYXNzIExp
bmVMYXlvdXRTdGF0ZTsKIGNsYXNzIExpbmVXaWR0aDsKK2NsYXNzIFJlbmRlckJsb2NrOwogY2xh
c3MgUmVuZGVySW5saW5lOwogY2xhc3MgUmVuZGVyVGV4dDsKIApAQCAtNDIzLDcgKzQyNCw3IEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8oKSBjb25zdAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHN0eWxlKCktPnNoYXBlSW5zaWRlKCkgJiYgRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvOjppc0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayh0aGlz
KSA/IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9y
UmVuZGVyQmxvY2sodGhpcykgOiAwOworICAgICAgICByZXR1cm4gc3R5bGUoKS0+c2hhcGVJbnNp
ZGUoKSAmJiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmlzSW5mb0VuYWJsZWRGb3JSZW5kZXJl
cih0aGlzKSA/IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aW5mbyh0aGlzKSA6IDA7CiAgICAg
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
TGluZUxheW91dC5jcHAKaW5kZXggYjkzYThjNzVmZjIyYjdmYjA4Mzk0YzI5ODY3ZmJhZDhmNTg4
NGUyYi4uMzY1NmU1YmI1NWE1MWMxYWFiYmRiZWIwMjgyZDhkZTcyNzI0Nzk2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAg
LTQ2LDcgKzQ2LDcgQEAKICNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgog
CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mby5oIgorI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5mby5oIgogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoU1ZHKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174488</attachid>
            <date>2012-11-15 10:49:53 -0800</date>
            <delta_ts>2013-01-24 18:08:44 -0800</delta_ts>
            <desc>Updating patch</desc>
            <filename>bug-100766-20121115104750.patch</filename>
            <type>text/plain</type>
            <size>43163</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThmM2E0MGEzNGQxNTY4
MDc2ZWY5ODUwNTlmNTRhMzAwMjY1M2YzYS4uMWM2MjA5ZDI3MGVjNWNhNTY3YzU2NzJlMGQ0ZDg4
NTc4MGFmMTdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTExLTE0ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IFJlZmFjdG9yIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyB0byBtb3JlIGdlbmVyYWwgRXhjbHVz
aW9uU2hhcGVJbmZvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDA3NjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZWZhY3RvcmluZyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gdG8gdGhlIG1vcmUgZ2Vu
ZXJhbCBFeGNsdXNpb25TaGFwZUluZm8sIHdoaWNoCisgICAgICAgIGNhbiBiZSB1c2VkIGJ5IGJv
dGggdGhlIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBhbmQgRXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mbyB0eXBlcy4KKyAgICAgICAgVGhpcyByZWZhY3RvcmluZyBvcHRzIGZvciBhIHRlbXBsYXRl
IGNsYXNzLCBhcyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gYXBwbGllcyB0bworICAgICAgICBS
ZW5kZXJCbG9jaywgd2hpbGUgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyBhcHBsaWVzIHRvIFJl
bmRlckJveC4KKworICAgICAgICBUaGlzIHBhdGNoIGFsc28gY3JlYXRlcyB0aGUgTWFwcGVkSW5m
byB0eXBlLCB0byBnZW5lcmFsaXplIHRoZSBwYXJhZGlnbSBvZiBjcmVhdGluZworICAgICAgICBh
biBpbmZvIHR5cGUgcGVyIGtleSBhbmQgc3RvcmluZyBpdCBpbiBhIGdsb2JhbCBtYXAuCisKKyAg
ICAgICAgUmVmYWN0b3JpbmcsIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAg
KiBDTWFrZUxpc3RzLnR4dDogTWFrZWZpbGUgcmVuYW1lIGZyb20gRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvIHRvIEV4Y2x1c2lvblNoYXBlSW5mby4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQucHJpOiBEaXR0by4KKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
OiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERp
dHRvLgorICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5j
cHAuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6Y29tcHV0ZVNoYXBl
U2l6ZSk6IE1vdmVkIGZyb20gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcC4KKyAgICAgICAg
KFdlYkNvcmU6Ojo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6Ojppc0luZm9FbmFibGVkRm9yUmVuZGVyZXIpOiBEaXR0by4gUmVuYW1lZCBmcm9tIGlz
SW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jay4KKyAgICAgICAgKFdlYkNvcmU6Ojo6RXhjbHVzaW9u
U2hhcGVJbmZvKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5m
by5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mby5oLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChFeGNsdXNpb25TaGFw
ZUluZm9QYXJ0aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5mb1BhcnRp
YWw6On5FeGNsdXNpb25TaGFwZUluZm9QYXJ0aWFsKToKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1
c2lvblNoYXBlSW5mb1BhcnRpYWw6OnNoYXBlTG9naWNhbFRvcCk6IE1vdmVkIGZyb20gRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvLmguCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUlu
Zm9QYXJ0aWFsOjpzaGFwZUxvZ2ljYWxCb3R0b20pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkV4Y2x1c2lvblNoYXBlSW5mb1BhcnRpYWw6Omhhc1NlZ21lbnRzKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluZm9QYXJ0aWFsOjpzZWdtZW50cyk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbmZvUGFydGlhbDo6bGluZU92ZXJsYXBz
U2hhcGVCb3VuZHMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5m
b1BhcnRpYWw6OmRpcnR5U2hhcGVTaXplKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFeGNs
dXNpb25TaGFwZUluZm9QYXJ0aWFsOjpFeGNsdXNpb25TaGFwZUluZm9QYXJ0aWFsKTogUGFydGlh
bCBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gdGhh
dCBkb2VzIG5vdCByZXF1aXJlIHRlbXBsYXRpbmcuCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNp
b25TaGFwZUluZm9QYXJ0aWFsOjpzaGFwZSk6IEdldHRlciBmb3IgRXhjbHVzaW9uU2hhcGVJbmZv
J3MgRXhjbHVzaW9uU2hhcGUuCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluZm9Q
YXJ0aWFsOjpzaGFwZUxvZ2ljYWxCb3VuZHNZKTogTW92ZWQgZnJvbSBFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8uaC4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5mb1BhcnRpYWw6
OnNoYXBlTG9naWNhbEJvdW5kc01heFkpOiBEaXR0by4KKyAgICAgICAgKEV4Y2x1c2lvblNoYXBl
SW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluZm86OmNyZWF0ZUluZm8p
OiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9NYXBwZWRJbmZvLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChNYXBwZWRJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6Ojo6
aW5mb01hcCk6IEdldCB0aGUgc3RhdGljIG1hcCBmb3IgbG9va2luZyB1cCBpbmZvcy4KKyAgICAg
ICAgKFdlYkNvcmU6Ojo6ZW5zdXJlSW5mbyk6IElmIHRoZXJlIGlzIG5vdCBhbiBpbmZvIGZvciB0
aGUgZ2l2ZW4ga2V5LMKgY3JlYXRlIG9uZS4KKyAgICAgICAgKFdlYkNvcmU6Ojo6cmVtb3ZlSW5m
byk6IFJlbW92ZXMgdGhlIGluZm8gYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBrZXkuCisgICAg
ICAgIChXZWJDb3JlOjo6OmluZm8pOiBMb29rcyB1cCB0aGUgaW5mbyBhc3NvY2lhdGVkIHdpdGgg
dGhlIGdpdmVuIGtleS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCk6IE1vZGlmeSB0byB1
c2UgdGhlIG5ldyBFeGNsdXNpb25TaGFwZUluZm8KKyAgICAgICAgbWV0aG9kIG5hbWVzLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
b0FmdGVyU3R5bGVDaGFuZ2UpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOiBEaXR0by4KKwogMjAxMi0xMS0xNSAgRWxsaW90dCBT
cHJlaG4gIDxlc3ByZWhuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUgaXNIVE1MSW5w
dXRFbGVtZW50IHNpbmNlIGl0J3MgdW51c2VkIGFuZCB0b0lucHV0RWxlbWVudCBleGlzdHMgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IGE2YTlhZDNlMmJlYzJiOGJmMDQ2ZWYyZDQ5YzMxNTBmYzgw
Y2I1NDMuLjI3MmZkMzhmN2UzZTU5ZjEwMWI2MmVmMmM3YjUwOTAwNWUxZmI0YjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC0yMDQ4LDcgKzIwNDgsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lv
blJlY3RhbmdsZS5jcHAKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuY3BwCi0gICAgcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAKKyAgICByZW5kZXJpbmcvRXhjbHVz
aW9uU2hhcGVJbmZvLmNwcAogICAgIHJlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAK
ICAgICByZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAKICAgICByZW5kZXJpbmcvRmxvd1Ro
cmVhZENvbnRyb2xsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA1Yzcy
OWRkOTM1NTA0YzcwZGEyZThjMzE3Y2M3MjI4NGNkOTlkYjRlLi40ZmJjMDEwMjYwYzhmYTVlMWQw
ZjU4NTdmZmYyZDE1OTBiYzQ3NDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAg
LTQ5NDQsOCArNDk0NCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRXhjbHVzaW9uU2hhcGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVz
aW9uU2hhcGUuaCBcCi0JU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mby5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8uaCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5m
by5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uaCBc
CiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9GaXhlZFRhYmxlTGF5b3V0LmNwcCBcCkBAIC00OTY5LDYgKzQ5
NjksNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
YXlvdXRTdGF0ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0UmVwYWludGVy
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRSZXBhaW50ZXIuY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFwcGVkSW5mby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvT3ZlcmxhcFRlc3RSZXF1ZXN0Q2xpZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9QYWdpbmF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9QYWludElu
Zm8uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaQppbmRleCA3NjRjYmU5NzU1NjBkYmM4OTJmOTBmZGMzZmFkNjBjNGNh
NmM5ZWZmLi5mZmM0ZjRhYzlkOThjZDgyZDdjZjU5Zjc0M2QwMzE1YzIzNmMwYTU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKQEAgLTExMjAsNyArMTEyMCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9F
eGNsdXNpb25Qb2x5Z29uLmNwcCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5j
cHAgXAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAgXAotICAgIHJlbmRlcmluZy9F
eGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwIFwKKyAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVJbmZvLmNwcCBcCiAgICAgcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCBcCiAg
ICAgcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuY3BwIFwKICAgICByZW5kZXJpbmcvRmxvd1Ro
cmVhZENvbnRyb2xsZXIuY3BwIFwKQEAgLTIzMzAsNyArMjMzMCw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIHJlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29uLmggXAogICAgIHJlbmRlcmluZy9FeGNsdXNp
b25SZWN0YW5nbGUuaCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmggXAotICAgIHJl
bmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBcCisgICAgcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlSW5mby5oIFwKICAgICByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuaCBc
CiAgICAgcmVuZGVyaW5nL0ZpeGVkVGFibGVMYXlvdXQuaCBcCiAgICAgcmVuZGVyaW5nL0hpdFRl
c3RpbmdUcmFuc2Zvcm1TdGF0ZS5oIFwKQEAgLTIzNDAsNiArMjM0MCw3IEBAIEhFQURFUlMgKz0g
XAogICAgIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmggXAogICAgIHJlbmRlcmluZy9MYXlvdXRT
dGF0ZS5oIFwKICAgICByZW5kZXJpbmcvTGF5b3V0UmVwYWludGVyLmggXAorICAgIHJlbmRlcmlu
Zy9NYXBwZWRJbmZvLmggXAogICAgIHJlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2su
aCBcCiAgICAgcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGZW5jZWQuaCBcCiAgICAgcmVu
ZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxGcmFjdGlvbi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCBmMWQzMDdhNjM1MGM5NGJiNGY4NmQ0N2U1MzQ2MTllMzM4ODcxOTNiLi5lMDRjNWYyYTI1MjBm
Y2VkNjA3M2M0NjNhYzBiMjg1NGVjMzBkNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0zMjkwLDgg
KzMyOTAsOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuaCcs
CiAgICAgICAgICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmNwcCcsCiAgICAgICAgICAg
ICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmgnLAotICAgICAgICAgICAgJ3JlbmRlcmluZy9F
eGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwJywKLSAgICAgICAgICAgICdyZW5kZXJpbmcvRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNsdXNp
b25TaGFwZUluZm8uY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJ
bmZvLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAn
LAogICAgICAgICAgICAgJ3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oJywKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvRml4ZWRUYWJsZUxheW91dC5jcHAnLApAQCAtMzMwOSw2ICszMzA5
LDcgQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9MYXlvdXRSZXBhaW50ZXIuY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvTWFwcGVkSW5m
by5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvUG9pbnRlckV2ZW50c0hpdFJ1bGVzLmNwcCcs
CiAgICAgICAgICAgICAncmVuZGVyaW5nL1BvaW50ZXJFdmVudHNIaXRSdWxlcy5oJywKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvUmVuZGVyQXBwbGV0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGYwNGY2N2QzOTJhOGRiZDBmM2IxOTRh
NTUxMzJkNWNiYzUyNmM4MjUuLmU4MWJiZGYyY2YwNDgwMzlhYTM1N2ZhNWYxMjdhNTE2NDYwZWU4
ZjkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC0zODQ0MywxMSArMzg0NDMsMTEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
PgogICAgICAgICAgICAgICAgICAgICAgICAgPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHJlbmRlcmluZ1xFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwIgorCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXEV4Y2x1c2lvblNoYXBlSW5mby5jcHAiCiAJCQkJPgog
CQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8uaCIKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xF
eGNsdXNpb25TaGFwZUluZm8uaCIKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQpAQCAtMzg5
NzUsNiArMzg5NzUsMTAgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccmVuZGVyaW5nXE1hcHBlZEluZm8uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXFBhaW50SW5mby5oIgogCQkJ
CT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCAxY2M0NjEzOTQ0NDU1N2JkYTc3NGRlYTgxZGE4YmQ2MGFjNmYy
YzM3Li5lZTQxY2Y2MTQzYTE4ODEwMmQxNjc0NTFjYWYwNTE0OGYxYmIzYjFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02NTAx
LDYgKzY1MDEsNyBAQAogCQlGRDYyOUVBMzE1NEI0NzE2MDAwNkQwMjYgLyogQXVkaW9CYXNpY0lu
c3BlY3Rvck5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZENjI5RUExMTU0QjQ3MTYwMDA2RDAyNiAvKiBBdWRpb0Jhc2ljSW5zcGVjdG9yTm9kZS5o
ICovOyB9OwogCQlGRDYyOUVBNDE1NEI0NzE2MDAwNkQwMjYgLyogQXVkaW9CYXNpY0luc3BlY3Rv
ck5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RkQ2MjlFQTIxNTRCNDcxNjAwMDZEMDI2IC8qIEF1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmNwcCAq
LzsgfTsKIAkJRkQ2MkY1MkUxNDU4OThEODAwOTRCMEVEIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZE
NjJGNTJEMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggKi87
IH07CisJCUZENjU0REY5MTY1MkVGM0MwMDgyNzBFQiAvKiBNYXBwZWRJbmZvLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRDY1NERGNzE2NTJFODIzMDA4
MjcwRUIgLyogTWFwcGVkSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUZENjcxQTc3MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1
ZGlvU291cmNlTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRDY3MUE3NDE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1BdWRpb1NvdXJj
ZU5vZGUuY3BwICovOyB9OwogCQlGRDY3MUE3ODE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEZENjcxQTc1MTU5QkIwNzAwMDE5NzU1OSAvKiBNZWRpYVN0cmVhbUF1ZGlvU291
cmNlTm9kZS5oICovOyB9OwogCQlGRDZFRDJDMzEzNkI4RTQyMDAzQ0YwNzIgLyogRHluYW1pY3ND
b21wcmVzc29yTm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGRDZFRDJDMTEzNkI4RTQyMDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yTm9k
ZS5jcHAgKi87IH07CkBAIC02NTA5LDggKzY1MTAsOCBAQAogCQlGRDZFRDJDODEzNkI4RTY2MDAz
Q0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRDZFRDJDNjEzNkI4RTY2MDAzQ0YwNzIgLyogRHluYW1pY3ND
b21wcmVzc29yLmggKi87IH07CiAJCUZENkYyNTJDMTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVs
ZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRkQ2RjI1MjkxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1
ZGlvU291cmNlTm9kZS5jcHAgKi87IH07CiAJCUZENkYyNTJEMTNGNUVGMEUwMDY1MTY1RiAvKiBN
ZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZENkYyNTJBMTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVsZW1l
bnRBdWRpb1NvdXJjZU5vZGUuaCAqLzsgfTsKLQkJRkQ3NDhBQkYxNUJGNzRFRDAwNTlDRjBEIC8q
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGRDc0OEFCRDE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvLmNwcCAqLzsgfTsKLQkJRkQ3NDhBQzAxNUJGNzRFRDAwNTlDRjBEIC8q
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRkQ3NDhBQkUxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCUZENzQ4QUJGMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkQ3NDhB
QkQxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5mby5jcHAgKi87IH07CisJCUZE
NzQ4QUMwMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZENzQ4QUJFMTVCRjc0RUQwMDU5
Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlGRDc4NjhCOTEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5h
bWljc0NvbXByZXNzb3JOb2RlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEZENzg2OEI3MTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJl
c3Nvck5vZGUuY3BwICovOyB9OwogCQlGRDc4NjhCQTEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5h
bWljc0NvbXByZXNzb3JOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRDc4NjhCODEzNkI5OTkyMDBENDAzREYgLyogSlNEeW5hbWljc0NvbXByZXNz
b3JOb2RlLmggKi87IH07CiAJCUZEN0YyOTkxMTNENEMwQ0IwMEFEOTUzNSAvKiBXYXZlU2hhcGVy
RFNQS2VybmVsLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZEN0YyOThBMTNENEMwQ0IwMEFEOTUzNSAvKiBXYXZlU2hhcGVyRFNQS2VybmVsLmNwcCAq
LzsgfTsKQEAgLTEzOTkwLDYgKzEzOTkxLDcgQEAKIAkJRkQ2MjlFQTExNTRCNDcxNjAwMDZEMDI2
IC8qIEF1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEF1ZGlvQmFzaWNJbnNwZWN0b3JOb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUZENjI5RUEyMTU0QjQ3MTYwMDA2RDAyNiAvKiBBdWRpb0Jhc2ljSW5zcGVjdG9yTm9k
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBdWRpb0Jhc2ljSW5z
cGVjdG9yTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZENjJGNTJEMTQ1
ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkQ2NTRERjcxNjUyRTgyMzAwODI3MEVCIC8qIE1hcHBl
ZEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFwcGVkSW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGRDY3MUE3NDE1OUJCMDcwMDAxOTc1NTkgLyog
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGRDY3MUE3NTE1OUJCMDcwMDAxOTc1NTkgLyogTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZU5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFT
dHJlYW1BdWRpb1NvdXJjZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ2
NzFBNzYxNTlCQjA3MDAwMTk3NTU5IC8qIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDAwMSw4ICsxNDAwMyw4IEBACiAJCUZENkYy
NTI5MTNGNUVGMEUwMDY1MTY1RiAvKiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFFbGVtZW50QXVkaW9Tb3Vy
Y2VOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ2RjI1MkExM0Y1RUYw
RTAwNjUxNjVGIC8qIE1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ2RjI1MkIxM0Y1RUYwRTAwNjUxNjVGIC8qIE1lZGlh
RWxlbWVudEF1ZGlvU291cmNlTm9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTWVkaWFF
bGVtZW50QXVkaW9Tb3VyY2VOb2RlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
RkQ3NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGRDc0OEFCRTE1QkY3NEVE
MDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGRDc0OEFCRDE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hh
cGVJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4Y2x1c2lv
blNoYXBlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZENzQ4QUJFMTVC
Rjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRXhjbHVzaW9uU2hhcGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUZENzg2OEI3MTM2Qjk5OTIwMEQ0MDNERiAvKiBKU0R5bmFtaWNzQ29tcHJlc3Nv
ck5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEeW5hbWlj
c0NvbXByZXNzb3JOb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ3ODY4
QjgxMzZCOTk5MjAwRDQwM0RGIC8qIEpTRHluYW1pY3NDb21wcmVzc29yTm9kZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0R5bmFtaWNzQ29tcHJlc3Nvck5vZGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkQ3RjI5OEExM0Q0QzBDQjAwQUQ5NTM1IC8qIFdh
dmVTaGFwZXJEU1BLZXJuZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2F2ZVNoYXBlckRTUEtlcm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMTQ2OCw4ICsyMTQ3MCw4IEBACiAJCQkJNkU4Nzk4QjcxNUY4MUU0QTAwQkZFNEFBIC8qIEV4
Y2x1c2lvblJlY3RhbmdsZS5oICovLAogCQkJCTZFODc5OEI4MTVGODFFNEEwMEJGRTRBQSAvKiBF
eGNsdXNpb25TaGFwZS5jcHAgKi8sCiAJCQkJNkU4Nzk4QjkxNUY4MUU0QTAwQkZFNEFBIC8qIEV4
Y2x1c2lvblNoYXBlLmggKi8sCi0JCQkJRkQ3NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgKi8sCi0JCQkJRkQ3NDhBQkUxNUJGNzRFRDAwNTlDRjBE
IC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oICovLAorCQkJCUZENzQ4QUJEMTVCRjc0RUQw
MDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uY3BwICovLAorCQkJCUZENzQ4QUJFMTVCRjc0
RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCAqLywKIAkJCQkzMTMxM0Y2MzE0NDNC
MzVFMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwICovLAogCQkJCTMxMzEzRjY0
MTQ0M0IzNUUwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJlci5oICovLAogCQkJCUE4Q0ZG
MDQ4MEExNTRGMDkwMDBBNDIzNCAvKiBGaXhlZFRhYmxlTGF5b3V0LmNwcCAqLywKQEAgLTIxNDkz
LDYgKzIxNDk1LDcgQEAKIAkJCQlBMTIwQUNBMDEzRjk5ODM3MDBGRTRBQzcgLyogTGF5b3V0UmVw
YWludGVyLmggKi8sCiAJCQkJMkQ5MDY2MDQwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRl
LmNwcCAqLywKIAkJCQkyRDkwNjYwNTBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCAq
LywKKwkJCQlGRDY1NERGNzE2NTJFODIzMDA4MjcwRUIgLyogTWFwcGVkSW5mby5oICovLAogCQkJ
CTM3NzRBQkEzMEZBMjFFQjQwMEFEN0RFOSAvKiBPdmVybGFwVGVzdFJlcXVlc3RDbGllbnQuaCAq
LywKIAkJCQk5Mzc3QUI5RjE1REVGRUVGMDAzMUZEMDQgLyogUGFnaW5hdGlvbi5oICovLAogCQkJ
CTA4ODUwNjdEMTFEQTA0NUIwMDE4MkI5OCAvKiBQYWludEluZm8uaCAqLywKQEAgLTIyNDAyLDYg
KzIyNDA1LDcgQEAKIAkJCWZpbGVzID0gKAogCQkJCUJDN0ZBNjIxMEQxRjBDQkQwMERCMjJBOSAv
KiBEeW5hbWljTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTM2OURBMDk3Mzc0RjYw
MEQ3NDQ2MyAvKiBIVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUZE
NjU0REY5MTY1MkVGM0MwMDgyNzBFQiAvKiBNYXBwZWRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBODEzNjlEODA5NzM3NEY2MDBENzQ0NjMgLyogSFRNTFNlbGVjdEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4MTM2OURDMDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MT3B0aW9uRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTdCQzY5REIxNTA1RjA3NjAwMUI3NEFDIC8qIEFic3Ry
YWN0RGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjM1MjMsNyArMjM1MjcsNyBAQAogCQkJ
CTZFQUYzNDEwMTYxMzg2OUEwMDg1OTYyNSAvKiBFeGNsdXNpb25Qb2x5Z29uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2RTg3OThCRDE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uUmVjdGFuZ2xl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTg3OThCRjE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVz
aW9uU2hhcGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUZENzQ4QUMwMTVCRjc0RUQwMDU5Q0YwRCAv
KiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCUZENzQ4QUMw
MTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCBpbiBIZWFkZXJzICovLAog
CQkJCTZFNjdEMkE5MTI4MEU4QkQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTZFNjdEMkE3MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25zM0RPcGVuR0wu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ0REFCNUIyMTVBNjIzNTgwMDk3QzFFNCAvKiBFeHRlbnNp
b25zM0RPcGVuR0xDb21tb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjY3NTksNyArMjY3NjMsNyBA
QAogCQkJCTZFQUYzNDBGMTYxMzg2OUEwMDg1OTYyNSAvKiBFeGNsdXNpb25Qb2x5Z29uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTZFODc5OEJDMTVGODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25S
ZWN0YW5nbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU4Nzk4QkUxNUY4MUU0QTAwQkZFNEFB
IC8qIEV4Y2x1c2lvblNoYXBlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUZENzQ4QUJGMTVCRjc0
RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJRkQ3NDhBQkYxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5mby5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk2RTY3RDJBNjEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9u
czNET3BlbkdMLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFF
NCAvKiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzcy
ODY5NEUxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlSW5mby5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODMzYzMxMDgxOTAyZDAxNWY2NTMyODUwNzY4MGVlOWRm
NGUzYTc1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZUluZm8uY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5m
by5oIgorCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorCisjaW5jbHVkZSAiUmVuZGVyQmxv
Y2suaCIKKyNpbmNsdWRlICJSZW5kZXJCb3guaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0
ZSA8Y2xhc3MgUmVuZGVyVHlwZSwgQmFzaWNTaGFwZSogKFJlbmRlclN0eWxlOjoqc2hhcGVHZXR0
ZXIpKCkgY29uc3QsIHZvaWQgKEV4Y2x1c2lvblNoYXBlOjoqaW50ZXJ2YWxHZXR0ZXIpKGZsb2F0
LCBmbG9hdCwgU2VnbWVudExpc3QmKSBjb25zdD4KK3ZvaWQgRXhjbHVzaW9uU2hhcGVJbmZvPFJl
bmRlclR5cGUsIHNoYXBlR2V0dGVyLCBpbnRlcnZhbEdldHRlcj46OmNvbXB1dGVTaGFwZVNpemUo
TGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCkKK3sKKyAg
ICBpZiAoIW1fc2hhcGVTaXplRGlydHkgJiYgbG9naWNhbFdpZHRoID09IG1fbG9naWNhbFdpZHRo
ICYmIGxvZ2ljYWxIZWlnaHQgPT0gbV9sb2dpY2FsSGVpZ2h0KQorICAgICAgICByZXR1cm47Cisg
ICAgCisgICAgbV9sb2dpY2FsV2lkdGggPSBsb2dpY2FsV2lkdGg7CisgICAgbV9sb2dpY2FsSGVp
Z2h0ID0gbG9naWNhbEhlaWdodDsKKyAgICAKKyAgICBCYXNpY1NoYXBlKiBzaGFwZVN0eWxlID0g
KG1fcmVuZGVyZXItPnN0eWxlKCktPipzaGFwZUdldHRlcikoKTsKKyAgICBBU1NFUlQoc2hhcGVT
dHlsZSk7CisgICAgCisgICAgbV9zaGFwZSA9IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNp
b25TaGFwZShzaGFwZVN0eWxlLCBtX2xvZ2ljYWxXaWR0aCwgbV9sb2dpY2FsSGVpZ2h0LCBtX3Jl
bmRlcmVyLT5zdHlsZSgpLT53cml0aW5nTW9kZSgpKTsKKyAgICBtX3NoYXBlU2l6ZURpcnR5ID0g
ZmFsc2U7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBSZW5kZXJUeXBlLCBCYXNpY1NoYXBlKiAoUmVu
ZGVyU3R5bGU6OipzaGFwZUdldHRlcikoKSBjb25zdCwgdm9pZCAoRXhjbHVzaW9uU2hhcGU6Oipp
bnRlcnZhbEdldHRlcikoZmxvYXQsIGZsb2F0LCBTZWdtZW50TGlzdCYpIGNvbnN0PgorYm9vbCBF
eGNsdXNpb25TaGFwZUluZm88UmVuZGVyVHlwZSwgc2hhcGVHZXR0ZXIsIGludGVydmFsR2V0dGVy
Pjo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQg
bGluZUhlaWdodCkKK3sKKyAgICBBU1NFUlQobGluZUhlaWdodCA+PSAwKTsKKyAgICBtX2xpbmVU
b3AgPSBsaW5lVG9wOworICAgIG1fbGluZUhlaWdodCA9IGxpbmVIZWlnaHQ7CisgICAgbV9zZWdt
ZW50cy5jbGVhcigpOworICAgIAorICAgIGlmIChsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpKQor
ICAgICAgICAoc2hhcGUoKS0+KmludGVydmFsR2V0dGVyKShsaW5lVG9wLCBzdGQ6Om1pbihsaW5l
SGVpZ2h0LCBzaGFwZUxvZ2ljYWxCb3R0b20oKSAtIGxpbmVUb3ApLCBtX3NlZ21lbnRzKTsKKyAg
ICAKKyAgICByZXR1cm4gbV9zZWdtZW50cy5zaXplKCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBS
ZW5kZXJUeXBlLCBCYXNpY1NoYXBlKiAoUmVuZGVyU3R5bGU6OipzaGFwZUdldHRlcikoKSBjb25z
dCwgdm9pZCAoRXhjbHVzaW9uU2hhcGU6OippbnRlcnZhbEdldHRlcikoZmxvYXQsIGZsb2F0LCBT
ZWdtZW50TGlzdCYpIGNvbnN0PgorYm9vbCBFeGNsdXNpb25TaGFwZUluZm88UmVuZGVyVHlwZSwg
c2hhcGVHZXR0ZXIsIGludGVydmFsR2V0dGVyPjo6aXNJbmZvRW5hYmxlZEZvclJlbmRlcmVyKGNv
bnN0IFJlbmRlclR5cGUqIHJlbmRlcmVyKQoreworICAgIEJhc2ljU2hhcGUqIHNoYXBlID0gKHJl
bmRlcmVyLT5zdHlsZSgpLT4qc2hhcGVHZXR0ZXIpKCk7CisgICAgcmV0dXJuIHNoYXBlICYmIChz
aGFwZS0+dHlwZSgpID09IEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX1JFQ1RBTkdMRSB8fCBzaGFw
ZS0+dHlwZSgpID09IEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX1BPTFlHT04pOworfQorCit0ZW1w
bGF0ZSA8Y2xhc3MgUmVuZGVyVHlwZSwgQmFzaWNTaGFwZSogKFJlbmRlclN0eWxlOjoqc2hhcGVH
ZXR0ZXIpKCkgY29uc3QsIHZvaWQgKEV4Y2x1c2lvblNoYXBlOjoqaW50ZXJ2YWxHZXR0ZXIpKGZs
b2F0LCBmbG9hdCwgU2VnbWVudExpc3QmKSBjb25zdD4KK0V4Y2x1c2lvblNoYXBlSW5mbzxSZW5k
ZXJUeXBlLCBzaGFwZUdldHRlciwgaW50ZXJ2YWxHZXR0ZXI+OjpFeGNsdXNpb25TaGFwZUluZm8o
Y29uc3QgUmVuZGVyVHlwZSogcmVuZGVyZXIpCisgICAgOiBFeGNsdXNpb25TaGFwZUluZm9QYXJ0
aWFsKHN0YXRpY19jYXN0PGNvbnN0IFJlbmRlck9iamVjdCo+KHJlbmRlcmVyKSkKK3sKK30KKwor
dGVtcGxhdGUgY2xhc3MgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlckJsb2NrLCAmUmVuZGVyU3R5
bGU6OnNoYXBlSW5zaWRlLCAmRXhjbHVzaW9uU2hhcGU6OmdldEluY2x1ZGVkSW50ZXJ2YWxzPjsK
K30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lv
blNoYXBlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5m
by5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ0YmQwNTRkZGZkMmYwZjhkZjQ5NmEyZjE4NmY2MmI4N2Q5MGRhNWQK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVJbmZvLmgKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRv
YmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAg
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBFeGNsdXNpb25TaGFwZUluZm9faAorI2RlZmluZSBFeGNsdXNpb25TaGFwZUluZm9f
aAorCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hh
cGUuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJNYXBwZWRJbmZvLmgiCisj
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVk
ZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyQmxvY2s7CisKK2NsYXNzIEV4Y2x1c2lvblNoYXBl
SW5mb1BhcnRpYWwgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAg
IH5FeGNsdXNpb25TaGFwZUluZm9QYXJ0aWFsKCkgeyB9CisKKyAgICBMYXlvdXRVbml0IHNoYXBl
TG9naWNhbFRvcCgpIHsgcmV0dXJuIHNoYXBlTG9naWNhbEJvdW5kc1koKTsgfQorICAgIExheW91
dFVuaXQgc2hhcGVMb2dpY2FsQm90dG9tKCkgeyByZXR1cm4gc2hhcGVMb2dpY2FsQm91bmRzTWF4
WSgpOyB9CisgICAgYm9vbCBoYXNTZWdtZW50cygpIGNvbnN0IHsgcmV0dXJuIGxpbmVPdmVybGFw
c1NoYXBlQm91bmRzKCkgJiYgbV9zZWdtZW50cy5zaXplKCk7IH0KKyAgICBjb25zdCBTZWdtZW50
TGlzdCYgc2VnbWVudHMoKQorICAgIHsKKyAgICAgICAgQVNTRVJUKGhhc1NlZ21lbnRzKCkpOwor
ICAgICAgICByZXR1cm4gbV9zZWdtZW50czsKKyAgICB9CisKKyAgICBib29sIGxpbmVPdmVybGFw
c1NoYXBlQm91bmRzKCkgY29uc3QKKyAgICB7CisgICAgICAgIEZsb2F0UmVjdCBzaGFwZUJvdW5k
cyA9IHNoYXBlKCktPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCk7CisgICAgICAgIHJldHVybiBt
X2xpbmVUb3AgPCBzaGFwZUJvdW5kcy5tYXhZKCkgJiYgbV9saW5lVG9wICsgbV9saW5lSGVpZ2h0
ID49IHNoYXBlQm91bmRzLnkoKTsKKyAgICB9CisgICAgdm9pZCBkaXJ0eVNoYXBlU2l6ZSgpIHsg
bV9zaGFwZVNpemVEaXJ0eSA9IHRydWU7IH0KKworcHJvdGVjdGVkOgorICAgIEV4Y2x1c2lvblNo
YXBlSW5mb1BhcnRpYWwoY29uc3QgUmVuZGVyT2JqZWN0KiByZW5kZXJlcikgOiBtX3JlbmRlcmVy
KHJlbmRlcmVyKSwgbV9zaGFwZVNpemVEaXJ0eSh0cnVlKSB7IH0KKworICAgIGNvbnN0IFJlbmRl
ck9iamVjdCogbV9yZW5kZXJlcjsKKworICAgIEV4Y2x1c2lvblNoYXBlKiBzaGFwZSgpIGNvbnN0
IHsgQVNTRVJUKG1fc2hhcGUgJiYgIW1fc2hhcGVTaXplRGlydHkpOyByZXR1cm4gbV9zaGFwZS5n
ZXQoKTsgfTsKKyAgICBPd25QdHI8RXhjbHVzaW9uU2hhcGU+IG1fc2hhcGU7CisKKyAgICBMYXlv
dXRVbml0IG1fbGluZVRvcDsKKyAgICBMYXlvdXRVbml0IG1fbGluZUhlaWdodDsKKyAgICBMYXlv
dXRVbml0IG1fbG9naWNhbFdpZHRoOworICAgIExheW91dFVuaXQgbV9sb2dpY2FsSGVpZ2h0Owor
CisgICAgU2VnbWVudExpc3QgbV9zZWdtZW50czsKKyAgICBib29sIG1fc2hhcGVTaXplRGlydHk7
CisKKyAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbEJvdW5kc1koKSBjb25zdAorICAgIHsKKyAg
ICAgICAgLy8gVXNlIGZyb21GbG9hdENlaWwoKSB0byBlbnN1cmUgdGhhdCB0aGUgcmV0dXJuZWQg
TGF5b3V0VW5pdCB2YWx1ZSBpcyB3aXRoaW4gdGhlIHNoYXBlJ3MgYm91bmRzLgorICAgICAgICBy
ZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChzaGFwZSgpLT5zaGFwZUxvZ2ljYWxCb3Vu
ZGluZ0JveCgpLnkoKSk7CisgICAgfQorCisgICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxCb3Vu
ZHNNYXhZKCkgY29uc3QKKyAgICB7CisgICAgICAgIC8vIFVzZSBmcm9tRmxvYXRGbG9vcigpIHRv
IGVuc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBMYXlvdXRVbml0IHZhbHVlIGlzIHdpdGhpbiB0aGUg
c2hhcGUncyBib3VuZHMuCisgICAgICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRGbG9v
cihzaGFwZSgpLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLm1heFkoKSk7CisgICAgfQorfTsK
KwordGVtcGxhdGUgPGNsYXNzIFJlbmRlclR5cGUsIEJhc2ljU2hhcGUqIChSZW5kZXJTdHlsZTo6
KnNoYXBlR2V0dGVyKSgpIGNvbnN0LCB2b2lkIChFeGNsdXNpb25TaGFwZTo6KmludGVydmFsR2V0
dGVyKShmbG9hdCwgZmxvYXQsIFNlZ21lbnRMaXN0JikgY29uc3Q+CitjbGFzcyBFeGNsdXNpb25T
aGFwZUluZm8gOiBwdWJsaWMgRXhjbHVzaW9uU2hhcGVJbmZvUGFydGlhbCwgcHVibGljIE1hcHBl
ZEluZm88UmVuZGVyVHlwZSwgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlclR5cGUsIHNoYXBlR2V0
dGVyLCBpbnRlcnZhbEdldHRlcj4gPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8RXhjbHVzaW9uU2hhcGVJbmZvPiBjcmVhdGVJ
bmZvKGNvbnN0IFJlbmRlclR5cGUqIHJlbmRlcmVyKSB7IHJldHVybiBhZG9wdFB0cihuZXcgRXhj
bHVzaW9uU2hhcGVJbmZvKHJlbmRlcmVyKSk7IH0KKyAgICBzdGF0aWMgYm9vbCBpc0luZm9FbmFi
bGVkRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyVHlwZSopOworICAgIGJvb2wgY29tcHV0ZVNlZ21l
bnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCk7Cisg
ICAgdm9pZCBjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBMYXlvdXRV
bml0IGxvZ2ljYWxIZWlnaHQpOworcHJvdGVjdGVkOgorICAgIEV4Y2x1c2lvblNoYXBlSW5mbyhj
b25zdCBSZW5kZXJUeXBlKik7Cit9OworCit0eXBlZGVmIEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5k
ZXJCbG9jaywgJlJlbmRlclN0eWxlOjpzaGFwZUluc2lkZSwgJkV4Y2x1c2lvblNoYXBlOjpnZXRJ
bmNsdWRlZEludGVydmFscz4gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOworCit9CisjZW5kaWYK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjc4MzBmMTBl
ZjZiZTRjMzkyMzA3ODM1M2M0ZDA5ODdkNzcxYTBkZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDExOCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUKLSAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nCi0gKiAgICBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAq
ICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cwotICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKLSAqIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwK
LSAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKLSAqIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgotICogVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GCi0gKiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgiCi0KLSNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lP
TlMpCi0KLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlJlbmRlckJsb2Nr
LmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdHlwZWRlZiBIYXNoTWFwPGNvbnN0IFJlbmRlckJsb2Nr
KiwgT3duUHRyPEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbz4gPiBFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm9NYXA7Ci0KLXN0YXRpYyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAmIGV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mb01hcCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChFeGNsdXNp
b25TaGFwZUluc2lkZUluZm9NYXAsIHN0YXRpY0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCwg
KCkpOwotICAgIHJldHVybiBzdGF0aWNFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXA7Ci19Ci0K
LUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFJlbmRl
ckJsb2NrKiBibG9jaykKLSAgICA6IG1fYmxvY2soYmxvY2spCi0gICAgLCBtX3NoYXBlU2l6ZURp
cnR5KHRydWUpCi17Ci19Ci0KLUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6fkV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbygpCi17Ci19Ci0KLUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvOjplbnN1cmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5k
ZXJCbG9jayhSZW5kZXJCbG9jayogYmxvY2spCi17Ci0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwKCku
YWRkKGJsb2NrLCBjcmVhdGUoYmxvY2spKTsKLSAgICByZXR1cm4gcmVzdWx0Lml0ZXJhdG9yLT52
YWx1ZS5nZXQoKTsKLX0KLQotRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm86OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0
IFJlbmRlckJsb2NrKiBibG9jaykKLXsKLSAgICBBU1NFUlQoYmxvY2stPnN0eWxlKCktPnNoYXBl
SW5zaWRlKCkpOwotICAgIHJldHVybiBleGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAoKS5nZXQo
YmxvY2spOwotfQotCi1ib29sIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aXNFeGNsdXNpb25T
aGFwZUluc2lkZUluZm9FbmFibGVkRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJs
b2NrKQotewotICAgIC8vIEZJWE1FOiBCdWcgODk3MDc6IEVuYWJsZSBzaGFwZSBpbnNpZGUgZm9y
IG5vbi1yZWN0YW5ndWxhciBzaGFwZXMKLSAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IGJsb2NrLT5z
dHlsZSgpLT5zaGFwZUluc2lkZSgpOwotICAgIHJldHVybiBzaGFwZSAmJiAoc2hhcGUtPnR5cGUo
KSA9PSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9SRUNUQU5HTEUgfHwgc2hhcGUtPnR5cGUoKSA9
PSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9QT0xZR09OKTsKLX0KLQotdm9pZCBFeGNsdXNpb25T
aGFwZUluc2lkZUluZm86OnJlbW92ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJs
b2NrKGNvbnN0IFJlbmRlckJsb2NrKiBibG9jaykKLXsKLSAgICBpZiAoIWJsb2NrLT5zdHlsZSgp
IHx8ICFibG9jay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKSkKLSAgICAgICAgcmV0dXJuOwotICAg
IGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCgpLnJlbW92ZShibG9jayk7Ci19Ci0KLXZvaWQg
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9n
aWNhbFdpZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpCi17Ci0gICAgaWYgKCFtX3NoYXBl
U2l6ZURpcnR5ICYmIGxvZ2ljYWxXaWR0aCA9PSBtX2xvZ2ljYWxXaWR0aCAmJiBsb2dpY2FsSGVp
Z2h0ID09IG1fbG9naWNhbEhlaWdodCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9zaGFwZVNp
emVEaXJ0eSA9IGZhbHNlOwotICAgIG1fbG9naWNhbFdpZHRoID0gbG9naWNhbFdpZHRoOwotICAg
IG1fbG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQ7Ci0KLSAgICAvLyBGSVhNRTogQnVnIDg5
OTkzOiBUaGUgd3JhcCBzaGFwZSBtYXkgY29tZSBmcm9tIHRoZSBwYXJlbnQgb2JqZWN0Ci0gICAg
QmFzaWNTaGFwZSogc2hhcGUgPSBtX2Jsb2NrLT5zdHlsZSgpLT5zaGFwZUluc2lkZSgpOwotICAg
IEFTU0VSVChzaGFwZSk7Ci0KLSAgICBtX3NoYXBlID0gRXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUV4
Y2x1c2lvblNoYXBlKHNoYXBlLCBsb2dpY2FsV2lkdGgsIGxvZ2ljYWxIZWlnaHQsIG1fYmxvY2st
PnN0eWxlKCktPndyaXRpbmdNb2RlKCkpOwotICAgIEFTU0VSVChtX3NoYXBlKTsKLX0KLQotYm9v
bCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0
VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQpCi17Ci0gICAgQVNTRVJUKGxpbmVI
ZWlnaHQgPj0gMCk7Ci0gICAgbV9saW5lVG9wID0gbGluZVRvcDsKLSAgICBtX2xpbmVIZWlnaHQg
PSBsaW5lSGVpZ2h0OwotICAgIG1fc2VnbWVudHMuY2xlYXIoKTsKLQotICAgIGlmIChsaW5lT3Zl
cmxhcHNTaGFwZUJvdW5kcygpKSB7Ci0gICAgICAgIEFTU0VSVChtX3NoYXBlKTsKLSAgICAgICAg
bV9zaGFwZS0+Z2V0SW5jbHVkZWRJbnRlcnZhbHMobGluZVRvcCwgc3RkOjptaW4obGluZUhlaWdo
dCwgc2hhcGVMb2dpY2FsQm90dG9tKCkgLSBsaW5lVG9wKSwgbV9zZWdtZW50cyk7Ci0gICAgfQot
ICAgIHJldHVybiBtX3NlZ21lbnRzLnNpemUoKTsKLX0KLQotfQotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhiZTExNGQ0YjJjYTNjMDFhMWQ0Mjc4M2RlOGZmZDli
YTc4MWUxM2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oCisrKyAv
ZGV2L251bGwKQEAgLTEsMTA1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRv
YmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQotICogICAgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKLSAqICAg
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZwotICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCi0gKiAgICBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUIEhPTERFUiBCRQotICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAotICogT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUgotICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCi0gKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKLSAqIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvX2gKLSNkZWZpbmUgRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvX2gKLQotI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLQotI2luY2x1
ZGUgIkV4Y2x1c2lvblNoYXBlLmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSAi
TGF5b3V0VW5pdC5oIgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBSZW5kZXJCbG9jazsKLQotY2xhc3MgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
IHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICB+RXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvKCk7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm8+IGNyZWF0ZShSZW5kZXJCbG9jayogYmxvY2spIHsgcmV0dXJuIGFkb3B0UHRy
KG5ldyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oYmxvY2spKTsgfQotICAgIHN0YXRpYyBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJs
b2NrKGNvbnN0IFJlbmRlckJsb2NrKik7Ci0gICAgc3RhdGljIEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyogZW5zdXJlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soUmVuZGVy
QmxvY2sqKTsKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9G
b3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayopOwotICAgIHN0YXRpYyBib29sIGlzRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvRW5hYmxlZEZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJs
b2NrKik7Ci0KLSAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJu
IHNoYXBlTG9naWNhbEJvdW5kc1koKTsgfQotICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsQm90
dG9tKCkgY29uc3QgeyByZXR1cm4gc2hhcGVMb2dpY2FsQm91bmRzTWF4WSgpOyB9Ci0gICAgYm9v
bCBsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fbGluZVRvcCA8IHNo
YXBlTG9naWNhbEJvdHRvbSgpICYmIG1fbGluZVRvcCArIG1fbGluZUhlaWdodCA+PSBzaGFwZUxv
Z2ljYWxUb3AoKTsgfQotCi0gICAgYm9vbCBoYXNTZWdtZW50cygpIGNvbnN0Ci0gICAgewotICAg
ICAgICByZXR1cm4gbGluZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSAmJiBtX3NlZ21lbnRzLnNpemUo
KTsKLSAgICB9Ci0gICAgY29uc3QgU2VnbWVudExpc3QmIHNlZ21lbnRzKCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIEFTU0VSVChoYXNTZWdtZW50cygpKTsKLSAgICAgICAgcmV0dXJuIG1fc2VnbWVu
dHM7Ci0gICAgfQotICAgIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxp
bmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCk7Ci0gICAgdm9pZCBjb21wdXRlU2hhcGVTaXpl
KExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpOwotICAg
IHZvaWQgZGlydHlTaGFwZVNpemUoKSB7IG1fc2hhcGVTaXplRGlydHkgPSB0cnVlOyB9Ci0KLXBy
aXZhdGU6Ci0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFJlbmRlckJsb2NrKik7Ci0KLSAg
ICBpbmxpbmUgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxCb3VuZHNZKCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3NoYXBlKTsKLSAgICAgICAgLy8gVXNlIGZyb21GbG9hdENlaWwoKSB0
byBlbnN1cmUgdGhhdCB0aGUgcmV0dXJuZWQgTGF5b3V0VW5pdCB2YWx1ZSBpcyB3aXRoaW4gdGhl
IHNoYXBlJ3MgYm91bmRzLgotICAgICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2Vp
bChtX3NoYXBlLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLnkoKSk7Ci0gICAgfQotCi0gICAg
aW5saW5lIExheW91dFVuaXQgc2hhcGVMb2dpY2FsQm91bmRzTWF4WSgpIGNvbnN0Ci0gICAgewot
ICAgICAgICBBU1NFUlQobV9zaGFwZSk7Ci0gICAgICAgIC8vIFVzZSBmcm9tRmxvYXRGbG9vcigp
IHRvIGVuc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBMYXlvdXRVbml0IHZhbHVlIGlzIHdpdGhpbiB0
aGUgc2hhcGUncyBib3VuZHMuCi0gICAgICAgIHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxvYXRG
bG9vcihtX3NoYXBlLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLm1heFkoKSk7Ci0gICAgfQot
Ci0gICAgUmVuZGVyQmxvY2sqIG1fYmxvY2s7Ci0gICAgT3duUHRyPEV4Y2x1c2lvblNoYXBlPiBt
X3NoYXBlOwotCi0gICAgTGF5b3V0VW5pdCBtX2xpbmVUb3A7Ci0gICAgTGF5b3V0VW5pdCBtX2xp
bmVIZWlnaHQ7Ci0gICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxXaWR0aDsKLSAgICBMYXlvdXRVbml0
IG1fbG9naWNhbEhlaWdodDsKLQotICAgIFNlZ21lbnRMaXN0IG1fc2VnbWVudHM7Ci0gICAgYm9v
bCBtX3NoYXBlU2l6ZURpcnR5OwotfTsKLQotfQotI2VuZGlmCi0jZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0xheW91dFN0YXRlLmgKaW5kZXggMzg1NzFmOTFkNzhhZjYxODA0OTgxZGUxMWNm
YjQ5M2U0ZjZjNjkyMi4uNTVkODA0NzgxZWJiZDg5Y2VjNjNiYmRjMTcxM2VkYTY1ODI0MDEwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKQEAgLTMxLDYgKzMxLDEwIEBA
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
IAorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyNpbmNsdWRlICJFeGNsdXNpb25TaGFwZUlu
Zm8uaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlckFyZW5h
OwpAQCAtMzgsOSArNDIsNiBAQCBjbGFzcyBSZW5kZXJCbG9jazsKIGNsYXNzIFJlbmRlckJveDsK
IGNsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7Ci0jaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQotY2xhc3MgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOwotI2VuZGlm
CiAKIGNsYXNzIExheW91dFN0YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShMYXlvdXRT
dGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWFwcGVkSW5mby5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcHBlZEluZm8uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMjg4
MTIyZDZmN2ZiYTY3OTMxOWI2MzJmNDlmNjIzNjAzMjNhZGUyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01hcHBlZEluZm8uaApAQCAtMCwwICsxLDgwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29w
eXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcK
KyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAor
ICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWFwcGVkSW5mb19oCisjZGVmaW5l
IE1hcHBlZEluZm9faAorCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYv
T3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3RlbXBsYXRlIDxjbGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlwZT4KK2NsYXNz
IE1hcHBlZEluZm8geworICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIEluZm9UeXBlKiBlbnN1
cmVJbmZvKGNvbnN0IEtleVR5cGUqKTsKKyAgICAgICAgc3RhdGljIHZvaWQgcmVtb3ZlSW5mbyhj
b25zdCBLZXlUeXBlKik7CisgICAgICAgIHN0YXRpYyBJbmZvVHlwZSogaW5mbyhjb25zdCBLZXlU
eXBlKik7CisgICAgcHJpdmF0ZToKKyAgICAgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IEtleVR5
cGUqLCBPd25QdHI8SW5mb1R5cGU+ID4gSW5mb01hcDsKKyAgICAgICAgc3RhdGljIEluZm9NYXAm
IGluZm9NYXAoKTsKK307CisKK3RlbXBsYXRlIDxjbGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlw
ZT4KK3R5cGVuYW1lIE1hcHBlZEluZm88S2V5VHlwZSwgSW5mb1R5cGU+OjpJbmZvTWFwJiBNYXBw
ZWRJbmZvPEtleVR5cGUsIEluZm9UeXBlPjo6aW5mb01hcCgpCit7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChJbmZvTWFwLCBzdGF0aWNJbmZvTWFwLCAoKSk7CisgICAgcmV0dXJuIHN0YXRpY0lu
Zm9NYXA7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlwZT4KK0lu
Zm9UeXBlKiBNYXBwZWRJbmZvPEtleVR5cGUsIEluZm9UeXBlPjo6ZW5zdXJlSW5mbyhjb25zdCBL
ZXlUeXBlKiBrZXkpCit7CisgICAgSW5mb01hcCYgaW5mb01hcCA9IE1hcHBlZEluZm88S2V5VHlw
ZSwgSW5mb1R5cGU+OjppbmZvTWFwKCk7CisgICAgaWYgKEluZm9UeXBlKiBpbmZvID0gaW5mb01h
cC5nZXQoa2V5KSkKKyAgICAgICAgcmV0dXJuIGluZm87CisgICAgdHlwZW5hbWUgSW5mb01hcDo6
QWRkUmVzdWx0IHJlc3VsdCA9IGluZm9NYXAuYWRkKGtleSwgSW5mb1R5cGU6OmNyZWF0ZUluZm8o
a2V5KSk7CisgICAgcmV0dXJuIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7Cit9CisKK3Rl
bXBsYXRlIDxjbGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlwZT4KK3ZvaWQgTWFwcGVkSW5mbzxL
ZXlUeXBlLCBJbmZvVHlwZT46OnJlbW92ZUluZm8oY29uc3QgS2V5VHlwZSoga2V5KQoreworICAg
IGluZm9NYXAoKS5yZW1vdmUoa2V5KTsKK30KKwordGVtcGxhdGUgPGNsYXNzIEtleVR5cGUsIGNs
YXNzIEluZm9UeXBlPgorSW5mb1R5cGUqIE1hcHBlZEluZm88S2V5VHlwZSwgSW5mb1R5cGU+Ojpp
bmZvKGNvbnN0IEtleVR5cGUqIGtleSkKK3sKKyAgICByZXR1cm4gaW5mb01hcCgpLmdldChrZXkp
OworfQorCit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CmluZGV4IDRhNWU4OTMzZDBhMGFmZjk0YWM3MzY0OTc0YmRjNDA5NjUwMzI0MzQuLjYzNTkzYzI1
MzFlMTc1MjQ4OGJiZWMzNDRmODJiYzEzY2ViOTUzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNjMsNyArNjMsNyBAQAogI2luY2x1ZGUgIlRyYW5zZm9y
bVN0YXRlLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2lmIEVOQUJMRShDU1Nf
RVhDTFVTSU9OUykKLSNpbmNsdWRlICJFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCIKKyNpbmNs
dWRlICJFeGNsdXNpb25TaGFwZUluZm8uaCIKICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2Ugc3Rk
OwpAQCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCgp
CiAgICAgICAgIGxpbmVHcmlkQm94KCktPmRlc3Ryb3kocmVuZGVyQXJlbmEoKSk7CiAKICNpZiBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpyZW1v
dmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsKKyAgICBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm86OnJlbW92ZUluZm8odGhpcyk7CiAjZW5kaWYKIAogICAgIGlm
IChVTkxJS0VMWShnRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQgIT0gMCkpCkBAIC0xNDA1LDEw
ICsxNDA1LDEwIEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mb0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgQmFzaWNTaGFwCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGlmIChzaGFwZUluc2lkZSkgewotICAgICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8q
IGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6ZW5z
dXJlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2sodGhpcyk7CisgICAgICAg
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvOjplbnN1cmVJbmZvKHRoaXMpOwogICAgICAgICBleGNsdXNp
b25TaGFwZUluc2lkZUluZm8tPmRpcnR5U2hhcGVTaXplKCk7CiAgICAgfSBlbHNlCi0gICAgICAg
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6cmVtb3ZlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
Rm9yUmVuZGVyQmxvY2sodGhpcyk7CisgICAgICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6
cmVtb3ZlSW5mbyh0aGlzKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5oCmluZGV4IDU1YTAwMWY2MWM0Y2IzYTEyMmVhZTlkYTc4Y2ZmYTIwYzk2NzQyMjcu
LmQxOTg5Y2Y1NDk5YWE1YmNkNDNhYTllYmUyMmUwNzA2ODlhZjdlZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSA8d3Rm
L0xpc3RIYXNoU2V0Lmg+CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0jaW5jbHVkZSAi
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgiCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVJbmZv
LmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDUsNiArNDUsNyBAQCBjbGFz
cyBJbmxpbmVJdGVyYXRvcjsKIGNsYXNzIExheW91dFN0YXRlTWFpbnRhaW5lcjsKIGNsYXNzIExp
bmVMYXlvdXRTdGF0ZTsKIGNsYXNzIExpbmVXaWR0aDsKK2NsYXNzIFJlbmRlckJsb2NrOwogY2xh
c3MgUmVuZGVySW5saW5lOwogY2xhc3MgUmVuZGVyVGV4dDsKIApAQCAtNDIzLDcgKzQyNCw3IEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8oKSBjb25zdAogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHN0eWxlKCktPnNoYXBlSW5zaWRlKCkgJiYgRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvOjppc0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayh0aGlz
KSA/IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9y
UmVuZGVyQmxvY2sodGhpcykgOiAwOworICAgICAgICByZXR1cm4gc3R5bGUoKS0+c2hhcGVJbnNp
ZGUoKSAmJiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmlzSW5mb0VuYWJsZWRGb3JSZW5kZXJl
cih0aGlzKSA/IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aW5mbyh0aGlzKSA6IDA7CiAgICAg
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
TGluZUxheW91dC5jcHAKaW5kZXggMmU1OGVhNjc3MTE2MzlkMTgxOGUzY2E4Mjk2ZjlmZjk5Y2Ew
ZDgyNi4uNzQ3MTFmZjlhNGFkMTk3M2E5YzM5ZjhiMzgwNmI3MDlhMmQyM2E4ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAg
LTQ2LDcgKzQ2LDcgQEAKICNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgog
CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mby5oIgorI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5mby5oIgogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoU1ZHKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184625</attachid>
            <date>2013-01-24 18:08:47 -0800</date>
            <delta_ts>2013-01-25 11:14:20 -0800</delta_ts>
            <desc>Updating to current ExclusionShapeInside/OutsideInfo code</desc>
            <filename>bug-100766-20130124180539.patch</filename>
            <type>text/plain</type>
            <size>40760</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWU1NzZhOGI0ZjYzOTBi
MzI0ZWRmNTdjNjBlMDUxNTI2Nzc2Njk0Mi4uNDYzODVkZGI4OWVjYzNjZjVkYjUzZjc1N2E5YjQ2
YzFmY2Q3YmE3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEzLTAxLTI0ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IFJlZmFjdG9yIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyB0byBtb3JlIGdlbmVyYWwgRXhjbHVz
aW9uU2hhcGVJbmZvCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDA3NjYKKworICAgICAgICBGYWN0b3Jpbmcgb3V0IGNvZGUgY29tbW9uIHRvIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbyBhbmQgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbworICAgICAg
ICBpbnRvIGNvbW1vbiBjbGFzc2VzIGluIEV4Y2x1c2lvblNoYXBlSW5mby5oLiBTaW5jZSB0aGUg
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvIGFuZAorICAgICAgICBFeGNsdXNpb25TaGFwZU91dHNp
ZGVJbmZvIHNoYXJlIGFsbW9zdCBhbGwgb2YgdGhlaXIgY29kZSwgc2F2ZSB0aGUgUmVuZGVyT2Jq
ZWN0IHR5cGUKKyAgICAgICAgdGhleSB3b3JrIHdpdGggYW5kIHRoZSBzcGVjaWZpYyBzaGFwZUlu
c2lkZS9PdXRzaWRlIG1ldGhvZHMgdGhleSBjYWxsIG9uIFJlbmRlclN0eWxlCisgICAgICAgIGFu
ZCBFeGNsdXNpb25TaGFwZSwgdGhlIGNvZGUgaGFzIGJlZW4gdGVtcGxhdGVkLiBUaGUgY29kZSBy
ZXNwb25zaWJsZSBmb3IgbWFpbnRhaW5pbmcKKyAgICAgICAgZ2xvYmFsIG1hcHMgaGFzIGFsc28g
YmVlbiBmYWN0b3JlZCBvdXQgaW50byBhIE1hcHBlZEluZm8gY2xhc3MuCisKKyAgICAgICAgUmVm
YWN0b3JpbmcsIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDogQWRkaW5nIEV4Y2x1c2lvblNoYXBlSW5mbyBmaWxlcy4KKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOiBEaXR0by4KKyAgICAgICAgKiBUYXJnZXQucHJpOiBEaXR0by4KKyAg
ICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8u
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ojo6Y29tcHV0ZWRTaGFwZSk6IERldGVybWlu
ZSB0aGUgc2hhcGUgYmFzZWQgb24gdGhlIGN1cnJlbnQgbG9naWNhbAorICAgICAgICBkaW1lbnNp
b25zLiBDYWxsIHRoaXMgbWV0aG9kIHJhdGhlciB0aGFuIGFjY2Vzc2luZyBtX3NoYXBlIGRpcmVj
dGx5LgorICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uaDogQWRkZWQuCisg
ICAgICAgIChNYXBwZWRJbmZvKTogSGVscGVyIGNsYXNzIHRoYXQgbWFpbnRhaW5zIGEgZ2xvYmFs
IGluZm8gbWFwLgorICAgICAgICAoV2ViQ29yZTo6TWFwcGVkSW5mbzo6ZW5zdXJlSW5mbyk6IExv
b2sgdXAgdGhlIGluZm8gZm9yIGEga2V5IGFuZCBhZGQgaXQgaWYgbm90IHByZXNlbnQuCisgICAg
ICAgIChXZWJDb3JlOjpNYXBwZWRJbmZvOjpyZW1vdmVJbmZvKTogUmVtb3ZlIHRoZSBpbmZvIGFz
c29jaWF0ZWQgd2l0aCBhIGtleS4KKyAgICAgICAgKFdlYkNvcmU6Ok1hcHBlZEluZm86OmluZm8p
OiBMb29rIHVwIHRoZSBpbmZvIGFzc29jaWF0ZWQgd2l0aCBhIGtleS4KKyAgICAgICAgKFdlYkNv
cmU6Ok1hcHBlZEluZm86OmluZm9NYXApOiBUaGUgbWFwIHVzZWQgdG8gc3RvcmUga2V5L2luZm8g
cGFpcnMuCisgICAgICAgIChFeGNsdXNpb25TaGFwZUluZm8pOiBBIGNvbW1vbiBwYXJlbnQgY2xh
c3MgZm9yIEV4Y2x1c2lvblNoYXBlSW5zaWRlL091dHNpZGVJbmZvcy4KKyAgICAgICAgVGhlIG1l
dGhvZHMgd2VyZSBmYWN0b3JlZCBvdXQgb2YgdGhlIGNvZGUgY29tbW9uIHRvIEV4Y2x1c2lvblNo
YXBlSW5zaWRlL091dHNpZGVJbmZvLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJ
bmZvOjp+RXhjbHVzaW9uU2hhcGVJbmZvKTogRGVzdHJ1Y3Rvci4KKyAgICAgICAgKFdlYkNvcmU6
OkV4Y2x1c2lvblNoYXBlSW5mbzo6c2V0U2hhcGVTaXplKTogU2V0cyB0aGUgc2hhcGUncyBsb2dp
Y2FsIHNpemUuCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluZm86OnNoYXBlTG9n
aWNhbFRvcC9Cb3R0b20vTGVmdC9SaWdodC9XaWR0aC9IZWlnaHQpOiAKKyAgICAgICAgUmV0dXJu
cyB0aGUgc2hhcGUncyBsb2dpY2FsIGRpbWVuc2lvbnMuCisgICAgICAgIChXZWJDb3JlOjpFeGNs
dXNpb25TaGFwZUluZm86OmRpcnR5U2hhcGVTaXplKTogTWFyayB0aGUgc2hhcGUgZm9yIHJlY29t
cHV0YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluZm86Om93bmVyKTog
VGhlIHJlbmRlcmVyIHRvIHdoaWNoIHRoaXMgaW5mbyBiZWxvbmdzLgorICAgICAgICAoV2ViQ29y
ZTo6RXhjbHVzaW9uU2hhcGVJbmZvOjpFeGNsdXNpb25TaGFwZUluZm8pOiBDb25zdHJ1Y3Rvci4K
KyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5mbzo6ZmxvYXRMb2dpY2FsVG9wVG9M
YXlvdXRVbml0L2Zsb2F0TG9naWNhbEJvdHRvbVRvTGF5b3V0VW5pdCk6CisgICAgICAgIEhlbHBl
ciBtZXRob2RzIHRoYXQgcm91bmQgZmxvYXQgdW5pdHMgZnJvbSBFeGNsdXNpb25TaGFwZXMgdG8g
TGF5b3V0VW5pdHMgZm9yIGxheW91dC4KKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZSk6IE1vZGlmaWVkIHRvIHVzZQorICAgICAgICBj
b21wdXRlZFNoYXBlKCkgcmF0aGVyIHRoYW4gbV9zaGFwZS4KKyAgICAgICAgKFdlYkNvcmU6OkV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6YWRqdXN0TG9naWNhbExpbmVUb3ApOiBEaXR0by4KKyAg
ICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmg6CisgICAgICAgIChX
ZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmNyZWF0ZUluZm8pOiBSZW5hbWVkIHRv
IG1hdGNoIE1hcHBlZEluZm8uCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm86OmlzRW5hYmxlZEZvcik6IFJlbmFtZWQgdG8gbWF0Y2ggc2hvcnRlciBuYW1pbmcuCisg
ICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmxpbmVPdmVybGFwc1No
YXBlQm91bmRzKTogTW9kaWZpZWQgdG8gdXNlCisgICAgICAgIGNvbXB1dGVkU2hhcGUoKS4KKyAg
ICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mby5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjppc0VuYWJsZWRGb3IpOiBSZW5h
bWVkIHRvIG1hdGNoIHNob3J0ZXIgbmFtaW5nLgorICAgICAgICAqIHJlbmRlcmluZy9FeGNsdXNp
b25TaGFwZU91dHNpZGVJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZU91
dHNpZGVJbmZvOjpjcmVhdGVJbmZvKTogUmVuYW1lZCB0byBtYXRjaCBNYXBwZWRJbmZvLgorICAg
ICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6RXhjbHVzaW9uU2hhcGVP
dXRzaWRlSW5mbyk6IENvbnN0cnVjdG9yLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6d2lsbEJlRGVzdHJveWVkKTog
VXNlIHNob3J0ZW5lZCBNYXBwZWRJbmZvIG5hbWVzIGZvciBsb29raW5nCisgICAgICAgIHVwIGlu
Zm9zLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRlRXhjbHVzaW9uU2hhcGVTaXplKTogRGl0dG8uCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6OndpbGxCZURlc3Ryb3llZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94Ojp1cGRhdGVFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZSk6IERp
dHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpleGNsdXNpb25TaGFwZU91dHNpZGVJbmZv
KTogRGl0dG8uCisKIDIwMTMtMDEtMjQgIEFya28gU2FoYSAgPGFya29AbW90b3JvbGEuY29tPgog
CiAgICAgICAgIE1pY3JvZGF0YTogaXRlbXR5cGUgYXR0cmlidXRlIG11c3QgdXBkYXRlIGNvcnJl
Y3RseSBvbiBhZGRpbmcgb3IgcmVtb3ZpbmcgdG9rZW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDMxZWIxMGQwODI2MmZjMzkwNzEwYzYxMmE2MGRmMTUwZTJkODFiNGMuLmQ3MzQ4MGQ5OGNmOThm
MmY2MjkyZGU2M2I1YTVhNmE2NjdkYjVkN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMTAz
LDYgKzIxMDMsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lv
blBvbHlnb24uY3BwCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5jcHAKICAgICBy
ZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuY3BwCisgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
SW5mby5jcHAKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcAogICAg
IHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmNwcAogICAgIHJlbmRlcmluZy9G
aWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4
IGQ3NTIxZDRiM2QxMzEyZDFhMjU1NjMwZjQyODg0ZGNmMThlYWFjM2QuLmUxZDIxMGQ3NmZhNjYw
MDgzZTMwYjgxMDU0ZTQ1NzRkODhlZTZhOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtNDI4NSw2ICs0Mjg1LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmggXAogCVNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9F
eGNsdXNpb25TaGFwZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVJbmZvLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5m
by5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
by5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5m
by5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMjk5OGM5ZDUxNGQ3ZDUyYjFjOWJhZGJjZWM5NzZjNWVh
MzNiMzQ0Ni4uNTMxMzg2YjVhYmQyNzQ0ZTk4MjczYWRhYmY3N2I5NWUxMmM5MDhmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJn
ZXQucHJpCkBAIC0xMTQ1LDYgKzExNDUsNyBAQCBTT1VSQ0VTICs9IFwKICAgICByZW5kZXJpbmcv
RXhjbHVzaW9uUG9seWdvbi5jcHAgXAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUu
Y3BwIFwKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuY3BwIFwKKyAgICByZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbmZvLmNwcCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mby5jcHAgXAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmNw
cCBcCiAgICAgcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcCBcCkBAIC0yMzk5LDYg
KzI0MDAsNyBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5o
IFwKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmggXAogICAgIHJlbmRlcmluZy9F
eGNsdXNpb25TaGFwZS5oIFwKKyAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmggXAog
ICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBcCiAgICAgcmVuZGVyaW5n
L0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uaCBcCiAgICAgcmVuZGVyaW5nL0ZpbHRlckVmZmVj
dFJlbmRlcmVyLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDRkNTg2ODEyYzE5YTc4ODhhNzAzMmM3
Njc1NzExYTczMDQ4NGJlOTguLmQ3NTIyNDNhMDgyMzIzZTM5MDc0NTZiMTBjMWI2OWRmM2U2YWVh
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIyNjUsNiArMjI2NSw4IEBACiAgICAgICAgICAgICAn
cmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGUuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGUuaCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5jcHAnLAor
ICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uaCcsCiAgICAgICAgICAg
ICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAnLAogICAgICAgICAgICAg
J3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCcsCiAgICAgICAgICAgICAncmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggYjhhMWI1N2U0NzEwNGQyNDE4MjEz
NzZiOTM4Y2I5NzRlMGJhNzk2MS4uNmFjMTUxNTM1Y2QxNmM3OTRjZTNhZDQyNjA3MjkxZWI1NmRl
M2U1NSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
QEAgLTM5MDE0LDYgKzM5MDE0LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xFeGNsdXNpb25TaGFwZUluZm8uY3BwIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdc
RXhjbHVzaW9uU2hhcGVJbmZvLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwIgog
CQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA3N2M2ZTUxZWJmZGVhMmM2YzRlYWQ1YTFiZjljYWY3Njg2
MjQ2YzY4Li5hOTFhZjg5NDNkNGFkODI5MTMyODJiY2E2YjE4MThhNjQ3NTZhNzIwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02
Njk4LDYgKzY2OTgsOCBAQAogCQlGREIwNTJFMDE1NjFBNDJDMDBCNTAwRDYgLyogQXVkaW9TdW1t
aW5nSnVuY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEZEQjA1MkRFMTU2MUE0MkMwMEI1MDBENiAvKiBBdWRpb1N1bW1pbmdKdW5jdGlvbi5oICov
OyB9OwogCQlGREIxNzAwNTE0QTJCQUIyMDBBMkI1RDkgLyogTXVsdGlDaGFubmVsUmVzYW1wbGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQjE3
MDAzMTRBMkJBQjIwMEEyQjVEOSAvKiBNdWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwICovOyB9Owog
CQlGREIxNzAwNjE0QTJCQUIyMDBBMkI1RDkgLyogTXVsdGlDaGFubmVsUmVzYW1wbGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREIxNzAwNDE0QTJC
QUIyMDBBMkI1RDkgLyogTXVsdGlDaGFubmVsUmVzYW1wbGVyLmggKi87IH07CisJCUZEQjhEMURB
MTZCMEMwRDcwMDM0MEYxMCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQjhEMUQ5MTZCMEMwRDcwMDM0MEYxMCAv
KiBFeGNsdXNpb25TaGFwZUluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlGREI4RDFFNTE2QjBDQzk3MDAzNDBGMTAgLyogRXhjbHVzaW9uU2hh
cGVJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZEQjhEMURCMTZCMEMwRjYwMDM0MEYxMCAvKiBFeGNsdXNpb25TaGFwZUluZm8uY3BwICovOyB9
OwogCQlGREJEMURGQzE2N0ZFMjdEMDA1MUExMUUgLyogSlNPc2NpbGxhdG9yTm9kZUN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREJEMURG
QjE2N0ZFMjdEMDA1MUExMUUgLyogSlNPc2NpbGxhdG9yTm9kZUN1c3RvbS5jcHAgKi87IH07CiAJ
CUZEQkQ0ODBDMTU5QkM2ODcwMDkzRUI0RiAvKiBKU01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2Rl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQkQ0
ODBBMTU5QkM2ODcwMDkzRUI0RiAvKiBKU01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcCAq
LzsgfTsKIAkJRkRCRDQ4MEQxNTlCQzY4NzAwOTNFQjRGIC8qIEpTTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZU5vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZEQkQ0ODBCMTU5QkM2ODcwMDkzRUI0RiAvKiBKU01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2Rl
LmggKi87IH07CkBAIC0xNDM1NCw2ICsxNDM1Niw4IEBACiAJCUZEQjA1MkRFMTU2MUE0MkMwMEI1
MDBENiAvKiBBdWRpb1N1bW1pbmdKdW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBdWRpb1N1bW1pbmdKdW5jdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGREIxNzAwMzE0QTJCQUIyMDBBMkI1RDkgLyogTXVsdGlDaGFubmVsUmVzYW1wbGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE11bHRpQ2hhbm5lbFJlc2Ft
cGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZEQjE3MDA0MTRBMkJBQjIw
MEEyQjVEOSAvKiBNdWx0aUNoYW5uZWxSZXNhbXBsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTXVsdGlDaGFubmVsUmVzYW1wbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUZEQjhEMUQ5MTZCMEMwRDcwMDM0MEYxMCAvKiBFeGNsdXNpb25TaGFwZUluZm8u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjbHVzaW9uU2hhcGVJbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZEQjhEMURCMTZCMEMwRjYwMDM0MEYxMCAv
KiBFeGNsdXNpb25TaGFwZUluZm8uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRXhjbHVzaW9uU2hhcGVJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRkRCRDFERkIxNjdGRTI3RDAwNTFBMTFFIC8qIEpTT3NjaWxsYXRvck5vZGVDdXN0b20uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPc2NpbGxhdG9yTm9kZUN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZEQkQ0ODBBMTU5QkM2ODcw
MDkzRUI0RiAvKiBKU01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREJENDgwQjE1OUJDNjg3MDA5M0VCNEYg
LyogSlNNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMTkyMiw2ICsyMTkyNiw4IEBACiAJCQkJNkU4Nzk4QjcxNUY4MUU0
QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblJlY3RhbmdsZS5oICovLAogCQkJCTZFODc5OEI4MTVGODFF
NEEwMEJGRTRBQSAvKiBFeGNsdXNpb25TaGFwZS5jcHAgKi8sCiAJCQkJNkU4Nzk4QjkxNUY4MUU0
QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblNoYXBlLmggKi8sCisJCQkJRkRCOEQxREIxNkIwQzBGNjAw
MzQwRjEwIC8qIEV4Y2x1c2lvblNoYXBlSW5mby5jcHAgKi8sCisJCQkJRkRCOEQxRDkxNkIwQzBE
NzAwMzQwRjEwIC8qIEV4Y2x1c2lvblNoYXBlSW5mby5oICovLAogCQkJCUZENzQ4QUJEMTVCRjc0
RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwICovLAogCQkJCUZENzQ4
QUJFMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCAqLywKIAkJ
CQk5QTlDRUY4QjE2M0IzRUExMDBERTdFRkUgLyogRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mby5j
cHAgKi8sCkBAIC0yNDA0MCw2ICsyNDA0Niw3IEBACiAJCQkJNkVBRjM0MTAxNjEzODY5QTAwODU5
NjI1IC8qIEV4Y2x1c2lvblBvbHlnb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTZFODc5OEJEMTVG
ODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25SZWN0YW5nbGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTZFODc5OEJGMTVGODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25TaGFwZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRkRCOEQxREExNkIwQzBENzAwMzQwRjEwIC8qIEV4Y2x1c2lvblNoYXBlSW5mby5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ3NDhBQzAxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUE5Q0VGOEUxNjNCM0VBMTAw
REU3RUZFIC8qIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZEMUFGMTUwMTY1NkYxNTEwMEM2RDRGNyAvKiBFeGNsdXNpb25TaGFwZVZhbHVlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTI3MzQ4LDYgKzI3MzU1LDcgQEAKIAkJCQk2RUFGMzQwRjE2MTM4NjlBMDA4
NTk2MjUgLyogRXhjbHVzaW9uUG9seWdvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2RTg3OThC
QzE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTZFODc5OEJFMTVGODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25TaGFwZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQlGREI4RDFFNTE2QjBDQzk3MDAzNDBGMTAgLyogRXhjbHVzaW9uU2hh
cGVJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZENzQ4QUJGMTVCRjc0RUQwMDU5Q0YwRCAv
KiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUE5Q0VG
OEQxNjNCM0VBMTAwREU3RUZFIC8qIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNkU2N0QyQTYxMjgwRThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9w
ZW5HTC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4
Y2x1c2lvblNoYXBlSW5mby5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNhOGQ5MDcyYTczNjBmZTU2OWQxYmFj
OWFlNWUyMWY0YzFmYjFlMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9FeGNsdXNpb25TaGFwZUluZm8uY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTIgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlz
Y2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAg
ICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkV4Y2x1c2lv
blNoYXBlSW5mby5oIgorCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorCisjaW5jbHVkZSAi
RXhjbHVzaW9uU2hhcGUuaCIKKyNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgorI2luY2x1ZGUgIlJl
bmRlckJveC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK3RlbXBsYXRlIDxjbGFzcyBSZW5kZXJUeXBlLCBFeGNsdXNpb25TaGFwZVZhbHVlKiAoUmVu
ZGVyU3R5bGU6OipzaGFwZUdldHRlcikoKSBjb25zdD4KK2NvbnN0IEV4Y2x1c2lvblNoYXBlKiBF
eGNsdXNpb25TaGFwZUluZm88UmVuZGVyVHlwZSwgc2hhcGVHZXR0ZXI+Ojpjb21wdXRlZFNoYXBl
KCkgY29uc3QKK3sKKyAgICBpZiAoRXhjbHVzaW9uU2hhcGUqIGV4Y2x1c2lvblNoYXBlID0gbV9z
aGFwZS5nZXQoKSkKKyAgICAgICAgcmV0dXJuIGV4Y2x1c2lvblNoYXBlOworICAgIAorICAgIEV4
Y2x1c2lvblNoYXBlVmFsdWUqIHNoYXBlVmFsdWUgPSAobV9yZW5kZXJlci0+c3R5bGUoKS0+KnNo
YXBlR2V0dGVyKSgpOworICAgIEJhc2ljU2hhcGUqIHNoYXBlID0gKHNoYXBlVmFsdWUgJiYgc2hh
cGVWYWx1ZS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNIQVBFKSA/IHNoYXBlVmFs
dWUtPnNoYXBlKCkgOiAwOworICAgIAorICAgIEFTU0VSVChzaGFwZSk7CisgICAgCisgICAgbV9z
aGFwZSA9IEV4Y2x1c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShzaGFwZSwgbV9sb2dp
Y2FsV2lkdGgsIG1fbG9naWNhbEhlaWdodCwgbV9yZW5kZXJlci0+c3R5bGUoKS0+d3JpdGluZ01v
ZGUoKSk7CisgICAgQVNTRVJUKG1fc2hhcGUpOworICAgIHJldHVybiBtX3NoYXBlLmdldCgpOwor
fQorCit0ZW1wbGF0ZSBjbGFzcyBFeGNsdXNpb25TaGFwZUluZm88UmVuZGVyQmxvY2ssICZSZW5k
ZXJTdHlsZTo6c2hhcGVJbnNpZGU+OwordGVtcGxhdGUgY2xhc3MgRXhjbHVzaW9uU2hhcGVJbmZv
PFJlbmRlckJveCwgJlJlbmRlclN0eWxlOjpzaGFwZU91dHNpZGU+OworfQorI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Mjg1OTNjZTEwOWYzZjc3YzQzYmJkMDRkZWM3MDE2NmVhODAwMmU2YgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uaApAQCAtMCww
ICsxLDExMCBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jw
b3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisqIGFyZSBtZXQ6CisqCisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUKKyogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyogICAgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorKiAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZworKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMKKyogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJUyIgQU5EIEFO
WQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyogTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorKiBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorKiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyogU1VDSCBE
QU1BR0UuCisqLworCisjaWZuZGVmIEV4Y2x1c2lvblNoYXBlSW5mb19oCisjZGVmaW5lIEV4Y2x1
c2lvblNoYXBlSW5mb19oCisKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisKKyNpbmNsdWRl
ICJFeGNsdXNpb25TaGFwZS5oIgorI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlVmFsdWUuaCIKKyNp
bmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJMYXlvdXRVbml0LmgiCisjaW5jbHVkZSAi
UmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3RlbXBsYXRlPGNsYXNzIEtleVR5cGUs
IGNsYXNzIEluZm9UeXBlPgorY2xhc3MgTWFwcGVkSW5mbyB7CitwdWJsaWM6CisgICAgc3RhdGlj
IEluZm9UeXBlKiBlbnN1cmVJbmZvKGNvbnN0IEtleVR5cGUqIGtleSkKKyAgICB7CisgICAgICAg
IEluZm9NYXAmIGluZm9NYXAgPSBNYXBwZWRJbmZvPEtleVR5cGUsIEluZm9UeXBlPjo6aW5mb01h
cCgpOworICAgICAgICBpZiAoSW5mb1R5cGUqIGluZm8gPSBpbmZvTWFwLmdldChrZXkpKQorICAg
ICAgICAgICAgcmV0dXJuIGluZm87CisgICAgICAgIHR5cGVuYW1lIEluZm9NYXA6OkFkZFJlc3Vs
dCByZXN1bHQgPSBpbmZvTWFwLmFkZChrZXksIEluZm9UeXBlOjpjcmVhdGVJbmZvKGtleSkpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKKyAgICB9CisgICAg
c3RhdGljIHZvaWQgcmVtb3ZlSW5mbyhjb25zdCBLZXlUeXBlKiBrZXkpIHsgaW5mb01hcCgpLnJl
bW92ZShrZXkpOyB9CisgICAgc3RhdGljIEluZm9UeXBlKiBpbmZvKGNvbnN0IEtleVR5cGUqIGtl
eSkgeyByZXR1cm4gaW5mb01hcCgpLmdldChrZXkpOyB9Citwcml2YXRlOgorICAgIHR5cGVkZWYg
SGFzaE1hcDxjb25zdCBLZXlUeXBlKiwgT3duUHRyPEluZm9UeXBlPiA+IEluZm9NYXA7CisgICAg
c3RhdGljIEluZm9NYXAmIGluZm9NYXAoKQorICAgIHsKKyAgICAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChJbmZvTWFwLCBzdGF0aWNJbmZvTWFwLCAoKSk7CisgICAgICAgIHJldHVybiBzdGF0aWNJ
bmZvTWFwOworICAgIH0KK307CisKK3RlbXBsYXRlIDxjbGFzcyBSZW5kZXJUeXBlLCBFeGNsdXNp
b25TaGFwZVZhbHVlKiAoUmVuZGVyU3R5bGU6OipzaGFwZUdldHRlcikoKSBjb25zdD4KK2NsYXNz
IEV4Y2x1c2lvblNoYXBlSW5mbyB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgfkV4Y2x1c2lvblNoYXBlSW5mbygpIHsgfQorCisgICAgdm9pZCBzZXRTaGFwZVNp
emUoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCkKKyAg
ICB7CisgICAgICAgIGlmIChtX2xvZ2ljYWxXaWR0aCA9PSBsb2dpY2FsV2lkdGggJiYgbV9sb2dp
Y2FsSGVpZ2h0ID09IGxvZ2ljYWxIZWlnaHQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IGRpcnR5U2hhcGVTaXplKCk7CisgICAgICAgIG1fbG9naWNhbFdpZHRoID0gbG9naWNhbFdpZHRo
OworICAgICAgICBtX2xvZ2ljYWxIZWlnaHQgPSBsb2dpY2FsSGVpZ2h0OworICAgIH0KKyAgICAK
KyAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbFRvcCgpIGNvbnN0IHsgcmV0dXJuIGZsb2F0TG9n
aWNhbFRvcFRvTGF5b3V0VW5pdChjb21wdXRlZFNoYXBlKCktPnNoYXBlTG9naWNhbEJvdW5kaW5n
Qm94KCkueSgpKTsgfQorICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsQm90dG9tKCkgY29uc3Qg
eyByZXR1cm4gZmxvYXRMb2dpY2FsQm90dG9tVG9MYXlvdXRVbml0KGNvbXB1dGVkU2hhcGUoKS0+
c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKS5tYXhZKCkpOyB9CisgICAgTGF5b3V0VW5pdCBzaGFw
ZUxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4gY29tcHV0ZWRTaGFwZSgpLT5zaGFwZUxvZ2lj
YWxCb3VuZGluZ0JveCgpLngoKTsgfQorICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsUmlnaHQo
KSBjb25zdCB7IHJldHVybiBjb21wdXRlZFNoYXBlKCktPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94
KCkueSgpOyB9CisgICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0
dXJuIGNvbXB1dGVkU2hhcGUoKS0+c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKS53aWR0aCgpOyB9
CisgICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxIZWlnaHQoKSBjb25zdCB7IHJldHVybiBjb21w
dXRlZFNoYXBlKCktPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkuaGVpZ2h0KCk7IH0KKyAgICAK
KyAgICB2b2lkIGRpcnR5U2hhcGVTaXplKCkgeyBtX3NoYXBlLmNsZWFyKCk7IH0KKyAgICBjb25z
dCBSZW5kZXJUeXBlKiBvd25lcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyZXI7IH0KKworcHJv
dGVjdGVkOgorICAgIEV4Y2x1c2lvblNoYXBlSW5mbyhjb25zdCBSZW5kZXJUeXBlKiByZW5kZXJl
cik6IG1fcmVuZGVyZXIocmVuZGVyZXIpIHsgfQorCisgICAgY29uc3QgRXhjbHVzaW9uU2hhcGUq
IGNvbXB1dGVkU2hhcGUoKSBjb25zdDsKKworICAgIC8vIFVzZSBjZWlsIGFuZCBmbG9vciB0byBl
bnN1cmUgdGhhdCB0aGUgcmV0dXJuZWQgTGF5b3V0VW5pdCB2YWx1ZSBpcyB3aXRoaW4gdGhlIHNo
YXBlJ3MgYm91bmRzLgorICAgIExheW91dFVuaXQgZmxvYXRMb2dpY2FsVG9wVG9MYXlvdXRVbml0
KGZsb2F0IGxvZ2ljYWxUb3ApIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdENl
aWwobG9naWNhbFRvcCk7IH0KKyAgICBMYXlvdXRVbml0IGZsb2F0TG9naWNhbEJvdHRvbVRvTGF5
b3V0VW5pdChmbG9hdCBsb2dpY2FsQm90dG9tKSBjb25zdCB7IHJldHVybiBMYXlvdXRVbml0Ojpm
cm9tRmxvYXRGbG9vcihsb2dpY2FsQm90dG9tKTsgfQorCitwcml2YXRlOgorICAgIG11dGFibGUg
T3duUHRyPEV4Y2x1c2lvblNoYXBlPiBtX3NoYXBlOworICAgIAorICAgIExheW91dFVuaXQgbV9s
b2dpY2FsV2lkdGg7CisgICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxIZWlnaHQ7CisgICAgY29uc3Qg
UmVuZGVyVHlwZSogbV9yZW5kZXJlcjsKK307Cit9CisjZW5kaWYKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcApp
bmRleCBlNzYwOTg5OWY0NDA4MWQ1NTliNjZhYjVlNjI4Y2RiMTg2MDcyM2YxLi40NjcxNTRjZjY5
N2Y1ZjkzNzU0MWE1Zjc3ZmNhODQ5ODI1NTFmZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcApAQCAtMzIsNzcgKzMy
LDkgQEAKIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKIAotI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotCi10
eXBlZGVmIEhhc2hNYXA8Y29uc3QgUmVuZGVyQmxvY2sqLCBPd25QdHI8RXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvPiA+IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcDsKLQotc3RhdGljIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mb01hcCYgZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwKCkKLXsK
LSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCwgc3Rh
dGljRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwLCAoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY0V4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcDsKLX0KLQotRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
OjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oUmVuZGVyQmxvY2sqIGJsb2NrKQotICAgIDogbV9i
bG9jayhibG9jaykKLSAgICAsIG1fc2hhcGVTaXplRGlydHkodHJ1ZSkKLXsKLX0KLQotRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvOjp+RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkKLXsKLX0KLQot
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmVuc3Vy
ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKFJlbmRlckJsb2NrKiBibG9j
aykKLXsKLSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXA6OkFkZFJlc3VsdCByZXN1bHQg
PSBleGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAoKS5hZGQoYmxvY2ssIGNyZWF0ZShibG9jaykp
OwotICAgIHJldHVybiByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmdldCgpOwotfQotCi1FeGNsdXNp
b25TaGFwZUluc2lkZUluZm8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6ZXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQotewot
ICAgIEFTU0VSVChibG9jay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKSk7Ci0gICAgcmV0dXJuIGV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCgpLmdldChibG9jayk7Ci19Ci0KLWJvb2wgRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvOjppc0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0VuYWJsZWRGb3JS
ZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayogYmxvY2spCi17Ci0gICAgLy8gRklYTUU6IEJ1
ZyA4OTcwNzogRW5hYmxlIHNoYXBlIGluc2lkZSBmb3Igbm9uLXJlY3Rhbmd1bGFyIHNoYXBlcwot
ICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHNoYXBlVmFsdWUgPSBibG9jay0+c3R5bGUoKS0+c2hh
cGVJbnNpZGUoKTsKLSAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IChzaGFwZVZhbHVlICYmIHNoYXBl
VmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTSEFQRSkgPyBzaGFwZVZhbHVl
LT5zaGFwZSgpIDogMDsKLSAgICByZXR1cm4gc2hhcGUgJiYgKHNoYXBlLT50eXBlKCkgPT0gQmFz
aWNTaGFwZTo6QkFTSUNfU0hBUEVfUkVDVEFOR0xFIHx8IHNoYXBlLT50eXBlKCkgPT0gQmFzaWNT
aGFwZTo6QkFTSUNfU0hBUEVfUE9MWUdPTik7Ci19Ci0KLXZvaWQgRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvOjpyZW1vdmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayhjb25z
dCBSZW5kZXJCbG9jayogYmxvY2spCi17Ci0gICAgaWYgKCFibG9jay0+c3R5bGUoKSB8fCAhYmxv
Y2stPnN0eWxlKCktPnNoYXBlSW5zaWRlKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBleGNsdXNp
b25TaGFwZUluc2lkZUluZm9NYXAoKS5yZW1vdmUoYmxvY2spOwotfQotCi12b2lkIEV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZVNoYXBlU2l6ZShMYXlvdXRVbml0IGxvZ2ljYWxXaWR0
aCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KQotewotICAgIGlmICghbV9zaGFwZVNpemVEaXJ0
eSAmJiBsb2dpY2FsV2lkdGggPT0gbV9sb2dpY2FsV2lkdGggJiYgbG9naWNhbEhlaWdodCA9PSBt
X2xvZ2ljYWxIZWlnaHQpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fc2hhcGVTaXplRGlydHkg
PSBmYWxzZTsKLSAgICBtX2xvZ2ljYWxXaWR0aCA9IGxvZ2ljYWxXaWR0aDsKLSAgICBtX2xvZ2lj
YWxIZWlnaHQgPSBsb2dpY2FsSGVpZ2h0OwotCi0gICAgLy8gRklYTUU6IEJ1ZyA4OTk5MzogVGhl
IHdyYXAgc2hhcGUgbWF5IGNvbWUgZnJvbSB0aGUgcGFyZW50IG9iamVjdAotICAgIEV4Y2x1c2lv
blNoYXBlVmFsdWUqIHNoYXBlVmFsdWUgPSBtX2Jsb2NrLT5zdHlsZSgpLT5zaGFwZUluc2lkZSgp
OwotICAgIEJhc2ljU2hhcGUqIHNoYXBlID0gKHNoYXBlVmFsdWUgJiYgc2hhcGVWYWx1ZS0+dHlw
ZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNIQVBFKSA/IHNoYXBlVmFsdWUtPnNoYXBlKCkg
OiAwOwotCi0gICAgQVNTRVJUKHNoYXBlKTsKLQotICAgIG1fc2hhcGUgPSBFeGNsdXNpb25TaGFw
ZTo6Y3JlYXRlRXhjbHVzaW9uU2hhcGUoc2hhcGUsIGxvZ2ljYWxXaWR0aCwgbG9naWNhbEhlaWdo
dCwgbV9ibG9jay0+c3R5bGUoKS0+d3JpdGluZ01vZGUoKSk7Ci0gICAgQVNTRVJUKG1fc2hhcGUp
OwotfQotCiBib29sIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9y
TGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhlaWdodCkKIHsKICAgICBB
U1NFUlQobGluZUhlaWdodCA+PSAwKTsKQEAgLTExMiwxOSArNDQsMTkgQEAgYm9vbCBFeGNsdXNp
b25TaGFwZUluc2lkZUluZm86OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5l
VG9wLCBMYXlvdXQKICAgICBtX3NlZ21lbnRSYW5nZXMuY2xlYXIoKTsKIAogICAgIGlmIChsaW5l
T3ZlcmxhcHNTaGFwZUJvdW5kcygpKSB7Ci0gICAgICAgIEFTU0VSVChtX3NoYXBlKTsKLSAgICAg
ICAgbV9zaGFwZS0+Z2V0SW5jbHVkZWRJbnRlcnZhbHMobGluZVRvcCwgc3RkOjptaW4obGluZUhl
aWdodCwgc2hhcGVMb2dpY2FsQm90dG9tKCkgLSBsaW5lVG9wKSwgbV9zZWdtZW50cyk7CisgICAg
ICAgIGNvbXB1dGVkU2hhcGUoKS0+Z2V0SW5jbHVkZWRJbnRlcnZhbHMobGluZVRvcCwgc3RkOjpt
aW4obGluZUhlaWdodCwgc2hhcGVMb2dpY2FsQm90dG9tKCkgLSBsaW5lVG9wKSwgbV9zZWdtZW50
cyk7CiAgICAgfQogICAgIHJldHVybiBtX3NlZ21lbnRzLnNpemUoKTsKIH0KIAogYm9vbCBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm86OmFkanVzdExvZ2ljYWxMaW5lVG9wKGZsb2F0IG1pblNlZ21l
bnRXaWR0aCkKIHsKLSAgICBpZiAoIW1fc2hhcGUgfHwgbV9saW5lSGVpZ2h0IDw9IDAgfHwgbV9s
aW5lVG9wID4gc2hhcGVMb2dpY2FsQm90dG9tKCkpCisgICAgY29uc3QgRXhjbHVzaW9uU2hhcGUq
IHNoYXBlID0gY29tcHV0ZWRTaGFwZSgpOworICAgIGlmICghc2hhcGUgfHwgbV9saW5lSGVpZ2h0
IDw9IDAgfHwgbV9saW5lVG9wID4gc2hhcGVMb2dpY2FsQm90dG9tKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGZsb2F0IGZsb2F0TmV3TGluZVRvcDsKLSAgICBpZiAobV9zaGFwZS0+
Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChtX2xpbmVUb3AsIEZsb2F0U2l6ZShtaW5T
ZWdtZW50V2lkdGgsIG1fbGluZUhlaWdodCksIGZsb2F0TmV3TGluZVRvcCkpIHsKKyAgICBpZiAo
c2hhcGUtPmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AobV9saW5lVG9wLCBGbG9hdFNp
emUobWluU2VnbWVudFdpZHRoLCBtX2xpbmVIZWlnaHQpLCBmbG9hdE5ld0xpbmVUb3ApKSB7CiAg
ICAgICAgIExheW91dFVuaXQgbmV3TGluZVRvcCA9IGZsb2F0TG9naWNhbFRvcFRvTGF5b3V0VW5p
dChmbG9hdE5ld0xpbmVUb3ApOwogICAgICAgICBpZiAobmV3TGluZVRvcCA+IG1fbGluZVRvcCkg
ewogICAgICAgICAgICAgbV9saW5lVG9wID0gbmV3TGluZVRvcDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaAppbmRleCAyYzFlN2Ri
NTM1ZWFjM2E1N2NjYmZiZWY5YWE3MTdiNzczODM2YzNhLi45NzRiMGJhNWVkMzU1ZmMxZWE0N2Iw
MGNiM2I1NDlmZWI4OTVhNTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oCkBAIC0xMyw3ICsxMyw3IEBACiAgKiAgICBkaXNj
bGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKICAqICAg
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElT
IiBBTkQgQU5ZCiAgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQogICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCiAgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQpAQCAtMzIs
MTEgKzMyLDggQEAKIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKIAotI2luY2x1ZGUgIkV4
Y2x1c2lvblNoYXBlLmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiRXhjbHVz
aW9uU2hhcGVJbmZvLmgiCiAjaW5jbHVkZSAiSW5saW5lSXRlcmF0b3IuaCIKLSNpbmNsdWRlICJM
YXlvdXRVbml0LmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC01NSwyNiArNTIsMTYgQEAg
c3RydWN0IExpbmVTZWdtZW50UmFuZ2UgewogfTsKIHR5cGVkZWYgVmVjdG9yPExpbmVTZWdtZW50
UmFuZ2U+IFNlZ21lbnRSYW5nZUxpc3Q7CiAKLWNsYXNzIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBFeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8gOiBwdWJsaWMgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlckJsb2NrLCAmUmVuZGVy
U3R5bGU6OnNoYXBlSW5zaWRlPiwgcHVibGljIE1hcHBlZEluZm88UmVuZGVyQmxvY2ssIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbz4gewogcHVibGljOgotICAgIH5FeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8oKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxFeGNsdXNpb25TaGFwZUluc2lkZUluZm8+
IGNyZWF0ZUluZm8oY29uc3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyKSB7IHJldHVybiBhZG9wdFB0
cihuZXcgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKHJlbmRlcmVyKSk7IH0KIAotICAgIHN0YXRp
YyBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbz4gY3JlYXRlKFJlbmRlckJsb2Nr
KiBibG9jaykgeyByZXR1cm4gYWRvcHRQdHIobmV3IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhi
bG9jaykpOyB9Ci0gICAgc3RhdGljIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqKTsKLSAgICBz
dGF0aWMgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBlbnN1cmVFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm9Gb3JSZW5kZXJCbG9jayhSZW5kZXJCbG9jayopOwotICAgIHN0YXRpYyB2b2lkIHJlbW92
ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2Nr
Kik7Ci0gICAgc3RhdGljIGJvb2wgaXNFeGNsdXNpb25TaGFwZUluc2lkZUluZm9FbmFibGVkRm9y
UmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqKTsKLQotICAgIExheW91dFVuaXQgc2hhcGVM
b2dpY2FsVG9wKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3NoYXBlKTsKLSAgICAg
ICAgcmV0dXJuIGZsb2F0TG9naWNhbFRvcFRvTGF5b3V0VW5pdChtX3NoYXBlLT5zaGFwZUxvZ2lj
YWxCb3VuZGluZ0JveCgpLnkoKSk7Ci0gICAgfQotICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2Fs
Qm90dG9tKCkgY29uc3QKKyAgICBzdGF0aWMgYm9vbCBpc0VuYWJsZWRGb3IoY29uc3QgUmVuZGVy
QmxvY2sqIHJlbmRlcmVyKQogICAgIHsKLSAgICAgICAgQVNTRVJUKG1fc2hhcGUpOwotICAgICAg
ICByZXR1cm4gZmxvYXRMb2dpY2FsQm90dG9tVG9MYXlvdXRVbml0KG1fc2hhcGUtPnNoYXBlTG9n
aWNhbEJvdW5kaW5nQm94KCkubWF4WSgpKTsKKyAgICAgICAgLy8gRklYTUU6IEJ1ZyA4OTcwNzog
RW5hYmxlIHNoYXBlIGluc2lkZSBmb3Igbm9uLXJlY3Rhbmd1bGFyIHNoYXBlcworICAgICAgICBF
eGNsdXNpb25TaGFwZVZhbHVlKiBzaGFwZVZhbHVlID0gcmVuZGVyZXItPnN0eWxlKCktPnNoYXBl
SW5zaWRlKCk7CisgICAgICAgIEJhc2ljU2hhcGUqIHNoYXBlID0gKHNoYXBlVmFsdWUgJiYgc2hh
cGVWYWx1ZS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNIQVBFKSA/IHNoYXBlVmFs
dWUtPnNoYXBlKCkgOiAwOworICAgICAgICByZXR1cm4gc2hhcGUgJiYgKHNoYXBlLT50eXBlKCkg
PT0gQmFzaWNTaGFwZTo6QkFTSUNfU0hBUEVfUkVDVEFOR0xFIHx8IHNoYXBlLT50eXBlKCkgPT0g
QmFzaWNTaGFwZTo6QkFTSUNfU0hBUEVfUE9MWUdPTik7CiAgICAgfQogICAgIGJvb2wgbGluZU92
ZXJsYXBzU2hhcGVCb3VuZHMoKSBjb25zdCB7IHJldHVybiBtX2xpbmVUb3AgPCBzaGFwZUxvZ2lj
YWxCb3R0b20oKSAmJiBtX2xpbmVUb3AgKyBtX2xpbmVIZWlnaHQgPj0gc2hhcGVMb2dpY2FsVG9w
KCk7IH0KIApAQCAtODcsNiArNzQsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChoYXNTZWdt
ZW50cygpKTsKICAgICAgICAgcmV0dXJuIG1fc2VnbWVudHM7CiAgICAgfQorCiAgICAgU2VnbWVu
dFJhbmdlTGlzdCYgc2VnbWVudFJhbmdlcygpIHsgcmV0dXJuIG1fc2VnbWVudFJhbmdlczsgfQog
ICAgIGNvbnN0IFNlZ21lbnRSYW5nZUxpc3QmIHNlZ21lbnRSYW5nZXMoKSBjb25zdCB7IHJldHVy
biBtX3NlZ21lbnRSYW5nZXM7IH0KICAgICBjb25zdCBMaW5lU2VnbWVudCogY3VycmVudFNlZ21l
bnQoKSBjb25zdApAQCAtOTcsMzEgKzg1LDE4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICZt
X3NlZ21lbnRzW21fc2VnbWVudFJhbmdlcy5zaXplKCldOwogICAgIH0KICAgICBib29sIGNvbXB1
dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWln
aHQpOwotICAgIGJvb2wgYWRqdXN0TG9naWNhbExpbmVUb3AoZmxvYXQgbWluU2VnbWVudFdpZHRo
KTsKLSAgICB2b2lkIGNvbXB1dGVTaGFwZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExh
eW91dFVuaXQgbG9naWNhbEhlaWdodCk7Ci0gICAgdm9pZCBkaXJ0eVNoYXBlU2l6ZSgpIHsgbV9z
aGFwZVNpemVEaXJ0eSA9IHRydWU7IH0KIAorICAgIGJvb2wgYWRqdXN0TG9naWNhbExpbmVUb3Ao
ZmxvYXQgbWluU2VnbWVudFdpZHRoKTsKICAgICBMYXlvdXRVbml0IGxvZ2ljYWxMaW5lVG9wKCkg
Y29uc3QgeyByZXR1cm4gbV9saW5lVG9wOyB9Ci0gICAgUmVuZGVyQmxvY2sqIG93bmVyQmxvY2so
KSBjb25zdCB7IHJldHVybiBtX2Jsb2NrOyB9CiAKIHByaXZhdGU6Ci0gICAgRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvKFJlbmRlckJsb2NrKik7Ci0KLSAgICAvLyBVc2UgY2VpbCBhbmQgZmxvb3Ig
dG8gZW5zdXJlIHRoYXQgdGhlIHJldHVybmVkIExheW91dFVuaXQgdmFsdWUgaXMgd2l0aGluIHRo
ZSBzaGFwZSdzIGJvdW5kcy4KLSAgICBMYXlvdXRVbml0IGZsb2F0TG9naWNhbFRvcFRvTGF5b3V0
VW5pdChmbG9hdCBsb2dpY2FsVG9wKSBjb25zdCB7IHJldHVybiBMYXlvdXRVbml0Ojpmcm9tRmxv
YXRDZWlsKGxvZ2ljYWxUb3ApOyB9Ci0gICAgTGF5b3V0VW5pdCBmbG9hdExvZ2ljYWxCb3R0b21U
b0xheW91dFVuaXQoZmxvYXQgbG9naWNhbEJvdHRvbSkgY29uc3QgeyByZXR1cm4gTGF5b3V0VW5p
dDo6ZnJvbUZsb2F0Rmxvb3IobG9naWNhbEJvdHRvbSk7IH0KLQotICAgIFJlbmRlckJsb2NrKiBt
X2Jsb2NrOwotICAgIE93blB0cjxFeGNsdXNpb25TaGFwZT4gbV9zaGFwZTsKKyAgICBFeGNsdXNp
b25TaGFwZUluc2lkZUluZm8oY29uc3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyKSA6IEV4Y2x1c2lv
blNoYXBlSW5mbzxSZW5kZXJCbG9jaywgJlJlbmRlclN0eWxlOjpzaGFwZUluc2lkZT4ocmVuZGVy
ZXIpIHsgfQogCiAgICAgTGF5b3V0VW5pdCBtX2xpbmVUb3A7CiAgICAgTGF5b3V0VW5pdCBtX2xp
bmVIZWlnaHQ7Ci0gICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxXaWR0aDsKLSAgICBMYXlvdXRVbml0
IG1fbG9naWNhbEhlaWdodDsKIAogICAgIFNlZ21lbnRMaXN0IG1fc2VnbWVudHM7CiAgICAgU2Vn
bWVudFJhbmdlTGlzdCBtX3NlZ21lbnRSYW5nZXM7Ci0gICAgYm9vbCBtX3NoYXBlU2l6ZURpcnR5
OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lv
blNoYXBlT3V0c2lkZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lv
blNoYXBlT3V0c2lkZUluZm8uY3BwCmluZGV4IDAzNTNjYmI4ODk5NzQzZjI5M2Y1ZTBlODcyMDE5
ZThiMGNhNjYzY2YuLjg3ZmE4YzZiMzA5YmRmYTM3ZDVkZTZjMDU2ZDc0ZmFkZTIyODg3YzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJ
bmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRz
aWRlSW5mby5jcHAKQEAgLTM0LDY5ICszNCwxNCBAQAogI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBl
T3V0c2lkZUluZm8uaCIKIAogI2luY2x1ZGUgIlJlbmRlckJveC5oIgotI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdHlwZWRlZiBIYXNoTWFwPGNvbnN0
IFJlbmRlckJveCosIE93blB0cjxFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvPiA+IEV4Y2x1c2lv
blNoYXBlT3V0c2lkZUluZm9NYXA7Ci0KLXN0YXRpYyBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZv
TWFwJiBleGNsdXNpb25TaGFwZU91dHNpZGVJbmZvTWFwKCkKLXsKLSAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm9NYXAsIHN0YXRpY0V4Y2x1c2lvblNoYXBl
T3V0c2lkZUluZm9NYXAsICgpKTsKLSAgICByZXR1cm4gc3RhdGljRXhjbHVzaW9uU2hhcGVPdXRz
aWRlSW5mb01hcDsKLX0KLQotRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6RXhjbHVzaW9uU2hh
cGVPdXRzaWRlSW5mbyhSZW5kZXJCb3gqIGJveCkKLSAgICA6IG1fYm94KGJveCkKLSAgICAsIG1f
bG9naWNhbFdpZHRoKDApCi0gICAgLCBtX2xvZ2ljYWxIZWlnaHQoMCkKLXsKLX0KLQotRXhjbHVz
aW9uU2hhcGVPdXRzaWRlSW5mbzo6fkV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oKQotewotfQot
Ci1FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKiBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjpl
bnN1cmVJbmZvRm9yUmVuZGVyQm94KFJlbmRlckJveCogYm94KQotewotICAgIEV4Y2x1c2lvblNo
YXBlT3V0c2lkZUluZm9NYXAmIGluZm9NYXAgPSBleGNsdXNpb25TaGFwZU91dHNpZGVJbmZvTWFw
KCk7Ci0gICAgaWYgKEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8qIHNoYXBlSW5mbyA9IGluZm9N
YXAuZ2V0KGJveCkpCi0gICAgICAgIHJldHVybiBzaGFwZUluZm87Ci0KLSAgICBFeGNsdXNpb25T
aGFwZU91dHNpZGVJbmZvTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gaW5mb01hcC5hZGQoYm94LCBj
cmVhdGUoYm94KSk7Ci0gICAgcmV0dXJuIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7Ci19
Ci0KLUV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8qIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86
OmluZm9Gb3JSZW5kZXJCb3goY29uc3QgUmVuZGVyQm94KiBib3gpCi17Ci0gICAgQVNTRVJUKGJv
eC0+c3R5bGUoKS0+c2hhcGVPdXRzaWRlKCkpOwotICAgIHJldHVybiBleGNsdXNpb25TaGFwZU91
dHNpZGVJbmZvTWFwKCkuZ2V0KGJveCk7Ci19Ci0KLWJvb2wgRXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mbzo6aXNJbmZvRW5hYmxlZEZvclJlbmRlckJveChjb25zdCBSZW5kZXJCb3gqIGJveCkKK2Jv
b2wgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6aXNFbmFibGVkRm9yKGNvbnN0IFJlbmRlckJv
eCogYm94KQogewogICAgIC8vIEZJWE1FOiBFbmFibGUgc2hhcGUgb3V0c2lkZSBmb3Igbm9uLXJl
Y3Rhbmd1bGFyIHNoYXBlcyEgKGJ1ZyA5ODY2NCkKICAgICBFeGNsdXNpb25TaGFwZVZhbHVlKiB2
YWx1ZSA9IGJveC0+c3R5bGUoKS0+c2hhcGVPdXRzaWRlKCk7CiAgICAgcmV0dXJuIHZhbHVlICYm
ICh2YWx1ZS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNIQVBFKSAmJiAodmFsdWUt
PnNoYXBlKCktPnR5cGUoKSA9PSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9SRUNUQU5HTEUpOwog
fQogCi12b2lkIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OnJlbW92ZUluZm9Gb3JSZW5kZXJC
b3goY29uc3QgUmVuZGVyQm94KiBib3gpCi17Ci0gICAgZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5m
b01hcCgpLnJlbW92ZShib3gpOwotfQotCi1jb25zdCBFeGNsdXNpb25TaGFwZSogRXhjbHVzaW9u
U2hhcGVPdXRzaWRlSW5mbzo6Y29tcHV0ZWRTaGFwZSgpIGNvbnN0Ci17Ci0gICAgaWYgKEV4Y2x1
c2lvblNoYXBlKiBzaGFwZU91dHNpZGUgPSBtX2NvbXB1dGVkU2hhcGUuZ2V0KCkpCi0gICAgICAg
IHJldHVybiBzaGFwZU91dHNpZGU7Ci0KLSAgICBFeGNsdXNpb25TaGFwZVZhbHVlKiBiYXNpY1No
YXBlVmFsdWUgPSBtX2JveC0+c3R5bGUoKS0+c2hhcGVPdXRzaWRlKCk7Ci0gICAgQVNTRVJUKGJh
c2ljU2hhcGVWYWx1ZSk7Ci0gICAgQVNTRVJUKGJhc2ljU2hhcGVWYWx1ZS0+dHlwZSgpID09IEV4
Y2x1c2lvblNoYXBlVmFsdWU6OlNIQVBFKTsKLQotICAgIG1fY29tcHV0ZWRTaGFwZSA9IEV4Y2x1
c2lvblNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShiYXNpY1NoYXBlVmFsdWUtPnNoYXBlKCks
IG1fbG9naWNhbFdpZHRoLCBtX2xvZ2ljYWxIZWlnaHQsIG1fYm94LT5zdHlsZSgpLT53cml0aW5n
TW9kZSgpKTsKLSAgICByZXR1cm4gbV9jb21wdXRlZFNoYXBlLmdldCgpOwotfQotCiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91
dHNpZGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRz
aWRlSW5mby5oCmluZGV4IDUzYTAwNzEzZDQyZGJhNjRkMTM2NGE3MzI3MjdjMjE1ZDIwMmVhMzgu
LmM4YmE0ZWViM2MzMmRjNWE4ZDc1MGM5NGRmZGEyNDRlNzlhNDAxMTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uaApAQCAt
MzIsNzIgKzMyLDE4IEBACiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAKLSNpbmNsdWRl
ICJFeGNsdXNpb25TaGFwZS5oIgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgIkV4Y2x1
c2lvblNoYXBlSW5mby5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlckJv
eDsKLQotY2xhc3MgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyB7Ci0gICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOworICAgIAorY2xhc3MgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyA6IHB1YmxpYyBFeGNs
dXNpb25TaGFwZUluZm88UmVuZGVyQm94LCAmUmVuZGVyU3R5bGU6OnNoYXBlT3V0c2lkZT4sIHB1
YmxpYyBNYXBwZWRJbmZvPFJlbmRlckJveCwgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbz4gewog
cHVibGljOgotICAgIH5FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCk7Ci0KLSAgICBzdGF0aWMg
UGFzc093blB0cjxFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvPiBjcmVhdGUoUmVuZGVyQm94KiBi
b3gpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKGJveCkp
OyB9Ci0gICAgc3RhdGljIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8qIGluZm9Gb3JSZW5kZXJC
b3goY29uc3QgUmVuZGVyQm94Kik7Ci0gICAgc3RhdGljIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUlu
Zm8qIGVuc3VyZUluZm9Gb3JSZW5kZXJCb3goUmVuZGVyQm94Kik7Ci0gICAgc3RhdGljIHZvaWQg
cmVtb3ZlSW5mb0ZvclJlbmRlckJveChjb25zdCBSZW5kZXJCb3gqKTsKLSAgICBzdGF0aWMgYm9v
bCBpc0luZm9FbmFibGVkRm9yUmVuZGVyQm94KGNvbnN0IFJlbmRlckJveCopOwotCi0gICAgTGF5
b3V0VW5pdCBzaGFwZUxvZ2ljYWxMZWZ0KCkgY29uc3QKLSAgICB7IAotICAgICAgICByZXR1cm4g
Y29tcHV0ZWRTaGFwZSgpLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLngoKTsKLSAgICB9Ci0g
ICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxSaWdodCgpIGNvbnN0Ci0gICAgeyAKLSAgICAgICAg
cmV0dXJuIGNvbXB1dGVkU2hhcGUoKS0+c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKS5tYXhYKCk7
Ci0gICAgfQotICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsVG9wKCkgY29uc3QKLSAgICB7IAot
ICAgICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChjb21wdXRlZFNoYXBlKCkt
PnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkueSgpKTsKLSAgICB9Ci0gICAgTGF5b3V0VW5pdCBz
aGFwZUxvZ2ljYWxCb3R0b20oKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIExheW91dFVu
aXQ6OmZyb21GbG9hdEZsb29yKGNvbXB1dGVkU2hhcGUoKS0+c2hhcGVMb2dpY2FsQm91bmRpbmdC
b3goKS5tYXhZKCkpOwotICAgIH0KLSAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbFdpZHRoKCkg
Y29uc3QKLSAgICB7IAotICAgICAgICByZXR1cm4gY29tcHV0ZWRTaGFwZSgpLT5zaGFwZUxvZ2lj
YWxCb3VuZGluZ0JveCgpLndpZHRoKCk7Ci0gICAgfQotICAgIExheW91dFVuaXQgc2hhcGVMb2dp
Y2FsSGVpZ2h0KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBjb21wdXRlZFNoYXBlKCkt
PnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkuaGVpZ2h0KCk7Ci0gICAgfQotCi0gICAgdm9pZCBz
ZXRTaGFwZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbEhl
aWdodCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2xvZ2ljYWxXaWR0aCA9PSBsb2dpY2FsV2lkdGgg
JiYgbV9sb2dpY2FsSGVpZ2h0ID09IGxvZ2ljYWxIZWlnaHQpCi0gICAgICAgICAgICByZXR1cm47
Ci0KLSAgICAgICAgZGlydHlTaGFwZVNpemUoKTsKLSAgICAgICAgbV9sb2dpY2FsV2lkdGggPSBs
b2dpY2FsV2lkdGg7Ci0gICAgICAgIG1fbG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQ7Ci0g
ICAgfQotCi0gICAgdm9pZCBkaXJ0eVNoYXBlU2l6ZSgpIHsgbV9jb21wdXRlZFNoYXBlLmNsZWFy
KCk7IH0KLQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8+
IGNyZWF0ZUluZm8oY29uc3QgUmVuZGVyQm94KiByZW5kZXJlcikgeyByZXR1cm4gYWRvcHRQdHIo
bmV3IEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8ocmVuZGVyZXIpKTsgfQorICAgIHN0YXRpYyBi
b29sIGlzRW5hYmxlZEZvcihjb25zdCBSZW5kZXJCb3gqKTsKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyhSZW5kZXJCb3gqKTsKLSAgICBjb25zdCBFeGNs
dXNpb25TaGFwZSogY29tcHV0ZWRTaGFwZSgpIGNvbnN0OwotCi0gICAgUmVuZGVyQm94KiBtX2Jv
eDsKLSAgICBtdXRhYmxlIE93blB0cjxFeGNsdXNpb25TaGFwZT4gbV9jb21wdXRlZFNoYXBlOwot
Ci0gICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxXaWR0aDsKLSAgICBMYXlvdXRVbml0IG1fbG9naWNh
bEhlaWdodDsKKyAgICBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKGNvbnN0IFJlbmRlckJveCog
cmVuZGVyZXIpIDogRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlckJveCwgJlJlbmRlclN0eWxlOjpz
aGFwZU91dHNpZGU+KHJlbmRlcmVyKSB7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDljMzc1ZmEzNjBlMDM3MWRiZjk0ODgxYzQ3ZTVkY2Iz
NzVhYjE0NTIuLmFjODAwMWRlNTc4NWUwYmJlYjRiYjRhNDk5MWEzOWJlZjQwZGUyNTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMjkxLDcgKzI5MSw3IEBA
IHZvaWQgUmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCgpCiAgICAgICAgIGxpbmVHcmlkQm94
KCktPmRlc3Ryb3kocmVuZGVyQXJlbmEoKSk7CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMp
Ci0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpyZW1vdmVFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsKKyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86
OnJlbW92ZUluZm8odGhpcyk7CiAjZW5kaWYKIAogICAgIGlmIChVTkxJS0VMWShnRGVsYXllZFVw
ZGF0ZVNjcm9sbEluZm9TZXQgIT0gMCkpCkBAIC0xMzcxLDcgKzEzNzEsNyBAQCB2b2lkIFJlbmRl
ckJsb2NrOjpsYXlvdXQoKQogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbyogUmVuZGVyQmxvY2s6OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIHN0eWxlKCktPnNoYXBlSW5zaWRlKCkgJiYgRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvOjppc0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0VuYWJsZWRGb3JSZW5kZXJC
bG9jayh0aGlzKSA/IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6ZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvRm9yUmVuZGVyQmxvY2sodGhpcykgOiAwOworICAgIHJldHVybiBzdHlsZSgpLT5zaGFw
ZUluc2lkZSgpICYmIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aXNFbmFibGVkRm9yKHRoaXMp
ID8gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppbmZvKHRoaXMpIDogMDsKIH0KIAogdm9pZCBS
ZW5kZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5n
ZShjb25zdCBFeGNsdXNpb25TaGFwZVZhbHVlKiBzaGFwZUluc2lkZSwgY29uc3QgRXhjbHVzaW9u
U2hhcGVWYWx1ZSogb2xkU2hhcGVJbnNpZGUpCkBAIC0xMzgxLDEwICsxMzgxLDEwIEBAIHZvaWQg
UmVuZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFu
Z2UoY29uc3QgRXhjbHVzaW9uCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChzaGFwZUluc2lk
ZSkgewotICAgICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbyA9IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6ZW5zdXJlRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvRm9yUmVuZGVyQmxvY2sodGhpcyk7CisgICAgICAgIEV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvOjplbnN1cmVJbmZvKHRoaXMpOwogICAgICAgICBleGNsdXNpb25TaGFwZUluc2lkZUluZm8t
PmRpcnR5U2hhcGVTaXplKCk7CiAgICAgfSBlbHNlCi0gICAgICAgIEV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbzo6cmVtb3ZlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2sodGhp
cyk7CisgICAgICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6cmVtb3ZlSW5mbyh0aGlzKTsK
IH0KICNlbmRpZgogCkBAIC0xNDIzLDcgKzE0MjMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21w
dXRlRXhjbHVzaW9uU2hhcGVTaXplKCkKICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHRoaXMtPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygp
OwogICAgIGlmIChleGNsdXNpb25TaGFwZUluc2lkZUluZm8pIHsKICAgICAgICAgYm9vbCBwZXJj
ZW50YWdlTG9naWNhbEhlaWdodFJlc29sdmFibGUgPSBwZXJjZW50YWdlTG9naWNhbEhlaWdodElz
UmVzb2x2YWJsZUZyb21CbG9jayh0aGlzLCBmYWxzZSk7Ci0gICAgICAgIGV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mby0+Y29tcHV0ZVNoYXBlU2l6ZShsb2dpY2FsV2lkdGgoKSwgcGVyY2VudGFnZUxv
Z2ljYWxIZWlnaHRSZXNvbHZhYmxlID8gbG9naWNhbEhlaWdodCgpIDogTGF5b3V0VW5pdCgpKTsK
KyAgICAgICAgZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5zZXRTaGFwZVNpemUobG9naWNhbFdp
ZHRoKCksIHBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0UmVzb2x2YWJsZSA/IGxvZ2ljYWxIZWlnaHQo
KSA6IExheW91dFVuaXQoKSk7CiAgICAgfQogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IGZiYjNkZGJhOTkw
NjZjYjM4MTdhMGE5NDVhZTgyZDRlYzU0MjkwZDIuLjAxMWZlMjZkYTg5NGE5MjY4ZTEyMDAzYmEx
MmI4NDI4ZWJkY2ZlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC0xNDk1LDcgKzE0OTUsNyBAQCB2b2lkIFJlbmRlckJs
b2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZShMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0
YXRlLCBJbmxpbgogICAgIExheW91dFVuaXQgYWJzb2x1dGVMb2dpY2FsVG9wOwogICAgIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gbGF5b3V0RXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvKHRoaXMpOwogICAgIGlmIChleGNsdXNpb25TaGFwZUluc2lk
ZUluZm8pIHsKLSAgICAgICAgQVNTRVJUKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+b3duZXJC
bG9jaygpID09IHRoaXMgfHwgYWxsb3dzRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvU2hhcmluZygp
KTsKKyAgICAgICAgQVNTRVJUKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+b3duZXIoKSA9PSB0
aGlzIHx8IGFsbG93c0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb1NoYXJpbmcoKSk7CiAgICAgICAg
IGlmIChleGNsdXNpb25TaGFwZUluc2lkZUluZm8gIT0gdGhpcy0+ZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvKCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FIEJ1ZyAxMDAyODQ6IElmIHN1YnNlcXVl
bnQgTGF5b3V0U3RhdGVzIGFyZSBwdXNoZWQsIHdlIHdpbGwgaGF2ZSB0byBhZGQKICAgICAgICAg
ICAgIC8vIHRoZWlyIG9mZnNldHMgZnJvbSB0aGUgb3JpZ2luYWwgc2hhcGUtaW5zaWRlIGNvbnRh
aW5lci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggNzM0OGM3Y2Fm
OTRiNGFmNzQwN2M1M2YzMzBmYmUzYzY3NmIzMDc0ZS4uMzhkYWE5NDY3YmI3MmFjYzNiZGFiNmMx
OWQ2NzEwNTA4NWUwZDhkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAK
QEAgLTE2MCw3ICsxNjAsNyBAQCB2b2lkIFJlbmRlckJveDo6d2lsbEJlRGVzdHJveWVkKCkKICAg
ICBSZW5kZXJCbG9jazo6cmVtb3ZlUGVyY2VudEhlaWdodERlc2NlbmRhbnRJZk5lZWRlZCh0aGlz
KTsKIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICBFeGNsdXNpb25TaGFwZU91dHNp
ZGVJbmZvOjpyZW1vdmVJbmZvRm9yUmVuZGVyQm94KHRoaXMpOworICAgIEV4Y2x1c2lvblNoYXBl
T3V0c2lkZUluZm86OnJlbW92ZUluZm8odGhpcyk7CiAjZW5kaWYKIAogICAgIFJlbmRlckJveE1v
ZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKQEAgLTMxNSwxMCArMzE1LDEwIEBAIHZvaWQg
UmVuZGVyQm94Ojp1cGRhdGVFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5n
ZShjb25zdCBFeGNsdXNpb25TCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChzaGFwZU91dHNp
ZGUpIHsKLSAgICAgICAgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVP
dXRzaWRlSW5mbyA9IEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OmVuc3VyZUluZm9Gb3JSZW5k
ZXJCb3godGhpcyk7CisgICAgICAgIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8qIGV4Y2x1c2lv
blNoYXBlT3V0c2lkZUluZm8gPSBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjplbnN1cmVJbmZv
KHRoaXMpOwogICAgICAgICBleGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLT5kaXJ0eVNoYXBlU2l6
ZSgpOwogICAgIH0gZWxzZQotICAgICAgICBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjpyZW1v
dmVJbmZvRm9yUmVuZGVyQm94KHRoaXMpOworICAgICAgICBFeGNsdXNpb25TaGFwZU91dHNpZGVJ
bmZvOjpyZW1vdmVJbmZvKHRoaXMpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaAppbmRleCAzMzBhZjgyN2U5ZWVjZjcxYTQwODRhZjM0OGFhNDYyNzZiN2VkZjRk
Li5jYWQyMWZmMDU5ZGUxNGY5ZmZmMTYyYjYxNmI1Y2E3ODNjYjlhM2IyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC01ODQsNyArNTg0LDcgQEAgcHVibGljOgogI2lmIEVO
QUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKiBleGNs
dXNpb25TaGFwZU91dHNpZGVJbmZvKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBzdHls
ZSgpLT5zaGFwZU91dHNpZGUoKSAmJiBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjppc0luZm9F
bmFibGVkRm9yUmVuZGVyQm94KHRoaXMpID8gRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6aW5m
b0ZvclJlbmRlckJveCh0aGlzKSA6IDA7CisgICAgICAgIHJldHVybiBzdHlsZSgpLT5zaGFwZU91
dHNpZGUoKSAmJiBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjppc0VuYWJsZWRGb3IodGhpcykg
PyBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjppbmZvKHRoaXMpIDogMDsKICAgICB9CiAjZW5k
aWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184777</attachid>
            <date>2013-01-25 11:14:20 -0800</date>
            <delta_ts>2013-01-25 17:06:43 -0800</delta_ts>
            <desc>Updating patch</desc>
            <filename>100766.patch</filename>
            <type>text/plain</type>
            <size>39167</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTFlNWNiNC4uZGVhOWExMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTIxMDMsNiArMjEwMyw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5k
ZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5jcHAKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFu
Z2xlLmNwcAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAKKyAgICByZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbmZvLmNwcAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8uY3BwCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3BwCiAg
ICAgcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDIyMmNm
MjcuLjIyMDNmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MCBAQAorMjAxMy0wMS0yNCAgQmVh
ciBUcmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNsdXNpb25z
XSBSZWZhY3RvciBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gdG8gbW9yZSBnZW5lcmFsIEV4Y2x1
c2lvblNoYXBlSW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAwNzY2CisKKyAgICAgICAgRmFjdG9yaW5nIG91dCBjb2RlIGNvbW1vbiB0byBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8gYW5kIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8KKyAgICAg
ICAgaW50byBjb21tb24gY2xhc3NlcyBpbiBFeGNsdXNpb25TaGFwZUluZm8uaC4gU2luY2UgdGhl
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyBhbmQKKyAgICAgICAgRXhjbHVzaW9uU2hhcGVPdXRz
aWRlSW5mbyBzaGFyZSBhbG1vc3QgYWxsIG9mIHRoZWlyIGNvZGUsIHNhdmUgdGhlIFJlbmRlck9i
amVjdCB0eXBlCisgICAgICAgIHRoZXkgd29yayB3aXRoIGFuZCB0aGUgc3BlY2lmaWMgc2hhcGVJ
bnNpZGUvT3V0c2lkZSBtZXRob2RzIHRoZXkgY2FsbCBvbiBSZW5kZXJTdHlsZQorICAgICAgICBh
bmQgRXhjbHVzaW9uU2hhcGUsIHRoZSBjb2RlIGhhcyBiZWVuIHRlbXBsYXRlZC4gVGhlIGNvZGUg
cmVzcG9uc2libGUgZm9yIG1haW50YWluaW5nCisgICAgICAgIGdsb2JhbCBtYXBzIGhhcyBhbHNv
IGJlZW4gZmFjdG9yZWQgb3V0IGludG8gYSBNYXBwZWRJbmZvIGNsYXNzLgorCisgICAgICAgIFJl
ZmFjdG9yaW5nLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6IEFkZGluZyBFeGNsdXNpb25TaGFwZUluZm8gZmlsZXMuCisgICAgICAgICogR05V
bWFrZWZpbGUubGlzdC5hbTogRGl0dG8uCisgICAgICAgICogVGFyZ2V0LnByaTogRGl0dG8uCisg
ICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZv
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjo6OmNvbXB1dGVkU2hhcGUpOiBEZXRlcm1p
bmUgdGhlIHNoYXBlIGJhc2VkIG9uIHRoZSBjdXJyZW50IGxvZ2ljYWwKKyAgICAgICAgZGltZW5z
aW9ucy4gQ2FsbCB0aGlzIG1ldGhvZCByYXRoZXIgdGhhbiBhY2Nlc3NpbmcgbV9zaGFwZSBkaXJl
Y3RseS4KKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmg6IEFkZGVkLgor
ICAgICAgICAoTWFwcGVkSW5mbyk6IEhlbHBlciBjbGFzcyB0aGF0IG1haW50YWlucyBhIGdsb2Jh
bCBpbmZvIG1hcC4KKyAgICAgICAgKFdlYkNvcmU6Ok1hcHBlZEluZm86OmVuc3VyZUluZm8pOiBM
b29rIHVwIHRoZSBpbmZvIGZvciBhIGtleSBhbmQgYWRkIGl0IGlmIG5vdCBwcmVzZW50LgorICAg
ICAgICAoV2ViQ29yZTo6TWFwcGVkSW5mbzo6cmVtb3ZlSW5mbyk6IFJlbW92ZSB0aGUgaW5mbyBh
c3NvY2lhdGVkIHdpdGggYSBrZXkuCisgICAgICAgIChXZWJDb3JlOjpNYXBwZWRJbmZvOjppbmZv
KTogTG9vayB1cCB0aGUgaW5mbyBhc3NvY2lhdGVkIHdpdGggYSBrZXkuCisgICAgICAgIChXZWJD
b3JlOjpNYXBwZWRJbmZvOjppbmZvTWFwKTogVGhlIG1hcCB1c2VkIHRvIHN0b3JlIGtleS9pbmZv
IHBhaXJzLgorICAgICAgICAoRXhjbHVzaW9uU2hhcGVJbmZvKTogQSBjb21tb24gcGFyZW50IGNs
YXNzIGZvciBFeGNsdXNpb25TaGFwZUluc2lkZS9PdXRzaWRlSW5mb3MuCisgICAgICAgIFRoZSBt
ZXRob2RzIHdlcmUgZmFjdG9yZWQgb3V0IG9mIHRoZSBjb2RlIGNvbW1vbiB0byBFeGNsdXNpb25T
aGFwZUluc2lkZS9PdXRzaWRlSW5mby4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBl
SW5mbzo6fkV4Y2x1c2lvblNoYXBlSW5mbyk6IERlc3RydWN0b3IuCisgICAgICAgIChXZWJDb3Jl
OjpFeGNsdXNpb25TaGFwZUluZm86OnNldFNoYXBlU2l6ZSk6IFNldHMgdGhlIHNoYXBlJ3MgbG9n
aWNhbCBzaXplLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbmZvOjpzaGFwZUxv
Z2ljYWxUb3AvQm90dG9tL0xlZnQvUmlnaHQvV2lkdGgvSGVpZ2h0KTogCisgICAgICAgIFJldHVy
bnMgdGhlIHNoYXBlJ3MgbG9naWNhbCBkaW1lbnNpb25zLgorICAgICAgICAoV2ViQ29yZTo6RXhj
bHVzaW9uU2hhcGVJbmZvOjpkaXJ0eVNoYXBlU2l6ZSk6IE1hcmsgdGhlIHNoYXBlIGZvciByZWNv
bXB1dGF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbmZvOjpvd25lcik6
IFRoZSByZW5kZXJlciB0byB3aGljaCB0aGlzIGluZm8gYmVsb25ncy4KKyAgICAgICAgKFdlYkNv
cmU6OkV4Y2x1c2lvblNoYXBlSW5mbzo6RXhjbHVzaW9uU2hhcGVJbmZvKTogQ29uc3RydWN0b3Iu
CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluZm86OmZsb2F0TG9naWNhbFRvcFRv
TGF5b3V0VW5pdC9mbG9hdExvZ2ljYWxCb3R0b21Ub0xheW91dFVuaXQpOgorICAgICAgICBIZWxw
ZXIgbWV0aG9kcyB0aGF0IHJvdW5kIGZsb2F0IHVuaXRzIGZyb20gRXhjbHVzaW9uU2hhcGVzIHRv
IExheW91dFVuaXRzIGZvciBsYXlvdXQuCisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm86OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUpOiBNb2RpZmllZCB0byB1c2UKKyAgICAgICAg
Y29tcHV0ZWRTaGFwZSgpIHJhdGhlciB0aGFuIG1fc2hhcGUuCisgICAgICAgIChXZWJDb3JlOjpF
eGNsdXNpb25TaGFwZUluc2lkZUluZm86OmFkanVzdExvZ2ljYWxMaW5lVG9wKTogRGl0dG8uCisg
ICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oOgorICAgICAgICAo
V2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjcmVhdGVJbmZvKTogUmVuYW1lZCB0
byBtYXRjaCBNYXBwZWRJbmZvLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvOjppc0VuYWJsZWRGb3IpOiBSZW5hbWVkIHRvIG1hdGNoIHNob3J0ZXIgbmFtaW5nLgor
ICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpsaW5lT3ZlcmxhcHNT
aGFwZUJvdW5kcyk6IE1vZGlmaWVkIHRvIHVzZQorICAgICAgICBjb21wdXRlZFNoYXBlKCkuCisg
ICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6aXNFbmFibGVkRm9yKTogUmVu
YW1lZCB0byBtYXRjaCBzaG9ydGVyIG5hbWluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVz
aW9uU2hhcGVPdXRzaWRlSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVP
dXRzaWRlSW5mbzo6Y3JlYXRlSW5mbyk6IFJlbmFtZWQgdG8gbWF0Y2ggTWFwcGVkSW5mby4KKyAg
ICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OkV4Y2x1c2lvblNoYXBl
T3V0c2lkZUluZm8pOiBDb25zdHJ1Y3Rvci4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCk6
IFVzZSBzaG9ydGVuZWQgTWFwcGVkSW5mbyBuYW1lcyBmb3IgbG9va2luZworICAgICAgICB1cCBp
bmZvcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpleGNsdXNpb25TaGFwZUluc2lk
ZUluZm8pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRhdGVFeGNs
dXNpb25TaGFwZUluc2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZUV4Y2x1c2lvblNoYXBlU2l6ZSk6IERpdHRvLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94Ojp3aWxsQmVEZXN0cm95ZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJveDo6dXBkYXRlRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UpOiBE
aXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5m
byk6IERpdHRvLgorCiAyMDEzLTAxLTI1ICBDaGFuZyBTaHUgIDxjc2h1QHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQnVpbGQgYnJva2VuIHdoZW4gc3ZnIGlzIGRpc2FibGVkLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KaW5kZXggM2Q2ZTIzMS4uZDk2YmViZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCkBAIC00Mjg5LDYgKzQyODksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuaCBcCiAJU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmggXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9F
eGNsdXNpb25TaGFwZUluZm8uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVz
aW9uU2hhcGVJbmZvLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFw
ZUluc2lkZUluZm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFw
ZU91dHNpZGVJbmZvLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
IGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCAyOTk4YzlkLi41MzEzODZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Rh
cmdldC5wcmkKQEAgLTExNDUsNiArMTE0NSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmlu
Zy9FeGNsdXNpb25Qb2x5Z29uLmNwcCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3Rhbmds
ZS5jcHAgXAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAgXAorICAgIHJlbmRlcmlu
Zy9FeGNsdXNpb25TaGFwZUluZm8uY3BwIFwKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvLmNwcCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8u
Y3BwIFwKICAgICByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwIFwKQEAgLTIzOTks
NiArMjQwMCw3IEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25Qb2x5Z29u
LmggXAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuaCBcCiAgICAgcmVuZGVyaW5n
L0V4Y2x1c2lvblNoYXBlLmggXAorICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uaCBc
CiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIFwKICAgICByZW5kZXJp
bmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mby5oIFwKICAgICByZW5kZXJpbmcvRmlsdGVyRWZm
ZWN0UmVuZGVyZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNGQ1ODY4MS4uZDc1MjI0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMjI2NSw2ICsyMjY1LDggQEAKICAgICAgICAgICAgICdyZW5kZXJp
bmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNsdXNp
b25TaGFwZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5oJywK
KyAgICAgICAgICAgICdyZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmNwcCcsCisgICAgICAg
ICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5oJywKICAgICAgICAgICAgICdyZW5k
ZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVy
aW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mby5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBiOGExYjU3Li42YWMxNTE1IDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtMzkwMTQsNiArMzkw
MTQsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccmVuZGVyaW5nXEV4Y2x1c2lvblNoYXBlSW5mby5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xFeGNsdXNpb25TaGFwZUlu
Zm8uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cmVuZGVyaW5nXEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAiCiAJCQkJPgogCQkJPC9GaWxl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDc3YzZlNTEuLmE5MWFmODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTY2OTgsNiArNjY5OCw4IEBACiAJCUZEQjA1
MkUwMTU2MUE0MkMwMEI1MDBENiAvKiBBdWRpb1N1bW1pbmdKdW5jdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRCMDUyREUxNTYxQTQyQzAwQjUw
MEQ2IC8qIEF1ZGlvU3VtbWluZ0p1bmN0aW9uLmggKi87IH07CiAJCUZEQjE3MDA1MTRBMkJBQjIw
MEEyQjVEOSAvKiBNdWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRCMTcwMDMxNEEyQkFCMjAwQTJCNUQ5IC8qIE11
bHRpQ2hhbm5lbFJlc2FtcGxlci5jcHAgKi87IH07CiAJCUZEQjE3MDA2MTRBMkJBQjIwMEEyQjVE
OSAvKiBNdWx0aUNoYW5uZWxSZXNhbXBsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZEQjE3MDA0MTRBMkJBQjIwMEEyQjVEOSAvKiBNdWx0aUNoYW5u
ZWxSZXNhbXBsZXIuaCAqLzsgfTsKKwkJRkRCOEQxREExNkIwQzBENzAwMzQwRjEwIC8qIEV4Y2x1
c2lvblNoYXBlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRkRCOEQxRDkxNkIwQzBENzAwMzQwRjEwIC8qIEV4Y2x1c2lvblNoYXBlSW5mby5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUZEQjhEMUU1
MTZCMENDOTcwMDM0MEYxMCAvKiBFeGNsdXNpb25TaGFwZUluZm8uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRCOEQxREIxNkIwQzBGNjAwMzQwRjEw
IC8qIEV4Y2x1c2lvblNoYXBlSW5mby5jcHAgKi87IH07CiAJCUZEQkQxREZDMTY3RkUyN0QwMDUx
QTExRSAvKiBKU09zY2lsbGF0b3JOb2RlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZEQkQxREZCMTY3RkUyN0QwMDUxQTExRSAvKiBKU09z
Y2lsbGF0b3JOb2RlQ3VzdG9tLmNwcCAqLzsgfTsKIAkJRkRCRDQ4MEMxNTlCQzY4NzAwOTNFQjRG
IC8qIEpTTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRCRDQ4MEExNTlCQzY4NzAwOTNFQjRGIC8qIEpT
TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwICovOyB9OwogCQlGREJENDgwRDE1OUJDNjg3
MDA5M0VCNEYgLyogSlNNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRCRDQ4MEIxNTlCQzY4NzAwOTNFQjRG
IC8qIEpTTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaCAqLzsgfTsKQEAgLTE0MzU0LDYgKzE0
MzU2LDggQEAKIAkJRkRCMDUyREUxNTYxQTQyQzAwQjUwMEQ2IC8qIEF1ZGlvU3VtbWluZ0p1bmN0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU3VtbWluZ0p1bmN0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZEQjE3MDAzMTRBMkJBQjIwMEEy
QjVEOSAvKiBNdWx0aUNoYW5uZWxSZXNhbXBsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTXVsdGlDaGFubmVsUmVzYW1wbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRkRCMTcwMDQxNEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hhbm5lbFJl
c2FtcGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNdWx0aUNoYW5uZWxS
ZXNhbXBsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkRCOEQxRDkxNkIwQzBE
NzAwMzQwRjEwIC8qIEV4Y2x1c2lvblNoYXBlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBFeGNsdXNpb25TaGFwZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRkRCOEQxREIxNkIwQzBGNjAwMzQwRjEwIC8qIEV4Y2x1c2lvblNoYXBlSW5mby5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeGNsdXNpb25TaGFwZUluZm8u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREJEMURGQjE2N0ZFMjdEMDA1MUEx
MUUgLyogSlNPc2NpbGxhdG9yTm9kZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU09zY2lsbGF0b3JOb2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRkRCRDQ4MEExNTlCQzY4NzAwOTNFQjRGIC8qIEpTTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZU5vZGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUZEQkQ0ODBCMTU5QkM2ODcwMDkzRUI0RiAvKiBKU01lZGlhU3RyZWFtQXVkaW9Tb3Vy
Y2VOb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZU5vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxOTIyLDYg
KzIxOTI2LDggQEAKIAkJCQk2RTg3OThCNzE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uUmVj
dGFuZ2xlLmggKi8sCiAJCQkJNkU4Nzk4QjgxNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblNo
YXBlLmNwcCAqLywKIAkJCQk2RTg3OThCOTE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uU2hh
cGUuaCAqLywKKwkJCQlGREI4RDFEQjE2QjBDMEY2MDAzNDBGMTAgLyogRXhjbHVzaW9uU2hhcGVJ
bmZvLmNwcCAqLywKKwkJCQlGREI4RDFEOTE2QjBDMEQ3MDAzNDBGMTAgLyogRXhjbHVzaW9uU2hh
cGVJbmZvLmggKi8sCiAJCQkJRkQ3NDhBQkQxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mby5jcHAgKi8sCiAJCQkJRkQ3NDhBQkUxNUJGNzRFRDAwNTlDRjBEIC8qIEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oICovLAogCQkJCTlBOUNFRjhCMTYzQjNFQTEwMERFN0VG
RSAvKiBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmNwcCAqLywKQEAgLTI0MDQwLDYgKzI0MDQ2
LDcgQEAKIAkJCQk2RUFGMzQxMDE2MTM4NjlBMDA4NTk2MjUgLyogRXhjbHVzaW9uUG9seWdvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNkU4Nzk4QkQxNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lv
blJlY3RhbmdsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU4Nzk4QkYxNUY4MUU0QTAwQkZFNEFB
IC8qIEV4Y2x1c2lvblNoYXBlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGREI4RDFEQTE2QjBDMEQ3
MDAzNDBGMTAgLyogRXhjbHVzaW9uU2hhcGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDc0
OEFDMDE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5QTlDRUY4RTE2M0IzRUExMDBERTdFRkUgLyogRXhjbHVzaW9uU2hhcGVP
dXRzaWRlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQxQUYxNTAxNjU2RjE1MTAwQzZENEY3
IC8qIEV4Y2x1c2lvblNoYXBlVmFsdWUuaCBpbiBIZWFkZXJzICovLApAQCAtMjczNDgsNiArMjcz
NTUsNyBAQAogCQkJCTZFQUYzNDBGMTYxMzg2OUEwMDg1OTYyNSAvKiBFeGNsdXNpb25Qb2x5Z29u
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFODc5OEJDMTVGODFFNEEwMEJGRTRBQSAvKiBFeGNs
dXNpb25SZWN0YW5nbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU4Nzk4QkUxNUY4MUU0QTAw
QkZFNEFBIC8qIEV4Y2x1c2lvblNoYXBlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUZEQjhEMUU1
MTZCMENDOTcwMDM0MEYxMCAvKiBFeGNsdXNpb25TaGFwZUluZm8uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkQ3NDhBQkYxNUJGNzRFRDAwNTlDRjBEIC8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5QTlDRUY4RDE2M0IzRUExMDBERTdFRkUgLyogRXhj
bHVzaW9uU2hhcGVPdXRzaWRlSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2RTY3RDJBNjEy
ODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9uczNET3BlbkdMLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42M2E4ZDkwCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5jcHAKQEAgLTAs
MCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29y
cG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUK
KyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVJbmZvLmgiCisKKyNpZiBFTkFCTEUoQ1NTX0VY
Q0xVU0lPTlMpCisKKyNpbmNsdWRlICJFeGNsdXNpb25TaGFwZS5oIgorI2luY2x1ZGUgIlJlbmRl
ckJsb2NrLmgiCisjaW5jbHVkZSAiUmVuZGVyQm94LmgiCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewordGVtcGxhdGUgPGNsYXNzIFJlbmRlclR5cGUsIEV4
Y2x1c2lvblNoYXBlVmFsdWUqIChSZW5kZXJTdHlsZTo6KnNoYXBlR2V0dGVyKSgpIGNvbnN0Pgor
Y29uc3QgRXhjbHVzaW9uU2hhcGUqIEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJUeXBlLCBzaGFw
ZUdldHRlcj46OmNvbXB1dGVkU2hhcGUoKSBjb25zdAoreworICAgIGlmIChFeGNsdXNpb25TaGFw
ZSogZXhjbHVzaW9uU2hhcGUgPSBtX3NoYXBlLmdldCgpKQorICAgICAgICByZXR1cm4gZXhjbHVz
aW9uU2hhcGU7CisgICAgCisgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZSogc2hhcGVWYWx1ZSA9ICht
X3JlbmRlcmVyLT5zdHlsZSgpLT4qc2hhcGVHZXR0ZXIpKCk7CisgICAgQmFzaWNTaGFwZSogc2hh
cGUgPSAoc2hhcGVWYWx1ZSAmJiBzaGFwZVZhbHVlLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVW
YWx1ZTo6U0hBUEUpID8gc2hhcGVWYWx1ZS0+c2hhcGUoKSA6IDA7CisgICAgCisgICAgQVNTRVJU
KHNoYXBlKTsKKyAgICAKKyAgICBtX3NoYXBlID0gRXhjbHVzaW9uU2hhcGU6OmNyZWF0ZUV4Y2x1
c2lvblNoYXBlKHNoYXBlLCBtX2xvZ2ljYWxXaWR0aCwgbV9sb2dpY2FsSGVpZ2h0LCBtX3JlbmRl
cmVyLT5zdHlsZSgpLT53cml0aW5nTW9kZSgpKTsKKyAgICBBU1NFUlQobV9zaGFwZSk7CisgICAg
cmV0dXJuIG1fc2hhcGUuZ2V0KCk7Cit9CisKK3RlbXBsYXRlIGNsYXNzIEV4Y2x1c2lvblNoYXBl
SW5mbzxSZW5kZXJCbG9jaywgJlJlbmRlclN0eWxlOjpzaGFwZUluc2lkZT47Cit0ZW1wbGF0ZSBj
bGFzcyBFeGNsdXNpb25TaGFwZUluZm88UmVuZGVyQm94LCAmUmVuZGVyU3R5bGU6OnNoYXBlT3V0
c2lkZT47Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9F
eGNsdXNpb25TaGFwZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25T
aGFwZUluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yODU5M2NlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
SW5mby5oCkBAIC0wLDAgKzEsMTEwIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTIgQWRvYmUg
U3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworKiAgICBkaXNjbGFpbWVy
LgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nCisqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscworKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg
IkFTIElTIiBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorKiBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksCisqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyogVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisqIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRgorKiBTVUNIIERBTUFHRS4KKyovCisKKyNpZm5kZWYgRXhjbHVzaW9uU2hhcGVJbmZvX2gK
KyNkZWZpbmUgRXhjbHVzaW9uU2hhcGVJbmZvX2gKKworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9O
UykKKworI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlLmgiCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hh
cGVWYWx1ZS5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkxheW91dFVuaXQu
aCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordGVtcGxhdGU8
Y2xhc3MgS2V5VHlwZSwgY2xhc3MgSW5mb1R5cGU+CitjbGFzcyBNYXBwZWRJbmZvIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgSW5mb1R5cGUqIGVuc3VyZUluZm8oY29uc3QgS2V5VHlwZSoga2V5KQor
ICAgIHsKKyAgICAgICAgSW5mb01hcCYgaW5mb01hcCA9IE1hcHBlZEluZm88S2V5VHlwZSwgSW5m
b1R5cGU+OjppbmZvTWFwKCk7CisgICAgICAgIGlmIChJbmZvVHlwZSogaW5mbyA9IGluZm9NYXAu
Z2V0KGtleSkpCisgICAgICAgICAgICByZXR1cm4gaW5mbzsKKyAgICAgICAgdHlwZW5hbWUgSW5m
b01hcDo6QWRkUmVzdWx0IHJlc3VsdCA9IGluZm9NYXAuYWRkKGtleSwgSW5mb1R5cGU6OmNyZWF0
ZUluZm8oa2V5KSk7CisgICAgICAgIHJldHVybiByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmdldCgp
OworICAgIH0KKyAgICBzdGF0aWMgdm9pZCByZW1vdmVJbmZvKGNvbnN0IEtleVR5cGUqIGtleSkg
eyBpbmZvTWFwKCkucmVtb3ZlKGtleSk7IH0KKyAgICBzdGF0aWMgSW5mb1R5cGUqIGluZm8oY29u
c3QgS2V5VHlwZSoga2V5KSB7IHJldHVybiBpbmZvTWFwKCkuZ2V0KGtleSk7IH0KK3ByaXZhdGU6
CisgICAgdHlwZWRlZiBIYXNoTWFwPGNvbnN0IEtleVR5cGUqLCBPd25QdHI8SW5mb1R5cGU+ID4g
SW5mb01hcDsKKyAgICBzdGF0aWMgSW5mb01hcCYgaW5mb01hcCgpCisgICAgeworICAgICAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEluZm9NYXAsIHN0YXRpY0luZm9NYXAsICgpKTsKKyAgICAgICAg
cmV0dXJuIHN0YXRpY0luZm9NYXA7CisgICAgfQorfTsKKwordGVtcGxhdGUgPGNsYXNzIFJlbmRl
clR5cGUsIEV4Y2x1c2lvblNoYXBlVmFsdWUqIChSZW5kZXJTdHlsZTo6KnNoYXBlR2V0dGVyKSgp
IGNvbnN0PgorY2xhc3MgRXhjbHVzaW9uU2hhcGVJbmZvIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKK3B1YmxpYzoKKyAgICB+RXhjbHVzaW9uU2hhcGVJbmZvKCkgeyB9CisKKyAgICB2
b2lkIHNldFNoYXBlU2l6ZShMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBsb2dp
Y2FsSGVpZ2h0KQorICAgIHsKKyAgICAgICAgaWYgKG1fbG9naWNhbFdpZHRoID09IGxvZ2ljYWxX
aWR0aCAmJiBtX2xvZ2ljYWxIZWlnaHQgPT0gbG9naWNhbEhlaWdodCkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgZGlydHlTaGFwZVNpemUoKTsKKyAgICAgICAgbV9sb2dpY2FsV2lkdGgg
PSBsb2dpY2FsV2lkdGg7CisgICAgICAgIG1fbG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQ7
CisgICAgfQorICAgIAorICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsVG9wKCkgY29uc3QgeyBy
ZXR1cm4gZmxvYXRMb2dpY2FsVG9wVG9MYXlvdXRVbml0KGNvbXB1dGVkU2hhcGUoKS0+c2hhcGVM
b2dpY2FsQm91bmRpbmdCb3goKS55KCkpOyB9CisgICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxC
b3R0b20oKSBjb25zdCB7IHJldHVybiBmbG9hdExvZ2ljYWxCb3R0b21Ub0xheW91dFVuaXQoY29t
cHV0ZWRTaGFwZSgpLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLm1heFkoKSk7IH0KKyAgICBM
YXlvdXRVbml0IHNoYXBlTG9naWNhbExlZnQoKSBjb25zdCB7IHJldHVybiBjb21wdXRlZFNoYXBl
KCktPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkueCgpOyB9CisgICAgTGF5b3V0VW5pdCBzaGFw
ZUxvZ2ljYWxSaWdodCgpIGNvbnN0IHsgcmV0dXJuIGNvbXB1dGVkU2hhcGUoKS0+c2hhcGVMb2dp
Y2FsQm91bmRpbmdCb3goKS55KCk7IH0KKyAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbFdpZHRo
KCkgY29uc3QgeyByZXR1cm4gY29tcHV0ZWRTaGFwZSgpLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0Jv
eCgpLndpZHRoKCk7IH0KKyAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbEhlaWdodCgpIGNvbnN0
IHsgcmV0dXJuIGNvbXB1dGVkU2hhcGUoKS0+c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKS5oZWln
aHQoKTsgfQorICAgIAorICAgIHZvaWQgZGlydHlTaGFwZVNpemUoKSB7IG1fc2hhcGUuY2xlYXIo
KTsgfQorICAgIGNvbnN0IFJlbmRlclR5cGUqIG93bmVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5k
ZXJlcjsgfQorCitwcm90ZWN0ZWQ6CisgICAgRXhjbHVzaW9uU2hhcGVJbmZvKGNvbnN0IFJlbmRl
clR5cGUqIHJlbmRlcmVyKTogbV9yZW5kZXJlcihyZW5kZXJlcikgeyB9CisKKyAgICBjb25zdCBF
eGNsdXNpb25TaGFwZSogY29tcHV0ZWRTaGFwZSgpIGNvbnN0OworCisgICAgLy8gVXNlIGNlaWwg
YW5kIGZsb29yIHRvIGVuc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBMYXlvdXRVbml0IHZhbHVlIGlz
IHdpdGhpbiB0aGUgc2hhcGUncyBib3VuZHMuCisgICAgTGF5b3V0VW5pdCBmbG9hdExvZ2ljYWxU
b3BUb0xheW91dFVuaXQoZmxvYXQgbG9naWNhbFRvcCkgY29uc3QgeyByZXR1cm4gTGF5b3V0VW5p
dDo6ZnJvbUZsb2F0Q2VpbChsb2dpY2FsVG9wKTsgfQorICAgIExheW91dFVuaXQgZmxvYXRMb2dp
Y2FsQm90dG9tVG9MYXlvdXRVbml0KGZsb2F0IGxvZ2ljYWxCb3R0b20pIGNvbnN0IHsgcmV0dXJu
IExheW91dFVuaXQ6OmZyb21GbG9hdEZsb29yKGxvZ2ljYWxCb3R0b20pOyB9CisKK3ByaXZhdGU6
CisgICAgbXV0YWJsZSBPd25QdHI8RXhjbHVzaW9uU2hhcGU+IG1fc2hhcGU7CisgICAgCisgICAg
TGF5b3V0VW5pdCBtX2xvZ2ljYWxXaWR0aDsKKyAgICBMYXlvdXRVbml0IG1fbG9naWNhbEhlaWdo
dDsKKyAgICBjb25zdCBSZW5kZXJUeXBlKiBtX3JlbmRlcmVyOworfTsKK30KKyNlbmRpZgorI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUlu
c2lkZUluZm8uY3BwCmluZGV4IGU3NjA5ODkuLjQ2NzE1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwCkBAIC0zMiw3
NyArMzIsOSBAQAogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogCi0jaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgotI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLXR5cGVkZWYgSGFzaE1hcDxjb25zdCBSZW5kZXJCbG9jayosIE93blB0cjxFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8+ID4gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwOwotCi1zdGF0aWMg
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwJiBleGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAo
KQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFw
LCBzdGF0aWNFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAsICgpKTsKLSAgICByZXR1cm4gc3Rh
dGljRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwOwotfQotCi1FeGNsdXNpb25TaGFwZUluc2lk
ZUluZm86OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhSZW5kZXJCbG9jayogYmxvY2spCi0gICAg
OiBtX2Jsb2NrKGJsb2NrKQotICAgICwgbV9zaGFwZVNpemVEaXJ0eSh0cnVlKQotewotfQotCi1F
eGNsdXNpb25TaGFwZUluc2lkZUluZm86On5FeGNsdXNpb25TaGFwZUluc2lkZUluZm8oKQotewot
fQotCi1FeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6
ZW5zdXJlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soUmVuZGVyQmxvY2sq
IGJsb2NrKQotewotICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcDo6QWRkUmVzdWx0IHJl
c3VsdCA9IGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCgpLmFkZChibG9jaywgY3JlYXRlKGJs
b2NrKSk7Ci0gICAgcmV0dXJuIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7Ci19Ci0KLUV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpleGNsdXNp
b25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayogYmxvY2sp
Ci17Ci0gICAgQVNTRVJUKGJsb2NrLT5zdHlsZSgpLT5zaGFwZUluc2lkZSgpKTsKLSAgICByZXR1
cm4gZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwKCkuZ2V0KGJsb2NrKTsKLX0KLQotYm9vbCBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm86OmlzRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRW5hYmxl
ZEZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKiBibG9jaykKLXsKLSAgICAvLyBGSVhN
RTogQnVnIDg5NzA3OiBFbmFibGUgc2hhcGUgaW5zaWRlIGZvciBub24tcmVjdGFuZ3VsYXIgc2hh
cGVzCi0gICAgRXhjbHVzaW9uU2hhcGVWYWx1ZSogc2hhcGVWYWx1ZSA9IGJsb2NrLT5zdHlsZSgp
LT5zaGFwZUluc2lkZSgpOwotICAgIEJhc2ljU2hhcGUqIHNoYXBlID0gKHNoYXBlVmFsdWUgJiYg
c2hhcGVWYWx1ZS0+dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNIQVBFKSA/IHNoYXBl
VmFsdWUtPnNoYXBlKCkgOiAwOwotICAgIHJldHVybiBzaGFwZSAmJiAoc2hhcGUtPnR5cGUoKSA9
PSBCYXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9SRUNUQU5HTEUgfHwgc2hhcGUtPnR5cGUoKSA9PSBC
YXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9QT0xZR09OKTsKLX0KLQotdm9pZCBFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm86OnJlbW92ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2Nr
KGNvbnN0IFJlbmRlckJsb2NrKiBibG9jaykKLXsKLSAgICBpZiAoIWJsb2NrLT5zdHlsZSgpIHx8
ICFibG9jay0+c3R5bGUoKS0+c2hhcGVJbnNpZGUoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCgpLnJlbW92ZShibG9jayk7Ci19Ci0KLXZvaWQgRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9naWNh
bFdpZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpCi17Ci0gICAgaWYgKCFtX3NoYXBlU2l6
ZURpcnR5ICYmIGxvZ2ljYWxXaWR0aCA9PSBtX2xvZ2ljYWxXaWR0aCAmJiBsb2dpY2FsSGVpZ2h0
ID09IG1fbG9naWNhbEhlaWdodCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9zaGFwZVNpemVE
aXJ0eSA9IGZhbHNlOwotICAgIG1fbG9naWNhbFdpZHRoID0gbG9naWNhbFdpZHRoOwotICAgIG1f
bG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQ7Ci0KLSAgICAvLyBGSVhNRTogQnVnIDg5OTkz
OiBUaGUgd3JhcCBzaGFwZSBtYXkgY29tZSBmcm9tIHRoZSBwYXJlbnQgb2JqZWN0Ci0gICAgRXhj
bHVzaW9uU2hhcGVWYWx1ZSogc2hhcGVWYWx1ZSA9IG1fYmxvY2stPnN0eWxlKCktPnNoYXBlSW5z
aWRlKCk7Ci0gICAgQmFzaWNTaGFwZSogc2hhcGUgPSAoc2hhcGVWYWx1ZSAmJiBzaGFwZVZhbHVl
LT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U0hBUEUpID8gc2hhcGVWYWx1ZS0+c2hh
cGUoKSA6IDA7Ci0KLSAgICBBU1NFUlQoc2hhcGUpOwotCi0gICAgbV9zaGFwZSA9IEV4Y2x1c2lv
blNoYXBlOjpjcmVhdGVFeGNsdXNpb25TaGFwZShzaGFwZSwgbG9naWNhbFdpZHRoLCBsb2dpY2Fs
SGVpZ2h0LCBtX2Jsb2NrLT5zdHlsZSgpLT53cml0aW5nTW9kZSgpKTsKLSAgICBBU1NFUlQobV9z
aGFwZSk7Ci19Ci0KIGJvb2wgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRlU2VnbWVu
dHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lSGVpZ2h0KQogewog
ICAgIEFTU0VSVChsaW5lSGVpZ2h0ID49IDApOwpAQCAtMTEyLDE5ICs0NCwxOSBAQCBib29sIEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0
IGxpbmVUb3AsIExheW91dAogICAgIG1fc2VnbWVudFJhbmdlcy5jbGVhcigpOwogCiAgICAgaWYg
KGxpbmVPdmVybGFwc1NoYXBlQm91bmRzKCkpIHsKLSAgICAgICAgQVNTRVJUKG1fc2hhcGUpOwot
ICAgICAgICBtX3NoYXBlLT5nZXRJbmNsdWRlZEludGVydmFscyhsaW5lVG9wLCBzdGQ6Om1pbihs
aW5lSGVpZ2h0LCBzaGFwZUxvZ2ljYWxCb3R0b20oKSAtIGxpbmVUb3ApLCBtX3NlZ21lbnRzKTsK
KyAgICAgICAgY29tcHV0ZWRTaGFwZSgpLT5nZXRJbmNsdWRlZEludGVydmFscyhsaW5lVG9wLCBz
dGQ6Om1pbihsaW5lSGVpZ2h0LCBzaGFwZUxvZ2ljYWxCb3R0b20oKSAtIGxpbmVUb3ApLCBtX3Nl
Z21lbnRzKTsKICAgICB9CiAgICAgcmV0dXJuIG1fc2VnbWVudHMuc2l6ZSgpOwogfQogCiBib29s
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6YWRqdXN0TG9naWNhbExpbmVUb3AoZmxvYXQgbWlu
U2VnbWVudFdpZHRoKQogewotICAgIGlmICghbV9zaGFwZSB8fCBtX2xpbmVIZWlnaHQgPD0gMCB8
fCBtX2xpbmVUb3AgPiBzaGFwZUxvZ2ljYWxCb3R0b20oKSkKKyAgICBjb25zdCBFeGNsdXNpb25T
aGFwZSogc2hhcGUgPSBjb21wdXRlZFNoYXBlKCk7CisgICAgaWYgKCFzaGFwZSB8fCBtX2xpbmVI
ZWlnaHQgPD0gMCB8fCBtX2xpbmVUb3AgPiBzaGFwZUxvZ2ljYWxCb3R0b20oKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgZmxvYXQgZmxvYXROZXdMaW5lVG9wOwotICAgIGlmIChtX3No
YXBlLT5maXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKG1fbGluZVRvcCwgRmxvYXRTaXpl
KG1pblNlZ21lbnRXaWR0aCwgbV9saW5lSGVpZ2h0KSwgZmxvYXROZXdMaW5lVG9wKSkgeworICAg
IGlmIChzaGFwZS0+Zmlyc3RJbmNsdWRlZEludGVydmFsTG9naWNhbFRvcChtX2xpbmVUb3AsIEZs
b2F0U2l6ZShtaW5TZWdtZW50V2lkdGgsIG1fbGluZUhlaWdodCksIGZsb2F0TmV3TGluZVRvcCkp
IHsKICAgICAgICAgTGF5b3V0VW5pdCBuZXdMaW5lVG9wID0gZmxvYXRMb2dpY2FsVG9wVG9MYXlv
dXRVbml0KGZsb2F0TmV3TGluZVRvcCk7CiAgICAgICAgIGlmIChuZXdMaW5lVG9wID4gbV9saW5l
VG9wKSB7CiAgICAgICAgICAgICBtX2xpbmVUb3AgPSBuZXdMaW5lVG9wOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oCmluZGV4IDJj
MWU3ZGIuLjJiMTg3NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZUluc2lkZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgKQEAgLTEzLDcgKzEzLDcgQEAKICAqICAgIGRpc2NsYWlt
ZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscwogICogICAgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFO
RCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCiAgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKICAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCkBAIC0zMiwxMSAr
MzIsOCBAQAogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogCi0jaW5jbHVkZSAiRXhjbHVz
aW9uU2hhcGUuaCIKLSNpbmNsdWRlICJGbG9hdFJlY3QuaCIKKyNpbmNsdWRlICJFeGNsdXNpb25T
aGFwZUluZm8uaCIKICNpbmNsdWRlICJJbmxpbmVJdGVyYXRvci5oIgotI2luY2x1ZGUgIkxheW91
dFVuaXQuaCIKLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25Q
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTU1LDI2ICs1MiwxNiBAQCBzdHJ1
Y3QgTGluZVNlZ21lbnRSYW5nZSB7CiB9OwogdHlwZWRlZiBWZWN0b3I8TGluZVNlZ21lbnRSYW5n
ZT4gU2VnbWVudFJhbmdlTGlzdDsKIAotY2xhc3MgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvIHsK
LSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK2NsYXNzIEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyA6IHB1YmxpYyBFeGNsdXNpb25TaGFwZUluZm88UmVuZGVyQmxvY2ssICZSZW5kZXJTdHls
ZTo6c2hhcGVJbnNpZGU+LCBwdWJsaWMgTWFwcGVkSW5mbzxSZW5kZXJCbG9jaywgRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvPiB7CiBwdWJsaWM6Ci0gICAgfkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
bygpOworICAgIHN0YXRpYyBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbz4gY3Jl
YXRlSW5mbyhjb25zdCBSZW5kZXJCbG9jayogcmVuZGVyZXIpIHsgcmV0dXJuIGFkb3B0UHRyKG5l
dyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8ocmVuZGVyZXIpKTsgfQogCi0gICAgc3RhdGljIFBh
c3NPd25QdHI8RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvPiBjcmVhdGUoUmVuZGVyQmxvY2sqIGJs
b2NrKSB7IHJldHVybiBhZG9wdFB0cihuZXcgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKGJsb2Nr
KSk7IH0KLSAgICBzdGF0aWMgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFw
ZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayopOwotICAgIHN0YXRp
YyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGVuc3VyZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
b0ZvclJlbmRlckJsb2NrKFJlbmRlckJsb2NrKik7Ci0gICAgc3RhdGljIHZvaWQgcmVtb3ZlRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqKTsK
LSAgICBzdGF0aWMgYm9vbCBpc0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0VuYWJsZWRGb3JSZW5k
ZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayopOwotCi0gICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2lj
YWxUb3AoKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fc2hhcGUpOwotICAgICAgICBy
ZXR1cm4gZmxvYXRMb2dpY2FsVG9wVG9MYXlvdXRVbml0KG1fc2hhcGUtPnNoYXBlTG9naWNhbEJv
dW5kaW5nQm94KCkueSgpKTsKLSAgICB9Ci0gICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxCb3R0
b20oKSBjb25zdAorICAgIHN0YXRpYyBib29sIGlzRW5hYmxlZEZvcihjb25zdCBSZW5kZXJCbG9j
ayogcmVuZGVyZXIpCiAgICAgewotICAgICAgICBBU1NFUlQobV9zaGFwZSk7Ci0gICAgICAgIHJl
dHVybiBmbG9hdExvZ2ljYWxCb3R0b21Ub0xheW91dFVuaXQobV9zaGFwZS0+c2hhcGVMb2dpY2Fs
Qm91bmRpbmdCb3goKS5tYXhZKCkpOworICAgICAgICAvLyBGSVhNRTogQnVnIDg5NzA3OiBFbmFi
bGUgc2hhcGUgaW5zaWRlIGZvciBub24tcmVjdGFuZ3VsYXIgc2hhcGVzCisgICAgICAgIEV4Y2x1
c2lvblNoYXBlVmFsdWUqIHNoYXBlVmFsdWUgPSByZW5kZXJlci0+c3R5bGUoKS0+c2hhcGVJbnNp
ZGUoKTsKKyAgICAgICAgQmFzaWNTaGFwZSogc2hhcGUgPSAoc2hhcGVWYWx1ZSAmJiBzaGFwZVZh
bHVlLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U0hBUEUpID8gc2hhcGVWYWx1ZS0+
c2hhcGUoKSA6IDA7CisgICAgICAgIHJldHVybiBzaGFwZSAmJiAoc2hhcGUtPnR5cGUoKSA9PSBC
YXNpY1NoYXBlOjpCQVNJQ19TSEFQRV9SRUNUQU5HTEUgfHwgc2hhcGUtPnR5cGUoKSA9PSBCYXNp
Y1NoYXBlOjpCQVNJQ19TSEFQRV9QT0xZR09OKTsKICAgICB9CiAgICAgYm9vbCBsaW5lT3Zlcmxh
cHNTaGFwZUJvdW5kcygpIGNvbnN0IHsgcmV0dXJuIG1fbGluZVRvcCA8IHNoYXBlTG9naWNhbEJv
dHRvbSgpICYmIG1fbGluZVRvcCArIG1fbGluZUhlaWdodCA+PSBzaGFwZUxvZ2ljYWxUb3AoKTsg
fQogCkBAIC05OCwzMCArODUsMTYgQEAgcHVibGljOgogICAgIH0KICAgICBib29sIGNvbXB1dGVT
ZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQp
OwogICAgIGJvb2wgYWRqdXN0TG9naWNhbExpbmVUb3AoZmxvYXQgbWluU2VnbWVudFdpZHRoKTsK
LSAgICB2b2lkIGNvbXB1dGVTaGFwZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91
dFVuaXQgbG9naWNhbEhlaWdodCk7Ci0gICAgdm9pZCBkaXJ0eVNoYXBlU2l6ZSgpIHsgbV9zaGFw
ZVNpemVEaXJ0eSA9IHRydWU7IH0KLQogICAgIExheW91dFVuaXQgbG9naWNhbExpbmVUb3AoKSBj
b25zdCB7IHJldHVybiBtX2xpbmVUb3A7IH0KLSAgICBSZW5kZXJCbG9jayogb3duZXJCbG9jaygp
IGNvbnN0IHsgcmV0dXJuIG1fYmxvY2s7IH0KIAogcHJpdmF0ZToKLSAgICBFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm8oUmVuZGVyQmxvY2sqKTsKLQotICAgIC8vIFVzZSBjZWlsIGFuZCBmbG9vciB0
byBlbnN1cmUgdGhhdCB0aGUgcmV0dXJuZWQgTGF5b3V0VW5pdCB2YWx1ZSBpcyB3aXRoaW4gdGhl
IHNoYXBlJ3MgYm91bmRzLgotICAgIExheW91dFVuaXQgZmxvYXRMb2dpY2FsVG9wVG9MYXlvdXRV
bml0KGZsb2F0IGxvZ2ljYWxUb3ApIGNvbnN0IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9h
dENlaWwobG9naWNhbFRvcCk7IH0KLSAgICBMYXlvdXRVbml0IGZsb2F0TG9naWNhbEJvdHRvbVRv
TGF5b3V0VW5pdChmbG9hdCBsb2dpY2FsQm90dG9tKSBjb25zdCB7IHJldHVybiBMYXlvdXRVbml0
Ojpmcm9tRmxvYXRGbG9vcihsb2dpY2FsQm90dG9tKTsgfQotCi0gICAgUmVuZGVyQmxvY2sqIG1f
YmxvY2s7Ci0gICAgT3duUHRyPEV4Y2x1c2lvblNoYXBlPiBtX3NoYXBlOworICAgIEV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbyhjb25zdCBSZW5kZXJCbG9jayogcmVuZGVyZXIpIDogRXhjbHVzaW9u
U2hhcGVJbmZvPFJlbmRlckJsb2NrLCAmUmVuZGVyU3R5bGU6OnNoYXBlSW5zaWRlPihyZW5kZXJl
cikgeyB9CiAKICAgICBMYXlvdXRVbml0IG1fbGluZVRvcDsKICAgICBMYXlvdXRVbml0IG1fbGlu
ZUhlaWdodDsKLSAgICBMYXlvdXRVbml0IG1fbG9naWNhbFdpZHRoOwotICAgIExheW91dFVuaXQg
bV9sb2dpY2FsSGVpZ2h0OwogCiAgICAgU2VnbWVudExpc3QgbV9zZWdtZW50czsKICAgICBTZWdt
ZW50UmFuZ2VMaXN0IG1fc2VnbWVudFJhbmdlczsKLSAgICBib29sIG1fc2hhcGVTaXplRGlydHk7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9u
U2hhcGVPdXRzaWRlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9u
U2hhcGVPdXRzaWRlSW5mby5jcHAKaW5kZXggMDM1M2NiYi4uODdmYThjNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmNw
cApAQCAtMzQsNjkgKzM0LDE0IEBACiAjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5m
by5oIgogCiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewotCi10eXBlZGVmIEhhc2hNYXA8Y29uc3QgUmVuZGVyQm94
KiwgT3duUHRyPEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8+ID4gRXhjbHVzaW9uU2hhcGVPdXRz
aWRlSW5mb01hcDsKLQotc3RhdGljIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm9NYXAmIGV4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm9NYXAoKQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoRXhj
bHVzaW9uU2hhcGVPdXRzaWRlSW5mb01hcCwgc3RhdGljRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5m
b01hcCwgKCkpOwotICAgIHJldHVybiBzdGF0aWNFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvTWFw
OwotfQotCi1FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjpFeGNsdXNpb25TaGFwZU91dHNpZGVJ
bmZvKFJlbmRlckJveCogYm94KQotICAgIDogbV9ib3goYm94KQotICAgICwgbV9sb2dpY2FsV2lk
dGgoMCkKLSAgICAsIG1fbG9naWNhbEhlaWdodCgwKQotewotfQotCi1FeGNsdXNpb25TaGFwZU91
dHNpZGVJbmZvOjp+RXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbygpCi17Ci19Ci0KLUV4Y2x1c2lv
blNoYXBlT3V0c2lkZUluZm8qIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OmVuc3VyZUluZm9G
b3JSZW5kZXJCb3goUmVuZGVyQm94KiBib3gpCi17Ci0gICAgRXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mb01hcCYgaW5mb01hcCA9IGV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm9NYXAoKTsKLSAgICBp
ZiAoRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyogc2hhcGVJbmZvID0gaW5mb01hcC5nZXQoYm94
KSkKLSAgICAgICAgcmV0dXJuIHNoYXBlSW5mbzsKLQotICAgIEV4Y2x1c2lvblNoYXBlT3V0c2lk
ZUluZm9NYXA6OkFkZFJlc3VsdCByZXN1bHQgPSBpbmZvTWFwLmFkZChib3gsIGNyZWF0ZShib3gp
KTsKLSAgICByZXR1cm4gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKLX0KLQotRXhjbHVz
aW9uU2hhcGVPdXRzaWRlSW5mbyogRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6aW5mb0ZvclJl
bmRlckJveChjb25zdCBSZW5kZXJCb3gqIGJveCkKLXsKLSAgICBBU1NFUlQoYm94LT5zdHlsZSgp
LT5zaGFwZU91dHNpZGUoKSk7Ci0gICAgcmV0dXJuIGV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm9N
YXAoKS5nZXQoYm94KTsKLX0KLQotYm9vbCBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjppc0lu
Zm9FbmFibGVkRm9yUmVuZGVyQm94KGNvbnN0IFJlbmRlckJveCogYm94KQorYm9vbCBFeGNsdXNp
b25TaGFwZU91dHNpZGVJbmZvOjppc0VuYWJsZWRGb3IoY29uc3QgUmVuZGVyQm94KiBib3gpCiB7
CiAgICAgLy8gRklYTUU6IEVuYWJsZSBzaGFwZSBvdXRzaWRlIGZvciBub24tcmVjdGFuZ3VsYXIg
c2hhcGVzISAoYnVnIDk4NjY0KQogICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIHZhbHVlID0gYm94
LT5zdHlsZSgpLT5zaGFwZU91dHNpZGUoKTsKICAgICByZXR1cm4gdmFsdWUgJiYgKHZhbHVlLT50
eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U0hBUEUpICYmICh2YWx1ZS0+c2hhcGUoKS0+
dHlwZSgpID09IEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX1JFQ1RBTkdMRSk7CiB9CiAKLXZvaWQg
RXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6cmVtb3ZlSW5mb0ZvclJlbmRlckJveChjb25zdCBS
ZW5kZXJCb3gqIGJveCkKLXsKLSAgICBleGNsdXNpb25TaGFwZU91dHNpZGVJbmZvTWFwKCkucmVt
b3ZlKGJveCk7Ci19Ci0KLWNvbnN0IEV4Y2x1c2lvblNoYXBlKiBFeGNsdXNpb25TaGFwZU91dHNp
ZGVJbmZvOjpjb21wdXRlZFNoYXBlKCkgY29uc3QKLXsKLSAgICBpZiAoRXhjbHVzaW9uU2hhcGUq
IHNoYXBlT3V0c2lkZSA9IG1fY29tcHV0ZWRTaGFwZS5nZXQoKSkKLSAgICAgICAgcmV0dXJuIHNo
YXBlT3V0c2lkZTsKLQotICAgIEV4Y2x1c2lvblNoYXBlVmFsdWUqIGJhc2ljU2hhcGVWYWx1ZSA9
IG1fYm94LT5zdHlsZSgpLT5zaGFwZU91dHNpZGUoKTsKLSAgICBBU1NFUlQoYmFzaWNTaGFwZVZh
bHVlKTsKLSAgICBBU1NFUlQoYmFzaWNTaGFwZVZhbHVlLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hh
cGVWYWx1ZTo6U0hBUEUpOwotCi0gICAgbV9jb21wdXRlZFNoYXBlID0gRXhjbHVzaW9uU2hhcGU6
OmNyZWF0ZUV4Y2x1c2lvblNoYXBlKGJhc2ljU2hhcGVWYWx1ZS0+c2hhcGUoKSwgbV9sb2dpY2Fs
V2lkdGgsIG1fbG9naWNhbEhlaWdodCwgbV9ib3gtPnN0eWxlKCktPndyaXRpbmdNb2RlKCkpOwot
ICAgIHJldHVybiBtX2NvbXB1dGVkU2hhcGUuZ2V0KCk7Ci19Ci0KIH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8u
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmgK
aW5kZXggNTNhMDA3MTMuLmM4YmE0ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uaApAQCAtMzIsNzIgKzMyLDE4IEBACiAK
ICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAKLSNpbmNsdWRlICJFeGNsdXNpb25TaGFwZS5o
IgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUgIkV4Y2x1c2lvblNoYXBlSW5mby5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlbmRlckJveDsKLQotY2xhc3MgRXhjbHVz
aW9uU2hhcGVPdXRzaWRlSW5mbyB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRXhjbHVzaW9u
U2hhcGVPdXRzaWRlSW5mbyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIAorY2xhc3Mg
RXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyA6IHB1YmxpYyBFeGNsdXNpb25TaGFwZUluZm88UmVu
ZGVyQm94LCAmUmVuZGVyU3R5bGU6OnNoYXBlT3V0c2lkZT4sIHB1YmxpYyBNYXBwZWRJbmZvPFJl
bmRlckJveCwgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbz4gewogcHVibGljOgotICAgIH5FeGNs
dXNpb25TaGFwZU91dHNpZGVJbmZvKCk7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxFeGNsdXNp
b25TaGFwZU91dHNpZGVJbmZvPiBjcmVhdGUoUmVuZGVyQm94KiBib3gpIHsgcmV0dXJuIGFkb3B0
UHRyKG5ldyBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKGJveCkpOyB9Ci0gICAgc3RhdGljIEV4
Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8qIGluZm9Gb3JSZW5kZXJCb3goY29uc3QgUmVuZGVyQm94
Kik7Ci0gICAgc3RhdGljIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8qIGVuc3VyZUluZm9Gb3JS
ZW5kZXJCb3goUmVuZGVyQm94Kik7Ci0gICAgc3RhdGljIHZvaWQgcmVtb3ZlSW5mb0ZvclJlbmRl
ckJveChjb25zdCBSZW5kZXJCb3gqKTsKLSAgICBzdGF0aWMgYm9vbCBpc0luZm9FbmFibGVkRm9y
UmVuZGVyQm94KGNvbnN0IFJlbmRlckJveCopOwotCi0gICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2lj
YWxMZWZ0KCkgY29uc3QKLSAgICB7IAotICAgICAgICByZXR1cm4gY29tcHV0ZWRTaGFwZSgpLT5z
aGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLngoKTsKLSAgICB9Ci0gICAgTGF5b3V0VW5pdCBzaGFw
ZUxvZ2ljYWxSaWdodCgpIGNvbnN0Ci0gICAgeyAKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVkU2hh
cGUoKS0+c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKS5tYXhYKCk7Ci0gICAgfQotICAgIExheW91
dFVuaXQgc2hhcGVMb2dpY2FsVG9wKCkgY29uc3QKLSAgICB7IAotICAgICAgICByZXR1cm4gTGF5
b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChjb21wdXRlZFNoYXBlKCktPnNoYXBlTG9naWNhbEJvdW5k
aW5nQm94KCkueSgpKTsKLSAgICB9Ci0gICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxCb3R0b20o
KSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdEZsb29y
KGNvbXB1dGVkU2hhcGUoKS0+c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKS5tYXhZKCkpOwotICAg
IH0KLSAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbFdpZHRoKCkgY29uc3QKLSAgICB7IAotICAg
ICAgICByZXR1cm4gY29tcHV0ZWRTaGFwZSgpLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLndp
ZHRoKCk7Ci0gICAgfQotICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsSGVpZ2h0KCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIHJldHVybiBjb21wdXRlZFNoYXBlKCktPnNoYXBlTG9naWNhbEJvdW5k
aW5nQm94KCkuaGVpZ2h0KCk7Ci0gICAgfQotCi0gICAgdm9pZCBzZXRTaGFwZVNpemUoTGF5b3V0
VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCkKLSAgICB7Ci0gICAg
ICAgIGlmIChtX2xvZ2ljYWxXaWR0aCA9PSBsb2dpY2FsV2lkdGggJiYgbV9sb2dpY2FsSGVpZ2h0
ID09IGxvZ2ljYWxIZWlnaHQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZGlydHlT
aGFwZVNpemUoKTsKLSAgICAgICAgbV9sb2dpY2FsV2lkdGggPSBsb2dpY2FsV2lkdGg7Ci0gICAg
ICAgIG1fbG9naWNhbEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQ7Ci0gICAgfQotCi0gICAgdm9pZCBk
aXJ0eVNoYXBlU2l6ZSgpIHsgbV9jb21wdXRlZFNoYXBlLmNsZWFyKCk7IH0KLQorICAgIHN0YXRp
YyBQYXNzT3duUHRyPEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8+IGNyZWF0ZUluZm8oY29uc3Qg
UmVuZGVyQm94KiByZW5kZXJlcikgeyByZXR1cm4gYWRvcHRQdHIobmV3IEV4Y2x1c2lvblNoYXBl
T3V0c2lkZUluZm8ocmVuZGVyZXIpKTsgfQorICAgIHN0YXRpYyBib29sIGlzRW5hYmxlZEZvcihj
b25zdCBSZW5kZXJCb3gqKTsKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRXhjbHVzaW9uU2hhcGVP
dXRzaWRlSW5mbyhSZW5kZXJCb3gqKTsKLSAgICBjb25zdCBFeGNsdXNpb25TaGFwZSogY29tcHV0
ZWRTaGFwZSgpIGNvbnN0OwotCi0gICAgUmVuZGVyQm94KiBtX2JveDsKLSAgICBtdXRhYmxlIE93
blB0cjxFeGNsdXNpb25TaGFwZT4gbV9jb21wdXRlZFNoYXBlOwotCi0gICAgTGF5b3V0VW5pdCBt
X2xvZ2ljYWxXaWR0aDsKLSAgICBMYXlvdXRVbml0IG1fbG9naWNhbEhlaWdodDsKKyAgICBFeGNs
dXNpb25TaGFwZU91dHNpZGVJbmZvKGNvbnN0IFJlbmRlckJveCogcmVuZGVyZXIpIDogRXhjbHVz
aW9uU2hhcGVJbmZvPFJlbmRlckJveCwgJlJlbmRlclN0eWxlOjpzaGFwZU91dHNpZGU+KHJlbmRl
cmVyKSB7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CmluZGV4IDljMzc1ZmEuLmFjODAwMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcApAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OndpbGxCZURl
c3Ryb3llZCgpCiAgICAgICAgIGxpbmVHcmlkQm94KCktPmRlc3Ryb3kocmVuZGVyQXJlbmEoKSk7
CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvOjpyZW1vdmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsK
KyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OnJlbW92ZUluZm8odGhpcyk7CiAjZW5kaWYK
IAogICAgIGlmIChVTkxJS0VMWShnRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQgIT0gMCkpCkBA
IC0xMzcxLDcgKzEzNzEsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXQoKQogI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogUmVuZGVyQmxvY2s6
OmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0eWxlKCkt
PnNoYXBlSW5zaWRlKCkgJiYgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0V4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mb0VuYWJsZWRGb3JSZW5kZXJCbG9jayh0aGlzKSA/IEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbzo6ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2sodGhpcykg
OiAwOworICAgIHJldHVybiBzdHlsZSgpLT5zaGFwZUluc2lkZSgpICYmIEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbzo6aXNFbmFibGVkRm9yKHRoaXMpID8gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
OjppbmZvKHRoaXMpIDogMDsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBFeGNsdXNpb25TaGFwZVZhbHVl
KiBzaGFwZUluc2lkZSwgY29uc3QgRXhjbHVzaW9uU2hhcGVWYWx1ZSogb2xkU2hhcGVJbnNpZGUp
CkBAIC0xMzgxLDEwICsxMzgxLDEwIEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZUV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgRXhjbHVzaW9uCiAgICAgICAg
IHJldHVybjsKIAogICAgIGlmIChzaGFwZUluc2lkZSkgewotICAgICAgICBFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IEV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbzo6ZW5zdXJlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2sodGhp
cyk7CisgICAgICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvID0gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjplbnN1cmVJbmZvKHRoaXMpOwogICAg
ICAgICBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmRpcnR5U2hhcGVTaXplKCk7CiAgICAgfSBl
bHNlCi0gICAgICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6cmVtb3ZlRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvRm9yUmVuZGVyQmxvY2sodGhpcyk7CisgICAgICAgIEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbzo6cmVtb3ZlSW5mbyh0aGlzKTsKIH0KICNlbmRpZgogCkBAIC0xNDIzLDcgKzE0
MjMsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlRXhjbHVzaW9uU2hhcGVTaXplKCkKICAg
ICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IHRo
aXMtPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOwogICAgIGlmIChleGNsdXNpb25TaGFwZUlu
c2lkZUluZm8pIHsKICAgICAgICAgYm9vbCBwZXJjZW50YWdlTG9naWNhbEhlaWdodFJlc29sdmFi
bGUgPSBwZXJjZW50YWdlTG9naWNhbEhlaWdodElzUmVzb2x2YWJsZUZyb21CbG9jayh0aGlzLCBm
YWxzZSk7Ci0gICAgICAgIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+Y29tcHV0ZVNoYXBlU2l6
ZShsb2dpY2FsV2lkdGgoKSwgcGVyY2VudGFnZUxvZ2ljYWxIZWlnaHRSZXNvbHZhYmxlID8gbG9n
aWNhbEhlaWdodCgpIDogTGF5b3V0VW5pdCgpKTsKKyAgICAgICAgZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLT5zZXRTaGFwZVNpemUobG9naWNhbFdpZHRoKCksIHBlcmNlbnRhZ2VMb2dpY2FsSGVp
Z2h0UmVzb2x2YWJsZSA/IGxvZ2ljYWxIZWlnaHQoKSA6IExheW91dFVuaXQoKSk7CiAgICAgfQog
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xp
bmVMYXlvdXQuY3BwCmluZGV4IGZiYjNkZGIuLjAxMWZlMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC0xNDk1LDcgKzE0
OTUsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZShMaW5l
TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBJbmxpbgogICAgIExheW91dFVuaXQgYWJzb2x1dGVM
b2dpY2FsVG9wOwogICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvID0gbGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKHRoaXMpOwogICAgIGlm
IChleGNsdXNpb25TaGFwZUluc2lkZUluZm8pIHsKLSAgICAgICAgQVNTRVJUKGV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mby0+b3duZXJCbG9jaygpID09IHRoaXMgfHwgYWxsb3dzRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvU2hhcmluZygpKTsKKyAgICAgICAgQVNTRVJUKGV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mby0+b3duZXIoKSA9PSB0aGlzIHx8IGFsbG93c0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
b1NoYXJpbmcoKSk7CiAgICAgICAgIGlmIChleGNsdXNpb25TaGFwZUluc2lkZUluZm8gIT0gdGhp
cy0+ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FIEJ1
ZyAxMDAyODQ6IElmIHN1YnNlcXVlbnQgTGF5b3V0U3RhdGVzIGFyZSBwdXNoZWQsIHdlIHdpbGwg
aGF2ZSB0byBhZGQKICAgICAgICAgICAgIC8vIHRoZWlyIG9mZnNldHMgZnJvbSB0aGUgb3JpZ2lu
YWwgc2hhcGUtaW5zaWRlIGNvbnRhaW5lci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAKaW5kZXggNzM0OGM3Yy4uMzhkYWE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5jcHAKQEAgLTE2MCw3ICsxNjAsNyBAQCB2b2lkIFJlbmRlckJveDo6d2lsbEJlRGVz
dHJveWVkKCkKICAgICBSZW5kZXJCbG9jazo6cmVtb3ZlUGVyY2VudEhlaWdodERlc2NlbmRhbnRJ
Zk5lZWRlZCh0aGlzKTsKIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICBFeGNsdXNp
b25TaGFwZU91dHNpZGVJbmZvOjpyZW1vdmVJbmZvRm9yUmVuZGVyQm94KHRoaXMpOworICAgIEV4
Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OnJlbW92ZUluZm8odGhpcyk7CiAjZW5kaWYKIAogICAg
IFJlbmRlckJveE1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKQEAgLTMxNSwxMCArMzE1
LDEwIEBAIHZvaWQgUmVuZGVyQm94Ojp1cGRhdGVFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvQWZ0
ZXJTdHlsZUNoYW5nZShjb25zdCBFeGNsdXNpb25TCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
IChzaGFwZU91dHNpZGUpIHsKLSAgICAgICAgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyogZXhj
bHVzaW9uU2hhcGVPdXRzaWRlSW5mbyA9IEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OmVuc3Vy
ZUluZm9Gb3JSZW5kZXJCb3godGhpcyk7CisgICAgICAgIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUlu
Zm8qIGV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8gPSBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZv
OjplbnN1cmVJbmZvKHRoaXMpOwogICAgICAgICBleGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLT5k
aXJ0eVNoYXBlU2l6ZSgpOwogICAgIH0gZWxzZQotICAgICAgICBFeGNsdXNpb25TaGFwZU91dHNp
ZGVJbmZvOjpyZW1vdmVJbmZvRm9yUmVuZGVyQm94KHRoaXMpOworICAgICAgICBFeGNsdXNpb25T
aGFwZU91dHNpZGVJbmZvOjpyZW1vdmVJbmZvKHRoaXMpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCAzMzBhZjgyLi5jYWQyMWZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC01ODQsNyArNTg0LDcgQEAgcHVibGljOgogI2lm
IEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKiBl
eGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBz
dHlsZSgpLT5zaGFwZU91dHNpZGUoKSAmJiBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjppc0lu
Zm9FbmFibGVkRm9yUmVuZGVyQm94KHRoaXMpID8gRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6
aW5mb0ZvclJlbmRlckJveCh0aGlzKSA6IDA7CisgICAgICAgIHJldHVybiBzdHlsZSgpLT5zaGFw
ZU91dHNpZGUoKSAmJiBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjppc0VuYWJsZWRGb3IodGhp
cykgPyBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjppbmZvKHRoaXMpIDogMDsKICAgICB9CiAj
ZW5kaWYKIAo=
</data>
<flag name="review"
          id="203620"
          type_id="1"
          status="+"
          setter="krit"
    />
    <flag name="commit-queue"
          id="203621"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184841</attachid>
            <date>2013-01-25 17:06:43 -0800</date>
            <delta_ts>2013-01-28 10:38:01 -0800</delta_ts>
            <desc>Fixing changelog and some whitespace issues</desc>
            <filename>100766.patch</filename>
            <type>text/plain</type>
            <size>39223</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggYWZiOWFlZS4uOWFlYjYyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTIxMDMsNiArMjEwMyw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5k
ZXJpbmcvRXhjbHVzaW9uUG9seWdvbi5jcHAKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFu
Z2xlLmNwcAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZS5jcHAKKyAgICByZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbmZvLmNwcAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8uY3BwCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3BwCiAg
ICAgcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE0MmE5
ZmMuLmVlNDM5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAorMjAxMy0wMS0yNSAgQmVh
ciBUcmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNsdXNpb25z
XSBSZWZhY3RvciBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8gdG8gbW9yZSBnZW5lcmFsIEV4Y2x1
c2lvblNoYXBlSW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTAwNzY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1bHplLgorCisgICAg
ICAgIFJlZmFjdG9yaW5nLCBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgIEZh
Y3RvcmluZyBvdXQgY29kZSBjb21tb24gdG8gRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvIGFuZCBF
eGNsdXNpb25TaGFwZU91dHNpZGVJbmZvCisgICAgICAgIGludG8gY29tbW9uIGNsYXNzZXMgaW4g
RXhjbHVzaW9uU2hhcGVJbmZvLmguIFNpbmNlIHRoZSBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8g
YW5kCisgICAgICAgIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8gc2hhcmUgYWxtb3N0IGFsbCBv
ZiB0aGVpciBjb2RlLCBzYXZlIHRoZSBSZW5kZXJPYmplY3QgdHlwZQorICAgICAgICB0aGV5IHdv
cmsgd2l0aCBhbmQgdGhlIHNwZWNpZmljIHNoYXBlSW5zaWRlL091dHNpZGUgbWV0aG9kcyB0aGV5
IGNhbGwgb24gUmVuZGVyU3R5bGUKKyAgICAgICAgYW5kIEV4Y2x1c2lvblNoYXBlLCB0aGUgY29k
ZSBoYXMgYmVlbiB0ZW1wbGF0ZWQuIFRoZSBjb2RlIHJlc3BvbnNpYmxlIGZvciBtYWludGFpbmlu
ZworICAgICAgICBnbG9iYWwgbWFwcyBoYXMgYWxzbyBiZWVuIGZhY3RvcmVkIG91dCBpbnRvIGEg
TWFwcGVkSW5mbyBjbGFzcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRpbmcgRXhj
bHVzaW9uU2hhcGVJbmZvIGZpbGVzLgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERp
dHRvLgorICAgICAgICAqIFRhcmdldC5wcmk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUuZ3lw
aTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IERpdHRv
LgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisg
ICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6Ojpjb21wdXRlZFNoYXBlKTogRGV0ZXJtaW5lIHRoZSBzaGFwZSBiYXNlZCBv
biB0aGUgY3VycmVudCBsb2dpY2FsCisgICAgICAgIGRpbWVuc2lvbnMuIENhbGwgdGhpcyBtZXRo
b2QgcmF0aGVyIHRoYW4gYWNjZXNzaW5nIG1fc2hhcGUgZGlyZWN0bHkuCisgICAgICAgICogcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5oOiBBZGRlZC4KKyAgICAgICAgKE1hcHBlZEluZm8p
OiBIZWxwZXIgY2xhc3MgdGhhdCBtYWludGFpbnMgYSBnbG9iYWwgaW5mbyBtYXAuCisgICAgICAg
IChXZWJDb3JlOjpNYXBwZWRJbmZvOjplbnN1cmVJbmZvKTogTG9vayB1cCB0aGUgaW5mbyBmb3Ig
YSBrZXkgYW5kIGFkZCBpdCBpZiBub3QgcHJlc2VudC4KKyAgICAgICAgKFdlYkNvcmU6Ok1hcHBl
ZEluZm86OnJlbW92ZUluZm8pOiBSZW1vdmUgdGhlIGluZm8gYXNzb2NpYXRlZCB3aXRoIGEga2V5
LgorICAgICAgICAoV2ViQ29yZTo6TWFwcGVkSW5mbzo6aW5mbyk6IExvb2sgdXAgdGhlIGluZm8g
YXNzb2NpYXRlZCB3aXRoIGEga2V5LgorICAgICAgICAoV2ViQ29yZTo6TWFwcGVkSW5mbzo6aW5m
b01hcCk6IFRoZSBtYXAgdXNlZCB0byBzdG9yZSBrZXkvaW5mbyBwYWlycy4KKyAgICAgICAgKEV4
Y2x1c2lvblNoYXBlSW5mbyk6IEEgY29tbW9uIHBhcmVudCBjbGFzcyBmb3IgRXhjbHVzaW9uU2hh
cGVJbnNpZGUvT3V0c2lkZUluZm9zLgorICAgICAgICBUaGUgbWV0aG9kcyB3ZXJlIGZhY3RvcmVk
IG91dCBvZiB0aGUgY29kZSBjb21tb24gdG8gRXhjbHVzaW9uU2hhcGVJbnNpZGUvT3V0c2lkZUlu
Zm8uCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluZm86On5FeGNsdXNpb25TaGFw
ZUluZm8pOiBEZXN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbmZv
OjpzZXRTaGFwZVNpemUpOiBTZXRzIHRoZSBzaGFwZSdzIGxvZ2ljYWwgc2l6ZS4KKyAgICAgICAg
KFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5mbzo6c2hhcGVMb2dpY2FsVG9wL0JvdHRvbS9MZWZ0
L1JpZ2h0L1dpZHRoL0hlaWdodCk6CisgICAgICAgIFJldHVybnMgdGhlIHNoYXBlJ3MgbG9naWNh
bCBkaW1lbnNpb25zLgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbmZvOjpkaXJ0
eVNoYXBlU2l6ZSk6IE1hcmsgdGhlIHNoYXBlIGZvciByZWNvbXB1dGF0aW9uLgorICAgICAgICAo
V2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbmZvOjpvd25lcik6IFRoZSByZW5kZXJlciB0byB3aGlj
aCB0aGlzIGluZm8gYmVsb25ncy4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5m
bzo6RXhjbHVzaW9uU2hhcGVJbmZvKTogQ29uc3RydWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpF
eGNsdXNpb25TaGFwZUluZm86OmZsb2F0TG9naWNhbFRvcFRvTGF5b3V0VW5pdC9mbG9hdExvZ2lj
YWxCb3R0b21Ub0xheW91dFVuaXQpOgorICAgICAgICBIZWxwZXIgbWV0aG9kcyB0aGF0IHJvdW5k
IGZsb2F0IHVuaXRzIGZyb20gRXhjbHVzaW9uU2hhcGVzIHRvIExheW91dFVuaXRzIGZvciBsYXlv
dXQuCisgICAgICAgICogcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmNvbXB1dGVTZWdtZW50
c0ZvckxpbmUpOiBNb2RpZmllZCB0byB1c2UKKyAgICAgICAgY29tcHV0ZWRTaGFwZSgpIHJhdGhl
ciB0aGFuIG1fc2hhcGUuCisgICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm86OmFkanVzdExvZ2ljYWxMaW5lVG9wKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL0V4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvOjpjcmVhdGVJbmZvKTogUmVuYW1lZCB0byBtYXRjaCBNYXBwZWRJbmZvLgor
ICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjppc0VuYWJsZWRGb3Ip
OiBSZW5hbWVkIHRvIG1hdGNoIHNob3J0ZXIgbmFtaW5nLgorICAgICAgICAoV2ViQ29yZTo6RXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcyk6IE1vZGlmaWVk
IHRvIHVzZQorICAgICAgICBjb21wdXRlZFNoYXBlKCkuCisgICAgICAgICogcmVuZGVyaW5nL0V4
Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9u
U2hhcGVPdXRzaWRlSW5mbzo6aXNFbmFibGVkRm9yKTogUmVuYW1lZCB0byBtYXRjaCBzaG9ydGVy
IG5hbWluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mby5o
OgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6Y3JlYXRlSW5m
byk6IFJlbmFtZWQgdG8gbWF0Y2ggTWFwcGVkSW5mby4KKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm86OkV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8pOiBDb25zdHJ1
Y3Rvci4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCk6IFVzZSBzaG9ydGVuZWQgTWFwcGVk
SW5mbyBuYW1lcyBmb3IgbG9va2luZworICAgICAgICB1cCBpbmZvcy4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpleGNsdXNpb25TaGFwZUluc2lkZUluZm8pOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp1cGRhdGVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9B
ZnRlclN0eWxlQ2hhbmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
Y29tcHV0ZUV4Y2x1c2lvblNoYXBlU2l6ZSk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojp3aWxsQmVEZXN0cm95
ZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6dXBkYXRlRXhjbHVzaW9u
U2hhcGVPdXRzaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UpOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQm94Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJveDo6ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyk6IERpdHRvLgorCiAyMDEzLTAx
LTI1ICBQYW4gRGVuZyAgPHBhbi5kZW5nQGludGVsLmNvbT4KIAogICAgICAgICBbVXNlciBUaW1p
bmddQ2hhbmdlIGNsYXNzIG5hbWUgdGhhdCBwcmVzZW50ZWQgaW4gSmF2YXNjcmlwdCBmb3IgdXNl
ciB0aW1pbmcgZW50cnkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAzZDZlMjMx
Li5kOTZiZWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQyODksNiArNDI4
OSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4
Y2x1c2lvblJlY3RhbmdsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9u
U2hhcGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuaCBc
CisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uaCBcCiAJU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaCBcCiAJU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uY3BwIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJp
CmluZGV4IDI5OThjOWQuLjUzMTM4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtMTE0NSw2ICsxMTQ1LDcg
QEAgU09VUkNFUyArPSBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uY3BwIFwKICAg
ICByZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlLmNwcCBcCisgICAgcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5jcHAgXAog
ICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uY3BwIFwKICAgICByZW5kZXJp
bmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mby5jcHAgXAogICAgIHJlbmRlcmluZy9GaWx0ZXJF
ZmZlY3RSZW5kZXJlci5jcHAgXApAQCAtMjM5OSw2ICsyNDAwLDcgQEAgSEVBREVSUyArPSBcCiAg
ICAgcmVuZGVyaW5nL0V4Y2x1c2lvblBvbHlnb24uaCBcCiAgICAgcmVuZGVyaW5nL0V4Y2x1c2lv
blJlY3RhbmdsZS5oIFwKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGUuaCBcCisgICAgcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5oIFwKICAgICByZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvLmggXAogICAgIHJlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZv
LmggXAogICAgIHJlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5oIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCA0ZDU4NjgxLi5kNzUyMjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMjY1LDYgKzIy
NjUsOCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuaCcsCiAg
ICAgICAgICAgICAncmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmNwcCcsCiAgICAgICAgICAgICAn
cmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlLmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZUluZm8uY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvRXhjbHVzaW9uU2hh
cGVJbmZvLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8uY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4
IDgyNmNmYTQuLjEyOTQ0YTUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCkBAIC0zOTAxOCw2ICszOTAxOCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4K
IAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcRXhjbHVzaW9uU2hhcGVJ
bmZvLmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5ccmVuZGVyaW5nXEV4Y2x1c2lvblNoYXBlSW5mby5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZTEyZWRlZS4uOTk2ZjhlNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNjcwMCw2ICs2NzAwLDggQEAKIAkJRkRCMDUyRTAxNTYxQTQyQzAwQjUwMEQ2IC8qIEF1ZGlv
U3VtbWluZ0p1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGREIwNTJERTE1NjFBNDJDMDBCNTAwRDYgLyogQXVkaW9TdW1taW5nSnVuY3Rpb24u
aCAqLzsgfTsKIAkJRkRCMTcwMDUxNEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hhbm5lbFJlc2Ft
cGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
REIxNzAwMzE0QTJCQUIyMDBBMkI1RDkgLyogTXVsdGlDaGFubmVsUmVzYW1wbGVyLmNwcCAqLzsg
fTsKIAkJRkRCMTcwMDYxNEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hhbm5lbFJlc2FtcGxlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRCMTcwMDQx
NEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hhbm5lbFJlc2FtcGxlci5oICovOyB9OworCQlGREI4
RDFEQTE2QjBDMEQ3MDAzNDBGMTAgLyogRXhjbHVzaW9uU2hhcGVJbmZvLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGREI4RDFEOTE2QjBDMEQ3MDAzNDBG
MTAgLyogRXhjbHVzaW9uU2hhcGVJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJRkRCOEQxRTUxNkIwQ0M5NzAwMzQwRjEwIC8qIEV4Y2x1c2lv
blNoYXBlSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGREI4RDFEQjE2QjBDMEY2MDAzNDBGMTAgLyogRXhjbHVzaW9uU2hhcGVJbmZvLmNwcCAq
LzsgfTsKIAkJRkRCRDFERkMxNjdGRTI3RDAwNTFBMTFFIC8qIEpTT3NjaWxsYXRvck5vZGVDdXN0
b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkRC
RDFERkIxNjdGRTI3RDAwNTFBMTFFIC8qIEpTT3NjaWxsYXRvck5vZGVDdXN0b20uY3BwICovOyB9
OwogCQlGREJENDgwQzE1OUJDNjg3MDA5M0VCNEYgLyogSlNNZWRpYVN0cmVhbUF1ZGlvU291cmNl
Tm9kZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
REJENDgwQTE1OUJDNjg3MDA5M0VCNEYgLyogSlNNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5j
cHAgKi87IH07CiAJCUZEQkQ0ODBEMTU5QkM2ODcwMDkzRUI0RiAvKiBKU01lZGlhU3RyZWFtQXVk
aW9Tb3VyY2VOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGREJENDgwQjE1OUJDNjg3MDA5M0VCNEYgLyogSlNNZWRpYVN0cmVhbUF1ZGlvU291cmNl
Tm9kZS5oICovOyB9OwpAQCAtMTQzNTksNiArMTQzNjEsOCBAQAogCQlGREIwNTJERTE1NjFBNDJD
MDBCNTAwRDYgLyogQXVkaW9TdW1taW5nSnVuY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXVkaW9TdW1taW5nSnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRkRCMTcwMDMxNEEyQkFCMjAwQTJCNUQ5IC8qIE11bHRpQ2hhbm5lbFJlc2FtcGxl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNdWx0aUNoYW5uZWxS
ZXNhbXBsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREIxNzAwNDE0QTJC
QUIyMDBBMkI1RDkgLyogTXVsdGlDaGFubmVsUmVzYW1wbGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE11bHRpQ2hhbm5lbFJlc2FtcGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGREI4RDFEOTE2QjBDMEQ3MDAzNDBGMTAgLyogRXhjbHVzaW9uU2hhcGVJ
bmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2x1c2lvblNoYXBlSW5m
by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGREI4RDFEQjE2QjBDMEY2MDAzNDBG
MTAgLyogRXhjbHVzaW9uU2hhcGVJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEV4Y2x1c2lvblNoYXBlSW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUZEQkQxREZCMTY3RkUyN0QwMDUxQTExRSAvKiBKU09zY2lsbGF0b3JOb2RlQ3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTT3NjaWxsYXRvck5v
ZGVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGREJENDgwQTE1OUJD
Njg3MDA5M0VCNEYgLyogSlNNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2Rl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkRCRDQ4MEIxNTlCQzY4NzAwOTNF
QjRGIC8qIEpTTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSlNNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjE5MzAsNiArMjE5MzQsOCBAQAogCQkJCTZFODc5OEI3MTVG
ODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25SZWN0YW5nbGUuaCAqLywKIAkJCQk2RTg3OThCODE1
RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uU2hhcGUuY3BwICovLAogCQkJCTZFODc5OEI5MTVG
ODFFNEEwMEJGRTRBQSAvKiBFeGNsdXNpb25TaGFwZS5oICovLAorCQkJCUZEQjhEMURCMTZCMEMw
RjYwMDM0MEYxMCAvKiBFeGNsdXNpb25TaGFwZUluZm8uY3BwICovLAorCQkJCUZEQjhEMUQ5MTZC
MEMwRDcwMDM0MEYxMCAvKiBFeGNsdXNpb25TaGFwZUluZm8uaCAqLywKIAkJCQlGRDc0OEFCRDE1
QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCAqLywKIAkJCQlG
RDc0OEFCRTE1QkY3NEVEMDA1OUNGMEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggKi8s
CiAJCQkJOUE5Q0VGOEIxNjNCM0VBMTAwREU3RUZFIC8qIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUlu
Zm8uY3BwICovLApAQCAtMjQwNDgsNiArMjQwNTQsNyBAQAogCQkJCTZFQUYzNDEwMTYxMzg2OUEw
MDg1OTYyNSAvKiBFeGNsdXNpb25Qb2x5Z29uLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RTg3OThC
RDE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uUmVjdGFuZ2xlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk2RTg3OThCRjE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uU2hhcGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUZEQjhEMURBMTZCMEMwRDcwMDM0MEYxMCAvKiBFeGNsdXNpb25TaGFwZUlu
Zm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUZENzQ4QUMwMTVCRjc0RUQwMDU5Q0YwRCAvKiBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTlBOUNFRjhFMTYzQjNF
QTEwMERFN0VGRSAvKiBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRDFBRjE1MDE2NTZGMTUxMDBDNkQ0RjcgLyogRXhjbHVzaW9uU2hhcGVWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNzM1Nyw2ICsyNzM2NCw3IEBACiAJCQkJNkVBRjM0MEYxNjEzODY5
QTAwODU5NjI1IC8qIEV4Y2x1c2lvblBvbHlnb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU4
Nzk4QkMxNUY4MUU0QTAwQkZFNEFBIC8qIEV4Y2x1c2lvblJlY3RhbmdsZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk2RTg3OThCRTE1RjgxRTRBMDBCRkU0QUEgLyogRXhjbHVzaW9uU2hhcGUuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJRkRCOEQxRTUxNkIwQ0M5NzAwMzQwRjEwIC8qIEV4Y2x1c2lv
blNoYXBlSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGRDc0OEFCRjE1QkY3NEVEMDA1OUNG
MEQgLyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTlB
OUNFRjhEMTYzQjNFQTEwMERFN0VGRSAvKiBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTZFNjdEMkE2MTI4MEU4QTQwMDg3NThGNyAvKiBFeHRlbnNpb25z
M0RPcGVuR0wuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9FeGNsdXNpb25TaGFwZUluZm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmZlMWE3ODIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbmZvLmNwcApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAq
ICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWlt
ZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFeGNsdXNpb25TaGFw
ZUluZm8uaCIKKworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKworI2luY2x1ZGUgIkV4Y2x1
c2lvblNoYXBlLmgiCisjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRlICJSZW5kZXJC
b3guaCIKKyNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7Cit0
ZW1wbGF0ZSA8Y2xhc3MgUmVuZGVyVHlwZSwgRXhjbHVzaW9uU2hhcGVWYWx1ZSogKFJlbmRlclN0
eWxlOjoqc2hhcGVHZXR0ZXIpKCkgY29uc3Q+Citjb25zdCBFeGNsdXNpb25TaGFwZSogRXhjbHVz
aW9uU2hhcGVJbmZvPFJlbmRlclR5cGUsIHNoYXBlR2V0dGVyPjo6Y29tcHV0ZWRTaGFwZSgpIGNv
bnN0Cit7CisgICAgaWYgKEV4Y2x1c2lvblNoYXBlKiBleGNsdXNpb25TaGFwZSA9IG1fc2hhcGUu
Z2V0KCkpCisgICAgICAgIHJldHVybiBleGNsdXNpb25TaGFwZTsKKworICAgIEV4Y2x1c2lvblNo
YXBlVmFsdWUqIHNoYXBlVmFsdWUgPSAobV9yZW5kZXJlci0+c3R5bGUoKS0+KnNoYXBlR2V0dGVy
KSgpOworICAgIEJhc2ljU2hhcGUqIHNoYXBlID0gKHNoYXBlVmFsdWUgJiYgc2hhcGVWYWx1ZS0+
dHlwZSgpID09IEV4Y2x1c2lvblNoYXBlVmFsdWU6OlNIQVBFKSA/IHNoYXBlVmFsdWUtPnNoYXBl
KCkgOiAwOworCisgICAgQVNTRVJUKHNoYXBlKTsKKworICAgIG1fc2hhcGUgPSBFeGNsdXNpb25T
aGFwZTo6Y3JlYXRlRXhjbHVzaW9uU2hhcGUoc2hhcGUsIG1fbG9naWNhbFdpZHRoLCBtX2xvZ2lj
YWxIZWlnaHQsIG1fcmVuZGVyZXItPnN0eWxlKCktPndyaXRpbmdNb2RlKCkpOworICAgIEFTU0VS
VChtX3NoYXBlKTsKKyAgICByZXR1cm4gbV9zaGFwZS5nZXQoKTsKK30KKwordGVtcGxhdGUgY2xh
c3MgRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlckJsb2NrLCAmUmVuZGVyU3R5bGU6OnNoYXBlSW5z
aWRlPjsKK3RlbXBsYXRlIGNsYXNzIEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJCb3gsICZSZW5k
ZXJTdHlsZTo6c2hhcGVPdXRzaWRlPjsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmJkMGE2NmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvRXhjbHVzaW9uU2hhcGVJbmZvLmgKQEAgLTAsMCArMSwxMTAgQEAKKy8qCisqIENvcHlyaWdo
dCAoQykgMjAxMiBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKgorKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisqICAgIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
CisqICAgIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyogICAgZGlzY2xhaW1lciBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisqICAgIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUiAiQVMgSVMiIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIEJFCisqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgor
KiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YKKyogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GCisqIFNVQ0ggREFNQUdFLgorKi8KKworI2lmbmRlZiBFeGNs
dXNpb25TaGFwZUluZm9faAorI2RlZmluZSBFeGNsdXNpb25TaGFwZUluZm9faAorCisjaWYgRU5B
QkxFKENTU19FWENMVVNJT05TKQorCisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGUuaCIKKyNpbmNs
dWRlICJFeGNsdXNpb25TaGFwZVZhbHVlLmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5j
bHVkZSAiTGF5b3V0VW5pdC5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSA8
d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCit0ZW1wbGF0ZTxjbGFzcyBLZXlUeXBlLCBjbGFzcyBJbmZvVHlwZT4KK2NsYXNzIE1h
cHBlZEluZm8geworcHVibGljOgorICAgIHN0YXRpYyBJbmZvVHlwZSogZW5zdXJlSW5mbyhjb25z
dCBLZXlUeXBlKiBrZXkpCisgICAgeworICAgICAgICBJbmZvTWFwJiBpbmZvTWFwID0gTWFwcGVk
SW5mbzxLZXlUeXBlLCBJbmZvVHlwZT46OmluZm9NYXAoKTsKKyAgICAgICAgaWYgKEluZm9UeXBl
KiBpbmZvID0gaW5mb01hcC5nZXQoa2V5KSkKKyAgICAgICAgICAgIHJldHVybiBpbmZvOworICAg
ICAgICB0eXBlbmFtZSBJbmZvTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gaW5mb01hcC5hZGQoa2V5
LCBJbmZvVHlwZTo6Y3JlYXRlSW5mbyhrZXkpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5pdGVy
YXRvci0+dmFsdWUuZ2V0KCk7CisgICAgfQorICAgIHN0YXRpYyB2b2lkIHJlbW92ZUluZm8oY29u
c3QgS2V5VHlwZSoga2V5KSB7IGluZm9NYXAoKS5yZW1vdmUoa2V5KTsgfQorICAgIHN0YXRpYyBJ
bmZvVHlwZSogaW5mbyhjb25zdCBLZXlUeXBlKiBrZXkpIHsgcmV0dXJuIGluZm9NYXAoKS5nZXQo
a2V5KTsgfQorcHJpdmF0ZToKKyAgICB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgS2V5VHlwZSosIE93
blB0cjxJbmZvVHlwZT4gPiBJbmZvTWFwOworICAgIHN0YXRpYyBJbmZvTWFwJiBpbmZvTWFwKCkK
KyAgICB7CisgICAgICAgIERFRklORV9TVEFUSUNfTE9DQUwoSW5mb01hcCwgc3RhdGljSW5mb01h
cCwgKCkpOworICAgICAgICByZXR1cm4gc3RhdGljSW5mb01hcDsKKyAgICB9Cit9OworCit0ZW1w
bGF0ZSA8Y2xhc3MgUmVuZGVyVHlwZSwgRXhjbHVzaW9uU2hhcGVWYWx1ZSogKFJlbmRlclN0eWxl
Ojoqc2hhcGVHZXR0ZXIpKCkgY29uc3Q+CitjbGFzcyBFeGNsdXNpb25TaGFwZUluZm8geworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIH5FeGNsdXNpb25TaGFwZUlu
Zm8oKSB7IH0KKworICAgIHZvaWQgc2V0U2hhcGVTaXplKExheW91dFVuaXQgbG9naWNhbFdpZHRo
LCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpCisgICAgeworICAgICAgICBpZiAobV9sb2dpY2Fs
V2lkdGggPT0gbG9naWNhbFdpZHRoICYmIG1fbG9naWNhbEhlaWdodCA9PSBsb2dpY2FsSGVpZ2h0
KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBkaXJ0eVNoYXBlU2l6ZSgpOworICAgICAg
ICBtX2xvZ2ljYWxXaWR0aCA9IGxvZ2ljYWxXaWR0aDsKKyAgICAgICAgbV9sb2dpY2FsSGVpZ2h0
ID0gbG9naWNhbEhlaWdodDsKKyAgICB9CisKKyAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbFRv
cCgpIGNvbnN0IHsgcmV0dXJuIGZsb2F0TG9naWNhbFRvcFRvTGF5b3V0VW5pdChjb21wdXRlZFNo
YXBlKCktPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkueSgpKTsgfQorICAgIExheW91dFVuaXQg
c2hhcGVMb2dpY2FsQm90dG9tKCkgY29uc3QgeyByZXR1cm4gZmxvYXRMb2dpY2FsQm90dG9tVG9M
YXlvdXRVbml0KGNvbXB1dGVkU2hhcGUoKS0+c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKS5tYXhZ
KCkpOyB9CisgICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxMZWZ0KCkgY29uc3QgeyByZXR1cm4g
Y29tcHV0ZWRTaGFwZSgpLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLngoKTsgfQorICAgIExh
eW91dFVuaXQgc2hhcGVMb2dpY2FsUmlnaHQoKSBjb25zdCB7IHJldHVybiBjb21wdXRlZFNoYXBl
KCktPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkueSgpOyB9CisgICAgTGF5b3V0VW5pdCBzaGFw
ZUxvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGNvbXB1dGVkU2hhcGUoKS0+c2hhcGVMb2dp
Y2FsQm91bmRpbmdCb3goKS53aWR0aCgpOyB9CisgICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxI
ZWlnaHQoKSBjb25zdCB7IHJldHVybiBjb21wdXRlZFNoYXBlKCktPnNoYXBlTG9naWNhbEJvdW5k
aW5nQm94KCkuaGVpZ2h0KCk7IH0KKworICAgIHZvaWQgZGlydHlTaGFwZVNpemUoKSB7IG1fc2hh
cGUuY2xlYXIoKTsgfQorICAgIGNvbnN0IFJlbmRlclR5cGUqIG93bmVyKCkgY29uc3QgeyByZXR1
cm4gbV9yZW5kZXJlcjsgfQorCitwcm90ZWN0ZWQ6CisgICAgRXhjbHVzaW9uU2hhcGVJbmZvKGNv
bnN0IFJlbmRlclR5cGUqIHJlbmRlcmVyKTogbV9yZW5kZXJlcihyZW5kZXJlcikgeyB9CisKKyAg
ICBjb25zdCBFeGNsdXNpb25TaGFwZSogY29tcHV0ZWRTaGFwZSgpIGNvbnN0OworCisgICAgLy8g
VXNlIGNlaWwgYW5kIGZsb29yIHRvIGVuc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBMYXlvdXRVbml0
IHZhbHVlIGlzIHdpdGhpbiB0aGUgc2hhcGUncyBib3VuZHMuCisgICAgTGF5b3V0VW5pdCBmbG9h
dExvZ2ljYWxUb3BUb0xheW91dFVuaXQoZmxvYXQgbG9naWNhbFRvcCkgY29uc3QgeyByZXR1cm4g
TGF5b3V0VW5pdDo6ZnJvbUZsb2F0Q2VpbChsb2dpY2FsVG9wKTsgfQorICAgIExheW91dFVuaXQg
ZmxvYXRMb2dpY2FsQm90dG9tVG9MYXlvdXRVbml0KGZsb2F0IGxvZ2ljYWxCb3R0b20pIGNvbnN0
IHsgcmV0dXJuIExheW91dFVuaXQ6OmZyb21GbG9hdEZsb29yKGxvZ2ljYWxCb3R0b20pOyB9CisK
K3ByaXZhdGU6CisgICAgbXV0YWJsZSBPd25QdHI8RXhjbHVzaW9uU2hhcGU+IG1fc2hhcGU7CisK
KyAgICBMYXlvdXRVbml0IG1fbG9naWNhbFdpZHRoOworICAgIExheW91dFVuaXQgbV9sb2dpY2Fs
SGVpZ2h0OworICAgIGNvbnN0IFJlbmRlclR5cGUqIG1fcmVuZGVyZXI7Cit9OworfQorI2VuZGlm
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25T
aGFwZUluc2lkZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mby5jcHAKaW5kZXggZTc2MDk4OS4uNDY3MTU0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5jcHAKQEAg
LTMyLDc3ICszMiw5IEBACiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAKLSNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCi0jaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotdHlwZWRlZiBIYXNoTWFwPGNvbnN0IFJlbmRlckJsb2NrKiwgT3duUHRyPEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbz4gPiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXA7Ci0KLXN0
YXRpYyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAmIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
b01hcCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm9NYXAsIHN0YXRpY0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb01hcCwgKCkpOwotICAgIHJldHVy
biBzdGF0aWNFeGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXA7Ci19Ci0KLUV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbzo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKFJlbmRlckJsb2NrKiBibG9jaykK
LSAgICA6IG1fYmxvY2soYmxvY2spCi0gICAgLCBtX3NoYXBlU2l6ZURpcnR5KHRydWUpCi17Ci19
Ci0KLUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6fkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygp
Ci17Ci19Ci0KLUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvOjplbnN1cmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayhSZW5kZXJC
bG9jayogYmxvY2spCi17Ci0gICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwOjpBZGRSZXN1
bHQgcmVzdWx0ID0gZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwKCkuYWRkKGJsb2NrLCBjcmVh
dGUoYmxvY2spKTsKLSAgICByZXR1cm4gcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKLX0K
LQotRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKiBi
bG9jaykKLXsKLSAgICBBU1NFUlQoYmxvY2stPnN0eWxlKCktPnNoYXBlSW5zaWRlKCkpOwotICAg
IHJldHVybiBleGNsdXNpb25TaGFwZUluc2lkZUluZm9NYXAoKS5nZXQoYmxvY2spOwotfQotCi1i
b29sIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6aXNFeGNsdXNpb25TaGFwZUluc2lkZUluZm9F
bmFibGVkRm9yUmVuZGVyQmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQotewotICAgIC8v
IEZJWE1FOiBCdWcgODk3MDc6IEVuYWJsZSBzaGFwZSBpbnNpZGUgZm9yIG5vbi1yZWN0YW5ndWxh
ciBzaGFwZXMKLSAgICBFeGNsdXNpb25TaGFwZVZhbHVlKiBzaGFwZVZhbHVlID0gYmxvY2stPnN0
eWxlKCktPnNoYXBlSW5zaWRlKCk7Ci0gICAgQmFzaWNTaGFwZSogc2hhcGUgPSAoc2hhcGVWYWx1
ZSAmJiBzaGFwZVZhbHVlLT50eXBlKCkgPT0gRXhjbHVzaW9uU2hhcGVWYWx1ZTo6U0hBUEUpID8g
c2hhcGVWYWx1ZS0+c2hhcGUoKSA6IDA7Ci0gICAgcmV0dXJuIHNoYXBlICYmIChzaGFwZS0+dHlw
ZSgpID09IEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX1JFQ1RBTkdMRSB8fCBzaGFwZS0+dHlwZSgp
ID09IEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX1BPTFlHT04pOwotfQotCi12b2lkIEV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbzo6cmVtb3ZlRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRm9yUmVuZGVy
QmxvY2soY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQotewotICAgIGlmICghYmxvY2stPnN0eWxl
KCkgfHwgIWJsb2NrLT5zdHlsZSgpLT5zaGFwZUluc2lkZSgpKQotICAgICAgICByZXR1cm47Ci0g
ICAgZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvTWFwKCkucmVtb3ZlKGJsb2NrKTsKLX0KLQotdm9p
ZCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmNvbXB1dGVTaGFwZVNpemUoTGF5b3V0VW5pdCBs
b2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCkKLXsKLSAgICBpZiAoIW1fc2hh
cGVTaXplRGlydHkgJiYgbG9naWNhbFdpZHRoID09IG1fbG9naWNhbFdpZHRoICYmIGxvZ2ljYWxI
ZWlnaHQgPT0gbV9sb2dpY2FsSGVpZ2h0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3NoYXBl
U2l6ZURpcnR5ID0gZmFsc2U7Ci0gICAgbV9sb2dpY2FsV2lkdGggPSBsb2dpY2FsV2lkdGg7Ci0g
ICAgbV9sb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodDsKLQotICAgIC8vIEZJWE1FOiBCdWcg
ODk5OTM6IFRoZSB3cmFwIHNoYXBlIG1heSBjb21lIGZyb20gdGhlIHBhcmVudCBvYmplY3QKLSAg
ICBFeGNsdXNpb25TaGFwZVZhbHVlKiBzaGFwZVZhbHVlID0gbV9ibG9jay0+c3R5bGUoKS0+c2hh
cGVJbnNpZGUoKTsKLSAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IChzaGFwZVZhbHVlICYmIHNoYXBl
VmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTSEFQRSkgPyBzaGFwZVZhbHVl
LT5zaGFwZSgpIDogMDsKLQotICAgIEFTU0VSVChzaGFwZSk7Ci0KLSAgICBtX3NoYXBlID0gRXhj
bHVzaW9uU2hhcGU6OmNyZWF0ZUV4Y2x1c2lvblNoYXBlKHNoYXBlLCBsb2dpY2FsV2lkdGgsIGxv
Z2ljYWxIZWlnaHQsIG1fYmxvY2stPnN0eWxlKCktPndyaXRpbmdNb2RlKCkpOwotICAgIEFTU0VS
VChtX3NoYXBlKTsKLX0KLQogYm9vbCBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmNvbXB1dGVT
ZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVIZWlnaHQp
CiB7CiAgICAgQVNTRVJUKGxpbmVIZWlnaHQgPj0gMCk7CkBAIC0xMTIsMTkgKzQ0LDE5IEBAIGJv
b2wgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91
dFVuaXQgbGluZVRvcCwgTGF5b3V0CiAgICAgbV9zZWdtZW50UmFuZ2VzLmNsZWFyKCk7CiAKICAg
ICBpZiAobGluZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSkgewotICAgICAgICBBU1NFUlQobV9zaGFw
ZSk7Ci0gICAgICAgIG1fc2hhcGUtPmdldEluY2x1ZGVkSW50ZXJ2YWxzKGxpbmVUb3AsIHN0ZDo6
bWluKGxpbmVIZWlnaHQsIHNoYXBlTG9naWNhbEJvdHRvbSgpIC0gbGluZVRvcCksIG1fc2VnbWVu
dHMpOworICAgICAgICBjb21wdXRlZFNoYXBlKCktPmdldEluY2x1ZGVkSW50ZXJ2YWxzKGxpbmVU
b3AsIHN0ZDo6bWluKGxpbmVIZWlnaHQsIHNoYXBlTG9naWNhbEJvdHRvbSgpIC0gbGluZVRvcCks
IG1fc2VnbWVudHMpOwogICAgIH0KICAgICByZXR1cm4gbV9zZWdtZW50cy5zaXplKCk7CiB9CiAK
IGJvb2wgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjphZGp1c3RMb2dpY2FsTGluZVRvcChmbG9h
dCBtaW5TZWdtZW50V2lkdGgpCiB7Ci0gICAgaWYgKCFtX3NoYXBlIHx8IG1fbGluZUhlaWdodCA8
PSAwIHx8IG1fbGluZVRvcCA+IHNoYXBlTG9naWNhbEJvdHRvbSgpKQorICAgIGNvbnN0IEV4Y2x1
c2lvblNoYXBlKiBzaGFwZSA9IGNvbXB1dGVkU2hhcGUoKTsKKyAgICBpZiAoIXNoYXBlIHx8IG1f
bGluZUhlaWdodCA8PSAwIHx8IG1fbGluZVRvcCA+IHNoYXBlTG9naWNhbEJvdHRvbSgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBmbG9hdCBmbG9hdE5ld0xpbmVUb3A7Ci0gICAgaWYg
KG1fc2hhcGUtPmZpcnN0SW5jbHVkZWRJbnRlcnZhbExvZ2ljYWxUb3AobV9saW5lVG9wLCBGbG9h
dFNpemUobWluU2VnbWVudFdpZHRoLCBtX2xpbmVIZWlnaHQpLCBmbG9hdE5ld0xpbmVUb3ApKSB7
CisgICAgaWYgKHNoYXBlLT5maXJzdEluY2x1ZGVkSW50ZXJ2YWxMb2dpY2FsVG9wKG1fbGluZVRv
cCwgRmxvYXRTaXplKG1pblNlZ21lbnRXaWR0aCwgbV9saW5lSGVpZ2h0KSwgZmxvYXROZXdMaW5l
VG9wKSkgewogICAgICAgICBMYXlvdXRVbml0IG5ld0xpbmVUb3AgPSBmbG9hdExvZ2ljYWxUb3BU
b0xheW91dFVuaXQoZmxvYXROZXdMaW5lVG9wKTsKICAgICAgICAgaWYgKG5ld0xpbmVUb3AgPiBt
X2xpbmVUb3ApIHsKICAgICAgICAgICAgIG1fbGluZVRvcCA9IG5ld0xpbmVUb3A7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgKaW5k
ZXggMmMxZTdkYi4uMmIxODc3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0V4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaApAQCAtMTMsNyArMTMsNyBAQAogICogICAgZGlz
Y2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCiAgKiAg
ICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAgKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSICJBUyBJ
UyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKICAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgogICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKQEAgLTMy
LDExICszMiw4IEBACiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAKLSNpbmNsdWRlICJF
eGNsdXNpb25TaGFwZS5oIgotI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIkV4Y2x1
c2lvblNoYXBlSW5mby5oIgogI2luY2x1ZGUgIklubGluZUl0ZXJhdG9yLmgiCi0jaW5jbHVkZSAi
TGF5b3V0VW5pdC5oIgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNTUsMjYgKzUyLDE2IEBA
IHN0cnVjdCBMaW5lU2VnbWVudFJhbmdlIHsKIH07CiB0eXBlZGVmIFZlY3RvcjxMaW5lU2VnbWVu
dFJhbmdlPiBTZWdtZW50UmFuZ2VMaXN0OwogCi1jbGFzcyBFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8gewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworY2xhc3MgRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvIDogcHVibGljIEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJCbG9jaywgJlJlbmRl
clN0eWxlOjpzaGFwZUluc2lkZT4sIHB1YmxpYyBNYXBwZWRJbmZvPFJlbmRlckJsb2NrLCBFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8+IHsKIHB1YmxpYzoKLSAgICB+RXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvKCk7CisgICAgc3RhdGljIFBhc3NPd25QdHI8RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
PiBjcmVhdGVJbmZvKGNvbnN0IFJlbmRlckJsb2NrKiByZW5kZXJlcikgeyByZXR1cm4gYWRvcHRQ
dHIobmV3IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhyZW5kZXJlcikpOyB9CiAKLSAgICBzdGF0
aWMgUGFzc093blB0cjxFeGNsdXNpb25TaGFwZUluc2lkZUluZm8+IGNyZWF0ZShSZW5kZXJCbG9j
ayogYmxvY2spIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8o
YmxvY2spKTsgfQotICAgIHN0YXRpYyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKik7Ci0gICAg
c3RhdGljIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZW5zdXJlRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvRm9yUmVuZGVyQmxvY2soUmVuZGVyQmxvY2sqKTsKLSAgICBzdGF0aWMgdm9pZCByZW1v
dmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9j
ayopOwotICAgIHN0YXRpYyBib29sIGlzRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvRW5hYmxlZEZv
clJlbmRlckJsb2NrKGNvbnN0IFJlbmRlckJsb2NrKik7Ci0KLSAgICBMYXlvdXRVbml0IHNoYXBl
TG9naWNhbFRvcCgpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV9zaGFwZSk7Ci0gICAg
ICAgIHJldHVybiBmbG9hdExvZ2ljYWxUb3BUb0xheW91dFVuaXQobV9zaGFwZS0+c2hhcGVMb2dp
Y2FsQm91bmRpbmdCb3goKS55KCkpOwotICAgIH0KLSAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNh
bEJvdHRvbSgpIGNvbnN0CisgICAgc3RhdGljIGJvb2wgaXNFbmFibGVkRm9yKGNvbnN0IFJlbmRl
ckJsb2NrKiByZW5kZXJlcikKICAgICB7Ci0gICAgICAgIEFTU0VSVChtX3NoYXBlKTsKLSAgICAg
ICAgcmV0dXJuIGZsb2F0TG9naWNhbEJvdHRvbVRvTGF5b3V0VW5pdChtX3NoYXBlLT5zaGFwZUxv
Z2ljYWxCb3VuZGluZ0JveCgpLm1heFkoKSk7CisgICAgICAgIC8vIEZJWE1FOiBCdWcgODk3MDc6
IEVuYWJsZSBzaGFwZSBpbnNpZGUgZm9yIG5vbi1yZWN0YW5ndWxhciBzaGFwZXMKKyAgICAgICAg
RXhjbHVzaW9uU2hhcGVWYWx1ZSogc2hhcGVWYWx1ZSA9IHJlbmRlcmVyLT5zdHlsZSgpLT5zaGFw
ZUluc2lkZSgpOworICAgICAgICBCYXNpY1NoYXBlKiBzaGFwZSA9IChzaGFwZVZhbHVlICYmIHNo
YXBlVmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTSEFQRSkgPyBzaGFwZVZh
bHVlLT5zaGFwZSgpIDogMDsKKyAgICAgICAgcmV0dXJuIHNoYXBlICYmIChzaGFwZS0+dHlwZSgp
ID09IEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX1JFQ1RBTkdMRSB8fCBzaGFwZS0+dHlwZSgpID09
IEJhc2ljU2hhcGU6OkJBU0lDX1NIQVBFX1BPTFlHT04pOwogICAgIH0KICAgICBib29sIGxpbmVP
dmVybGFwc1NoYXBlQm91bmRzKCkgY29uc3QgeyByZXR1cm4gbV9saW5lVG9wIDwgc2hhcGVMb2dp
Y2FsQm90dG9tKCkgJiYgbV9saW5lVG9wICsgbV9saW5lSGVpZ2h0ID49IHNoYXBlTG9naWNhbFRv
cCgpOyB9CiAKQEAgLTk4LDMwICs4NSwxNiBAQCBwdWJsaWM6CiAgICAgfQogICAgIGJvb2wgY29t
cHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUhl
aWdodCk7CiAgICAgYm9vbCBhZGp1c3RMb2dpY2FsTGluZVRvcChmbG9hdCBtaW5TZWdtZW50V2lk
dGgpOwotICAgIHZvaWQgY29tcHV0ZVNoYXBlU2l6ZShMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwg
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KTsKLSAgICB2b2lkIGRpcnR5U2hhcGVTaXplKCkgeyBt
X3NoYXBlU2l6ZURpcnR5ID0gdHJ1ZTsgfQotCiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGluZVRv
cCgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZVRvcDsgfQotICAgIFJlbmRlckJsb2NrKiBvd25lckJs
b2NrKCkgY29uc3QgeyByZXR1cm4gbV9ibG9jazsgfQogCiBwcml2YXRlOgotICAgIEV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbyhSZW5kZXJCbG9jayopOwotCi0gICAgLy8gVXNlIGNlaWwgYW5kIGZs
b29yIHRvIGVuc3VyZSB0aGF0IHRoZSByZXR1cm5lZCBMYXlvdXRVbml0IHZhbHVlIGlzIHdpdGhp
biB0aGUgc2hhcGUncyBib3VuZHMuCi0gICAgTGF5b3V0VW5pdCBmbG9hdExvZ2ljYWxUb3BUb0xh
eW91dFVuaXQoZmxvYXQgbG9naWNhbFRvcCkgY29uc3QgeyByZXR1cm4gTGF5b3V0VW5pdDo6ZnJv
bUZsb2F0Q2VpbChsb2dpY2FsVG9wKTsgfQotICAgIExheW91dFVuaXQgZmxvYXRMb2dpY2FsQm90
dG9tVG9MYXlvdXRVbml0KGZsb2F0IGxvZ2ljYWxCb3R0b20pIGNvbnN0IHsgcmV0dXJuIExheW91
dFVuaXQ6OmZyb21GbG9hdEZsb29yKGxvZ2ljYWxCb3R0b20pOyB9Ci0KLSAgICBSZW5kZXJCbG9j
ayogbV9ibG9jazsKLSAgICBPd25QdHI8RXhjbHVzaW9uU2hhcGU+IG1fc2hhcGU7CisgICAgRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvKGNvbnN0IFJlbmRlckJsb2NrKiByZW5kZXJlcikgOiBFeGNs
dXNpb25TaGFwZUluZm88UmVuZGVyQmxvY2ssICZSZW5kZXJTdHlsZTo6c2hhcGVJbnNpZGU+KHJl
bmRlcmVyKSB7IH0KIAogICAgIExheW91dFVuaXQgbV9saW5lVG9wOwogICAgIExheW91dFVuaXQg
bV9saW5lSGVpZ2h0OwotICAgIExheW91dFVuaXQgbV9sb2dpY2FsV2lkdGg7Ci0gICAgTGF5b3V0
VW5pdCBtX2xvZ2ljYWxIZWlnaHQ7CiAKICAgICBTZWdtZW50TGlzdCBtX3NlZ21lbnRzOwogICAg
IFNlZ21lbnRSYW5nZUxpc3QgbV9zZWdtZW50UmFuZ2VzOwotICAgIGJvb2wgbV9zaGFwZVNpemVE
aXJ0eTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZU91dHNpZGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNs
dXNpb25TaGFwZU91dHNpZGVJbmZvLmNwcAppbmRleCAwMzUzY2JiLi44N2ZhOGM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mby5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUlu
Zm8uY3BwCkBAIC0zNCw2OSArMzQsMTQgQEAKICNpbmNsdWRlICJFeGNsdXNpb25TaGFwZU91dHNp
ZGVJbmZvLmgiCiAKICNpbmNsdWRlICJSZW5kZXJCb3guaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXR5cGVkZWYgSGFzaE1hcDxjb25zdCBSZW5k
ZXJCb3gqLCBPd25QdHI8RXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbz4gPiBFeGNsdXNpb25TaGFw
ZU91dHNpZGVJbmZvTWFwOwotCi1zdGF0aWMgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mb01hcCYg
ZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mb01hcCgpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NB
TChFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvTWFwLCBzdGF0aWNFeGNsdXNpb25TaGFwZU91dHNp
ZGVJbmZvTWFwLCAoKSk7Ci0gICAgcmV0dXJuIHN0YXRpY0V4Y2x1c2lvblNoYXBlT3V0c2lkZUlu
Zm9NYXA7Ci19Ci0KLUV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OkV4Y2x1c2lvblNoYXBlT3V0
c2lkZUluZm8oUmVuZGVyQm94KiBib3gpCi0gICAgOiBtX2JveChib3gpCi0gICAgLCBtX2xvZ2lj
YWxXaWR0aCgwKQotICAgICwgbV9sb2dpY2FsSGVpZ2h0KDApCi17Ci19Ci0KLUV4Y2x1c2lvblNo
YXBlT3V0c2lkZUluZm86On5FeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKCkKLXsKLX0KLQotRXhj
bHVzaW9uU2hhcGVPdXRzaWRlSW5mbyogRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6ZW5zdXJl
SW5mb0ZvclJlbmRlckJveChSZW5kZXJCb3gqIGJveCkKLXsKLSAgICBFeGNsdXNpb25TaGFwZU91
dHNpZGVJbmZvTWFwJiBpbmZvTWFwID0gZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mb01hcCgpOwot
ICAgIGlmIChFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKiBzaGFwZUluZm8gPSBpbmZvTWFwLmdl
dChib3gpKQotICAgICAgICByZXR1cm4gc2hhcGVJbmZvOwotCi0gICAgRXhjbHVzaW9uU2hhcGVP
dXRzaWRlSW5mb01hcDo6QWRkUmVzdWx0IHJlc3VsdCA9IGluZm9NYXAuYWRkKGJveCwgY3JlYXRl
KGJveCkpOwotICAgIHJldHVybiByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmdldCgpOwotfQotCi1F
eGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKiBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjppbmZv
Rm9yUmVuZGVyQm94KGNvbnN0IFJlbmRlckJveCogYm94KQotewotICAgIEFTU0VSVChib3gtPnN0
eWxlKCktPnNoYXBlT3V0c2lkZSgpKTsKLSAgICByZXR1cm4gZXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mb01hcCgpLmdldChib3gpOwotfQotCi1ib29sIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86
OmlzSW5mb0VuYWJsZWRGb3JSZW5kZXJCb3goY29uc3QgUmVuZGVyQm94KiBib3gpCitib29sIEV4
Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OmlzRW5hYmxlZEZvcihjb25zdCBSZW5kZXJCb3gqIGJv
eCkKIHsKICAgICAvLyBGSVhNRTogRW5hYmxlIHNoYXBlIG91dHNpZGUgZm9yIG5vbi1yZWN0YW5n
dWxhciBzaGFwZXMhIChidWcgOTg2NjQpCiAgICAgRXhjbHVzaW9uU2hhcGVWYWx1ZSogdmFsdWUg
PSBib3gtPnN0eWxlKCktPnNoYXBlT3V0c2lkZSgpOwogICAgIHJldHVybiB2YWx1ZSAmJiAodmFs
dWUtPnR5cGUoKSA9PSBFeGNsdXNpb25TaGFwZVZhbHVlOjpTSEFQRSkgJiYgKHZhbHVlLT5zaGFw
ZSgpLT50eXBlKCkgPT0gQmFzaWNTaGFwZTo6QkFTSUNfU0hBUEVfUkVDVEFOR0xFKTsKIH0KIAot
dm9pZCBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjpyZW1vdmVJbmZvRm9yUmVuZGVyQm94KGNv
bnN0IFJlbmRlckJveCogYm94KQotewotICAgIGV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm9NYXAo
KS5yZW1vdmUoYm94KTsKLX0KLQotY29uc3QgRXhjbHVzaW9uU2hhcGUqIEV4Y2x1c2lvblNoYXBl
T3V0c2lkZUluZm86OmNvbXB1dGVkU2hhcGUoKSBjb25zdAotewotICAgIGlmIChFeGNsdXNpb25T
aGFwZSogc2hhcGVPdXRzaWRlID0gbV9jb21wdXRlZFNoYXBlLmdldCgpKQotICAgICAgICByZXR1
cm4gc2hhcGVPdXRzaWRlOwotCi0gICAgRXhjbHVzaW9uU2hhcGVWYWx1ZSogYmFzaWNTaGFwZVZh
bHVlID0gbV9ib3gtPnN0eWxlKCktPnNoYXBlT3V0c2lkZSgpOwotICAgIEFTU0VSVChiYXNpY1No
YXBlVmFsdWUpOwotICAgIEFTU0VSVChiYXNpY1NoYXBlVmFsdWUtPnR5cGUoKSA9PSBFeGNsdXNp
b25TaGFwZVZhbHVlOjpTSEFQRSk7Ci0KLSAgICBtX2NvbXB1dGVkU2hhcGUgPSBFeGNsdXNpb25T
aGFwZTo6Y3JlYXRlRXhjbHVzaW9uU2hhcGUoYmFzaWNTaGFwZVZhbHVlLT5zaGFwZSgpLCBtX2xv
Z2ljYWxXaWR0aCwgbV9sb2dpY2FsSGVpZ2h0LCBtX2JveC0+c3R5bGUoKS0+d3JpdGluZ01vZGUo
KSk7Ci0gICAgcmV0dXJuIG1fY29tcHV0ZWRTaGFwZS5nZXQoKTsKLX0KLQogfQogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRl
SW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUlu
Zm8uaAppbmRleCA1M2EwMDcxMy4uMGY2YzkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mby5oCkBAIC0zMiw3MiArMzIsMTgg
QEAKIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKIAotI2luY2x1ZGUgIkV4Y2x1c2lvblNo
YXBlLmgiCi0jaW5jbHVkZSAiRmxvYXRSZWN0LmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgot
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSAiRXhjbHVzaW9uU2hhcGVJbmZv
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVuZGVyQm94OwogCi1jbGFzcyBF
eGNsdXNpb25TaGFwZU91dHNpZGVJbmZvIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFeGNs
dXNpb25TaGFwZU91dHNpZGVJbmZvKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitjbGFzcyBF
eGNsdXNpb25TaGFwZU91dHNpZGVJbmZvIDogcHVibGljIEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5k
ZXJCb3gsICZSZW5kZXJTdHlsZTo6c2hhcGVPdXRzaWRlPiwgcHVibGljIE1hcHBlZEluZm88UmVu
ZGVyQm94LCBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvPiB7CiBwdWJsaWM6Ci0gICAgfkV4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm8oKTsKLQotICAgIHN0YXRpYyBQYXNzT3duUHRyPEV4Y2x1c2lv
blNoYXBlT3V0c2lkZUluZm8+IGNyZWF0ZShSZW5kZXJCb3gqIGJveCkgeyByZXR1cm4gYWRvcHRQ
dHIobmV3IEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oYm94KSk7IH0KLSAgICBzdGF0aWMgRXhj
bHVzaW9uU2hhcGVPdXRzaWRlSW5mbyogaW5mb0ZvclJlbmRlckJveChjb25zdCBSZW5kZXJCb3gq
KTsKLSAgICBzdGF0aWMgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyogZW5zdXJlSW5mb0ZvclJl
bmRlckJveChSZW5kZXJCb3gqKTsKLSAgICBzdGF0aWMgdm9pZCByZW1vdmVJbmZvRm9yUmVuZGVy
Qm94KGNvbnN0IFJlbmRlckJveCopOwotICAgIHN0YXRpYyBib29sIGlzSW5mb0VuYWJsZWRGb3JS
ZW5kZXJCb3goY29uc3QgUmVuZGVyQm94Kik7Ci0KLSAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNh
bExlZnQoKSBjb25zdAotICAgIHsgCi0gICAgICAgIHJldHVybiBjb21wdXRlZFNoYXBlKCktPnNo
YXBlTG9naWNhbEJvdW5kaW5nQm94KCkueCgpOwotICAgIH0KLSAgICBMYXlvdXRVbml0IHNoYXBl
TG9naWNhbFJpZ2h0KCkgY29uc3QKLSAgICB7IAotICAgICAgICByZXR1cm4gY29tcHV0ZWRTaGFw
ZSgpLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLm1heFgoKTsKLSAgICB9Ci0gICAgTGF5b3V0
VW5pdCBzaGFwZUxvZ2ljYWxUb3AoKSBjb25zdAotICAgIHsgCi0gICAgICAgIHJldHVybiBMYXlv
dXRVbml0Ojpmcm9tRmxvYXRDZWlsKGNvbXB1dGVkU2hhcGUoKS0+c2hhcGVMb2dpY2FsQm91bmRp
bmdCb3goKS55KCkpOwotICAgIH0KLSAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbEJvdHRvbSgp
IGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gTGF5b3V0VW5pdDo6ZnJvbUZsb2F0Rmxvb3Io
Y29tcHV0ZWRTaGFwZSgpLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLm1heFkoKSk7Ci0gICAg
fQotICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsV2lkdGgoKSBjb25zdAotICAgIHsgCi0gICAg
ICAgIHJldHVybiBjb21wdXRlZFNoYXBlKCktPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCkud2lk
dGgoKTsKLSAgICB9Ci0gICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxIZWlnaHQoKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVkU2hhcGUoKS0+c2hhcGVMb2dpY2FsQm91bmRp
bmdCb3goKS5oZWlnaHQoKTsKLSAgICB9Ci0KLSAgICB2b2lkIHNldFNoYXBlU2l6ZShMYXlvdXRV
bml0IGxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KQotICAgIHsKLSAgICAg
ICAgaWYgKG1fbG9naWNhbFdpZHRoID09IGxvZ2ljYWxXaWR0aCAmJiBtX2xvZ2ljYWxIZWlnaHQg
PT0gbG9naWNhbEhlaWdodCkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBkaXJ0eVNo
YXBlU2l6ZSgpOwotICAgICAgICBtX2xvZ2ljYWxXaWR0aCA9IGxvZ2ljYWxXaWR0aDsKLSAgICAg
ICAgbV9sb2dpY2FsSGVpZ2h0ID0gbG9naWNhbEhlaWdodDsKLSAgICB9Ci0KLSAgICB2b2lkIGRp
cnR5U2hhcGVTaXplKCkgeyBtX2NvbXB1dGVkU2hhcGUuY2xlYXIoKTsgfQotCisgICAgc3RhdGlj
IFBhc3NPd25QdHI8RXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbz4gY3JlYXRlSW5mbyhjb25zdCBS
ZW5kZXJCb3gqIHJlbmRlcmVyKSB7IHJldHVybiBhZG9wdFB0cihuZXcgRXhjbHVzaW9uU2hhcGVP
dXRzaWRlSW5mbyhyZW5kZXJlcikpOyB9CisgICAgc3RhdGljIGJvb2wgaXNFbmFibGVkRm9yKGNv
bnN0IFJlbmRlckJveCopOwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBFeGNsdXNpb25TaGFwZU91
dHNpZGVJbmZvKFJlbmRlckJveCopOwotICAgIGNvbnN0IEV4Y2x1c2lvblNoYXBlKiBjb21wdXRl
ZFNoYXBlKCkgY29uc3Q7Ci0KLSAgICBSZW5kZXJCb3gqIG1fYm94OwotICAgIG11dGFibGUgT3du
UHRyPEV4Y2x1c2lvblNoYXBlPiBtX2NvbXB1dGVkU2hhcGU7Ci0KLSAgICBMYXlvdXRVbml0IG1f
bG9naWNhbFdpZHRoOwotICAgIExheW91dFVuaXQgbV9sb2dpY2FsSGVpZ2h0OworICAgIEV4Y2x1
c2lvblNoYXBlT3V0c2lkZUluZm8oY29uc3QgUmVuZGVyQm94KiByZW5kZXJlcikgOiBFeGNsdXNp
b25TaGFwZUluZm88UmVuZGVyQm94LCAmUmVuZGVyU3R5bGU6OnNoYXBlT3V0c2lkZT4ocmVuZGVy
ZXIpIHsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAK
aW5kZXggOWMzNzVmYS4uYWM4MDAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCkBAIC0yOTEsNyArMjkxLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6d2lsbEJlRGVz
dHJveWVkKCkKICAgICAgICAgbGluZUdyaWRCb3goKS0+ZGVzdHJveShyZW5kZXJBcmVuYSgpKTsK
IAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm86OnJlbW92ZUV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mb0ZvclJlbmRlckJsb2NrKHRoaXMpOwor
ICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6cmVtb3ZlSW5mbyh0aGlzKTsKICNlbmRpZgog
CiAgICAgaWYgKFVOTElLRUxZKGdEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCAhPSAwKSkKQEAg
LTEzNzEsNyArMTM3MSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dCgpCiAjaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQogRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBSZW5kZXJCbG9jazo6
ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3R5bGUoKS0+
c2hhcGVJbnNpZGUoKSAmJiBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmlzRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvRW5hYmxlZEZvclJlbmRlckJsb2NrKHRoaXMpID8gRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvOjpleGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKSA6
IDA7CisgICAgcmV0dXJuIHN0eWxlKCktPnNoYXBlSW5zaWRlKCkgJiYgRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvOjppc0VuYWJsZWRGb3IodGhpcykgPyBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86
OmluZm8odGhpcykgOiAwOwogfQogCiB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVFeGNsdXNpb25T
aGFwZUluc2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IEV4Y2x1c2lvblNoYXBlVmFsdWUq
IHNoYXBlSW5zaWRlLCBjb25zdCBFeGNsdXNpb25TaGFwZVZhbHVlKiBvbGRTaGFwZUluc2lkZSkK
QEAgLTEzODEsMTAgKzEzODEsMTAgQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBFeGNsdXNpb24KICAgICAgICAg
cmV0dXJuOwogCiAgICAgaWYgKHNoYXBlSW5zaWRlKSB7Ci0gICAgICAgIEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvOjplbnN1cmVFeGNsdXNpb25TaGFwZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlz
KTsKKyAgICAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lk
ZUluZm8gPSBFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OmVuc3VyZUluZm8odGhpcyk7CiAgICAg
ICAgIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+ZGlydHlTaGFwZVNpemUoKTsKICAgICB9IGVs
c2UKLSAgICAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpyZW1vdmVFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm9Gb3JSZW5kZXJCbG9jayh0aGlzKTsKKyAgICAgICAgRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvOjpyZW1vdmVJbmZvKHRoaXMpOwogfQogI2VuZGlmCiAKQEAgLTE0MjMsNyArMTQy
Myw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVFeGNsdXNpb25TaGFwZVNpemUoKQogICAg
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gdGhp
cy0+ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CiAgICAgaWYgKGV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbykgewogICAgICAgICBib29sIHBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0UmVzb2x2YWJs
ZSA9IHBlcmNlbnRhZ2VMb2dpY2FsSGVpZ2h0SXNSZXNvbHZhYmxlRnJvbUJsb2NrKHRoaXMsIGZh
bHNlKTsKLSAgICAgICAgZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5jb21wdXRlU2hhcGVTaXpl
KGxvZ2ljYWxXaWR0aCgpLCBwZXJjZW50YWdlTG9naWNhbEhlaWdodFJlc29sdmFibGUgPyBsb2dp
Y2FsSGVpZ2h0KCkgOiBMYXlvdXRVbml0KCkpOworICAgICAgICBleGNsdXNpb25TaGFwZUluc2lk
ZUluZm8tPnNldFNoYXBlU2l6ZShsb2dpY2FsV2lkdGgoKSwgcGVyY2VudGFnZUxvZ2ljYWxIZWln
aHRSZXNvbHZhYmxlID8gbG9naWNhbEhlaWdodCgpIDogTGF5b3V0VW5pdCgpKTsKICAgICB9CiB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAKaW5kZXggZmJiM2RkYi4uMDExZmUyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTE0OTUsNyArMTQ5
NSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExpbmVM
YXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluCiAgICAgTGF5b3V0VW5pdCBhYnNvbHV0ZUxv
Z2ljYWxUb3A7CiAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUlu
c2lkZUluZm8gPSBsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8odGhpcyk7CiAgICAgaWYg
KGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbykgewotICAgICAgICBBU1NFUlQoZXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvLT5vd25lckJsb2NrKCkgPT0gdGhpcyB8fCBhbGxvd3NFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm9TaGFyaW5nKCkpOworICAgICAgICBBU1NFUlQoZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvLT5vd25lcigpID09IHRoaXMgfHwgYWxsb3dzRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
U2hhcmluZygpKTsKICAgICAgICAgaWYgKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyAhPSB0aGlz
LT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8oKSkgewogICAgICAgICAgICAgLy8gRklYTUUgQnVn
IDEwMDI4NDogSWYgc3Vic2VxdWVudCBMYXlvdXRTdGF0ZXMgYXJlIHB1c2hlZCwgd2Ugd2lsbCBo
YXZlIHRvIGFkZAogICAgICAgICAgICAgLy8gdGhlaXIgb2Zmc2V0cyBmcm9tIHRoZSBvcmlnaW5h
bCBzaGFwZS1pbnNpZGUgY29udGFpbmVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94
LmNwcAppbmRleCBmYTIxYjc4Li41MGI0MjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcApAQCAtMTYwLDcgKzE2MCw3IEBAIHZvaWQgUmVuZGVyQm94Ojp3aWxsQmVEZXN0
cm95ZWQoKQogICAgIFJlbmRlckJsb2NrOjpyZW1vdmVQZXJjZW50SGVpZ2h0RGVzY2VuZGFudElm
TmVlZGVkKHRoaXMpOwogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgIEV4Y2x1c2lv
blNoYXBlT3V0c2lkZUluZm86OnJlbW92ZUluZm9Gb3JSZW5kZXJCb3godGhpcyk7CisgICAgRXhj
bHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6cmVtb3ZlSW5mbyh0aGlzKTsKICNlbmRpZgogCiAgICAg
UmVuZGVyQm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpOwpAQCAtMzMwLDEwICszMzAs
MTAgQEAgdm9pZCBSZW5kZXJCb3g6OnVwZGF0ZUV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm9BZnRl
clN0eWxlQ2hhbmdlKGNvbnN0IEV4Y2x1c2lvblMKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KHNoYXBlT3V0c2lkZSkgewotICAgICAgICBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvKiBleGNs
dXNpb25TaGFwZU91dHNpZGVJbmZvID0gRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbzo6ZW5zdXJl
SW5mb0ZvclJlbmRlckJveCh0aGlzKTsKKyAgICAgICAgRXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5m
byogZXhjbHVzaW9uU2hhcGVPdXRzaWRlSW5mbyA9IEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86
OmVuc3VyZUluZm8odGhpcyk7CiAgICAgICAgIGV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8tPmRp
cnR5U2hhcGVTaXplKCk7CiAgICAgfSBlbHNlCi0gICAgICAgIEV4Y2x1c2lvblNoYXBlT3V0c2lk
ZUluZm86OnJlbW92ZUluZm9Gb3JSZW5kZXJCb3godGhpcyk7CisgICAgICAgIEV4Y2x1c2lvblNo
YXBlT3V0c2lkZUluZm86OnJlbW92ZUluZm8odGhpcyk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IDMzMGFmODIuLmNhZDIxZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTU4NCw3ICs1ODQsNyBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8qIGV4
Y2x1c2lvblNoYXBlT3V0c2lkZUluZm8oKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0
eWxlKCktPnNoYXBlT3V0c2lkZSgpICYmIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OmlzSW5m
b0VuYWJsZWRGb3JSZW5kZXJCb3godGhpcykgPyBFeGNsdXNpb25TaGFwZU91dHNpZGVJbmZvOjpp
bmZvRm9yUmVuZGVyQm94KHRoaXMpIDogMDsKKyAgICAgICAgcmV0dXJuIHN0eWxlKCktPnNoYXBl
T3V0c2lkZSgpICYmIEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OmlzRW5hYmxlZEZvcih0aGlz
KSA/IEV4Y2x1c2lvblNoYXBlT3V0c2lkZUluZm86OmluZm8odGhpcykgOiAwOwogICAgIH0KICNl
bmRpZgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>