<?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>126561</bug_id>
          
          <creation_ts>2014-01-06 21:13:32 -0800</creation_ts>
          <short_desc>[JS] Should be able to create a promise by calling the Promise constructor as a function</short_desc>
          <delta_ts>2014-01-11 11:02:34 -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>New Bugs</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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>bunhere</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>oliver</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>964869</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-01-06 21:13:32 -0800</bug_when>
    <thetext>[JS] Should be able to create a promise by calling the Promise constructor as a function</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964872</commentid>
    <comment_count>1</comment_count>
      <attachid>220489</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-01-06 21:16:10 -0800</bug_when>
    <thetext>Created attachment 220489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965191</commentid>
    <comment_count>2</comment_count>
      <attachid>220489</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-01-07 15:22:18 -0800</bug_when>
    <thetext>Comment on attachment 220489
Patch

r=me

Much JavaScript. Wow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965733</commentid>
    <comment_count>3</comment_count>
      <attachid>220489</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-08 18:34:00 -0800</bug_when>
    <thetext>Comment on attachment 220489
Patch

Clearing flags on attachment: 220489

Committed r161538: &lt;http://trac.webkit.org/changeset/161538&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965734</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-08 18:34:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966806</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-01-11 10:58:48 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966807</commentid>
    <comment_count>6</comment_count>
      <attachid>220937</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-01-11 10:58:51 -0800</bug_when>
    <thetext>Created attachment 220937
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220489</attachid>
            <date>2014-01-06 21:16:10 -0800</date>
            <delta_ts>2014-01-11 10:58:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126561-20140106211609.patch</filename>
            <type>text/plain</type>
            <size>6437</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYxNDAxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDE0LTAxLTA2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0pT
XSBTaG91bGQgYmUgYWJsZSB0byBjcmVhdGUgYSBwcm9taXNlIGJ5IGNhbGxpbmcgdGhlIFByb21p
c2UgY29uc3RydWN0b3IgYXMgYSBmdW5jdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNQcm9taXNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKToKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIGNhbGxpbmcgdGhlIFByb21pc2UgY29uc3RydWN0b3IgYXMgYSBm
dW5jdGlvbiAoZS5nLiB2YXIgcCA9IFByb21pc2UoLi4uKSwgbm90ZQorICAgICAgICB0aGUgbWlz
c2luZyAibmV3IikuCisKIDIwMTQtMDEtMDYgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNv
bT4KIAogICAgICAgICBNYWtlIHRoZSBkaWZmZXJlbnQgZmxhdm9ycyBvZiBpbnRlZ2VyIGFyaXRo
bWV0aWMgbW9yZSBleHBsaWNpdCwgYW5kIGRvbid0IHJlbHkgb24gKHBvc3NpYmx5IHN0YWxlKSBy
ZXN1bHRzIG9mIHRoZSBiYWNrd2FyZHMgcHJvcGFnYXRvciB0byBkZWNpZGUgaW50ZWdlciBhcml0
aG1ldGljIHNlbWFudGljcwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQ
cm9taXNlQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTYxMzc0KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9taXNlQ29uc3RydWN0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNTMsMTAgKzE1MywxMCBAQCBDb25zdHJ1Y3RUeXBlIEpTUHJvbWlz
ZUNvbnN0cnVjdG9yOjpnZXRDCiAgICAgcmV0dXJuIENvbnN0cnVjdFR5cGVIb3N0OwogfQogCi1D
YWxsVHlwZSBKU1Byb21pc2VDb25zdHJ1Y3Rvcjo6Z2V0Q2FsbERhdGEoSlNDZWxsKiwgQ2FsbERh
dGEmKQorQ2FsbFR5cGUgSlNQcm9taXNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKEpTQ2VsbCos
IENhbGxEYXRhJiBjYWxsRGF0YSkKIHsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50Ci0gICAgcmV0
dXJuIENhbGxUeXBlTm9uZTsKKyAgICBjYWxsRGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1
Y3RQcm9taXNlOworICAgIHJldHVybiBDYWxsVHlwZUhvc3Q7CiB9CiAKIGJvb2wgSlNQcm9taXNl
Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE2MTQwMSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE0LTAxLTA2ICBTYW0gV2VpbmlnICA8c2Ft
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0pTXSBTaG91bGQgYmUgYWJsZSB0byBjcmVhdGUgYSBw
cm9taXNlIGJ5IGNhbGxpbmcgdGhlIFByb21pc2UgY29uc3RydWN0b3IgYXMgYSBmdW5jdGlvbgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NTYxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9kb20v
UHJvbWlzZS10eXBlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZG9tL1Byb21pc2UtdHlw
ZXMuaHRtbDoKKyAgICAgICAgQWRkIHRlc3QgZm9yIHVzaW5nIGNhbGxpbmcgYSBQcm9taXNlIGNv
bnN0cnVjdG9yIGFzIGEgZnVuY3Rpb24uCisKIDIwMTQtMDEtMDYgIEJyZW50IEZ1bGdoYW0gIDxi
ZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdMXSBVbnJldmlld2VkIGJ1aWxkIGZp
eCBmb3IgTW91bnRhaW4gTGlvbiBkcml2ZXJzLgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL1By
b21pc2UtdHlwZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2Rv
bS9Qcm9taXNlLXR5cGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTYxMzc0KQorKysgTGF5b3V0
VGVzdHMvanMvZG9tL1Byb21pc2UtdHlwZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xNSwxNyArMTUsMjcgQEAgUEFTUyBhUHJvbWlzZS50aGVuLmxlbmd0aCBpcyAyCiBQQVNTIGFQ
cm9taXNlLmNhdGNoIGlzIGRlZmluZWQuCiBQQVNTIGFQcm9taXNlLmNhdGNoIGlzIGFuIGluc3Rh
bmNlIG9mIEZ1bmN0aW9uCiBQQVNTIGFQcm9taXNlLmNhdGNoLmxlbmd0aCBpcyAxCithUHJvbWlz
ZTIgPSBQcm9taXNlKC4uLikKK1BBU1MgYVByb21pc2UyIGlzIGFuIGluc3RhbmNlIG9mIFByb21p
c2UKK1BBU1MgU3RyaW5nKGFQcm9taXNlMikgaXMgJ1tvYmplY3QgUHJvbWlzZV0nCiAKIFByb21p
c2UgY29uc3RydWN0b3IKIAogUEFTUyBQcm9taXNlLmxlbmd0aCBpcyAxCiBQQVNTIG5ldyBQcm9t
aXNlKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUHJvbWlzZSBjb25zdHJ1Y3RvciB0YWtl
cyBhIGZ1bmN0aW9uIGFyZ3VtZW50LgorUEFTUyBQcm9taXNlKCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogUHJvbWlzZSBjb25zdHJ1Y3RvciB0YWtlcyBhIGZ1bmN0aW9uIGFyZ3VtZW50Lgog
UEFTUyBuZXcgUHJvbWlzZSgxKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBQcm9taXNlIGNv
bnN0cnVjdG9yIHRha2VzIGEgZnVuY3Rpb24gYXJndW1lbnQuCiBQQVNTIG5ldyBQcm9taXNlKCdo
ZWxsbycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFByb21pc2UgY29uc3RydWN0b3IgdGFr
ZXMgYSBmdW5jdGlvbiBhcmd1bWVudC4KIFBBU1MgbmV3IFByb21pc2UoW10pIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFByb21pc2UgY29uc3RydWN0b3IgdGFrZXMgYSBmdW5jdGlvbiBhcmd1
bWVudC4KIFBBU1MgbmV3IFByb21pc2Uoe30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFBy
b21pc2UgY29uc3RydWN0b3IgdGFrZXMgYSBmdW5jdGlvbiBhcmd1bWVudC4KIFBBU1MgbmV3IFBy
b21pc2UobnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUHJvbWlzZSBjb25zdHJ1Y3Rv
ciB0YWtlcyBhIGZ1bmN0aW9uIGFyZ3VtZW50LgogUEFTUyBuZXcgUHJvbWlzZSh1bmRlZmluZWQp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFByb21pc2UgY29uc3RydWN0b3IgdGFrZXMgYSBm
dW5jdGlvbiBhcmd1bWVudC4KK1BBU1MgUHJvbWlzZSgxKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBQcm9taXNlIGNvbnN0cnVjdG9yIHRha2VzIGEgZnVuY3Rpb24gYXJndW1lbnQuCitQQVNT
IFByb21pc2UoJ2hlbGxvJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUHJvbWlzZSBjb25z
dHJ1Y3RvciB0YWtlcyBhIGZ1bmN0aW9uIGFyZ3VtZW50LgorUEFTUyBQcm9taXNlKFtdKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBQcm9taXNlIGNvbnN0cnVjdG9yIHRha2VzIGEgZnVuY3Rp
b24gYXJndW1lbnQuCitQQVNTIFByb21pc2Uoe30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFByb21pc2UgY29uc3RydWN0b3IgdGFrZXMgYSBmdW5jdGlvbiBhcmd1bWVudC4KK1BBU1MgUHJv
bWlzZShudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBQcm9taXNlIGNvbnN0cnVjdG9y
IHRha2VzIGEgZnVuY3Rpb24gYXJndW1lbnQuCitQQVNTIFByb21pc2UodW5kZWZpbmVkKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBQcm9taXNlIGNvbnN0cnVjdG9yIHRha2VzIGEgZnVuY3Rp
b24gYXJndW1lbnQuCiAKIFByb21pc2Ugc3RhdGljcwogCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9k
b20vUHJvbWlzZS10eXBlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9Q
cm9taXNlLXR5cGVzLmh0bWwJKHJldmlzaW9uIDE2MTM3NCkKKysrIExheW91dFRlc3RzL2pzL2Rv
bS9Qcm9taXNlLXR5cGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAgZGVi
dWcoIiIpOwogCiAvLyBQcm9taXNlcyBzaG91bGQgYmUgb2YgdHlwZSBQcm9taXNlLgogCi12YXIg
YVByb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlcikgeyByZXNvbHZlci5yZXNv
bHZlKDEpOyB9KTsKK3ZhciBhUHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUs
IHJlamVjdCkgeyByZXNvbHZlKDEpOyB9KTsKIAogZGVidWcoImFQcm9taXNlID0gbmV3IFByb21p
c2UoLi4uKSIpCiBzaG91bGRCZVR5cGUoImFQcm9taXNlIiwgIlByb21pc2UiKTsKQEAgLTMyLDYg
KzMyLDExIEBAIHNob3VsZEJlRGVmaW5lZCgiYVByb21pc2UuY2F0Y2giKTsKIHNob3VsZEJlVHlw
ZSgiYVByb21pc2UuY2F0Y2giLCAiRnVuY3Rpb24iKTsKIHNob3VsZEJlKCJhUHJvbWlzZS5jYXRj
aC5sZW5ndGgiLCAiMSIpOwogCit2YXIgYVByb21pc2UyID0gUHJvbWlzZShmdW5jdGlvbihyZXNv
bHZlLCByZWplY3QpIHsgcmVzb2x2ZSgxKTsgfSk7CisKK2RlYnVnKCJhUHJvbWlzZTIgPSBQcm9t
aXNlKC4uLikiKQorc2hvdWxkQmVUeXBlKCJhUHJvbWlzZTIiLCAiUHJvbWlzZSIpOworc2hvdWxk
QmUoIlN0cmluZyhhUHJvbWlzZTIpIiwgIidbb2JqZWN0IFByb21pc2VdJyIpOwogCiAvLyBQcm9t
aXNlIGNvbnN0cnVjdG9yCiBkZWJ1ZygiIik7CkBAIC00MSw2ICs0Niw3IEBAIGRlYnVnKCIiKTsK
IC8vIE5lZWQgYXQgbGVhc3Qgb25lIHBhcmFtZXRlci4KIHNob3VsZEJlKCJQcm9taXNlLmxlbmd0
aCIsICIxIik7CiBzaG91bGRUaHJvdygibmV3IFByb21pc2UoKSIpOworc2hvdWxkVGhyb3coIlBy
b21pc2UoKSIpOwogCiAvLyBQYXJhbWV0ZXIgbXVzdCBiZSBhIGZ1bmN0aW9uLgogc2hvdWxkVGhy
b3coIm5ldyBQcm9taXNlKDEpIiwgIidUeXBlRXJyb3I6IFByb21pc2UgY29uc3RydWN0b3IgdGFr
ZXMgYSBmdW5jdGlvbiBhcmd1bWVudCciKTsKQEAgLTUwLDYgKzU2LDEzIEBAIHNob3VsZFRocm93
KCJuZXcgUHJvbWlzZSh7fSkiLCAiJ1R5cGVFcnIKIHNob3VsZFRocm93KCJuZXcgUHJvbWlzZShu
dWxsKSIsICInVHlwZUVycm9yOiBQcm9taXNlIGNvbnN0cnVjdG9yIHRha2VzIGEgZnVuY3Rpb24g
YXJndW1lbnQnIik7CiBzaG91bGRUaHJvdygibmV3IFByb21pc2UodW5kZWZpbmVkKSIsICInVHlw
ZUVycm9yOiBQcm9taXNlIGNvbnN0cnVjdG9yIHRha2VzIGEgZnVuY3Rpb24gYXJndW1lbnQnIik7
CiAKK3Nob3VsZFRocm93KCJQcm9taXNlKDEpIiwgIidUeXBlRXJyb3I6IFByb21pc2UgY29uc3Ry
dWN0b3IgdGFrZXMgYSBmdW5jdGlvbiBhcmd1bWVudCciKTsKK3Nob3VsZFRocm93KCJQcm9taXNl
KCdoZWxsbycpIiwgIidUeXBlRXJyb3I6IFByb21pc2UgY29uc3RydWN0b3IgdGFrZXMgYSBmdW5j
dGlvbiBhcmd1bWVudCciKTsKK3Nob3VsZFRocm93KCJQcm9taXNlKFtdKSIsICInVHlwZUVycm9y
OiBQcm9taXNlIGNvbnN0cnVjdG9yIHRha2VzIGEgZnVuY3Rpb24gYXJndW1lbnQnIik7CitzaG91
bGRUaHJvdygiUHJvbWlzZSh7fSkiLCAiJ1R5cGVFcnJvcjogUHJvbWlzZSBjb25zdHJ1Y3RvciB0
YWtlcyBhIGZ1bmN0aW9uIGFyZ3VtZW50JyIpOworc2hvdWxkVGhyb3coIlByb21pc2UobnVsbCki
LCAiJ1R5cGVFcnJvcjogUHJvbWlzZSBjb25zdHJ1Y3RvciB0YWtlcyBhIGZ1bmN0aW9uIGFyZ3Vt
ZW50JyIpOworc2hvdWxkVGhyb3coIlByb21pc2UodW5kZWZpbmVkKSIsICInVHlwZUVycm9yOiBQ
cm9taXNlIGNvbnN0cnVjdG9yIHRha2VzIGEgZnVuY3Rpb24gYXJndW1lbnQnIik7CisKIC8vIFBy
b21pc2Ugc3RhdGljcwogZGVidWcoIiIpOwogZGVidWcoIlByb21pc2Ugc3RhdGljcyIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220937</attachid>
            <date>2014-01-11 10:58:51 -0800</date>
            <delta_ts>2014-01-11 11:02:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126561-20140111105850.patch</filename>
            <type>text/plain</type>
            <size>33306</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYxNzUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBA
