<?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>80207</bug_id>
          
          <creation_ts>2012-03-02 22:24:00 -0800</creation_ts>
          <short_desc>Fix IndexedDB build with JSC</short_desc>
          <delta_ts>2012-03-20 09:35:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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>80802</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>abarth</cc>
    
    <cc>dgrogan</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>efidler</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>jsbell</cc>
    
    <cc>kling</cc>
    
    <cc>levin+threading</cc>
    
    <cc>s.choi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>570114</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-02 22:24:00 -0800</bug_when>
    <thetext>I wanted to try IndexedDB, turns out it does not even compile :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>570115</commentid>
    <comment_count>1</comment_count>
      <attachid>129995</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-02 22:26:40 -0800</bug_when>
    <thetext>Created attachment 129995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>571519</commentid>
    <comment_count>2</comment_count>
      <attachid>130300</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-05 23:01:51 -0800</bug_when>
    <thetext>Created attachment 130300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574409</commentid>
    <comment_count>3</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-08 17:13:12 -0800</bug_when>
    <thetext>Do you guys want me to break the patch in obvious &amp;&amp; non-obvious fixes maybe? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574417</commentid>
    <comment_count>4</comment_count>
      <attachid>130300</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-08 17:26:59 -0800</bug_when>
    <thetext>Comment on attachment 130300
Patch

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

I was hoping some of the IDB folks would review your patch, but this looks fine to me.

