<?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>70172</bug_id>
          
          <creation_ts>2011-10-15 01:02:14 -0700</creation_ts>
          <short_desc>[Chromium] Implement canvas.toDataURL(&quot;image/webp&quot;)</short_desc>
          <delta_ts>2011-11-13 17:22:25 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="noel gordon">noel.gordon</reporter>
          <assigned_to name="noel gordon">noel.gordon</assigned_to>
          <cc>abarth</cc>
    
    <cc>mdelaney7</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>484544</commentid>
    <comment_count>0</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-10-15 01:02:14 -0700</bug_when>
    <thetext>[Chromium] Implement canvas.toDataURL(&quot;image/webp&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484546</commentid>
    <comment_count>1</comment_count>
      <attachid>111129</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-10-15 01:04:59 -0700</bug_when>
    <thetext>Created attachment 111129
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484929</commentid>
    <comment_count>2</comment_count>
      <attachid>111214</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-10-16 22:35:43 -0700</bug_when>
    <thetext>Created attachment 111214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486605</commentid>
    <comment_count>3</comment_count>
      <attachid>111573</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-10-19 01:05:12 -0700</bug_when>
    <thetext>Created attachment 111573
Update ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495192</commentid>
    <comment_count>4</comment_count>
      <attachid>111573</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-02 21:46:41 -0700</bug_when>
    <thetext>Comment on attachment 111573
Update ChangeLog.

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

&gt; Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp:391
&gt; +            return &quot;data:,&quot;;

Should &quot;data:,&quot; be a constant shared by all the uses in this function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495363</commentid>
    <comment_count>5</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-11-03 05:08:14 -0700</bug_when>
    <thetext>Indeed, could be shared yes.  In a future patch, I plan to factor it out and
make this function return a boolean.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496090</commentid>
    <comment_count>6</comment_count>
      <attachid>113629</attachid>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-11-04 00:40:53 -0700</bug_when>
    <thetext>Created attachment 113629
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496462</commentid>
    <comment_count>7</comment_count>
      <attachid>113629</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-04 14:14:41 -0700</bug_when>
    <thetext>Comment on attachment 113629
Patch for landing.

Clearing flags on attachment: 113629

Committed r99319: &lt;http://trac.webkit.org/changeset/99319&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496463</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-04 14:14:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501568</commentid>
    <comment_count>9</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2011-11-13 17:22:25 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; In a future patch, I plan to factor it out and make this function return a boolean.

Bug 71846</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111129</attachid>
            <date>2011-10-15 01:04:59 -0700</date>
            <delta_ts>2011-10-16 22:35:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70172-20111015190455.patch</filename>
            <type>text/plain</type>
            <size>19252</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc1MzcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1ODQ4MjUyZDdlMWQwZDY4YmY4OGNi
MTY0NDJlNTIyODA1ZDliOTFiLi43ODhiNjQ5OTY2ZWEyMzY0MDM0YWQ0MTg5NTgxMzNhYWZmMTdj
ODRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTAtMTUgIE5vZWwgR29yZG9uICA8bm9l
bC5nb3Jkb25AZ21haWwuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gSW1wbGVtZW50IGNhbnZh
cy50b0RhdGFVUkwoImltYWdlL3dlYnAiKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzAxNzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFVUkwtd2VicC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFVUkwt
d2VicC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1jZy1tYWMvZmFz
dC9jYW52YXMvY2FudmFzLXRvRGF0YVVSTC13ZWJwLWV4cGVjdGVkLnR4dDogQWRkIGFuIAorICAg
ICAgICBleHBlY3RlZCBmYWlsdXJlIGZvciB0aGUgQ2hyb21pdW0gQ29yZUdyYXBoaWNzIChDRykg
cG9ydC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9tYWMvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDExLTEwLTE0ICBHYXZpbiBCYXJyYWNsb3VnaCAg
PGJhcmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIE1vc3QgYnVpbHQtaW4gcHJvcGVydGll
cyBhcmUgbm90IGRlbGV0YWJsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
Y2FudmFzLXRvRGF0YVVSTC13ZWJwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL2NhbnZhcy10b0RhdGFVUkwtd2VicC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U0MWJi
MzgzYjM3MjkxMTc0N2I4OTQ2YmExNDQxYmFiZTIyMDNmYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFVUkwtd2VicC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyIEBACitQQVNTOiBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS93ZWJwJykKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXRvRGF0YVVSTC13ZWJw
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtdG9EYXRhVVJMLXdlYnAuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43NGU5ZTVkM2Y1NzIyOTIzYjA1YzA3YTk2YjUzZTM0NmIxMDIwZjAzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXRvRGF0YVVS
TC13ZWJwLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxwcmUgaWQ9
ImxvZyI+PC9wcmU+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIxMDAiIGhlaWdodD0iNjAi
PjwvY2FudmFzPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlv
biBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJykudGV4
dENvbnRlbnQgKz0gbWVzc2FnZSArICdcbic7Cit9CisKK2Z1bmN0aW9uIGNhbnZhc1BpeGVsU2hv
dWxkQmUoY2FudmFzLCB4LCB5LCBwLCB0b2xlcmFuY2UpCit7CisgICAgdHJ5IHsKKyAgICAgICAg
dmFyIHBpeGVsRGF0YSA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSh4LCB5
LCAxLCAxKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHJldHVybiBsb2coJ0ZBSUw6IGNh
blwndCBhY2Nlc3MgcGl4ZWwgYXQgKCcgKyB4ICsgJywnICsgeSArICcpJyk7CisgICAgfQorCisg
ICAgdmFyIGRlbHRhID0gMCwgcGl4ZWwgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChwaXhl
bERhdGEuZGF0YSk7CisgICAgcGl4ZWwuZm9yRWFjaChmdW5jdGlvbihjb21wb25lbnQsIGkpIHsK
KyAgICAgICAgZGVsdGEgPSBNYXRoLm1heChNYXRoLmFicyhwaXhlbFtpXSAtIHBbaV0pLCBkZWx0
YSk7CisgICAgfSk7CisKKyAgICBwaXhlbCA9ICdwaXhlbCBbJyArIHBpeGVsICsgJ10gYXQgKCcg
KyB4ICsgJywnICsgeSArICcpJzsKKyAgICBpZiAodG9sZXJhbmNlID0gdG9sZXJhbmNlIHx8IDAs
IGRlbHRhID4gdG9sZXJhbmNlKQorICAgICAgICBsb2coJ0ZBSUw6ICcgKyBwaXhlbCArICcsIGV4
cGVjdGVkIFsnICsgcCArICddICsvLScgKyB0b2xlcmFuY2UpOworfQorCit2YXIgY2FudmFzID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbnZhcycpOwordmFyIGNvbnRleHQgPSBjYW52YXMu
Z2V0Q29udGV4dCgnMmQnKTsKKworY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwLCAxMjgsIDAs
IDAuMCknOworY29udGV4dC5maWxsUmVjdCgwLCAgMCwgMTAwLCAyMCk7Citjb250ZXh0LmZpbGxT
dHlsZSA9ICdyZ2JhKDAsIDEyOCwgMCwgMC41KSc7Citjb250ZXh0LmZpbGxSZWN0KDAsIDIwLCAx
MDAsIDIwKTsKK2NvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMCwgMTI4LCAwLCAxLjApJzsKK2Nv
bnRleHQuZmlsbFJlY3QoMCwgNDAsIDEwMCwgMjApOworCitmdW5jdGlvbiBjaGVja1BpeGVscygp
Cit7CisgICAgY2FudmFzLndpZHRoID0gMTAwOyAvLyBSZXNldCAoY2xlYXIpIHRoZSBjYW52YXMg
ZWxlbWVudC4KKyAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7CisgICAgY2FudmFz
UGl4ZWxTaG91bGRCZShjYW52YXMsIDAsIDEwLCBbMCwgICAwLCAwLCAyNTVdLCA4KTsKKyAgICBj
YW52YXNQaXhlbFNob3VsZEJlKGNhbnZhcywgMCwgMzAsIFswLCAgNjQsIDAsIDI1NV0sIDgpOwor
ICAgIGNhbnZhc1BpeGVsU2hvdWxkQmUoY2FudmFzLCAwLCA1MCwgWzAsIDEyOCwgMCwgMjU1XSwg
OCk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgd2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKwordmFyIGRhdGFVUkwgPSBj
YW52YXMudG9EYXRhVVJMKCdpbWFnZS93ZWJwJyk7CisKK2lmICghZGF0YVVSTC5tYXRjaCgvXmRh
dGE6aW1hZ2VcL3dlYnBbOyxdLykpIHsKKyAgICBsb2coIkZBSUw6IGNhbnZhcy50b0RhdGFVUkwo
J2ltYWdlL3dlYnAnKSBub3Qgc3VwcG9ydGVkIik7Cit9IGVsc2UgeworICAgIGxvZygiUEFTUzog
Y2FudmFzLnRvRGF0YVVSTCgnaW1hZ2Uvd2VicCcpIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICAoaW1hZ2UgPSBuZXcgSW1hZ2UoKSkub25sb2FkID0gY2hlY2tQaXhl
bHM7CisgICAgaW1hZ2Uuc3JjID0gZGF0YVVSTDsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tY2ctbWFjL2Zhc3QvY2FudmFzL2NhbnZhcy10
b0RhdGFVUkwtd2VicC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1jZy1tYWMvZmFzdC9jYW52YXMvY2FudmFzLXRvRGF0YVVSTC13ZWJwLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kYzU4YjI0NTFkOWNmOWFlZmJjZjYyMzFlNjM0MDMyNWM3MTlkMTYwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tY2ctbWFjL2Zhc3Qv
Y2FudmFzL2NhbnZhcy10b0RhdGFVUkwtd2VicC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBA
CitGQUlMOiBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS93ZWJwJykgbm90IHN1cHBvcnRlZAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGQwNWJjNjVjODA0OWYzNzhhYTcwMmM4MmMxNWVk
OTVmNzZiZTVjY2YuLjkyOTIyMDRkOTliNmEzZWQwYTdhZmY5ZDEwMmFhNjY0YzhlYzE4YjcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0zOTEsNiArMzkxLDcgQEAgaHR0cC90ZXN0cy9m
aWxlc3lzdGVtCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2ZpbGVzeXN0ZW0taWZyYW1lLWZyb20tcmVt
b3RlLmh0bWwKIAogIyBSZXF1aXJlcyBXZWJQIHN1cHBvcnQuCitmYXN0L2NhbnZhcy9jYW52YXMt
dG9EYXRhVVJMLXdlYnAuaHRtbAogZmFzdC9pbWFnZXMvd2VicC1pbWFnZS1kZWNvZGluZy5odG1s
CiAKICMgUmVxdWVzdCBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpIHN1cHBvcnQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggZjAzYjRjNmRjZWI0MjlmNjA3MWM3YjZiNDg3YjM1
ZDgyMjgzMDVhZC4uNzgwZTNmMjY2ODI0YWRmZDY1MTRiNDJlODdhNWQyYWE2ZTI1NWRhNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTMwNiw2ICszMDYsNyBAQCBwbHVnaW5zL2lmcmFt
ZS1zaGltcy5odG1sCiBwbHVnaW5zL3BsdWdpbi1pbml0aWF0ZS1wb3B1cC13aW5kb3cuaHRtbAog
CiAjIFJlcXVpcmVzIFdlYlAgc3VwcG9ydC4KK2Zhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFVUkwt
d2VicC5odG1sCiBmYXN0L2ltYWdlcy93ZWJwLWltYWdlLWRlY29kaW5nLmh0bWwKIAogIyBUaW1l
cyBvdXQgYmVjYXVzZSBwbHVnaW5zIGFyZW4ndCBhbGxvd2VkIHRvIGV4ZWN1dGUgSlMgYWZ0ZXIg
TlBQX0Rlc3Ryb3kgaGFzIGJlZW4gY2FsbGVkIGluIFdlYktpdDEncyBPT1AgcGx1Z2lucyBpbXBs
ZW1lbnRhdGlvbiBodHRwOi8vd2Via2l0Lm9yZy9iLzQ4OTI5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBl
ZAppbmRleCBiNjI2MTc4ODE3ODNkMTNkZjllZDhiNjRkMmQ2MTJhOGRkNDRkYWFjLi5jNmY0ZGYy
YzgyYzgyYzM3ODE3YjIzODA0YzFhYjA2OWIzNDAwODg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQKQEAgLTE4MDIsNiArMTgwMiw3IEBAIGZhc3QvcGFyc2VyL3ByZS1odG1sNS1wYXJzZXItcXVp
cmtzLmh0bWwKIGZhc3QvbWVkaWEvY29sb3ItZG9lcy1ub3QtaW5jbHVkZS1hbHBoYS5odG1sCiAK
ICMgUmVxdWlyZXMgV2ViUCBzdXBwb3J0LgorZmFzdC9jYW52YXMvY2FudmFzLXRvRGF0YVVSTC13
ZWJwLmh0bWwKIGZhc3QvaW1hZ2VzL3dlYnAtaW1hZ2UtZGVjb2RpbmcuaHRtbAogCiAjIFtRdF0g
c3ZnL2FuaW1hdGlvbnMvYW5pbWF0ZS1wYXRoLW5lc3RlZC10cmFuc2Zvcm1zLmh0bWwgZmFpbHMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggMjYwOWM5ZmI3ODdmNzcxMzQ3NGJlZDU4ZWQz
ZjQ0MjFhNzdmOWFhYi4uYzI3MTg1ZTRhYTA0NGU0OThlZDA2NDQ1YmI4OWUyMTBhMmQ0YmU2ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTEyMjcsNiArMTIyNyw3IEBAIGZhc3QvZG9t
L25vZGVzRnJvbVJlY3QtaW5uZXItZG9jdW1lbnRzLmh0bWwKIHBsdWdpbnMvaWZyYW1lLXNoaW1z
Lmh0bWwKIAogIyBSZXF1aXJlcyBXZWJQIHN1cHBvcnQuCitmYXN0L2NhbnZhcy9jYW52YXMtdG9E
YXRhVVJMLXdlYnAuaHRtbAogZmFzdC9pbWFnZXMvd2VicC1pbWFnZS1kZWNvZGluZy5odG1sCiAK
ICMgTWlzc2luZyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCkgaHR0cDovL3dlYmtp
dC5vcmcvYi81MDIzNApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUxMmFjZmRmNjRmYjljNDg1MGM3N2MzMjRjYzRk
OGM0YjJmNDk1YTUuLjRlZjMyZWZmNjE5MjRhNjhiYzJlOGRlNzZhMzg2ODQ1YzE4NjRmNzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMS0xMC0xNSAgTm9lbCBHb3Jkb24gIDxub2Vs
LmdvcmRvbkBnbWFpbC5jb20+CisKKyAgICAgICAgW0Nocm9taXVtXSBJbXBsZW1lbnQgY2FudmFz
LnRvRGF0YVVSTCgiaW1hZ2Uvd2VicCIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MDE3MgorCisgICAgICAgIEFkZCBhIHdlYnAgaW1hZ2UgZW5jb2Rl
ciBmb3IgdGhlIGNocm9taXVtIHNraWEgcG9ydHMsIGFkZCBpdCB0byB0aGUgY2FudmFzCisgICAg
ICAgIGVsZW1lbnQgdG9EYXRhVVJMKCkgZmxvdyB3aXRoIHN1cHBvcnQgZm9yIGFuIG9wdGlvbmFs
IHF1YWxpdHkgWzAuMC0xMDAuMF0uCisgICAgICAgIFVzZSBhIHdlYnAgY29tcHJlc3Npb24gbWV0
aG9kICgzKSB0aGF0IHByb3ZpZGVzIGdvb2Qgc3BlZWQgYW5kIGNvbXByZXNzaW9uCisgICAgICAg
IHBlcmZvcm1hbmNlLCBhbmQgd29ya3Mgd2VsbCBmb3IgbGluZS1hcnQgYW5kIHBob3RvZ3JhcGhp
YyBpbWFnZXMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLXRvRGF0YVVSTC13ZWJwLmh0bWwKKworICAgICAg
ICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9NSU1FVHlwZVJl
Z2lzdHJ5Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3RyeTo6
aXNTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlRm9yRW5jb2RpbmcpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlVG9EYXRhVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dF
QlBJbWFnZUVuY29kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OndyaXRlT3V0cHV0
KToKKyAgICAgICAgKFdlYkNvcmU6OmltcG9ydFBpY3R1cmUpOgorICAgICAgICAoV2ViQ29yZTo6
aW1wb3J0UGljdHVyZUJHUkEpOgorICAgICAgICAoV2ViQ29yZTo6aW1wb3J0UGljdHVyZVJHQkEp
OgorICAgICAgICAoV2ViQ29yZTo6ZW5jb2RlUGl4ZWxzKToKKyAgICAgICAgKFdlYkNvcmU6OldF
QlBJbWFnZUVuY29kZXI6OmVuY29kZSk6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZW5jb2Rl
cnMvc2tpYS9XRUJQSW1hZ2VFbmNvZGVyLmg6IEFkZGVkLgorCiAyMDExLTEwLTE0ICBNYXJrIEhh
aG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIGdldE93
blByb3BlcnR5U2xvdCB0byBnZXRPd25Qcm9wZXJ0eVNsb3RWaXJ0dWFsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggNjE2NTllMTBjNTk1NjQwOWJlZjZhOGI3ZGJlNmY2ZWQ4NjFhODcxNi4uZjU4NWQ4NmNk
ZTllODNlYjQyNjgzYjUzM2NlMmU3MmFmMjM3ZThhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzk5
OSw2ICszOTk5LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lh
L0pQRUdJbWFnZUVuY29kZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vaW1hZ2UtZW5jb2Rl
cnMvc2tpYS9QTkdJbWFnZUVuY29kZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9pbWFn
ZS1lbmNvZGVycy9za2lhL1BOR0ltYWdlRW5jb2Rlci5oJywKKyAgICAgICAgICAgICdwbGF0Zm9y
bS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJbWFnZUVuY29kZXIuY3BwJywKKyAgICAgICAgICAg
ICdwbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJbWFnZUVuY29kZXIuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vaXBob25lL0tleUV2ZW50Q29kZXNJUGhvbmUuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vaXBob25lL0tleUV2ZW50SVBob25lLm1tJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9tYWMvQXV0b2RyYWluZWRQb29sLm1tJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL01JTUVUeXBlUmVnaXN0cnlDaHJvbWl1bS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9NSU1FVHlwZVJlZ2lzdHJ5Q2hyb21pdW0uY3Bw
CmluZGV4IGQyMGFjYTQzZGFkYWNmYTIxOWU3MWYwYjU3NzEwMWNiNzE4YzI2ZDEuLjkxZDA2YTYz
MzM5ZWNkN2JiNmY0Yzg2YmVmN2ZhM2M3YTIzYTA0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL01JTUVUeXBlUmVnaXN0cnlDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vTUlNRVR5cGVSZWdpc3RyeUNocm9taXVt
LmNwcApAQCAtOTksNyArOTksMTMgQEAgYm9vbCBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRl
ZEltYWdlUmVzb3VyY2VNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogCiBib29sIE1J
TUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZUZvckVuY29kaW5nKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUpCiB7Ci0gICAgcmV0dXJuIG1pbWVUeXBlID09ICJpbWFnZS9qcGVn
IiB8fCBtaW1lVHlwZSA9PSAiaW1hZ2UvcG5nIjsKKyAgICBpZiAobWltZVR5cGUgPT0gImltYWdl
L2pwZWciIHx8IG1pbWVUeXBlID09ICJpbWFnZS9wbmciKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyNpZiBVU0UoV0VCUCkgJiYgVVNFKFNLSUEpCisgICAgaWYgKG1pbWVUeXBlID09ICJpbWFnZS93
ZWJwIikKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIGJvb2wgTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUo
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcAppbmRleCA0NjJiYTY5MDU5
OThjYTYzODA5YmM4Mjg4YTVmODNiNWMzMTQ4MjhhLi4zNzNiNmNmOTkxNzhmZTAwNThkYzJiMzgw
ZjZmYTFlMzRlNjZhMDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAj
aW5jbHVkZSAiU2tDb2xvclByaXYuaCIKICNpbmNsdWRlICJTa0dwdURldmljZS5oIgogI2luY2x1
ZGUgIlNraWFVdGlscy5oIgorI2luY2x1ZGUgIldFQlBJbWFnZUVuY29kZXIuaCIKIAogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0zODEsNiArMzgyLDE0IEBAIHN0YXRpYyBT
dHJpbmcgSW1hZ2VUb0RhdGFVUkwoVCYgc291cmNlLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBj
b25zdCBkb3VibGUqIHF1CiAgICAgICAgICAgICBjb21wcmVzc2lvblF1YWxpdHkgPSBzdGF0aWNf
Y2FzdDxpbnQ+KCpxdWFsaXR5ICogMTAwICsgMC41KTsKICAgICAgICAgaWYgKCFKUEVHSW1hZ2VF
bmNvZGVyOjplbmNvZGUoc291cmNlLCBjb21wcmVzc2lvblF1YWxpdHksICZlbmNvZGVkSW1hZ2Up
KQogICAgICAgICAgICAgcmV0dXJuICJkYXRhOiwiOworI2lmIFVTRShXRUJQKQorICAgIH0gZWxz
ZSBpZiAobWltZVR5cGUgPT0gImltYWdlL3dlYnAiKSB7CisgICAgICAgIGludCBjb21wcmVzc2lv
blF1YWxpdHkgPSBXRUJQSW1hZ2VFbmNvZGVyOjpEZWZhdWx0Q29tcHJlc3Npb25RdWFsaXR5Owor
ICAgICAgICBpZiAocXVhbGl0eSAmJiAqcXVhbGl0eSA+PSAwLjAgJiYgKnF1YWxpdHkgPD0gMS4w
KQorICAgICAgICAgICAgY29tcHJlc3Npb25RdWFsaXR5ID0gc3RhdGljX2Nhc3Q8aW50PigqcXVh
bGl0eSAqIDEwMCArIDAuNSk7CisgICAgICAgIGlmICghV0VCUEltYWdlRW5jb2Rlcjo6ZW5jb2Rl
KHNvdXJjZSwgY29tcHJlc3Npb25RdWFsaXR5LCAmZW5jb2RlZEltYWdlKSkKKyAgICAgICAgICAg
IHJldHVybiAiZGF0YTosIjsKKyNlbmRpZgogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghUE5H
SW1hZ2VFbmNvZGVyOjplbmNvZGUoc291cmNlLCAmZW5jb2RlZEltYWdlKSkKICAgICAgICAgICAg
IHJldHVybiAiZGF0YTosIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWVuY29kZXJzL3NraWEvV0VCUEltYWdlRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJbWFnZUVuY29kZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBlMDYwMWMwYzVjNjE2NGMzZGNiZGM0MDc5YTVjNzViZDg1MjczYzYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJ
bWFnZUVuY29kZXIuY3BwCkBAIC0wLDAgKzEsMTM4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAy
MDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXRUJQSW1hZ2VFbmNvZGVyLmgiCisKKyNpZiBVU0UoV0VCUCkKKworI2luY2x1ZGUg
IkltYWdlRGF0YS5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlICJTa0JpdG1hcC5o
IgorI2luY2x1ZGUgIlNrQ29sb3JQcml2LmgiCisjaW5jbHVkZSAid2VicC9lbmNvZGUuaCIKKwor
dHlwZWRlZiBpbnQgKCpXZWJQSW1wb3J0ZXIpKFdlYlBQaWN0dXJlKiBjb25zdCwgY29uc3QgdWlu
dDhfdCogY29uc3QgZGF0YSwgaW50IHJvd1N0cmlkZSk7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RhdGljIGludCB3cml0ZU91dHB1dChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6
ZSwgY29uc3QgV2ViUFBpY3R1cmUqIGNvbnN0IHBpY3R1cmUpCit7CisgICAgc3RhdGljX2Nhc3Q8
VmVjdG9yPHVuc2lnbmVkIGNoYXI+Kj4ocGljdHVyZS0+Y3VzdG9tX3B0ciktPmFwcGVuZChkYXRh
LCBzaXplKTsKKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIGJvb2wgaW1wb3J0UGljdHVyZShj
b25zdCB1bnNpZ25lZCBjaGFyKiBwaXhlbHMsIGJvb2wgcHJlbXVsdGlwbHksIFdlYlBJbXBvcnRl
ciBpbXBvcnRSR0JYLCBXZWJQSW1wb3J0ZXIgaW1wb3J0UkdCLCBXZWJQUGljdHVyZSogcGljdHVy
ZSkKK3sKKyAgICBpZiAoIXByZW11bHRpcGx5KQorICAgICAgICByZXR1cm4gaW1wb3J0UkdCWChw
aWN0dXJlLCBwaXhlbHMsIHBpY3R1cmUtPndpZHRoICogNCk7CisKKyAgICAvLyBXcml0ZSB0aGUg
UkdCIHBpeGVscyB0byBhbiByZ2IgZGF0YSBidWZmZXIsIGFscGhhIHByZW11bHRpcGxpZWQsIHRo
ZW4gaW1wb3J0IHRoZSByZ2IgZGF0YS4KKworICAgIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiByZ2I7
CisgICAgc2l6ZV90IHBpeGVsQ291bnQgPSBwaWN0dXJlLT5oZWlnaHQgKiBwaWN0dXJlLT53aWR0
aDsKKyAgICByZ2IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwaXhlbENvdW50ICogMyk7CisKKyAg
ICBmb3IgKHVuc2lnbmVkIGNoYXIqIGRhdGEgPSByZ2IuZGF0YSgpOyBwaXhlbENvdW50LS0gPiAw
OyBwaXhlbHMgKz0gNCkgeworICAgICAgICB1bnNpZ25lZCBjaGFyIGFscGhhID0gcGl4ZWxzWzNd
OworICAgICAgICBpZiAoYWxwaGEgIT0gMjU1KSB7CisgICAgICAgICAgICAqZGF0YSsrID0gU2tN
dWxEaXYyNTVSb3VuZChwaXhlbHNbMF0sIGFscGhhKTsKKyAgICAgICAgICAgICpkYXRhKysgPSBT
a011bERpdjI1NVJvdW5kKHBpeGVsc1sxXSwgYWxwaGEpOworICAgICAgICAgICAgKmRhdGErKyA9
IFNrTXVsRGl2MjU1Um91bmQocGl4ZWxzWzJdLCBhbHBoYSk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAqZGF0YSsrID0gcGl4ZWxzWzBdOworICAgICAgICAgICAgKmRhdGErKyA9IHBp
eGVsc1sxXTsKKyAgICAgICAgICAgICpkYXRhKysgPSBwaXhlbHNbMl07CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICByZXR1cm4gaW1wb3J0UkdCKHBpY3R1cmUsIHJnYi5kYXRhKCksIHBpY3R1cmUt
PndpZHRoICogMyk7Cit9CisKK3RlbXBsYXRlIDxib29sIFByZW11bHRpcGx5PiBpbmxpbmUgYm9v
bCBpbXBvcnRQaWN0dXJlQkdSQShjb25zdCB1bnNpZ25lZCBjaGFyKiBwaXhlbHMsIFdlYlBQaWN0
dXJlKiBwaWN0dXJlKQoreworICAgIHJldHVybiBpbXBvcnRQaWN0dXJlKHBpeGVscywgUHJlbXVs
dGlwbHksICZXZWJQUGljdHVyZUltcG9ydEJHUkEsICZXZWJQUGljdHVyZUltcG9ydEJHUiwgcGlj
dHVyZSk7Cit9CisKK3RlbXBsYXRlIDxib29sIFByZW11bHRpcGx5PiBpbmxpbmUgYm9vbCBpbXBv
cnRQaWN0dXJlUkdCQShjb25zdCB1bnNpZ25lZCBjaGFyKiBwaXhlbHMsIFdlYlBQaWN0dXJlKiBw
aWN0dXJlKQoreworICAgIHJldHVybiBpbXBvcnRQaWN0dXJlKHBpeGVscywgUHJlbXVsdGlwbHks
ICZXZWJQUGljdHVyZUltcG9ydFJHQkEsICZXZWJQUGljdHVyZUltcG9ydFJHQiwgcGljdHVyZSk7
Cit9CisKK3N0YXRpYyBib29sIGVuY29kZVBpeGVscyhJbnRTaXplIGltYWdlU2l6ZSwgdW5zaWdu
ZWQgY2hhciogcGl4ZWxzLCBib29sIHByZW11bHRpcGxpZWQsIGludCBxdWFsaXR5LCBWZWN0b3I8
dW5zaWduZWQgY2hhcj4qIG91dHB1dCkKK3sKKyAgICBXZWJQQ29uZmlnIGNvbmZpZzsKKyAgICBp
ZiAoIVdlYlBDb25maWdJbml0KCZjb25maWcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
V2ViUFBpY3R1cmUgcGljdHVyZTsKKyAgICBpZiAoIVdlYlBQaWN0dXJlSW5pdCgmcGljdHVyZSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGltYWdlU2l6ZS5jbGFtcE5lZ2F0aXZlVG9a
ZXJvKCk7CisgICAgaWYgKCFpbWFnZVNpemUud2lkdGgoKSB8fCBpbWFnZVNpemUud2lkdGgoKSA+
IFdFQlBJbWFnZUVuY29kZXI6Ok1heGl1bUltYWdlRGltZW5zaW9uKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgcGljdHVyZS53aWR0aCA9IGltYWdlU2l6ZS53aWR0aCgpOworICAgIGlmICgh
aW1hZ2VTaXplLmhlaWdodCgpIHx8IGltYWdlU2l6ZS5oZWlnaHQoKSA+IFdFQlBJbWFnZUVuY29k
ZXI6Ok1heGl1bUltYWdlRGltZW5zaW9uKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGlj
dHVyZS5oZWlnaHQgPSBpbWFnZVNpemUuaGVpZ2h0KCk7CisKKyAgICBpZiAocHJlbXVsdGlwbGll
ZCAmJiAhaW1wb3J0UGljdHVyZUJHUkE8ZmFsc2U+KHBpeGVscywgJnBpY3R1cmUpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFwcmVtdWx0aXBsaWVkICYmICFpbXBvcnRQaWN0dXJl
UkdCQTx0cnVlPihwaXhlbHMsICZwaWN0dXJlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgcGljdHVyZS5jdXN0b21fcHRyID0gb3V0cHV0OworICAgIHBpY3R1cmUud3JpdGVyID0gJndy
aXRlT3V0cHV0OworICAgIGNvbmZpZy5xdWFsaXR5ID0gcXVhbGl0eTsKKyAgICBjb25maWcubWV0
aG9kID0gMzsKKworICAgIGJvb2wgc3VjY2VzcyA9IFdlYlBFbmNvZGUoJmNvbmZpZywgJnBpY3R1
cmUpOworICAgIFdlYlBQaWN0dXJlRnJlZSgmcGljdHVyZSk7CisgICAgcmV0dXJuIHN1Y2Nlc3M7
Cit9CisKK2Jvb2wgV0VCUEltYWdlRW5jb2Rlcjo6ZW5jb2RlKGNvbnN0IFNrQml0bWFwJiBiaXRt
YXAsIGludCBxdWFsaXR5LCBWZWN0b3I8dW5zaWduZWQgY2hhcj4qIG91dHB1dCkKK3sKKyAgICBT
a0F1dG9Mb2NrUGl4ZWxzIGJpdG1hcExvY2soYml0bWFwKTsKKworICAgIGlmIChiaXRtYXAuY29u
ZmlnKCkgIT0gU2tCaXRtYXA6OmtBUkdCXzg4ODhfQ29uZmlnKQorICAgICAgICByZXR1cm4gZmFs
c2U7IC8vIE9ubHkgc3VwcG9ydCAzMiBiaXQvcGl4ZWwgc2tpYSBiaXRtYXBzLgorCisgICAgcmV0
dXJuIGVuY29kZVBpeGVscyhJbnRTaXplKGJpdG1hcC53aWR0aCgpLCBiaXRtYXAuaGVpZ2h0KCkp
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyICo+KGJpdG1hcC5nZXRQaXhlbHMoKSksIHRydWUs
IHF1YWxpdHksIG91dHB1dCk7Cit9CisKK2Jvb2wgV0VCUEltYWdlRW5jb2Rlcjo6ZW5jb2RlKGNv
bnN0IEltYWdlRGF0YSYgaW1hZ2VEYXRhLCBpbnQgcXVhbGl0eSwgVmVjdG9yPHVuc2lnbmVkIGNo
YXI+KiBvdXRwdXQpCit7CisgICAgcmV0dXJuIGVuY29kZVBpeGVscyhpbWFnZURhdGEuc2l6ZSgp
LCBpbWFnZURhdGEuZGF0YSgpLT5kYXRhKCktPmRhdGEoKSwgZmFsc2UsIHF1YWxpdHksIG91dHB1
dCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJbWFnZUVuY29k
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWVuY29kZXJzL3NraWEvV0VCUElt
YWdlRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlY2RlM2I5MjE3MTgyOGExNDA2MmFkOWFmMjI1YWNj
OWE5NzBhYmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFn
ZS1lbmNvZGVycy9za2lhL1dFQlBJbWFnZUVuY29kZXIuaApAQCAtMCwwICsxLDYxIEBACisvKgor
ICogQ29weXJpZ2h0IChjKSAyMDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV0VCUEltYWdlRW5jb2Rlcl9oCisjZGVmaW5lIFdFQlBJbWFnZUVuY29kZXJfaAorCisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorCisjaWYgVVNFKFdFQlApCisKK2NsYXNzIFNrQml0bWFwOwor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEltYWdlRGF0YTsKKworY2xhc3MgV0VCUElt
YWdlRW5jb2RlciB7CitwdWJsaWM6CisgICAgLy8gRW5jb2RlIHRoZSBpbnB1dCBkYXRhIHdpdGgg
YSBjb21wcmVzc2lvbiBxdWFsaXR5IGluIFswLTEwMF0uCisgICAgc3RhdGljIGJvb2wgZW5jb2Rl
KGNvbnN0IFNrQml0bWFwJiwgaW50IHF1YWxpdHksIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiopOwor
ICAgIHN0YXRpYyBib29sIGVuY29kZShjb25zdCBJbWFnZURhdGEmLCBpbnQgcXVhbGl0eSwgVmVj
dG9yPHVuc2lnbmVkIGNoYXI+Kik7CisKKyAgICAvLyBGb3IgY2FsbGVyczogcHJvdmlkZSBhIHJl
YXNvbmFibGUgY29tcHJlc3Npb24gcXVhbGl0eSBkZWZhdWx0LgorICAgIGVudW0gUXVhbGl0eSB7
IERlZmF1bHRDb21wcmVzc2lvblF1YWxpdHkgPSA4MCB9OworCisgICAgLy8gTWF4aW11bSBpbWFn
ZSB3aWR0aCBvciBoZWlnaHQgYWxsb3dlZCBieSB0aGUgV0VCUCBzcGVjaWZpY2F0aW9uLgorICAg
IGVudW0gRGltZW5zaW9uIHsgTWF4aXVtSW1hZ2VEaW1lbnNpb24gPSAxNjM4MyB9OworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111214</attachid>
            <date>2011-10-16 22:35:43 -0700</date>
            <delta_ts>2011-10-19 01:05:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70172-20111017163540.patch</filename>
            <type>text/plain</type>
            <size>19516</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc1ODMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MjJiYjVjNjcwYzI2N2Q3
YmM3OTdmZmI1MWUyMWY4ODYxODQ4OTA2Li5lYThiYmEyNGQwOTRhMTEyZTNjNmVhYjk5ODRkMGUw
MmMyMmRjNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMTAtMTYgIE5vZWwg
R29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gSW1w
bGVtZW50IGNhbnZhcy50b0RhdGFVUkwoImltYWdlL3dlYnAiKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxNzIKKworICAgICAgICBBZGQgYSB3ZWJw
IGltYWdlIGVuY29kZXIgZm9yIHRoZSBjaHJvbWl1bSBza2lhIHBvcnRzLCBhZGQgaXQgdG8gdGhl
IGNhbnZhcworICAgICAgICBlbGVtZW50IHRvRGF0YVVSTCgpIGZsb3cgd2l0aCBzdXBwb3J0IGZv
ciBhbiBvcHRpb25hbCBxdWFsaXR5IFswLjAtMTAwLjBdLgorICAgICAgICBVc2UgYSB3ZWJwIGNv
bXByZXNzaW9uIG1ldGhvZCAoMykgdGhhdCBwcm92aWRlcyBnb29kIHNwZWVkIGFuZCBjb21wcmVz
c2lvbgorICAgICAgICBwZXJmb3JtYW5jZSBhbmQgd29ya3Mgd2VsbCBmb3IgbGluZS1hcnQgYW5k
IHBob3RvZ3JhcGhpYyBpbWFnZXMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9jYW52YXMvY2FudmFzLXRvRGF0YVVSTC13ZWJwLmh0
bWwKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1
bS9NSU1FVHlwZVJlZ2lzdHJ5Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TUlNRVR5
cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlRm9yRW5jb2RpbmcpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkltYWdlVG9EYXRhVVJMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1lbmNv
ZGVycy9za2lhL1dFQlBJbWFnZUVuY29kZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OndyaXRlT3V0cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OmltcG9ydFBpY3R1cmUpOgorICAgICAg
ICAoV2ViQ29yZTo6aW1wb3J0UGljdHVyZUJHUkEpOgorICAgICAgICAoV2ViQ29yZTo6aW1wb3J0
UGljdHVyZVJHQkEpOgorICAgICAgICAoV2ViQ29yZTo6ZW5jb2RlUGl4ZWxzKToKKyAgICAgICAg
KFdlYkNvcmU6OldFQlBJbWFnZUVuY29kZXI6OmVuY29kZSk6CisgICAgICAgICogcGxhdGZvcm0v
aW1hZ2UtZW5jb2RlcnMvc2tpYS9XRUJQSW1hZ2VFbmNvZGVyLmg6IEFkZGVkLgorCiAyMDExLTEw
LTE2ICBEYXZpZCBCYXJyICA8ZGF2aWRiYXJyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmxp
bmUgQ1NTUHJpbWl0aXZlVmFsdWU6OmlzUXVpcmtWYWx1ZSgpIGFzIG5vbi12aXJ0dWFsIGZ1bmN0
aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMGNmMGVlNjJiYzE3ZjQ1OTM5YTcyMGRhYTM0MGNhODkw
ODg5OTNhNy4uMDg1YmVhZTM4YzBhM2UxMTU4OTY0ODQ4M2E3NTA1YzdiMDdlZjhhMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQpAQCAtMzk5OCw2ICszOTk4LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9p
bWFnZS1lbmNvZGVycy9za2lhL0pQRUdJbWFnZUVuY29kZXIuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9QTkdJbWFnZUVuY29kZXIuY3BwJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1BOR0ltYWdlRW5jb2Rlci5oJywKKyAg
ICAgICAgICAgICdwbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJbWFnZUVuY29kZXIu
Y3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJbWFn
ZUVuY29kZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vaXBob25lL0tleUV2ZW50Q29kZXNJ
UGhvbmUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vaXBob25lL0tleUV2ZW50SVBob25lLm1t
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvQXV0b2RyYWluZWRQb29sLm1tJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL01JTUVUeXBlUmVnaXN0cnlD
aHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9NSU1FVHlwZVJl
Z2lzdHJ5Q2hyb21pdW0uY3BwCmluZGV4IGQyMGFjYTQzZGFkYWNmYTIxOWU3MWYwYjU3NzEwMWNi
NzE4YzI2ZDEuLjkxZDA2YTYzMzM5ZWNkN2JiNmY0Yzg2YmVmN2ZhM2M3YTIzYTA0OGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL01JTUVUeXBlUmVnaXN0cnlD
aHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vTUlNRVR5
cGVSZWdpc3RyeUNocm9taXVtLmNwcApAQCAtOTksNyArOTksMTMgQEAgYm9vbCBNSU1FVHlwZVJl
Z2lzdHJ5Ojppc1N1cHBvcnRlZEltYWdlUmVzb3VyY2VNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKQogCiBib29sIE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlw
ZUZvckVuY29kaW5nKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiB7Ci0gICAgcmV0dXJuIG1pbWVU
eXBlID09ICJpbWFnZS9qcGVnIiB8fCBtaW1lVHlwZSA9PSAiaW1hZ2UvcG5nIjsKKyAgICBpZiAo
bWltZVR5cGUgPT0gImltYWdlL2pwZWciIHx8IG1pbWVUeXBlID09ICJpbWFnZS9wbmciKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyNpZiBVU0UoV0VCUCkgJiYgVVNFKFNLSUEpCisgICAgaWYgKG1p
bWVUeXBlID09ICJpbWFnZS93ZWJwIikKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKyAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRK
YXZhU2NyaXB0TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNw
cAppbmRleCA0NjJiYTY5MDU5OThjYTYzODA5YmM4Mjg4YTVmODNiNWMzMTQ4MjhhLi4zNzNiNmNm
OTkxNzhmZTAwNThkYzJiMzgwZjZmYTFlMzRlNjZhMDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCkBA
IC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiU2tDb2xvclByaXYuaCIKICNpbmNsdWRlICJTa0dw
dURldmljZS5oIgogI2luY2x1ZGUgIlNraWFVdGlscy5oIgorI2luY2x1ZGUgIldFQlBJbWFnZUVu
Y29kZXIuaCIKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0zODEsNiAr
MzgyLDE0IEBAIHN0YXRpYyBTdHJpbmcgSW1hZ2VUb0RhdGFVUkwoVCYgc291cmNlLCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBjb25zdCBkb3VibGUqIHF1CiAgICAgICAgICAgICBjb21wcmVzc2lv
blF1YWxpdHkgPSBzdGF0aWNfY2FzdDxpbnQ+KCpxdWFsaXR5ICogMTAwICsgMC41KTsKICAgICAg
ICAgaWYgKCFKUEVHSW1hZ2VFbmNvZGVyOjplbmNvZGUoc291cmNlLCBjb21wcmVzc2lvblF1YWxp
dHksICZlbmNvZGVkSW1hZ2UpKQogICAgICAgICAgICAgcmV0dXJuICJkYXRhOiwiOworI2lmIFVT
RShXRUJQKQorICAgIH0gZWxzZSBpZiAobWltZVR5cGUgPT0gImltYWdlL3dlYnAiKSB7CisgICAg
ICAgIGludCBjb21wcmVzc2lvblF1YWxpdHkgPSBXRUJQSW1hZ2VFbmNvZGVyOjpEZWZhdWx0Q29t
cHJlc3Npb25RdWFsaXR5OworICAgICAgICBpZiAocXVhbGl0eSAmJiAqcXVhbGl0eSA+PSAwLjAg
JiYgKnF1YWxpdHkgPD0gMS4wKQorICAgICAgICAgICAgY29tcHJlc3Npb25RdWFsaXR5ID0gc3Rh
dGljX2Nhc3Q8aW50PigqcXVhbGl0eSAqIDEwMCArIDAuNSk7CisgICAgICAgIGlmICghV0VCUElt
YWdlRW5jb2Rlcjo6ZW5jb2RlKHNvdXJjZSwgY29tcHJlc3Npb25RdWFsaXR5LCAmZW5jb2RlZElt
YWdlKSkKKyAgICAgICAgICAgIHJldHVybiAiZGF0YTosIjsKKyNlbmRpZgogICAgIH0gZWxzZSB7
CiAgICAgICAgIGlmICghUE5HSW1hZ2VFbmNvZGVyOjplbmNvZGUoc291cmNlLCAmZW5jb2RlZElt
YWdlKSkKICAgICAgICAgICAgIHJldHVybiAiZGF0YTosIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWVuY29kZXJzL3NraWEvV0VCUEltYWdlRW5jb2Rlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJbWFnZUVu
Y29kZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyOTljYjNkNDU5NjQ2YzYzMTY1ODYxMWQ1NTJmZDRiNDQ2
Mzc2NmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1l
bmNvZGVycy9za2lhL1dFQlBJbWFnZUVuY29kZXIuY3BwCkBAIC0wLDAgKzEsMTM4IEBACisvKgor
ICogQ29weXJpZ2h0IChjKSAyMDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXRUJQSW1hZ2VFbmNvZGVyLmgiCisKKyNpZiBVU0Uo
V0VCUCkKKworI2luY2x1ZGUgIkltYWdlRGF0YS5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNp
bmNsdWRlICJTa0JpdG1hcC5oIgorI2luY2x1ZGUgIlNrQ29sb3JQcml2LmgiCisjaW5jbHVkZSAi
d2VicC9lbmNvZGUuaCIKKwordHlwZWRlZiBpbnQgKCpXZWJQSW1wb3J0ZXIpKFdlYlBQaWN0dXJl
KiBjb25zdCwgY29uc3QgdWludDhfdCogY29uc3QgZGF0YSwgaW50IHJvd1N0cmlkZSk7CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGludCB3cml0ZU91dHB1dChjb25zdCB1aW50OF90
KiBkYXRhLCBzaXplX3Qgc2l6ZSwgY29uc3QgV2ViUFBpY3R1cmUqIGNvbnN0IHBpY3R1cmUpCit7
CisgICAgc3RhdGljX2Nhc3Q8VmVjdG9yPHVuc2lnbmVkIGNoYXI+Kj4ocGljdHVyZS0+Y3VzdG9t
X3B0ciktPmFwcGVuZChkYXRhLCBzaXplKTsKKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIGJv
b2wgaW1wb3J0UGljdHVyZShjb25zdCB1bnNpZ25lZCBjaGFyKiBwaXhlbHMsIGJvb2wgcHJlbXVs
dGlwbHksIFdlYlBJbXBvcnRlciBpbXBvcnRSR0JYLCBXZWJQSW1wb3J0ZXIgaW1wb3J0UkdCLCBX
ZWJQUGljdHVyZSogcGljdHVyZSkKK3sKKyAgICBpZiAoIXByZW11bHRpcGx5KQorICAgICAgICBy
ZXR1cm4gaW1wb3J0UkdCWChwaWN0dXJlLCBwaXhlbHMsIHBpY3R1cmUtPndpZHRoICogNCk7CisK
KyAgICAvLyBXcml0ZSB0aGUgUkdCIHBpeGVscyB0byBhbiByZ2IgZGF0YSBidWZmZXIsIGFscGhh
IHByZW11bHRpcGxpZWQsIHRoZW4gaW1wb3J0IHRoZSByZ2IgZGF0YS4KKworICAgIFZlY3Rvcjx1
bnNpZ25lZCBjaGFyPiByZ2I7CisgICAgc2l6ZV90IHBpeGVsQ291bnQgPSBwaWN0dXJlLT5oZWln
aHQgKiBwaWN0dXJlLT53aWR0aDsKKyAgICByZ2IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwaXhl
bENvdW50ICogMyk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGNoYXIqIGRhdGEgPSByZ2IuZGF0YSgp
OyBwaXhlbENvdW50LS0gPiAwOyBwaXhlbHMgKz0gNCkgeworICAgICAgICB1bnNpZ25lZCBjaGFy
IGFscGhhID0gcGl4ZWxzWzNdOworICAgICAgICBpZiAoYWxwaGEgIT0gMjU1KSB7CisgICAgICAg
ICAgICAqZGF0YSsrID0gU2tNdWxEaXYyNTVSb3VuZChwaXhlbHNbMF0sIGFscGhhKTsKKyAgICAg
ICAgICAgICpkYXRhKysgPSBTa011bERpdjI1NVJvdW5kKHBpeGVsc1sxXSwgYWxwaGEpOworICAg
ICAgICAgICAgKmRhdGErKyA9IFNrTXVsRGl2MjU1Um91bmQocGl4ZWxzWzJdLCBhbHBoYSk7Cisg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAqZGF0YSsrID0gcGl4ZWxzWzBdOworICAgICAg
ICAgICAgKmRhdGErKyA9IHBpeGVsc1sxXTsKKyAgICAgICAgICAgICpkYXRhKysgPSBwaXhlbHNb
Ml07CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gaW1wb3J0UkdCKHBpY3R1cmUsIHJn
Yi5kYXRhKCksIHBpY3R1cmUtPndpZHRoICogMyk7Cit9CisKK3RlbXBsYXRlIDxib29sIFByZW11
bHRpcGx5PiBpbmxpbmUgYm9vbCBpbXBvcnRQaWN0dXJlQkdSQShjb25zdCB1bnNpZ25lZCBjaGFy
KiBwaXhlbHMsIFdlYlBQaWN0dXJlKiBwaWN0dXJlKQoreworICAgIHJldHVybiBpbXBvcnRQaWN0
dXJlKHBpeGVscywgUHJlbXVsdGlwbHksICZXZWJQUGljdHVyZUltcG9ydEJHUkEsICZXZWJQUGlj
dHVyZUltcG9ydEJHUiwgcGljdHVyZSk7Cit9CisKK3RlbXBsYXRlIDxib29sIFByZW11bHRpcGx5
PiBpbmxpbmUgYm9vbCBpbXBvcnRQaWN0dXJlUkdCQShjb25zdCB1bnNpZ25lZCBjaGFyKiBwaXhl
bHMsIFdlYlBQaWN0dXJlKiBwaWN0dXJlKQoreworICAgIHJldHVybiBpbXBvcnRQaWN0dXJlKHBp
eGVscywgUHJlbXVsdGlwbHksICZXZWJQUGljdHVyZUltcG9ydFJHQkEsICZXZWJQUGljdHVyZUlt
cG9ydFJHQiwgcGljdHVyZSk7Cit9CisKK3N0YXRpYyBib29sIGVuY29kZVBpeGVscyhJbnRTaXpl
IGltYWdlU2l6ZSwgY29uc3QgdW5zaWduZWQgY2hhciogcGl4ZWxzLCBib29sIHByZW11bHRpcGxp
ZWQsIGludCBxdWFsaXR5LCBWZWN0b3I8dW5zaWduZWQgY2hhcj4qIG91dHB1dCkKK3sKKyAgICBX
ZWJQQ29uZmlnIGNvbmZpZzsKKyAgICBpZiAoIVdlYlBDb25maWdJbml0KCZjb25maWcpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgV2ViUFBpY3R1cmUgcGljdHVyZTsKKyAgICBpZiAoIVdl
YlBQaWN0dXJlSW5pdCgmcGljdHVyZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlt
YWdlU2l6ZS5jbGFtcE5lZ2F0aXZlVG9aZXJvKCk7CisgICAgaWYgKCFpbWFnZVNpemUud2lkdGgo
KSB8fCBpbWFnZVNpemUud2lkdGgoKSA+IFdFQlBJbWFnZUVuY29kZXI6Ok1heGl1bUltYWdlRGlt
ZW5zaW9uKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGljdHVyZS53aWR0aCA9IGltYWdl
U2l6ZS53aWR0aCgpOworICAgIGlmICghaW1hZ2VTaXplLmhlaWdodCgpIHx8IGltYWdlU2l6ZS5o
ZWlnaHQoKSA+IFdFQlBJbWFnZUVuY29kZXI6Ok1heGl1bUltYWdlRGltZW5zaW9uKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcGljdHVyZS5oZWlnaHQgPSBpbWFnZVNpemUuaGVpZ2h0KCk7
CisKKyAgICBpZiAocHJlbXVsdGlwbGllZCAmJiAhaW1wb3J0UGljdHVyZUJHUkE8ZmFsc2U+KHBp
eGVscywgJnBpY3R1cmUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFwcmVtdWx0
aXBsaWVkICYmICFpbXBvcnRQaWN0dXJlUkdCQTx0cnVlPihwaXhlbHMsICZwaWN0dXJlKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcGljdHVyZS5jdXN0b21fcHRyID0gb3V0cHV0Owor
ICAgIHBpY3R1cmUud3JpdGVyID0gJndyaXRlT3V0cHV0OworICAgIGNvbmZpZy5xdWFsaXR5ID0g
cXVhbGl0eTsKKyAgICBjb25maWcubWV0aG9kID0gMzsKKworICAgIGJvb2wgc3VjY2VzcyA9IFdl
YlBFbmNvZGUoJmNvbmZpZywgJnBpY3R1cmUpOworICAgIFdlYlBQaWN0dXJlRnJlZSgmcGljdHVy
ZSk7CisgICAgcmV0dXJuIHN1Y2Nlc3M7Cit9CisKK2Jvb2wgV0VCUEltYWdlRW5jb2Rlcjo6ZW5j
b2RlKGNvbnN0IFNrQml0bWFwJiBiaXRtYXAsIGludCBxdWFsaXR5LCBWZWN0b3I8dW5zaWduZWQg
Y2hhcj4qIG91dHB1dCkKK3sKKyAgICBTa0F1dG9Mb2NrUGl4ZWxzIGJpdG1hcExvY2soYml0bWFw
KTsKKworICAgIGlmIChiaXRtYXAuY29uZmlnKCkgIT0gU2tCaXRtYXA6OmtBUkdCXzg4ODhfQ29u
ZmlnKQorICAgICAgICByZXR1cm4gZmFsc2U7IC8vIE9ubHkgc3VwcG9ydCAzMiBiaXQvcGl4ZWwg
c2tpYSBiaXRtYXBzLgorCisgICAgcmV0dXJuIGVuY29kZVBpeGVscyhJbnRTaXplKGJpdG1hcC53
aWR0aCgpLCBiaXRtYXAuaGVpZ2h0KCkpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyICo+KGJp
dG1hcC5nZXRQaXhlbHMoKSksIHRydWUsIHF1YWxpdHksIG91dHB1dCk7Cit9CisKK2Jvb2wgV0VC
UEltYWdlRW5jb2Rlcjo6ZW5jb2RlKGNvbnN0IEltYWdlRGF0YSYgaW1hZ2VEYXRhLCBpbnQgcXVh
bGl0eSwgVmVjdG9yPHVuc2lnbmVkIGNoYXI+KiBvdXRwdXQpCit7CisgICAgcmV0dXJuIGVuY29k
ZVBpeGVscyhpbWFnZURhdGEuc2l6ZSgpLCBpbWFnZURhdGEuZGF0YSgpLT5kYXRhKCktPmRhdGEo
KSwgZmFsc2UsIHF1YWxpdHksIG91dHB1dCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1lbmNv
ZGVycy9za2lhL1dFQlBJbWFnZUVuY29kZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWVuY29kZXJzL3NraWEvV0VCUEltYWdlRW5jb2Rlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlY2RlM2I5
MjE3MTgyOGExNDA2MmFkOWFmMjI1YWNjOWE5NzBhYmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJbWFnZUVuY29kZXIu
aApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDExLCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0VCUEltYWdlRW5jb2Rlcl9oCisjZGVmaW5lIFdF
QlBJbWFnZUVuY29kZXJfaAorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCisjaWYgVVNFKFdF
QlApCisKK2NsYXNzIFNrQml0bWFwOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElt
YWdlRGF0YTsKKworY2xhc3MgV0VCUEltYWdlRW5jb2RlciB7CitwdWJsaWM6CisgICAgLy8gRW5j
b2RlIHRoZSBpbnB1dCBkYXRhIHdpdGggYSBjb21wcmVzc2lvbiBxdWFsaXR5IGluIFswLTEwMF0u
CisgICAgc3RhdGljIGJvb2wgZW5jb2RlKGNvbnN0IFNrQml0bWFwJiwgaW50IHF1YWxpdHksIFZl
Y3Rvcjx1bnNpZ25lZCBjaGFyPiopOworICAgIHN0YXRpYyBib29sIGVuY29kZShjb25zdCBJbWFn
ZURhdGEmLCBpbnQgcXVhbGl0eSwgVmVjdG9yPHVuc2lnbmVkIGNoYXI+Kik7CisKKyAgICAvLyBG
b3IgY2FsbGVyczogcHJvdmlkZSBhIHJlYXNvbmFibGUgY29tcHJlc3Npb24gcXVhbGl0eSBkZWZh
dWx0LgorICAgIGVudW0gUXVhbGl0eSB7IERlZmF1bHRDb21wcmVzc2lvblF1YWxpdHkgPSA4MCB9
OworCisgICAgLy8gTWF4aW11bSBpbWFnZSB3aWR0aCBvciBoZWlnaHQgYWxsb3dlZCBieSB0aGUg
V0VCUCBzcGVjaWZpY2F0aW9uLgorICAgIGVudW0gRGltZW5zaW9uIHsgTWF4aXVtSW1hZ2VEaW1l
bnNpb24gPSAxNjM4MyB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
KworI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNTM4NjVmZmQzMTUyMDc0ZGNiMDc1OWY2MjAzNTQyMDhjNjU2MzEz
Mi4uNDhhMjJmYWFiNzNhYTUzOTNmNmE2MGY2ZmEzMzEzNWU0YjA2MmIwZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE4IEBACisyMDExLTEwLTE2ICBOb2VsIEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNv
bT4KKworICAgICAgICBbQ2hyb21pdW1dIEltcGxlbWVudCBjYW52YXMudG9EYXRhVVJMKCJpbWFn
ZS93ZWJwIikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwMTcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBmYXN0L2NhbnZhcy9jYW52YXMtdG9EYXRhVVJMLXdlYnAtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtdG9EYXRhVVJMLXdlYnAuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OiBza2lw
IHRlc3Qgb24gTUFDIENQVS1DRyAoQ29yZUdyYXBoaWNzKQorICAgICAgICAqIHBsYXRmb3JtL2d0
ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIw
MTEtMTAtMTYgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVw
ZGF0ZSB0ZXN0IGV4ZXBjdGF0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL2NhbnZhcy10b0RhdGFVUkwtd2VicC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9jYW52YXMtdG9EYXRhVVJMLXdlYnAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNl
NDFiYjM4M2IzNzI5MTE3NDdiODk0NmJhMTQ0MWJhYmUyMjAzZmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtdG9EYXRhVVJMLXdlYnAtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUzogY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2Uvd2VicCcp
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFVUkwt
d2VicC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXRvRGF0YVVSTC13ZWJw
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzRlOWU1ZDNmNTcyMjkyM2IwNWMwN2E5NmI1M2UzNDZiMTAyMGYw
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy10b0Rh
dGFVUkwtd2VicC5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8cHJl
IGlkPSJsb2ciPjwvcHJlPgorPGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMTAwIiBoZWlnaHQ9
IjYwIj48L2NhbnZhcz4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycp
LnRleHRDb250ZW50ICs9IG1lc3NhZ2UgKyAnXG4nOworfQorCitmdW5jdGlvbiBjYW52YXNQaXhl
bFNob3VsZEJlKGNhbnZhcywgeCwgeSwgcCwgdG9sZXJhbmNlKQoreworICAgIHRyeSB7CisgICAg
ICAgIHZhciBwaXhlbERhdGEgPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKS5nZXRJbWFnZURhdGEo
eCwgeSwgMSwgMSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICByZXR1cm4gbG9nKCdGQUlM
OiBjYW5cJ3QgYWNjZXNzIHBpeGVsIGF0ICgnICsgeCArICcsJyArIHkgKyAnKScpOworICAgIH0K
KworICAgIHZhciBkZWx0YSA9IDAsIHBpeGVsID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwo
cGl4ZWxEYXRhLmRhdGEpOworICAgIHBpeGVsLmZvckVhY2goZnVuY3Rpb24oY29tcG9uZW50LCBp
KSB7CisgICAgICAgIGRlbHRhID0gTWF0aC5tYXgoTWF0aC5hYnMocGl4ZWxbaV0gLSBwW2ldKSwg
ZGVsdGEpOworICAgIH0pOworCisgICAgcGl4ZWwgPSAncGl4ZWwgWycgKyBwaXhlbCArICddIGF0
ICgnICsgeCArICcsJyArIHkgKyAnKSc7CisgICAgaWYgKHRvbGVyYW5jZSA9IHRvbGVyYW5jZSB8
fCAwLCBkZWx0YSA+IHRvbGVyYW5jZSkKKyAgICAgICAgbG9nKCdGQUlMOiAnICsgcGl4ZWwgKyAn
LCBleHBlY3RlZCBbJyArIHAgKyAnXSArLy0nICsgdG9sZXJhbmNlKTsKK30KKwordmFyIGNhbnZh
cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYW52YXMnKTsKK3ZhciBjb250ZXh0ID0gY2Fu
dmFzLmdldENvbnRleHQoJzJkJyk7CisKK2NvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMCwgMTI4
LCAwLCAwLjApJzsKK2NvbnRleHQuZmlsbFJlY3QoMCwgIDAsIDEwMCwgMjApOworY29udGV4dC5m
aWxsU3R5bGUgPSAncmdiYSgwLCAxMjgsIDAsIDAuNSknOworY29udGV4dC5maWxsUmVjdCgwLCAy
MCwgMTAwLCAyMCk7Citjb250ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAsIDEyOCwgMCwgMS4wKSc7
Citjb250ZXh0LmZpbGxSZWN0KDAsIDQwLCAxMDAsIDIwKTsKKworZnVuY3Rpb24gY2hlY2tQaXhl
bHMoKQoreworICAgIGNhbnZhcy53aWR0aCA9IDEwMDsgLy8gUmVzZXQgKGNsZWFyKSB0aGUgY2Fu
dmFzIGVsZW1lbnQuCisgICAgY29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDApOworICAgIGNh
bnZhc1BpeGVsU2hvdWxkQmUoY2FudmFzLCAwLCAxMCwgWzAsICAgMCwgMCwgMjU1XSwgOCk7Cisg
ICAgY2FudmFzUGl4ZWxTaG91bGRCZShjYW52YXMsIDAsIDMwLCBbMCwgIDY0LCAwLCAyNTVdLCA4
KTsKKyAgICBjYW52YXNQaXhlbFNob3VsZEJlKGNhbnZhcywgMCwgNTAsIFswLCAxMjgsIDAsIDI1
NV0sIDgpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK3ZhciBkYXRhVVJM
ID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2Uvd2VicCcpOworCitpZiAoIWRhdGFVUkwubWF0Y2go
L15kYXRhOmltYWdlXC93ZWJwWzssXS8pKSB7CisgICAgbG9nKCJGQUlMOiBjYW52YXMudG9EYXRh
VVJMKCdpbWFnZS93ZWJwJykgbm90IHN1cHBvcnRlZCIpOworfSBlbHNlIHsKKyAgICBsb2coIlBB
U1M6IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL3dlYnAnKSIpOworICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgICAgKGltYWdlID0gbmV3IEltYWdlKCkpLm9ubG9hZCA9IGNoZWNr
UGl4ZWxzOworICAgIGltYWdlLnNyYyA9IGRhdGFVUkw7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRl
eCA5MTVmMjc1NGRiOGRkNmU3MzFmNGJiY2E1YTcwMDhmZmY1Njc2YWZhLi40YjVmMTE3ZjIyYjdk
YTgzYzExMDUxNWRkNzVhNDJlMzUyNzUwMzhhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC00OTEsNiArNDkxLDkgQEAg
V09OVEZJWCBDUFUgR1BVIDogcGxhdGZvcm0vY2hyb21pdW0tZ3B1L2NvbXBvc2l0aW5nL3J1YmJl
cmJhbmRpbmcgPSBJTUFHRQogLy8gaXQgaXNuJ3QgaW5zdGFsbGVkIG9uIFhQIGJ5IGRlZmF1bHQu
CiBXT05URklYIFhQIDogY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3MtcmVuZGVyaW5nLmh0bWwg
PSBQQVNTIEZBSUwKIAorLy8gTm8gd2VicCBlbmNvZGluZyBzdXBwb3J0IG9uIE1BQyBDb3JlR3Jh
cGhpY3MgKENHKQorV09OVEZJWCBNQUMgQ1BVLUNHIDogZmFzdC9jYW52YXMvY2FudmFzLXRvRGF0
YVVSTC13ZWJwLmh0bWwgPSBGQUlMCisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBMSUdIVFRQRAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggZDA1YmM2NWM4MDQ5ZjM3OGFhNzAy
YzgyYzE1ZWQ5NWY3NmJlNWNjZi4uOTI5MjIwNGQ5OWI2YTNlZDBhN2FmZjlkMTAyYWE2NjRjOGVj
MThiNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTM5MSw2ICszOTEsNyBAQCBodHRw
L3Rlc3RzL2ZpbGVzeXN0ZW0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvZmlsZXN5c3RlbS1pZnJhbWUt
ZnJvbS1yZW1vdGUuaHRtbAogCiAjIFJlcXVpcmVzIFdlYlAgc3VwcG9ydC4KK2Zhc3QvY2FudmFz
L2NhbnZhcy10b0RhdGFVUkwtd2VicC5odG1sCiBmYXN0L2ltYWdlcy93ZWJwLWltYWdlLWRlY29k
aW5nLmh0bWwKIAogIyBSZXF1ZXN0IEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgc3Vw
cG9ydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCBmMDNiNGM2ZGNlYjQyOWY2MDcxYzdi
NmI0ODdiMzVkODIyODMwNWFkLi43ODBlM2YyNjY4MjRhZGZkNjUxNGI0MmU4N2E1ZDJhYTZlMjU1
ZGE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMzA2LDYgKzMwNiw3IEBAIHBsdWdp
bnMvaWZyYW1lLXNoaW1zLmh0bWwKIHBsdWdpbnMvcGx1Z2luLWluaXRpYXRlLXBvcHVwLXdpbmRv
dy5odG1sCiAKICMgUmVxdWlyZXMgV2ViUCBzdXBwb3J0LgorZmFzdC9jYW52YXMvY2FudmFzLXRv
RGF0YVVSTC13ZWJwLmh0bWwKIGZhc3QvaW1hZ2VzL3dlYnAtaW1hZ2UtZGVjb2RpbmcuaHRtbAog
CiAjIFRpbWVzIG91dCBiZWNhdXNlIHBsdWdpbnMgYXJlbid0IGFsbG93ZWQgdG8gZXhlY3V0ZSBK
UyBhZnRlciBOUFBfRGVzdHJveSBoYXMgYmVlbiBjYWxsZWQgaW4gV2ViS2l0MSdzIE9PUCBwbHVn
aW5zIGltcGxlbWVudGF0aW9uIGh0dHA6Ly93ZWJraXQub3JnL2IvNDg5MjkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9Ta2lwcGVkCmluZGV4IGI2MjYxNzg4MTc4M2QxM2RmOWVkOGI2NGQyZDYxMmE4ZGQ0NGRhYWMu
LmM2ZjRkZjJjODJjODJjMzc4MTdiMjM4MDRjMWFiMDY5YjM0MDA4ODYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZApAQCAtMTgwMiw2ICsxODAyLDcgQEAgZmFzdC9wYXJzZXIvcHJlLWh0bWw1LXBh
cnNlci1xdWlya3MuaHRtbAogZmFzdC9tZWRpYS9jb2xvci1kb2VzLW5vdC1pbmNsdWRlLWFscGhh
Lmh0bWwKIAogIyBSZXF1aXJlcyBXZWJQIHN1cHBvcnQuCitmYXN0L2NhbnZhcy9jYW52YXMtdG9E
YXRhVVJMLXdlYnAuaHRtbAogZmFzdC9pbWFnZXMvd2VicC1pbWFnZS1kZWNvZGluZy5odG1sCiAK
ICMgW1F0XSBzdmcvYW5pbWF0aW9ucy9hbmltYXRlLXBhdGgtbmVzdGVkLXRyYW5zZm9ybXMuaHRt
bCBmYWlscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCAyNjA5YzlmYjc4N2Y3NzEzNDc0
YmVkNThlZDNmNDQyMWE3N2Y5YWFiLi5jMjcxODVlNGFhMDQ0ZTQ5OGVkMDY0NDViYjg5ZTIxMGEy
ZDRiZTZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTIyNyw2ICsxMjI3LDcgQEAg
ZmFzdC9kb20vbm9kZXNGcm9tUmVjdC1pbm5lci1kb2N1bWVudHMuaHRtbAogcGx1Z2lucy9pZnJh
bWUtc2hpbXMuaHRtbAogCiAjIFJlcXVpcmVzIFdlYlAgc3VwcG9ydC4KK2Zhc3QvY2FudmFzL2Nh
bnZhcy10b0RhdGFVUkwtd2VicC5odG1sCiBmYXN0L2ltYWdlcy93ZWJwLWltYWdlLWRlY29kaW5n
Lmh0bWwKIAogIyBNaXNzaW5nIGxheW91dFRlc3RDb250cm9sbGVyLmZpbmRTdHJpbmcoKSBodHRw
Oi8vd2Via2l0Lm9yZy9iLzUwMjM0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111573</attachid>
            <date>2011-10-19 01:05:12 -0700</date>
            <delta_ts>2011-11-04 00:40:44 -0700</delta_ts>
            <desc>Update ChangeLog.</desc>
            <filename>bug-70172-20111019190349.patch</filename>
            <type>text/plain</type>
            <size>19509</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc4MzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkZGE2YjRlNjkxMGViZmZk
NzI4ODBiNGJiMDVmZmJmNjhjNDBkOGY2Li5mOGJjNTZmNjU1YjM1MDIzYTRjODNmY2VlYTAwNDBl
M2UyMWQ0YmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMTAtMTggIE5vZWwg
R29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gSW1w
bGVtZW50IGNhbnZhcy50b0RhdGFVUkwoImltYWdlL3dlYnAiKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxNzIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB3ZWJwIGltYWdlIGVuY29kZXIgZm9y
IHRoZSBjaHJvbWl1bSBza2lhIHBvcnRzLCBhZGQgaXQgdG8gdGhlIGNhbnZhcworICAgICAgICBl
bGVtZW50IHRvRGF0YVVSTCgpIGZsb3cgd2l0aCBzdXBwb3J0IGZvciBhbiBvcHRpb25hbCBxdWFs
aXR5IFswLjAtMS4wXS4KKyAgICAgICAgVXNlIGEgd2VicCBjb21wcmVzc2lvbiBtZXRob2QgKDMp
IHRoYXQgcHJvdmlkZXMgZ29vZCBzcGVlZCBhbmQgY29tcHJlc3Npb24KKyAgICAgICAgcGVyZm9y
bWFuY2UgYW5kIHdvcmtzIHdlbGwgZm9yIGxpbmUtYXJ0IGFuZCBwaG90b2dyYXBoaWMgaW1hZ2Vz
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFVUkwtd2VicC5odG1s
CisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
TUlNRVR5cGVSZWdpc3RyeUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1JTUVUeXBl
UmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZUZvckVuY29kaW5nKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbWFnZVRvRGF0YVVSTCk6CisgICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZW5jb2Rl
cnMvc2tpYS9XRUJQSW1hZ2VFbmNvZGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjp3
cml0ZU91dHB1dCk6CisgICAgICAgIChXZWJDb3JlOjppbXBvcnRQaWN0dXJlKToKKyAgICAgICAg
KFdlYkNvcmU6OmltcG9ydFBpY3R1cmVCR1JBKToKKyAgICAgICAgKFdlYkNvcmU6OmltcG9ydFBp
Y3R1cmVSR0JBKToKKyAgICAgICAgKFdlYkNvcmU6OmVuY29kZVBpeGVscyk6CisgICAgICAgIChX
ZWJDb3JlOjpXRUJQSW1hZ2VFbmNvZGVyOjplbmNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2lt
YWdlLWVuY29kZXJzL3NraWEvV0VCUEltYWdlRW5jb2Rlci5oOiBBZGRlZC4KKwogMjAxMS0xMC0x
OCAgSm9obm55IERpbmcgIDxqbmRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBO
U1Byb2Nlc3NJbmZvOjpzeXN0ZW1VcHRpbWUgb24gTWFjIExlb3BhcmQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggNGJmNDcyNThkOGI4MzM2ZWFmMzgyY2MzMjVmOGU4MDRmMWZmNWVlZS4uYmNjMTRlMDQ2
YzRmZThmZjZkYTFjYzc0MTE1YjVhNzVmN2VmNTViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDAw
NCw2ICs0MDA0LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lh
L0pQRUdJbWFnZUVuY29kZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vaW1hZ2UtZW5jb2Rl
cnMvc2tpYS9QTkdJbWFnZUVuY29kZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9pbWFn
ZS1lbmNvZGVycy9za2lhL1BOR0ltYWdlRW5jb2Rlci5oJywKKyAgICAgICAgICAgICdwbGF0Zm9y
bS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJbWFnZUVuY29kZXIuY3BwJywKKyAgICAgICAgICAg
ICdwbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJbWFnZUVuY29kZXIuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vaXBob25lL0tleUV2ZW50Q29kZXNJUGhvbmUuaCcsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vaXBob25lL0tleUV2ZW50SVBob25lLm1tJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9tYWMvQXV0b2RyYWluZWRQb29sLm1tJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL01JTUVUeXBlUmVnaXN0cnlDaHJvbWl1bS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9NSU1FVHlwZVJlZ2lzdHJ5Q2hyb21pdW0uY3Bw
CmluZGV4IGQyMGFjYTQzZGFkYWNmYTIxOWU3MWYwYjU3NzEwMWNiNzE4YzI2ZDEuLjkxZDA2YTYz
MzM5ZWNkN2JiNmY0Yzg2YmVmN2ZhM2M3YTIzYTA0OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL01JTUVUeXBlUmVnaXN0cnlDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vTUlNRVR5cGVSZWdpc3RyeUNocm9taXVt
LmNwcApAQCAtOTksNyArOTksMTMgQEAgYm9vbCBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRl
ZEltYWdlUmVzb3VyY2VNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogCiBib29sIE1J
TUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZUZvckVuY29kaW5nKGNvbnN0
IFN0cmluZyYgbWltZVR5cGUpCiB7Ci0gICAgcmV0dXJuIG1pbWVUeXBlID09ICJpbWFnZS9qcGVn
IiB8fCBtaW1lVHlwZSA9PSAiaW1hZ2UvcG5nIjsKKyAgICBpZiAobWltZVR5cGUgPT0gImltYWdl
L2pwZWciIHx8IG1pbWVUeXBlID09ICJpbWFnZS9wbmciKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyNpZiBVU0UoV0VCUCkgJiYgVVNFKFNLSUEpCisgICAgaWYgKG1pbWVUeXBlID09ICJpbWFnZS93
ZWJwIikKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7CiB9
CiAKIGJvb2wgTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUo
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcAppbmRleCA0NjJiYTY5MDU5
OThjYTYzODA5YmM4Mjg4YTVmODNiNWMzMTQ4MjhhLi4zNzNiNmNmOTkxNzhmZTAwNThkYzJiMzgw
ZjZmYTFlMzRlNjZhMDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAj
aW5jbHVkZSAiU2tDb2xvclByaXYuaCIKICNpbmNsdWRlICJTa0dwdURldmljZS5oIgogI2luY2x1
ZGUgIlNraWFVdGlscy5oIgorI2luY2x1ZGUgIldFQlBJbWFnZUVuY29kZXIuaCIKIAogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0zODEsNiArMzgyLDE0IEBAIHN0YXRpYyBT
dHJpbmcgSW1hZ2VUb0RhdGFVUkwoVCYgc291cmNlLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBj
b25zdCBkb3VibGUqIHF1CiAgICAgICAgICAgICBjb21wcmVzc2lvblF1YWxpdHkgPSBzdGF0aWNf
Y2FzdDxpbnQ+KCpxdWFsaXR5ICogMTAwICsgMC41KTsKICAgICAgICAgaWYgKCFKUEVHSW1hZ2VF
bmNvZGVyOjplbmNvZGUoc291cmNlLCBjb21wcmVzc2lvblF1YWxpdHksICZlbmNvZGVkSW1hZ2Up
KQogICAgICAgICAgICAgcmV0dXJuICJkYXRhOiwiOworI2lmIFVTRShXRUJQKQorICAgIH0gZWxz
ZSBpZiAobWltZVR5cGUgPT0gImltYWdlL3dlYnAiKSB7CisgICAgICAgIGludCBjb21wcmVzc2lv
blF1YWxpdHkgPSBXRUJQSW1hZ2VFbmNvZGVyOjpEZWZhdWx0Q29tcHJlc3Npb25RdWFsaXR5Owor
ICAgICAgICBpZiAocXVhbGl0eSAmJiAqcXVhbGl0eSA+PSAwLjAgJiYgKnF1YWxpdHkgPD0gMS4w
KQorICAgICAgICAgICAgY29tcHJlc3Npb25RdWFsaXR5ID0gc3RhdGljX2Nhc3Q8aW50PigqcXVh
bGl0eSAqIDEwMCArIDAuNSk7CisgICAgICAgIGlmICghV0VCUEltYWdlRW5jb2Rlcjo6ZW5jb2Rl
KHNvdXJjZSwgY29tcHJlc3Npb25RdWFsaXR5LCAmZW5jb2RlZEltYWdlKSkKKyAgICAgICAgICAg
IHJldHVybiAiZGF0YTosIjsKKyNlbmRpZgogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghUE5H
SW1hZ2VFbmNvZGVyOjplbmNvZGUoc291cmNlLCAmZW5jb2RlZEltYWdlKSkKICAgICAgICAgICAg
IHJldHVybiAiZGF0YTosIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWVuY29kZXJzL3NraWEvV0VCUEltYWdlRW5jb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJbWFnZUVuY29kZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjYzMWNmOTdjZmIxODYxMmY3MzdjODI1NzAxNDg0ZjRlZTdhMjRmNzIKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJ
bWFnZUVuY29kZXIuY3BwCkBAIC0wLDAgKzEsMTM4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAy
MDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXRUJQSW1hZ2VFbmNvZGVyLmgiCisKKyNpZiBVU0UoV0VCUCkKKworI2luY2x1ZGUg
IkltYWdlRGF0YS5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlICJTa0JpdG1hcC5o
IgorI2luY2x1ZGUgIlNrQ29sb3JQcml2LmgiCisjaW5jbHVkZSAid2VicC9lbmNvZGUuaCIKKwor
dHlwZWRlZiBpbnQgKCpXZWJQSW1wb3J0ZXIpKFdlYlBQaWN0dXJlKiBjb25zdCwgY29uc3QgdWlu
dDhfdCogY29uc3QgZGF0YSwgaW50IHJvd1N0cmlkZSk7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RhdGljIGludCB3cml0ZU91dHB1dChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6
ZSwgY29uc3QgV2ViUFBpY3R1cmUqIGNvbnN0IHBpY3R1cmUpCit7CisgICAgc3RhdGljX2Nhc3Q8
VmVjdG9yPHVuc2lnbmVkIGNoYXI+Kj4ocGljdHVyZS0+Y3VzdG9tX3B0ciktPmFwcGVuZChkYXRh
LCBzaXplKTsKKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIGJvb2wgaW1wb3J0UGljdHVyZShj
b25zdCB1bnNpZ25lZCBjaGFyKiBwaXhlbHMsIGJvb2wgcHJlbXVsdGlwbHksIFdlYlBJbXBvcnRl
ciBpbXBvcnRSR0JYLCBXZWJQSW1wb3J0ZXIgaW1wb3J0UkdCLCBXZWJQUGljdHVyZSogcGljdHVy
ZSkKK3sKKyAgICBpZiAoIXByZW11bHRpcGx5KQorICAgICAgICByZXR1cm4gaW1wb3J0UkdCWChw
aWN0dXJlLCBwaXhlbHMsIHBpY3R1cmUtPndpZHRoICogNCk7CisKKyAgICAvLyBXcml0ZSB0aGUg
UkdCIHBpeGVscyB0byBhbiByZ2IgZGF0YSBidWZmZXIsIGFscGhhIHByZW11bHRpcGxpZWQsIHRo
ZW4gaW1wb3J0IHRoZSByZ2IgZGF0YS4KKworICAgIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiByZ2I7
CisgICAgc2l6ZV90IHBpeGVsQ291bnQgPSBwaWN0dXJlLT5oZWlnaHQgKiBwaWN0dXJlLT53aWR0
aDsKKyAgICByZ2IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShwaXhlbENvdW50ICogMyk7CisKKyAg
ICBmb3IgKHVuc2lnbmVkIGNoYXIqIGRhdGEgPSByZ2IuZGF0YSgpOyBwaXhlbENvdW50LS0gPiAw
OyBwaXhlbHMgKz0gNCkgeworICAgICAgICB1bnNpZ25lZCBjaGFyIGFscGhhID0gcGl4ZWxzWzNd
OworICAgICAgICBpZiAoYWxwaGEgIT0gMjU1KSB7CisgICAgICAgICAgICAqZGF0YSsrID0gU2tN
dWxEaXYyNTVSb3VuZChwaXhlbHNbMF0sIGFscGhhKTsKKyAgICAgICAgICAgICpkYXRhKysgPSBT
a011bERpdjI1NVJvdW5kKHBpeGVsc1sxXSwgYWxwaGEpOworICAgICAgICAgICAgKmRhdGErKyA9
IFNrTXVsRGl2MjU1Um91bmQocGl4ZWxzWzJdLCBhbHBoYSk7CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICAqZGF0YSsrID0gcGl4ZWxzWzBdOworICAgICAgICAgICAgKmRhdGErKyA9IHBp
eGVsc1sxXTsKKyAgICAgICAgICAgICpkYXRhKysgPSBwaXhlbHNbMl07CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICByZXR1cm4gaW1wb3J0UkdCKHBpY3R1cmUsIHJnYi5kYXRhKCksIHBpY3R1cmUt
PndpZHRoICogMyk7Cit9CisKK3RlbXBsYXRlIDxib29sIFByZW11bHRpcGx5PiBpbmxpbmUgYm9v
bCBpbXBvcnRQaWN0dXJlQkdSQShjb25zdCB1bnNpZ25lZCBjaGFyKiBwaXhlbHMsIFdlYlBQaWN0
dXJlKiBwaWN0dXJlKQoreworICAgIHJldHVybiBpbXBvcnRQaWN0dXJlKHBpeGVscywgUHJlbXVs
dGlwbHksICZXZWJQUGljdHVyZUltcG9ydEJHUkEsICZXZWJQUGljdHVyZUltcG9ydEJHUiwgcGlj
dHVyZSk7Cit9CisKK3RlbXBsYXRlIDxib29sIFByZW11bHRpcGx5PiBpbmxpbmUgYm9vbCBpbXBv
cnRQaWN0dXJlUkdCQShjb25zdCB1bnNpZ25lZCBjaGFyKiBwaXhlbHMsIFdlYlBQaWN0dXJlKiBw
aWN0dXJlKQoreworICAgIHJldHVybiBpbXBvcnRQaWN0dXJlKHBpeGVscywgUHJlbXVsdGlwbHks
ICZXZWJQUGljdHVyZUltcG9ydFJHQkEsICZXZWJQUGljdHVyZUltcG9ydFJHQiwgcGljdHVyZSk7
Cit9CisKK3N0YXRpYyBib29sIGVuY29kZVBpeGVscyhJbnRTaXplIGltYWdlU2l6ZSwgY29uc3Qg
dW5zaWduZWQgY2hhciogcGl4ZWxzLCBib29sIHByZW11bHRpcGxpZWQsIGludCBxdWFsaXR5LCBW
ZWN0b3I8dW5zaWduZWQgY2hhcj4qIG91dHB1dCkKK3sKKyAgICBXZWJQQ29uZmlnIGNvbmZpZzsK
KyAgICBpZiAoIVdlYlBDb25maWdJbml0KCZjb25maWcpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgV2ViUFBpY3R1cmUgcGljdHVyZTsKKyAgICBpZiAoIVdlYlBQaWN0dXJlSW5pdCgmcGlj
dHVyZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGltYWdlU2l6ZS5jbGFtcE5lZ2F0
aXZlVG9aZXJvKCk7CisgICAgaWYgKCFpbWFnZVNpemUud2lkdGgoKSB8fCBpbWFnZVNpemUud2lk
dGgoKSA+IFdFQlBJbWFnZUVuY29kZXI6Ok1heGltdW1JbWFnZURpbWVuc2lvbikKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHBpY3R1cmUud2lkdGggPSBpbWFnZVNpemUud2lkdGgoKTsKKyAg
ICBpZiAoIWltYWdlU2l6ZS5oZWlnaHQoKSB8fCBpbWFnZVNpemUuaGVpZ2h0KCkgPiBXRUJQSW1h
Z2VFbmNvZGVyOjpNYXhpbXVtSW1hZ2VEaW1lbnNpb24pCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBwaWN0dXJlLmhlaWdodCA9IGltYWdlU2l6ZS5oZWlnaHQoKTsKKworICAgIGlmIChwcmVt
dWx0aXBsaWVkICYmICFpbXBvcnRQaWN0dXJlQkdSQTxmYWxzZT4ocGl4ZWxzLCAmcGljdHVyZSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIXByZW11bHRpcGxpZWQgJiYgIWltcG9y
dFBpY3R1cmVSR0JBPHRydWU+KHBpeGVscywgJnBpY3R1cmUpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBwaWN0dXJlLmN1c3RvbV9wdHIgPSBvdXRwdXQ7CisgICAgcGljdHVyZS53cml0
ZXIgPSAmd3JpdGVPdXRwdXQ7CisgICAgY29uZmlnLnF1YWxpdHkgPSBxdWFsaXR5OworICAgIGNv
bmZpZy5tZXRob2QgPSAzOworCisgICAgYm9vbCBzdWNjZXNzID0gV2ViUEVuY29kZSgmY29uZmln
LCAmcGljdHVyZSk7CisgICAgV2ViUFBpY3R1cmVGcmVlKCZwaWN0dXJlKTsKKyAgICByZXR1cm4g
c3VjY2VzczsKK30KKworYm9vbCBXRUJQSW1hZ2VFbmNvZGVyOjplbmNvZGUoY29uc3QgU2tCaXRt
YXAmIGJpdG1hcCwgaW50IHF1YWxpdHksIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiogb3V0cHV0KQor
eworICAgIFNrQXV0b0xvY2tQaXhlbHMgYml0bWFwTG9jayhiaXRtYXApOworCisgICAgaWYgKGJp
dG1hcC5jb25maWcoKSAhPSBTa0JpdG1hcDo6a0FSR0JfODg4OF9Db25maWcpCisgICAgICAgIHJl
dHVybiBmYWxzZTsgLy8gT25seSBzdXBwb3J0IDMyIGJpdC9waXhlbCBza2lhIGJpdG1hcHMuCisK
KyAgICByZXR1cm4gZW5jb2RlUGl4ZWxzKEludFNpemUoYml0bWFwLndpZHRoKCksIGJpdG1hcC5o
ZWlnaHQoKSksIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIgKj4oYml0bWFwLmdldFBpeGVscygp
KSwgdHJ1ZSwgcXVhbGl0eSwgb3V0cHV0KTsKK30KKworYm9vbCBXRUJQSW1hZ2VFbmNvZGVyOjpl
bmNvZGUoY29uc3QgSW1hZ2VEYXRhJiBpbWFnZURhdGEsIGludCBxdWFsaXR5LCBWZWN0b3I8dW5z
aWduZWQgY2hhcj4qIG91dHB1dCkKK3sKKyAgICByZXR1cm4gZW5jb2RlUGl4ZWxzKGltYWdlRGF0
YS5zaXplKCksIGltYWdlRGF0YS5kYXRhKCktPmRhdGEoKS0+ZGF0YSgpLCBmYWxzZSwgcXVhbGl0
eSwgb3V0cHV0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWVuY29kZXJzL3NraWEvV0VCUElt
YWdlRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tp
YS9XRUJQSW1hZ2VFbmNvZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQ3ODZmNjA2NjM0ZDU5MTFiYjc3MzA1
ZjRlY2NmYzM0ZDliNWFkZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWVuY29kZXJzL3NraWEvV0VCUEltYWdlRW5jb2Rlci5oCkBAIC0wLDAgKzEsNjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisg
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXRUJQSW1hZ2VFbmNvZGVyX2gKKyNkZWZpbmUgV0VCUEltYWdlRW5jb2Rlcl9o
CisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKKyNpZiBVU0UoV0VCUCkKKworY2xhc3MgU2tC
aXRtYXA7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSW1hZ2VEYXRhOworCitjbGFz
cyBXRUJQSW1hZ2VFbmNvZGVyIHsKK3B1YmxpYzoKKyAgICAvLyBFbmNvZGUgdGhlIGlucHV0IGRh
dGEgd2l0aCBhIGNvbXByZXNzaW9uIHF1YWxpdHkgaW4gWzAtMTAwXS4KKyAgICBzdGF0aWMgYm9v
bCBlbmNvZGUoY29uc3QgU2tCaXRtYXAmLCBpbnQgcXVhbGl0eSwgVmVjdG9yPHVuc2lnbmVkIGNo
YXI+Kik7CisgICAgc3RhdGljIGJvb2wgZW5jb2RlKGNvbnN0IEltYWdlRGF0YSYsIGludCBxdWFs
aXR5LCBWZWN0b3I8dW5zaWduZWQgY2hhcj4qKTsKKworICAgIC8vIEZvciBjYWxsZXJzOiBwcm92
aWRlIGEgcmVhc29uYWJsZSBjb21wcmVzc2lvbiBxdWFsaXR5IGRlZmF1bHQuCisgICAgZW51bSBR
dWFsaXR5IHsgRGVmYXVsdENvbXByZXNzaW9uUXVhbGl0eSA9IDgwIH07CisKKyAgICAvLyBNYXhp
bXVtIGltYWdlIHdpZHRoIG9yIGhlaWdodCBhbGxvd2VkIGJ5IHRoZSBXRUJQIHNwZWNpZmljYXRp
b24uCisgICAgZW51bSBEaW1lbnNpb24geyBNYXhpbXVtSW1hZ2VEaW1lbnNpb24gPSAxNjM4MyB9
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggYTU2YmQ1MWRjZmY2MGM4YWY1NjNiNmE0ODdkOWZlOTg1Njg2MjZmMy4uNThhZjdmMTYyMDVj
MTFjMWMzNmJkMzg2MDYxZmU1OGY0MWE5M2RmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEx
LTEwLTE4ICBOb2VsIEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KKworICAgICAgICBb
Q2hyb21pdW1dIEltcGxlbWVudCBjYW52YXMudG9EYXRhVVJMKCJpbWFnZS93ZWJwIikKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMTcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9j
YW52YXMtdG9EYXRhVVJMLXdlYnAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2NhbnZhcy9jYW52YXMtdG9EYXRhVVJMLXdlYnAuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OiBza2lwIHRlc3Qgb24gTUFDIENQ
VS1DRyAoQ29yZUdyYXBoaWNzKQorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBw
ZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMTEtMTAtMTggIEpvaG5u
eSBEaW5nICA8am5kQGNocm9taXVtLm9yZz4KIAogICAgICAgICBFbmFibGUgdG91Y2ggdGVzdHMg
b24gTWFjIExlb3BhcmQuIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2Fu
dmFzLXRvRGF0YVVSTC13ZWJwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy10b0RhdGFVUkwtd2VicC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U0MWJiMzgz
YjM3MjkxMTc0N2I4OTQ2YmExNDQxYmFiZTIyMDNmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFVUkwtd2VicC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyIEBACitQQVNTOiBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS93ZWJwJykKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXRvRGF0YVVSTC13ZWJwLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtdG9EYXRhVVJMLXdlYnAuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43NGU5ZTVkM2Y1NzIyOTIzYjA1YzA3YTk2YjUzZTM0NmIxMDIwZjAzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXRvRGF0YVVSTC13
ZWJwLmh0bWwKQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxwcmUgaWQ9Imxv
ZyI+PC9wcmU+Cis8Y2FudmFzIGlkPSJjYW52YXMiIHdpZHRoPSIxMDAiIGhlaWdodD0iNjAiPjwv
Y2FudmFzPgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBs
b2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJykudGV4dENv
bnRlbnQgKz0gbWVzc2FnZSArICdcbic7Cit9CisKK2Z1bmN0aW9uIGNhbnZhc1BpeGVsU2hvdWxk
QmUoY2FudmFzLCB4LCB5LCBwLCB0b2xlcmFuY2UpCit7CisgICAgdHJ5IHsKKyAgICAgICAgdmFy
IHBpeGVsRGF0YSA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpLmdldEltYWdlRGF0YSh4LCB5LCAx
LCAxKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIHJldHVybiBsb2coJ0ZBSUw6IGNhblwn
dCBhY2Nlc3MgcGl4ZWwgYXQgKCcgKyB4ICsgJywnICsgeSArICcpJyk7CisgICAgfQorCisgICAg
dmFyIGRlbHRhID0gMCwgcGl4ZWwgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChwaXhlbERh
dGEuZGF0YSk7CisgICAgcGl4ZWwuZm9yRWFjaChmdW5jdGlvbihjb21wb25lbnQsIGkpIHsKKyAg
ICAgICAgZGVsdGEgPSBNYXRoLm1heChNYXRoLmFicyhwaXhlbFtpXSAtIHBbaV0pLCBkZWx0YSk7
CisgICAgfSk7CisKKyAgICBwaXhlbCA9ICdwaXhlbCBbJyArIHBpeGVsICsgJ10gYXQgKCcgKyB4
ICsgJywnICsgeSArICcpJzsKKyAgICBpZiAodG9sZXJhbmNlID0gdG9sZXJhbmNlIHx8IDAsIGRl
bHRhID4gdG9sZXJhbmNlKQorICAgICAgICBsb2coJ0ZBSUw6ICcgKyBwaXhlbCArICcsIGV4cGVj
dGVkIFsnICsgcCArICddICsvLScgKyB0b2xlcmFuY2UpOworfQorCit2YXIgY2FudmFzID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbnZhcycpOwordmFyIGNvbnRleHQgPSBjYW52YXMuZ2V0
Q29udGV4dCgnMmQnKTsKKworY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgwLCAxMjgsIDAsIDAu
MCknOworY29udGV4dC5maWxsUmVjdCgwLCAgMCwgMTAwLCAyMCk7Citjb250ZXh0LmZpbGxTdHls
ZSA9ICdyZ2JhKDAsIDEyOCwgMCwgMC41KSc7Citjb250ZXh0LmZpbGxSZWN0KDAsIDIwLCAxMDAs
IDIwKTsKK2NvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMCwgMTI4LCAwLCAxLjApJzsKK2NvbnRl
eHQuZmlsbFJlY3QoMCwgNDAsIDEwMCwgMjApOworCitmdW5jdGlvbiBjaGVja1BpeGVscygpCit7
CisgICAgY2FudmFzLndpZHRoID0gMTAwOyAvLyBSZXNldCAoY2xlYXIpIHRoZSBjYW52YXMgZWxl
bWVudC4KKyAgICBjb250ZXh0LmRyYXdJbWFnZShpbWFnZSwgMCwgMCk7CisgICAgY2FudmFzUGl4
ZWxTaG91bGRCZShjYW52YXMsIDAsIDEwLCBbMCwgICAwLCAwLCAyNTVdLCA4KTsKKyAgICBjYW52
YXNQaXhlbFNob3VsZEJlKGNhbnZhcywgMCwgMzAsIFswLCAgNjQsIDAsIDI1NV0sIDgpOworICAg
IGNhbnZhc1BpeGVsU2hvdWxkQmUoY2FudmFzLCAwLCA1MCwgWzAsIDEyOCwgMCwgMjU1XSwgOCk7
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKwordmFyIGRhdGFVUkwgPSBjYW52
YXMudG9EYXRhVVJMKCdpbWFnZS93ZWJwJyk7CisKK2lmICghZGF0YVVSTC5tYXRjaCgvXmRhdGE6
aW1hZ2VcL3dlYnBbOyxdLykpIHsKKyAgICBsb2coIkZBSUw6IGNhbnZhcy50b0RhdGFVUkwoJ2lt
YWdlL3dlYnAnKSBub3Qgc3VwcG9ydGVkIik7Cit9IGVsc2UgeworICAgIGxvZygiUEFTUzogY2Fu
dmFzLnRvRGF0YVVSTCgnaW1hZ2Uvd2VicCcpIik7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICAoaW1hZ2UgPSBuZXcgSW1hZ2UoKSkub25sb2FkID0gY2hlY2tQaXhlbHM7
CisgICAgaW1hZ2Uuc3JjID0gZGF0YVVSTDsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDU2NTMw
MGVlYjFmZmYwZDg1YWM4MmMzMzEzMmJlODIwMGQwNjAzYmMuLjk4OWNhMTg2NTE3ZTA2Yjg2ZTk5
YzY3ZTc4MjUxZWZmMTAwYTM0ZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTQ5MSw2ICs0OTEsOSBAQCBXT05URklY
IENQVSBHUFUgOiBwbGF0Zm9ybS9jaHJvbWl1bS1ncHUvY29tcG9zaXRpbmcvcnViYmVyYmFuZGlu
ZyA9IElNQUdFCiAvLyBpdCBpc24ndCBpbnN0YWxsZWQgb24gWFAgYnkgZGVmYXVsdC4KIFdPTlRG
SVggWFAgOiBjc3MzL2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy1yZW5kZXJpbmcuaHRtbCA9IFBBU1Mg
RkFJTAogCisvLyBObyB3ZWJwIGVuY29kaW5nIHN1cHBvcnQgb24gTUFDIENvcmVHcmFwaGljcyAo
Q0cpCitXT05URklYIE1BQyBDUFUtQ0cgOiBmYXN0L2NhbnZhcy9jYW52YXMtdG9EYXRhVVJMLXdl
YnAuaHRtbCA9IEZBSUwKKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC8vIExJR0hUVFBECiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCBjMDIzZWVhNmRmYmI4MTg2MWJjMGFmZTgxYWJi
YjViMTg5OTM5NmFmLi4wODUyZDZmNmY4MzI3ZmE0NTUxZmFlNmRkYjViOGZjMDk2YjY3N2FiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtMzkxLDYgKzM5MSw3IEBAIGh0dHAvdGVzdHMv
ZmlsZXN5c3RlbQogaHR0cC90ZXN0cy9zZWN1cml0eS9maWxlc3lzdGVtLWlmcmFtZS1mcm9tLXJl
bW90ZS5odG1sCiAKICMgUmVxdWlyZXMgV2ViUCBzdXBwb3J0LgorZmFzdC9jYW52YXMvY2FudmFz
LXRvRGF0YVVSTC13ZWJwLmh0bWwKIGZhc3QvaW1hZ2VzL3dlYnAtaW1hZ2UtZGVjb2RpbmcuaHRt
bAogCiAjIFJlcXVlc3QgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSBzdXBwb3J0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IGYwM2I0YzZkY2ViNDI5ZjYwNzFjN2I2YjQ4N2Iz
NWQ4MjI4MzA1YWQuLjc4MGUzZjI2NjgyNGFkZmQ2NTE0YjQyZTg3YTVkMmFhNmUyNTVkYTQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0zMDYsNiArMzA2LDcgQEAgcGx1Z2lucy9pZnJh
bWUtc2hpbXMuaHRtbAogcGx1Z2lucy9wbHVnaW4taW5pdGlhdGUtcG9wdXAtd2luZG93Lmh0bWwK
IAogIyBSZXF1aXJlcyBXZWJQIHN1cHBvcnQuCitmYXN0L2NhbnZhcy9jYW52YXMtdG9EYXRhVVJM
LXdlYnAuaHRtbAogZmFzdC9pbWFnZXMvd2VicC1pbWFnZS1kZWNvZGluZy5odG1sCiAKICMgVGlt
ZXMgb3V0IGJlY2F1c2UgcGx1Z2lucyBhcmVuJ3QgYWxsb3dlZCB0byBleGVjdXRlIEpTIGFmdGVy
IE5QUF9EZXN0cm95IGhhcyBiZWVuIGNhbGxlZCBpbiBXZWJLaXQxJ3MgT09QIHBsdWdpbnMgaW1w
bGVtZW50YXRpb24gaHR0cDovL3dlYmtpdC5vcmcvYi80ODkyOQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQKaW5kZXggOWFkNzk4YWRkYzZmZmQzNmZjZWYyOTk2MGU4OGE1MzYzMjYwYWFlMS4uYmM0ZWM5
ZjJkODcyMDEyMDg4OWQ0NjMzOTFmODYwODlmOTJmMmNkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lw
cGVkCkBAIC0xODAxLDYgKzE4MDEsNyBAQCBmYXN0L3BhcnNlci9wcmUtaHRtbDUtcGFyc2VyLXF1
aXJrcy5odG1sCiBmYXN0L21lZGlhL2NvbG9yLWRvZXMtbm90LWluY2x1ZGUtYWxwaGEuaHRtbAog
CiAjIFJlcXVpcmVzIFdlYlAgc3VwcG9ydC4KK2Zhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFVUkwt
d2VicC5odG1sCiBmYXN0L2ltYWdlcy93ZWJwLWltYWdlLWRlY29kaW5nLmh0bWwKIAogIyBbUXRd
IHN2Zy9hbmltYXRpb25zL2FuaW1hdGUtcGF0aC1uZXN0ZWQtdHJhbnNmb3Jtcy5odG1sIGZhaWxz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4IDI2MDljOWZiNzg3Zjc3MTM0NzRiZWQ1OGVk
M2Y0NDIxYTc3ZjlhYWIuLmMyNzE4NWU0YWEwNDRlNDk4ZWQwNjQ0NWJiODllMjEwYTJkNGJlNmUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBAIC0xMjI3LDYgKzEyMjcsNyBAQCBmYXN0L2Rv
bS9ub2Rlc0Zyb21SZWN0LWlubmVyLWRvY3VtZW50cy5odG1sCiBwbHVnaW5zL2lmcmFtZS1zaGlt
cy5odG1sCiAKICMgUmVxdWlyZXMgV2ViUCBzdXBwb3J0LgorZmFzdC9jYW52YXMvY2FudmFzLXRv
RGF0YVVSTC13ZWJwLmh0bWwKIGZhc3QvaW1hZ2VzL3dlYnAtaW1hZ2UtZGVjb2RpbmcuaHRtbAog
CiAjIE1pc3NpbmcgbGF5b3V0VGVzdENvbnRyb2xsZXIuZmluZFN0cmluZygpIGh0dHA6Ly93ZWJr
aXQub3JnL2IvNTAyMzQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113629</attachid>
            <date>2011-11-04 00:40:53 -0700</date>
            <delta_ts>2011-11-04 14:14:41 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-70172-20111104183904.patch</filename>
            <type>text/plain</type>
            <size>19613</size>
            <attacher name="noel gordon">noel.gordon</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkyNTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZDkxOWZkZTkzZmFmYWEx
MDljZDBhZjc3NTE1NGZjOWFiZjY4OThhLi4xNmFjZmQ4MjgzZDhjYmY0ZTk5OTgxMzQ5M2E4OWIx
M2U0MzkyODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMTEtMDMgIE5vZWwg
R29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgorCisgICAgICAgIFtDaHJvbWl1bV0gSW1w
bGVtZW50IGNhbnZhcy50b0RhdGFVUkwoImltYWdlL3dlYnAiKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAxNzIKKworICAgICAgICBSZXZpZXdlZCBi
eSBBZGFtIEJhcnRoLgorCisgICAgICAgIEFkZCBhIHdlYnAgaW1hZ2UgZW5jb2RlciBmb3IgdGhl
IGNocm9taXVtIHNraWEgcG9ydHMsIGFkZCBpdCB0byB0aGUgY2FudmFzCisgICAgICAgIGVsZW1l
bnQgdG9EYXRhVVJMKCkgZmxvdyB3aXRoIHN1cHBvcnQgZm9yIGFuIG9wdGlvbmFsIHF1YWxpdHkg
WzAuMC0xLjBdLgorICAgICAgICBVc2UgYSB3ZWJwIGNvbXByZXNzaW9uIG1ldGhvZCAoMykgdGhh
dCBwcm92aWRlcyBnb29kIHNwZWVkIGFuZCBjb21wcmVzc2lvbgorICAgICAgICBwZXJmb3JtYW5j
ZSBmb3IgdGhpcyBpbWFnZSBmb3JtYXQsIGFuZCB3b3JrcyB3ZWxsIGZvciB2YXJpb3VzIGlucHV0
IGltYWdlCisgICAgICAgIHR5cGVzOiBsaW5lLWFydCwgc2NyZWVuLXNob3RzLCBhbmQgcGhvdG9n
cmFwaGljIGltYWdlcy4KKworICAgICAgICBUZXN0OiBmYXN0L2NhbnZhcy9jYW52YXMtdG9EYXRh
VVJMLXdlYnAuaHRtbAorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL01JTUVUeXBlUmVnaXN0cnlDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEltYWdlTUlNRVR5cGVGb3JFbmNvZGlu
Zyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VUb0RhdGFVUkwpOgorICAgICAgICAqIHBsYXRmb3Jt
L2ltYWdlLWVuY29kZXJzL3NraWEvV0VCUEltYWdlRW5jb2Rlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6d3JpdGVPdXRwdXQpOgorICAgICAgICAoV2ViQ29yZTo6aW1wb3J0UGljdHVy
ZSk6CisgICAgICAgIChXZWJDb3JlOjppbXBvcnRQaWN0dXJlQkdSQSk6CisgICAgICAgIChXZWJD
b3JlOjppbXBvcnRQaWN0dXJlUkdCQSk6CisgICAgICAgIChXZWJDb3JlOjplbmNvZGVQaXhlbHMp
OgorICAgICAgICAoV2ViQ29yZTo6V0VCUEltYWdlRW5jb2Rlcjo6ZW5jb2RlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJbWFnZUVuY29kZXIuaDogQWRkZWQu
CisKIDIwMTEtMTEtMDMgIEJlbiBXZWxscyAgPGJlbndlbGxzQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBPcHRpbWl6ZSBjYW52YXMgZmlsbHMgLyBkcmF3SW1hZ2Ugd2hlbiBjb3ZlcmluZyBlbnRp
cmUgY2FudmFzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMDVmMjEzZTYyZmZiYWE5NzNmNjcxOWEyYjBl
MmQxNmUyMDZiZTJjMS4uNjM5M2Q4MjYxNWU0ZjBhN2Y4MWVmMWYzODFkNDQ3OGM4M2U0MzY3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDAzMiw2ICs0MDMyLDggQEAKICAgICAgICAgICAgICdwbGF0
Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL0pQRUdJbWFnZUVuY29kZXIuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9QTkdJbWFnZUVuY29kZXIuY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1BOR0ltYWdlRW5jb2Rlci5o
JywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJbWFnZUVu
Y29kZXIuY3BwJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dF
QlBJbWFnZUVuY29kZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vaXBob25lL0tleUV2ZW50
Q29kZXNJUGhvbmUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vaXBob25lL0tleUV2ZW50SVBo
b25lLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvQXV0b2RyYWluZWRQb29sLm1tJywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL01JTUVUeXBlUmVn
aXN0cnlDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9NSU1F
VHlwZVJlZ2lzdHJ5Q2hyb21pdW0uY3BwCmluZGV4IGQyMGFjYTQzZGFkYWNmYTIxOWU3MWYwYjU3
NzEwMWNiNzE4YzI2ZDEuLjkxZDA2YTYzMzM5ZWNkN2JiNmY0Yzg2YmVmN2ZhM2M3YTIzYTA0OGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL01JTUVUeXBlUmVn
aXN0cnlDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
TUlNRVR5cGVSZWdpc3RyeUNocm9taXVtLmNwcApAQCAtOTksNyArOTksMTMgQEAgYm9vbCBNSU1F
VHlwZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZEltYWdlUmVzb3VyY2VNSU1FVHlwZShjb25zdCBTdHJp
bmcmIG1pbWVUeXBlKQogCiBib29sIE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VN
SU1FVHlwZUZvckVuY29kaW5nKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiB7Ci0gICAgcmV0dXJu
IG1pbWVUeXBlID09ICJpbWFnZS9qcGVnIiB8fCBtaW1lVHlwZSA9PSAiaW1hZ2UvcG5nIjsKKyAg
ICBpZiAobWltZVR5cGUgPT0gImltYWdlL2pwZWciIHx8IG1pbWVUeXBlID09ICJpbWFnZS9wbmci
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNpZiBVU0UoV0VCUCkgJiYgVVNFKFNLSUEpCisgICAg
aWYgKG1pbWVUeXBlID09ICJpbWFnZS93ZWJwIikKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5k
aWYKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBw
b3J0ZWRKYXZhU2NyaXB0TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJT
a2lhLmNwcAppbmRleCBlMGZjYzJhOTM3OTcwM2IwZWJhN2NhOWE3MWFjYzg2ZTFmODQ4MDZhLi41
NzFjZjFjMjIwNjA5YjFjYzljZjQxMzY1NDNjYWE5YTRlZGY1MDUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEu
Y3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiU2tDb2xvclByaXYuaCIKICNpbmNsdWRl
ICJTa0dwdURldmljZS5oIgogI2luY2x1ZGUgIlNraWFVdGlscy5oIgorI2luY2x1ZGUgIldFQlBJ
bWFnZUVuY29kZXIuaCIKIAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC0z
NzEsNiArMzcyLDE0IEBAIHN0YXRpYyBTdHJpbmcgSW1hZ2VUb0RhdGFVUkwoVCYgc291cmNlLCBj
b25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBkb3VibGUqIHF1CiAgICAgICAgICAgICBjb21w
cmVzc2lvblF1YWxpdHkgPSBzdGF0aWNfY2FzdDxpbnQ+KCpxdWFsaXR5ICogMTAwICsgMC41KTsK
ICAgICAgICAgaWYgKCFKUEVHSW1hZ2VFbmNvZGVyOjplbmNvZGUoc291cmNlLCBjb21wcmVzc2lv
blF1YWxpdHksICZlbmNvZGVkSW1hZ2UpKQogICAgICAgICAgICAgcmV0dXJuICJkYXRhOiwiOwor
I2lmIFVTRShXRUJQKQorICAgIH0gZWxzZSBpZiAobWltZVR5cGUgPT0gImltYWdlL3dlYnAiKSB7
CisgICAgICAgIGludCBjb21wcmVzc2lvblF1YWxpdHkgPSBXRUJQSW1hZ2VFbmNvZGVyOjpEZWZh
dWx0Q29tcHJlc3Npb25RdWFsaXR5OworICAgICAgICBpZiAocXVhbGl0eSAmJiAqcXVhbGl0eSA+
PSAwLjAgJiYgKnF1YWxpdHkgPD0gMS4wKQorICAgICAgICAgICAgY29tcHJlc3Npb25RdWFsaXR5
ID0gc3RhdGljX2Nhc3Q8aW50PigqcXVhbGl0eSAqIDEwMCArIDAuNSk7CisgICAgICAgIGlmICgh
V0VCUEltYWdlRW5jb2Rlcjo6ZW5jb2RlKHNvdXJjZSwgY29tcHJlc3Npb25RdWFsaXR5LCAmZW5j
b2RlZEltYWdlKSkKKyAgICAgICAgICAgIHJldHVybiAiZGF0YTosIjsKKyNlbmRpZgogICAgIH0g
ZWxzZSB7CiAgICAgICAgIGlmICghUE5HSW1hZ2VFbmNvZGVyOjplbmNvZGUoc291cmNlLCAmZW5j
b2RlZEltYWdlKSkKICAgICAgICAgICAgIHJldHVybiAiZGF0YTosIjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWVuY29kZXJzL3NraWEvV0VCUEltYWdlRW5jb2Rl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1lbmNvZGVycy9za2lhL1dFQlBJ
bWFnZUVuY29kZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzMWNmOTdjZmIxODYxMmY3MzdjODI1NzAxNDg0
ZjRlZTdhMjRmNzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1lbmNvZGVycy9za2lhL1dFQlBJbWFnZUVuY29kZXIuY3BwCkBAIC0wLDAgKzEsMTM4IEBA
CisvKgorICogQ29weXJpZ2h0IChjKSAyMDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXRUJQSW1hZ2VFbmNvZGVyLmgiCisKKyNp
ZiBVU0UoV0VCUCkKKworI2luY2x1ZGUgIkltYWdlRGF0YS5oIgorI2luY2x1ZGUgIkludFNpemUu
aCIKKyNpbmNsdWRlICJTa0JpdG1hcC5oIgorI2luY2x1ZGUgIlNrQ29sb3JQcml2LmgiCisjaW5j
bHVkZSAid2VicC9lbmNvZGUuaCIKKwordHlwZWRlZiBpbnQgKCpXZWJQSW1wb3J0ZXIpKFdlYlBQ
aWN0dXJlKiBjb25zdCwgY29uc3QgdWludDhfdCogY29uc3QgZGF0YSwgaW50IHJvd1N0cmlkZSk7
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGludCB3cml0ZU91dHB1dChjb25zdCB1
aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwgY29uc3QgV2ViUFBpY3R1cmUqIGNvbnN0IHBpY3R1
cmUpCit7CisgICAgc3RhdGljX2Nhc3Q8VmVjdG9yPHVuc2lnbmVkIGNoYXI+Kj4ocGljdHVyZS0+
Y3VzdG9tX3B0ciktPmFwcGVuZChkYXRhLCBzaXplKTsKKyAgICByZXR1cm4gMTsKK30KKworc3Rh
dGljIGJvb2wgaW1wb3J0UGljdHVyZShjb25zdCB1bnNpZ25lZCBjaGFyKiBwaXhlbHMsIGJvb2wg
cHJlbXVsdGlwbHksIFdlYlBJbXBvcnRlciBpbXBvcnRSR0JYLCBXZWJQSW1wb3J0ZXIgaW1wb3J0
UkdCLCBXZWJQUGljdHVyZSogcGljdHVyZSkKK3sKKyAgICBpZiAoIXByZW11bHRpcGx5KQorICAg
ICAgICByZXR1cm4gaW1wb3J0UkdCWChwaWN0dXJlLCBwaXhlbHMsIHBpY3R1cmUtPndpZHRoICog
NCk7CisKKyAgICAvLyBXcml0ZSB0aGUgUkdCIHBpeGVscyB0byBhbiByZ2IgZGF0YSBidWZmZXIs
IGFscGhhIHByZW11bHRpcGxpZWQsIHRoZW4gaW1wb3J0IHRoZSByZ2IgZGF0YS4KKworICAgIFZl
Y3Rvcjx1bnNpZ25lZCBjaGFyPiByZ2I7CisgICAgc2l6ZV90IHBpeGVsQ291bnQgPSBwaWN0dXJl
LT5oZWlnaHQgKiBwaWN0dXJlLT53aWR0aDsKKyAgICByZ2IucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eShwaXhlbENvdW50ICogMyk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGNoYXIqIGRhdGEgPSByZ2Iu
ZGF0YSgpOyBwaXhlbENvdW50LS0gPiAwOyBwaXhlbHMgKz0gNCkgeworICAgICAgICB1bnNpZ25l
ZCBjaGFyIGFscGhhID0gcGl4ZWxzWzNdOworICAgICAgICBpZiAoYWxwaGEgIT0gMjU1KSB7Cisg
ICAgICAgICAgICAqZGF0YSsrID0gU2tNdWxEaXYyNTVSb3VuZChwaXhlbHNbMF0sIGFscGhhKTsK
KyAgICAgICAgICAgICpkYXRhKysgPSBTa011bERpdjI1NVJvdW5kKHBpeGVsc1sxXSwgYWxwaGEp
OworICAgICAgICAgICAgKmRhdGErKyA9IFNrTXVsRGl2MjU1Um91bmQocGl4ZWxzWzJdLCBhbHBo
YSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAqZGF0YSsrID0gcGl4ZWxzWzBdOwor
ICAgICAgICAgICAgKmRhdGErKyA9IHBpeGVsc1sxXTsKKyAgICAgICAgICAgICpkYXRhKysgPSBw
aXhlbHNbMl07CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gaW1wb3J0UkdCKHBpY3R1
cmUsIHJnYi5kYXRhKCksIHBpY3R1cmUtPndpZHRoICogMyk7Cit9CisKK3RlbXBsYXRlIDxib29s
IFByZW11bHRpcGx5PiBpbmxpbmUgYm9vbCBpbXBvcnRQaWN0dXJlQkdSQShjb25zdCB1bnNpZ25l
ZCBjaGFyKiBwaXhlbHMsIFdlYlBQaWN0dXJlKiBwaWN0dXJlKQoreworICAgIHJldHVybiBpbXBv
cnRQaWN0dXJlKHBpeGVscywgUHJlbXVsdGlwbHksICZXZWJQUGljdHVyZUltcG9ydEJHUkEsICZX
ZWJQUGljdHVyZUltcG9ydEJHUiwgcGljdHVyZSk7Cit9CisKK3RlbXBsYXRlIDxib29sIFByZW11
bHRpcGx5PiBpbmxpbmUgYm9vbCBpbXBvcnRQaWN0dXJlUkdCQShjb25zdCB1bnNpZ25lZCBjaGFy
KiBwaXhlbHMsIFdlYlBQaWN0dXJlKiBwaWN0dXJlKQoreworICAgIHJldHVybiBpbXBvcnRQaWN0
dXJlKHBpeGVscywgUHJlbXVsdGlwbHksICZXZWJQUGljdHVyZUltcG9ydFJHQkEsICZXZWJQUGlj
dHVyZUltcG9ydFJHQiwgcGljdHVyZSk7Cit9CisKK3N0YXRpYyBib29sIGVuY29kZVBpeGVscyhJ
bnRTaXplIGltYWdlU2l6ZSwgY29uc3QgdW5zaWduZWQgY2hhciogcGl4ZWxzLCBib29sIHByZW11
bHRpcGxpZWQsIGludCBxdWFsaXR5LCBWZWN0b3I8dW5zaWduZWQgY2hhcj4qIG91dHB1dCkKK3sK
KyAgICBXZWJQQ29uZmlnIGNvbmZpZzsKKyAgICBpZiAoIVdlYlBDb25maWdJbml0KCZjb25maWcp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgV2ViUFBpY3R1cmUgcGljdHVyZTsKKyAgICBp
ZiAoIVdlYlBQaWN0dXJlSW5pdCgmcGljdHVyZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGltYWdlU2l6ZS5jbGFtcE5lZ2F0aXZlVG9aZXJvKCk7CisgICAgaWYgKCFpbWFnZVNpemUu
d2lkdGgoKSB8fCBpbWFnZVNpemUud2lkdGgoKSA+IFdFQlBJbWFnZUVuY29kZXI6Ok1heGltdW1J
bWFnZURpbWVuc2lvbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBpY3R1cmUud2lkdGgg
PSBpbWFnZVNpemUud2lkdGgoKTsKKyAgICBpZiAoIWltYWdlU2l6ZS5oZWlnaHQoKSB8fCBpbWFn
ZVNpemUuaGVpZ2h0KCkgPiBXRUJQSW1hZ2VFbmNvZGVyOjpNYXhpbXVtSW1hZ2VEaW1lbnNpb24p
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwaWN0dXJlLmhlaWdodCA9IGltYWdlU2l6ZS5o
ZWlnaHQoKTsKKworICAgIGlmIChwcmVtdWx0aXBsaWVkICYmICFpbXBvcnRQaWN0dXJlQkdSQTxm
YWxzZT4ocGl4ZWxzLCAmcGljdHVyZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
IXByZW11bHRpcGxpZWQgJiYgIWltcG9ydFBpY3R1cmVSR0JBPHRydWU+KHBpeGVscywgJnBpY3R1
cmUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBwaWN0dXJlLmN1c3RvbV9wdHIgPSBv
dXRwdXQ7CisgICAgcGljdHVyZS53cml0ZXIgPSAmd3JpdGVPdXRwdXQ7CisgICAgY29uZmlnLnF1
YWxpdHkgPSBxdWFsaXR5OworICAgIGNvbmZpZy5tZXRob2QgPSAzOworCisgICAgYm9vbCBzdWNj
ZXNzID0gV2ViUEVuY29kZSgmY29uZmlnLCAmcGljdHVyZSk7CisgICAgV2ViUFBpY3R1cmVGcmVl
KCZwaWN0dXJlKTsKKyAgICByZXR1cm4gc3VjY2VzczsKK30KKworYm9vbCBXRUJQSW1hZ2VFbmNv
ZGVyOjplbmNvZGUoY29uc3QgU2tCaXRtYXAmIGJpdG1hcCwgaW50IHF1YWxpdHksIFZlY3Rvcjx1
bnNpZ25lZCBjaGFyPiogb3V0cHV0KQoreworICAgIFNrQXV0b0xvY2tQaXhlbHMgYml0bWFwTG9j
ayhiaXRtYXApOworCisgICAgaWYgKGJpdG1hcC5jb25maWcoKSAhPSBTa0JpdG1hcDo6a0FSR0Jf
ODg4OF9Db25maWcpCisgICAgICAgIHJldHVybiBmYWxzZTsgLy8gT25seSBzdXBwb3J0IDMyIGJp
dC9waXhlbCBza2lhIGJpdG1hcHMuCisKKyAgICByZXR1cm4gZW5jb2RlUGl4ZWxzKEludFNpemUo
Yml0bWFwLndpZHRoKCksIGJpdG1hcC5oZWlnaHQoKSksIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNo
YXIgKj4oYml0bWFwLmdldFBpeGVscygpKSwgdHJ1ZSwgcXVhbGl0eSwgb3V0cHV0KTsKK30KKwor
Ym9vbCBXRUJQSW1hZ2VFbmNvZGVyOjplbmNvZGUoY29uc3QgSW1hZ2VEYXRhJiBpbWFnZURhdGEs
IGludCBxdWFsaXR5LCBWZWN0b3I8dW5zaWduZWQgY2hhcj4qIG91dHB1dCkKK3sKKyAgICByZXR1
cm4gZW5jb2RlUGl4ZWxzKGltYWdlRGF0YS5zaXplKCksIGltYWdlRGF0YS5kYXRhKCktPmRhdGEo
KS0+ZGF0YSgpLCBmYWxzZSwgcXVhbGl0eSwgb3V0cHV0KTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWVuY29kZXJzL3NraWEvV0VCUEltYWdlRW5jb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW1hZ2UtZW5jb2RlcnMvc2tpYS9XRUJQSW1hZ2VFbmNvZGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWQ3ODZmNjA2NjM0ZDU5MTFiYjc3MzA1ZjRlY2NmYzM0ZDliNWFkZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWVuY29kZXJzL3NraWEvV0VCUEltYWdl
RW5jb2Rlci5oCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEsIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXRUJQSW1hZ2VFbmNvZGVyX2gKKyNk
ZWZpbmUgV0VCUEltYWdlRW5jb2Rlcl9oCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKKyNp
ZiBVU0UoV0VCUCkKKworY2xhc3MgU2tCaXRtYXA7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgSW1hZ2VEYXRhOworCitjbGFzcyBXRUJQSW1hZ2VFbmNvZGVyIHsKK3B1YmxpYzoKKyAg
ICAvLyBFbmNvZGUgdGhlIGlucHV0IGRhdGEgd2l0aCBhIGNvbXByZXNzaW9uIHF1YWxpdHkgaW4g
WzAtMTAwXS4KKyAgICBzdGF0aWMgYm9vbCBlbmNvZGUoY29uc3QgU2tCaXRtYXAmLCBpbnQgcXVh
bGl0eSwgVmVjdG9yPHVuc2lnbmVkIGNoYXI+Kik7CisgICAgc3RhdGljIGJvb2wgZW5jb2RlKGNv
bnN0IEltYWdlRGF0YSYsIGludCBxdWFsaXR5LCBWZWN0b3I8dW5zaWduZWQgY2hhcj4qKTsKKwor
ICAgIC8vIEZvciBjYWxsZXJzOiBwcm92aWRlIGEgcmVhc29uYWJsZSBjb21wcmVzc2lvbiBxdWFs
aXR5IGRlZmF1bHQuCisgICAgZW51bSBRdWFsaXR5IHsgRGVmYXVsdENvbXByZXNzaW9uUXVhbGl0
eSA9IDgwIH07CisKKyAgICAvLyBNYXhpbXVtIGltYWdlIHdpZHRoIG9yIGhlaWdodCBhbGxvd2Vk
IGJ5IHRoZSBXRUJQIHNwZWNpZmljYXRpb24uCisgICAgZW51bSBEaW1lbnNpb24geyBNYXhpbXVt
SW1hZ2VEaW1lbnNpb24gPSAxNjM4MyB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmYzYWUyZDMxNTYzMGNkOGE2MzI2N2MxYzY4MjQ5
YmM1YzlkMWM0Zi4uNjlhYTI2MWJlN2QxZDUxMDc3Y2M1NjM2MzQ5ZDZmMjA4MGY4OTUzMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTExLTAzICBOb2VsIEdvcmRvbiAgPG5vZWwuZ29yZG9u
QGdtYWlsLmNvbT4KKworICAgICAgICBbQ2hyb21pdW1dIEltcGxlbWVudCBjYW52YXMudG9EYXRh
VVJMKCJpbWFnZS93ZWJwIikKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcwMTcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAg
ICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFVUkwtd2VicC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFVUkwtd2VicC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6
IHNraXAgdGVzdCBvbiBNQUMgQ1BVLUNHIChDb3JlR3JhcGhpY3MpCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoK
KwogMjAxMS0xMS0wMyAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIEpTIFRlc3QgSGFybmVzczogUmVtb3ZlIHN1Y2Nlc3NmdWxseVBhcnNlZCBmcm9tIG1vcmUg
dGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFV
Ukwtd2VicC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtdG9E
YXRhVVJMLXdlYnAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlNDFiYjM4M2IzNzI5MTE3NDdi
ODk0NmJhMTQ0MWJhYmUyMjAzZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9jYW52YXMtdG9EYXRhVVJMLXdlYnAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBA
QAorUEFTUzogY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2Uvd2VicCcpCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFVUkwtd2VicC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLXRvRGF0YVVSTC13ZWJwLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzRlOWU1ZDNmNTcyMjkyM2IwNWMwN2E5NmI1M2UzNDZiMTAyMGYwMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFVUkwtd2VicC5odG1sCkBA
IC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8cHJlIGlkPSJsb2ciPjwvcHJlPgor
PGNhbnZhcyBpZD0iY2FudmFzIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjYwIj48L2NhbnZhcz4KKwor
PHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgd2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gbG9nKG1lc3NhZ2Up
Cit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpLnRleHRDb250ZW50ICs9IG1l
c3NhZ2UgKyAnXG4nOworfQorCitmdW5jdGlvbiBjYW52YXNQaXhlbFNob3VsZEJlKGNhbnZhcywg
eCwgeSwgcCwgdG9sZXJhbmNlKQoreworICAgIHRyeSB7CisgICAgICAgIHZhciBwaXhlbERhdGEg
PSBjYW52YXMuZ2V0Q29udGV4dCgnMmQnKS5nZXRJbWFnZURhdGEoeCwgeSwgMSwgMSk7CisgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICByZXR1cm4gbG9nKCdGQUlMOiBjYW5cJ3QgYWNjZXNzIHBp
eGVsIGF0ICgnICsgeCArICcsJyArIHkgKyAnKScpOworICAgIH0KKworICAgIHZhciBkZWx0YSA9
IDAsIHBpeGVsID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocGl4ZWxEYXRhLmRhdGEpOwor
ICAgIHBpeGVsLmZvckVhY2goZnVuY3Rpb24oY29tcG9uZW50LCBpKSB7CisgICAgICAgIGRlbHRh
ID0gTWF0aC5tYXgoTWF0aC5hYnMocGl4ZWxbaV0gLSBwW2ldKSwgZGVsdGEpOworICAgIH0pOwor
CisgICAgcGl4ZWwgPSAncGl4ZWwgWycgKyBwaXhlbCArICddIGF0ICgnICsgeCArICcsJyArIHkg
KyAnKSc7CisgICAgaWYgKHRvbGVyYW5jZSA9IHRvbGVyYW5jZSB8fCAwLCBkZWx0YSA+IHRvbGVy
YW5jZSkKKyAgICAgICAgbG9nKCdGQUlMOiAnICsgcGl4ZWwgKyAnLCBleHBlY3RlZCBbJyArIHAg
KyAnXSArLy0nICsgdG9sZXJhbmNlKTsKK30KKwordmFyIGNhbnZhcyA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdjYW52YXMnKTsKK3ZhciBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJk
Jyk7CisKK2NvbnRleHQuZmlsbFN0eWxlID0gJ3JnYmEoMCwgMTI4LCAwLCAwLjApJzsKK2NvbnRl
eHQuZmlsbFJlY3QoMCwgIDAsIDEwMCwgMjApOworY29udGV4dC5maWxsU3R5bGUgPSAncmdiYSgw
LCAxMjgsIDAsIDAuNSknOworY29udGV4dC5maWxsUmVjdCgwLCAyMCwgMTAwLCAyMCk7Citjb250
ZXh0LmZpbGxTdHlsZSA9ICdyZ2JhKDAsIDEyOCwgMCwgMS4wKSc7Citjb250ZXh0LmZpbGxSZWN0
KDAsIDQwLCAxMDAsIDIwKTsKKworZnVuY3Rpb24gY2hlY2tQaXhlbHMoKQoreworICAgIGNhbnZh
cy53aWR0aCA9IDEwMDsgLy8gUmVzZXQgKGNsZWFyKSB0aGUgY2FudmFzIGVsZW1lbnQuCisgICAg
Y29udGV4dC5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDApOworICAgIGNhbnZhc1BpeGVsU2hvdWxkQmUo
Y2FudmFzLCAwLCAxMCwgWzAsICAgMCwgMCwgMjU1XSwgOCk7CisgICAgY2FudmFzUGl4ZWxTaG91
bGRCZShjYW52YXMsIDAsIDMwLCBbMCwgIDY0LCAwLCAyNTVdLCA4KTsKKyAgICBjYW52YXNQaXhl
bFNob3VsZEJlKGNhbnZhcywgMCwgNTAsIFswLCAxMjgsIDAsIDI1NV0sIDgpOworICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK3ZhciBkYXRhVVJMID0gY2FudmFzLnRvRGF0YVVS
TCgnaW1hZ2Uvd2VicCcpOworCitpZiAoIWRhdGFVUkwubWF0Y2goL15kYXRhOmltYWdlXC93ZWJw
WzssXS8pKSB7CisgICAgbG9nKCJGQUlMOiBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS93ZWJwJykg
bm90IHN1cHBvcnRlZCIpOworfSBlbHNlIHsKKyAgICBsb2coIlBBU1M6IGNhbnZhcy50b0RhdGFV
UkwoJ2ltYWdlL3dlYnAnKSIpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgKGltYWdlID0gbmV3IEltYWdlKCkpLm9ubG9hZCA9IGNoZWNrUGl4ZWxzOworICAgIGltYWdl
LnNyYyA9IGRhdGFVUkw7Cit9Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBlMjZkNzdkYzMwOGFhYWE0
MWIyOTM2YzM1MzA3NmRlZjk4Mzc4ZGNmLi40N2E4MGFjMjFiZTA1NGNmOGMyYTkyNmU0NWM1NDMz
OGE1YTA2YWZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0
X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVz
dF9leHBlY3RhdGlvbnMudHh0CkBAIC00ODMsNiArNDgzLDkgQEAgV09OVEZJWCBDUFUgR1BVIDog
cGxhdGZvcm0vY2hyb21pdW0tZ3B1L2NvbXBvc2l0aW5nL3J1YmJlcmJhbmRpbmcgPSBJTUFHRQog
Ly8gaXQgaXNuJ3QgaW5zdGFsbGVkIG9uIFhQIGJ5IGRlZmF1bHQuCiBXT05URklYIFdJTiA6IGNz
czMvZm9udC1mZWF0dXJlLXNldHRpbmdzLXJlbmRlcmluZy5odG1sID0gUEFTUyBGQUlMCiAKKy8v
IE5vIHdlYnAgZW5jb2Rpbmcgc3VwcG9ydCBvbiBNQUMgQ29yZUdyYXBoaWNzIChDRykKK1dPTlRG
SVggTUFDIENQVS1DRyA6IGZhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFVUkwtd2VicC5odG1sID0g
RkFJTAorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gTElHSFRUUEQKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9Ta2lwcGVkCmluZGV4IDZjY2E3ZTNkMmFlNTg3MjQ0OGI0OWY5ZDgxY2I3NDZkZDBhMGRi
NWUuLjEwNzAyZTIyZDQzMGNiMTU2MWVmZDhiY2E0MWQ1NjQxNGNhMDEyZWMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkCkBAIC0zOTQsNiArMzk0LDcgQEAgaHR0cC90ZXN0cy9maWxlc3lzdGVt
CiBodHRwL3Rlc3RzL3NlY3VyaXR5L2ZpbGVzeXN0ZW0taWZyYW1lLWZyb20tcmVtb3RlLmh0bWwK
IAogIyBSZXF1aXJlcyBXZWJQIHN1cHBvcnQuCitmYXN0L2NhbnZhcy9jYW52YXMtdG9EYXRhVVJM
LXdlYnAuaHRtbAogZmFzdC9pbWFnZXMvd2VicC1pbWFnZS1kZWNvZGluZy5odG1sCiAKICMgUmVx
dWVzdCBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpIHN1cHBvcnQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1NraXBwZWQKaW5kZXggMTIyM2EyYjU1NDBjYTNjOTg4ZjFlNGE5YzkwODI3ZTIyMjUyMjE1
Ni4uZDhmZjdmZjI3NzMzZTQwOWRmMTMxZDRhMjkxMTBjNWI3MTgyZGI2YiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1NraXBwZWQKQEAgLTMxOCw2ICszMTgsNyBAQCBwbHVnaW5zL2lmcmFtZS1zaGltcy5o
dG1sCiBwbHVnaW5zL3BsdWdpbi1pbml0aWF0ZS1wb3B1cC13aW5kb3cuaHRtbAogCiAjIFJlcXVp
cmVzIFdlYlAgc3VwcG9ydC4KK2Zhc3QvY2FudmFzL2NhbnZhcy10b0RhdGFVUkwtd2VicC5odG1s
CiBmYXN0L2ltYWdlcy93ZWJwLWltYWdlLWRlY29kaW5nLmh0bWwKIAogIyBUaW1lcyBvdXQgYmVj
YXVzZSBwbHVnaW5zIGFyZW4ndCBhbGxvd2VkIHRvIGV4ZWN1dGUgSlMgYWZ0ZXIgTlBQX0Rlc3Ry
b3kgaGFzIGJlZW4gY2FsbGVkIGluIFdlYktpdDEncyBPT1AgcGx1Z2lucyBpbXBsZW1lbnRhdGlv
biBodHRwOi8vd2Via2l0Lm9yZy9iLzQ4OTI5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCA0
OGJiZDI1YmJiNTAyZGMwZjJjMzdmM2NjMzAzOTc2N2NmNjViOWVhLi5jMGE1MGE0OWI2NWVhNmMy
YzAxOTgxZDdlZmZiMTNkNDg4N2E2MTE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTE3
OTgsNiArMTc5OCw3IEBAIGZhc3QvcGFyc2VyL3ByZS1odG1sNS1wYXJzZXItcXVpcmtzLmh0bWwK
IGZhc3QvbWVkaWEvY29sb3ItZG9lcy1ub3QtaW5jbHVkZS1hbHBoYS5odG1sCiAKICMgUmVxdWly
ZXMgV2ViUCBzdXBwb3J0LgorZmFzdC9jYW52YXMvY2FudmFzLXRvRGF0YVVSTC13ZWJwLmh0bWwK
IGZhc3QvaW1hZ2VzL3dlYnAtaW1hZ2UtZGVjb2RpbmcuaHRtbAogCiAjIFtRdF0gc3ZnL2FuaW1h
dGlvbnMvYW5pbWF0ZS1wYXRoLW5lc3RlZC10cmFuc2Zvcm1zLmh0bWwgZmFpbHMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQKaW5kZXggMTYxZTQ1YTc5Y2I3YzM2OTNhODdkNWNiMzMwNWE4ZjdhMDlj
ZTEzZS4uNGNlZjA3ZDM3YTFjNTBlZTYyZjQ1NWNkZDQ4MTlhMmIyYjkwZjZlMiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1NraXBwZWQKQEAgLTEyMjcsNiArMTIyNyw3IEBAIGZhc3QvZG9tL25vZGVzRnJv
bVJlY3QtaW5uZXItZG9jdW1lbnRzLmh0bWwKIHBsdWdpbnMvaWZyYW1lLXNoaW1zLmh0bWwKIAog
IyBSZXF1aXJlcyBXZWJQIHN1cHBvcnQuCitmYXN0L2NhbnZhcy9jYW52YXMtdG9EYXRhVVJMLXdl
YnAuaHRtbAogZmFzdC9pbWFnZXMvd2VicC1pbWFnZS1kZWNvZGluZy5odG1sCiAKICMgTWlzc2lu
ZyBsYXlvdXRUZXN0Q29udHJvbGxlci5maW5kU3RyaW5nKCkgaHR0cDovL3dlYmtpdC5vcmcvYi81
MDIzNAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>