CisyMDE0LTAxLTA2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0pT
XSBTaG91bGQgYmUgYWJsZSB0byBjcmVhdGUgYSBwcm9taXNlIGJ5IGNhbGxpbmcgdGhlIFByb21p
c2UgY29uc3RydWN0b3IgYXMgYSBmdW5jdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2NTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL0pTUHJvbWlzZUNvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKEpTQzo6SlNQcm9taXNlQ29uc3RydWN0b3I6OmdldENhbGxEYXRhKToKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIGNhbGxpbmcgdGhlIFByb21pc2UgY29uc3RydWN0b3IgYXMgYSBm
dW5jdGlvbiAoZS5nLiB2YXIgcCA9IFByb21pc2UoLi4uKSwgbm90ZQorICAgICAgICB0aGUgbWlz
c2luZyAibmV3IikuCisKIDIwMTQtMDEtMTAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBQdXNoIEluc3BlY3RvckFnZW50IGRv
d24gaW50byBKU0MsIGdpdmUgSlNDIGFuIEluc3BlY3RvckNvbnRyb2xsZXIKSW5kZXg6IFNvdXJj
ZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxNjE3NjgpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDQ4IEBACisyMDE0LTAxLTExICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgQ2xlYW4gdXAgaXRlcmF0b3IgZmlsdGVyIC8gaXRlcmF0b3IgcmFuZ2UgY29kZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2ODE3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBSZW5hbWVz
IEl0ZXJhdG9yUGFpciB0byBJdGVyYXRvclJhbmdlLgorICAgICAgICAtIFNwbGl0cyBGaWx0ZXJJ
dGVyYXRvciBpbnRvIEZpbHRlckl0ZXJhdG9yICh3aGljaCBub3cgb25seSBmaWx0ZXJzKSBhbmQK
KyAgICAgICAgICBUcmFuc2Zvcm1JdGVyYXRvciAod2hpY2ggZG9lcyB0aGUgdHJhbnNmb3JtIHBh
cnQgb2YgdGhlIG9sZCBGaWx0ZXJJdGVyYXRvcikuCisgICAgICAgICAgTW92ZSBib3RoIG9mIHRo
ZXNlIHRvIEl0ZXJhdG9yQWRhcHRvcnMuaAorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5h
bToKKyAgICAgICAgKiBXVEYudmN4cHJvai9XVEYudmN4cHJvajoKKyAgICAgICAgKiBXVEYudmN4
cHJvai9XVEYudmN4cHJvai5maWx0ZXJzOgorICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYv
RmlsdGVySXRlcmF0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgQWRkL3JlbW92ZSBmaWxlcy4KKwor
ICAgICAgICAqIHd0Zi9IYXNoTWFwLmg6CisgICAgICAgIChXVEY6Okhhc2hNYXA6OmtleXMpOgor
ICAgICAgICAoV1RGOjpIYXNoTWFwOjp2YWx1ZXMpOgorICAgICAgICAqIHd0Zi9SZWZQdHJIYXNo
TWFwLmg6CisgICAgICAgIFVwZGF0ZSBmb3IgcmVuYW1lIHRvIEl0ZXJhdG9yUmFuZ2UuIFNpbXBs
aWZ5IGJ5IHVzaW5nIG1ha2VJdGVyYXRvclJhbmdlKCkuCisKKyAgICAgICAgKiB3dGYvSXRlcmF0
b3JBZGFwdG9ycy5oOiBDb3BpZWQgZnJvbSB3dGYvRmlsdGVySXRlcmF0b3IuaC4KKyAgICAgICAg
KFdURjo6RmlsdGVySXRlcmF0b3I6OkZpbHRlckl0ZXJhdG9yKToKKyAgICAgICAgKFdURjo6Rmls
dGVySXRlcmF0b3I6Om9wZXJhdG9yKik6CisgICAgICAgIChXVEY6Om1ha2VGaWx0ZXJJdGVyYXRv
cik6CisgICAgICAgIChXVEY6OlRyYW5zZm9ybUl0ZXJhdG9yOjpUcmFuc2Zvcm1JdGVyYXRvcik6
CisgICAgICAgIChXVEY6OlRyYW5zZm9ybUl0ZXJhdG9yOjpvcGVyYXRvcisrKToKKyAgICAgICAg
KFdURjo6VHJhbnNmb3JtSXRlcmF0b3I6Om9wZXJhdG9yKik6CisgICAgICAgIChXVEY6OlRyYW5z
Zm9ybUl0ZXJhdG9yOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdURjo6VHJhbnNmb3JtSXRlcmF0
b3I6Om9wZXJhdG9yIT0pOgorICAgICAgICAoV1RGOjptYWtlVHJhbnNmb3JtSXRlcmF0b3IpOgor
ICAgICAgICBTcGxpdCB1cCBmaWx0ZXJpbmcgYW5kIHRyYW5zZm9ybWluZy4gQWRkIG1ha2VGaWx0
ZXJJdGVyYXRvcigpIGFuZCBtYWtlVHJhbnNmb3JtSXRlcmF0b3IoKQorICAgICAgICBoZWxwZXJz
LgorCisgICAgICAgICogd3RmL0l0ZXJhdG9yUGFpci5oOiBSZW1vdmVkLgorICAgICAgICAqIHd0
Zi9JdGVyYXRvclJhbmdlLmg6IENvcGllZCBmcm9tIHd0Zi9JdGVyYXRvclBhaXIuaC4KKyAgICAg
ICAgKFdURjo6SXRlcmF0b3JSYW5nZTo6SXRlcmF0b3JSYW5nZSk6CisgICAgICAgIChXVEY6Om1h
a2VJdGVyYXRvclJhbmdlKToKKyAgICAgICAgUmVuYW1lZCB0byBJdGVyYXRvclJhbmdlIGFuZCBh
ZGRzIG1ha2VJdGVyYXRvclJhbmdlKCkgaGVscGVyLgorCiAyMDE0LTAxLTEwICBEYXZpZCBLaWx6
ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgYXJjaGl0ZWN0dXJl
cyBpbiB4Y2NvbmZpZyBmaWxlcwpJbmRleDogU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFt
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24g
MTYxNzUwKQorKysgU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNvcHkp
CkBAIC01Myw3ICs1Myw2IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9G
ZWF0dXJlRGVmaW5lcy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9GaWxlUHJpbnRTdHJlYW0uY3Bw
IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9GaWxlUHJpbnRTdHJlYW0uaCBcCi0gICAgU291cmNlL1dU
Ri93dGYvRmlsdGVySXRlcmF0b3IuaCBcCiAgICAgU291cmNlL1dURi93dGYvRmxpcEJ5dGVzLmgg
XAogICAgIFNvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCBcCiAgICAgU291cmNlL1dURi93dGYvRnVu
Y3Rpb25EaXNwYXRjaGVyLmNwcCBcCkBAIC03Myw3ICs3Miw4IEBAIHd0Zl9zb3VyY2VzICs9IFwK
ICAgICBTb3VyY2UvV1RGL3d0Zi9IZXhOdW1iZXIuaCBcCiAgICAgU291cmNlL1dURi93dGYvSW5s
aW5lQVNNLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0luc2VydGlvbi5oIFwKLSAgICBTb3VyY2Uv
V1RGL3d0Zi9JdGVyYXRvclBhaXIuaCBcCisgICAgU291cmNlL1dURi93dGYvSXRlcmF0b3JBZGFw
dG9ycy5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9JdGVyYXRvclJhbmdlLmggXAogICAgIFNvdXJj
ZS9XVEYvd3RmL0xpc3REdW1wLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL0xpc3RIYXNoU2V0Lmgg
XAogICAgIFNvdXJjZS9XVEYvd3RmL0xvY2tlci5oIFwKSW5kZXg6IFNvdXJjZS9XVEYvV1RGLnZj
eHByb2ovV1RGLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9XVEYudmN4cHJvai9X
VEYudmN4cHJvagkocmV2aXNpb24gMTYxNzUwKQorKysgU291cmNlL1dURi9XVEYudmN4cHJvai9X
VEYudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTk3LDcgKzE5Nyw2IEBACiAgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3dGZcRmFzdE1hbGxvYy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cd3RmXEZlYXR1cmVEZWZpbmVzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlx3dGZcRmlsZVByaW50U3RyZWFtLmgiIC8+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llx3dGZcRmlsdGVySXRlcmF0b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0
ZlxGbGlwQnl0ZXMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxGb3J3YXJk
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcRnVuY3Rpb25EaXNwYXRjaGVy
LmgiIC8+CkBAIC0yMTcsNyArMjE2LDggQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0
ZlxIYXNoVGFibGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxIYXNoVHJh
aXRzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcSGV4TnVtYmVyLmgiIC8+
Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcSXRlcmF0b3JQYWlyLmgiIC8+CisgICAg
PENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcSXRlcmF0b3JBZGFwdG9ycy5oIiAvPgorICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXEl0ZXJhdG9yUmFuZ2UuaCIgLz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXHd0ZlxMaXN0SGFzaFNldC5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5j
bHVkZT0iLi5cd3RmXExvY2tlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3Rm
XE1haW5UaHJlYWQuaCIgLz4KSW5kZXg6IFNvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHBy
b2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hw
cm9qLmZpbHRlcnMJKHJldmlzaW9uIDE2MTc1MCkKKysrIFNvdXJjZS9XVEYvV1RGLnZjeHByb2ov
V1RGLnZjeHByb2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtNDM1LDkgKzQzNSw2IEBACiAg
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcRmlsZVByaW50U3RyZWFtLmgiPgogICAgICAg
PEZpbHRlcj53dGY8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHd0ZlxGaWx0ZXJJdGVyYXRvci5oIj4KLSAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0
ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcRm9y
d2FyZC5oIj4KICAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CkBA
IC00NzQsNyArNDcxLDEwIEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcSGV4TnVt
YmVyLmgiPgogICAgICAgPEZpbHRlcj53dGY8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAg
ICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxJdGVyYXRvclBhaXIuaCI+CisgICAgPENsSW5j
bHVkZSBJbmNsdWRlPSIuLlx3dGZcSXRlcmF0b3JBZGFwdG9ycy5oIj4KKyAgICAgIDxGaWx0ZXI+
d3RmPC9GaWx0ZXI+CisgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
Llx3dGZcSXRlcmF0b3JSYW5nZS5oIj4KICAgICAgIDxGaWx0ZXI+d3RmPC9GaWx0ZXI+CiAgICAg
PC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcTGlzdEhhc2hTZXQu
aCI+CkluZGV4OiBTb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlz
aW9uIDE2MTc1MCkKKysrIFNvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTY1LDggKzY1LDggQEAKIAkJMkNERUQwRUYxODExNUMzODAwNERC
QTcwIC8qIFJ1bkxvb3BDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyQ0RFRDBFRTE4MTE1QzM4MDA0REJBNzAgLyogUnVuTG9vcENGLmNwcCAqLzsg
fTsKIAkJMkNERUQwRjMxODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNERUQwRjExODExNUM4NTAwNERC
QTcwIC8qIFJ1bkxvb3AuY3BwICovOyB9OwogCQkyQ0RFRDBGNDE4MTE1Qzg1MDA0REJBNzAgLyog
UnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkNERUQwRjIxODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuaCAqLzsgfTsKLQkJN0NERDdGRjgx
ODZEMjkxRTAwNzQzM0NEIC8qIEZpbHRlckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0REN0ZGNzE4NkQyOTFFMDA3NDMzQ0QgLyogRmls
dGVySXRlcmF0b3IuaCAqLzsgfTsKLQkJN0NERDdGRkExODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJh
dG9yUGFpci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0NERDdGRjkxODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJhdG9yUGFpci5oICovOyB9OworCQk3Q0RE
N0ZGODE4NkQyOTFFMDA3NDMzQ0QgLyogSXRlcmF0b3JBZGFwdG9ycy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NERDdGRjcxODZEMjkxRTAwNzQzM0NE
IC8qIEl0ZXJhdG9yQWRhcHRvcnMuaCAqLzsgfTsKKwkJN0NERDdGRkExODZEMkE1NDAwNzQzM0NE
IC8qIEl0ZXJhdG9yUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDREQ3RkY5MTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVyYXRvclJhbmdlLmggKi87
IH07CiAJCTdFMjlDMzNFMTVGRkQ3OUIwMDUxNkQ2MSAvKiBPYmpjUnVudGltZUV4dHJhcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0UyOUMzM0QxNUZG
RDc5QjAwNTE2RDYxIC8qIE9iamNSdW50aW1lRXh0cmFzLmggKi87IH07CiAJCTgxMzQwMTM4MTVC
MDkyRkQwMDFGRjBCOCAvKiBCYXNlNjQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODEzNDAxMzYxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAg
Ki87IH07CiAJCTgxMzQwMTM5MTVCMDkyRkQwMDFGRjBCOCAvKiBCYXNlNjQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxMzQwMTM3MTVCMDkyRkQwMDFG
RjBCOCAvKiBCYXNlNjQuaCAqLzsgfTsKQEAgLTMzOSw4ICszMzksOCBAQAogCQk1RDI0N0I3MDE0
Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IERl
YnVnUmVsZWFzZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQyNDdC
NzMxNDY4OUM0NzAwRTc4Qjc2IC8qIFdURi54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBXVEYueGNj
b25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1NDFDQUY0MTYzMERCMjYwMDZE
MERFQyAvKiBDb3B5V1RGSGVhZGVycy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7
IHBhdGggPSBDb3B5V1RGSGVhZGVycy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJN0NERDdGRjcxODZEMjkxRTAwNzQzM0NEIC8qIEZpbHRlckl0ZXJhdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbHRlckl0ZXJhdG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTdDREQ3RkY5MTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVyYXRvclBh
aXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSXRlcmF0b3JQYWlyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdDREQ3RkY3MTg2RDI5MUUwMDc0MzNDRCAvKiBJ
dGVyYXRvckFkYXB0b3JzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEl0ZXJh
dG9yQWRhcHRvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NERDdGRjkxODZE
MkE1NDAwNzQzM0NEIC8qIEl0ZXJhdG9yUmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSXRlcmF0b3JSYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
RTI5QzMzRDE1RkZENzlCMDA1MTZENjEgLyogT2JqY1J1bnRpbWVFeHRyYXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT2JqY1J1bnRpbWVFeHRyYXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODEzNDAxMzYxNUIwOTJGRDAwMUZGMEI4IC8qIEJhc2U2NC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlNjQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4MTM0MDEzNzE1QjA5MkZEMDAxRkYwQjggLyogQmFzZTY0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2U2NC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNzAwLDggKzcwMCw2IEBACiAJCQkJQThBNDcyQTExNTFBODI1
QTAwNDEyM0ZGIC8qIEZhc3RNYWxsb2MuY3BwICovLAogCQkJCUE4QTQ3MkEyMTUxQTgyNUEwMDQx
MjNGRiAvKiBGYXN0TWFsbG9jLmggKi8sCiAJCQkJQjM4RkQ3QkMxNjg5NTNFODAwNjVDOTY5IC8q
IEZlYXR1cmVEZWZpbmVzLmggKi8sCi0JCQkJN0NERDdGRjcxODZEMjkxRTAwNzQzM0NEIC8qIEZp
bHRlckl0ZXJhdG9yLmggKi8sCi0JCQkJN0NERDdGRjkxODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJh
dG9yUGFpci5oICovLAogCQkJCTBGOUQzMzVCMTY1REJBNzMwMDVBRDM4NyAvKiBGaWxlUHJpbnRT
dHJlYW0uY3BwICovLAogCQkJCTBGOUQzMzVDMTY1REJBNzMwMDVBRDM4NyAvKiBGaWxlUHJpbnRT
dHJlYW0uaCAqLywKIAkJCQkwRjJCNjZBNTE3QjZCNEY3MDBBN0FFM0YgLyogRmxpcEJ5dGVzLmgg
Ki8sCkBAIC03MjMsNiArNzIxLDggQEAKIAkJCQlBOEE0NzJCQjE1MUE4MjVBMDA0MTIzRkYgLyog
SGV4TnVtYmVyLmggKi8sCiAJCQkJQThBNDcyQkMxNTFBODI1QTAwNDEyM0ZGIC8qIElubGluZUFT
TS5oICovLAogCQkJCUE3MERBMDgyMTc5OUYwNEQwMDUyOUE5QiAvKiBJbnNlcnRpb24uaCAqLywK
KwkJCQk3Q0REN0ZGNzE4NkQyOTFFMDA3NDMzQ0QgLyogSXRlcmF0b3JBZGFwdG9ycy5oICovLAor
CQkJCTdDREQ3RkY5MTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVyYXRvclJhbmdlLmggKi8sCiAJCQkJ
QTcwREEwODMxNzk5RjA0RDAwNTI5QTlCIC8qIExpc3REdW1wLmggKi8sCiAJCQkJQThBNDcyQzEx
NTFBODI1QTAwNDEyM0ZGIC8qIExpc3RIYXNoU2V0LmggKi8sCiAJCQkJQThBNDcyQzMxNTFBODI1
QTAwNDEyM0ZGIC8qIExvY2tlci5oICovLApAQCAtOTU4LDcgKzk1OCw3IEBACiAJCQkJQThBNDcz
ODcxNTFBODI1QjAwNDEyM0ZGIC8qIEFzc2VydGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
QTQ3Mzg4MTUxQTgyNUIwMDQxMjNGRiAvKiBBdG9taWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
OEE0NzQzNjE1MUE4MjVCMDA0MTIzRkYgLyogQXRvbWljU3RyaW5nLmggaW4gSGVhZGVycyAqLywK
LQkJCQk3Q0REN0ZGODE4NkQyOTFFMDA3NDMzQ0QgLyogRmlsdGVySXRlcmF0b3IuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTdDREQ3RkY4MTg2RDI5MUUwMDc0MzNDRCAvKiBJdGVyYXRvckFkYXB0b3Jz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQzNzE1MUE4MjVCMDA0MTIzRkYgLyogQXRvbWlj
U3RyaW5nSGFzaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MzgxNTFBODI1QjAwNDEyM0ZG
IC8qIEF0b21pY1N0cmluZ0ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCRDhGNDBCMTc2QzJC
NDcwMDAyRDg2NSAvKiBBdG9taWNTdHJpbmdUYWJsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC05Njcs
NyArOTY3LDcgQEAKIAkJCQk4MTM0MDEzOTE1QjA5MkZEMDAxRkYwQjggLyogQmFzZTY0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzNBOTE1MUE4MjVCMDA0MTIzRkYgLyogYmlnbnVtLWR0b2Eu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0FCMTUxQTgyNUIwMDQxMjNGRiAvKiBiaWdudW0u
aCBpbiBIZWFkZXJzICovLAotCQkJCTdDREQ3RkZBMTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVyYXRv
clBhaXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTdDREQ3RkZBMTg2RDJBNTQwMDc0MzNDRCAvKiBJ
dGVyYXRvclJhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQ1MjE1MUE4MjVCMDA0MTIz
RkYgLyogQmluYXJ5U2VtYXBob3JlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzM4QTE1MUE4
MjVCMDA0MTIzRkYgLyogQml0bWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzM4QzE1MUE4
MjVCMDA0MTIzRkYgLyogQml0VmVjdG9yLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9X
VEYvd3RmL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0NNYWtl
TGlzdHMudHh0CShyZXZpc2lvbiAxNjE3NTApCisrKyBTb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3Rz
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNiBAQCBzZXQoV1RGX0hFQURFUlMKICAg
ICBGYXN0TWFsbG9jLmgKICAgICBGZWF0dXJlRGVmaW5lcy5oCiAgICAgRmlsZVByaW50U3RyZWFt
LmgKLSAgICBGaWx0ZXJJdGVyYXRvci5oCiAgICAgRmxpcEJ5dGVzLmgKICAgICBGb3J3YXJkLmgK
ICAgICBGdW5jdGlvbkRpc3BhdGNoZXIuaApAQCAtNDMsNyArNDIsOCBAQCBzZXQoV1RGX0hFQURF
UlMKICAgICBIYXNoVGFibGUuaAogICAgIEhhc2hUcmFpdHMuaAogICAgIEhleE51bWJlci5oCi0g
ICAgSXRlcmF0b3JQYWlyLmgKKyAgICBJdGVyYXRvckFkYXB0b3JzLmgKKyAgICBJdGVyYXRvclJh
bmdlLmgKICAgICBMaXN0SGFzaFNldC5oCiAgICAgTG9ja2VyLmgKICAgICBNRDUuaApJbmRleDog
U291cmNlL1dURi93dGYvRmlsdGVySXRlcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L3d0Zi9GaWx0ZXJJdGVyYXRvci5oCShyZXZpc2lvbiAxNjE3NTApCisrKyBTb3VyY2UvV1RGL3d0
Zi9GaWx0ZXJJdGVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc3ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIFdURl9GaWx0ZXJJdGVyYXRvcl9oCi0jZGVmaW5lIFdURl9GaWx0ZXJJ
dGVyYXRvcl9oCi0KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQot
dGVtcGxhdGU8dHlwZW5hbWUgUHJlZGljYXRlLCB0eXBlbmFtZSBDYXN0LCB0eXBlbmFtZSBJdGVy
YXRvcj4KLWNsYXNzIEZpbHRlckl0ZXJhdG9yIHsKLXB1YmxpYzoKLSAgICBGaWx0ZXJJdGVyYXRv
cihQcmVkaWNhdGUgcHJlZCwgQ2FzdCBjYXN0LCBJdGVyYXRvciBiZWdpbiwgSXRlcmF0b3IgZW5k
KQotICAgICAgICA6IG1fcHJlZChzdGQ6Om1vdmUocHJlZCkpCi0gICAgICAgICwgbV9jYXN0KHN0
ZDo6bW92ZShjYXN0KSkKLSAgICAgICAgLCBtX2l0ZXIoc3RkOjptb3ZlKGJlZ2luKSkKLSAgICAg
ICAgLCBtX2VuZChzdGQ6Om1vdmUoZW5kKSkKLSAgICB7Ci0gICAgICAgIHdoaWxlIChtX2l0ZXIg
IT0gbV9lbmQgJiYgIW1fcHJlZCgqbV9pdGVyKSkKLSAgICAgICAgICAgICsrbV9pdGVyOwotICAg
IH0KLQotICAgIEZpbHRlckl0ZXJhdG9yJiBvcGVyYXRvcisrKCkKLSAgICB7Ci0gICAgICAgIHdo
aWxlIChtX2l0ZXIgIT0gbV9lbmQpIHsKLSAgICAgICAgICAgICsrbV9pdGVyOwotICAgICAgICAg
ICAgaWYgKG1faXRlciA9PSBtX2VuZCB8fCBtX3ByZWQoKm1faXRlcikpCi0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLQotICAg
IGNvbnN0IGRlY2x0eXBlKHN0ZDo6ZGVjbHZhbDxDYXN0PigpKCpzdGQ6OmRlY2x2YWw8SXRlcmF0
b3I+KCkpKSBvcGVyYXRvciooKSBjb25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1faXRlciAh
PSBtX2VuZCk7Ci0gICAgICAgIEFTU0VSVChtX3ByZWQoKm1faXRlcikpOwotICAgICAgICByZXR1
cm4gbV9jYXN0KCptX2l0ZXIpOwotICAgIH0KLQotICAgIGlubGluZSBib29sIG9wZXJhdG9yPT0o
RmlsdGVySXRlcmF0b3ImIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2l0ZXIgPT0gb3RoZXIubV9p
dGVyOyB9Ci0gICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShGaWx0ZXJJdGVyYXRvciYgb3RoZXIp
IGNvbnN0IHsgcmV0dXJuIG1faXRlciAhPSBvdGhlci5tX2l0ZXI7IH0KLQotcHJpdmF0ZToKLSAg
ICBjb25zdCBQcmVkaWNhdGUgbV9wcmVkOwotICAgIGNvbnN0IENhc3QgbV9jYXN0OwotICAgIEl0
ZXJhdG9yIG1faXRlcjsKLSAgICBJdGVyYXRvciBtX2VuZDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNl
IFdURgotCi0jZW5kaWYgLy8gV1RGX0ZpbHRlckl0ZXJhdG9yX2gKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL0hhc2hNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9IYXNoTWFwLmgJKHJl
dmlzaW9uIDE2MTc1MCkKKysrIFNvdXJjZS9XVEYvd3RmL0hhc2hNYXAuaAkod29ya2luZyBjb3B5
KQpAQCAtMjIsNyArMjIsNyBAQAogI2RlZmluZSBXVEZfSGFzaE1hcF9oCiAKICNpbmNsdWRlIDx3
dGYvSGFzaFRhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL0l0ZXJhdG9yUGFpci5oPgorI2luY2x1ZGUg
PHd0Zi9JdGVyYXRvclJhbmdlLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC05MiwxMSArOTIs
MTEgQEAgcHVibGljOgogICAgIGNvbnN0X2l0ZXJhdG9yIGJlZ2luKCkgY29uc3Q7CiAgICAgY29u
c3RfaXRlcmF0b3IgZW5kKCkgY29uc3Q7CiAKLSAgICBJdGVyYXRvclBhaXI8dHlwZW5hbWUgaXRl
cmF0b3I6OktleXM+IGtleXMoKSB7IHJldHVybiBJdGVyYXRvclBhaXI8dHlwZW5hbWUgaXRlcmF0
b3I6OktleXM+KGJlZ2luKCkua2V5cygpLCBlbmQoKS5rZXlzKCkpOyB9Ci0gICAgY29uc3QgSXRl
cmF0b3JQYWlyPHR5cGVuYW1lIGNvbnN0X2l0ZXJhdG9yOjpLZXlzPiBrZXlzKCkgY29uc3QgeyBy
ZXR1cm4gSXRlcmF0b3JQYWlyPHR5cGVuYW1lIGNvbnN0X2l0ZXJhdG9yOjpLZXlzPihiZWdpbigp
LmtleXMoKSwgZW5kKCkua2V5cygpKTsgfQorICAgIEl0ZXJhdG9yUmFuZ2U8dHlwZW5hbWUgaXRl
cmF0b3I6OktleXM+IGtleXMoKSB7IHJldHVybiBtYWtlSXRlcmF0b3JSYW5nZShiZWdpbigpLmtl
eXMoKSwgZW5kKCkua2V5cygpKTsgfQorICAgIGNvbnN0IEl0ZXJhdG9yUmFuZ2U8dHlwZW5hbWUg
Y29uc3RfaXRlcmF0b3I6OktleXM+IGtleXMoKSBjb25zdCB7IHJldHVybiBtYWtlSXRlcmF0b3JS
YW5nZShiZWdpbigpLmtleXMoKSwgZW5kKCkua2V5cygpKTsgfQogCi0gICAgSXRlcmF0b3JQYWly
PHR5cGVuYW1lIGl0ZXJhdG9yOjpWYWx1ZXM+IHZhbHVlcygpIHsgcmV0dXJuIEl0ZXJhdG9yUGFp
cjx0eXBlbmFtZSBpdGVyYXRvcjo6VmFsdWVzPihiZWdpbigpLnZhbHVlcygpLCBlbmQoKS52YWx1
ZXMoKSk7IH0KLSAgICBjb25zdCBJdGVyYXRvclBhaXI8dHlwZW5hbWUgY29uc3RfaXRlcmF0b3I6
OlZhbHVlcz4gdmFsdWVzKCkgY29uc3QgeyByZXR1cm4gSXRlcmF0b3JQYWlyPHR5cGVuYW1lIGNv
bnN0X2l0ZXJhdG9yOjpWYWx1ZXM+KGJlZ2luKCkudmFsdWVzKCksIGVuZCgpLnZhbHVlcygpKTsg
fQorICAgIEl0ZXJhdG9yUmFuZ2U8dHlwZW5hbWUgaXRlcmF0b3I6OlZhbHVlcz4gdmFsdWVzKCkg
eyByZXR1cm4gbWFrZUl0ZXJhdG9yUmFuZ2UoYmVnaW4oKS52YWx1ZXMoKSwgZW5kKCkudmFsdWVz
KCkpOyB9CisgICAgY29uc3QgSXRlcmF0b3JSYW5nZTx0eXBlbmFtZSBjb25zdF9pdGVyYXRvcjo6
VmFsdWVzPiB2YWx1ZXMoKSBjb25zdCB7IHJldHVybiBtYWtlSXRlcmF0b3JSYW5nZShiZWdpbigp
LnZhbHVlcygpLCBlbmQoKS52YWx1ZXMoKSk7IH0KIAogICAgIGl0ZXJhdG9yIGZpbmQoY29uc3Qg
S2V5VHlwZSYpOwogICAgIGNvbnN0X2l0ZXJhdG9yIGZpbmQoY29uc3QgS2V5VHlwZSYpIGNvbnN0
OwpJbmRleDogU291cmNlL1dURi93dGYvSXRlcmF0b3JBZGFwdG9ycy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XVEYvd3RmL0l0ZXJhdG9yQWRhcHRvcnMuaAkocmV2aXNpb24gMTYxNzUwKQkoZnJv
bSBTb3VyY2UvV1RGL3d0Zi9GaWx0ZXJJdGVyYXRvci5oOjE2MTc1MCkKKysrIFNvdXJjZS9XVEYv
d3RmL0l0ZXJhdG9yQWRhcHRvcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDc3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXVEZfRmlsdGVySXRlcmF0b3JfaAorI2RlZmluZSBXVEZfRmls
dGVySXRlcmF0b3JfaAorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZSwgdHlwZW5hbWUgQ2FzdCwgdHlwZW5hbWUg
SXRlcmF0b3I+CitjbGFzcyBGaWx0ZXJJdGVyYXRvciB7CitwdWJsaWM6CisgICAgRmlsdGVySXRl
cmF0b3IoUHJlZGljYXRlIHByZWQsIENhc3QgY2FzdCwgSXRlcmF0b3IgYmVnaW4sIEl0ZXJhdG9y
IGVuZCkKKyAgICAgICAgOiBtX3ByZWQoc3RkOjptb3ZlKHByZWQpKQorICAgICAgICAsIG1fY2Fz
dChzdGQ6Om1vdmUoY2FzdCkpCisgICAgICAgICwgbV9pdGVyKHN0ZDo6bW92ZShiZWdpbikpCisg
ICAgICAgICwgbV9lbmQoc3RkOjptb3ZlKGVuZCkpCisgICAgeworICAgICAgICB3aGlsZSAobV9p
dGVyICE9IG1fZW5kICYmICFtX3ByZWQoKm1faXRlcikpCisgICAgICAgICAgICArK21faXRlcjsK
KyAgICB9CisKKyAgICBGaWx0ZXJJdGVyYXRvciYgb3BlcmF0b3IrKygpCisgICAgeworICAgICAg
ICB3aGlsZSAobV9pdGVyICE9IG1fZW5kKSB7CisgICAgICAgICAgICArK21faXRlcjsKKyAgICAg
ICAgICAgIGlmIChtX2l0ZXIgPT0gbV9lbmQgfHwgbV9wcmVkKCptX2l0ZXIpKQorICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHJldHVybiAqdGhpczsKKyAgICB9CisK
KyAgICBjb25zdCBkZWNsdHlwZShzdGQ6OmRlY2x2YWw8Q2FzdD4oKSgqc3RkOjpkZWNsdmFsPEl0
ZXJhdG9yPigpKSkgb3BlcmF0b3IqKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX2l0
ZXIgIT0gbV9lbmQpOworICAgICAgICBBU1NFUlQobV9wcmVkKCptX2l0ZXIpKTsKKyAgICAgICAg
cmV0dXJuIG1fY2FzdCgqbV9pdGVyKTsKKyAgICB9CisKKyAgICBpbmxpbmUgYm9vbCBvcGVyYXRv
cj09KEZpbHRlckl0ZXJhdG9yJiBvdGhlcikgY29uc3QgeyByZXR1cm4gbV9pdGVyID09IG90aGVy
Lm1faXRlcjsgfQorICAgIGlubGluZSBib29sIG9wZXJhdG9yIT0oRmlsdGVySXRlcmF0b3ImIG90
aGVyKSBjb25zdCB7IHJldHVybiBtX2l0ZXIgIT0gb3RoZXIubV9pdGVyOyB9CisKK3ByaXZhdGU6
CisgICAgY29uc3QgUHJlZGljYXRlIG1fcHJlZDsKKyAgICBjb25zdCBDYXN0IG1fY2FzdDsKKyAg
ICBJdGVyYXRvciBtX2l0ZXI7CisgICAgSXRlcmF0b3IgbV9lbmQ7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXVEYKKworI2VuZGlmIC8vIFdURl9GaWx0ZXJJdGVyYXRvcl9oCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9JdGVyYXRvckFkYXB0b3JzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYv
SXRlcmF0b3JBZGFwdG9ycy5oCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV1RGL3d0Zi9JdGVy
YXRvckFkYXB0b3JzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDIxICsyMywxNiBAQAogICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV1RGX0ZpbHRlckl0
ZXJhdG9yX2gKLSNkZWZpbmUgV1RGX0ZpbHRlckl0ZXJhdG9yX2gKLQotI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisjaWZuZGVmIFdURl9JdGVyYXRvckFkYXB0b3JzX2gKKyNkZWZpbmUgV1RGX0l0ZXJh
dG9yQWRhcHRvcnNfaAogCiBuYW1lc3BhY2UgV1RGIHsKIAotdGVtcGxhdGU8dHlwZW5hbWUgUHJl
ZGljYXRlLCB0eXBlbmFtZSBDYXN0LCB0eXBlbmFtZSBJdGVyYXRvcj4KK3RlbXBsYXRlPHR5cGVu
YW1lIFByZWRpY2F0ZSwgdHlwZW5hbWUgSXRlcmF0b3I+CiBjbGFzcyBGaWx0ZXJJdGVyYXRvciB7
CiBwdWJsaWM6Ci0gICAgRmlsdGVySXRlcmF0b3IoUHJlZGljYXRlIHByZWQsIENhc3QgY2FzdCwg
SXRlcmF0b3IgYmVnaW4sIEl0ZXJhdG9yIGVuZCkKKyAgICBGaWx0ZXJJdGVyYXRvcihQcmVkaWNh
dGUgcHJlZCwgSXRlcmF0b3IgYmVnaW4sIEl0ZXJhdG9yIGVuZCkKICAgICAgICAgOiBtX3ByZWQo
c3RkOjptb3ZlKHByZWQpKQotICAgICAgICAsIG1fY2FzdChzdGQ6Om1vdmUoY2FzdCkpCiAgICAg
ICAgICwgbV9pdGVyKHN0ZDo6bW92ZShiZWdpbikpCiAgICAgICAgICwgbV9lbmQoc3RkOjptb3Zl
KGVuZCkpCiAgICAgewpAQCAtNTUsMTEgKzUwLDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
ICp0aGlzOwogICAgIH0KIAotICAgIGNvbnN0IGRlY2x0eXBlKHN0ZDo6ZGVjbHZhbDxDYXN0Pigp
KCpzdGQ6OmRlY2x2YWw8SXRlcmF0b3I+KCkpKSBvcGVyYXRvciooKSBjb25zdAorICAgIGNvbnN0
IGRlY2x0eXBlKCpzdGQ6OmRlY2x2YWw8SXRlcmF0b3I+KCkpIG9wZXJhdG9yKigpIGNvbnN0CiAg
ICAgewogICAgICAgICBBU1NFUlQobV9pdGVyICE9IG1fZW5kKTsKICAgICAgICAgQVNTRVJUKG1f
cHJlZCgqbV9pdGVyKSk7Ci0gICAgICAgIHJldHVybiBtX2Nhc3QoKm1faXRlcik7CisgICAgICAg
IHJldHVybiAqbV9pdGVyOwogICAgIH0KIAogICAgIGlubGluZSBib29sIG9wZXJhdG9yPT0oRmls
dGVySXRlcmF0b3ImIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2l0ZXIgPT0gb3RoZXIubV9pdGVy
OyB9CkBAIC02NywxMSArNjIsNTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIGNvbnN0IFBy
ZWRpY2F0ZSBtX3ByZWQ7Ci0gICAgY29uc3QgQ2FzdCBtX2Nhc3Q7CiAgICAgSXRlcmF0b3IgbV9p
dGVyOwogICAgIEl0ZXJhdG9yIG1fZW5kOwogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUgUHJlZGlj
YXRlLCB0eXBlbmFtZSBJdGVyYXRvcj4KK2lubGluZSBGaWx0ZXJJdGVyYXRvcjxQcmVkaWNhdGUs
IEl0ZXJhdG9yPiBtYWtlRmlsdGVySXRlcmF0b3IoUHJlZGljYXRlJiYgcHJlZCwgSXRlcmF0b3Im
JiBiZWdpbiwgSXRlcmF0b3ImJiBlbmQpCit7CisgICAgcmV0dXJuIEZpbHRlckl0ZXJhdG9yPFBy
ZWRpY2F0ZSwgSXRlcmF0b3I+KHN0ZDo6Zm9yd2FyZDxQcmVkaWNhdGU+KHByZWQpLCBzdGQ6OmZv
cndhcmQ8SXRlcmF0b3I+KGJlZ2luKSwgc3RkOjpmb3J3YXJkPEl0ZXJhdG9yPihlbmQpKTsKK30K
KwordGVtcGxhdGU8dHlwZW5hbWUgVHJhbnNmb3JtLCB0eXBlbmFtZSBJdGVyYXRvcj4KK2NsYXNz
IFRyYW5zZm9ybUl0ZXJhdG9yIHsKK3B1YmxpYzoKKyAgICBUcmFuc2Zvcm1JdGVyYXRvcihjb25z
dCBUcmFuc2Zvcm0mIHRyYW5zZm9ybSwgY29uc3QgSXRlcmF0b3ImIGl0ZXIpCisgICAgICAgIDog
bV90cmFuc2Zvcm0oc3RkOjptb3ZlKHRyYW5zZm9ybSkpCisgICAgICAgICwgbV9pdGVyKHN0ZDo6
bW92ZShpdGVyKSkKKyAgICB7CisgICAgfQorCisgICAgVHJhbnNmb3JtSXRlcmF0b3ImIG9wZXJh
dG9yKysoKQorICAgIHsKKyAgICAgICAgKyttX2l0ZXI7CisgICAgICAgIHJldHVybiAqdGhpczsK
KyAgICB9CisKKyAgICBjb25zdCBkZWNsdHlwZShzdGQ6OmRlY2x2YWw8VHJhbnNmb3JtPigpKCpz
dGQ6OmRlY2x2YWw8SXRlcmF0b3I+KCkpKSBvcGVyYXRvciooKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1fdHJhbnNmb3JtKCptX2l0ZXIpOworICAgIH0KKworICAgIGlubGluZSBib29s
IG9wZXJhdG9yPT0oVHJhbnNmb3JtSXRlcmF0b3ImIG90aGVyKSBjb25zdCB7IHJldHVybiBtX2l0
ZXIgPT0gb3RoZXIubV9pdGVyOyB9CisgICAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShUcmFuc2Zv
cm1JdGVyYXRvciYgb3RoZXIpIGNvbnN0IHsgcmV0dXJuIG1faXRlciAhPSBvdGhlci5tX2l0ZXI7
IH0KKworcHJpdmF0ZToKKyAgICBjb25zdCBUcmFuc2Zvcm0gbV90cmFuc2Zvcm07CisgICAgSXRl
cmF0b3IgbV9pdGVyOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVHJhbnNmb3JtLCB0eXBlbmFt
ZSBJdGVyYXRvcj4KK2lubGluZSBUcmFuc2Zvcm1JdGVyYXRvcjxUcmFuc2Zvcm0sIEl0ZXJhdG9y
PiBtYWtlVHJhbnNmb3JtSXRlcmF0b3IoVHJhbnNmb3JtJiYgdHJhbnNmb3JtLCBJdGVyYXRvciYm
IGl0ZXIpCit7CisgICAgcmV0dXJuIFRyYW5zZm9ybUl0ZXJhdG9yPFRyYW5zZm9ybSwgSXRlcmF0
b3I+KHN0ZDo6Zm9yd2FyZDxUcmFuc2Zvcm0+KHRyYW5zZm9ybSksIHN0ZDo6Zm9yd2FyZDxJdGVy
YXRvcj4oaXRlcikpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotI2VuZGlmIC8vIFdURl9G
aWx0ZXJJdGVyYXRvcl9oCisjZW5kaWYgLy8gV1RGX0l0ZXJhdG9yQWRhcHRvcnNfaApJbmRleDog
U291cmNlL1dURi93dGYvSXRlcmF0b3JQYWlyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvSXRlcmF0b3JQYWlyLmgJKHJldmlzaW9uIDE2MTc1MCkKKysrIFNvdXJjZS9XVEYvd3RmL0l0
ZXJhdG9yUGFpci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIFdURl9JdGVyYXRvclBhaXJfaAotI2RlZmluZSBXVEZfSXRlcmF0b3JQYWlyX2gK
LQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEl0ZXJhdG9yPgotY2xhc3Mg
SXRlcmF0b3JQYWlyIHsKLXB1YmxpYzoKLSAgICBJdGVyYXRvclBhaXIoSXRlcmF0b3IgYmVnaW4s
IEl0ZXJhdG9yIGVuZCkKLSAgICAgICAgOiBtX2JlZ2luKHN0ZDo6bW92ZShiZWdpbikpCi0gICAg
ICAgICwgbV9lbmQoc3RkOjptb3ZlKGVuZCkpCi0gICAgewotICAgIH0KLQotICAgIEl0ZXJhdG9y
IGJlZ2luKCkgY29uc3QgeyByZXR1cm4gbV9iZWdpbjsgfQotICAgIEl0ZXJhdG9yIGVuZCgpIGNv
bnN0IHsgcmV0dXJuIG1fZW5kOyB9Ci0KLXByaXZhdGU6Ci0gICAgSXRlcmF0b3IgbV9iZWdpbjsK
LSAgICBJdGVyYXRvciBtX2VuZDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgotCi0jZW5kaWYg
Ly8gV1RGX0l0ZXJhdG9yUGFpcgpJbmRleDogU291cmNlL1dURi93dGYvSXRlcmF0b3JSYW5nZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0l0ZXJhdG9yUmFuZ2UuaAkocmV2aXNpb24g
MTYxNzM2KQkoZnJvbSBTb3VyY2UvV1RGL3d0Zi9JdGVyYXRvclBhaXIuaDoxNjE3MzYpCisrKyBT
b3VyY2UvV1RGL3d0Zi9JdGVyYXRvclJhbmdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV1RGX0l0ZXJhdG9yUGFpcl9oCisjZGVmaW5lIFdU
Rl9JdGVyYXRvclBhaXJfaAorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8dHlwZW5hbWUg
SXRlcmF0b3I+CitjbGFzcyBJdGVyYXRvclBhaXIgeworcHVibGljOgorICAgIEl0ZXJhdG9yUGFp
cihJdGVyYXRvciBiZWdpbiwgSXRlcmF0b3IgZW5kKQorICAgICAgICA6IG1fYmVnaW4oc3RkOjpt
b3ZlKGJlZ2luKSkKKyAgICAgICAgLCBtX2VuZChzdGQ6Om1vdmUoZW5kKSkKKyAgICB7CisgICAg
fQorCisgICAgSXRlcmF0b3IgYmVnaW4oKSBjb25zdCB7IHJldHVybiBtX2JlZ2luOyB9CisgICAg
SXRlcmF0b3IgZW5kKCkgY29uc3QgeyByZXR1cm4gbV9lbmQ7IH0KKworcHJpdmF0ZToKKyAgICBJ
dGVyYXRvciBtX2JlZ2luOworICAgIEl0ZXJhdG9yIG1fZW5kOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCisKKyNlbmRpZiAvLyBXVEZfSXRlcmF0b3JQYWlyCkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9JdGVyYXRvclJhbmdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvSXRlcmF0b3JS
YW5nZS5oCSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV1RGL3d0Zi9JdGVyYXRvclJhbmdlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTIzLDE1ICsyMywxNSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV1RGX0l0ZXJhdG9yUGFpcl9oCi0jZGVmaW5l
IFdURl9JdGVyYXRvclBhaXJfaAorI2lmbmRlZiBXVEZfSXRlcmF0b3JSYW5nZV9oCisjZGVmaW5l
IFdURl9JdGVyYXRvclJhbmdlX2gKIAogbmFtZXNwYWNlIFdURiB7CiAKIHRlbXBsYXRlPHR5cGVu
YW1lIEl0ZXJhdG9yPgotY2xhc3MgSXRlcmF0b3JQYWlyIHsKK2NsYXNzIEl0ZXJhdG9yUmFuZ2Ug
ewogcHVibGljOgotICAgIEl0ZXJhdG9yUGFpcihJdGVyYXRvciBiZWdpbiwgSXRlcmF0b3IgZW5k
KQorICAgIEl0ZXJhdG9yUmFuZ2UoSXRlcmF0b3IgYmVnaW4sIEl0ZXJhdG9yIGVuZCkKICAgICAg
ICAgOiBtX2JlZ2luKHN0ZDo6bW92ZShiZWdpbikpCiAgICAgICAgICwgbV9lbmQoc3RkOjptb3Zl
KGVuZCkpCiAgICAgewpAQCAtNDUsNiArNDUsMTIgQEAgcHJpdmF0ZToKICAgICBJdGVyYXRvciBt
X2VuZDsKIH07CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEl0ZXJhdG9yPgorSXRlcmF0b3JSYW5nZTxJ
dGVyYXRvcj4gbWFrZUl0ZXJhdG9yUmFuZ2UoSXRlcmF0b3ImJiBiZWdpbiwgSXRlcmF0b3ImJiBl
bmQpCit7CisgICAgcmV0dXJuIEl0ZXJhdG9yUmFuZ2U8SXRlcmF0b3I+KHN0ZDo6Zm9yd2FyZDxJ
dGVyYXRvcj4oYmVnaW4pLCBzdGQ6OmZvcndhcmQ8SXRlcmF0b3I+KGVuZCkpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXVEYKIAotI2VuZGlmIC8vIFdURl9JdGVyYXRvclBhaXIKKyNlbmRpZiAvLyBX
VEZfSXRlcmF0b3JSYW5nZV9oCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9SZWZQdHJIYXNoTWFwLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvUmVmUHRySGFzaE1hcC5oCShyZXZpc2lvbiAx
NjE3NTApCisrKyBTb3VyY2UvV1RGL3d0Zi9SZWZQdHJIYXNoTWFwLmgJKHdvcmtpbmcgY29weSkK
QEAgLTcwLDExICs3MCwxMSBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICAgICAgY29uc3RfaXRlcmF0
b3IgYmVnaW4oKSBjb25zdDsKICAgICAgICAgY29uc3RfaXRlcmF0b3IgZW5kKCkgY29uc3Q7CiAK
LSAgICAgICAgSXRlcmF0b3JQYWlyPHR5cGVuYW1lIGl0ZXJhdG9yOjpLZXlzPiBrZXlzKCkgeyBy
ZXR1cm4gSXRlcmF0b3JQYWlyPHR5cGVuYW1lIGl0ZXJhdG9yOjpLZXlzPihiZWdpbigpLmtleXMo
KSwgZW5kKCkua2V5cygpKTsgfQotICAgICAgICBjb25zdCBJdGVyYXRvclBhaXI8dHlwZW5hbWUg
Y29uc3RfaXRlcmF0b3I6OktleXM+IGtleXMoKSBjb25zdCB7IHJldHVybiBJdGVyYXRvclBhaXI8
dHlwZW5hbWUgY29uc3RfaXRlcmF0b3I6OktleXM+KGJlZ2luKCkua2V5cygpLCBlbmQoKS5rZXlz
KCkpOyB9CisgICAgICAgIEl0ZXJhdG9yUmFuZ2U8dHlwZW5hbWUgaXRlcmF0b3I6OktleXM+IGtl
eXMoKSB7IHJldHVybiBtYWtlSXRlcmF0b3JSYW5nZShiZWdpbigpLmtleXMoKSwgZW5kKCkua2V5
cygpKTsgfQorICAgICAgICBjb25zdCBJdGVyYXRvclJhbmdlPHR5cGVuYW1lIGNvbnN0X2l0ZXJh
dG9yOjpLZXlzPiBrZXlzKCkgY29uc3QgeyByZXR1cm4gbWFrZUl0ZXJhdG9yUmFuZ2UoYmVnaW4o
KS5rZXlzKCksIGVuZCgpLmtleXMoKSk7IH0KIAotICAgICAgICBJdGVyYXRvclBhaXI8dHlwZW5h
bWUgaXRlcmF0b3I6OlZhbHVlcz4gdmFsdWVzKCkgeyByZXR1cm4gSXRlcmF0b3JQYWlyPHR5cGVu
YW1lIGl0ZXJhdG9yOjpWYWx1ZXM+KGJlZ2luKCkudmFsdWVzKCksIGVuZCgpLnZhbHVlcygpKTsg
fQotICAgICAgICBjb25zdCBJdGVyYXRvclBhaXI8dHlwZW5hbWUgY29uc3RfaXRlcmF0b3I6OlZh
bHVlcz4gdmFsdWVzKCkgY29uc3QgeyByZXR1cm4gSXRlcmF0b3JQYWlyPHR5cGVuYW1lIGNvbnN0
X2l0ZXJhdG9yOjpWYWx1ZXM+KGJlZ2luKCkudmFsdWVzKCksIGVuZCgpLnZhbHVlcygpKTsgfQor
ICAgICAgICBJdGVyYXRvclJhbmdlPHR5cGVuYW1lIGl0ZXJhdG9yOjpWYWx1ZXM+IHZhbHVlcygp
IHsgcmV0dXJuIG1ha2VJdGVyYXRvclJhbmdlKGJlZ2luKCkudmFsdWVzKCksIGVuZCgpLnZhbHVl
cygpKTsgfQorICAgICAgICBjb25zdCBJdGVyYXRvclJhbmdlPHR5cGVuYW1lIGNvbnN0X2l0ZXJh
dG9yOjpWYWx1ZXM+IHZhbHVlcygpIGNvbnN0IHsgcmV0dXJuIG1ha2VJdGVyYXRvclJhbmdlKGJl
Z2luKCkudmFsdWVzKCksIGVuZCgpLnZhbHVlcygpKTsgfQogCiAgICAgICAgIGl0ZXJhdG9yIGZp
bmQoY29uc3QgS2V5VHlwZSYpOwogICAgICAgICBpdGVyYXRvciBmaW5kKFJhd0tleVR5cGUpOwpJ
bmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTYxNzY4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMDEtMTEgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBDbGVhbiB1cCBpdGVyYXRvciBmaWx0ZXIg
LyBpdGVyYXRvciByYW5nZSBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjY4MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNoYXJlZC9BUElBcnJheS5oOgorICAgICAgICBVcGRhdGUgZWxlbWVu
dHNPZlR5cGUoKSB0byB1c2UgY29tYmluYXRpb24gb2YgRmlsdGVySXRlcmF0b3IgYW5kIFRyYW5z
Zm9ybUl0ZXJhdG9yCisgICAgICAgIChub3cgdGhhdCBGaWx0ZXJJdGVyYXRvciBubyBsb25nZXIg
aGFzIGEgdHJhbnNmb3JtIHByZWRpY2F0ZSkgYW5kIG1ha2UgdXNlIG9mIHRoZSAKKyAgICAgICAg
bWFrZUZvbygpIGhlbHBlcnMuCisKIDIwMTQtMDEtMTEgIEppbndvbyBTb25nICA8amlud29vNy5z
b25nQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gVXNlIG51bGxwdHIgaW5zdGVh
ZCBvZiAwIGluIEVGTCBBUEkgbGF5ZXIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElB
cnJheS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElBcnJheS5oCShy
ZXZpc2lvbiAxNjE3NTApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJQXJyYXkuaAkod29y
a2luZyBjb3B5KQpAQCAtMjcsOSArMjcsOSBAQAogI2RlZmluZSBBUElBcnJheV9oCiAKICNpbmNs
dWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlIDx3dGYvRmlsdGVySXRlcmF0b3IuaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9JdGVyYXRvclBhaXIuaD4KKyNpbmNs
dWRlIDx3dGYvSXRlcmF0b3JBZGFwdG9ycy5oPgorI2luY2x1ZGUgPHd0Zi9JdGVyYXRvclJhbmdl
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKQEAgLTM3LDExICszNywxOCBAQCBuYW1lc3BhY2UgQVBJIHsKIAogY2xhc3MgQXJyYXkgRklO
QUwgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OkFycmF5PiB7CiBwcml2YXRlOgot
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgc3RhdGljIGlubGluZSBjb25zdCBUKiBnZXRP
YmplY3QoY29uc3QgUmVmUHRyPE9iamVjdD4mIG9iamVjdCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
Y29uc3QgVCo+KG9iamVjdC5nZXQoKSk7IH0KKyAgICB0ZW1wbGF0ZSA8Y2xhc3MgVD4KKyAgICBz
dHJ1Y3QgSXNUeXBlUHJlZGljYXRlIHsKKyAgICAgICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFJl
ZlB0cjxPYmplY3Q+JiBvYmplY3QpIGNvbnN0IHsgcmV0dXJuIG9iamVjdC0+dHlwZSgpID09IFQ6
OkFQSVR5cGU7IH0KKyAgICB9OworCisgICAgdGVtcGxhdGUgPGNsYXNzIFQ+CisgICAgc3RydWN0
IEdldE9iamVjdFRyYW5zZm9ybSB7CisgICAgICAgIGNvbnN0IFQqIG9wZXJhdG9yKCkoY29uc3Qg
UmVmUHRyPE9iamVjdD4mIG9iamVjdCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
VCo+KG9iamVjdC5nZXQoKSk7IH0KKyAgICB9OwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4K
LSAgICBzdGF0aWMgaW5saW5lIGJvb2wgaXNUeXBlKGNvbnN0IFJlZlB0cjxPYmplY3Q+JiBvYmpl
Y3QpIHsgcmV0dXJuIG9iamVjdC0+dHlwZSgpID09IFQ6OkFQSVR5cGU7IH0KKyAgICB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KKyAgICB1c2luZyBFbGVtZW50c09mVHlwZVJhbmdlID0gV1RGOjpJdGVy
YXRvclJhbmdlPFdURjo6VHJhbnNmb3JtSXRlcmF0b3I8R2V0T2JqZWN0VHJhbnNmb3JtPFQ+LCBX
VEY6OkZpbHRlckl0ZXJhdG9yPElzVHlwZVByZWRpY2F0ZTxUPiwgVmVjdG9yPFJlZlB0cjxPYmpl
Y3Q+Pjo6Y29uc3RfaXRlcmF0b3I+Pj47CiAKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxBcnJheT4gY3JlYXRlKCk7CkBAIC01Myw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgogICAgIFQqIGF0KHNpemVfdCBpKSBjb25zdAogICAgIHsKLSAgICAgICAg
aWYgKCFpc1R5cGU8VD4obV9lbGVtZW50c1tpXSkpCisgICAgICAgIGlmIChtX2VsZW1lbnRzW2ld
LT50eXBlKCkgIT0gVDo6QVBJVHlwZSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUKj4obV9lbGVtZW50c1tpXS5nZXQoKSk7CkBAIC02
NiwxMyArNzMsMTEgQEAgcHVibGljOgogICAgIFZlY3RvcjxSZWZQdHI8T2JqZWN0Pj4mIGVsZW1l
bnRzKCkgeyByZXR1cm4gbV9lbGVtZW50czsgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4K
LSAgICBXVEY6Okl0ZXJhdG9yUGFpcjxXVEY6OkZpbHRlckl0ZXJhdG9yPGRlY2x0eXBlKCZpc1R5
cGU8VD4pLCBkZWNsdHlwZSgmZ2V0T2JqZWN0PFQ+KSwgVmVjdG9yPFJlZlB0cjxPYmplY3Q+Pjo6
Y29uc3RfaXRlcmF0b3I+PiBlbGVtZW50c09mVHlwZSgpCisgICAgRWxlbWVudHNPZlR5cGVSYW5n
ZTxUPiBlbGVtZW50c09mVHlwZSgpIGNvbnN0CiAgICAgewotICAgICAgICB0eXBlZGVmIFdURjo6
RmlsdGVySXRlcmF0b3I8ZGVjbHR5cGUoJmlzVHlwZTxUPiksIGRlY2x0eXBlKCZnZXRPYmplY3Q8
VD4pLCBWZWN0b3I8UmVmUHRyPE9iamVjdD4+Ojpjb25zdF9pdGVyYXRvcj4gSXRlcmF0b3I7Ci0g
ICAgCi0gICAgICAgIHJldHVybiBXVEY6Okl0ZXJhdG9yUGFpcjxJdGVyYXRvcj4oCi0gICAgICAg
ICAgICBJdGVyYXRvcihpc1R5cGU8VD4sIGdldE9iamVjdDxUPiwgbV9lbGVtZW50cy5iZWdpbigp
LCBtX2VsZW1lbnRzLmVuZCgpKSwKLSAgICAgICAgICAgIEl0ZXJhdG9yKGlzVHlwZTxUPiwgZ2V0
T2JqZWN0PFQ+LCBtX2VsZW1lbnRzLmVuZCgpLCBtX2VsZW1lbnRzLmVuZCgpKQorICAgICAgICBy
ZXR1cm4gV1RGOjptYWtlSXRlcmF0b3JSYW5nZSgKKyAgICAgICAgICAgIFdURjo6bWFrZVRyYW5z
Zm9ybUl0ZXJhdG9yKEdldE9iamVjdFRyYW5zZm9ybTxUPigpLCBXVEY6Om1ha2VGaWx0ZXJJdGVy
YXRvcihJc1R5cGVQcmVkaWNhdGU8VD4oKSwgbV9lbGVtZW50cy5iZWdpbigpLCBtX2VsZW1lbnRz
LmVuZCgpKSksCisgICAgICAgICAgICBXVEY6Om1ha2VUcmFuc2Zvcm1JdGVyYXRvcihHZXRPYmpl
Y3RUcmFuc2Zvcm08VD4oKSwgV1RGOjptYWtlRmlsdGVySXRlcmF0b3IoSXNUeXBlUHJlZGljYXRl
PFQ+KCksIG1fZWxlbWVudHMuZW5kKCksIG1fZWxlbWVudHMuZW5kKCkpKQogICAgICAgICApOwog
ICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTYxNzUwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTQtMDEtMDYgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbSlNdIFNob3VsZCBiZSBhYmxlIHRvIGNy
ZWF0ZSBhIHByb21pc2UgYnkgY2FsbGluZyB0aGUgUHJvbWlzZSBjb25zdHJ1Y3RvciBhcyBhIGZ1
bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MjY1NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGpzL2RvbS9Qcm9taXNlLXR5cGVzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9kb20vUHJv
bWlzZS10eXBlcy5odG1sOgorICAgICAgICBBZGQgdGVzdCBmb3IgdXNpbmcgY2FsbGluZyBhIFBy
b21pc2UgY29uc3RydWN0b3IgYXMgYSBmdW5jdGlvbi4KKwogMjAxNC0wMS0xMCAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjE2MTcwMi4K
</data>

          </attachment>
      

    </bug>

</bugzilla>