&gt; Source/WebCore/bindings/js/SerializedScriptValue.h:66
&gt; -class SerializedScriptValue : public RefCounted&lt;SerializedScriptValue&gt; {
&gt; +class SerializedScriptValue :
&gt; +#if ENABLE(INDEXED_DATABASE)
&gt; +    public ThreadSafeRefCounted&lt;SerializedScriptValue&gt; {
&gt; +#else
&gt; +    public RefCounted&lt;SerializedScriptValue&gt; {
&gt; +#endif

Should we just make this always ThreadSafeRefCounted ?  Having this ifdef seems scary.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3058
&gt; +    if ($globalObject) {

Do we need to run-bindings-tests --reset-results after this change to the code generator?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574420</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-08 17:32:23 -0800</bug_when>
    <thetext>Thanks for the review.

&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:3058
&gt; &gt; +    if ($globalObject) {
&gt; 
&gt; Do we need to run-bindings-tests --reset-results after this change to the code generator?

IndexedDB has our first static functions so I do not think so. I am unfamiliar with run-bindings-tests so I&apos;d better test that myself before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575230</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-09 14:30:32 -0800</bug_when>
    <thetext>How does this relate to https://bugs.webkit.org/show_bug.cgi?id=45110 ? Looks like a duplicate effort.

CC&apos;ing the IDB folks (myself and dgrogan). I&apos;m happy to take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575235</commentid>
    <comment_count>7</comment_count>
      <attachid>130300</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-09 14:33:34 -0800</bug_when>
    <thetext>Comment on attachment 130300
Patch

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

&gt; Source/WebCore/Modules/indexeddb/JSIDBVersionChangeRequestCustom.cpp:1
&gt; +/*

Shouldn&apos;t this file be in Source/WebCore/bindings/js ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575246</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-09 14:40:33 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 130300 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=130300&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/JSIDBVersionChangeRequestCustom.cpp:1
&gt; &gt; +/*
&gt; 
&gt; Shouldn&apos;t this file be in Source/WebCore/bindings/js ?

Good question. I did not put it in the binding because that would be spreading files outside the module.

I did not follow all emails regarding the modularization. I guess the modularization of binding must be documented somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575280</commentid>
    <comment_count>9</comment_count>
      <attachid>130300</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-09 15:07:44 -0800</bug_when>
    <thetext>Comment on attachment 130300
Patch

Oops.  Sorry I missed that.  Custom bindings go in bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575281</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-09 15:08:21 -0800</bug_when>
    <thetext>If you look at this diagram:

https://docs.google.com/drawings/d/10WlCj2J3arxf4cDGRKteNinaP755iFnmYtYtnNSCQOY/edit?authkey=CP6plYAI

You can see that bindings code is allowed to depend on every module.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575285</commentid>
    <comment_count>11</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-09 15:11:23 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; If you look at this diagram:
&gt; 
&gt; https://docs.google.com/drawings/d/10WlCj2J3arxf4cDGRKteNinaP755iFnmYtYtnNSCQOY/edit?authkey=CP6plYAI
&gt; 
&gt; You can see that bindings code is allowed to depend on every module.

My bad, I believed the modules were self-contained.

I will make an update. The code generator has also changed a bit since this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575291</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-09 15:17:04 -0800</bug_when>
    <thetext>&gt; My bad, I believed the modules were self-contained.

My dream is that we&apos;ll reduce/remove custom bindings over time.  :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575417</commentid>
    <comment_count>13</comment_count>
      <attachid>130300</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-09 19:42:39 -0800</bug_when>
    <thetext>Comment on attachment 130300
Patch

Actually, I think r+/cq- is a more accurate state for this patch.  jsbell: Any comments before Benjamin lands this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575465</commentid>
    <comment_count>14</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-03-10 00:34:00 -0800</bug_when>
    <thetext>Looks good to me. Much appreciated tidying. The exciting patches are yet to come.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576767</commentid>
    <comment_count>15</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-12 17:17:58 -0700</bug_when>
    <thetext>I have been busy with other stuff. I&apos;ll try to update and land this tonight or tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576974</commentid>
    <comment_count>16</comment_count>
      <attachid>131502</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-12 20:35:01 -0700</bug_when>
    <thetext>Created attachment 131502
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576984</commentid>
    <comment_count>17</comment_count>
      <attachid>131505</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2012-03-12 21:01:53 -0700</bug_when>
    <thetext>Created attachment 131505
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577051</commentid>
    <comment_count>18</comment_count>
      <attachid>131505</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 22:39:16 -0700</bug_when>
    <thetext>Comment on attachment 131505
Patch for landing

Clearing flags on attachment: 131505

Committed r110539: &lt;http://trac.webkit.org/changeset/110539&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577052</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-12 22:39:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129995</attachid>
            <date>2012-03-02 22:26:40 -0800</date>
            <delta_ts>2012-03-05 23:01:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80207-20120302222639.patch</filename>
            <type>text/plain</type>
            <size>21732</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5NjE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzY0ZDI0NzRhODU5MGYx
YzE0OTI3MGI4YjBlOTFiOGQzN2QzMzU2Yi4uZmY5ODZmOTczOGQ1YjRkMThiYmYzOTU4NDBiNTRh
OTk3OTkxNzA5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEyLTAzLTAyICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBGaXggSW5kZXhl
ZERCIGJ1aWxkIHdpdGggSlNDCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MDIwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNr
ZW5kSW1wbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFj
a3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6
dW5yZWdpc3RlckRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5QmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJ
bXBsOjpvcGVuQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJJ
bmRleEJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4QmFja2VuZElt
cGw6OmNvdW50SW50ZXJuYWwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBh
dGhCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQktleVBhdGhCYWNrZW5kSW1wbDo6Y3JlYXRlSURCS2V5c0Zyb21TZXJpYWxpemVkVmFsdWVz
QW5kS2V5UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlQYXRoQmFja2VuZEltcGw6Omlu
amVjdElEQktleUludG9TZXJpYWxpemVkVmFsdWUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y291bnRJbnRlcm5hbCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp0cmFuc2FjdGlvbnMpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6cmVzZXRSZWFkeVN0YXRl
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3NXaXRoUHJlZmV0Y2gpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3Jl
YXRlSURCS2V5RnJvbVZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNJREJBbnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9K
Uyk6CisgICAgICAgICogYmluZGluZ3MvanMvT3B0aW9uc09iamVjdC5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChPcHRpb25zT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9wdGlv
bnNPYmplY3Q6Ok9wdGlvbnNPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uc09iamVj
dDo6aXNPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uc09iamVjdDo6aXNVbmRlZmlu
ZWRPck51bGwpOgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uc09iamVjdDo6Z2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok9wdGlvbnNPYmplY3Q6OmdldFdpdGhVbmRlZmluZWRPck51bGxDaGVjayk6
CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNsb25lU2VyaWFsaXplcjo6ZHVtcEFycmF5QnVmZmVyVmlldyk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRl
RnJvbVdpcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpudW1i
ZXJWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpkZXNlcmlhbGl6ZSk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6CisgICAgICAgIChTZXJpYWxpemVkU2Ny
aXB0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
OgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZ1bmN0aW9uQ2FsbCk6CisgICAgICAg
IChOYXRpdmVUb0pTVmFsdWUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVk
REJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wMy0wMiAgU3JhdmFuS3Vt
YXIgU2FuZGVsYSAgPHNzYW5kZWxhQGlubm9taW5kcy5jb20+CiAKICAgICAgICAgTGF5b3V0IGlz
c3VlIHdpdGggZmllbGRzZXQgbGVnZW5kIGVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAppbmRleCA3
YTVjZTFkYTgzYzhiNDYxY2YzYWY4OWMxMTMyMTUzNDEyMGIxNmM5Li4xMDg2ZWIxNmViODdkMTlm
MDI4ZTNmNGM4YzQ3YjkwNWQ4Njc4ZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC0yOCw2ICsy
OCw3IEBACiAKICNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRlICJJREJEYXRhYmFz
ZS5oIgorI2luY2x1ZGUgPHN0ZGludC5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CkBAIC05Miw3
ICs5Myw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgcmVzZXRWZXJzaW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZEltcGw+LCBjb25z
dCBTdHJpbmcmIHZlcnNpb24pOwogCiAgICAgUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gbV9iYWNr
aW5nU3RvcmU7Ci0gICAgaW50NjQgbV9pZDsKKyAgICBpbnQ2NF90IG1faWQ7CiAgICAgU3RyaW5n
IG1fbmFtZTsKICAgICBTdHJpbmcgbV92ZXJzaW9uOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNw
cAppbmRleCAzOWM0NDA5MDliM2Q3ZGYzYWQxZjg5NjNjZjk2MWE1NjQwM2NlNWFjLi4xOTQxMmZj
YmU1MGFiNDRiZjUzZGMwMWUwM2Q4ODUzZTI4ZjdjNWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bC5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6Om9u
VmVyc2lvbkNoYW5nZShjb25zdCBTdHJpbmcmIHZlcnNpb24pCiAKIHZvaWQgSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsOjp1bnJlZ2lzdGVyRGF0YWJhc2UoSURCRGF0YWJhc2UqIGRhdGFiYXNlKQog
ewotICAgIEFTU0VSVChkYXRhYmFzZSA9PSBtX2RhdGFiYXNlKTsKKyAgICBBU1NFUlRfVU5VU0VE
KGRhdGFiYXNlLCBkYXRhYmFzZSA9PSBtX2RhdGFiYXNlKTsKICAgICBtX2RhdGFiYXNlID0gMDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAKaW5kZXggZGQyNDJlYWI1MmRhMDZhNDQ4ODE2YjI0MjU0
MmM0NDYyMTVmZWU4NC4uZjViOWM4Nzc0MDY3NDNmMGU1YTYwOWE0Y2NlOWQ1ZTRkYTI5YTMxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJh
Y2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJG
YWN0b3J5QmFja2VuZEltcGwuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiSURCRmFj
dG9yeUJhY2tlbmRJbXBsLmgiCiAKICNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCisjaW5jbHVk
ZSAiSURCQmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5o
IgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURCTGV2ZWxE
QkJhY2tpbmdTdG9yZS5oIgpAQCAtMTQ0LDYgKzE0NSw3IEBAIFBhc3NSZWZQdHI8SURCQmFja2lu
Z1N0b3JlPiBJREJGYWN0b3J5QmFja2VuZEltcGw6Om9wZW5CYWNraW5nU3RvcmUoUGFzc1JlZlB0
cjxTCiAjaWYgVVNFKExFVkVMREIpCiAgICAgICAgIGJhY2tpbmdTdG9yZSA9IElEQkxldmVsREJC
YWNraW5nU3RvcmU6Om9wZW4oc2VjdXJpdHlPcmlnaW4uZ2V0KCksIGRhdGFEaXJlY3RvcnksIGZp
bGVJZGVudGlmaWVyLCB0aGlzKTsKICNlbHNlCisgICAgICAgIFVOVVNFRF9QQVJBTShkYXRhRGly
ZWN0b3J5KTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZW5kaWYKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tl
bmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFj
a2VuZEltcGwuY3BwCmluZGV4IGNlYzQzYjk4ZWJkYzAzYjgzMTJmMjQ3MDQzYmI3NjVjZTc3MTMx
ZmYuLjQzYWU5YzJiMTZhN2I4ZjA3MmUxY2Y5ZDM0MDkyYjE3ZWYzNGUwOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZEltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZElt
cGwuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBJREJJbmRleEJhY2tlbmRJbXBsOjpvcGVu
S2V5Q3Vyc29yKFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHBycEtleVJhbmdlLCB1bnMKICAgICAg
ICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSOwog
fQogCi12b2lkIElEQkluZGV4QmFja2VuZEltcGw6OmNvdW50SW50ZXJuYWwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4gaW5kZXgsIFBhc3NS
ZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJh
Y2tzLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rp
b24pCit2b2lkIElEQkluZGV4QmFja2VuZEltcGw6OmNvdW50SW50ZXJuYWwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCSW5kZXhCYWNrZW5kSW1wbD4gaW5kZXgsIFBhc3NS
ZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJh
Y2tzLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pCiB7CiAgICAg
SURCX1RSQUNFKCJJREJJbmRleEJhY2tlbmRJbXBsOjpjb3VudEludGVybmFsIik7CiAgICAgdWlu
dDMyX3QgY291bnQgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCS2V5UGF0aEJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQktleVBhdGhCYWNrZW5kSW1wbC5jcHAKaW5kZXggNGYwZmNlZTY0N2Q3MjBl
YTg5ZTQzZTNhNWYxZmUxZWFiMWFjMTZjNy4uOTRjN2YyNzkzNWNmYTM5YWQzODgwMDEyYmU2MDli
NmIxMjk1YmZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCS2V5UGF0aEJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJLZXlQYXRoQmFja2VuZEltcGwuY3BwCkBAIC0yNiwyMSArMjYsMjkgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJREJLZXlQYXRoQmFja2VuZEltcGwuaCIKIAor
I2luY2x1ZGUgIklEQktleS5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgor
CisKICNpZiBQTEFURk9STShDSFJPTUlVTSkKICNlcnJvciAiQ2hyb21pdW0gc2hvdWxkIG5vdCBj
b21waWxlIHRoaXMgZmlsZSBhbmQgaW5zdGVhZCBkZWZpbmUgaXRzIG93biB2ZXJzaW9uIG9mIHRo
aXMgZmFjdG9yeSB0aGF0IG5hdmlnYXRlcyB0aGUgbXVsdGktcHJvY2VzcyBib3VuZHJ5LiIKICNl
bmRpZgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKLXZvaWQgSURCS2V5UGF0aEJh
Y2tlbmRJbXBsOjpjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKGNv
bnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYsIDA+IHZhbHVlcywgY29u
c3QgU3RyaW5nJiBrZXlQYXRoLCBWZWN0b3I8UmVmUHRyPElEQktleT4sIDA+JiBrZXlzKQorbmFt
ZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIElEQktleVBhdGhCYWNrZW5kSW1wbDo6Y3JlYXRlSURC
S2V5c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0aChjb25zdCBWZWN0b3I8UmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4sIDA+JiwgY29uc3QgU3RyaW5nJiwgVmVjdG9yPFJlZlB0cjxJ
REJLZXk+LCAwPiYpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzIG1ldGhvZCBvbmNl
IEpTQyBzdXBwb3J0cyBXaXJlRm9ybWF0IGZvciBTZXJpYWxpemVkU2NyaXB0VmFsdWUuCiB9CiAK
LVBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBJREJLZXlQYXRoQmFja2VuZEltcGw6
OmluamVjdElEQktleUludG9TZXJpYWxpemVkVmFsdWUoUGFzc1JlZlB0cjxJREJLZXk+IGtleSwg
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlLCBjb25zdCBTdHJpbmcmIGtl
eVBhdGgpCitQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gSURCS2V5UGF0aEJhY2tl
bmRJbXBsOjppbmplY3RJREJLZXlJbnRvU2VyaWFsaXplZFZhbHVlKFBhc3NSZWZQdHI8SURCS2V5
PiwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBjb25zdCBTdHJpbmcmKQogewog
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcyBtZXRob2Qgb25jZSBKU0Mgc3VwcG9ydHMgV2ly
ZUZvcm1hdCBmb3IgU2VyaWFsaXplZFNjcmlwdFZhbHVlLgotICAgIHJldHVybiAwOworICAgIHJl
dHVybiBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4oKTsKK30KKwogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3Bw
CmluZGV4IDU0OGYxYTI5M2M4MDdkNDAyMGMyMjA2NmNhYTJmYzI5ZmRkMjllODkuLjJlMmYwZmE5
NmRlODk4NGQzN2ZhOTdlNDIxNDRkNmI3NGRiM2E4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlQmFja2VuZElt
cGwuY3BwCkBAIC01OTYsNyArNTk2LDcgQEAgdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
Ojpjb3VudChQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgUGFzc1JlZlB0cjwKICAgICAg
ICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSOwog
fQogCi12b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNvdW50SW50ZXJuYWwoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4g
b2JqZWN0U3RvcmUsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElu
dGVyZmFjZT4gdHJhbnNhY3Rpb24pCit2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNv
dW50SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0
U3RvcmVCYWNrZW5kSW1wbD4gb2JqZWN0U3RvcmUsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJh
bmdlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pCiB7CiAgICAgSURCX1RSQUNFKCJJREJPYmplY3RT
dG9yZUJhY2tlbmRJbXBsOjpjb3VudEludGVybmFsIik7CiAgICAgdWludDMyX3QgY291bnQgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGlu
Z1RyYW5zYWN0aW9uTW9uaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmNwcAppbmRleCBmMmRlM2U3YTkyMTYwMzQy
ZDMxOTBjM2YzYTc0MDYxNWFmZDlkOWZlLi4yYzVhYzVhMmIzYWRhOTEzOGQyZmI0NWI1ZTMwY2Vm
YzU1MDgxZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmNwcApAQCAtMzQsNyAr
MzQsNyBAQCB1c2luZyBXVEY6OlRocmVhZFNwZWNpZmljOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLVRocmVhZFNwZWNpZmljPFZlY3RvcjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2Uq
PiA+JiB0cmFuc2FjdGlvbnMoKQorc3RhdGljIFRocmVhZFNwZWNpZmljPFZlY3RvcjxJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UqPiA+JiB0cmFuc2FjdGlvbnMoKQogewogICAgIC8vIEZJ
WE1FOiBNb3ZlIHRoZSBWZWN0b3IgdG8gU2NyaXB0RXhlY3V0aW9uQ29udGV4dCB0byBhdm9pZCBk
ZWFsaW5nIHdpdGgKICAgICAvLyB0aHJlYWQtbG9jYWwgc3RvcmFnZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggOTBjMTg4Y2JmYzBh
NDUxZmIzYjFlOWZkZDc4YjhlYzU4NTc5OTIyYS4uNWYyMTg1YTMxMmRhNDNiNTVjYTU4OTVmMzFi
MTBjMjU5Y2Y5YzBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5jcHAKQEAgLTEyOSw3ICsxMjksNyBAQCBib29sIElEQlJlcXVlc3Q6OnJlc2V0
UmVhZHlTdGF0ZShJREJUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCiB7CiAgICAgQVNTRVJUKCFt
X3JlcXVlc3RGaW5pc2hlZCk7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7
Ci0gICAgQVNTRVJUKHRyYW5zYWN0aW9uID09IG1fdHJhbnNhY3Rpb24pOworICAgIEFTU0VSVF9V
TlVTRUQodHJhbnNhY3Rpb24sIHRyYW5zYWN0aW9uID09IG1fdHJhbnNhY3Rpb24pOwogICAgIGlm
IChtX3JlYWR5U3RhdGUgIT0gRE9ORSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKaW5kZXggYTZiNTczZDg3
ZGQ3MTg3Mzc1Y2I1MzFjYzUyMTM0OTRmMmNkNWY5MS4uMWE2OWZhN2I3NDU2OGJkOWJmNmZkMjFi
MDYyNDc2ZjhmNDU1MjYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlJlcXVlc3QuaApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pOwog
ICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpOwotICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxJ
REJLZXk+ID4mIGtleXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiBwcmltYXJ5S2V5
cywgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mIHZhbHVlcykg
eyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfSAvLyBOb3QgaW1wbGVtZW50ZWQuIENhbGxiYWNrIHNo
b3VsZCBub3QgcmVhY2ggdGhlIHJlbmRlcmVyIHNpZGUuCisgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0IFZl
Y3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+ID4mKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9IC8vIE5vdCBpbXBsZW1lbnRl
ZC4gQ2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCB0aGUgcmVuZGVyZXIgc2lkZS4KICAgICB2aXJ0
dWFsIHZvaWQgb25CbG9ja2VkKCk7CiAKICAgICAvLyBBY3RpdmVET01PYmplY3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKaW5kZXgg
Njc2MjNmODVjY2Q1MzUwYmZhMjQ3NGIwNmMxMGRlYzcxNGE2YTRmOC4uOWM1MWU1MmQxYWU0YWE4
MjQxYWRmYWM1MGNjMmIwMzI0NTllZjY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKQEAgLTM2LDExICszNiwxMSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVZhbHVl
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKHZh
bHVlLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGUoKTsKKyAgICAgICAg
cmV0dXJuIElEQktleTo6Y3JlYXRlSW52YWxpZCgpOwogICAgIGlmICh2YWx1ZS5pc0ludDMyKCkp
Ci0gICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZSh2YWx1ZS50b0ludDMyKGV4ZWMpKTsKKyAg
ICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlTnVtYmVyKHZhbHVlLnRvTnVtYmVyKGV4ZWMpKTsK
ICAgICBpZiAodmFsdWUuaXNTdHJpbmcoKSkKLSAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRl
KHVzdHJpbmdUb1N0cmluZyh2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKTsKKyAg
ICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlU3RyaW5nKHVzdHJpbmdUb1N0cmluZyh2YWx1ZS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKTsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGRh
dGVzLgogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJp
bmRpbmcuaAppbmRleCAwZWIzZDljZjUyM2U2NDIxZGNlNDg0MmM2ZGQzYWNkZmNjMGU3YWNmLi5k
MjgxMGU0YTM2ZDU5ZmIwOTBmMDI1ZjUwNzA4MTg5NTJmNjI5YzM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaApAQCAtMjc4LDYgKzI3OCwxMiBAQCBlbnVtIFBh
cmFtZXRlckRlZmF1bHRQb2xpY3kgewogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIHB0ci5nZXQoKSk7CiAgICAgfQogCisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cisg
ICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBQYXNzUmVm
UHRyPFQ+IHB0cikKKyAgICB7CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKSwgcHRyLmdldCgpKTsKKyAgICB9CisKICAgICAvLyBWYWxpZGF0ZXMg
dGhhdCB0aGUgcGFzc2VkIG9iamVjdCBpcyBhIHNlcXVlbmNlIHR5cGUgcGVyIHNlY3Rpb24gNC4x
LjEzIG9mIHRoZSBXZWJJREwgc3BlYy4KICAgICBKU0M6OkpTT2JqZWN0KiB0b0pTU2VxdWVuY2Uo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIHVuc2lnbmVkJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9tLmNwcAppbmRleCA1MDZmMTVmMmNkNWQx
MGFlZjk2MzMzMTQ2MmUxZjlkN2MzMDA0MTFkLi5jYjcxNDE3ZGVlOTY2NTgyOWJlODM0ODI1YjI1
OGY3NTE2OTc2M2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lE
QkFueUN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJBbnlD
dXN0b20uY3BwCkBAIC02MSw4ICs2MSwxMiBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVj
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJREJBbnkqIGlkYkFueSkKICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgY2FzZSBJREJBbnk6Ok51bGxUeXBlOgogICAg
ICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgY2FzZSBJREJBbnk6OkRPTVN0cmluZ0xpc3RUeXBl
OgorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlkYkFueS0+ZG9tU3Ry
aW5nTGlzdCgpKTsKICAgICBjYXNlIElEQkFueTo6SURCQ3Vyc29yVHlwZToKICAgICAgICAgcmV0
dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlkYkN1cnNvcigpKTsKKyAgICBj
YXNlIElEQkFueTo6SURCQ3Vyc29yV2l0aFZhbHVlVHlwZToKKyAgICAgICAgcmV0dXJuIHRvSlMo
ZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlkYkN1cnNvcldpdGhWYWx1ZSgpKTsKICAgICBj
YXNlIElEQkFueTo6SURCRGF0YWJhc2VUeXBlOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIGlkYkFueS0+aWRiRGF0YWJhc2UoKSk7CiAgICAgY2FzZSBJREJBbnk6OklE
QkZhY3RvcnlUeXBlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvT3B0
aW9uc09iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvT3B0aW9uc09iamVjdC5o
CmluZGV4IDM0OTEwYzAzMmUxNzkyMjQ5MTg3MTM3NjlhYWRjMjY2ZTc4ZWRlYTYuLjQwNzhhZTE3
NDIxOGU3NzFjYjAxZmQxMjNmMzRlMmNhYTYxNWJiMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL09wdGlvbnNPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9PcHRpb25zT2JqZWN0LmgKQEAgLTI2LDYgKzI2LDQ2IEBACiAjaWZuZGVmIE9wdGlv
bnNPYmplY3RfaAogI2RlZmluZSBPcHRpb25zT2JqZWN0X2gKIAorI2luY2x1ZGUgIlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbWljU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9N
U3RyaW5nTGlzdDsKK2NsYXNzIERPTVdpbmRvdzsKK2NsYXNzIElEQktleVJhbmdlOworY2xhc3Mg
U2NyaXB0VmFsdWU7CitjbGFzcyBTdG9yYWdlOworY2xhc3MgVHJhY2tCYXNlOworCiAvLyBGSVhN
RTogSW1wbGVtZW50LgorY2xhc3MgT3B0aW9uc09iamVjdCB7CitwdWJsaWM6CisgICAgT3B0aW9u
c09iamVjdCgpIHsgfQorCisgICAgYm9vbCBpc09iamVjdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgYm9vbCBpc1VuZGVmaW5lZE9yTnVsbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CisKKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBib29sJikgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBpbnQzMl90JikgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBkb3VibGUmKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgU2NyaXB0
VmFsdWUmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmlu
ZyYsIHVuc2lnbmVkIHNob3J0JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGdl
dChjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
Ym9vbCBnZXQoY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgbG9uZyBsb25nJikgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBSZWZQdHI8RE9NV2luZG93
PiYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwg
UmVmUHRyPFN0b3JhZ2U+JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGdldChj
b25zdCBTdHJpbmcmLCBNZXNzYWdlUG9ydEFycmF5JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgUmVm
UHRyPFRyYWNrQmFzZT4mKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2VuZGlmCisgICAgYm9v
bCBnZXQoY29uc3QgU3RyaW5nJiwgSGFzaFNldDxBdG9taWNTdHJpbmc+JikgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKworICAgIGJvb2wgZ2V0V2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKGNvbnN0
IFN0cmluZyYsIFN0cmluZyYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cit9OworCit9CiAKICNl
bmRpZiAvLyBPcHRpb25zT2JqZWN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IDdjN2QzMzdiNjcwYjU0MmM4Mzc0
NDRmZTI3MGRlMzg3Yzk4YzNlMTkuLmE5MjljZmEzOTdhMjAyYzM3ODVmMDhmZWIzZjgwY2I1MGUy
MWVkM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIkpTVWludDMyQXJy
YXkuaCIKICNpbmNsdWRlICJKU1VpbnQ4QXJyYXkuaCIKICNpbmNsdWRlICJKU1VpbnQ4Q2xhbXBl
ZEFycmF5LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJTY3JpcHRW
YWx1ZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPGxpbWl0cz4KQEAg
LTUyNCw3ICs1MjUsNyBAQCBwcml2YXRlOgogICAgICAgICAgICAgY29kZSA9IFZhbGlkYXRpb25F
cnJvcjsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9Ci0gICAgICAgIEpTVmFs
dWUgYnVmZmVyT2JqID0gdG9KUyhtX2V4ZWMsIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0
Kj4obV9leGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBhcnJheUJ1ZmZlci5nZXQoKSk7Cisg
ICAgICAgIEpTVmFsdWUgYnVmZmVyT2JqID0gdG9KUyhtX2V4ZWMsIGFycmF5QnVmZmVyLnJlbGVh
c2UoKSk7CiAgICAgICAgIHJldHVybiBkdW1wSWZUZXJtaW5hbChidWZmZXJPYmosIGNvZGUpOwog
ICAgIH0KIApAQCAtMTczNSw2ICsxNzM2LDM1IEBAIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHN0CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVmZmVyKSk7CiB9
CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKK1Bhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4oKTsKK30KKworU3RyaW5nIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTo6dG9XaXJlU3RyaW5nKCkgY29uc3Q7Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CitQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGVGcm9tV2lyZShjb25zdCBTdHJpbmcm
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1Bhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bWJlclZhbHVlKGRvdWJsZSkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gSlNWYWx1ZSgpOworfQorI2VuZGlmCisKIFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShKU0NvbnRleHRSZWYg
b3JpZ2luQ29udGV4dCwgSlNWYWx1ZVJlZiBhcGlWYWx1ZSwgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVBvcnRB
cnJheSogbWVzc2FnZVBvcnRzLCBBcnJheUJ1ZmZlckFycmF5KiBhcnJheUJ1ZmZlcnMsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAppbmRleCAzZjhkYTVlOGYzMGIxMzkxYzAxNzNh
Y2ZjY2ZhMDExZDI0ZmI5NDM4Li4xZDUwMDkxZDlhZjBkYjE5YzE4NTkxNzU2YjMyNGIyOWNjN2Ji
ZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaApAQCAtODgsNiArODgsMTQgQEAgcHVibGljOgogCiAgICAgY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBkYXRhKCkgeyByZXR1cm4gbV9kYXRhOyB9CiAKKyNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBjcmVhdGVGcm9tV2lyZShjb25zdCBTdHJpbmcm
IGRhdGEpOworICAgIFN0cmluZyB0b1dpcmVTdHJpbmcoKSBjb25zdDsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG51bWJlclZhbHVlKGRvdWJsZSB2YWx1ZSk7
CisgICAgSlNDOjpKU1ZhbHVlIGRlc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0ds
b2JhbE9iamVjdCopOworI2VuZGlmCisKICAgICB+U2VyaWFsaXplZFNjcmlwdFZhbHVlKCk7CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvckpTLnBtCmluZGV4IDNjYTQ4NGQ5YTFlNDJkZjk2MGViYjQ2OTUxNzM3OWNhNTFkNjU0
MzYuLjM0MDg2YzczNzIyYzFiMjFkMWNlZDk2M2UyZDFlZTdjN2I0ODA3Y2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0y
NzM4LDcgKzI3MzgsOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZ1bmN0aW9uQ2FsbCgp
CiAKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAicmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTtcbiIpOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiXG4iIC4gJGluZGVudCAuICJKU0M6OkpTVmFsdWUgcmVzdWx0ID0gIiAu
IE5hdGl2ZVRvSlNWYWx1ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZSwgMSwgJGltcGxDbGFzc05hbWUs
ICRmdW5jdGlvblN0cmluZywgImNhc3RlZFRoaXMiKSAuICI7XG4iKTsKKyAgICAgICAgbXkgJHRo
aXNPYmplY3QgPSAkZnVuY3Rpb24tPmlzU3RhdGljID8gMCA6ICJjYXN0ZWRUaGlzIjsKKyAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiAkaW5kZW50IC4gIkpTQzo6SlNWYWx1ZSByZXN1
bHQgPSAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLCAxLCAkaW1wbENs
YXNzTmFtZSwgJGZ1bmN0aW9uU3RyaW5nLCAkdGhpc09iamVjdCkgLiAiO1xuIik7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gInNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7
XG4iKSBpZiBAeyRmdW5jdGlvbi0+cmFpc2VzRXhjZXB0aW9uc307CiAKICAgICAgICAgaWYgKCRj
b2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbFdpdGgifSwgIlNjcmlwdFN0YXRlIikpIHsK
QEAgLTI5NjcsNyArMjk2OCwxMCBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlCiAgICAgICAgIHJldHVy
biAianNTdHJpbmcoZXhlYywgJHZhbHVlKSI7CiAgICAgfQogCi0gICAgbXkgJGdsb2JhbE9iamVj
dCA9ICIkdGhpc1ZhbHVlLT5nbG9iYWxPYmplY3QoKSI7CisgICAgbXkgJGdsb2JhbE9iamVjdDsK
KyAgICBpZiAoJHRoaXNWYWx1ZSkgeworICAgICAgICAkZ2xvYmFsT2JqZWN0ID0gIiR0aGlzVmFs
dWUtPmdsb2JhbE9iamVjdCgpIjsKKyAgICB9CiAKICAgICBpZiAoJHR5cGUgZXEgIkNTU1N0eWxl
RGVjbGFyYXRpb24iKSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJTdHlsZVByb3BlcnR5
U2V0LmgiLCAkY29uZGl0aW9uYWwpOwpAQCAtMzA0NCw4ICszMDQ4LDExIEBAIHN1YiBOYXRpdmVU
b0pTVmFsdWUKICAgICAgICAgICAgICR2YWx1ZSA9ICIke3RlYXJPZmZUeXBlfTo6Y3JlYXRlKCR2
YWx1ZSkiOwogICAgICAgICB9CiAgICAgfQotCi0gICAgcmV0dXJuICJ0b0pTKGV4ZWMsICRnbG9i
YWxPYmplY3QsIFdURjo6Z2V0UHRyKCR2YWx1ZSkpIjsKKyAgICBpZiAoJGdsb2JhbE9iamVjdCkg
eworICAgICAgICByZXR1cm4gInRvSlMoZXhlYywgJGdsb2JhbE9iamVjdCwgV1RGOjpnZXRQdHIo
JHZhbHVlKSkiOworICAgIH0gZWxzZSB7CisgICAgICAgIHJldHVybiAidG9KUyhleGVjLCBXVEY6
OmdldFB0cigkdmFsdWUpKSI7CisgICAgfQogfQogCiBzdWIgY2VpbGluZ1RvUG93ZXJPZjIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2Vu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQu
Y3BwCmluZGV4IDFjYWMwMTJkYTE2YWY5ODMwMWFiYjAzNDI4NzA3Y2I4YzMwMDljMjQuLjIyMjQw
YTc2NmJkYTFmNjdmZTkyZDBkOWEwZTdhY2UxMGVmZWUxMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcApAQCAtMTA4LDcg
KzEwOCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPikgeyB9CiAgICAgdmlydHVhbCB2b2lkIG9u
U3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3NXaXRoQ29udGludWF0aW9uKCkgeyB9Ci0gICAgdmlydHVhbCB2b2lk
IG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYga2V5
cywgY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mIHByaW1hcnlLZXlzLCBjb25zdCBWZWN0
b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5
PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25zdCBWZWN0b3I8UmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2Nr
ZWQoKSB7IH0KIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130300</attachid>
            <date>2012-03-05 23:01:51 -0800</date>
            <delta_ts>2012-03-12 20:34:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80207-20120305230150.patch</filename>
            <type>text/plain</type>
            <size>36553</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5ODE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDQ1NzBlYzQ3NTI3MTdk
OTg4Zjc3ZGMxMjU4YzBiMDIzNDkxMzkwMi4uYjhkZjllNWM5YjI4ZmQ5ZTEwYzY0MmVlY2Q2Y2My
ODYyOTZhNzRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEyLTAzLTA1ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBJbmRleGVk
REIgYnVpbGQgd2l0aCBKU0MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgwMjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBmaXhlcyB0aGUgYnVpbGQgb2YgV2ViS2l0IHdoZW4gSW5kZXhlZERCIGlz
IGVuYWJsZWQuIE1vc3QgZnVuY3Rpb25zIHdlcmUgYWRkZWQKKyAgICAgICAgZW1wdHkgaW1wbGVt
ZW50YXRpb24sIGl0IGNvbXBpbGVzIGJ1dCBJbmRleGVkREIgaXMgbm90IHdvcmtpbmcuCisKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOiBBZGRlZCBtaXNzaW5nIElETCBmaWxlcy4KKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmg6IEZpeCB3
YXJuaW5ncyBhbmQgYnVpbGQgZXJyb3JzLgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kSW1w
bCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
LmNwcDogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6
OnVucmVnaXN0ZXJEYXRhYmFzZSk6IGRpdHRvLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHA6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SURC
RmFjdG9yeUJhY2tlbmRJbXBsOjpvcGVuQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbXBsLmNwcDogZGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpJREJJbmRleEJhY2tlbmRJbXBsOjpjb3VudEludGVybmFsKToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoQmFja2VuZEltcGwuY3BwOiBGaXggdGhlIG1ldGhvZCBz
aWduYXR1cmUgYW5kIGFkZAorICAgICAgICBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5UGF0aEJhY2tlbmRJbXBsOjpj
cmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRLZXlQYXRoKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQktleVBhdGhCYWNrZW5kSW1wbDo6aW5qZWN0SURCS2V5SW50b1NlcmlhbGl6ZWRW
YWx1ZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbC5jcHA6IEZpeCB3YXJuaW5ncy4KKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3Jl
QmFja2VuZEltcGw6OmNvdW50SW50ZXJuYWwpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuY3BwOiBkaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OnRyYW5zYWN0aW9ucyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVz
dC5jcHA6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6cmVzZXRSZWFkeVN0
YXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0Lmg6IGRpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6b25TdWNjZXNzV2l0aFByZWZldGNoKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9KU0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0Q3VzdG9t
LmNwcDogQWRkZWQuCisgICAgICAgIElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0IGhhcyB0aGUgYXR0
cmlidXRlIEV2ZW50VGFyZ2V0IHNvIGl0IHJlcXVpcmVzCisgICAgICAgIHRoZSB2aXNpdENoaWxk
cmVuKCkgZnVuY3Rpb24uIEFuIGVtcHR5IGltcGxlbWVudGF0aW9uIHdhcyBhZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVz
dDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlSURCS2V5RnJvbVZhbHVlKTogRml4IHRoZSBjcmVhdGlv
biBvZiBJREJLZXlzLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT3B0aW9uc09iamVjdEZyb21W
YWx1ZSk6IEFkZCBhbiBlbXB0eSBpbXBsZW1lbnRhdGlvbiBvZgorICAgICAgICB0aGUgaGFuZGxp
bmcgb2YgZGF0YWJhc2Ugb3B0aW9ucyAoSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzKS4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSURCQW55Q3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOiBBZGQgdGhlIG1pc3NpbmcgSURCQW55
J3MgdHlwZXMuCisgICAgICAgICogYmluZGluZ3MvanMvSlNJREJLZXlDdXN0b20uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6dG9KUyk6IEFkZCB0aGUgbWlzc2luZyBJREJLZXkncyB0eXBlcy4KKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9PcHRpb25zT2JqZWN0Lmg6IEFkZCBhbiBlbXB0eSBpbXBsZW1l
bnRhdGlvbi4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoT3B0aW9uc09iamVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpPcHRpb25zT2JqZWN0OjpPcHRpb25zT2JqZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok9wdGlvbnNPYmplY3Q6OmlzT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9w
dGlvbnNPYmplY3Q6OmlzVW5kZWZpbmVkT3JOdWxsKToKKyAgICAgICAgKFdlYkNvcmU6Ok9wdGlv
bnNPYmplY3Q6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjpPcHRpb25zT2JqZWN0OjpnZXRXaXRo
VW5kZWZpbmVkT3JOdWxsQ2hlY2spOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHA6IEFkZCB0aGUgbWlzc2luZyBmdW5jdGlvbnMgbmVlZGVkIGJ5IEluZGV4
ZWREQi4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNj
cmlwdFZhbHVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlOjp0b1dpcmVTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlOjpjcmVhdGVGcm9tV2lyZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0
VmFsdWU6Om51bWJlclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6ZGVzZXJpYWxpemUpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oOgorICAgICAgICAoU2VyaWFsaXplZFNjcmlwdFZhbHVlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbTogTW9kaWZ5IHRoZSBjb2RlIGdlbmVy
YXRvciB0bzoKKyAgICAgICAgLVN1cHBvcnQgdGhlIElEQktleSB0eXBlIGNvcnJlY3RseS4KKyAg
ICAgICAgLVN1cHBvcnQgdGhlIE9wdGlvbnNPYmplY3QgdHlwZS4KKyAgICAgICAgLUdlbmVyYXRl
IHZhbGlkIGZ1bmN0aW9uIGNhbGwgZm9yIHN0YXRpYyBmdW5jdGlvbnMuCisgICAgICAgIChHZW5l
cmF0ZUltcGxlbWVudGF0aW9uRnVuY3Rpb25DYWxsKToKKyAgICAgICAgKEpTVmFsdWVUb05hdGl2
ZSk6CisgICAgICAgIChOYXRpdmVUb0pTVmFsdWUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wMy0w
NSAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJvc3NhLm9yZz4KIAogICAgICAg
ICBnZXRDb21wdXRlZFN0eWxlIGdpdmVzIGluY29ycmVjdCBpbmZvcm1hdGlvbiBmb3IgJ2hlaWdo
dCcgcHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGU3NTAwZTEzMWFj
MDg5NmFjMjk1MWIzZGRiNzZlNDY4YTE0ZDU1MmIuLjk4YTYwYzcxMjM1Y2RiMWNkNTIyN2M4OTg3
OGM5ZTE3NDVjNjJkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNzUsNiAr
NzUsOCBAQCBCSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIv
SURCUmVxdWVzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJh
bnNhY3Rpb24uaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNp
b25DaGFuZ2VFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvSURC
VmVyc2lvbkNoYW5nZVJlcXVlc3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvaW5kZXhl
ZGRiL1dvcmtlckNvbnRleHRJbmRleGVkRGF0YWJhc2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvd2Vic29ja2V0cy9DbG9zZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVz
L3dlYnNvY2tldHMvRE9NV2luZG93V2ViU29ja2V0LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKaW5k
ZXggN2E1Y2UxZGE4M2M4YjQ2MWNmM2FmODljMTEzMjE1MzQxMjBiMTZjOS4uMTA4NmViMTZlYjg3
ZDE5ZjAyOGUzZjRjOGM0N2I5MDVkODY3OGYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaApAQCAtMjgs
NiArMjgsNyBAQAogCiAjaW5jbHVkZSAiSURCQ2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiSURCRGF0
YWJhc2UuaCIKKyNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgpAQCAt
OTIsNyArOTMsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIHJlc2V0VmVyc2lvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUJhY2tlbmRJbXBsPiwg
Y29uc3QgU3RyaW5nJiB2ZXJzaW9uKTsKIAogICAgIFJlZlB0cjxJREJCYWNraW5nU3RvcmU+IG1f
YmFja2luZ1N0b3JlOwotICAgIGludDY0IG1faWQ7CisgICAgaW50NjRfdCBtX2lkOwogICAgIFN0
cmluZyBtX25hbWU7CiAgICAgU3RyaW5nIG1fdmVyc2lvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bC5jcHAKaW5kZXggMzljNDQwOTA5YjNkN2RmM2FkMWY4OTYzY2Y5NjFhNTY0MDNjZTVhYy4uMTk0
MTJmY2JlNTBhYjQ0YmY1M2RjMDFlMDNkODg1M2UyOGY3YzVmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNr
c0ltcGwuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgSURCRGF0YWJhc2VDYWxsYmFja3NJbXBs
OjpvblZlcnNpb25DaGFuZ2UoY29uc3QgU3RyaW5nJiB2ZXJzaW9uKQogCiB2b2lkIElEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbDo6dW5yZWdpc3RlckRhdGFiYXNlKElEQkRhdGFiYXNlKiBkYXRhYmFz
ZSkKIHsKLSAgICBBU1NFUlQoZGF0YWJhc2UgPT0gbV9kYXRhYmFzZSk7CisgICAgQVNTRVJUX1VO
VVNFRChkYXRhYmFzZSwgZGF0YWJhc2UgPT0gbV9kYXRhYmFzZSk7CiAgICAgbV9kYXRhYmFzZSA9
IDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwCmluZGV4IGRkMjQyZWFiNTJkYTA2YTQ0ODgxNmIy
NDI1NDJjNDQ2MjE1ZmVlODQuLmY1YjljODc3NDA2NzQzZjBlNWE2MDlhNGNjZTlkNWU0ZGEyOWEz
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3Rv
cnlCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIklE
QkZhY3RvcnlCYWNrZW5kSW1wbC5oIgogCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgorI2lu
Y2x1ZGUgIklEQkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlQmFja2VuZElt
cGwuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIklEQkxl
dmVsREJCYWNraW5nU3RvcmUuaCIKQEAgLTE0NCw2ICsxNDUsNyBAQCBQYXNzUmVmUHRyPElEQkJh
Y2tpbmdTdG9yZT4gSURCRmFjdG9yeUJhY2tlbmRJbXBsOjpvcGVuQmFja2luZ1N0b3JlKFBhc3NS
ZWZQdHI8UwogI2lmIFVTRShMRVZFTERCKQogICAgICAgICBiYWNraW5nU3RvcmUgPSBJREJMZXZl
bERCQmFja2luZ1N0b3JlOjpvcGVuKHNlY3VyaXR5T3JpZ2luLmdldCgpLCBkYXRhRGlyZWN0b3J5
LCBmaWxlSWRlbnRpZmllciwgdGhpcyk7CiAjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0oZGF0
YURpcmVjdG9yeSk7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2VuZGlmCiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhC
YWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRl
eEJhY2tlbmRJbXBsLmNwcAppbmRleCBjZWM0M2I5OGViZGMwM2I4MzEyZjI0NzA0M2JiNzY1Y2U3
NzEzMWZmLi40M2FlOWMyYjE2YTdiOGYwNzJlMWNmOWQzNDA5MmIxN2VmMzRlMDkwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tlbmRJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleEJhY2tl
bmRJbXBsLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIHZvaWQgSURCSW5kZXhCYWNrZW5kSW1wbDo6
b3BlbktleUN1cnNvcihQYXNzUmVmUHRyPElEQktleVJhbmdlPiBwcnBLZXlSYW5nZSwgdW5zCiAg
ICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VS
UjsKIH0KIAotdm9pZCBJREJJbmRleEJhY2tlbmRJbXBsOjpjb3VudEludGVybmFsKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+IGluZGV4LCBQ
YXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNh
bGxiYWNrcywgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5z
YWN0aW9uKQordm9pZCBJREJJbmRleEJhY2tlbmRJbXBsOjpjb3VudEludGVybmFsKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQkluZGV4QmFja2VuZEltcGw+IGluZGV4LCBQ
YXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNh
bGxiYWNrcywgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KQogewog
ICAgIElEQl9UUkFDRSgiSURCSW5kZXhCYWNrZW5kSW1wbDo6Y291bnRJbnRlcm5hbCIpOwogICAg
IHVpbnQzMl90IGNvdW50ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQktleVBhdGhCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoQmFja2VuZEltcGwuY3BwCmluZGV4IDRmMGZjZWU2NDdk
NzIwZWE4OWU0M2UzYTVmMWZlMWVhYjFhYzE2YzcuLjk0YzdmMjc5MzVjZmEzOWFkMzg4MDAxMmJl
NjA5YjZiMTI5NWJmYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQktleVBhdGhCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCS2V5UGF0aEJhY2tlbmRJbXBsLmNwcApAQCAtMjYsMjEgKzI2LDI5IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSURCS2V5UGF0aEJhY2tlbmRJbXBsLmgi
CiAKKyNpbmNsdWRlICJJREJLZXkuaCIKKyNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aCIKKworCiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCiAjZXJyb3IgIkNocm9taXVtIHNob3VsZCBu
b3QgY29tcGlsZSB0aGlzIGZpbGUgYW5kIGluc3RlYWQgZGVmaW5lIGl0cyBvd24gdmVyc2lvbiBv
ZiB0aGlzIGZhY3RvcnkgdGhhdCBuYXZpZ2F0ZXMgdGhlIG11bHRpLXByb2Nlc3MgYm91bmRyeS4i
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCi12b2lkIElEQktleVBh
dGhCYWNrZW5kSW1wbDo6Y3JlYXRlSURCS2V5c0Zyb21TZXJpYWxpemVkVmFsdWVzQW5kS2V5UGF0
aChjb25zdCBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mLCAwPiB2YWx1ZXMs
IGNvbnN0IFN0cmluZyYga2V5UGF0aCwgVmVjdG9yPFJlZlB0cjxJREJLZXk+LCAwPiYga2V5cykK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBJREJLZXlQYXRoQmFja2VuZEltcGw6OmNyZWF0
ZUlEQktleXNGcm9tU2VyaWFsaXplZFZhbHVlc0FuZEtleVBhdGgoY29uc3QgVmVjdG9yPFJlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+LCAwPiYsIGNvbnN0IFN0cmluZyYsIFZlY3RvcjxSZWZQ
dHI8SURCS2V5PiwgMD4mKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcyBtZXRob2Qg
b25jZSBKU0Mgc3VwcG9ydHMgV2lyZUZvcm1hdCBmb3IgU2VyaWFsaXplZFNjcmlwdFZhbHVlLgog
fQogCi1QYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gSURCS2V5UGF0aEJhY2tlbmRJ
bXBsOjppbmplY3RJREJLZXlJbnRvU2VyaWFsaXplZFZhbHVlKFBhc3NSZWZQdHI8SURCS2V5PiBr
ZXksIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgY29uc3QgU3RyaW5n
JiBrZXlQYXRoKQorUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IElEQktleVBhdGhC
YWNrZW5kSW1wbDo6aW5qZWN0SURCS2V5SW50b1NlcmlhbGl6ZWRWYWx1ZShQYXNzUmVmUHRyPElE
QktleT4sIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgY29uc3QgU3RyaW5nJikK
IHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRoaXMgbWV0aG9kIG9uY2UgSlNDIHN1cHBvcnRz
IFdpcmVGb3JtYXQgZm9yIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS4KLSAgICByZXR1cm4gMDsKKyAg
ICByZXR1cm4gUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KCk7Cit9CisKIH0KIAog
I2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
LmNwcAppbmRleCA1NDhmMWEyOTNjODA3ZDQwMjBjMjIwNjZjYWEyZmMyOWZkZDI5ZTg5Li4yZTJm
MGZhOTZkZTg5ODRkMzdmYTk3ZTQyMTQ0ZDZiNzRkYjNhOGU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsLmNwcApAQCAtNTk2LDcgKzU5Niw3IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbDo6Y291bnQoUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIFBhc3NSZWZQdHI8CiAg
ICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VS
UjsKIH0KIAotdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpjb3VudEludGVybmFsKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlQmFja2VuZElt
cGw+IG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiByYW5nZSwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uKQordm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
Ojpjb3VudEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9i
amVjdFN0b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPElEQktleVJhbmdl
PiByYW5nZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+KQogewogICAgIElEQl9UUkFDRSgiSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y291bnRJbnRlcm5hbCIpOwogICAgIHVpbnQzMl90IGNvdW50
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlBl
bmRpbmdUcmFuc2FjdGlvbk1vbml0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHAKaW5kZXggZjJkZTNlN2E5MjE2
MDM0MmQzMTkwYzNmM2E3NDA2MTVhZmQ5ZDlmZS4uMmM1YWM1YTJiM2FkYTkxMzhkMmZiNDViNWUz
MGNlZmM1NTA4MWY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHAKQEAgLTM0
LDcgKzM0LDcgQEAgdXNpbmcgV1RGOjpUaHJlYWRTcGVjaWZpYzsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1UaHJlYWRTcGVjaWZpYzxWZWN0b3I8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJm
YWNlKj4gPiYgdHJhbnNhY3Rpb25zKCkKK3N0YXRpYyBUaHJlYWRTcGVjaWZpYzxWZWN0b3I8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlKj4gPiYgdHJhbnNhY3Rpb25zKCkKIHsKICAgICAv
LyBGSVhNRTogTW92ZSB0aGUgVmVjdG9yIHRvIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgdG8gYXZv
aWQgZGVhbGluZyB3aXRoCiAgICAgLy8gdGhyZWFkLWxvY2FsIHN0b3JhZ2UuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDkwYzE4OGNi
ZmMwYTQ1MWZiM2IxZTlmZGQ3OGI4ZWM1ODU3OTkyMmEuLjVmMjE4NWEzMTJkYTQzYjU1Y2E1ODk1
ZjMxYjEwYzI1OWNmOWMwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgYm9vbCBJREJSZXF1ZXN0Ojpy
ZXNldFJlYWR5U3RhdGUoSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogewogICAgIEFTU0VS
VCghbV9yZXF1ZXN0RmluaXNoZWQpOwogICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpOwotICAgIEFTU0VSVCh0cmFuc2FjdGlvbiA9PSBtX3RyYW5zYWN0aW9uKTsKKyAgICBBU1NF
UlRfVU5VU0VEKHRyYW5zYWN0aW9uLCB0cmFuc2FjdGlvbiA9PSBtX3RyYW5zYWN0aW9uKTsKICAg
ICBpZiAobV9yZWFkeVN0YXRlICE9IERPTkUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCmluZGV4IGE2YjU3
M2Q4N2RkNzE4NzM3NWNiNTMxY2M1MjEzNDk0ZjJjZDVmOTEuLjFhNjlmYTdiNzQ1NjhiZDliZjZm
ZDIxYjA2MjQ3NmY4ZjQ1NTI2MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJSZXF1ZXN0LmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+
KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhDb250aW51YXRpb24oKTsK
LSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3RvcjxSZWZQ
dHI8SURCS2V5PiA+JiBrZXlzLCBjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYgcHJpbWFy
eUtleXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiA+JiB2YWx1
ZXMpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0gLy8gTm90IGltcGxlbWVudGVkLiBDYWxsYmFj
ayBzaG91bGQgbm90IHJlYWNoIHRoZSByZW5kZXJlciBzaWRlLgorICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25z
dCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiA+JikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgfSAvLyBOb3QgaW1wbGVt
ZW50ZWQuIENhbGxiYWNrIHNob3VsZCBub3QgcmVhY2ggdGhlIHJlbmRlcmVyIHNpZGUuCiAgICAg
dmlydHVhbCB2b2lkIG9uQmxvY2tlZCgpOwogCiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9KU0lEQlZlcnNpb25DaGFu
Z2VSZXF1ZXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0pT
SURCVmVyc2lvbkNoYW5nZVJlcXVlc3RDdXN0b20uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzYmRlMzg0MTg3
NDdiNjBiZDVhYzBjNzJjM2YyODU2NDliNTU0NjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9KU0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0Q3VzdG9t
LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyLCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCisgKiBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgKiBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5oIgorCisjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdDo6dmlzaXRDaGls
ZHJlbihKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJikKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IHRoaXMuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggNjlkNjhjZjhmZDc3MmViNWMxNmRjNGVmZDgxODY0YTYzN2M1NzJlOS4uMmEzOTQxNTM4ZWZm
ZmZiYmQxOWJjZDkwNjdmMzEzZjJkOGNiY2MyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzEzLDYgKzcxMywxMSBAQAogCQky
NjU1NDEzOTE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY1NTQxMzcxNDg5ODExQzAwMERG
QzVEIC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLzsgfTsKIAkJMjY1NTQxM0ExNDg5ODExQzAwMERG
QzVEIC8qIEtleUV2ZW50SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMjY1NTQxMzgxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50SU9TLm1tICov
OyB9OwogCQkyNjU1NDE1MjE0ODlCMjMzMDAwREZDNUQgLyogQ3Vyc29ySU9TLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2NTU0MTRCMTQ4OUFBMkIw
MDBERkM1RCAvKiBDdXJzb3JJT1MuY3BwICovOyB9OworCQkyNjkyMzk5NTE1MDVFMUFBMDA5RTU3
RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY5MjM5OTExNTA1RTFBQTAwOUU1N0ZDIC8qIEpTSURC
VmVyc2lvbkNoYW5nZUV2ZW50LmNwcCAqLzsgfTsKKwkJMjY5MjM5OTYxNTA1RTFBQTAwOUU1N0ZD
IC8qIEpTSURCVmVyc2lvbkNoYW5nZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyNjkyMzk5MjE1MDVFMUFBMDA5RTU3RkMgLyogSlNJREJWZXJz
aW9uQ2hhbmdlRXZlbnQuaCAqLzsgfTsKKwkJMjY5MjM5OTcxNTA1RTFBQTAwOUU1N0ZDIC8qIEpT
SURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjY5MjM5OTMxNTA1RTFBQTAwOUU1N0ZDIC8qIEpTSURCVmVyc2lv
bkNoYW5nZVJlcXVlc3QuY3BwICovOyB9OworCQkyNjkyMzk5ODE1MDVFMUFBMDA5RTU3RkMgLyog
SlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMjY5MjM5OTQxNTA1RTFBQTAwOUU1N0ZDIC8qIEpTSURCVmVyc2lv
bkNoYW5nZVJlcXVlc3QuaCAqLzsgfTsKKwkJMjY5MjM5QTAxNTA1RTY2RTAwOUU1N0ZDIC8qIEpT
SURCVmVyc2lvbkNoYW5nZVJlcXVlc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjY5MjM5OUYxNTA1RTY2RTAwOUU1N0ZDIC8qIEpTSURC
VmVyc2lvbkNoYW5nZVJlcXVlc3RDdXN0b20uY3BwICovOyB9OwogCQkyNkE1MDM0RTE0RjA5ODM2
MDBBQTczMEQgLyogS1VSTFdURlVSTEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDI2QTUwMzREMTRGMDk4MzYwMEFBNzMwRCAvKiBLVVJMV1RGVVJM
SW1wbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTI2QTUwMzVBMTRGMEEyQkMwMEFBNzMwRCAvKiBLVVJMV1RGVVJMLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2QTUwMzU5MTRGMEEyQkMwMEFBNzMw
RCAvKiBLVVJMV1RGVVJMLmNwcCAqLzsgfTsKIAkJMjZDMTdBM0UxNDkxRDJENDAwRDEyQkEyIC8q
IEZpbGVTeXN0ZW1JT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDI2QzE3QTNDMTQ5MUQyRDQwMEQxMkJBMiAvKiBGaWxlU3lzdGVtSU9TLmggKi87IH07
CkBAIC03NTI1LDYgKzc1MzAsMTEgQEAKIAkJMjY1NTQxMzcxNDg5ODExQzAwMERGQzVEIC8qIEtl
eUV2ZW50Q29kZXNJT1MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gS2V5RXZl
bnRDb2Rlc0lPUy5oOyBwYXRoID0gaW9zL0tleUV2ZW50Q29kZXNJT1MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMjY1NTQxMzgxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50SU9T
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gS2V5RXZlbnRJT1Mu
bW07IHBhdGggPSBpb3MvS2V5RXZlbnRJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTI2NTU0MTRCMTQ4OUFBMkIwMDBERkM1RCAvKiBDdXJzb3JJT1MuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ3Vyc29ySU9TLmNwcDsgcGF0aCA9IGlvcy9DdXJz
b3JJT1MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNjkyMzk5MTE1MDVFMUFB
MDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyNjkyMzk5MjE1MDVFMUFBMDA5RTU3RkMgLyogSlNJREJW
ZXJzaW9uQ2hhbmdlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJ
REJWZXJzaW9uQ2hhbmdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjY5
MjM5OTMxNTA1RTFBQTAwOUU1N0ZDIC8qIEpTSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJWZXJzaW9uQ2hhbmdlUmVx
dWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTI2OTIzOTk0MTUwNUUxQUEw
MDlFNTdGQyAvKiBKU0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMjY5MjM5OUYxNTA1RTY2RTAwOUU1N0ZDIC8qIEpTSURCVmVyc2lv
bkNoYW5nZVJlcXVlc3RDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdEN1c3RvbS5jcHA7IHBhdGggPSBNb2R1bGVz
L2luZGV4ZWRkYi9KU0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0Q3VzdG9tLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZBNTAzNEQxNEYwOTgzNjAwQUE3MzBEIC8qIEtVUkxXVEZV
UkxJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtVUkxXVEZVUkxJbXBs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2QTUwMzU5MTRGMEEyQkMwMEFBNzMw
RCAvKiBLVVJMV1RGVVJMLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEtVUkxXVEZVUkwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyNkMxN0EzQzE0
OTFEMkQ0MDBEMTJCQTIgLyogRmlsZVN5c3RlbUlPUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBGaWxlU3lzdGVtSU9TLmg7IHBhdGggPSBpb3MvRmlsZVN5c3RlbUlPUy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTcyMTYsNiArMTcyMjYsNyBAQAogCQkJCTk3
MTJBNUE4MTUwMDRFREEwMDQ4QUYxMCAvKiBJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5jcHAgKi8s
CiAJCQkJOTcxMkE1QTkxNTAwNEVEQTAwNDhBRjEwIC8qIElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0
LmggKi8sCiAJCQkJOTcxMkE1QUExNTAwNEVEQTAwNDhBRjEwIC8qIElEQlZlcnNpb25DaGFuZ2VS
ZXF1ZXN0LmlkbCAqLywKKwkJCQkyNjkyMzk5RjE1MDVFNjZFMDA5RTU3RkMgLyogSlNJREJWZXJz
aW9uQ2hhbmdlUmVxdWVzdEN1c3RvbS5jcHAgKi8sCiAJCQkJOTcxMkE1QUIxNTAwNEVEQTAwNDhB
RjEwIC8qIFBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZS5jcHAgKi8sCiAJCQkJOTcxMkE1QUMxNTAw
NEVEQTAwNDhBRjEwIC8qIFBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZS5oICovLAogCQkJCTk3MTJB
NjBFMTUwMDkwQ0UwMDQ4QUYxMCAvKiBXb3JrZXJDb250ZXh0SW5kZXhlZERhdGFiYXNlLmNwcCAq
LywKQEAgLTE4MzI2LDYgKzE4MzM3LDEwIEBACiAJCQkJQzU4NUE2NzkxMUQ0RkIwNzAwNEMzRTRC
IC8qIEpTSURCUmVxdWVzdC5oICovLAogCQkJCUI2NTY2MjZGMTIwQjEyMjcwMDZFQTg1QyAvKiBK
U0lEQlRyYW5zYWN0aW9uLmNwcCAqLywKIAkJCQlCNjU2NjI2RTEyMEIxMjI3MDA2RUE4NUMgLyog
SlNJREJUcmFuc2FjdGlvbi5oICovLAorCQkJCTI2OTIzOTkxMTUwNUUxQUEwMDlFNTdGQyAvKiBK
U0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAgKi8sCisJCQkJMjY5MjM5OTIxNTA1RTFBQTAwOUU1
N0ZDIC8qIEpTSURCVmVyc2lvbkNoYW5nZUV2ZW50LmggKi8sCisJCQkJMjY5MjM5OTMxNTA1RTFB
QTAwOUU1N0ZDIC8qIEpTSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuY3BwICovLAorCQkJCTI2OTIz
OTk0MTUwNUUxQUEwMDlFNTdGQyAvKiBKU0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmggKi8sCiAJ
CQkJNTE0Qzc2MzUwQ0U5MjI1RTAwN0VGM0NEIC8qIEpTU1FMRXJyb3IuY3BwICovLAogCQkJCUJD
ODI0MzI1MEQwQ0U4QTIwMDQ2MEM4RiAvKiBKU1NRTEVycm9yLmggKi8sCiAJCQkJQjUyNUE5NjQx
MUNBMjM0MDAwM0EyM0E4IC8qIEpTU1FMRXhjZXB0aW9uLmNwcCAqLywKQEAgLTIzMDkzLDYgKzIz
MTA4LDggQEAKIAkJCQlDNTg1QTY4RjExRDRGQjA4MDA0QzNFNEIgLyogSlNJREJPYmplY3RTdG9y
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzU4NUE2OTExMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURC
UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjY1NjYyNzAxMjBCMTIyNzAwNkVBODVDIC8q
IEpTSURCVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTI2OTIzOTk2MTUwNUUxQUEw
MDlFNTdGQyAvKiBKU0lEQlZlcnNpb25DaGFuZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MjY5MjM5OTgxNTA1RTFBQTAwOUU1N0ZDIC8qIEpTSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDNkM0OUY0MEQ3REJBMDUwMEZGQTU1OCAvKiBKU0ltYWdlQ29u
c3RydWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3Nzk3OTI5MEQ2QjlFNjQwMDM4NTFCOSAv
KiBKU0ltYWdlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0EwRTc2REIxMEJGMDU5ODAwQTAy
NzZFIC8qIEpTSW5qZWN0ZWRTY3JpcHRIb3N0LmggaW4gSGVhZGVycyAqLywKQEAgLTI2MjE5LDYg
KzI2MjM2LDggQEAKIAkJCQlDNTg1QTY4RTExRDRGQjA4MDA0QzNFNEIgLyogSlNJREJPYmplY3RT
dG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTg1QTY5MDExRDRGQjA4MDA0QzNFNEIgLyog
SlNJREJSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI2NTY2MjcxMTIwQjEyMjcwMDZF
QTg1QyAvKiBKU0lEQlRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI2OTIzOTk1
MTUwNUUxQUEwMDlFNTdGQyAvKiBKU0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQkyNjkyMzk5NzE1MDVFMUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdl
UmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzZDNDlGMzBEN0RCQTA1MDBGRkE1NTgg
LyogSlNJbWFnZUNvbnN0cnVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3Nzk3OTI4MEQ2
QjlFNjQwMDM4NTFCOSAvKiBKU0ltYWdlRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0Qw
MzE4RTBFOTM1NDAzMDBFMjRBQ0QgLyogSlNJbWFnZURhdGFDdXN0b20uY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNzQ5NCw2ICsyNzUxMyw3IEBACiAJCQkJRkQ1MzczNTIxMzdCNjUxODAwMDA4RENF
IC8qIFplcm9Qb2xlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0
ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNzcyODY5ODMxNEZEOUFEQTAwRjQ4NERDIC8qIEpTRVhUVGV4dHVyZUZpbHRlckFuaXNvdHJv
cGljLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTI2OTIzOUEwMTUwNUU2NkUwMDlFNTdGQyAvKiBK
U0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAppbmRl
eCA2NzYyM2Y4NWNjZDUzNTBiZmEyNDc0YjA2YzEwZGVjNzE0YTZhNGY4Li44ZDNkYWQ1MjE2N2Vk
NDNkMjAyMjc2MmIwNTg4ZjUwODY4MzhmZTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiSURCQmluZGluZ1V0aWxpdGll
cy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKICNpbmNsdWRlICJJREJLZXkuaCIK
IApAQCAtMzYsMTUgKzM3LDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFBhc3NSZWZQdHI8SURC
S2V5PiBjcmVhdGVJREJLZXlGcm9tVmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBJ
REJLZXk6OmNyZWF0ZSgpOworICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVJbnZhbGlkKCk7
CiAgICAgaWYgKHZhbHVlLmlzSW50MzIoKSkKLSAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRl
KHZhbHVlLnRvSW50MzIoZXhlYykpOworICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVOdW1i
ZXIodmFsdWUudG9OdW1iZXIoZXhlYykpOwogICAgIGlmICh2YWx1ZS5pc1N0cmluZygpKQotICAg
ICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGUodXN0cmluZ1RvU3RyaW5nKHZhbHVlLnRvU3RyaW5n
KGV4ZWMpLT52YWx1ZShleGVjKSkpOworICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVTdHJp
bmcodXN0cmluZ1RvU3RyaW5nKHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSkpOwog
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZGF0ZXMuCiAgICAgcmV0dXJuIDA7CiB9CiAKK09wdGlv
bnNPYmplY3QgY3JlYXRlT3B0aW9uc09iamVjdEZyb21WYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IERhdGFiYXNlIE9wdGlvbnMu
CisgICAgcmV0dXJuIE9wdGlvbnNPYmplY3QoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmgKaW5kZXggN2U3MjE1MjY5Yzg1
NzI4ZWUyNGY4Y2VmNGU1YjRlN2FlOTQxYzFjZS4uZmE5MzM0NzVkZWRiNTk5MDlhNWQ5MDFkNzkx
YzczZWRhZjU3NzViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURC
QmluZGluZ1V0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJp
bmRpbmdVdGlsaXRpZXMuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOREVYRURf
REFUQUJBU0UpCiAKKyNpbmNsdWRlICJPcHRpb25zT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0
VmFsdWUuaCIgCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtMzYsNiArMzcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJREJLZXk7CiAKIFBhc3NSZWZQdHI8SURCS2V5PiBj
cmVhdGVJREJLZXlGcm9tVmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOworT3B0
aW9uc09iamVjdCBjcmVhdGVPcHRpb25zT2JqZWN0RnJvbVZhbHVlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0lEQkFueUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lE
QkFueUN1c3RvbS5jcHAKaW5kZXggNTA2ZjE1ZjJjZDVkMTBhZWY5NjMzMzE0NjJlMWY5ZDdjMzAw
NDExZC4uZGVmYTY1NmU3ZTJiOWYzNDQ4MjViZjAzMWMyYjg5MTMzODM4N2IyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJBbnlDdXN0b20uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9tLmNwcApAQCAtMzMsMTEgKzMz
LDEzIEBACiAKICNpbmNsdWRlICJJREJBbnkuaCIKICNpbmNsdWRlICJJREJDdXJzb3IuaCIKKyNp
bmNsdWRlICJJREJDdXJzb3JXaXRoVmFsdWUuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgog
I2luY2x1ZGUgIklEQkZhY3RvcnkuaCIKICNpbmNsdWRlICJJREJJbmRleC5oIgogI2luY2x1ZGUg
IklEQktleS5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCisjaW5jbHVkZSAiSlNET01T
dHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiSlNJREJDdXJzb3IuaCIKICNpbmNsdWRlICJKU0lEQkRh
dGFiYXNlLmgiCiAjaW5jbHVkZSAiSlNJREJGYWN0b3J5LmgiCkBAIC02MSw4ICs2MywxMiBAQCBK
U1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBJREJBbnkqIGlkYkFueSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAg
Y2FzZSBJREJBbnk6Ok51bGxUeXBlOgogICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgY2Fz
ZSBJREJBbnk6OkRPTVN0cmluZ0xpc3RUeXBlOgorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBn
bG9iYWxPYmplY3QsIGlkYkFueS0+ZG9tU3RyaW5nTGlzdCgpKTsKICAgICBjYXNlIElEQkFueTo6
SURCQ3Vyc29yVHlwZToKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBp
ZGJBbnktPmlkYkN1cnNvcigpKTsKKyAgICBjYXNlIElEQkFueTo6SURCQ3Vyc29yV2l0aFZhbHVl
VHlwZToKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlk
YkN1cnNvcldpdGhWYWx1ZSgpKTsKICAgICBjYXNlIElEQkFueTo6SURCRGF0YWJhc2VUeXBlOgog
ICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlkYkFueS0+aWRiRGF0YWJh
c2UoKSk7CiAgICAgY2FzZSBJREJBbnk6OklEQkZhY3RvcnlUeXBlOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJLZXlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNJREJLZXlDdXN0b20uY3BwCmluZGV4IDYyZmE3Y2JlMThmYzk5Zjgx
Nzg5OTc5YjEwMTZiZjdlNGUyNGVlNDYuLmIyYjc4ZWM1NzZjNzc2NzZiNmE5OGZiZWY5YTM4M2Zh
YzBhYmYxZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCS2V5
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQktleUN1c3Rv
bS5jcHAKQEAgLTM3LDE4ICszNywzNCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFs
T2JqZWN0KiwgSURCS2V5KiBrZXkpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJREJLZXkqIGtleSkKIHsKICAgICBpZiAoIWtl
eSkKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCiAgICAgc3dpdGNoIChrZXktPnR5cGUoKSkg
ewotICAgIGNhc2UgSURCS2V5OjpOdW1iZXJUeXBlOgotICAgICAgICByZXR1cm4ganNOdW1iZXIo
a2V5LT5udW1iZXIoKSk7CisgICAgY2FzZSBJREJLZXk6OkFycmF5VHlwZToKKyAgICAgICAgewor
ICAgICAgICAgICAgY29uc3QgSURCS2V5OjpLZXlBcnJheSYgaW5BcnJheSA9IGtleS0+YXJyYXko
KTsKKyAgICAgICAgICAgIHNpemVfdCBzaXplID0gaW5BcnJheS5zaXplKCk7CisgICAgICAgICAg
ICBKU0FycmF5KiBvdXRBcnJheSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBzaXplKTsKKyAgICAgICAgICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGV4ZWMt
Pmdsb2JhbERhdGEoKTsKKyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsg
KytpKSB7CisgICAgICAgICAgICAgICAgSURCS2V5KiBhcnJheUtleSA9IGluQXJyYXkuYXQoaSku
Z2V0KCk7CisgICAgICAgICAgICAgICAgb3V0QXJyYXktPmluaXRpYWxpemVJbmRleChnbG9iYWxE
YXRhLCBpLCB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgYXJyYXlLZXkpKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHJldHVybiBKU1ZhbHVlKG91dEFycmF5KTsKKyAgICAgICAgfQogICAg
IGNhc2UgSURCS2V5OjpTdHJpbmdUeXBlOgogICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywg
a2V5LT5zdHJpbmcoKSk7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBkYXRlcy4KLSAgICAvLyBG
SVhNRTogSW1wbGVtZW50IGFycmF5cy4KKyAgICBjYXNlIElEQktleTo6RGF0ZVR5cGU6CisgICAg
ICAgIHJldHVybiBqc0RhdGVPck51bGwoZXhlYywga2V5LT5kYXRlKCkpOworICAgIGNhc2UgSURC
S2V5OjpOdW1iZXJUeXBlOgorICAgICAgICByZXR1cm4ganNOdW1iZXIoa2V5LT5udW1iZXIoKSk7
CisgICAgY2FzZSBJREJLZXk6Ok1pblR5cGU6CisgICAgY2FzZSBJREJLZXk6OkludmFsaWRUeXBl
OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7CiAgICAgfQogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9PcHRpb25zT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9PcHRpb25zT2JqZWN0LmgKaW5kZXggMzQ5MTBjMDMyZTE3OTIyNDkxODcx
Mzc2OWFhZGMyNjZlNzhlZGVhNi4uNDA3OGFlMTc0MjE4ZTc3MWNiMDFmZDEyM2YzNGUyY2FhNjE1
YmIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvT3B0aW9uc09iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL09wdGlvbnNPYmplY3QuaApAQCAt
MjYsNiArMjYsNDYgQEAKICNpZm5kZWYgT3B0aW9uc09iamVjdF9oCiAjZGVmaW5lIE9wdGlvbnNP
YmplY3RfaAogCisjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01TdHJpbmdMaXN0OworY2xhc3MgRE9NV2luZG93
OworY2xhc3MgSURCS2V5UmFuZ2U7CitjbGFzcyBTY3JpcHRWYWx1ZTsKK2NsYXNzIFN0b3JhZ2U7
CitjbGFzcyBUcmFja0Jhc2U7CisKIC8vIEZJWE1FOiBJbXBsZW1lbnQuCitjbGFzcyBPcHRpb25z
T2JqZWN0IHsKK3B1YmxpYzoKKyAgICBPcHRpb25zT2JqZWN0KCkgeyB9CisKKyAgICBib29sIGlz
T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzVW5kZWZpbmVkT3JO
dWxsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmlu
ZyYsIGJvb2wmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNvbnN0IFN0
cmluZyYsIGludDMyX3QmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNv
bnN0IFN0cmluZyYsIGRvdWJsZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBn
ZXQoY29uc3QgU3RyaW5nJiwgU3RyaW5nJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBi
b29sIGdldChjb25zdCBTdHJpbmcmLCBTY3JpcHRWYWx1ZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgc2hvcnQmKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkJikg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCB1bnNp
Z25lZCBsb25nIGxvbmcmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNv
bnN0IFN0cmluZyYsIFJlZlB0cjxET01XaW5kb3c+JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBSZWZQdHI8U3RvcmFnZT4mKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VQb3J0QXJy
YXkmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAg
ICBib29sIGdldChjb25zdCBTdHJpbmcmLCBSZWZQdHI8VHJhY2tCYXNlPiYpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisjZW5kaWYKKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBIYXNoU2V0
PEF0b21pY1N0cmluZz4mKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgYm9vbCBnZXRX
aXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soY29uc3QgU3RyaW5nJiwgU3RyaW5nJikgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KK307CisKK30KIAogI2VuZGlmIC8vIE9wdGlvbnNPYmplY3RfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAKaW5kZXggN2M3ZDMzN2I2NzBiNTQyYzgzNzQ0NGZlMjcwZGUzODdjOThjM2UxOS4uOGU5YTk0
YTAyNTVjYjIzNzBjMzkyZTNkYTNiODFiMjI4NmExYWQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC01MCw2ICs1
MCw3IEBACiAjaW5jbHVkZSAiSlNVaW50MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTVWludDhBcnJh
eS5oIgogI2luY2x1ZGUgIkpTVWludDhDbGFtcGVkQXJyYXkuaCIKKyNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCiAjaW5jbHVkZSA8bGltaXRzPgpAQCAtMTczNSw2ICsxNzM2LDM3IEBAIFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIHN0CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0
VmFsdWUoYnVmZmVyKSk7CiB9CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKK1Bhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0
ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4oKTsKK30KKwor
U3RyaW5nIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dG9XaXJlU3RyaW5nKCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KK1Bhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21X
aXJlKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KCk7Cit9CisKK1Bhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bWJlclZhbHVlKGRv
dWJsZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4oKTsKK30KKworSlNWYWx1ZSBTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmRlc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSlNWYWx1ZSgpOworfQorI2VuZGlm
CisKIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmNyZWF0ZShKU0NvbnRleHRSZWYgb3JpZ2luQ29udGV4dCwgSlNWYWx1ZVJlZiBhcGlWYWx1
ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTWVzc2FnZVBvcnRBcnJheSogbWVzc2FnZVBvcnRzLCBBcnJheUJ1ZmZlckFy
cmF5KiBhcnJheUJ1ZmZlcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAppbmRl
eCAzZjhkYTVlOGYzMGIxMzkxYzAxNzNhY2ZjY2ZhMDExZDI0ZmI5NDM4Li44NThlOGM5YzI0MDM5
YmI3Y2YxNmVhMTU3YzQzNWI0YTJlYTliMTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaApAQCAtNTgsNyArNTgsMTIgQEAgZW51
bSBTZXJpYWxpemF0aW9uRXJyb3JNb2RlIHsgTm9uVGhyb3dpbmcsIFRocm93aW5nIH07CiBjbGFz
cyBTY3JpcHRWYWx1ZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAotY2xhc3MgU2VyaWFsaXplZFNj
cmlwdFZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB7Citj
bGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWUgOgorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQorICAgIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IHsKKyNlbHNlCisgICAgcHVibGljIFJlZkNvdW50ZWQ8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB7
CisjZW5kaWYKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgTWVzc2FnZVBvcnRB
cnJheSosIEFycmF5QnVmZmVyQXJyYXkqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNlcmlhbGl6YXRpb25FcnJvck1vZGUgPSBUaHJvd2luZyk7
CkBAIC04OCw2ICs5MywxNCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBWZWN0b3I8dWludDhfdD4m
IGRhdGEoKSB7IHJldHVybiBtX2RhdGE7IH0KIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZUZyb21XaXJlKGNvbnN0IFN0cmluZyYgZGF0YSk7Cisg
ICAgU3RyaW5nIHRvV2lyZVN0cmluZygpIGNvbnN0OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbnVtYmVyVmFsdWUoZG91YmxlIHZhbHVlKTsKKyAgICBKU0M6
OkpTVmFsdWUgZGVzZXJpYWxpemUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CisjZW5kaWYKKwogICAgIH5TZXJpYWxpemVkU2NyaXB0VmFsdWUoKTsKIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KaW5kZXggM2NhNDg0ZDlhMWU0MmRmOTYwZWJiNDY5NTE3Mzc5Y2E1MWQ2NTQzNi4uZWFhZjFh
ZDI5NmU3Y2FiODBjNmY3ZjMzYzEyNjM0ZDg5NTI3NDkwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI3MzgsNyArMjcz
OCw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uRnVuY3Rpb25DYWxsKCkKIAogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICJyZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpO1xuIik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJcbiIgLiAkaW5kZW50IC4gIkpTQzo6SlNWYWx1ZSByZXN1bHQgPSAiIC4gTmF0aXZlVG9K
U1ZhbHVlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLCAxLCAkaW1wbENsYXNzTmFtZSwgJGZ1bmN0aW9u
U3RyaW5nLCAiY2FzdGVkVGhpcyIpIC4gIjtcbiIpOworICAgICAgICBteSAkdGhpc09iamVjdCA9
ICRmdW5jdGlvbi0+aXNTdGF0aWMgPyAwIDogImNhc3RlZFRoaXMiOworICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIlxuIiAuICRpbmRlbnQgLiAiSlNDOjpKU1ZhbHVlIHJlc3VsdCA9ICIgLiBO
YXRpdmVUb0pTVmFsdWUoJGZ1bmN0aW9uLT5zaWduYXR1cmUsIDEsICRpbXBsQ2xhc3NOYW1lLCAk
ZnVuY3Rpb25TdHJpbmcsICR0aGlzT2JqZWN0KSAuICI7XG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICRpbmRlbnQgLiAic2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTtcbiIpIGlmIEB7
JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfTsKIAogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0
b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9LCAiU2NyaXB0U3RhdGUiKSkgewpAQCAtMjc3MSw3
ICsyNzcyLDggQEAgbXkgJW5hdGl2ZVR5cGUgPSAoCiAgICAgIkRPTU9iamVjdCIgPT4gIlNjcmlw
dFZhbHVlIiwKICAgICAiTm9kZUZpbHRlciIgPT4gIlJlZlB0cjxOb2RlRmlsdGVyPiIsCiAgICAg
IlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIgPT4gIlJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IiwKLSAgICAiSURCS2V5IiA9PiAiUmVmUHRyPElEQktleT4iLAorICAgICJJREJLZXkiID0+ICJQ
YXNzUmVmUHRyPElEQktleT4iLAorICAgICJPcHRpb25zT2JqZWN0IiA9PiAiT3B0aW9uc09iamVj
dCIsCiAgICAgImJvb2xlYW4iID0+ICJib29sIiwKICAgICAiZG91YmxlIiA9PiAiZG91YmxlIiwK
ICAgICAiZmxvYXQiID0+ICJmbG9hdCIsCkBAIC0yOTA3LDYgKzI5MDksMTIgQEAgc3ViIEpTVmFs
dWVUb05hdGl2ZQogICAgICAgICByZXR1cm4gImNyZWF0ZUlEQktleUZyb21WYWx1ZShleGVjLCAk
dmFsdWUpIjsKICAgICB9CiAKKyAgICBpZiAoJHR5cGUgZXEgIk9wdGlvbnNPYmplY3QiKSB7Cisg
ICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJJREJCaW5kaW5nVXRpbGl0aWVzLmgiLCAkY29uZGl0
aW9uYWwpOworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiT3B0aW9uc09iamVjdC5oIiwgJGNv
bmRpdGlvbmFsKTsKKyAgICAgICAgcmV0dXJuICJjcmVhdGVPcHRpb25zT2JqZWN0RnJvbVZhbHVl
KGV4ZWMsICR2YWx1ZSkiOworICAgIH0KKwogICAgIGlmICgkdHlwZSBlcSAiRE9NU3RyaW5nW10i
KSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTVN0cmluZ0xpc3QuaCIsICRjb25k
aXRpb25hbCk7CiAgICAgICAgIHJldHVybiAidG9ET01TdHJpbmdMaXN0KCR2YWx1ZSkiOwpAQCAt
Mjk2Nyw3ICsyOTc1LDEwIEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKICAgICAgICAgcmV0dXJuICJq
c1N0cmluZyhleGVjLCAkdmFsdWUpIjsKICAgICB9CiAKLSAgICBteSAkZ2xvYmFsT2JqZWN0ID0g
IiR0aGlzVmFsdWUtPmdsb2JhbE9iamVjdCgpIjsKKyAgICBteSAkZ2xvYmFsT2JqZWN0OworICAg
IGlmICgkdGhpc1ZhbHVlKSB7CisgICAgICAgICRnbG9iYWxPYmplY3QgPSAiJHRoaXNWYWx1ZS0+
Z2xvYmFsT2JqZWN0KCkiOworICAgIH0KIAogICAgIGlmICgkdHlwZSBlcSAiQ1NTU3R5bGVEZWNs
YXJhdGlvbiIpIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlN0eWxlUHJvcGVydHlTZXQu
aCIsICRjb25kaXRpb25hbCk7CkBAIC0zMDQ0LDggKzMwNTUsMTEgQEAgc3ViIE5hdGl2ZVRvSlNW
YWx1ZQogICAgICAgICAgICAgJHZhbHVlID0gIiR7dGVhck9mZlR5cGV9OjpjcmVhdGUoJHZhbHVl
KSI7CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICByZXR1cm4gInRvSlMoZXhlYywgJGdsb2JhbE9i
amVjdCwgV1RGOjpnZXRQdHIoJHZhbHVlKSkiOworICAgIGlmICgkZ2xvYmFsT2JqZWN0KSB7Cisg
ICAgICAgIHJldHVybiAidG9KUyhleGVjLCAkZ2xvYmFsT2JqZWN0LCBXVEY6OmdldFB0cigkdmFs
dWUpKSI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIHN0YXRpY19j
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgV1RG
OjpnZXRQdHIoJHZhbHVlKSkiOworICAgIH0KIH0KIAogc3ViIGNlaWxpbmdUb1Bvd2VyT2YyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50
LmNwcAppbmRleCAxY2FjMDEyZGExNmFmOTgzMDFhYmIwMzQyODcwN2NiOGMzMDA5YzI0Li4yMjI0
MGE3NjZiZGExZjY3ZmU5MmQwZDlhMGU3YWNlMTBlZmVlMTFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTEwOCw3
ICsxMDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRy
PElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mIGtl
eXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiBwcmltYXJ5S2V5cywgY29uc3QgVmVj
dG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mIHZhbHVlcykgeyB9CisgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktl
eT4gPiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9j
a2VkKCkgeyB9CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131502</attachid>
            <date>2012-03-12 20:35:01 -0700</date>
            <delta_ts>2012-03-12 21:01:48 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-80207-20120312203459.patch</filename>
            <type>text/plain</type>
            <size>37264</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM2NjM5MTRiZWViNjM5
Yzc5ZWEyYWQwNWQ0Y2EzNTA1MjY1NDZiNS4uYjg4ODZkODRmODlmYzAwNDQyNDU5NTkxZDU3ODg4
YzU5YmQ2NDI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEyLTAzLTEyICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBJbmRleGVk
REIgYnVpbGQgd2l0aCBKU0MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgwMjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAg
ICAgICBUaGlzIGZpeGVzIHRoZSBidWlsZCBvZiBXZWJLaXQgd2hlbiBJbmRleGVkREIgaXMgZW5h
YmxlZC4gTW9zdCBmdW5jdGlvbnMgd2VyZSBhZGRlZAorICAgICAgICBlbXB0eSBpbXBsZW1lbnRh
dGlvbiwgaXQgY29tcGlsZXMgYnV0IEluZGV4ZWREQiBpcyBub3Qgd29ya2luZy4KKworICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkIG1pc3NpbmcgSURMIGZpbGVzLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaDogRml4IHdhcm5p
bmdzIGFuZCBidWlsZCBlcnJvcnMuCisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3Bw
OiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6dW5y
ZWdpc3RlckRhdGFiYXNlKTogZGl0dG8uCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeUJhY2tlbmRJbXBsLmNwcDogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0
b3J5QmFja2VuZEltcGw6Om9wZW5CYWNraW5nU3RvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkluZGV4QmFja2VuZEltcGwuY3BwOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OklEQkluZGV4QmFja2VuZEltcGw6OmNvdW50SW50ZXJuYWwpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQktleVBhdGhCYWNrZW5kSW1wbC5jcHA6IEZpeCB0aGUgbWV0aG9kIHNpZ25h
dHVyZSBhbmQgYWRkCisgICAgICAgIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlQYXRoQmFja2VuZEltcGw6OmNyZWF0
ZUlEQktleXNGcm9tU2VyaWFsaXplZFZhbHVlc0FuZEtleVBhdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5UGF0aEJhY2tlbmRJbXBsOjppbmplY3RJREJLZXlJbnRvU2VyaWFsaXplZFZhbHVl
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
LmNwcDogRml4IHdhcm5pbmdzLgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbDo6Y291bnRJbnRlcm5hbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
UGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHA6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
dHJhbnNhY3Rpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNw
cDogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpyZXNldFJlYWR5U3RhdGUp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaDogZGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3NXaXRoUHJlZmV0Y2gpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0
Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVJREJLZXlGcm9tVmFsdWUpOiBGaXggdGhlIGNyZWF0aW9u
IG9mIElEQktleXMuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPcHRpb25zT2JqZWN0RnJvbVZh
bHVlKTogQWRkIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIHRoZSBoYW5kbGlu
ZyBvZiBkYXRhYmFzZSBvcHRpb25zIChJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMpLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJREJBbnlDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IEFkZCB0aGUgbWlzc2luZyBJREJBbnkn
cyB0eXBlcy4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0lEQktleUN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp0b0pTKTogQWRkIHRoZSBtaXNzaW5nIElEQktleSdzIHR5cGVzLgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTSURCVmVyc2lvbkNoYW5nZVJlcXVlc3RDdXN0b20uY3BwOiBB
ZGRlZC4KKyAgICAgICAgSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QgaGFzIHRoZSBhdHRyaWJ1dGUg
RXZlbnRUYXJnZXQgc28gaXQgcmVxdWlyZXMKKyAgICAgICAgdGhlIHZpc2l0Q2hpbGRyZW4oKSBm
dW5jdGlvbi4gQW4gZW1wdHkgaW1wbGVtZW50YXRpb24gd2FzIGFkZGVkLgorICAgICAgICAqIGJp
bmRpbmdzL2pzL09wdGlvbnNPYmplY3QuaDogQWRkIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChPcHRpb25zT2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok9wdGlvbnNPYmplY3Q6Ok9wdGlvbnNPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6
T3B0aW9uc09iamVjdDo6aXNPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uc09iamVj
dDo6aXNVbmRlZmluZWRPck51bGwpOgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uc09iamVjdDo6
Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9wdGlvbnNPYmplY3Q6OmdldFdpdGhVbmRlZmluZWRP
ck51bGxDaGVjayk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcDogQWRkIHRoZSBtaXNzaW5nIGZ1bmN0aW9ucyBuZWVkZWQgYnkgSW5kZXhlZERCLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnRvV2ly
ZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0
ZUZyb21XaXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVt
YmVyVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNl
cmlhbGl6ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6
CisgICAgICAgIChTZXJpYWxpemVkU2NyaXB0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBNb2RpZnkgdGhlIGNvZGUgZ2VuZXJhdG9yIHRvOgor
ICAgICAgICAtU3VwcG9ydCB0aGUgSURCS2V5IHR5cGUgY29ycmVjdGx5LgorICAgICAgICAtU3Vw
cG9ydCB0aGUgT3B0aW9uc09iamVjdCB0eXBlLgorICAgICAgICAtR2VuZXJhdGUgdmFsaWQgZnVu
Y3Rpb24gY2FsbCBmb3Igc3RhdGljIGZ1bmN0aW9ucy4KKyAgICAgICAgKEdlbmVyYXRlSW1wbGVt
ZW50YXRpb25GdW5jdGlvbkNhbGwpOgorICAgICAgICAoSlNWYWx1ZVRvTmF0aXZlKToKKyAgICAg
ICAgKE5hdGl2ZVRvSlNWYWx1ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4
ZWREQkFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTAzLTEyICBEYW5hIEph
bnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVXNlIHBy
b2plY3RRdWFkIHRvIGFwcGx5IGludmVyc2UgbWFwUmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggMjQ2MDY4MzNhNTc2ZDhkN2ZiNTgxYzFiMzY1YWY2ZDYwOGQyMWM2NS4uOTZi
ZTNlOGVjYTE0ZDg4YTU2ZTlkNWQ1NjNmYWNkNTYzNjUxMTVmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCkBAIC03Niw2ICs3Niw4IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmlkbCBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFzZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dTUUxEYXRh
YmFzZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5p
ZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5oCmluZGV4IDdhNWNlMWRhODNjOGI0NjFjZjNhZjg5YzExMzIx
NTM0MTIwYjE2YzkuLjEwODZlYjE2ZWI4N2QxOWYwMjhlM2Y0YzhjNDdiOTA1ZDg2NzhmMDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUJhY2tlbmRJbXBsLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIklEQkNhbGxi
YWNrcy5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCisjaW5jbHVkZSA8c3RkaW50Lmg+CiAj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvTGlzdEhhc2hTZXQuaD4KQEAgLTkyLDcgKzkzLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgdm9pZCByZXNldFZlcnNpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4sIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CiAKICAgICBS
ZWZQdHI8SURCQmFja2luZ1N0b3JlPiBtX2JhY2tpbmdTdG9yZTsKLSAgICBpbnQ2NCBtX2lkOwor
ICAgIGludDY0X3QgbV9pZDsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIFN0cmluZyBtX3ZlcnNp
b247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IDM5YzQ0MDkwOWIzZDdkZjNhZDFm
ODk2M2NmOTYxYTU2NDAzY2U1YWMuLjE5NDEyZmNiZTUwYWI0NGJmNTNkYzAxZTAzZDg4NTNlMjhm
N2M1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lk
IElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYg
dmVyc2lvbikKIAogdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6OnVucmVnaXN0ZXJEYXRh
YmFzZShJREJEYXRhYmFzZSogZGF0YWJhc2UpCiB7Ci0gICAgQVNTRVJUKGRhdGFiYXNlID09IG1f
ZGF0YWJhc2UpOworICAgIEFTU0VSVF9VTlVTRUQoZGF0YWJhc2UsIGRhdGFiYXNlID09IG1fZGF0
YWJhc2UpOwogICAgIG1fZGF0YWJhc2UgPSAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcAppbmRl
eCBkZDI0MmVhYjUyZGEwNmE0NDg4MTZiMjQyNTQyYzQ0NjIxNWZlZTg0Li5mNWI5Yzg3NzQwNjc0
M2YwZTVhNjA5YTRjY2U5ZDVlNGRhMjlhMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJJREJGYWN0b3J5QmFja2VuZEltcGwuaCIKIAogI2luY2x1
ZGUgIkRPTVN0cmluZ0xpc3QuaCIKKyNpbmNsdWRlICJJREJCYWNraW5nU3RvcmUuaCIKICNpbmNs
dWRlICJJREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFeGNl
cHRpb24uaCIKICNpbmNsdWRlICJJREJMZXZlbERCQmFja2luZ1N0b3JlLmgiCkBAIC0xNDQsNiAr
MTQ1LDcgQEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU+IElEQkZhY3RvcnlCYWNrZW5kSW1w
bDo6b3BlbkJhY2tpbmdTdG9yZShQYXNzUmVmUHRyPFMKICNpZiBVU0UoTEVWRUxEQikKICAgICAg
ICAgYmFja2luZ1N0b3JlID0gSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6b3BlbihzZWN1cml0eU9y
aWdpbi5nZXQoKSwgZGF0YURpcmVjdG9yeSwgZmlsZUlkZW50aWZpZXIsIHRoaXMpOwogI2Vsc2UK
KyAgICAgICAgVU5VU0VEX1BBUkFNKGRhdGFEaXJlY3RvcnkpOwogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAKaW5kZXggY2VjNDNiOThl
YmRjMDNiODMxMmYyNDcwNDNiYjc2NWNlNzcxMzFmZi4uNDNhZTljMmIxNmE3YjhmMDcyZTFjZjlk
MzQwOTJiMTdlZjM0ZTA5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2
b2lkIElEQkluZGV4QmFja2VuZEltcGw6Om9wZW5LZXlDdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlS
YW5nZT4gcHJwS2V5UmFuZ2UsIHVucwogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpUUkFOU0FDVElPTl9JTkFDVElWRV9FUlI7CiB9CiAKLXZvaWQgSURCSW5kZXhCYWNrZW5kSW1w
bDo6Y291bnRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJJ
bmRleEJhY2tlbmRJbXBsPiBpbmRleCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbikKK3ZvaWQgSURCSW5kZXhCYWNrZW5kSW1w
bDo6Y291bnRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJJ
bmRleEJhY2tlbmRJbXBsPiBpbmRleCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPikKIHsKICAgICBJREJfVFJBQ0UoIklEQkluZGV4QmFja2VuZElt
cGw6OmNvdW50SW50ZXJuYWwiKTsKICAgICB1aW50MzJfdCBjb3VudCA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoQmFja2VuZEltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aEJhY2tlbmRJ
bXBsLmNwcAppbmRleCA0ZjBmY2VlNjQ3ZDcyMGVhODllNDNlM2E1ZjFmZTFlYWIxYWMxNmM3Li45
NGM3ZjI3OTM1Y2ZhMzlhZDM4ODAwMTJiZTYwOWI2YjEyOTViZmJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoQmFja2VuZEltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGhCYWNrZW5kSW1w
bC5jcHAKQEAgLTI2LDIxICsyNiwyOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IklEQktleVBhdGhCYWNrZW5kSW1wbC5oIgogCisjaW5jbHVkZSAiSURCS2V5LmgiCisjaW5jbHVk
ZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisKKwogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQog
I2Vycm9yICJDaHJvbWl1bSBzaG91bGQgbm90IGNvbXBpbGUgdGhpcyBmaWxlIGFuZCBpbnN0ZWFk
IGRlZmluZSBpdHMgb3duIHZlcnNpb24gb2YgdGhpcyBmYWN0b3J5IHRoYXQgbmF2aWdhdGVzIHRo
ZSBtdWx0aS1wcm9jZXNzIGJvdW5kcnkuIgogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKIAotdm9pZCBJREJLZXlQYXRoQmFja2VuZEltcGw6OmNyZWF0ZUlEQktleXNGcm9t
U2VyaWFsaXplZFZhbHVlc0FuZEtleVBhdGgoY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+JiwgMD4gdmFsdWVzLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIFZlY3RvcjxS
ZWZQdHI8SURCS2V5PiwgMD4mIGtleXMpCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSURC
S2V5UGF0aEJhY2tlbmRJbXBsOjpjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRL
ZXlQYXRoKGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgMD4mLCBj
b25zdCBTdHJpbmcmLCBWZWN0b3I8UmVmUHRyPElEQktleT4sIDA+JikKIHsKICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRoaXMgbWV0aG9kIG9uY2UgSlNDIHN1cHBvcnRzIFdpcmVGb3JtYXQgZm9y
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS4KIH0KIAotUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IElEQktleVBhdGhCYWNrZW5kSW1wbDo6aW5qZWN0SURCS2V5SW50b1NlcmlhbGl6ZWRW
YWx1ZShQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gdmFsdWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKK1Bhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBJREJLZXlQYXRoQmFja2VuZEltcGw6OmluamVjdElEQktleUludG9TZXJp
YWxpemVkVmFsdWUoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4sIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlz
IG1ldGhvZCBvbmNlIEpTQyBzdXBwb3J0cyBXaXJlRm9ybWF0IGZvciBTZXJpYWxpemVkU2NyaXB0
VmFsdWUuCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPigpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVj
dFN0b3JlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXggNTQ4ZjFhMjkzYzgwN2Q0MDIwYzIy
MDY2Y2FhMmZjMjlmZGQyOWU4OS4uMmUyZjBmYTk2ZGU4OTg0ZDM3ZmE5N2U0MjE0NGQ2Yjc0ZGIz
YThlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCB2
b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNvdW50KFBhc3NSZWZQdHI8SURCS2V5UmFu
Z2U+IHJhbmdlLCBQYXNzUmVmUHRyPAogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpUUkFOU0FDVElPTl9JTkFDVElWRV9FUlI7CiB9CiAKLXZvaWQgSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbDo6Y291bnRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxJREJL
ZXlSYW5nZT4gcmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbikKK3ZvaWQg
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y291bnRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9y
ZSwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPikK
IHsKICAgICBJREJfVFJBQ0UoIklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNvdW50SW50ZXJu
YWwiKTsKICAgICB1aW50MzJfdCBjb3VudCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0
b3IuY3BwCmluZGV4IGYyZGUzZTdhOTIxNjAzNDJkMzE5MGMzZjNhNzQwNjE1YWZkOWQ5ZmUuLjJj
NWFjNWEyYjNhZGE5MTM4ZDJmYjQ1YjVlMzBjZWZjNTUwODFmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdUcmFu
c2FjdGlvbk1vbml0b3IuY3BwCkBAIC0zNCw3ICszNCw3IEBAIHVzaW5nIFdURjo6VGhyZWFkU3Bl
Y2lmaWM7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVGhyZWFkU3BlY2lmaWM8VmVjdG9yPElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSo+ID4mIHRyYW5zYWN0aW9ucygpCitzdGF0aWMg
VGhyZWFkU3BlY2lmaWM8VmVjdG9yPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSo+ID4m
IHRyYW5zYWN0aW9ucygpCiB7CiAgICAgLy8gRklYTUU6IE1vdmUgdGhlIFZlY3RvciB0byBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0IHRvIGF2b2lkIGRlYWxpbmcgd2l0aAogICAgIC8vIHRocmVhZC1s
b2NhbCBzdG9yYWdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJS
ZXF1ZXN0LmNwcAppbmRleCA5MGMxODhjYmZjMGE0NTFmYjNiMWU5ZmRkNzhiOGVjNTg1Nzk5MjJh
Li41ZjIxODVhMzEyZGE0M2I1NWNhNTg5NWYzMWIxMGMyNTljZjljMGI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtMTI5LDcgKzEy
OSw3IEBAIGJvb2wgSURCUmVxdWVzdDo6cmVzZXRSZWFkeVN0YXRlKElEQlRyYW5zYWN0aW9uKiB0
cmFuc2FjdGlvbikKIHsKICAgICBBU1NFUlQoIW1fcmVxdWVzdEZpbmlzaGVkKTsKICAgICBBU1NF
UlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBBU1NFUlQodHJhbnNhY3Rpb24gPT0g
bV90cmFuc2FjdGlvbik7CisgICAgQVNTRVJUX1VOVVNFRCh0cmFuc2FjdGlvbiwgdHJhbnNhY3Rp
b24gPT0gbV90cmFuc2FjdGlvbik7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSAhPSBET05FKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlJlcXVlc3QuaAppbmRleCBhNmI1NzNkODdkZDcxODczNzVjYjUzMWNjNTIxMzQ5NGYyY2Q1
ZjkxLi4xYTY5ZmE3Yjc0NTY4YmQ5YmY2ZmQyMWIwNjI0NzZmOGY0NTUyNjJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCkBAIC04NSw3ICs4NSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3NXaXRoQ29udGludWF0aW9uKCk7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQ
cmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYga2V5cywgY29uc3QgVmVjdG9y
PFJlZlB0cjxJREJLZXk+ID4mIHByaW1hcnlLZXlzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9IC8v
IE5vdCBpbXBsZW1lbnRlZC4gQ2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCB0aGUgcmVuZGVyZXIg
c2lkZS4KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3Rv
cjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25z
dCBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYpIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0gLy8gTm90IGltcGxlbWVudGVkLiBDYWxsYmFjayBzaG91bGQgbm90IHJlYWNo
IHRoZSByZW5kZXJlciBzaWRlLgogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsKIAogICAg
IC8vIEFjdGl2ZURPTU9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlOTA1OWViMzczZTkxYjk4NmViYzc5MTY0NTI0ZWYy
NjM0OWYzODYuLjc5Nzc4NTM5ZjljMzEyNTM2OTg3ZmM0MmVkYzNkZGMxNTAyNWRlZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTcwMCw5ICs3MDAsMTQgQEAKIAkJMjRGNTRFQUQxMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0
aW9uQ2FjaGVIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyNEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkyNTQyRjREQTExNjZDMjVB
MDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjU0MkY0RDgxMTY2QzI1QTAwRTg5QTg2IC8qIFVz
ZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCAqLzsgfTsKIAkJMjU0MkY0REIxMTY2QzI1QTAwRTg5QTg2
IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyNTQyRjREOTExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJ
bmRpY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkyNjI0N0RBRTE1MEVGMEM0MDAyN0I1M0EgLyogSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVz
dEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyNjI0N0RBRDE1MEVGMEM0MDAyN0I1M0EgLyogSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdEN1
c3RvbS5jcHAgKi87IH07CiAJCTI2NTU0MTM5MTQ4OTgxMUMwMDBERkM1RCAvKiBLZXlFdmVudENv
ZGVzSU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
NjU1NDEzNzE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5oICovOyB9OwogCQky
NjU1NDEzQTE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjU1NDEzODE0ODk4MTFDMDAwREZDNUQg
LyogS2V5RXZlbnRJT1MubW0gKi87IH07CiAJCTI2NTU0MTUyMTQ4OUIyMzMwMDBERkM1RCAvKiBD
dXJzb3JJT1MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5jcHAgKi87IH07CisJCTI2
OTIzOTk1MTUwNUUxQUEwMDlFNTdGQyAvKiBKU0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjkyMzk5MTE1MDVF
MUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwICovOyB9OworCQkyNjky
Mzk5NjE1MDVFMUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2OTIzOTkyMTUwNUUxQUEw
MDlFNTdGQyAvKiBKU0lEQlZlcnNpb25DaGFuZ2VFdmVudC5oICovOyB9OworCQkyNjkyMzk5NzE1
MDVFMUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjkyMzk5MzE1MDVFMUFBMDA5
RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5jcHAgKi87IH07CisJCTI2OTIzOTk4
MTUwNUUxQUEwMDlFNTdGQyAvKiBKU0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjkyMzk5NDE1MDVFMUFBMDA5
RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5oICovOyB9OwogCQkyNkE1MDM0RTE0
RjA5ODM2MDBBQTczMEQgLyogS1VSTFdURlVSTEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2QTUwMzREMTRGMDk4MzYwMEFBNzMwRCAvKiBLVVJM
V1RGVVJMSW1wbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTI2QTUwMzVBMTRGMEEyQkMwMEFBNzMwRCAvKiBLVVJMV1RGVVJMLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2QTUwMzU5MTRGMEEyQkMw
MEFBNzMwRCAvKiBLVVJMV1RGVVJMLmNwcCAqLzsgfTsKIAkJMjZDMTdBM0UxNDkxRDJENDAwRDEy
QkEyIC8qIEZpbGVTeXN0ZW1JT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI2QzE3QTNDMTQ5MUQyRDQwMEQxMkJBMiAvKiBGaWxlU3lzdGVtSU9TLmgg
Ki87IH07CkBAIC03NTIxLDkgKzc1MjYsMTQgQEAKIAkJMjRGNTRFQUIxMDFGRTkxNDAwMEFFNzQx
IC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFwcGxpY2F0aW9uQ2FjaGVIb3N0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTI1NDJGNEQ4MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyR2VzdHVyZUluZGljYXRvci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI1NDJGNEQ5MTE2NkMyNUEwMEU4OUE4
NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBVc2VyR2VzdHVyZUluZGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyNjI0N0RBRDE1MEVGMEM0MDAyN0I1M0EgLyogSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdEN1
c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQlZlcnNp
b25DaGFuZ2VSZXF1ZXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MjY1NTQxMzcxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gS2V5RXZlbnRDb2Rlc0lPUy5oOyBwYXRoID0gaW9zL0tl
eUV2ZW50Q29kZXNJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY1NTQxMzgx
NDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gS2V5RXZlbnRJT1MubW07IHBhdGggPSBpb3MvS2V5RXZlbnRJT1Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2NTU0MTRCMTQ4OUFBMkIwMDBERkM1
RCAvKiBDdXJzb3JJT1MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
Q3Vyc29ySU9TLmNwcDsgcGF0aCA9IGlvcy9DdXJzb3JJT1MuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyNjkyMzk5MTE1MDVFMUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hh
bmdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJW
ZXJzaW9uQ2hhbmdlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNjky
Mzk5MjE1MDVFMUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjY5MjM5OTMxNTA1RTFBQTAwOUU1N0ZDIC8qIEpT
SURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTI2OTIzOTk0MTUwNUUxQUEwMDlFNTdGQyAvKiBKU0lEQlZlcnNpb25DaGFu
Z2VSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSURCVmVyc2lv
bkNoYW5nZVJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZBNTAzNEQx
NEYwOTgzNjAwQUE3MzBEIC8qIEtVUkxXVEZVUkxJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEtVUkxXVEZVUkxJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTI2QTUwMzU5MTRGMEEyQkMwMEFBNzMwRCAvKiBLVVJMV1RGVVJMLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtVUkxXVEZVUkwuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyNkMxN0EzQzE0OTFEMkQ0MDBEMTJCQTIgLyogRmlsZVN5c3RlbUlP
Uy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGaWxlU3lzdGVtSU9TLmg7IHBh
dGggPSBpb3MvRmlsZVN5c3RlbUlPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTgzNjcsNiArMTgzNzcsMTAgQEAKIAkJCQlDNTg1QTY3OTExRDRGQjA3MDA0QzNFNEIgLyogSlNJ
REJSZXF1ZXN0LmggKi8sCiAJCQkJQjY1NjYyNkYxMjBCMTIyNzAwNkVBODVDIC8qIEpTSURCVHJh
bnNhY3Rpb24uY3BwICovLAogCQkJCUI2NTY2MjZFMTIwQjEyMjcwMDZFQTg1QyAvKiBKU0lEQlRy
YW5zYWN0aW9uLmggKi8sCisJCQkJMjY5MjM5OTExNTA1RTFBQTAwOUU1N0ZDIC8qIEpTSURCVmVy
c2lvbkNoYW5nZUV2ZW50LmNwcCAqLywKKwkJCQkyNjkyMzk5MjE1MDVFMUFBMDA5RTU3RkMgLyog
SlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCAqLywKKwkJCQkyNjkyMzk5MzE1MDVFMUFBMDA5RTU3
RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5jcHAgKi8sCisJCQkJMjY5MjM5OTQxNTA1
RTFBQTAwOUU1N0ZDIC8qIEpTSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuaCAqLywKIAkJCQk1MTRD
NzYzNTBDRTkyMjVFMDA3RUYzQ0QgLyogSlNTUUxFcnJvci5jcHAgKi8sCiAJCQkJQkM4MjQzMjUw
RDBDRThBMjAwNDYwQzhGIC8qIEpTU1FMRXJyb3IuaCAqLywKIAkJCQlCNTI1QTk2NDExQ0EyMzQw
MDAzQTIzQTggLyogSlNTUUxFeGNlcHRpb24uY3BwICovLApAQCAtMTk2NTAsNiArMTk2NjQsNyBA
QAogCQkJCUUxQUQxMzlEMTI5NUQ5NjEwMEFDQTk4OSAvKiBKU0hUTUxTdHlsZUVsZW1lbnRDdXN0
b20uY3BwICovLAogCQkJCUM1ODVBNjVDMTFENEZBQjIwMDRDM0U0QiAvKiBKU0lEQkFueUN1c3Rv
bS5jcHAgKi8sCiAJCQkJQzU4NUE2NUQxMUQ0RkFCMjAwNEMzRTRCIC8qIEpTSURCS2V5Q3VzdG9t
LmNwcCAqLywKKwkJCQkyNjI0N0RBRDE1MEVGMEM0MDAyN0I1M0EgLyogSlNJREJWZXJzaW9uQ2hh
bmdlUmVxdWVzdEN1c3RvbS5jcHAgKi8sCiAJCQkJQTdEMDMxOEQwRTkzNTQwMzAwRTI0QUNEIC8q
IEpTSW1hZ2VEYXRhQ3VzdG9tLmNwcCAqLywKIAkJCQk3QTBFNzZENDEwQkYwNTA3MDBBMDI3NkUg
LyogSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwICovLAogCQkJCUYzMTYzOTZEMTMyOTQ4
NzYwMEE2NDlDQiAvKiBKU0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgKi8sCkBAIC0yMzEzMyw2
ICsyMzE0OCw4IEBACiAJCQkJQzU4NUE2OEYxMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURCT2JqZWN0
U3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1ODVBNjkxMTFENEZCMDgwMDRDM0U0QiAvKiBK
U0lEQlJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUI2NTY2MjcwMTIwQjEyMjcwMDZFQTg1
QyAvKiBKU0lEQlRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkyNjkyMzk5NjE1MDVF
MUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTI2OTIzOTk4MTUwNUUxQUEwMDlFNTdGQyAvKiBKU0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzZDNDlGNDBEN0RCQTA1MDBGRkE1NTggLyogSlNJbWFn
ZUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzc5NzkyOTBENkI5RTY0MDAzODUx
QjkgLyogSlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBMEU3NkRCMTBCRjA1OTgw
MEEwMjc2RSAvKiBKU0luamVjdGVkU2NyaXB0SG9zdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjI2
NSw2ICsyNjI4Miw5IEBACiAJCQkJQzU4NUE2OEUxMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURCT2Jq
ZWN0U3RvcmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU4NUE2OTAxMUQ0RkIwODAwNEMzRTRC
IC8qIEpTSURCUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNjU2NjI3MTEyMEIxMjI3
MDA2RUE4NUMgLyogSlNJREJUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyNjky
Mzk5NTE1MDVFMUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMjY5MjM5OTcxNTA1RTFBQTAwOUU1N0ZDIC8qIEpTSURCVmVyc2lvbkNo
YW5nZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjYyNDdEQUUxNTBFRjBDNDAwMjdC
NTNBIC8qIEpTSURCVmVyc2lvbkNoYW5nZVJlcXVlc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM2QzQ5RjMwRDdEQkEwNTAwRkZBNTU4IC8qIEpTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkyODBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURh
dGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEMDMxOEUwRTkzNTQwMzAwRTI0QUNEIC8qIEpT
SW1hZ2VEYXRhQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAppbmRleCA2NzYyM2Y4NWNjZDUz
NTBiZmEyNDc0YjA2YzEwZGVjNzE0YTZhNGY4Li44ZDNkYWQ1MjE2N2VkNDNkMjAyMjc2MmIwNTg4
ZjUwODY4MzhmZTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJC
aW5kaW5nVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJC
aW5kaW5nVXRpbGl0aWVzLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiSURCQmluZGluZ1V0aWxpdGllcy5oIgorI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCiAKICNpbmNsdWRlICJJREJLZXkuaCIKIApAQCAtMzYsMTUgKzM3
LDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVJREJL
ZXlGcm9tVmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsK
ICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZSgp
OworICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVJbnZhbGlkKCk7CiAgICAgaWYgKHZhbHVl
LmlzSW50MzIoKSkKLSAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlKHZhbHVlLnRvSW50MzIo
ZXhlYykpOworICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVOdW1iZXIodmFsdWUudG9OdW1i
ZXIoZXhlYykpOwogICAgIGlmICh2YWx1ZS5pc1N0cmluZygpKQotICAgICAgICByZXR1cm4gSURC
S2V5OjpjcmVhdGUodXN0cmluZ1RvU3RyaW5nKHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKSkpOworICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVTdHJpbmcodXN0cmluZ1RvU3Ry
aW5nKHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSkpOwogICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgZGF0ZXMuCiAgICAgcmV0dXJuIDA7CiB9CiAKK09wdGlvbnNPYmplY3QgY3JlYXRl
T3B0aW9uc09iamVjdEZyb21WYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSkKK3sK
KyAgICAvLyBGSVhNRTogSW1wbGVtZW50IERhdGFiYXNlIE9wdGlvbnMuCisgICAgcmV0dXJuIE9w
dGlvbnNPYmplY3QoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9JREJCaW5kaW5nVXRpbGl0aWVzLmgKaW5kZXggN2U3MjE1MjY5Yzg1NzI4ZWUyNGY4Y2VmNGU1
YjRlN2FlOTQxYzFjZS4uZmE5MzM0NzVkZWRiNTk5MDlhNWQ5MDFkNzkxYzczZWRhZjU3NzViNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGll
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMu
aApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNp
bmNsdWRlICJPcHRpb25zT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIgCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtMzYsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBJREJLZXk7CiAKIFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVJREJLZXlGcm9t
VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOworT3B0aW9uc09iamVjdCBjcmVh
dGVPcHRpb25zT2JqZWN0RnJvbVZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsK
IAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAK
aW5kZXggNTA2ZjE1ZjJjZDVkMTBhZWY5NjMzMzE0NjJlMWY5ZDdjMzAwNDExZC4uZGVmYTY1NmU3
ZTJiOWYzNDQ4MjViZjAzMWMyYjg5MTMzODM4N2IyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNJREJBbnlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSURCQW55Q3VzdG9tLmNwcApAQCAtMzMsMTEgKzMzLDEzIEBACiAKICNpbmNs
dWRlICJJREJBbnkuaCIKICNpbmNsdWRlICJJREJDdXJzb3IuaCIKKyNpbmNsdWRlICJJREJDdXJz
b3JXaXRoVmFsdWUuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIklEQkZh
Y3RvcnkuaCIKICNpbmNsdWRlICJJREJJbmRleC5oIgogI2luY2x1ZGUgIklEQktleS5oIgogI2lu
Y2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCisjaW5jbHVkZSAiSlNET01TdHJpbmdMaXN0LmgiCiAj
aW5jbHVkZSAiSlNJREJDdXJzb3IuaCIKICNpbmNsdWRlICJKU0lEQkRhdGFiYXNlLmgiCiAjaW5j
bHVkZSAiSlNJREJGYWN0b3J5LmgiCkBAIC02MSw4ICs2MywxMiBAQCBKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJREJBbnkqIGlk
YkFueSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgY2FzZSBJREJBbnk6Ok51
bGxUeXBlOgogICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgY2FzZSBJREJBbnk6OkRPTVN0
cmluZ0xpc3RUeXBlOgorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlk
YkFueS0+ZG9tU3RyaW5nTGlzdCgpKTsKICAgICBjYXNlIElEQkFueTo6SURCQ3Vyc29yVHlwZToK
ICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlkYkN1cnNv
cigpKTsKKyAgICBjYXNlIElEQkFueTo6SURCQ3Vyc29yV2l0aFZhbHVlVHlwZToKKyAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlkYkN1cnNvcldpdGhWYWx1
ZSgpKTsKICAgICBjYXNlIElEQkFueTo6SURCRGF0YWJhc2VUeXBlOgogICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlkYkFueS0+aWRiRGF0YWJhc2UoKSk7CiAgICAgY2Fz
ZSBJREJBbnk6OklEQkZhY3RvcnlUeXBlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJREJLZXlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNJREJLZXlDdXN0b20uY3BwCmluZGV4IDYyZmE3Y2JlMThmYzk5ZjgxNzg5OTc5YjEwMTZiZjdl
NGUyNGVlNDYuLmIyYjc4ZWM1NzZjNzc2NzZiNmE5OGZiZWY5YTM4M2ZhYzBhYmYxZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCS2V5Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQktleUN1c3RvbS5jcHAKQEAgLTM3LDE4
ICszNywzNCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiwgSURCS2V5
KiBrZXkpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBJREJLZXkqIGtleSkKIHsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0
dXJuIGpzTnVsbCgpOwogCiAgICAgc3dpdGNoIChrZXktPnR5cGUoKSkgewotICAgIGNhc2UgSURC
S2V5OjpOdW1iZXJUeXBlOgotICAgICAgICByZXR1cm4ganNOdW1iZXIoa2V5LT5udW1iZXIoKSk7
CisgICAgY2FzZSBJREJLZXk6OkFycmF5VHlwZToKKyAgICAgICAgeworICAgICAgICAgICAgY29u
c3QgSURCS2V5OjpLZXlBcnJheSYgaW5BcnJheSA9IGtleS0+YXJyYXkoKTsKKyAgICAgICAgICAg
IHNpemVfdCBzaXplID0gaW5BcnJheS5zaXplKCk7CisgICAgICAgICAgICBKU0FycmF5KiBvdXRB
cnJheSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgZ2xvYmFsT2JqZWN0LCBzaXplKTsKKyAg
ICAgICAgICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGV4ZWMtPmdsb2JhbERhdGEoKTsK
KyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAg
ICAgICAgICAgSURCS2V5KiBhcnJheUtleSA9IGluQXJyYXkuYXQoaSkuZ2V0KCk7CisgICAgICAg
ICAgICAgICAgb3V0QXJyYXktPmluaXRpYWxpemVJbmRleChnbG9iYWxEYXRhLCBpLCB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgYXJyYXlLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlKG91dEFycmF5KTsKKyAgICAgICAgfQogICAgIGNhc2UgSURCS2V5OjpT
dHJpbmdUeXBlOgogICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywga2V5LT5zdHJpbmcoKSk7
Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBkYXRlcy4KLSAgICAvLyBGSVhNRTogSW1wbGVtZW50
IGFycmF5cy4KKyAgICBjYXNlIElEQktleTo6RGF0ZVR5cGU6CisgICAgICAgIHJldHVybiBqc0Rh
dGVPck51bGwoZXhlYywga2V5LT5kYXRlKCkpOworICAgIGNhc2UgSURCS2V5OjpOdW1iZXJUeXBl
OgorICAgICAgICByZXR1cm4ganNOdW1iZXIoa2V5LT5udW1iZXIoKSk7CisgICAgY2FzZSBJREJL
ZXk6Ok1pblR5cGU6CisgICAgY2FzZSBJREJLZXk6OkludmFsaWRUeXBlOgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCVmVyc2lvbkNoYW5nZVJlcXVlc3RDdXN0b20uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjMzYmRlMzg0MTg3NDdiNjBiZDVhYzBjNzJjM2YyODU2NDliNTU0NjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQlZlcnNpb25DaGFu
Z2VSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyLCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
CisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5oIgor
CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9u
cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNJREJWZXJzaW9uQ2hhbmdlUmVx
dWVzdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJikKK3sKKyAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
K30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9PcHRp
b25zT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9PcHRpb25zT2JqZWN0LmgK
aW5kZXggMzQ5MTBjMDMyZTE3OTIyNDkxODcxMzc2OWFhZGMyNjZlNzhlZGVhNi4uNDA3OGFlMTc0
MjE4ZTc3MWNiMDFmZDEyM2YzNGUyY2FhNjE1YmIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvT3B0aW9uc09iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL09wdGlvbnNPYmplY3QuaApAQCAtMjYsNiArMjYsNDYgQEAKICNpZm5kZWYgT3B0aW9u
c09iamVjdF9oCiAjZGVmaW5lIE9wdGlvbnNPYmplY3RfaAogCisjaW5jbHVkZSAiU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01T
dHJpbmdMaXN0OworY2xhc3MgRE9NV2luZG93OworY2xhc3MgSURCS2V5UmFuZ2U7CitjbGFzcyBT
Y3JpcHRWYWx1ZTsKK2NsYXNzIFN0b3JhZ2U7CitjbGFzcyBUcmFja0Jhc2U7CisKIC8vIEZJWE1F
OiBJbXBsZW1lbnQuCitjbGFzcyBPcHRpb25zT2JqZWN0IHsKK3B1YmxpYzoKKyAgICBPcHRpb25z
T2JqZWN0KCkgeyB9CisKKyAgICBib29sIGlzT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICBib29sIGlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KworICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIGJvb2wmKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQorICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIGludDMyX3QmKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIGRvdWJsZSYpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgU3RyaW5nJikgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBTY3JpcHRW
YWx1ZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5n
JiwgdW5zaWduZWQgc2hvcnQmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgZ2V0
KGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBi
b29sIGdldChjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCBsb25nIGxvbmcmKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIFJlZlB0cjxET01XaW5kb3c+
JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBS
ZWZQdHI8U3RvcmFnZT4mKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNv
bnN0IFN0cmluZyYsIE1lc3NhZ2VQb3J0QXJyYXkmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
I2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBSZWZQ
dHI8VHJhY2tCYXNlPiYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKKyAgICBib29s
IGdldChjb25zdCBTdHJpbmcmLCBIYXNoU2V0PEF0b21pY1N0cmluZz4mKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorCisgICAgYm9vbCBnZXRXaXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soY29uc3Qg
U3RyaW5nJiwgU3RyaW5nJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KK307CisKK30KIAogI2Vu
ZGlmIC8vIE9wdGlvbnNPYmplY3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAKaW5kZXggN2M1ODZhYTY3ZTkzZTFlNWIyZjRk
NDQxYTcxZjE3MDRiZWM3N2FjMS4uZTIzNTk0NTU4NjQ1ODY4YzlkMGFmYzgxNTdkOWI2NzQwZTU1
YmM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiSlNVaW50MzJBcnJh
eS5oIgogI2luY2x1ZGUgIkpTVWludDhBcnJheS5oIgogI2luY2x1ZGUgIkpTVWludDhDbGFtcGVk
QXJyYXkuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlNjcmlwdFZh
bHVlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8bGltaXRzPgpAQCAt
MTczMiw2ICsxNzMzLDM3IEBAIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJp
YWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHN0CiAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0VmFsdWUoYnVmZmVyKSk7CiB9CiAKKyNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKK1Bhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1
ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4oKTsKK30KKworU3RyaW5nIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
dG9XaXJlU3RyaW5nKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KK1Bhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxp
emVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21XaXJlKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+KCk7Cit9CisKK1Bhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVk
U2NyaXB0VmFsdWU6Om51bWJlclZhbHVlKGRvdWJsZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4oKTsKK30KKwor
SlNWYWx1ZSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmRlc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU0dsb2JhbE9iamVjdCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gSlNWYWx1ZSgpOworfQorI2VuZGlmCisKIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShKU0NvbnRleHRSZWYgb3JpZ2lu
Q29udGV4dCwgSlNWYWx1ZVJlZiBhcGlWYWx1ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZVBvcnRBcnJheSog
bWVzc2FnZVBvcnRzLCBBcnJheUJ1ZmZlckFycmF5KiBhcnJheUJ1ZmZlcnMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaAppbmRleCAzZjhkYTVlOGYzMGIxMzkxYzAxNzNhY2ZjY2Zh
MDExZDI0ZmI5NDM4Li44NThlOGM5YzI0MDM5YmI3Y2YxNmVhMTU3YzQzNWI0YTJlYTliMTNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuaApAQCAtNTgsNyArNTgsMTIgQEAgZW51bSBTZXJpYWxpemF0aW9uRXJyb3JNb2RlIHsgTm9u
VGhyb3dpbmcsIFRocm93aW5nIH07CiBjbGFzcyBTY3JpcHRWYWx1ZTsKIGNsYXNzIFNoYXJlZEJ1
ZmZlcjsKIAotY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWUgOgor
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHsKKyNlbHNlCisgICAgcHVibGljIFJlZkNvdW50
ZWQ8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB7CisjZW5kaWYKIHB1YmxpYzoKICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNWYWx1ZSwgTWVzc2FnZVBvcnRBcnJheSosIEFycmF5QnVmZmVyQXJyYXkqLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlcmlhbGl6
YXRpb25FcnJvck1vZGUgPSBUaHJvd2luZyk7CkBAIC04OCw2ICs5MywxNCBAQCBwdWJsaWM6CiAK
ICAgICBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEoKSB7IHJldHVybiBtX2RhdGE7IH0KIAor
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZUZyb21X
aXJlKGNvbnN0IFN0cmluZyYgZGF0YSk7CisgICAgU3RyaW5nIHRvV2lyZVN0cmluZygpIGNvbnN0
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbnVtYmVyVmFs
dWUoZG91YmxlIHZhbHVlKTsKKyAgICBKU0M6OkpTVmFsdWUgZGVzZXJpYWxpemUoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CisjZW5kaWYKKwogICAgIH5TZXJpYWxpemVk
U2NyaXB0VmFsdWUoKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggZjdiM2FjMTg0MTYzZmMyNjNhMWFi
OWI0NTU1NzJhOWNhZjk0Njk2OS4uMmZkYjVjMmZhNjQ1MGUxMDc2YzQwZTFkZDg1ZTE3YTljNjI4
MzZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KQEAgLTI3NjYsNyArMjc2Niw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uRnVuY3Rpb25DYWxsKCkKIAogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAu
ICJyZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpO1xuIik7CiAgICAgfSBlbHNl
IHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiIgLiAkaW5kZW50IC4gIkpTQzo6SlNW
YWx1ZSByZXN1bHQgPSAiIC4gTmF0aXZlVG9KU1ZhbHVlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLCAx
LCAkaW1wbENsYXNzTmFtZSwgJGZ1bmN0aW9uU3RyaW5nLCAiY2FzdGVkVGhpcyIpIC4gIjtcbiIp
OworICAgICAgICBteSAkdGhpc09iamVjdCA9ICRmdW5jdGlvbi0+aXNTdGF0aWMgPyAwIDogImNh
c3RlZFRoaXMiOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIiAuICRpbmRlbnQgLiAi
SlNDOjpKU1ZhbHVlIHJlc3VsdCA9ICIgLiBOYXRpdmVUb0pTVmFsdWUoJGZ1bmN0aW9uLT5zaWdu
YXR1cmUsIDEsICRpbXBsQ2xhc3NOYW1lLCAkZnVuY3Rpb25TdHJpbmcsICR0aGlzT2JqZWN0KSAu
ICI7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAic2V0RE9NRXhj
ZXB0aW9uKGV4ZWMsIGVjKTtcbiIpIGlmIEB7JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfTsK
IAogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMo
JGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9LCAi
U2NyaXB0U3RhdGUiKSkgewpAQCAtMjc5OSw3ICsyODAwLDggQEAgbXkgJW5hdGl2ZVR5cGUgPSAo
CiAgICAgIkRPTU9iamVjdCIgPT4gIlNjcmlwdFZhbHVlIiwKICAgICAiTm9kZUZpbHRlciIgPT4g
IlJlZlB0cjxOb2RlRmlsdGVyPiIsCiAgICAgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIgPT4gIlJl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IiwKLSAgICAiSURCS2V5IiA9PiAiUmVmUHRyPElE
QktleT4iLAorICAgICJJREJLZXkiID0+ICJQYXNzUmVmUHRyPElEQktleT4iLAorICAgICJPcHRp
b25zT2JqZWN0IiA9PiAiT3B0aW9uc09iamVjdCIsCiAgICAgImJvb2xlYW4iID0+ICJib29sIiwK
ICAgICAiZG91YmxlIiA9PiAiZG91YmxlIiwKICAgICAiZmxvYXQiID0+ICJmbG9hdCIsCkBAIC0y
OTM1LDYgKzI5MzcsMTIgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAgICAgICByZXR1cm4gImNy
ZWF0ZUlEQktleUZyb21WYWx1ZShleGVjLCAkdmFsdWUpIjsKICAgICB9CiAKKyAgICBpZiAoJHR5
cGUgZXEgIk9wdGlvbnNPYmplY3QiKSB7CisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJJREJC
aW5kaW5nVXRpbGl0aWVzLmgiLCAkY29uZGl0aW9uYWwpOworICAgICAgICBBZGRUb0ltcGxJbmNs
dWRlcygiT3B0aW9uc09iamVjdC5oIiwgJGNvbmRpdGlvbmFsKTsKKyAgICAgICAgcmV0dXJuICJj
cmVhdGVPcHRpb25zT2JqZWN0RnJvbVZhbHVlKGV4ZWMsICR2YWx1ZSkiOworICAgIH0KKwogICAg
IGlmICgkdHlwZSBlcSAiRE9NU3RyaW5nW10iKSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVz
KCJKU0RPTVN0cmluZ0xpc3QuaCIsICRjb25kaXRpb25hbCk7CiAgICAgICAgIHJldHVybiAidG9E
T01TdHJpbmdMaXN0KCR2YWx1ZSkiOwpAQCAtMjk5NSw3ICszMDAzLDEwIEBAIHN1YiBOYXRpdmVU
b0pTVmFsdWUKICAgICAgICAgcmV0dXJuICJqc1N0cmluZyhleGVjLCAkdmFsdWUpIjsKICAgICB9
CiAKLSAgICBteSAkZ2xvYmFsT2JqZWN0ID0gIiR0aGlzVmFsdWUtPmdsb2JhbE9iamVjdCgpIjsK
KyAgICBteSAkZ2xvYmFsT2JqZWN0OworICAgIGlmICgkdGhpc1ZhbHVlKSB7CisgICAgICAgICRn
bG9iYWxPYmplY3QgPSAiJHRoaXNWYWx1ZS0+Z2xvYmFsT2JqZWN0KCkiOworICAgIH0KIAogICAg
IGlmICgkdHlwZSBlcSAiQ1NTU3R5bGVEZWNsYXJhdGlvbiIpIHsKICAgICAgICAgQWRkVG9JbXBs
SW5jbHVkZXMoIlN0eWxlUHJvcGVydHlTZXQuaCIsICRjb25kaXRpb25hbCk7CkBAIC0zMDcyLDgg
KzMwODMsMTEgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICAgICAgICAgJHZhbHVlID0gIiR7
dGVhck9mZlR5cGV9OjpjcmVhdGUoJHZhbHVlKSI7CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICBy
ZXR1cm4gInRvSlMoZXhlYywgJGdsb2JhbE9iamVjdCwgV1RGOjpnZXRQdHIoJHZhbHVlKSkiOwor
ICAgIGlmICgkZ2xvYmFsT2JqZWN0KSB7CisgICAgICAgIHJldHVybiAidG9KUyhleGVjLCAkZ2xv
YmFsT2JqZWN0LCBXVEY6OmdldFB0cigkdmFsdWUpKSI7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
cmV0dXJuICJ0b0pTKGV4ZWMsIHN0YXRpY19jYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgV1RGOjpnZXRQdHIoJHZhbHVlKSkiOworICAgIH0KIH0K
IAogc3ViIGNlaWxpbmdUb1Bvd2VyT2YyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcAppbmRleCAxY2FjMDEyZGExNmFmOTgzMDFh
YmIwMzQyODcwN2NiOGMzMDA5YzI0Li4yMjI0MGE3NjZiZGExZjY3ZmU5MmQwZDlhMGU3YWNlMTBl
ZmVlMTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJ
bmRleGVkREJBZ2VudC5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFj
ZT4pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVh
dGlvbigpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3Qg
VmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mIGtleXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5
PiA+JiBwcmltYXJ5S2V5cywgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+ID4mIHZhbHVlcykgeyB9CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRj
aChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SURC
S2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9ja2VkKCkgeyB9CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131505</attachid>
            <date>2012-03-12 21:01:53 -0700</date>
            <delta_ts>2012-03-12 22:39:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-80207-20120312210152.patch</filename>
            <type>text/plain</type>
            <size>37237</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmM2NjM5MTRiZWViNjM5
Yzc5ZWEyYWQwNWQ0Y2EzNTA1MjY1NDZiNS4uYjg4ODZkODRmODlmYzAwNDQyNDU5NTkxZDU3ODg4
YzU5YmQ2NDI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEyLTAzLTEyICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBJbmRleGVk
REIgYnVpbGQgd2l0aCBKU0MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTgwMjA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAg
ICAgICBUaGlzIGZpeGVzIHRoZSBidWlsZCBvZiBXZWJLaXQgd2hlbiBJbmRleGVkREIgaXMgZW5h
YmxlZC4gTW9zdCBmdW5jdGlvbnMgd2VyZSBhZGRlZAorICAgICAgICBlbXB0eSBpbXBsZW1lbnRh
dGlvbiwgaXQgY29tcGlsZXMgYnV0IEluZGV4ZWREQiBpcyBub3Qgd29ya2luZy4KKworICAgICAg
ICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkIG1pc3NpbmcgSURMIGZpbGVzLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaDogRml4IHdhcm5p
bmdzIGFuZCBidWlsZCBlcnJvcnMuCisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3Bw
OiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6dW5y
ZWdpc3RlckRhdGFiYXNlKTogZGl0dG8uCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeUJhY2tlbmRJbXBsLmNwcDogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJREJGYWN0
b3J5QmFja2VuZEltcGw6Om9wZW5CYWNraW5nU3RvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkluZGV4QmFja2VuZEltcGwuY3BwOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OklEQkluZGV4QmFja2VuZEltcGw6OmNvdW50SW50ZXJuYWwpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL0lEQktleVBhdGhCYWNrZW5kSW1wbC5jcHA6IEZpeCB0aGUgbWV0aG9kIHNpZ25h
dHVyZSBhbmQgYWRkCisgICAgICAgIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlQYXRoQmFja2VuZEltcGw6OmNyZWF0
ZUlEQktleXNGcm9tU2VyaWFsaXplZFZhbHVlc0FuZEtleVBhdGgpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5UGF0aEJhY2tlbmRJbXBsOjppbmplY3RJREJLZXlJbnRvU2VyaWFsaXplZFZhbHVl
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
LmNwcDogRml4IHdhcm5pbmdzLgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbDo6Y291bnRJbnRlcm5hbCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
UGVuZGluZ1RyYW5zYWN0aW9uTW9uaXRvci5jcHA6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
dHJhbnNhY3Rpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNw
cDogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpyZXNldFJlYWR5U3RhdGUp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuaDogZGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1Y2Nlc3NXaXRoUHJlZmV0Y2gpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0
Ojp2aXNpdENoaWxkcmVuKToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVJREJLZXlGcm9tVmFsdWUpOiBGaXggdGhlIGNyZWF0aW9u
IG9mIElEQktleXMuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVPcHRpb25zT2JqZWN0RnJvbVZh
bHVlKTogQWRkIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIHRoZSBoYW5kbGlu
ZyBvZiBkYXRhYmFzZSBvcHRpb25zIChJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMpLgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNJREJBbnlDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6IEFkZCB0aGUgbWlzc2luZyBJREJBbnkn
cyB0eXBlcy4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0lEQktleUN1c3RvbS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp0b0pTKTogQWRkIHRoZSBtaXNzaW5nIElEQktleSdzIHR5cGVzLgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTSURCVmVyc2lvbkNoYW5nZVJlcXVlc3RDdXN0b20uY3BwOiBB
ZGRlZC4KKyAgICAgICAgSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QgaGFzIHRoZSBhdHRyaWJ1dGUg
RXZlbnRUYXJnZXQgc28gaXQgcmVxdWlyZXMKKyAgICAgICAgdGhlIHZpc2l0Q2hpbGRyZW4oKSBm
dW5jdGlvbi4gQW4gZW1wdHkgaW1wbGVtZW50YXRpb24gd2FzIGFkZGVkLgorICAgICAgICAqIGJp
bmRpbmdzL2pzL09wdGlvbnNPYmplY3QuaDogQWRkIGFuIGVtcHR5IGltcGxlbWVudGF0aW9uLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChPcHRpb25zT2JqZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6Ok9wdGlvbnNPYmplY3Q6Ok9wdGlvbnNPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6
T3B0aW9uc09iamVjdDo6aXNPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uc09iamVj
dDo6aXNVbmRlZmluZWRPck51bGwpOgorICAgICAgICAoV2ViQ29yZTo6T3B0aW9uc09iamVjdDo6
Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6Ok9wdGlvbnNPYmplY3Q6OmdldFdpdGhVbmRlZmluZWRP
ck51bGxDaGVjayk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcDogQWRkIHRoZSBtaXNzaW5nIGZ1bmN0aW9ucyBuZWVkZWQgYnkgSW5kZXhlZERCLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OnRvV2ly
ZVN0cmluZyk6CisgICAgICAgIChXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0
ZUZyb21XaXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6bnVt
YmVyVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpkZXNl
cmlhbGl6ZSk6CisgICAgICAgICogYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg6
CisgICAgICAgIChTZXJpYWxpemVkU2NyaXB0VmFsdWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOiBNb2RpZnkgdGhlIGNvZGUgZ2VuZXJhdG9yIHRvOgor
ICAgICAgICAtU3VwcG9ydCB0aGUgSURCS2V5IHR5cGUgY29ycmVjdGx5LgorICAgICAgICAtU3Vw
cG9ydCB0aGUgT3B0aW9uc09iamVjdCB0eXBlLgorICAgICAgICAtR2VuZXJhdGUgdmFsaWQgZnVu
Y3Rpb24gY2FsbCBmb3Igc3RhdGljIGZ1bmN0aW9ucy4KKyAgICAgICAgKEdlbmVyYXRlSW1wbGVt
ZW50YXRpb25GdW5jdGlvbkNhbGwpOgorICAgICAgICAoSlNWYWx1ZVRvTmF0aXZlKToKKyAgICAg
ICAgKE5hdGl2ZVRvSlNWYWx1ZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckluZGV4
ZWREQkFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTAzLTEyICBEYW5hIEph
bnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gVXNlIHBy
b2plY3RRdWFkIHRvIGFwcGx5IGludmVyc2UgbWFwUmVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKaW5kZXggMjQ2MDY4MzNhNTc2ZDhkN2ZiNTgxYzFiMzY1YWY2ZDYwOGQyMWM2NS4uOTZi
ZTNlOGVjYTE0ZDg4YTU2ZTlkNWQ1NjNmYWNkNTYzNjUxMTVmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlCkBAIC03Niw2ICs3Niw4IEBAIEJJTkRJTkdfSURMUyA9IFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9pbmRleGVkZGIvSURCVmVyc2lvbkNoYW5nZUV2ZW50LmlkbCBcCisgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyQ29udGV4dEluZGV4ZWREYXRhYmFzZS5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dTUUxEYXRh
YmFzZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5p
ZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5oCmluZGV4IDdhNWNlMWRhODNjOGI0NjFjZjNhZjg5YzExMzIx
NTM0MTIwYjE2YzkuLjEwODZlYjE2ZWI4N2QxOWYwMjhlM2Y0YzhjNDdiOTA1ZDg2NzhmMDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUJhY2tlbmRJbXBsLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIklEQkNhbGxi
YWNrcy5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCisjaW5jbHVkZSA8c3RkaW50Lmg+CiAj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvTGlzdEhhc2hTZXQuaD4KQEAgLTkyLDcgKzkzLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgdm9pZCByZXNldFZlcnNpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VCYWNrZW5kSW1wbD4sIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7CiAKICAgICBS
ZWZQdHI8SURCQmFja2luZ1N0b3JlPiBtX2JhY2tpbmdTdG9yZTsKLSAgICBpbnQ2NCBtX2lkOwor
ICAgIGludDY0X3QgbV9pZDsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIFN0cmluZyBtX3ZlcnNp
b247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IDM5YzQ0MDkwOWIzZDdkZjNhZDFm
ODk2M2NmOTYxYTU2NDAzY2U1YWMuLjE5NDEyZmNiZTUwYWI0NGJmNTNkYzAxZTAzZDg4NTNlMjhm
N2M1ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcApAQCAtNTQsNyArNTQsNyBAQCB2b2lk
IElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6b25WZXJzaW9uQ2hhbmdlKGNvbnN0IFN0cmluZyYg
dmVyc2lvbikKIAogdm9pZCBJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw6OnVucmVnaXN0ZXJEYXRh
YmFzZShJREJEYXRhYmFzZSogZGF0YWJhc2UpCiB7Ci0gICAgQVNTRVJUKGRhdGFiYXNlID09IG1f
ZGF0YWJhc2UpOworICAgIEFTU0VSVF9VTlVTRUQoZGF0YWJhc2UsIGRhdGFiYXNlID09IG1fZGF0
YWJhc2UpOwogICAgIG1fZGF0YWJhc2UgPSAwOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbXBsLmNwcAppbmRl
eCBkZDI0MmVhYjUyZGEwNmE0NDg4MTZiMjQyNTQyYzQ0NjIxNWZlZTg0Li5mNWI5Yzg3NzQwNjc0
M2YwZTVhNjA5YTRjY2U5ZDVlNGRhMjlhMzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW1wbC5jcHAKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJJREJGYWN0b3J5QmFja2VuZEltcGwuaCIKIAogI2luY2x1
ZGUgIkRPTVN0cmluZ0xpc3QuaCIKKyNpbmNsdWRlICJJREJCYWNraW5nU3RvcmUuaCIKICNpbmNs
dWRlICJJREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VFeGNl
cHRpb24uaCIKICNpbmNsdWRlICJJREJMZXZlbERCQmFja2luZ1N0b3JlLmgiCkBAIC0xNDQsNiAr
MTQ1LDcgQEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmU+IElEQkZhY3RvcnlCYWNrZW5kSW1w
bDo6b3BlbkJhY2tpbmdTdG9yZShQYXNzUmVmUHRyPFMKICNpZiBVU0UoTEVWRUxEQikKICAgICAg
ICAgYmFja2luZ1N0b3JlID0gSURCTGV2ZWxEQkJhY2tpbmdTdG9yZTo6b3BlbihzZWN1cml0eU9y
aWdpbi5nZXQoKSwgZGF0YURpcmVjdG9yeSwgZmlsZUlkZW50aWZpZXIsIHRoaXMpOwogI2Vsc2UK
KyAgICAgICAgVU5VU0VEX1BBUkFNKGRhdGFEaXJlY3RvcnkpOwogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4QmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAKaW5kZXggY2VjNDNiOThl
YmRjMDNiODMxMmYyNDcwNDNiYjc2NWNlNzcxMzFmZi4uNDNhZTljMmIxNmE3YjhmMDcyZTFjZjlk
MzQwOTJiMTdlZjM0ZTA5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCSW5kZXhCYWNrZW5kSW1wbC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCB2
b2lkIElEQkluZGV4QmFja2VuZEltcGw6Om9wZW5LZXlDdXJzb3IoUGFzc1JlZlB0cjxJREJLZXlS
YW5nZT4gcHJwS2V5UmFuZ2UsIHVucwogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpUUkFOU0FDVElPTl9JTkFDVElWRV9FUlI7CiB9CiAKLXZvaWQgSURCSW5kZXhCYWNrZW5kSW1w
bDo6Y291bnRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJJ
bmRleEJhY2tlbmRJbXBsPiBpbmRleCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbikKK3ZvaWQgSURCSW5kZXhCYWNrZW5kSW1w
bDo6Y291bnRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJJ
bmRleEJhY2tlbmRJbXBsPiBpbmRleCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b25CYWNrZW5kSW50ZXJmYWNlPikKIHsKICAgICBJREJfVFJBQ0UoIklEQkluZGV4QmFja2VuZElt
cGw6OmNvdW50SW50ZXJuYWwiKTsKICAgICB1aW50MzJfdCBjb3VudCA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoQmFja2VuZEltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aEJhY2tlbmRJ
bXBsLmNwcAppbmRleCA0ZjBmY2VlNjQ3ZDcyMGVhODllNDNlM2E1ZjFmZTFlYWIxYWMxNmM3Li45
NGM3ZjI3OTM1Y2ZhMzlhZDM4ODAwMTJiZTYwOWI2YjEyOTViZmJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQYXRoQmFja2VuZEltcGwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGhCYWNrZW5kSW1w
bC5jcHAKQEAgLTI2LDIxICsyNiwyOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IklEQktleVBhdGhCYWNrZW5kSW1wbC5oIgogCisjaW5jbHVkZSAiSURCS2V5LmgiCisjaW5jbHVk
ZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisKKwogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQog
I2Vycm9yICJDaHJvbWl1bSBzaG91bGQgbm90IGNvbXBpbGUgdGhpcyBmaWxlIGFuZCBpbnN0ZWFk
IGRlZmluZSBpdHMgb3duIHZlcnNpb24gb2YgdGhpcyBmYWN0b3J5IHRoYXQgbmF2aWdhdGVzIHRo
ZSBtdWx0aS1wcm9jZXNzIGJvdW5kcnkuIgogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKIAotdm9pZCBJREJLZXlQYXRoQmFja2VuZEltcGw6OmNyZWF0ZUlEQktleXNGcm9t
U2VyaWFsaXplZFZhbHVlc0FuZEtleVBhdGgoY29uc3QgVmVjdG9yPFJlZlB0cjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+JiwgMD4gdmFsdWVzLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIFZlY3RvcjxS
ZWZQdHI8SURCS2V5PiwgMD4mIGtleXMpCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSURC
S2V5UGF0aEJhY2tlbmRJbXBsOjpjcmVhdGVJREJLZXlzRnJvbVNlcmlhbGl6ZWRWYWx1ZXNBbmRL
ZXlQYXRoKGNvbnN0IFZlY3RvcjxSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgMD4mLCBj
b25zdCBTdHJpbmcmLCBWZWN0b3I8UmVmUHRyPElEQktleT4sIDA+JikKIHsKICAgICAvLyBGSVhN
RTogSW1wbGVtZW50IHRoaXMgbWV0aG9kIG9uY2UgSlNDIHN1cHBvcnRzIFdpcmVGb3JtYXQgZm9y
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS4KIH0KIAotUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IElEQktleVBhdGhCYWNrZW5kSW1wbDo6aW5qZWN0SURCS2V5SW50b1NlcmlhbGl6ZWRW
YWx1ZShQYXNzUmVmUHRyPElEQktleT4ga2V5LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gdmFsdWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCkKK1Bhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBJREJLZXlQYXRoQmFja2VuZEltcGw6OmluamVjdElEQktleUludG9TZXJp
YWxpemVkVmFsdWUoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4sIGNvbnN0IFN0cmluZyYpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlz
IG1ldGhvZCBvbmNlIEpTQyBzdXBwb3J0cyBXaXJlRm9ybWF0IGZvciBTZXJpYWxpemVkU2NyaXB0
VmFsdWUuCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPigpOworfQorCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVj
dFN0b3JlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKaW5kZXggNTQ4ZjFhMjkzYzgwN2Q0MDIwYzIy
MDY2Y2FhMmZjMjlmZGQyOWU4OS4uMmUyZjBmYTk2ZGU4OTg0ZDM3ZmE5N2U0MjE0NGQ2Yjc0ZGIz
YThlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2Jq
ZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHAKQEAgLTU5Niw3ICs1OTYsNyBAQCB2
b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNvdW50KFBhc3NSZWZQdHI8SURCS2V5UmFu
Z2U+IHJhbmdlLCBQYXNzUmVmUHRyPAogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpUUkFOU0FDVElPTl9JTkFDVElWRV9FUlI7CiB9CiAKLXZvaWQgSURCT2JqZWN0U3RvcmVCYWNr
ZW5kSW1wbDo6Y291bnRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0
cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxJREJL
ZXlSYW5nZT4gcmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NS
ZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbikKK3ZvaWQg
SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6Y291bnRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9y
ZSwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gcmFuZ2UsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPikK
IHsKICAgICBJREJfVFJBQ0UoIklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OmNvdW50SW50ZXJu
YWwiKTsKICAgICB1aW50MzJfdCBjb3VudCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJQZW5kaW5nVHJhbnNhY3Rpb25Nb25pdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0
b3IuY3BwCmluZGV4IGYyZGUzZTdhOTIxNjAzNDJkMzE5MGMzZjNhNzQwNjE1YWZkOWQ5ZmUuLjJj
NWFjNWEyYjNhZGE5MTM4ZDJmYjQ1YjVlMzBjZWZjNTUwODFmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdUcmFu
c2FjdGlvbk1vbml0b3IuY3BwCkBAIC0zNCw3ICszNCw3IEBAIHVzaW5nIFdURjo6VGhyZWFkU3Bl
Y2lmaWM7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVGhyZWFkU3BlY2lmaWM8VmVjdG9yPElE
QlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSo+ID4mIHRyYW5zYWN0aW9ucygpCitzdGF0aWMg
VGhyZWFkU3BlY2lmaWM8VmVjdG9yPElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZSo+ID4m
IHRyYW5zYWN0aW9ucygpCiB7CiAgICAgLy8gRklYTUU6IE1vdmUgdGhlIFZlY3RvciB0byBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0IHRvIGF2b2lkIGRlYWxpbmcgd2l0aAogICAgIC8vIHRocmVhZC1s
b2NhbCBzdG9yYWdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJS
ZXF1ZXN0LmNwcAppbmRleCA5MGMxODhjYmZjMGE0NTFmYjNiMWU5ZmRkNzhiOGVjNTg1Nzk5MjJh
Li41ZjIxODVhMzEyZGE0M2I1NWNhNTg5NWYzMWIxMGMyNTljZjljMGI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcApAQCAtMTI5LDcgKzEy
OSw3IEBAIGJvb2wgSURCUmVxdWVzdDo6cmVzZXRSZWFkeVN0YXRlKElEQlRyYW5zYWN0aW9uKiB0
cmFuc2FjdGlvbikKIHsKICAgICBBU1NFUlQoIW1fcmVxdWVzdEZpbmlzaGVkKTsKICAgICBBU1NF
UlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBBU1NFUlQodHJhbnNhY3Rpb24gPT0g
bV90cmFuc2FjdGlvbik7CisgICAgQVNTRVJUX1VOVVNFRCh0cmFuc2FjdGlvbiwgdHJhbnNhY3Rp
b24gPT0gbV90cmFuc2FjdGlvbik7CiAgICAgaWYgKG1fcmVhZHlTdGF0ZSAhPSBET05FKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlJlcXVlc3QuaAppbmRleCBhNmI1NzNkODdkZDcxODczNzVjYjUzMWNjNTIxMzQ5NGYyY2Q1
ZjkxLi4xYTY5ZmE3Yjc0NTY4YmQ5YmY2ZmQyMWIwNjI0NzZmOGY0NTUyNjJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5oCkBAIC04NSw3ICs4NSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3NXaXRoQ29udGludWF0aW9uKCk7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQ
cmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktleT4gPiYga2V5cywgY29uc3QgVmVjdG9y
PFJlZlB0cjxJREJLZXk+ID4mIHByaW1hcnlLZXlzLCBjb25zdCBWZWN0b3I8UmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gPiYgdmFsdWVzKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9IC8v
IE5vdCBpbXBsZW1lbnRlZC4gQ2FsbGJhY2sgc2hvdWxkIG5vdCByZWFjaCB0aGUgcmVuZGVyZXIg
c2lkZS4KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzV2l0aFByZWZldGNoKGNvbnN0IFZlY3Rv
cjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mLCBjb25z
dCBWZWN0b3I8UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gPiYpIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0gLy8gTm90IGltcGxlbWVudGVkLiBDYWxsYmFjayBzaG91bGQgbm90IHJlYWNo
IHRoZSByZW5kZXJlciBzaWRlLgogICAgIHZpcnR1YWwgdm9pZCBvbkJsb2NrZWQoKTsKIAogICAg
IC8vIEFjdGl2ZURPTU9iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlOTA1OWViMzczZTkxYjk4NmViYzc5MTY0NTI0ZWYy
NjM0OWYzODYuLjc5Nzc4NTM5ZjljMzEyNTM2OTg3ZmM0MmVkYzNkZGMxNTAyNWRlZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTcwMCw5ICs3MDAsMTQgQEAKIAkJMjRGNTRFQUQxMDFGRTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0
aW9uQ2FjaGVIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyNEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQkyNTQyRjREQTExNjZDMjVB
MDBFODlBODYgLyogVXNlckdlc3R1cmVJbmRpY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjU0MkY0RDgxMTY2QzI1QTAwRTg5QTg2IC8qIFVz
ZXJHZXN0dXJlSW5kaWNhdG9yLmNwcCAqLzsgfTsKIAkJMjU0MkY0REIxMTY2QzI1QTAwRTg5QTg2
IC8qIFVzZXJHZXN0dXJlSW5kaWNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyNTQyRjREOTExNjZDMjVBMDBFODlBODYgLyogVXNlckdlc3R1cmVJ
bmRpY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQkyNjI0N0RBRTE1MEVGMEM0MDAyN0I1M0EgLyogSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVz
dEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyNjI0N0RBRDE1MEVGMEM0MDAyN0I1M0EgLyogSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdEN1
c3RvbS5jcHAgKi87IH07CiAJCTI2NTU0MTM5MTQ4OTgxMUMwMDBERkM1RCAvKiBLZXlFdmVudENv
ZGVzSU9TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
NjU1NDEzNzE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRDb2Rlc0lPUy5oICovOyB9OwogCQky
NjU1NDEzQTE0ODk4MTFDMDAwREZDNUQgLyogS2V5RXZlbnRJT1MubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjU1NDEzODE0ODk4MTFDMDAwREZDNUQg
LyogS2V5RXZlbnRJT1MubW0gKi87IH07CiAJCTI2NTU0MTUyMTQ4OUIyMzMwMDBERkM1RCAvKiBD
dXJzb3JJT1MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjY1NTQxNEIxNDg5QUEyQjAwMERGQzVEIC8qIEN1cnNvcklPUy5jcHAgKi87IH07CisJCTI2
OTIzOTk1MTUwNUUxQUEwMDlFNTdGQyAvKiBKU0lEQlZlcnNpb25DaGFuZ2VFdmVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjkyMzk5MTE1MDVF
MUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwICovOyB9OworCQkyNjky
Mzk5NjE1MDVFMUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2OTIzOTkyMTUwNUUxQUEw
MDlFNTdGQyAvKiBKU0lEQlZlcnNpb25DaGFuZ2VFdmVudC5oICovOyB9OworCQkyNjkyMzk5NzE1
MDVFMUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjkyMzk5MzE1MDVFMUFBMDA5
RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5jcHAgKi87IH07CisJCTI2OTIzOTk4
MTUwNUUxQUEwMDlFNTdGQyAvKiBKU0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNjkyMzk5NDE1MDVFMUFBMDA5
RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5oICovOyB9OwogCQkyNkE1MDM0RTE0
RjA5ODM2MDBBQTczMEQgLyogS1VSTFdURlVSTEltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2QTUwMzREMTRGMDk4MzYwMEFBNzMwRCAvKiBLVVJM
V1RGVVJMSW1wbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTI2QTUwMzVBMTRGMEEyQkMwMEFBNzMwRCAvKiBLVVJMV1RGVVJMLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI2QTUwMzU5MTRGMEEyQkMw
MEFBNzMwRCAvKiBLVVJMV1RGVVJMLmNwcCAqLzsgfTsKIAkJMjZDMTdBM0UxNDkxRDJENDAwRDEy
QkEyIC8qIEZpbGVTeXN0ZW1JT1MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDI2QzE3QTNDMTQ5MUQyRDQwMEQxMkJBMiAvKiBGaWxlU3lzdGVtSU9TLmgg
Ki87IH07CkBAIC03NTIxLDkgKzc1MjYsMTQgQEAKIAkJMjRGNTRFQUIxMDFGRTkxNDAwMEFFNzQx
IC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEFwcGxpY2F0aW9uQ2FjaGVIb3N0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTI1NDJGNEQ4MTE2NkMyNUEwMEU4OUE4NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyR2VzdHVyZUluZGljYXRvci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI1NDJGNEQ5MTE2NkMyNUEwMEU4OUE4
NiAvKiBVc2VyR2VzdHVyZUluZGljYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBVc2VyR2VzdHVyZUluZGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyNjI0N0RBRDE1MEVGMEM0MDAyN0I1M0EgLyogSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdEN1
c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQlZlcnNp
b25DaGFuZ2VSZXF1ZXN0Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MjY1NTQxMzcxNDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50Q29kZXNJT1MuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gS2V5RXZlbnRDb2Rlc0lPUy5oOyBwYXRoID0gaW9zL0tl
eUV2ZW50Q29kZXNJT1MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjY1NTQxMzgx
NDg5ODExQzAwMERGQzVEIC8qIEtleUV2ZW50SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gS2V5RXZlbnRJT1MubW07IHBhdGggPSBpb3MvS2V5RXZlbnRJT1Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI2NTU0MTRCMTQ4OUFBMkIwMDBERkM1
RCAvKiBDdXJzb3JJT1MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
Q3Vyc29ySU9TLmNwcDsgcGF0aCA9IGlvcy9DdXJzb3JJT1MuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyNjkyMzk5MTE1MDVFMUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hh
bmdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNJREJW
ZXJzaW9uQ2hhbmdlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyNjky
Mzk5MjE1MDVFMUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMjY5MjM5OTMxNTA1RTFBQTAwOUU1N0ZDIC8qIEpT
SURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTI2OTIzOTk0MTUwNUUxQUEwMDlFNTdGQyAvKiBKU0lEQlZlcnNpb25DaGFu
Z2VSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSURCVmVyc2lv
bkNoYW5nZVJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjZBNTAzNEQx
NEYwOTgzNjAwQUE3MzBEIC8qIEtVUkxXVEZVUkxJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEtVUkxXVEZVUkxJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTI2QTUwMzU5MTRGMEEyQkMwMEFBNzMwRCAvKiBLVVJMV1RGVVJMLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtVUkxXVEZVUkwuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyNkMxN0EzQzE0OTFEMkQ0MDBEMTJCQTIgLyogRmlsZVN5c3RlbUlP
Uy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGaWxlU3lzdGVtSU9TLmg7IHBh
dGggPSBpb3MvRmlsZVN5c3RlbUlPUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTgzNjcsNiArMTgzNzcsMTAgQEAKIAkJCQlDNTg1QTY3OTExRDRGQjA3MDA0QzNFNEIgLyogSlNJ
REJSZXF1ZXN0LmggKi8sCiAJCQkJQjY1NjYyNkYxMjBCMTIyNzAwNkVBODVDIC8qIEpTSURCVHJh
bnNhY3Rpb24uY3BwICovLAogCQkJCUI2NTY2MjZFMTIwQjEyMjcwMDZFQTg1QyAvKiBKU0lEQlRy
YW5zYWN0aW9uLmggKi8sCisJCQkJMjY5MjM5OTExNTA1RTFBQTAwOUU1N0ZDIC8qIEpTSURCVmVy
c2lvbkNoYW5nZUV2ZW50LmNwcCAqLywKKwkJCQkyNjkyMzk5MjE1MDVFMUFBMDA5RTU3RkMgLyog
SlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCAqLywKKwkJCQkyNjkyMzk5MzE1MDVFMUFBMDA5RTU3
RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5jcHAgKi8sCisJCQkJMjY5MjM5OTQxNTA1
RTFBQTAwOUU1N0ZDIC8qIEpTSURCVmVyc2lvbkNoYW5nZVJlcXVlc3QuaCAqLywKIAkJCQk1MTRD
NzYzNTBDRTkyMjVFMDA3RUYzQ0QgLyogSlNTUUxFcnJvci5jcHAgKi8sCiAJCQkJQkM4MjQzMjUw
RDBDRThBMjAwNDYwQzhGIC8qIEpTU1FMRXJyb3IuaCAqLywKIAkJCQlCNTI1QTk2NDExQ0EyMzQw
MDAzQTIzQTggLyogSlNTUUxFeGNlcHRpb24uY3BwICovLApAQCAtMTk2NTAsNiArMTk2NjQsNyBA
QAogCQkJCUUxQUQxMzlEMTI5NUQ5NjEwMEFDQTk4OSAvKiBKU0hUTUxTdHlsZUVsZW1lbnRDdXN0
b20uY3BwICovLAogCQkJCUM1ODVBNjVDMTFENEZBQjIwMDRDM0U0QiAvKiBKU0lEQkFueUN1c3Rv
bS5jcHAgKi8sCiAJCQkJQzU4NUE2NUQxMUQ0RkFCMjAwNEMzRTRCIC8qIEpTSURCS2V5Q3VzdG9t
LmNwcCAqLywKKwkJCQkyNjI0N0RBRDE1MEVGMEM0MDAyN0I1M0EgLyogSlNJREJWZXJzaW9uQ2hh
bmdlUmVxdWVzdEN1c3RvbS5jcHAgKi8sCiAJCQkJQTdEMDMxOEQwRTkzNTQwMzAwRTI0QUNEIC8q
IEpTSW1hZ2VEYXRhQ3VzdG9tLmNwcCAqLywKIAkJCQk3QTBFNzZENDEwQkYwNTA3MDBBMDI3NkUg
LyogSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwICovLAogCQkJCUYzMTYzOTZEMTMyOTQ4
NzYwMEE2NDlDQiAvKiBKU0luamVjdGVkU2NyaXB0TWFuYWdlci5jcHAgKi8sCkBAIC0yMzEzMyw2
ICsyMzE0OCw4IEBACiAJCQkJQzU4NUE2OEYxMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURCT2JqZWN0
U3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1ODVBNjkxMTFENEZCMDgwMDRDM0U0QiAvKiBK
U0lEQlJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUI2NTY2MjcwMTIwQjEyMjcwMDZFQTg1
QyAvKiBKU0lEQlRyYW5zYWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQkyNjkyMzk5NjE1MDVF
MUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTI2OTIzOTk4MTUwNUUxQUEwMDlFNTdGQyAvKiBKU0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzZDNDlGNDBEN0RCQTA1MDBGRkE1NTggLyogSlNJbWFn
ZUNvbnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzc5NzkyOTBENkI5RTY0MDAzODUx
QjkgLyogSlNJbWFnZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBMEU3NkRCMTBCRjA1OTgw
MEEwMjc2RSAvKiBKU0luamVjdGVkU2NyaXB0SG9zdC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjI2
NSw2ICsyNjI4Miw5IEBACiAJCQkJQzU4NUE2OEUxMUQ0RkIwODAwNEMzRTRCIC8qIEpTSURCT2Jq
ZWN0U3RvcmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU4NUE2OTAxMUQ0RkIwODAwNEMzRTRC
IC8qIEpTSURCUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNjU2NjI3MTEyMEIxMjI3
MDA2RUE4NUMgLyogSlNJREJUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyNjky
Mzk5NTE1MDVFMUFBMDA5RTU3RkMgLyogSlNJREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJMjY5MjM5OTcxNTA1RTFBQTAwOUU1N0ZDIC8qIEpTSURCVmVyc2lvbkNo
YW5nZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMjYyNDdEQUUxNTBFRjBDNDAwMjdC
NTNBIC8qIEpTSURCVmVyc2lvbkNoYW5nZVJlcXVlc3RDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM2QzQ5RjMwRDdEQkEwNTAwRkZBNTU4IC8qIEpTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBNzc5NzkyODBENkI5RTY0MDAzODUxQjkgLyogSlNJbWFnZURh
dGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdEMDMxOEUwRTkzNTQwMzAwRTI0QUNEIC8qIEpT
SW1hZ2VEYXRhQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAppbmRleCA2NzYyM2Y4NWNjZDUz
NTBiZmEyNDc0YjA2YzEwZGVjNzE0YTZhNGY4Li44ZDNkYWQ1MjE2N2VkNDNkMjAyMjc2MmIwNTg4
ZjUwODY4MzhmZTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJC
aW5kaW5nVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJC
aW5kaW5nVXRpbGl0aWVzLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiSURCQmluZGluZ1V0aWxpdGllcy5oIgorI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCiAKICNpbmNsdWRlICJJREJLZXkuaCIKIApAQCAtMzYsMTUgKzM3
LDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVJREJL
ZXlGcm9tVmFsdWUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsK
ICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZSgp
OworICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVJbnZhbGlkKCk7CiAgICAgaWYgKHZhbHVl
LmlzSW50MzIoKSkKLSAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlKHZhbHVlLnRvSW50MzIo
ZXhlYykpOworICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVOdW1iZXIodmFsdWUudG9OdW1i
ZXIoZXhlYykpOwogICAgIGlmICh2YWx1ZS5pc1N0cmluZygpKQotICAgICAgICByZXR1cm4gSURC
S2V5OjpjcmVhdGUodXN0cmluZ1RvU3RyaW5nKHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKSkpOworICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVTdHJpbmcodXN0cmluZ1RvU3Ry
aW5nKHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSkpOwogICAgIC8vIEZJWE1FOiBJ
bXBsZW1lbnQgZGF0ZXMuCiAgICAgcmV0dXJuIDA7CiB9CiAKK09wdGlvbnNPYmplY3QgY3JlYXRl
T3B0aW9uc09iamVjdEZyb21WYWx1ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSkKK3sK
KyAgICAvLyBGSVhNRTogSW1wbGVtZW50IERhdGFiYXNlIE9wdGlvbnMuCisgICAgcmV0dXJuIE9w
dGlvbnNPYmplY3QoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9JREJCaW5kaW5nVXRpbGl0aWVzLmgKaW5kZXggN2U3MjE1MjY5Yzg1NzI4ZWUyNGY4Y2VmNGU1
YjRlN2FlOTQxYzFjZS4uZmE5MzM0NzVkZWRiNTk5MDlhNWQ5MDFkNzkxYzczZWRhZjU3NzViNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGll
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMu
aApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNp
bmNsdWRlICJPcHRpb25zT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIgCiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtMzYsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBJREJLZXk7CiAKIFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVJREJLZXlGcm9t
VmFsdWUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUpOworT3B0aW9uc09iamVjdCBjcmVh
dGVPcHRpb25zT2JqZWN0RnJvbVZhbHVlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsK
IAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1
c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAK
aW5kZXggNTA2ZjE1ZjJjZDVkMTBhZWY5NjMzMzE0NjJlMWY5ZDdjMzAwNDExZC4uZGVmYTY1NmU3
ZTJiOWYzNDQ4MjViZjAzMWMyYjg5MTMzODM4N2IyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNJREJBbnlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSURCQW55Q3VzdG9tLmNwcApAQCAtMzMsMTEgKzMzLDEzIEBACiAKICNpbmNs
dWRlICJJREJBbnkuaCIKICNpbmNsdWRlICJJREJDdXJzb3IuaCIKKyNpbmNsdWRlICJJREJDdXJz
b3JXaXRoVmFsdWUuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIklEQkZh
Y3RvcnkuaCIKICNpbmNsdWRlICJJREJJbmRleC5oIgogI2luY2x1ZGUgIklEQktleS5oIgogI2lu
Y2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCisjaW5jbHVkZSAiSlNET01TdHJpbmdMaXN0LmgiCiAj
aW5jbHVkZSAiSlNJREJDdXJzb3IuaCIKICNpbmNsdWRlICJKU0lEQkRhdGFiYXNlLmgiCiAjaW5j
bHVkZSAiSlNJREJGYWN0b3J5LmgiCkBAIC02MSw4ICs2MywxMiBAQCBKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJREJBbnkqIGlk
YkFueSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgY2FzZSBJREJBbnk6Ok51
bGxUeXBlOgogICAgICAgICByZXR1cm4ganNOdWxsKCk7CisgICAgY2FzZSBJREJBbnk6OkRPTVN0
cmluZ0xpc3RUeXBlOgorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlk
YkFueS0+ZG9tU3RyaW5nTGlzdCgpKTsKICAgICBjYXNlIElEQkFueTo6SURCQ3Vyc29yVHlwZToK
ICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlkYkN1cnNv
cigpKTsKKyAgICBjYXNlIElEQkFueTo6SURCQ3Vyc29yV2l0aFZhbHVlVHlwZToKKyAgICAgICAg
cmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlkYkN1cnNvcldpdGhWYWx1
ZSgpKTsKICAgICBjYXNlIElEQkFueTo6SURCRGF0YWJhc2VUeXBlOgogICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlkYkFueS0+aWRiRGF0YWJhc2UoKSk7CiAgICAgY2Fz
ZSBJREJBbnk6OklEQkZhY3RvcnlUeXBlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJREJLZXlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNJREJLZXlDdXN0b20uY3BwCmluZGV4IDYyZmE3Y2JlMThmYzk5ZjgxNzg5OTc5YjEwMTZiZjdl
NGUyNGVlNDYuLmIyYjc4ZWM1NzZjNzc2NzZiNmE5OGZiZWY5YTM4M2ZhYzBhYmYxZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCS2V5Q3VzdG9tLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQktleUN1c3RvbS5jcHAKQEAgLTM3LDE4
ICszNywzNCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiwgSURCS2V5
KiBrZXkpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBJREJLZXkqIGtleSkKIHsKICAgICBpZiAoIWtleSkKICAgICAgICAgcmV0
dXJuIGpzTnVsbCgpOwogCiAgICAgc3dpdGNoIChrZXktPnR5cGUoKSkgewotICAgIGNhc2UgSURC
S2V5OjpOdW1iZXJUeXBlOgotICAgICAgICByZXR1cm4ganNOdW1iZXIoa2V5LT5udW1iZXIoKSk7
CisgICAgY2FzZSBJREJLZXk6OkFycmF5VHlwZToKKyAgICAgICAgeworICAgICAgICAgICAgY29u
c3QgSURCS2V5OjpLZXlBcnJheSYgaW5BcnJheSA9IGtleS0+YXJyYXkoKTsKKyAgICAgICAgICAg
IHNpemVfdCBzaXplID0gaW5BcnJheS5zaXplKCk7CisgICAgICAgICAgICBKU0FycmF5KiBvdXRB
cnJheSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYywgZ2xvYmFsT2JqZWN0LCBzaXplKTsKKyAg
ICAgICAgICAgIEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSA9IGV4ZWMtPmdsb2JhbERhdGEoKTsK
KyAgICAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAg
ICAgICAgICAgSURCS2V5KiBhcnJheUtleSA9IGluQXJyYXkuYXQoaSkuZ2V0KCk7CisgICAgICAg
ICAgICAgICAgb3V0QXJyYXktPmluaXRpYWxpemVJbmRleChnbG9iYWxEYXRhLCBpLCB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgYXJyYXlLZXkpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHJldHVybiBKU1ZhbHVlKG91dEFycmF5KTsKKyAgICAgICAgfQogICAgIGNhc2UgSURCS2V5OjpT
dHJpbmdUeXBlOgogICAgICAgICByZXR1cm4ganNTdHJpbmcoZXhlYywga2V5LT5zdHJpbmcoKSk7
Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBkYXRlcy4KLSAgICAvLyBGSVhNRTogSW1wbGVtZW50
IGFycmF5cy4KKyAgICBjYXNlIElEQktleTo6RGF0ZVR5cGU6CisgICAgICAgIHJldHVybiBqc0Rh
dGVPck51bGwoZXhlYywga2V5LT5kYXRlKCkpOworICAgIGNhc2UgSURCS2V5OjpOdW1iZXJUeXBl
OgorICAgICAgICByZXR1cm4ganNOdW1iZXIoa2V5LT5udW1iZXIoKSk7CisgICAgY2FzZSBJREJL
ZXk6Ok1pblR5cGU6CisgICAgY2FzZSBJREJLZXk6OkludmFsaWRUeXBlOgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAgICAgfQog
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0lEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0Q3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCVmVyc2lvbkNoYW5nZVJlcXVlc3RDdXN0b20uY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY1NTlmNDFkMWRmMjZlOGVhYmZhYTBlZDZiYzIxZjMzNzQ4MjliMzQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQlZlcnNpb25DaGFu
Z2VSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyLCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBHT09HTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
CisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRQorICogRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgKiBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZCisgKiBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gKKyAqIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNJREJWZXJzaW9uQ2hhbmdlUmVxdWVzdC5oIgor
CisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9u
cy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgSlNJREJWZXJzaW9uQ2hhbmdlUmVx
dWVzdDo6dmlzaXRDaGlsZHJlbihKU0NlbGwqLCBKU0M6OlNsb3RWaXNpdG9yJikKK3sKKyAgICAv
LyBGSVhNRTogSW1wbGVtZW50IHRoaXMuCit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9PcHRpb25zT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9PcHRpb25zT2JqZWN0LmgKaW5kZXggMzQ5MTBjMDMyZTE3OTIyNDkxODcx
Mzc2OWFhZGMyNjZlNzhlZGVhNi4uNDA3OGFlMTc0MjE4ZTc3MWNiMDFmZDEyM2YzNGUyY2FhNjE1
YmIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvT3B0aW9uc09iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL09wdGlvbnNPYmplY3QuaApAQCAt
MjYsNiArMjYsNDYgQEAKICNpZm5kZWYgT3B0aW9uc09iamVjdF9oCiAjZGVmaW5lIE9wdGlvbnNP
YmplY3RfaAogCisjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBET01TdHJpbmdMaXN0OworY2xhc3MgRE9NV2luZG93
OworY2xhc3MgSURCS2V5UmFuZ2U7CitjbGFzcyBTY3JpcHRWYWx1ZTsKK2NsYXNzIFN0b3JhZ2U7
CitjbGFzcyBUcmFja0Jhc2U7CisKIC8vIEZJWE1FOiBJbXBsZW1lbnQuCitjbGFzcyBPcHRpb25z
T2JqZWN0IHsKK3B1YmxpYzoKKyAgICBPcHRpb25zT2JqZWN0KCkgeyB9CisKKyAgICBib29sIGlz
T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzVW5kZWZpbmVkT3JO
dWxsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmlu
ZyYsIGJvb2wmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNvbnN0IFN0
cmluZyYsIGludDMyX3QmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNv
bnN0IFN0cmluZyYsIGRvdWJsZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBn
ZXQoY29uc3QgU3RyaW5nJiwgU3RyaW5nJikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBi
b29sIGdldChjb25zdCBTdHJpbmcmLCBTY3JpcHRWYWx1ZSYpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgYm9vbCBnZXQoY29uc3QgU3RyaW5nJiwgdW5zaWduZWQgc2hvcnQmKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkJikg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCB1bnNp
Z25lZCBsb25nIGxvbmcmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNv
bnN0IFN0cmluZyYsIFJlZlB0cjxET01XaW5kb3c+JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBSZWZQdHI8U3RvcmFnZT4mKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIGJvb2wgZ2V0KGNvbnN0IFN0cmluZyYsIE1lc3NhZ2VQb3J0QXJy
YXkmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2lmIEVOQUJMRShWSURFT19UUkFDSykKKyAg
ICBib29sIGdldChjb25zdCBTdHJpbmcmLCBSZWZQdHI8VHJhY2tCYXNlPiYpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CisjZW5kaWYKKyAgICBib29sIGdldChjb25zdCBTdHJpbmcmLCBIYXNoU2V0
PEF0b21pY1N0cmluZz4mKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCisgICAgYm9vbCBnZXRX
aXRoVW5kZWZpbmVkT3JOdWxsQ2hlY2soY29uc3QgU3RyaW5nJiwgU3RyaW5nJikgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KK307CisKK30KIAogI2VuZGlmIC8vIE9wdGlvbnNPYmplY3RfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAKaW5kZXggN2M1ODZhYTY3ZTkzZTFlNWIyZjRkNDQxYTcxZjE3MDRiZWM3N2FjMS4uZTIzNTk0
NTU4NjQ1ODY4YzlkMGFmYzgxNTdkOWI2NzQwZTU1YmM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCkBAIC01MCw2ICs1
MCw3IEBACiAjaW5jbHVkZSAiSlNVaW50MzJBcnJheS5oIgogI2luY2x1ZGUgIkpTVWludDhBcnJh
eS5oIgogI2luY2x1ZGUgIkpTVWludDhDbGFtcGVkQXJyYXkuaCIKKyNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgogI2luY2x1ZGUgIlNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCiAjaW5jbHVkZSA8bGltaXRzPgpAQCAtMTczMiw2ICsxNzMzLDM3IEBAIFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIHN0CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZXJpYWxpemVkU2NyaXB0
VmFsdWUoYnVmZmVyKSk7CiB9CiAKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKK1Bhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0
ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4oKTsKK30KKwor
U3RyaW5nIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6dG9XaXJlU3RyaW5nKCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KK1Bhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZUZyb21X
aXJlKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KCk7Cit9CisKK1Bhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFsdWU6Om51bWJlclZhbHVlKGRv
dWJsZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4oKTsKK30KKworSlNWYWx1ZSBTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmRlc2VyaWFsaXplKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSlNWYWx1ZSgpOworfQorI2VuZGlm
CisKIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmNyZWF0ZShKU0NvbnRleHRSZWYgb3JpZ2luQ29udGV4dCwgSlNWYWx1ZVJlZiBhcGlWYWx1
ZSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTWVzc2FnZVBvcnRBcnJheSogbWVzc2FnZVBvcnRzLCBBcnJheUJ1ZmZlckFy
cmF5KiBhcnJheUJ1ZmZlcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAppbmRl
eCAzZjhkYTVlOGYzMGIxMzkxYzAxNzNhY2ZjY2ZhMDExZDI0ZmI5NDM4Li44NThlOGM5YzI0MDM5
YmI3Y2YxNmVhMTU3YzQzNWI0YTJlYTliMTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaApAQCAtNTgsNyArNTgsMTIgQEAgZW51
bSBTZXJpYWxpemF0aW9uRXJyb3JNb2RlIHsgTm9uVGhyb3dpbmcsIFRocm93aW5nIH07CiBjbGFz
cyBTY3JpcHRWYWx1ZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIAotY2xhc3MgU2VyaWFsaXplZFNj
cmlwdFZhbHVlIDogcHVibGljIFJlZkNvdW50ZWQ8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB7Citj
bGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWUgOgorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQorICAgIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IHsKKyNlbHNlCisgICAgcHVibGljIFJlZkNvdW50ZWQ8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB7
CisjZW5kaWYKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IGNyZWF0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgTWVzc2FnZVBvcnRB
cnJheSosIEFycmF5QnVmZmVyQXJyYXkqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNlcmlhbGl6YXRpb25FcnJvck1vZGUgPSBUaHJvd2luZyk7
CkBAIC04OCw2ICs5MywxNCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBWZWN0b3I8dWludDhfdD4m
IGRhdGEoKSB7IHJldHVybiBtX2RhdGE7IH0KIAorI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gY3JlYXRlKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IGNyZWF0ZUZyb21XaXJlKGNvbnN0IFN0cmluZyYgZGF0YSk7Cisg
ICAgU3RyaW5nIHRvV2lyZVN0cmluZygpIGNvbnN0OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbnVtYmVyVmFsdWUoZG91YmxlIHZhbHVlKTsKKyAgICBKU0M6
OkpTVmFsdWUgZGVzZXJpYWxpemUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CisjZW5kaWYKKwogICAgIH5TZXJpYWxpemVkU2NyaXB0VmFsdWUoKTsKIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KaW5kZXggZjdiM2FjMTg0MTYzZmMyNjNhMWFiOWI0NTU1NzJhOWNhZjk0Njk2OS4uMmZkYjVj
MmZhNjQ1MGUxMDc2YzQwZTFkZDg1ZTE3YTljNjI4MzZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI3NjYsNyArMjc2
Niw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uRnVuY3Rpb25DYWxsKCkKIAogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICJyZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpz
VW5kZWZpbmVkKCkpO1xuIik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJcbiIgLiAkaW5kZW50IC4gIkpTQzo6SlNWYWx1ZSByZXN1bHQgPSAiIC4gTmF0aXZlVG9K
U1ZhbHVlKCRmdW5jdGlvbi0+c2lnbmF0dXJlLCAxLCAkaW1wbENsYXNzTmFtZSwgJGZ1bmN0aW9u
U3RyaW5nLCAiY2FzdGVkVGhpcyIpIC4gIjtcbiIpOworICAgICAgICBteSAkdGhpc09iamVjdCA9
ICRmdW5jdGlvbi0+aXNTdGF0aWMgPyAwIDogImNhc3RlZFRoaXMiOworICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIlxuIiAuICRpbmRlbnQgLiAiSlNDOjpKU1ZhbHVlIHJlc3VsdCA9ICIgLiBO
YXRpdmVUb0pTVmFsdWUoJGZ1bmN0aW9uLT5zaWduYXR1cmUsIDEsICRpbXBsQ2xhc3NOYW1lLCAk
ZnVuY3Rpb25TdHJpbmcsICR0aGlzT2JqZWN0KSAuICI7XG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICRpbmRlbnQgLiAic2V0RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTtcbiIpIGlmIEB7
JGZ1bmN0aW9uLT5yYWlzZXNFeGNlcHRpb25zfTsKIAogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0
b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJDYWxsV2l0aCJ9LCAiU2NyaXB0U3RhdGUiKSkgewpAQCAtMjc5OSw3
ICsyODAwLDggQEAgbXkgJW5hdGl2ZVR5cGUgPSAoCiAgICAgIkRPTU9iamVjdCIgPT4gIlNjcmlw
dFZhbHVlIiwKICAgICAiTm9kZUZpbHRlciIgPT4gIlJlZlB0cjxOb2RlRmlsdGVyPiIsCiAgICAg
IlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIgPT4gIlJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IiwKLSAgICAiSURCS2V5IiA9PiAiUmVmUHRyPElEQktleT4iLAorICAgICJJREJLZXkiID0+ICJQ
YXNzUmVmUHRyPElEQktleT4iLAorICAgICJPcHRpb25zT2JqZWN0IiA9PiAiT3B0aW9uc09iamVj
dCIsCiAgICAgImJvb2xlYW4iID0+ICJib29sIiwKICAgICAiZG91YmxlIiA9PiAiZG91YmxlIiwK
ICAgICAiZmxvYXQiID0+ICJmbG9hdCIsCkBAIC0yOTM1LDYgKzI5MzcsMTIgQEAgc3ViIEpTVmFs
dWVUb05hdGl2ZQogICAgICAgICByZXR1cm4gImNyZWF0ZUlEQktleUZyb21WYWx1ZShleGVjLCAk
dmFsdWUpIjsKICAgICB9CiAKKyAgICBpZiAoJHR5cGUgZXEgIk9wdGlvbnNPYmplY3QiKSB7Cisg
ICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJJREJCaW5kaW5nVXRpbGl0aWVzLmgiLCAkY29uZGl0
aW9uYWwpOworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiT3B0aW9uc09iamVjdC5oIiwgJGNv
bmRpdGlvbmFsKTsKKyAgICAgICAgcmV0dXJuICJjcmVhdGVPcHRpb25zT2JqZWN0RnJvbVZhbHVl
KGV4ZWMsICR2YWx1ZSkiOworICAgIH0KKwogICAgIGlmICgkdHlwZSBlcSAiRE9NU3RyaW5nW10i
KSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTVN0cmluZ0xpc3QuaCIsICRjb25k
aXRpb25hbCk7CiAgICAgICAgIHJldHVybiAidG9ET01TdHJpbmdMaXN0KCR2YWx1ZSkiOwpAQCAt
Mjk5NSw3ICszMDAzLDEwIEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKICAgICAgICAgcmV0dXJuICJq
c1N0cmluZyhleGVjLCAkdmFsdWUpIjsKICAgICB9CiAKLSAgICBteSAkZ2xvYmFsT2JqZWN0ID0g
IiR0aGlzVmFsdWUtPmdsb2JhbE9iamVjdCgpIjsKKyAgICBteSAkZ2xvYmFsT2JqZWN0OworICAg
IGlmICgkdGhpc1ZhbHVlKSB7CisgICAgICAgICRnbG9iYWxPYmplY3QgPSAiJHRoaXNWYWx1ZS0+
Z2xvYmFsT2JqZWN0KCkiOworICAgIH0KIAogICAgIGlmICgkdHlwZSBlcSAiQ1NTU3R5bGVEZWNs
YXJhdGlvbiIpIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlN0eWxlUHJvcGVydHlTZXQu
aCIsICRjb25kaXRpb25hbCk7CkBAIC0zMDcyLDggKzMwODMsMTEgQEAgc3ViIE5hdGl2ZVRvSlNW
YWx1ZQogICAgICAgICAgICAgJHZhbHVlID0gIiR7dGVhck9mZlR5cGV9OjpjcmVhdGUoJHZhbHVl
KSI7CiAgICAgICAgIH0KICAgICB9Ci0KLSAgICByZXR1cm4gInRvSlMoZXhlYywgJGdsb2JhbE9i
amVjdCwgV1RGOjpnZXRQdHIoJHZhbHVlKSkiOworICAgIGlmICgkZ2xvYmFsT2JqZWN0KSB7Cisg
ICAgICAgIHJldHVybiAidG9KUyhleGVjLCAkZ2xvYmFsT2JqZWN0LCBXVEY6OmdldFB0cigkdmFs
dWUpKSI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgcmV0dXJuICJ0b0pTKGV4ZWMsIHN0YXRpY19j
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgV1RG
OjpnZXRQdHIoJHZhbHVlKSkiOworICAgIH0KIH0KIAogc3ViIGNlaWxpbmdUb1Bvd2VyT2YyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckluZGV4ZWREQkFnZW50
LmNwcAppbmRleCAxY2FjMDEyZGExNmFmOTgzMDFhYmIwMzQyODcwN2NiOGMzMDA5YzI0Li4yMjI0
MGE3NjZiZGExZjY3ZmU5MmQwZDlhMGU3YWNlMTBlZmVlMTFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHAKQEAgLTEwOCw3
ICsxMDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRy
PElEQlRyYW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzV2l0aENvbnRpbnVhdGlvbigpIHsgfQotICAgIHZpcnR1YWwgdm9p
ZCBvblN1Y2Nlc3NXaXRoUHJlZmV0Y2goY29uc3QgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4mIGtl
eXMsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiBwcmltYXJ5S2V5cywgY29uc3QgVmVj
dG9yPFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mIHZhbHVlcykgeyB9CisgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2Vzc1dpdGhQcmVmZXRjaChjb25zdCBWZWN0b3I8UmVmUHRyPElEQktl
eT4gPiYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8SURCS2V5PiA+JiwgY29uc3QgVmVjdG9yPFJlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+ID4mKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgb25CbG9j
a2VkKCkgeyB9CiB9OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>