<?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>179752</bug_id>
          
          <creation_ts>2017-11-15 17:26:29 -0800</creation_ts>
          <short_desc>[EME] Support generateRequest() in CDMFairPlayStreaming</short_desc>
          <delta_ts>2017-12-07 11:47:18 -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>Media</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1372507</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-11-15 17:26:29 -0800</bug_when>
    <thetext>[EME] SUpport generateRequest() in CDMFairPlayStreaming</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372510</commentid>
    <comment_count>1</comment_count>
      <attachid>327040</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-11-15 17:39:33 -0800</bug_when>
    <thetext>Created attachment 327040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378170</commentid>
    <comment_count>2</comment_count>
      <attachid>328453</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-12-05 08:42:12 -0800</bug_when>
    <thetext>Created attachment 328453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378905</commentid>
    <comment_count>3</comment_count>
      <attachid>328453</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-12-06 16:31:37 -0800</bug_when>
    <thetext>Comment on attachment 328453
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:143
&gt; +        if (result.first == &quot;cbcs&quot; || result.first == &quot;cbc2&quot; || result.first == &quot;cbc1&quot;)

Nit: these strings are used in several places, you should make them statics with MAKE_STATIC_STRING_IMPL().

&gt; Source/WebCore/platform/graphics/avfoundation/CDMFairPlayStreaming.cpp:163
&gt; +    InitDataRegistry::shared().registerInitDataType(&quot;sinf&quot;, { CDMPrivateFairPlayStreaming::sanitizeSinf, CDMPrivateFairPlayStreaming::extractKeyIDsSinf });

Nit: ASCIILiteral(&quot;sinf&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379172</commentid>
    <comment_count>4</comment_count>
      <attachid>328708</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2017-12-07 11:08:42 -0800</bug_when>
    <thetext>Created attachment 328708
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379195</commentid>
    <comment_count>5</comment_count>
      <attachid>328708</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-07 11:46:57 -0800</bug_when>
    <thetext>Comment on attachment 328708
Patch for landing

Clearing flags on attachment: 328708

Committed r225637: &lt;https://trac.webkit.org/changeset/225637&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379196</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-07 11:46:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379197</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-07 11:47:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/35914966&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327040</attachid>
            <date>2017-11-15 17:39:33 -0800</date>
            <delta_ts>2017-12-05 08:42:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179752-20171115173932.patch</filename>
            <type>text/plain</type>
            <size>8653</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0Nzk1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTQ5Mzg2NTdkYWY2YzZhYmJkYzMx
MzE5MjZiODg5YjBiZDQwYjlmYy4uODhmNzY0NDZiMmNhODg1MjE0NTRlMDgxZjQwY2RiOWRjYmJi
YzQwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTExLTE1ICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtFTUVdIFN1cHBvcnQgZ2VuZXJhdGVSZXF1ZXN0
KCkgaW4gQ0RNRmFpclBsYXlTdHJlYW1pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3OTc1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9mcHMtY3JlYXRlU2Vzc2lv
bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9tZWRpYS9lbmNy
eXB0ZWQtbWVkaWEvZnBzLWNyZWF0ZVNlc3Npb24uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxh
dGZvcm0vbWFjL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9mcHMtZ2VuZXJhdGVSZXF1ZXN0LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL21lZGlhL2VuY3J5cHRlZC1t
ZWRpYS9mcHMtZ2VuZXJhdGVSZXF1ZXN0Lmh0bWw6IEFkZGVkLgorCiAyMDE3LTExLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsZSBNb2Rlcm4gRU1F
IHRlc3RzIGluIER1bXBSZW5kZXJUcmVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDkyZDA4OGExZDAzYzYwZmUzMzA4NjVhNmM0MDczYWE0ZDkzMzU5ZTcu
LmM3ZmEwMmI2NWNkNWEzMzZjZGI1NzY5ZTIyN2NlYjMzOWVmNTQ0NDAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNzQ0LDUgKzE3NDQsNyBAQCB3ZWJr
aXQub3JnL2IvMTc5MzQyIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi10
YXNrLXF1ZXVlLXNjaGVkdWxpbgogIyBBVkNvbnRlbnRLZXlTZXNzaW9uIG5vdCBhdmFpbGFibGUg
cHJlLUhpZ2ggU2llcnJhCiBbIEVsQ2FwaXRhbiBTaWVycmEgXSBwbGF0Zm9ybS9tYWMvbWVkaWEv
ZW5jcnlwdGVkLW1lZGlhL2Zwcy1jcmVhdGVNZWRpYUtleXMuaHRtbCBbIFNraXAgXQogWyBFbENh
cGl0YW4gU2llcnJhIF0gcGxhdGZvcm0vbWFjL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9mcHMtcmVx
dWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwgWyBTa2lwIF0KK1sgRWxDYXBpdGFuIFNpZXJy
YSBdIHBsYXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZnBzLWNyZWF0ZVNlc3Npb24u
aHRtbCBbIFNraXAgXQorWyBFbENhcGl0YW4gU2llcnJhIF0gcGxhdGZvcm0vbWFjL21lZGlhL2Vu
Y3J5cHRlZC1tZWRpYS9mcHMtZ2VuZXJhdGVSZXF1ZXN0Lmh0bWwgWyBTa2lwIF0KIAogd2Via2l0
Lm9yZy9iLzE3OTIwOCBbIEhpZ2hTaWVycmErIF0ganMvaW50bC1kYXRldGltZWZvcm1hdC5odG1s
IFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEv
ZW5jcnlwdGVkLW1lZGlhL2Zwcy1jcmVhdGVTZXNzaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZnBzLWNyZWF0ZVNlc3Npb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyNGYzODNlMTRhMjdmYzU1NTk4YzNkYzY0NzFiZTM2
M2ZhZTNiZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVk
aWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1jcmVhdGVTZXNzaW9uLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDggQEAKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3RlbUFj
Y2VzcygiY29tLmFwcGxlLmZwcyIsIGNhcGFiaWxpdGllcykpCitQcm9taXNlIHJlc29sdmVkIE9L
CitSVU4ocHJvbWlzZSA9IGFjY2Vzcy5jcmVhdGVNZWRpYUtleXMoKSkKK1Byb21pc2UgcmVzb2x2
ZWQgT0sKK1JVTihzZXNzaW9uID0ga2V5cy5jcmVhdGVTZXNzaW9uKCkpCitFWFBFQ1RFRCAoc2Vz
c2lvbiAhPSAnbnVsbCcpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1jcmVhdGVTZXNzaW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1j
cmVhdGVTZXNzaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmIyYTIzYjg2ZDYyY2EzNWMwMDYwNTcxY2E2
YTdiOGRmYmRiODViYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZnBzLWNyZWF0ZVNlc3Npb24uaHRtbApAQCAtMCwwICsx
LDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPmZwcy1y
ZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3M8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li8uLi8uLi9tZWRpYS92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAg
IHZhciBjYXBhYmlsaXRpZXMgPSBbeworICAgICAgICBpbml0RGF0YVR5cGVzOiBbJ3NpbmYnXSwK
KyAgICAgICAgdmlkZW9DYXBhYmlsaXRpZXM6IFt7IGNvbnRlbnRUeXBlOiAndmlkZW8vbXA0Jywg
cm9idXN0bmVzczogJycgfV0sCisgICAgICAgIGRpc3RpbmN0aXZlSWRlbnRpZmllcjogJ25vdC1h
bGxvd2VkJywKKyAgICAgICAgcGVyc2lzdGVudFN0YXRlOiAnbm90LWFsbG93ZWQnLAorICAgICAg
ICBzZXNzaW9uVHlwZXM6IFsndGVtcG9yYXJ5J10sCisgICAgfV07CisgICAgdmFyIHByb21pc2U7
CisgICAgdmFyIGFjY2VzczsKKyAgICB2YXIga2V5czsKKyAgICB2YXIgc2Vzc2lvbjsKKyAgICB2
YXIgaW5pdERhdGEgPSBudWxsOworCisgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgICAg
ICBydW4oJ3Byb21pc2UgPSBuYXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCJj
b20uYXBwbGUuZnBzIiwgY2FwYWJpbGl0aWVzKScpOworICAgICAgICBzaG91bGRSZXNvbHZlKHBy
b21pc2UpLnRoZW4oZ290QWNjZXNzLCBlbmRUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBn
b3RBY2Nlc3MoYWNjZXNzKSB7CisgICAgICAgIHdpbmRvdy5hY2Nlc3MgPSBhY2Nlc3M7CisgICAg
ICAgIHJ1bigncHJvbWlzZSA9IGFjY2Vzcy5jcmVhdGVNZWRpYUtleXMoKScpOworICAgICAgICBz
aG91bGRSZXNvbHZlKHByb21pc2UpLnRoZW4oY3JlYXRlZEtleXMsIGVuZFRlc3QpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIGNyZWF0ZWRLZXlzKGtleXMpIHsKKyAgICAgICAgd2luZG93LmtleXMg
PSBrZXlzOworICAgICAgICBydW4oJ3Nlc3Npb24gPSBrZXlzLmNyZWF0ZVNlc3Npb24oKScpOwor
ICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3Nlc3Npb24nLCAnbnVsbCcsICchPScpOworICAgICAgICBl
bmRUZXN0KCk7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBz
dGFydFRlc3QpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvZW5jcnlwdGVk
LW1lZGlhL2Zwcy1nZW5lcmF0ZVJlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9mcHMtZ2VuZXJhdGVSZXF1ZXN0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yYmFhNzY4YmZmZjFlYzBiNWQ0YjYxNTc5MGMwZDRhZTQwN2Y4
NzkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL2Vu
Y3J5cHRlZC1tZWRpYS9mcHMtZ2VuZXJhdGVSZXF1ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDExIEBACitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nl
c3MoImNvbS5hcHBsZS5mcHMiLCBjYXBhYmlsaXRpZXMpKQorUHJvbWlzZSByZXNvbHZlZCBPSwor
UlVOKHByb21pc2UgPSBhY2Nlc3MuY3JlYXRlTWVkaWFLZXlzKCkpCitQcm9taXNlIHJlc29sdmVk
IE9LCitSVU4oa2V5cy5zZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShzZXJ2ZXJDZXJ0aWZpY2F0ZSkpCitS
VU4oc2Vzc2lvbiA9IGtleXMuY3JlYXRlU2Vzc2lvbigpKQorRVhQRUNURUQgKHNlc3Npb24gIT0g
J251bGwnKSBPSworUlVOKHByb21pc2UgPSBzZXNzaW9uLmdlbmVyYXRlUmVxdWVzdCgic2luZiIs
IGluaXREYXRhKSkKK1Byb21pc2UgcmVzb2x2ZWQgT0sKK0VORCBPRiBURVNUCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZnBzLWdl
bmVyYXRlUmVxdWVzdC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL2VuY3J5
cHRlZC1tZWRpYS9mcHMtZ2VuZXJhdGVSZXF1ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Y1YjFlY2Nj
NDFlOTM0NGQ0NjIwZTgxNzI1NjMyMTIyOTk2MTgwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZnBzLWdlbmVyYXRlUmVx
dWVzdC5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8dGl0bGU+ZnBzLXJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2VzczwvdGl0bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL21lZGlhL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQ+CisgICAgdmFyIGNhcGFiaWxpdGllcyA9IFt7CisgICAgICAgIGluaXRE
YXRhVHlwZXM6IFsnc2luZiddLAorICAgICAgICB2aWRlb0NhcGFiaWxpdGllczogW3sgY29udGVu
dFR5cGU6ICd2aWRlby9tcDQnLCByb2J1c3RuZXNzOiAnJyB9XSwKKyAgICAgICAgZGlzdGluY3Rp
dmVJZGVudGlmaWVyOiAnbm90LWFsbG93ZWQnLAorICAgICAgICBwZXJzaXN0ZW50U3RhdGU6ICdu
b3QtYWxsb3dlZCcsCisgICAgICAgIHNlc3Npb25UeXBlczogWyd0ZW1wb3JhcnknXSwKKyAgICB9
XTsKKyAgICB2YXIgcHJvbWlzZTsKKyAgICB2YXIgYWNjZXNzOworICAgIHZhciBrZXlzOworICAg
IHZhciBzZXNzaW9uOworICAgIHZhciBpbml0RGF0YSA9IG5ldyBUZXh0RW5jb2RlcigpLmVuY29k
ZShKU09OLnN0cmluZ2lmeSh7CisgICAgICAgIHNpbmY6IFsKKyAgICAgICAgICAgICJBQUFBREda
eWJXRnRjRFJoQUFBQUZITmphRzBBQUFBQVkySmpjd0FCQUFBQUFBQTVjMk5vYVFBQUFERjBaVzVq
QVFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFTndvTGo3N2pDandDQUF3M1NxS2FvOD0i
LAorICAgICAgICBdCisgICAgfSkpOworICAgIHZhciBzZXJ2ZXJDZXJ0aWZpY2F0ZVVSSSA9ICJk
YXRhOmFwcGxpY2F0aW9uL3gteDUwOS1jYS1jZXJ0O2Jhc2U2NCxNSUlFeURDQ0E3Q2dBd0lCQWdJ
SUQwLzA3Y0NISDBZd0RRWUpLb1pJaHZjTkFRRUZCUUF3ZnpFTE1Ba0dBMVVFQmhNQ1ZWTXhFekFS
QmdOVkJBb01Da0Z3Y0d4bElFbHVZeTR4SmpBa0JnTlZCQXNNSFVGd2NHeGxJRU5sY25ScFptbGpZ
WFJwYjI0Z1FYVjBhRzl5YVhSNU1UTXdNUVlEVlFRRERDcEJjSEJzWlNCTFpYa2dVMlZ5ZG1salpY
TWdRMlZ5ZEdsbWFXTmhkR2x2YmlCQmRYUm9iM0pwZEhrd0hoY05NVEl4TWpJd01EQXpPRFF6V2hj
Tk1UUXhNakl4TURBek9EUXpXakJJTVFzd0NRWURWUVFHRXdKVlV6RVNNQkFHQTFVRUNnd0pRWEJ3
YkdVZ1NXNWpNUkl3RUFZRFZRUUxEQWxCY0hCc1pTQkpibU14RVRBUEJnTlZCQU1NQ0dad2MzUmxj
M1EwTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDdUhldkRscGhPTTBzRDY3
cjNvbEZrTi8ydkMwb1BsK2RKMkNyQmtMMHRVSm92OVliWHVkNnltSnAyVGtLa0dxbnViUmFYNW1J
OTQrVjlDYy8welNscCtOVENEVGNaN3k0NEU4ajg1QXYvNVhxb3pVZi93VXlZK1VZUEJSRDZCSFVu
SDVZRDZ1dVNsTGNxRTBEYUU4cHRYaVF5TjNTUnRlQ0ZRNG5JOWYxMXVRSURBUUFCbzRJQ0FUQ0NB
ZjB3SFFZRFZSME9CQllFRkJhVmYxZzFiZnlBVzc3NlNmdmVxajlOMDNFTU1Bd0dBMVVkRXdFQi93
UUNNQUF3SHdZRFZSMGpCQmd3Rm9BVVkrUkhWTXVGY1ZsR0xJT3N6RVF4WkdjRExMNHdnZUlHQTFV
ZElBU0IyakNCMXpDQjFBWUpLb1pJaHZkalpBVUJNSUhHTUlIREJnZ3JCZ0VGQlFjQ0FqQ0J0Z3lC
czFKbGJHbGhibU5sSUc5dUlIUm9hWE1nWTJWeWRHbG1hV05oZEdVZ1lua2dZVzU1SUhCaGNuUjVJ
R0Z6YzNWdFpYTWdZV05qWlhCMFlXNWpaU0J2WmlCMGFHVWdkR2hsYmlCaGNIQnNhV05oWW14bElI
TjBZVzVrWVhKa0lIUmxjbTF6SUdGdVpDQmpiMjVrYVhScGIyNXpJRzltSUhWelpTd2dZMlZ5ZEds
bWFXTmhkR1VnY0c5c2FXTjVJR0Z1WkNCalpYSjBhV1pwWTJGMGFXOXVJSEJ5WVdOMGFXTmxJSE4w
WVhSbGJXVnVkSE11TURVR0ExVWRId1F1TUN3d0txQW9vQ2FHSkdoMGRIQTZMeTlqY213dVlYQndi
R1V1WTI5dEwydGxlWE5sY25acFkyVnpMbU55YkRBT0JnTlZIUThCQWY4RUJBTUNCU0F3TkFZTEtv
WklodmRqWkFZTkFRTUJBZjhFSWdIR2VxMFdDeEgzb0FMcWJLUkRlQ2w0bHFEYUhWU1Fqc1FabnlD
TUUyVGVjVUV3U3dZTEtvWklodmRqWkFZTkFRUUJBZjhFT1FIbEhoZHNnQjhRUEpaRmI5YUFtdmM4
a1lTVFFZYmpGNi9VMm1xNDZzWFdSS1dQS0dwcUx5QzVBY3ROUVV1SGp5blpuNlkwdnMwRDhqQU5C
Z2txaGtpRzl3MEJBUVVGQUFPQ0FRRUFnOEdrRXcwZ0RSbjdyYUE4dytWMzZOT3ZLbFV4M1doM3Bj
cUk4Y1JBVHY5VHdwNHpmeUo0Rnd4ZFQ5MC96Q3RVVWpUVnRhdTZ5RVNUd1grTFVGdS9ZMGt2YVYw
aHRnQklCdTdNV1lDdmZMbFN3UzRNcWJCdE5kbG9ETnZVN0NOeVdYYU1wS3BZS042aTBTcUVuVHZG
MG1TVHBCbGlDVCtReHVOSXhhV3E5aDJjQ243OWtiWEpNNStJQzM3bUlXTzBqdnpRamVTbE9YSlBa
ck5IWjZCanQwQXlpQ0lpWlZrUG1WbTVsVjNZY2QwZ2Y0bWZoQVZKWUUvcDYvZFRrK21xbnhEZFVV
TVZGRFVmdTFPcUJpbTZsZFduQWg4UGxXYUdoNXJMWVZnR3Z4RUVQRE5ldWVZaHhUckRuRU5iaENa
NW4vYnkwUnAwczY3dDE5MjRXaytRVVE9PSI7CisgICAgdmFyIHNlcnZlckNlcnRpZmljYXRlOwor
CisgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgICAgICBydW4oJ3Byb21pc2UgPSBuYXZp
Z2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCJjb20uYXBwbGUuZnBzIiwgY2FwYWJp
bGl0aWVzKScpOworICAgICAgICBzaG91bGRSZXNvbHZlKHByb21pc2UpLnRoZW4oZ290QWNjZXNz
LCBlbmRUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBnb3RBY2Nlc3MoYWNjZXNzKSB7Cisg
ICAgICAgIHdpbmRvdy5hY2Nlc3MgPSBhY2Nlc3M7CisgICAgICAgIHJ1bigncHJvbWlzZSA9IGFj
Y2Vzcy5jcmVhdGVNZWRpYUtleXMoKScpOworICAgICAgICBzaG91bGRSZXNvbHZlKHByb21pc2Up
LnRoZW4oY3JlYXRlZEtleXMsIGVuZFRlc3QpOworICAgIH0KKworICAgIGFzeW5jIGZ1bmN0aW9u
IGNyZWF0ZWRLZXlzKGtleXMpIHsKKyAgICAgICAgd2luZG93LmtleXMgPSBrZXlzOworICAgICAg
ICB2YXIgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChzZXJ2ZXJDZXJ0aWZpY2F0ZVVSSSk7CisgICAg
ICAgIHNlcnZlckNlcnRpZmljYXRlID0gYXdhaXQgcmVzcG9uc2UuYXJyYXlCdWZmZXIoKTsKKyAg
ICAgICAgcnVuKCdrZXlzLnNldFNlcnZlckNlcnRpZmljYXRlKHNlcnZlckNlcnRpZmljYXRlKScp
OworICAgICAgICBydW4oJ3Nlc3Npb24gPSBrZXlzLmNyZWF0ZVNlc3Npb24oKScpOworICAgICAg
ICB0ZXN0RXhwZWN0ZWQoJ3Nlc3Npb24nLCAnbnVsbCcsICchPScpOworICAgICAgICBydW4oJ3By
b21pc2UgPSBzZXNzaW9uLmdlbmVyYXRlUmVxdWVzdCgic2luZiIsIGluaXREYXRhKScpOworICAg
ICAgICBzaG91bGRSZXNvbHZlKHByb21pc2UpLnRoZW4oZW5kVGVzdCwgZW5kVGVzdCk7CisgICAg
fQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBzdGFydFRlc3QpOworICAg
IDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328453</attachid>
            <date>2017-12-05 08:42:12 -0800</date>
            <delta_ts>2017-12-07 11:08:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179752-20171205084211.patch</filename>
            <type>text/plain</type>
            <size>16850</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmE2NzJjODdlMWI3ZGRl
MjdiMjJlNTc1MTNkMjJmZTNjZjQzNzI1Yy4uZjRhNzY2NmFkMDJiMzU2NzQzYjJiY2M3ZWQxMmVh
Nzg5ZTgzNjk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTExLTE1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtFTUVdIFN1cHBvcnQgZ2Vu
ZXJhdGVSZXF1ZXN0KCkgaW4gQ0RNRmFpclBsYXlTdHJlYW1pbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTc1MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBwbGF0Zm9ybS9tYWMvbWVkaWEv
ZW5jcnlwdGVkLW1lZGlhL2Zwcy1jcmVhdGVTZXNzaW9uLmh0bWwKKyAgICAgICAgICAgICAgIHBs
YXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZnBzLWdlbmVyYXRlUmVxdWVzdC5odG1s
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIGdlbmVyYXRpbmcgbGljZW5zZSByZXF1ZXN0cyBm
cm9tIGluaXRpYWxpemF0aW9uIGRhdGEgaW4KKyAgICAgICAgQ0RNRmFpclBsYXlTdHJlYW1pbmcu
IFRvIGRvIHNvLCBhZGQgZXhwbGljaXQgY2hlY2tzIGZvciBGYWlyUGxheSBTdGVyYW1pbmcgcmVx
dWlyZW1lbnRzOgorICAgICAgICByZXFlc3RzIHdpbGwgZmFpbCBpZiBubyBzZXJ2ZXIgY2VydGlm
aWNhdGUgZXhpc3RzLCBhbmQgd2lsbCBmYWlsIGlmIG5vIGNvbnRlbnQga2V5IGlkIGV4aXN0cwor
ICAgICAgICBpbiB0aGUgaW5pdGlhbGl6YXRpb24gZGF0YS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5m
KToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2FuaXRp
emVTaW5mKToKKyAgICAgICAgKFdlYkNvcmU6OkNETUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJG
YWN0b3JpZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1G
YWlyUGxheVN0cmVhbWluZy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnJlcXVlc3RM
aWNlbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdB
VkZPYmpDOjpkaWRQcm92aWRlUmVxdWVzdCk6CisKIDIwMTctMTEtMDIgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgSW5jbHVkZSAndmlkZW8vKicgaW4gaW1hZ2Ug
cmVxdWVzdCBBY2NlcHQgaGVhZGVyIGlmIGJyb3dzZXIgc3VwcG9ydHMgdmlkZW8gbWVkaWEgaW4g
aW1hZ2UgY29udGV4dHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNw
cAppbmRleCBiM2YyYjliNWY4NDQ1MDczMmEwNDY3MjFiYjlhMzE5MGUzOTNjYTg0Li41NWQ5ODA0
NjE1YTkzNTRhNjdhOTAyMDE0MjVlNDcxYzQ2MmEzNDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9D
RE1GYWlyUGxheVN0cmVhbWluZy5jcHAKQEAgLTEzNCwyOCArMTM0LDIwIEBAIHN0YXRpYyBTY2hl
bWVBbmRLZXlSZXN1bHQgZXh0cmFjdFNjaGVtZUFuZEtleUlkRnJvbVNpbmYoY29uc3QgU2hhcmVk
QnVmZmVyJiBidWZmCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIFZlY3RvcjxSZWY8
U2hhcmVkQnVmZmVyPj4gZXh0cmFjdEtleUlEc1NpbmYoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZm
ZXIpCitWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IENETVByaXZhdGVGYWlyUGxheVN0cmVhbWlu
Zzo6ZXh0cmFjdEtleUlEc1NpbmYoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7Ci0gICAg
YXV0byBzaW5mcyA9IGV4dHJhY3RTaW5mRGF0YShidWZmZXIpOwotICAgIGlmIChzaW5mcy5pc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybiB7IH07Ci0KICAgICBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZl
cj4+IGtleUlEczsKLSAgICBmb3IgKGF1dG8mIHNpbmYgOiBzaW5mcykgewotICAgICAgICBhdXRv
IHJlc3VsdHMgPSBleHRyYWN0U2NoZW1lQW5kS2V5SWRGcm9tU2luZihzaW5mKTsKLSAgICAgICAg
aWYgKCFyZXN1bHRzLnNpemUoKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOworICAgIGF1dG8gcmVz
dWx0cyA9IGV4dHJhY3RTY2hlbWVBbmRLZXlJZEZyb21TaW5mKGJ1ZmZlcik7CiAKLSAgICAgICAg
Zm9yIChhdXRvJiByZXN1bHQgOiByZXN1bHRzKSB7Ci0gICAgICAgICAgICBpZiAocmVzdWx0LmZp
cnN0ID09ICdjYmNzJykKLSAgICAgICAgICAgICAgICBrZXlJRHMuYXBwZW5kKFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKHJlc3VsdC5zZWNvbmQuZGF0YSgpLCByZXN1bHQuc2Vjb25kLnNpemUoKSkpOwot
ICAgICAgICB9CisgICAgZm9yIChhdXRvJiByZXN1bHQgOiByZXN1bHRzKSB7CisgICAgICAgIGlm
IChyZXN1bHQuZmlyc3QgPT0gImNiY3MiIHx8IHJlc3VsdC5maXJzdCA9PSAiY2JjMiIgfHwgcmVz
dWx0LmZpcnN0ID09ICJjYmMxIikKKyAgICAgICAgICAgIGtleUlEcy5hcHBlbmQoU2hhcmVkQnVm
ZmVyOjpjcmVhdGUocmVzdWx0LnNlY29uZC5kYXRhKCksIHJlc3VsdC5zZWNvbmQuc2l6ZSgpKSk7
CiAgICAgfQogCiAgICAgcmV0dXJuIGtleUlEczsKIH0KIAotc3RhdGljIFJlZlB0cjxTaGFyZWRC
dWZmZXI+IHNhbml0aXplU2luZihjb25zdCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKK1JlZlB0cjxT
aGFyZWRCdWZmZXI+IENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2FuaXRpemVTaW5mKGNv
bnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogewogICAgIC8vIENvbW1vbiBTSU5GIEJveCBGb3Jt
YXQKICAgICBVTlVTRURfUEFSQU0oYnVmZmVyKTsKQEAgLTE2OCw3ICsxNjAsNyBAQCB2b2lkIENE
TUZhY3Rvcnk6OnBsYXRmb3JtUmVnaXN0ZXJGYWN0b3JpZXMoVmVjdG9yPENETUZhY3RvcnkqPiYg
ZmFjdG9yaWVzKQogICAgIGZhY3Rvcmllcy5hcHBlbmQoJkNETUZhY3RvcnlDbGVhcktleTo6c2lu
Z2xldG9uKCkpOwogICAgIGZhY3Rvcmllcy5hcHBlbmQoJkNETUZhY3RvcnlGYWlyUGxheVN0cmVh
bWluZzo6c2luZ2xldG9uKCkpOwogCi0gICAgSW5pdERhdGFSZWdpc3RyeTo6c2hhcmVkKCkucmVn
aXN0ZXJJbml0RGF0YVR5cGUoInNpbmYiLCB7IHNhbml0aXplU2luZiwgZXh0cmFjdEtleUlEc1Np
bmYgfSk7CisgICAgSW5pdERhdGFSZWdpc3RyeTo6c2hhcmVkKCkucmVnaXN0ZXJJbml0RGF0YVR5
cGUoInNpbmYiLCB7IENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2FuaXRpemVTaW5mLCBD
RE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5mIH0pOwogfQogCiBD
RE1GYWN0b3J5RmFpclBsYXlTdHJlYW1pbmcmIENETUZhY3RvcnlGYWlyUGxheVN0cmVhbWluZzo6
c2luZ2xldG9uKCkKQEAgLTMyMSw3ICszMTMsNyBAQCBib29sIENETVByaXZhdGVGYWlyUGxheVN0
cmVhbWluZzo6c3VwcG9ydHNJbml0RGF0YShjb25zdCBBdG9taWNTdHJpbmcmIGluaXREYXRhVAog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gV1RGOjphbnlPZihleHRyYWN0U2No
ZW1lQW5kS2V5SWRGcm9tU2luZihpbml0RGF0YSksIFtdKGF1dG8mIHJlc3VsdCkgewotICAgICAg
ICByZXR1cm4gcmVzdWx0LmZpcnN0ID09ICdjYmNzJyB8fCByZXN1bHQuZmlyc3QgPT0gJ2NiYzIn
IHx8IHJlc3VsdC5maXJzdCA9PSAnY2JjMSc7CisgICAgICAgIHJldHVybiByZXN1bHQuZmlyc3Qg
PT0gImNiY3MiIHx8IHJlc3VsdC5maXJzdCA9PSAiY2JjMiIgfHwgcmVzdWx0LmZpcnN0ID09ICJj
YmMxIjsKICAgICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
aAppbmRleCBkOWFhODY4ZDQyMWJjZGI5MzE1MjNhMjQ0MzllZDNmYmU1NTNkZDVlLi43ZjRjNDNi
OTVmMWQxZTQ0OWU2YjQ2ZTYwMTYyMjg3MGE4MDFkZjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RN
RmFpclBsYXlTdHJlYW1pbmcuaApAQCAtNjQsNiArNjQsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBz
dXBwb3J0c0luaXREYXRhKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IFNoYXJlZEJ1ZmZlciYp
IGNvbnN0IG92ZXJyaWRlOwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNhbml0aXplUmVzcG9u
c2UoY29uc3QgU2hhcmVkQnVmZmVyJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25h
bDxTdHJpbmc+IHNhbml0aXplU2Vzc2lvbklkKGNvbnN0IFN0cmluZyYpIGNvbnN0IG92ZXJyaWRl
OworCisgICAgc3RhdGljIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4gZXh0cmFjdEtleUlEc1Np
bmYoY29uc3QgU2hhcmVkQnVmZmVyJik7CisgICAgc3RhdGljIFJlZlB0cjxTaGFyZWRCdWZmZXI+
IHNhbml0aXplU2luZihjb25zdCBTaGFyZWRCdWZmZXImKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUlu
c3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakMubW0KaW5kZXggMjNiY2NmMjE5ZDBkNmYwMWMxYjJiNjdiNDZmN2RmZjcwMGExMzM5
NS4uNzZlMDNjY2NjMzljMjUxZTZiMzZmYjQ1ZmIyMzNhYTcwNzEwNjI5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakMubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEhBVkUoQVZDT05URU5US0VZ
U0VTU0lPTikKIAorI2ltcG9ydCAiQ0RNRmFpclBsYXlTdHJlYW1pbmcuaCIKICNpbXBvcnQgIkNE
TUtleVN5c3RlbUNvbmZpZ3VyYXRpb24uaCIKICNpbXBvcnQgIk5vdEltcGxlbWVudGVkLmgiCiAj
aW1wb3J0ICJTaGFyZWRCdWZmZXIuaCIKQEAgLTIyNiw2ICsyMjcsMTIgQEAgdm9pZCBDRE1JbnN0
YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6cmVxdWVzdExpY2Vuc2UoTGljZW5zZVR5cGUg
bGljZW5zZVR5cGUKICAgICAgICAgY2FsbGJhY2soU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSwgZW1w
dHlTdHJpbmcoKSwgZmFsc2UsIEZhaWxlZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisKKyAg
ICBpZiAoIW1fc2VydmVyQ2VydGlmaWNhdGUpIHsKKyAgICAgICAgY2FsbGJhY2soU2hhcmVkQnVm
ZmVyOjpjcmVhdGUoKSwgZW1wdHlTdHJpbmcoKSwgZmFsc2UsIEZhaWxlZCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKICAgICBtX3JlcXVlc3RMaWNlbnNlQ2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKTsKIAogICAgIFttX3Nlc3Npb24gcHJvY2Vzc0NvbnRlbnRLZXlSZXF1ZXN0V2l0aElk
ZW50aWZpZXI6bmlsIGluaXRpYWxpemF0aW9uRGF0YTppbml0RGF0YS0+Y3JlYXRlTlNEYXRhKCku
Z2V0KCkgb3B0aW9uczpuaWxdOwpAQCAtMjY4LDEwICsyNzUsMTUgQEAgdm9pZCBDRE1JbnN0YW5j
ZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZGlkUHJvdmlkZVJlcXVlc3QoQVZDb250ZW50S2V5
UmVxdWVzdAogICAgIGlmICghbV9yZXF1ZXN0TGljZW5zZUNhbGxiYWNrKQogICAgICAgICByZXR1
cm47CiAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoIAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1Xbm9ubnVsbCIKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBhcHBJZGVu
dGlmaWVyID0gbV9zZXJ2ZXJDZXJ0aWZpY2F0ZSA/IG1fc2VydmVyQ2VydGlmaWNhdGUtPmNyZWF0
ZU5TRGF0YSgpIDogbnVsbHB0cjsKLSAgICBbbV9yZXF1ZXN0IG1ha2VTdHJlYW1pbmdDb250ZW50
S2V5UmVxdWVzdERhdGFGb3JBcHA6YXBwSWRlbnRpZmllci5nZXQoKSBjb250ZW50SWRlbnRpZmll
cjpuaWwgb3B0aW9uczpuaWwgY29tcGxldGlvbkhhbmRsZXI6W3RoaXMsIHdlYWtUaGlzID0gY3Jl
YXRlV2Vha1B0cigpXSAoTlNEYXRhICpjb250ZW50S2V5UmVxdWVzdERhdGEsIE5TRXJyb3IgKmVy
cm9yKSBtdXRhYmxlIHsKKyAgICBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGtleUlEcyA9IENE
TVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6ZXh0cmFjdEtleUlEc1NpbmYoU2hhcmVkQnVmZmVy
OjpjcmVhdGUocmVxdWVzdC5pbml0aWFsaXphdGlvbkRhdGEpKTsKKyAgICBpZiAoa2V5SURzLmlz
RW1wdHkoKSkgeworICAgICAgICBtX3JlcXVlc3RMaWNlbnNlQ2FsbGJhY2soU2hhcmVkQnVmZmVy
OjpjcmVhdGUoKSwgbV9zZXNzaW9uSWQsIGZhbHNlLCBGYWlsZWQpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgUmV0YWluUHRyPE5TRGF0YT4gY29udGVudElkZW50aWZpZXIgPSBrZXlJ
RHMuZmlyc3QoKS0+Y3JlYXRlTlNEYXRhKCk7CisgICAgW21fcmVxdWVzdCBtYWtlU3RyZWFtaW5n
Q29udGVudEtleVJlcXVlc3REYXRhRm9yQXBwOmFwcElkZW50aWZpZXIuZ2V0KCkgY29udGVudElk
ZW50aWZpZXI6Y29udGVudElkZW50aWZpZXIuZ2V0KCkgb3B0aW9uczpuaWwgY29tcGxldGlvbkhh
bmRsZXI6W3RoaXMsIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpXSAoTlNEYXRhICpjb250ZW50
S2V5UmVxdWVzdERhdGEsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgY2FsbE9u
TWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgZXJyb3IgPSBy
ZXRhaW5QdHIoZXJyb3IpLCBjb250ZW50S2V5UmVxdWVzdERhdGEgPSByZXRhaW5QdHIoY29udGVu
dEtleVJlcXVlc3REYXRhKV0gewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhbV9yZXF1
ZXN0TGljZW5zZUNhbGxiYWNrKQogICAgICAgICAgICAgICAgIHJldHVybjsKQEAgLTI4Miw3ICsy
OTQsNiBAQCB2b2lkIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92
aWRlUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0CiAgICAgICAgICAgICAgICAgbV9yZXF1ZXN0
TGljZW5zZUNhbGxiYWNrKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGNvbnRlbnRLZXlSZXF1ZXN0RGF0
YS5nZXQoKSksIG1fc2Vzc2lvbklkLCBmYWxzZSwgU3VjY2VlZGVkKTsKICAgICAgICAgfSk7CiAg
ICAgfV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9CiAKIHZvaWQgQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZFByb3ZpZGVSZW5ld2luZ1JlcXVlc3QoQVZD
b250ZW50S2V5UmVxdWVzdCAqcmVxdWVzdCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiMzRiMWY3NjcxNGZhODI4Y2M1MDUy
YTFlYjgwMWE5MTNmMGJkODlhLi5iODFkYzNmM2Q3M2ZhMzQ2NjUyNDI3NWRkNzgwMDI2Nzk5ZTM3
OWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMTEtMTUgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0VNRV0gU3VwcG9ydCBnZW5lcmF0ZVJlcXVlc3Qo
KSBpbiBDRE1GYWlyUGxheVN0cmVhbWluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc5NzUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1jcmVhdGVTZXNzaW9u
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL21lZGlhL2VuY3J5
cHRlZC1tZWRpYS9mcHMtY3JlYXRlU2Vzc2lvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1nZW5lcmF0ZVJlcXVlc3QtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvbWVkaWEvZW5jcnlwdGVkLW1l
ZGlhL2Zwcy1nZW5lcmF0ZVJlcXVlc3QuaHRtbDogQWRkZWQuCisKIDIwMTctMTEtMDIgIEplciBO
b2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgSW5jbHVkZSAndmlkZW8vKicg
aW4gaW1hZ2UgcmVxdWVzdCBBY2NlcHQgaGVhZGVyIGlmIGJyb3dzZXIgc3VwcG9ydHMgdmlkZW8g
bWVkaWEgaW4gaW1hZ2UgY29udGV4dHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDY3YzM0MTlhYWU5NGM2NGY4NjEzMzQ5NjZiOGZhNjE5MDViODU0MjQu
LjAxY2VlZWQwYWVlMDJiZGNhMzZhMTEyODhlNzM5ZDU1YjE4MTFjN2EgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNzUwLDYgKzE3NTAsOCBAQCB3ZWJr
aXQub3JnL2IvMTc5MzQyIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3JlZ2lzdHJhdGlvbi10
YXNrLXF1ZXVlLXNjaGVkdWxpbgogIyBBVkNvbnRlbnRLZXlTZXNzaW9uIG5vdCBhdmFpbGFibGUg
cHJlLUhpZ2ggU2llcnJhCiBbIEVsQ2FwaXRhbiBTaWVycmEgXSBwbGF0Zm9ybS9tYWMvbWVkaWEv
ZW5jcnlwdGVkLW1lZGlhL2Zwcy1jcmVhdGVNZWRpYUtleXMuaHRtbCBbIFNraXAgXQogWyBFbENh
cGl0YW4gU2llcnJhIF0gcGxhdGZvcm0vbWFjL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9mcHMtcmVx
dWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzLmh0bWwgWyBTa2lwIF0KK1sgRWxDYXBpdGFuIFNpZXJy
YSBdIHBsYXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZnBzLWNyZWF0ZVNlc3Npb24u
aHRtbCBbIFNraXAgXQorWyBFbENhcGl0YW4gU2llcnJhIF0gcGxhdGZvcm0vbWFjL21lZGlhL2Vu
Y3J5cHRlZC1tZWRpYS9mcHMtZ2VuZXJhdGVSZXF1ZXN0Lmh0bWwgWyBTa2lwIF0KIAogIyByZGFy
Oi8vcHJvYmxlbS8zNTM5NTQzNwogWyBIaWdoU2llcnJhKyBdIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL21lZGlhc291cmNlLXBsYXkuaHRtbCBbIEZhaWx1cmUg
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL2VuY3J5cHRlZC1t
ZWRpYS9mcHMtY3JlYXRlU2Vzc2lvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1jcmVhdGVTZXNzaW9uLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mMjRmMzgzZTE0YTI3ZmM1NTU5OGMzZGM2NDcxYmUzNjNmYWUzYmQ1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL2VuY3J5cHRl
ZC1tZWRpYS9mcHMtY3JlYXRlU2Vzc2lvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitS
VU4ocHJvbWlzZSA9IG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoImNvbS5h
cHBsZS5mcHMiLCBjYXBhYmlsaXRpZXMpKQorUHJvbWlzZSByZXNvbHZlZCBPSworUlVOKHByb21p
c2UgPSBhY2Nlc3MuY3JlYXRlTWVkaWFLZXlzKCkpCitQcm9taXNlIHJlc29sdmVkIE9LCitSVU4o
c2Vzc2lvbiA9IGtleXMuY3JlYXRlU2Vzc2lvbigpKQorRVhQRUNURUQgKHNlc3Npb24gIT0gJ251
bGwnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9mcHMtY3JlYXRlU2Vzc2lvbi5odG1sIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9mcHMtY3JlYXRlU2Vzc2lv
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjZiMmEyM2I4NmQ2MmNhMzVjMDA2MDU3MWNhNmE3YjhkZmJkYjg1
YmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvZW5j
cnlwdGVkLW1lZGlhL2Zwcy1jcmVhdGVTZXNzaW9uLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5mcHMtcmVxdWVzdE1lZGlh
S2V5U3lzdGVtQWNjZXNzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vbWVk
aWEvdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICB2YXIgY2FwYWJp
bGl0aWVzID0gW3sKKyAgICAgICAgaW5pdERhdGFUeXBlczogWydzaW5mJ10sCisgICAgICAgIHZp
ZGVvQ2FwYWJpbGl0aWVzOiBbeyBjb250ZW50VHlwZTogJ3ZpZGVvL21wNCcsIHJvYnVzdG5lc3M6
ICcnIH1dLAorICAgICAgICBkaXN0aW5jdGl2ZUlkZW50aWZpZXI6ICdub3QtYWxsb3dlZCcsCisg
ICAgICAgIHBlcnNpc3RlbnRTdGF0ZTogJ25vdC1hbGxvd2VkJywKKyAgICAgICAgc2Vzc2lvblR5
cGVzOiBbJ3RlbXBvcmFyeSddLAorICAgIH1dOworICAgIHZhciBwcm9taXNlOworICAgIHZhciBh
Y2Nlc3M7CisgICAgdmFyIGtleXM7CisgICAgdmFyIHNlc3Npb247CisgICAgdmFyIGluaXREYXRh
ID0gbnVsbDsKKworICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKKyAgICAgICAgcnVuKCdwcm9t
aXNlID0gbmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2VzcygiY29tLmFwcGxlLmZw
cyIsIGNhcGFiaWxpdGllcyknKTsKKyAgICAgICAgc2hvdWxkUmVzb2x2ZShwcm9taXNlKS50aGVu
KGdvdEFjY2VzcywgZW5kVGVzdCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gZ290QWNjZXNzKGFj
Y2VzcykgeworICAgICAgICB3aW5kb3cuYWNjZXNzID0gYWNjZXNzOworICAgICAgICBydW4oJ3By
b21pc2UgPSBhY2Nlc3MuY3JlYXRlTWVkaWFLZXlzKCknKTsKKyAgICAgICAgc2hvdWxkUmVzb2x2
ZShwcm9taXNlKS50aGVuKGNyZWF0ZWRLZXlzLCBlbmRUZXN0KTsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBjcmVhdGVkS2V5cyhrZXlzKSB7CisgICAgICAgIHdpbmRvdy5rZXlzID0ga2V5czsKKyAg
ICAgICAgcnVuKCdzZXNzaW9uID0ga2V5cy5jcmVhdGVTZXNzaW9uKCknKTsKKyAgICAgICAgdGVz
dEV4cGVjdGVkKCdzZXNzaW9uJywgJ251bGwnLCAnIT0nKTsKKyAgICAgICAgZW5kVGVzdCgpOwor
ICAgIH0KKworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc3RhcnRUZXN0KTsK
KyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9mcHMt
Z2VuZXJhdGVSZXF1ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9t
ZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZnBzLWdlbmVyYXRlUmVxdWVzdC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmJhYTc2OGJmZmYxZWMwYjVkNGI2MTU3OTBjMGQ0YWU0MDdmODc5MgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQtbWVk
aWEvZnBzLWdlbmVyYXRlUmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorUlVO
KHByb21pc2UgPSBuYXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCJjb20uYXBw
bGUuZnBzIiwgY2FwYWJpbGl0aWVzKSkKK1Byb21pc2UgcmVzb2x2ZWQgT0sKK1JVTihwcm9taXNl
ID0gYWNjZXNzLmNyZWF0ZU1lZGlhS2V5cygpKQorUHJvbWlzZSByZXNvbHZlZCBPSworUlVOKGtl
eXMuc2V0U2VydmVyQ2VydGlmaWNhdGUoc2VydmVyQ2VydGlmaWNhdGUpKQorUlVOKHNlc3Npb24g
PSBrZXlzLmNyZWF0ZVNlc3Npb24oKSkKK0VYUEVDVEVEIChzZXNzaW9uICE9ICdudWxsJykgT0sK
K1JVTihwcm9taXNlID0gc2Vzc2lvbi5nZW5lcmF0ZVJlcXVlc3QoInNpbmYiLCBpbml0RGF0YSkp
CitQcm9taXNlIHJlc29sdmVkIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1nZW5lcmF0ZVJlcXVl
c3QuaHRtbCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEv
ZnBzLWdlbmVyYXRlUmVxdWVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmNWIxZWNjYzQxZTkzNDRkNDYy
MGU4MTcyNTYzMjEyMjk5NjE4MDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1nZW5lcmF0ZVJlcXVlc3QuaHRtbApA
QCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRp
dGxlPmZwcy1yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3M8L3RpdGxlPgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi8uLi8uLi9tZWRpYS92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0PgorICAgIHZhciBjYXBhYmlsaXRpZXMgPSBbeworICAgICAgICBpbml0RGF0YVR5cGVzOiBb
J3NpbmYnXSwKKyAgICAgICAgdmlkZW9DYXBhYmlsaXRpZXM6IFt7IGNvbnRlbnRUeXBlOiAndmlk
ZW8vbXA0Jywgcm9idXN0bmVzczogJycgfV0sCisgICAgICAgIGRpc3RpbmN0aXZlSWRlbnRpZmll
cjogJ25vdC1hbGxvd2VkJywKKyAgICAgICAgcGVyc2lzdGVudFN0YXRlOiAnbm90LWFsbG93ZWQn
LAorICAgICAgICBzZXNzaW9uVHlwZXM6IFsndGVtcG9yYXJ5J10sCisgICAgfV07CisgICAgdmFy
IHByb21pc2U7CisgICAgdmFyIGFjY2VzczsKKyAgICB2YXIga2V5czsKKyAgICB2YXIgc2Vzc2lv
bjsKKyAgICB2YXIgaW5pdERhdGEgPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUoSlNPTi5zdHJp
bmdpZnkoeworICAgICAgICBzaW5mOiBbCisgICAgICAgICAgICAiQUFBQURHWnliV0Z0Y0RSaEFB
QUFGSE5qYUcwQUFBQUFZMkpqY3dBQkFBQUFBQUE1YzJOb2FRQUFBREYwWlc1akFRQUFBQUFBQVFB
QUFBQUFBQUFBQUFBQUFBQUFBQUFBRU53b0xqNzdqQ2p3Q0FBdzNTcUthbzg9IiwKKyAgICAgICAg
XQorICAgIH0pKTsKKyAgICB2YXIgc2VydmVyQ2VydGlmaWNhdGVVUkkgPSAiZGF0YTphcHBsaWNh
dGlvbi94LXg1MDktY2EtY2VydDtiYXNlNjQsTUlJRXlEQ0NBN0NnQXdJQkFnSUlEMC8wN2NDSEgw
WXdEUVlKS29aSWh2Y05BUUVGQlFBd2Z6RUxNQWtHQTFVRUJoTUNWVk14RXpBUkJnTlZCQW9NQ2tG
d2NHeGxJRWx1WXk0eEpqQWtCZ05WQkFzTUhVRndjR3hsSUVObGNuUnBabWxqWVhScGIyNGdRWFYw
YUc5eWFYUjVNVE13TVFZRFZRUUREQ3BCY0hCc1pTQkxaWGtnVTJWeWRtbGpaWE1nUTJWeWRHbG1h
V05oZEdsdmJpQkJkWFJvYjNKcGRIa3dIaGNOTVRJeE1qSXdNREF6T0RReldoY05NVFF4TWpJeE1E
QXpPRFF6V2pCSU1Rc3dDUVlEVlFRR0V3SlZVekVTTUJBR0ExVUVDZ3dKUVhCd2JHVWdTVzVqTVJJ
d0VBWURWUVFMREFsQmNIQnNaU0JKYm1NeEVUQVBCZ05WQkFNTUNHWndjM1JsYzNRME1JR2ZNQTBH
Q1NxR1NJYjNEUUVCQVFVQUE0R05BRENCaVFLQmdRQ3VIZXZEbHBoT00wc0Q2N3Izb2xGa04vMnZD
MG9QbCtkSjJDckJrTDB0VUpvdjlZYlh1ZDZ5bUpwMlRrS2tHcW51YlJhWDVtSTk0K1Y5Q2MvMHpT
bHArTlRDRFRjWjd5NDRFOGo4NUF2LzVYcW96VWYvd1V5WStVWVBCUkQ2QkhVbkg1WUQ2dXVTbExj
cUUwRGFFOHB0WGlReU4zU1J0ZUNGUTRuSTlmMTF1UUlEQVFBQm80SUNBVENDQWYwd0hRWURWUjBP
QkJZRUZCYVZmMWcxYmZ5QVc3NzZTZnZlcWo5TjAzRU1NQXdHQTFVZEV3RUIvd1FDTUFBd0h3WURW
UjBqQkJnd0ZvQVVZK1JIVk11RmNWbEdMSU9zekVReFpHY0RMTDR3Z2VJR0ExVWRJQVNCMmpDQjF6
Q0IxQVlKS29aSWh2ZGpaQVVCTUlIR01JSERCZ2dyQmdFRkJRY0NBakNCdGd5QnMxSmxiR2xoYm1O
bElHOXVJSFJvYVhNZ1kyVnlkR2xtYVdOaGRHVWdZbmtnWVc1NUlIQmhjblI1SUdGemMzVnRaWE1n
WVdOalpYQjBZVzVqWlNCdlppQjBhR1VnZEdobGJpQmhjSEJzYVdOaFlteGxJSE4wWVc1a1lYSmtJ
SFJsY20xeklHRnVaQ0JqYjI1a2FYUnBiMjV6SUc5bUlIVnpaU3dnWTJWeWRHbG1hV05oZEdVZ2NH
OXNhV041SUdGdVpDQmpaWEowYVdacFkyRjBhVzl1SUhCeVlXTjBhV05sSUhOMFlYUmxiV1Z1ZEhN
dU1EVUdBMVVkSHdRdU1Dd3dLcUFvb0NhR0pHaDBkSEE2THk5amNtd3VZWEJ3YkdVdVkyOXRMMnRs
ZVhObGNuWnBZMlZ6TG1OeWJEQU9CZ05WSFE4QkFmOEVCQU1DQlNBd05BWUxLb1pJaHZkalpBWU5B
UU1CQWY4RUlnSEdlcTBXQ3hIM29BTHFiS1JEZUNsNGxxRGFIVlNRanNRWm55Q01FMlRlY1VFd1N3
WUxLb1pJaHZkalpBWU5BUVFCQWY4RU9RSGxIaGRzZ0I4UVBKWkZiOWFBbXZjOGtZU1RRWWJqRjYv
VTJtcTQ2c1hXUktXUEtHcHFMeUM1QWN0TlFVdUhqeW5abjZZMHZzMEQ4akFOQmdrcWhraUc5dzBC
QVFVRkFBT0NBUUVBZzhHa0V3MGdEUm43cmFBOHcrVjM2Tk92S2xVeDNXaDNwY3FJOGNSQVR2OVR3
cDR6ZnlKNEZ3eGRUOTAvekN0VVVqVFZ0YXU2eUVTVHdYK0xVRnUvWTBrdmFWMGh0Z0JJQnU3TVdZ
Q3ZmTGxTd1M0TXFiQnROZGxvRE52VTdDTnlXWGFNcEtwWUtONmkwU3FFblR2RjBtU1RwQmxpQ1Qr
UXh1Tkl4YVdxOWgyY0NuNzlrYlhKTTUrSUMzN21JV08wanZ6UWplU2xPWEpQWnJOSFo2Qmp0MEF5
aUNJaVpWa1BtVm01bFYzWWNkMGdmNG1maEFWSllFL3A2L2RUayttcW54RGRVVU1WRkRVZnUxT3FC
aW02bGRXbkFoOFBsV2FHaDVyTFlWZ0d2eEVFUEROZXVlWWh4VHJEbkVOYmhDWjVuL2J5MFJwMHM2
N3QxOTI0V2srUVVRPT0iOworICAgIHZhciBzZXJ2ZXJDZXJ0aWZpY2F0ZTsKKworICAgIGZ1bmN0
aW9uIHN0YXJ0VGVzdCgpIHsKKyAgICAgICAgcnVuKCdwcm9taXNlID0gbmF2aWdhdG9yLnJlcXVl
c3RNZWRpYUtleVN5c3RlbUFjY2VzcygiY29tLmFwcGxlLmZwcyIsIGNhcGFiaWxpdGllcyknKTsK
KyAgICAgICAgc2hvdWxkUmVzb2x2ZShwcm9taXNlKS50aGVuKGdvdEFjY2VzcywgZW5kVGVzdCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gZ290QWNjZXNzKGFjY2VzcykgeworICAgICAgICB3aW5k
b3cuYWNjZXNzID0gYWNjZXNzOworICAgICAgICBydW4oJ3Byb21pc2UgPSBhY2Nlc3MuY3JlYXRl
TWVkaWFLZXlzKCknKTsKKyAgICAgICAgc2hvdWxkUmVzb2x2ZShwcm9taXNlKS50aGVuKGNyZWF0
ZWRLZXlzLCBlbmRUZXN0KTsKKyAgICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBjcmVhdGVkS2V5
cyhrZXlzKSB7CisgICAgICAgIHdpbmRvdy5rZXlzID0ga2V5czsKKyAgICAgICAgdmFyIHJlc3Bv
bnNlID0gYXdhaXQgZmV0Y2goc2VydmVyQ2VydGlmaWNhdGVVUkkpOworICAgICAgICBzZXJ2ZXJD
ZXJ0aWZpY2F0ZSA9IGF3YWl0IHJlc3BvbnNlLmFycmF5QnVmZmVyKCk7CisgICAgICAgIHJ1bign
a2V5cy5zZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShzZXJ2ZXJDZXJ0aWZpY2F0ZSknKTsKKyAgICAgICAg
cnVuKCdzZXNzaW9uID0ga2V5cy5jcmVhdGVTZXNzaW9uKCknKTsKKyAgICAgICAgdGVzdEV4cGVj
dGVkKCdzZXNzaW9uJywgJ251bGwnLCAnIT0nKTsKKyAgICAgICAgcnVuKCdwcm9taXNlID0gc2Vz
c2lvbi5nZW5lcmF0ZVJlcXVlc3QoInNpbmYiLCBpbml0RGF0YSknKTsKKyAgICAgICAgc2hvdWxk
UmVzb2x2ZShwcm9taXNlKS50aGVuKGVuZFRlc3QsIGVuZFRlc3QpOworICAgIH0KKworICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc3RhcnRUZXN0KTsKKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328708</attachid>
            <date>2017-12-07 11:08:42 -0800</date>
            <delta_ts>2017-12-07 11:46:57 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-179752-20171207110841.patch</filename>
            <type>text/plain</type>
            <size>18127</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTgzZjM3MmMzMmMzMTc0
YjUxZDk2YmQyY2IyZTcyYTA3ZjU5NWE2Zi4uYTJhOTkyN2M1NWYzNDU1OWMxNjk3NTc2ZWM3NzQw
ZWFkNjY0Y2VlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE3LTExLTE1ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtFTUVdIFN1cHBvcnQgZ2Vu
ZXJhdGVSZXF1ZXN0KCkgaW4gQ0RNRmFpclBsYXlTdHJlYW1pbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTc1MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBUZXN0czogcGxhdGZvcm0vbWFjL21lZGlhL2Vu
Y3J5cHRlZC1tZWRpYS9mcHMtY3JlYXRlU2Vzc2lvbi5odG1sCisgICAgICAgICAgICAgICBwbGF0
Zm9ybS9tYWMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1nZW5lcmF0ZVJlcXVlc3QuaHRtbAor
CisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBnZW5lcmF0aW5nIGxpY2Vuc2UgcmVxdWVzdHMgZnJv
bSBpbml0aWFsaXphdGlvbiBkYXRhIGluCisgICAgICAgIENETUZhaXJQbGF5U3RyZWFtaW5nLiBU
byBkbyBzbywgYWRkIGV4cGxpY2l0IGNoZWNrcyBmb3IgRmFpclBsYXkgU3RlcmFtaW5nIHJlcXVp
cmVtZW50czoKKyAgICAgICAgcmVxZXN0cyB3aWxsIGZhaWwgaWYgbm8gc2VydmVyIGNlcnRpZmlj
YXRlIGV4aXN0cywgYW5kIHdpbGwgZmFpbCBpZiBubyBjb250ZW50IGtleSBpZCBleGlzdHMKKyAg
ICAgICAgaW4gdGhlIGluaXRpYWxpemF0aW9uIGRhdGEuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFpclBsYXlTdHJlYW1pbmcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpleHRyYWN0S2V5SURzU2luZik6
CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnNhbml0aXpl
U2luZik6CisgICAgICAgIChXZWJDb3JlOjpDRE1GYWN0b3J5OjpwbGF0Zm9ybVJlZ2lzdGVyRmFj
dG9yaWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFp
clBsYXlTdHJlYW1pbmcuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpyZXF1ZXN0TGlj
ZW5zZSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQzo6ZGlkUHJvdmlkZVJlcXVlc3QpOgorCiAyMDE3LTEyLTA2ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmVmbGlnaHQgc2hvdWxkIGJ5cGFzcyBzZXJ2
aWNlIHdvcmtlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWlyUGxheVN0cmVhbWluZy5jcHAKaW5k
ZXggYjNmMmI5YjVmODQ0NTA3MzJhMDQ2NzIxYmI5YTMxOTBlMzkzY2E4NC4uYzE1MWVlMGVkN2M0
OGIyNGQyNDEwOWYwYzg4OThlMjE4YTllOThmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNRmFp
clBsYXlTdHJlYW1pbmcuY3BwCkBAIC01MCw2ICs1MCwyMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKK3N0YXRpYyBjb25zdCBWZWN0b3I8Rm91ckNDPiYgdmFsaWRGYWlyUGxheVN0cmVhbWlu
Z1NjaGVtZXMoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Rm91ckNDPj4g
dmFsaWRTY2hlbWVzID0gVmVjdG9yPEZvdXJDQz4oeyAKKyAgICAgICAgImNiY3MiLAorICAgICAg
ICAiY2JjMiIsCisgICAgICAgICJjYmMxIiwKKyAgICB9KTsKKworICAgIHJldHVybiB2YWxpZFNj
aGVtZXM7Cit9CisKK3N0YXRpYyBjb25zdCBTdHJpbmcmIHNpbmZOYW1lKCkKK3sKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBzaW5mIHsgTUFLRV9TVEFUSUNfU1RSSU5HX0lNUEwo
InNpbmYiKSB9OworICAgIHJldHVybiBzaW5mOworfQorCiBzdGF0aWMgVmVjdG9yPFJlZjxTaGFy
ZWRCdWZmZXI+PiBleHRyYWN0U2luZkRhdGEoY29uc3QgU2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7
CiAgICAgLy8gSlNPTiBvZiB0aGUgZm9ybWF0OiAieyBzaW5mOiBbIDxiYXNlNjQtZW5jb2RlZC1z
dHJpbmc+IF0gfSIKQEAgLTY2LDcgKzgzLDcgQEAgc3RhdGljIFZlY3RvcjxSZWY8U2hhcmVkQnVm
ZmVyPj4gZXh0cmFjdFNpbmZEYXRhKGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQogICAgICAg
ICByZXR1cm4geyB9OwogCiAgICAgUmVmUHRyPEpTT046OkFycmF5PiBzaW5mQXJyYXk7Ci0gICAg
aWYgKCFvYmplY3QtPmdldEFycmF5KCJzaW5mIiwgc2luZkFycmF5KSkKKyAgICBpZiAoIW9iamVj
dC0+Z2V0QXJyYXkoc2luZk5hbWUoKSwgc2luZkFycmF5KSkKICAgICAgICAgcmV0dXJuIHsgfTsK
IAogICAgIFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj4gc2luZnM7CkBAIC0xMzQsMjggKzE1MSwy
MSBAQCBzdGF0aWMgU2NoZW1lQW5kS2V5UmVzdWx0IGV4dHJhY3RTY2hlbWVBbmRLZXlJZEZyb21T
aW5mKGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0
YXRpYyBWZWN0b3I8UmVmPFNoYXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNTaW5mKGNvbnN0IFNo
YXJlZEJ1ZmZlciYgYnVmZmVyKQorVmVjdG9yPFJlZjxTaGFyZWRCdWZmZXI+PiBDRE1Qcml2YXRl
RmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5mKGNvbnN0IFNoYXJlZEJ1ZmZlciYg
YnVmZmVyKQogewotICAgIGF1dG8gc2luZnMgPSBleHRyYWN0U2luZkRhdGEoYnVmZmVyKTsKLSAg
ICBpZiAoc2luZnMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4geyB9OwogCiAgICAgVmVjdG9y
PFJlZjxTaGFyZWRCdWZmZXI+PiBrZXlJRHM7Ci0gICAgZm9yIChhdXRvJiBzaW5mIDogc2luZnMp
IHsKLSAgICAgICAgYXV0byByZXN1bHRzID0gZXh0cmFjdFNjaGVtZUFuZEtleUlkRnJvbVNpbmYo
c2luZik7Ci0gICAgICAgIGlmICghcmVzdWx0cy5zaXplKCkpCi0gICAgICAgICAgICBjb250aW51
ZTsKKyAgICBhdXRvIHJlc3VsdHMgPSBleHRyYWN0U2NoZW1lQW5kS2V5SWRGcm9tU2luZihidWZm
ZXIpOwogCi0gICAgICAgIGZvciAoYXV0byYgcmVzdWx0IDogcmVzdWx0cykgewotICAgICAgICAg
ICAgaWYgKHJlc3VsdC5maXJzdCA9PSAnY2JjcycpCi0gICAgICAgICAgICAgICAga2V5SURzLmFw
cGVuZChTaGFyZWRCdWZmZXI6OmNyZWF0ZShyZXN1bHQuc2Vjb25kLmRhdGEoKSwgcmVzdWx0LnNl
Y29uZC5zaXplKCkpKTsKLSAgICAgICAgfQorICAgIGZvciAoYXV0byYgcmVzdWx0IDogcmVzdWx0
cykgeworICAgICAgICBpZiAodmFsaWRGYWlyUGxheVN0cmVhbWluZ1NjaGVtZXMoKS5jb250YWlu
cyhyZXN1bHQuZmlyc3QpKQorICAgICAgICAgICAga2V5SURzLmFwcGVuZChTaGFyZWRCdWZmZXI6
OmNyZWF0ZShyZXN1bHQuc2Vjb25kLmRhdGEoKSwgcmVzdWx0LnNlY29uZC5zaXplKCkpKTsKICAg
ICB9CiAKICAgICByZXR1cm4ga2V5SURzOwogfQogCi1zdGF0aWMgUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4gc2FuaXRpemVTaW5mKGNvbnN0IFNoYXJlZEJ1ZmZlciYgYnVmZmVyKQorUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gQ0RNUHJpdmF0ZUZhaXJQbGF5U3RyZWFtaW5nOjpzYW5pdGl6ZVNpbmYoY29uc3Qg
U2hhcmVkQnVmZmVyJiBidWZmZXIpCiB7CiAgICAgLy8gQ29tbW9uIFNJTkYgQm94IEZvcm1hdAog
ICAgIFVOVVNFRF9QQVJBTShidWZmZXIpOwpAQCAtMTY4LDcgKzE3OCw3IEBAIHZvaWQgQ0RNRmFj
dG9yeTo6cGxhdGZvcm1SZWdpc3RlckZhY3RvcmllcyhWZWN0b3I8Q0RNRmFjdG9yeSo+JiBmYWN0
b3JpZXMpCiAgICAgZmFjdG9yaWVzLmFwcGVuZCgmQ0RNRmFjdG9yeUNsZWFyS2V5OjpzaW5nbGV0
b24oKSk7CiAgICAgZmFjdG9yaWVzLmFwcGVuZCgmQ0RNRmFjdG9yeUZhaXJQbGF5U3RyZWFtaW5n
OjpzaW5nbGV0b24oKSk7CiAKLSAgICBJbml0RGF0YVJlZ2lzdHJ5OjpzaGFyZWQoKS5yZWdpc3Rl
ckluaXREYXRhVHlwZSgic2luZiIsIHsgc2FuaXRpemVTaW5mLCBleHRyYWN0S2V5SURzU2luZiB9
KTsKKyAgICBJbml0RGF0YVJlZ2lzdHJ5OjpzaGFyZWQoKS5yZWdpc3RlckluaXREYXRhVHlwZShz
aW5mTmFtZSgpLCB7IENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2FuaXRpemVTaW5mLCBD
RE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4dHJhY3RLZXlJRHNTaW5mIH0pOwogfQogCiBD
RE1GYWN0b3J5RmFpclBsYXlTdHJlYW1pbmcmIENETUZhY3RvcnlGYWlyUGxheVN0cmVhbWluZzo6
c2luZ2xldG9uKCkKQEAgLTIwMCwxMiArMjEwLDEyIEBAIENETVByaXZhdGVGYWlyUGxheVN0cmVh
bWluZzo6fkNETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZygpID0gZGVmYXVsdDsKIAogYm9vbCBD
RE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnN1cHBvcnRzSW5pdERhdGFUeXBlKGNvbnN0IEF0
b21pY1N0cmluZyYgaW5pdERhdGFUeXBlKSBjb25zdAogewotICAgIHJldHVybiBpbml0RGF0YVR5
cGUgPT0gInNpbmYiOworICAgIHJldHVybiBpbml0RGF0YVR5cGUgPT0gc2luZk5hbWUoKTsKIH0K
IAogYm9vbCBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnN1cHBvcnRzQ29uZmlndXJhdGlv
bihjb25zdCBDRE1LZXlTeXN0ZW1Db25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKSBjb25zdAog
ewotICAgIGlmICghY29uZmlndXJhdGlvbi5pbml0RGF0YVR5cGVzLmNvbnRhaW5zKCJzaW5mIikp
CisgICAgaWYgKCFjb25maWd1cmF0aW9uLmluaXREYXRhVHlwZXMuY29udGFpbnMoc2luZk5hbWUo
KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEhBVkUoQVZDT05URU5US0VZU0VTU0lP
TikKQEAgLTMyMSw3ICszMzEsNyBAQCBib29sIENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6
c3VwcG9ydHNJbml0RGF0YShjb25zdCBBdG9taWNTdHJpbmcmIGluaXREYXRhVAogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gV1RGOjphbnlPZihleHRyYWN0U2NoZW1lQW5kS2V5
SWRGcm9tU2luZihpbml0RGF0YSksIFtdKGF1dG8mIHJlc3VsdCkgewotICAgICAgICByZXR1cm4g
cmVzdWx0LmZpcnN0ID09ICdjYmNzJyB8fCByZXN1bHQuZmlyc3QgPT0gJ2NiYzInIHx8IHJlc3Vs
dC5maXJzdCA9PSAnY2JjMSc7CisgICAgICAgIHJldHVybiB2YWxpZEZhaXJQbGF5U3RyZWFtaW5n
U2NoZW1lcygpLmNvbnRhaW5zKHJlc3VsdC5maXJzdCk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1GYWly
UGxheVN0cmVhbWluZy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmgKaW5kZXggZDlhYTg2OGQ0MjFiY2RiOTMxNTIz
YTI0NDM5ZWQzZmJlNTUzZGQ1ZS4uN2Y0YzQzYjk1ZjFkMWU0NDllNmI0NmU2MDE2MjI4NzBhODAx
ZGYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETUZhaXJQbGF5U3RyZWFtaW5nLmgKQEAgLTY0LDYg
KzY0LDkgQEAgcHVibGljOgogICAgIGJvb2wgc3VwcG9ydHNJbml0RGF0YShjb25zdCBBdG9taWNT
dHJpbmcmLCBjb25zdCBTaGFyZWRCdWZmZXImKSBjb25zdCBvdmVycmlkZTsKICAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZVJlc3BvbnNlKGNvbnN0IFNoYXJlZEJ1ZmZlciYpIGNvbnN0
IG92ZXJyaWRlOwogICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBzYW5pdGl6ZVNlc3Npb25JZChj
b25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKworICAgIHN0YXRpYyBWZWN0b3I8UmVmPFNo
YXJlZEJ1ZmZlcj4+IGV4dHJhY3RLZXlJRHNTaW5mKGNvbnN0IFNoYXJlZEJ1ZmZlciYpOworICAg
IHN0YXRpYyBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzYW5pdGl6ZVNpbmYoY29uc3QgU2hhcmVkQnVm
ZmVyJik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2Jq
Qy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCmluZGV4IDIzYmNjZjIxOWQw
ZDZmMDFjMWIyYjY3YjQ2ZjdkZmY3MDBhMTMzOTUuLjc2ZTAzY2NjYzM5YzI1MWU2YjM2ZmI0NWZi
MjMzYWE3MDcxMDYyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpZiBIQVZFKEFWQ09OVEVOVEtFWVNFU1NJT04pCiAKKyNpbXBvcnQgIkNETUZhaXJQ
bGF5U3RyZWFtaW5nLmgiCiAjaW1wb3J0ICJDRE1LZXlTeXN0ZW1Db25maWd1cmF0aW9uLmgiCiAj
aW1wb3J0ICJOb3RJbXBsZW1lbnRlZC5oIgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyLmgiCkBAIC0y
MjYsNiArMjI3LDEyIEBAIHZvaWQgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6
OnJlcXVlc3RMaWNlbnNlKExpY2Vuc2VUeXBlIGxpY2Vuc2VUeXBlCiAgICAgICAgIGNhbGxiYWNr
KFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCksIGVtcHR5U3RyaW5nKCksIGZhbHNlLCBGYWlsZWQpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQorCisgICAgaWYgKCFtX3NlcnZlckNlcnRpZmljYXRlKSB7
CisgICAgICAgIGNhbGxiYWNrKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCksIGVtcHR5U3RyaW5nKCks
IGZhbHNlLCBGYWlsZWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9yZXF1ZXN0
TGljZW5zZUNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiAKICAgICBbbV9zZXNzaW9uIHBy
b2Nlc3NDb250ZW50S2V5UmVxdWVzdFdpdGhJZGVudGlmaWVyOm5pbCBpbml0aWFsaXphdGlvbkRh
dGE6aW5pdERhdGEtPmNyZWF0ZU5TRGF0YSgpLmdldCgpIG9wdGlvbnM6bmlsXTsKQEAgLTI2OCwx
MCArMjc1LDE1IEBAIHZvaWQgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRp
ZFByb3ZpZGVSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3QKICAgICBpZiAoIW1fcmVxdWVzdExp
Y2Vuc2VDYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcHVzaCAKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV25vbm51bGwiCiAg
ICAgUmV0YWluUHRyPE5TRGF0YT4gYXBwSWRlbnRpZmllciA9IG1fc2VydmVyQ2VydGlmaWNhdGUg
PyBtX3NlcnZlckNlcnRpZmljYXRlLT5jcmVhdGVOU0RhdGEoKSA6IG51bGxwdHI7Ci0gICAgW21f
cmVxdWVzdCBtYWtlU3RyZWFtaW5nQ29udGVudEtleVJlcXVlc3REYXRhRm9yQXBwOmFwcElkZW50
aWZpZXIuZ2V0KCkgY29udGVudElkZW50aWZpZXI6bmlsIG9wdGlvbnM6bmlsIGNvbXBsZXRpb25I
YW5kbGVyOlt0aGlzLCB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKV0gKE5TRGF0YSAqY29udGVu
dEtleVJlcXVlc3REYXRhLCBOU0Vycm9yICplcnJvcikgbXV0YWJsZSB7CisgICAgVmVjdG9yPFJl
ZjxTaGFyZWRCdWZmZXI+PiBrZXlJRHMgPSBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OmV4
dHJhY3RLZXlJRHNTaW5mKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHJlcXVlc3QuaW5pdGlhbGl6YXRp
b25EYXRhKSk7CisgICAgaWYgKGtleUlEcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgbV9yZXF1ZXN0
TGljZW5zZUNhbGxiYWNrKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCksIG1fc2Vzc2lvbklkLCBmYWxz
ZSwgRmFpbGVkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJldGFpblB0cjxOU0Rh
dGE+IGNvbnRlbnRJZGVudGlmaWVyID0ga2V5SURzLmZpcnN0KCktPmNyZWF0ZU5TRGF0YSgpOwor
ICAgIFttX3JlcXVlc3QgbWFrZVN0cmVhbWluZ0NvbnRlbnRLZXlSZXF1ZXN0RGF0YUZvckFwcDph
cHBJZGVudGlmaWVyLmdldCgpIGNvbnRlbnRJZGVudGlmaWVyOmNvbnRlbnRJZGVudGlmaWVyLmdl
dCgpIG9wdGlvbnM6bmlsIGNvbXBsZXRpb25IYW5kbGVyOlt0aGlzLCB3ZWFrVGhpcyA9IGNyZWF0
ZVdlYWtQdHIoKV0gKE5TRGF0YSAqY29udGVudEtleVJlcXVlc3REYXRhLCBOU0Vycm9yICplcnJv
cikgbXV0YWJsZSB7CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0g
V1RGTW92ZSh3ZWFrVGhpcyksIGVycm9yID0gcmV0YWluUHRyKGVycm9yKSwgY29udGVudEtleVJl
cXVlc3REYXRhID0gcmV0YWluUHRyKGNvbnRlbnRLZXlSZXF1ZXN0RGF0YSldIHsKICAgICAgICAg
ICAgIGlmICghd2Vha1RoaXMgfHwgIW1fcmVxdWVzdExpY2Vuc2VDYWxsYmFjaykKICAgICAgICAg
ICAgICAgICByZXR1cm47CkBAIC0yODIsNyArMjk0LDYgQEAgdm9pZCBDRE1JbnN0YW5jZUZhaXJQ
bGF5U3RyZWFtaW5nQVZGT2JqQzo6ZGlkUHJvdmlkZVJlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVz
dAogICAgICAgICAgICAgICAgIG1fcmVxdWVzdExpY2Vuc2VDYWxsYmFjayhTaGFyZWRCdWZmZXI6
OmNyZWF0ZShjb250ZW50S2V5UmVxdWVzdERhdGEuZ2V0KCkpLCBtX3Nlc3Npb25JZCwgZmFsc2Us
IFN1Y2NlZWRlZCk7CiAgICAgICAgIH0pOwogICAgIH1dOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHBvcAogfQogCiB2b2lkIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpk
aWRQcm92aWRlUmVuZXdpbmdSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3QgKnJlcXVlc3QpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggZmRhYmYwODRhYjAzMWFiZDk5ZWY2YzQxZTRmZWQ5MjI1OTBiMGM0NS4uNzcxYmMyOTUy
ZDYzNjM2YTQ1NWVlOGIxNjBhZTJhOGY0YzBiOGU0NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDE3LTExLTE1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtF
TUVdIFN1cHBvcnQgZ2VuZXJhdGVSZXF1ZXN0KCkgaW4gQ0RNRmFpclBsYXlTdHJlYW1pbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTc1MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICAqIHBsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0
ZWQtbWVkaWEvZnBzLWNyZWF0ZVNlc3Npb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1jcmVhdGVTZXNzaW9uLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEv
ZnBzLWdlbmVyYXRlUmVxdWVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZnBzLWdlbmVyYXRlUmVxdWVzdC5odG1sOiBB
ZGRlZC4KKwogMjAxNy0xMi0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUHJlZmxpZ2h0IHNob3VsZCBieXBhc3Mgc2VydmljZSB3b3JrZXIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMTJhMWJiZGEwNTZhYTdhY2Iw
MjAxZTE3OWMxODZlMmVmNjQ4MWU4OS4uNzM1MmZlNmEzZDJmZTc2OGJjZDQ4Zjg4OGRmYTZhMDcx
NWRlNzRlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTE3NDgsNiArMTc0OCw4IEBAIHdlYmtpdC5vcmcvYi8xNzU5OTggaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtY3NzLXdpdGgtc2VjdXJlLWNvCiAjIEFWQ29udGVudEtl
eVNlc3Npb24gbm90IGF2YWlsYWJsZSBwcmUtSGlnaCBTaWVycmEKIFsgRWxDYXBpdGFuIFNpZXJy
YSBdIHBsYXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZnBzLWNyZWF0ZU1lZGlhS2V5
cy5odG1sIFsgU2tpcCBdCiBbIEVsQ2FwaXRhbiBTaWVycmEgXSBwbGF0Zm9ybS9tYWMvbWVkaWEv
ZW5jcnlwdGVkLW1lZGlhL2Zwcy1yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MuaHRtbCBbIFNr
aXAgXQorWyBFbENhcGl0YW4gU2llcnJhIF0gcGxhdGZvcm0vbWFjL21lZGlhL2VuY3J5cHRlZC1t
ZWRpYS9mcHMtY3JlYXRlU2Vzc2lvbi5odG1sIFsgU2tpcCBdCitbIEVsQ2FwaXRhbiBTaWVycmEg
XSBwbGF0Zm9ybS9tYWMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1nZW5lcmF0ZVJlcXVlc3Qu
aHRtbCBbIFNraXAgXQogCiAjIHJkYXI6Ly9wcm9ibGVtLzM1Mzk1NDM3CiBbIEhpZ2hTaWVycmEr
IF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZWRpYS1zb3VyY2UvbWVkaWFzb3Vy
Y2UtcGxheS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1jcmVhdGVTZXNzaW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZnBzLWNy
ZWF0ZVNlc3Npb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyNGYzODNlMTRhMjdmYzU1NTk4
YzNkYzY0NzFiZTM2M2ZhZTNiZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1jcmVhdGVTZXNzaW9uLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDggQEAKK1JVTihwcm9taXNlID0gbmF2aWdhdG9yLnJlcXVlc3RNZWRp
YUtleVN5c3RlbUFjY2VzcygiY29tLmFwcGxlLmZwcyIsIGNhcGFiaWxpdGllcykpCitQcm9taXNl
IHJlc29sdmVkIE9LCitSVU4ocHJvbWlzZSA9IGFjY2Vzcy5jcmVhdGVNZWRpYUtleXMoKSkKK1By
b21pc2UgcmVzb2x2ZWQgT0sKK1JVTihzZXNzaW9uID0ga2V5cy5jcmVhdGVTZXNzaW9uKCkpCitF
WFBFQ1RFRCAoc2Vzc2lvbiAhPSAnbnVsbCcpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1jcmVh
dGVTZXNzaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVkaWEvZW5jcnlwdGVk
LW1lZGlhL2Zwcy1jcmVhdGVTZXNzaW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmIyYTIzYjg2ZDYyY2Ez
NWMwMDYwNTcxY2E2YTdiOGRmYmRiODViYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZnBzLWNyZWF0ZVNlc3Npb24uaHRt
bApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHRpdGxlPmZwcy1yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3M8L3RpdGxlPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi8uLi9tZWRpYS92aWRlby10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0PgorICAgIHZhciBjYXBhYmlsaXRpZXMgPSBbeworICAgICAgICBpbml0RGF0YVR5cGVz
OiBbJ3NpbmYnXSwKKyAgICAgICAgdmlkZW9DYXBhYmlsaXRpZXM6IFt7IGNvbnRlbnRUeXBlOiAn
dmlkZW8vbXA0Jywgcm9idXN0bmVzczogJycgfV0sCisgICAgICAgIGRpc3RpbmN0aXZlSWRlbnRp
ZmllcjogJ25vdC1hbGxvd2VkJywKKyAgICAgICAgcGVyc2lzdGVudFN0YXRlOiAnbm90LWFsbG93
ZWQnLAorICAgICAgICBzZXNzaW9uVHlwZXM6IFsndGVtcG9yYXJ5J10sCisgICAgfV07CisgICAg
dmFyIHByb21pc2U7CisgICAgdmFyIGFjY2VzczsKKyAgICB2YXIga2V5czsKKyAgICB2YXIgc2Vz
c2lvbjsKKyAgICB2YXIgaW5pdERhdGEgPSBudWxsOworCisgICAgZnVuY3Rpb24gc3RhcnRUZXN0
KCkgeworICAgICAgICBydW4oJ3Byb21pc2UgPSBuYXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lz
dGVtQWNjZXNzKCJjb20uYXBwbGUuZnBzIiwgY2FwYWJpbGl0aWVzKScpOworICAgICAgICBzaG91
bGRSZXNvbHZlKHByb21pc2UpLnRoZW4oZ290QWNjZXNzLCBlbmRUZXN0KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBnb3RBY2Nlc3MoYWNjZXNzKSB7CisgICAgICAgIHdpbmRvdy5hY2Nlc3MgPSBh
Y2Nlc3M7CisgICAgICAgIHJ1bigncHJvbWlzZSA9IGFjY2Vzcy5jcmVhdGVNZWRpYUtleXMoKScp
OworICAgICAgICBzaG91bGRSZXNvbHZlKHByb21pc2UpLnRoZW4oY3JlYXRlZEtleXMsIGVuZFRl
c3QpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNyZWF0ZWRLZXlzKGtleXMpIHsKKyAgICAgICAg
d2luZG93LmtleXMgPSBrZXlzOworICAgICAgICBydW4oJ3Nlc3Npb24gPSBrZXlzLmNyZWF0ZVNl
c3Npb24oKScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3Nlc3Npb24nLCAnbnVsbCcsICchPScp
OworICAgICAgICBlbmRUZXN0KCk7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ2xvYWQnLCBzdGFydFRlc3QpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvbWVk
aWEvZW5jcnlwdGVkLW1lZGlhL2Zwcy1nZW5lcmF0ZVJlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9mcHMtZ2VuZXJhdGVS
ZXF1ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmFhNzY4YmZmZjFlYzBiNWQ0YjYxNTc5
MGMwZDRhZTQwN2Y4NzkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9mcHMtZ2VuZXJhdGVSZXF1ZXN0LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitSVU4ocHJvbWlzZSA9IG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFL
ZXlTeXN0ZW1BY2Nlc3MoImNvbS5hcHBsZS5mcHMiLCBjYXBhYmlsaXRpZXMpKQorUHJvbWlzZSBy
ZXNvbHZlZCBPSworUlVOKHByb21pc2UgPSBhY2Nlc3MuY3JlYXRlTWVkaWFLZXlzKCkpCitQcm9t
aXNlIHJlc29sdmVkIE9LCitSVU4oa2V5cy5zZXRTZXJ2ZXJDZXJ0aWZpY2F0ZShzZXJ2ZXJDZXJ0
aWZpY2F0ZSkpCitSVU4oc2Vzc2lvbiA9IGtleXMuY3JlYXRlU2Vzc2lvbigpKQorRVhQRUNURUQg
KHNlc3Npb24gIT0gJ251bGwnKSBPSworUlVOKHByb21pc2UgPSBzZXNzaW9uLmdlbmVyYXRlUmVx
dWVzdCgic2luZiIsIGluaXREYXRhKSkKK1Byb21pc2UgcmVzb2x2ZWQgT0sKK0VORCBPRiBURVNU
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQt
bWVkaWEvZnBzLWdlbmVyYXRlUmVxdWVzdC5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L21lZGlhL2VuY3J5cHRlZC1tZWRpYS9mcHMtZ2VuZXJhdGVSZXF1ZXN0Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uN2Y1YjFlY2NjNDFlOTM0NGQ0NjIwZTgxNzI1NjMyMTIyOTk2MTgwNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvZnBz
LWdlbmVyYXRlUmVxdWVzdC5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+ZnBzLXJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vz
czwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL21lZGlhL3ZpZGVvLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgdmFyIGNhcGFiaWxpdGllcyA9IFt7Cisg
ICAgICAgIGluaXREYXRhVHlwZXM6IFsnc2luZiddLAorICAgICAgICB2aWRlb0NhcGFiaWxpdGll
czogW3sgY29udGVudFR5cGU6ICd2aWRlby9tcDQnLCByb2J1c3RuZXNzOiAnJyB9XSwKKyAgICAg
ICAgZGlzdGluY3RpdmVJZGVudGlmaWVyOiAnbm90LWFsbG93ZWQnLAorICAgICAgICBwZXJzaXN0
ZW50U3RhdGU6ICdub3QtYWxsb3dlZCcsCisgICAgICAgIHNlc3Npb25UeXBlczogWyd0ZW1wb3Jh
cnknXSwKKyAgICB9XTsKKyAgICB2YXIgcHJvbWlzZTsKKyAgICB2YXIgYWNjZXNzOworICAgIHZh
ciBrZXlzOworICAgIHZhciBzZXNzaW9uOworICAgIHZhciBpbml0RGF0YSA9IG5ldyBUZXh0RW5j
b2RlcigpLmVuY29kZShKU09OLnN0cmluZ2lmeSh7CisgICAgICAgIHNpbmY6IFsKKyAgICAgICAg
ICAgICJBQUFBREdaeWJXRnRjRFJoQUFBQUZITmphRzBBQUFBQVkySmpjd0FCQUFBQUFBQTVjMk5v
YVFBQUFERjBaVzVqQVFBQUFBQUFBUUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFFTndvTGo3N2pDandD
QUF3M1NxS2FvOD0iLAorICAgICAgICBdCisgICAgfSkpOworICAgIHZhciBzZXJ2ZXJDZXJ0aWZp
Y2F0ZVVSSSA9ICJkYXRhOmFwcGxpY2F0aW9uL3gteDUwOS1jYS1jZXJ0O2Jhc2U2NCxNSUlFeURD
Q0E3Q2dBd0lCQWdJSUQwLzA3Y0NISDBZd0RRWUpLb1pJaHZjTkFRRUZCUUF3ZnpFTE1Ba0dBMVVF
QmhNQ1ZWTXhFekFSQmdOVkJBb01Da0Z3Y0d4bElFbHVZeTR4SmpBa0JnTlZCQXNNSFVGd2NHeGxJ
RU5sY25ScFptbGpZWFJwYjI0Z1FYVjBhRzl5YVhSNU1UTXdNUVlEVlFRRERDcEJjSEJzWlNCTFpY
a2dVMlZ5ZG1salpYTWdRMlZ5ZEdsbWFXTmhkR2x2YmlCQmRYUm9iM0pwZEhrd0hoY05NVEl4TWpJ
d01EQXpPRFF6V2hjTk1UUXhNakl4TURBek9EUXpXakJJTVFzd0NRWURWUVFHRXdKVlV6RVNNQkFH
QTFVRUNnd0pRWEJ3YkdVZ1NXNWpNUkl3RUFZRFZRUUxEQWxCY0hCc1pTQkpibU14RVRBUEJnTlZC
QU1NQ0dad2MzUmxjM1EwTUlHZk1BMEdDU3FHU0liM0RRRUJBUVVBQTRHTkFEQ0JpUUtCZ1FDdUhl
dkRscGhPTTBzRDY3cjNvbEZrTi8ydkMwb1BsK2RKMkNyQmtMMHRVSm92OVliWHVkNnltSnAyVGtL
a0dxbnViUmFYNW1JOTQrVjlDYy8welNscCtOVENEVGNaN3k0NEU4ajg1QXYvNVhxb3pVZi93VXlZ
K1VZUEJSRDZCSFVuSDVZRDZ1dVNsTGNxRTBEYUU4cHRYaVF5TjNTUnRlQ0ZRNG5JOWYxMXVRSURB
UUFCbzRJQ0FUQ0NBZjB3SFFZRFZSME9CQllFRkJhVmYxZzFiZnlBVzc3NlNmdmVxajlOMDNFTU1B
d0dBMVVkRXdFQi93UUNNQUF3SHdZRFZSMGpCQmd3Rm9BVVkrUkhWTXVGY1ZsR0xJT3N6RVF4Wkdj
RExMNHdnZUlHQTFVZElBU0IyakNCMXpDQjFBWUpLb1pJaHZkalpBVUJNSUhHTUlIREJnZ3JCZ0VG
QlFjQ0FqQ0J0Z3lCczFKbGJHbGhibU5sSUc5dUlIUm9hWE1nWTJWeWRHbG1hV05oZEdVZ1lua2dZ
VzU1SUhCaGNuUjVJR0Z6YzNWdFpYTWdZV05qWlhCMFlXNWpaU0J2WmlCMGFHVWdkR2hsYmlCaGNI
QnNhV05oWW14bElITjBZVzVrWVhKa0lIUmxjbTF6SUdGdVpDQmpiMjVrYVhScGIyNXpJRzltSUhW
elpTd2dZMlZ5ZEdsbWFXTmhkR1VnY0c5c2FXTjVJR0Z1WkNCalpYSjBhV1pwWTJGMGFXOXVJSEJ5
WVdOMGFXTmxJSE4wWVhSbGJXVnVkSE11TURVR0ExVWRId1F1TUN3d0txQW9vQ2FHSkdoMGRIQTZM
eTlqY213dVlYQndiR1V1WTI5dEwydGxlWE5sY25acFkyVnpMbU55YkRBT0JnTlZIUThCQWY4RUJB
TUNCU0F3TkFZTEtvWklodmRqWkFZTkFRTUJBZjhFSWdIR2VxMFdDeEgzb0FMcWJLUkRlQ2w0bHFE
YUhWU1Fqc1FabnlDTUUyVGVjVUV3U3dZTEtvWklodmRqWkFZTkFRUUJBZjhFT1FIbEhoZHNnQjhR
UEpaRmI5YUFtdmM4a1lTVFFZYmpGNi9VMm1xNDZzWFdSS1dQS0dwcUx5QzVBY3ROUVV1SGp5blpu
NlkwdnMwRDhqQU5CZ2txaGtpRzl3MEJBUVVGQUFPQ0FRRUFnOEdrRXcwZ0RSbjdyYUE4dytWMzZO
T3ZLbFV4M1doM3BjcUk4Y1JBVHY5VHdwNHpmeUo0Rnd4ZFQ5MC96Q3RVVWpUVnRhdTZ5RVNUd1gr
TFVGdS9ZMGt2YVYwaHRnQklCdTdNV1lDdmZMbFN3UzRNcWJCdE5kbG9ETnZVN0NOeVdYYU1wS3BZ
S042aTBTcUVuVHZGMG1TVHBCbGlDVCtReHVOSXhhV3E5aDJjQ243OWtiWEpNNStJQzM3bUlXTzBq
dnpRamVTbE9YSlBack5IWjZCanQwQXlpQ0lpWlZrUG1WbTVsVjNZY2QwZ2Y0bWZoQVZKWUUvcDYv
ZFRrK21xbnhEZFVVTVZGRFVmdTFPcUJpbTZsZFduQWg4UGxXYUdoNXJMWVZnR3Z4RUVQRE5ldWVZ
aHhUckRuRU5iaENaNW4vYnkwUnAwczY3dDE5MjRXaytRVVE9PSI7CisgICAgdmFyIHNlcnZlckNl
cnRpZmljYXRlOworCisgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkgeworICAgICAgICBydW4oJ3By
b21pc2UgPSBuYXZpZ2F0b3IucmVxdWVzdE1lZGlhS2V5U3lzdGVtQWNjZXNzKCJjb20uYXBwbGUu
ZnBzIiwgY2FwYWJpbGl0aWVzKScpOworICAgICAgICBzaG91bGRSZXNvbHZlKHByb21pc2UpLnRo
ZW4oZ290QWNjZXNzLCBlbmRUZXN0KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBnb3RBY2Nlc3Mo
YWNjZXNzKSB7CisgICAgICAgIHdpbmRvdy5hY2Nlc3MgPSBhY2Nlc3M7CisgICAgICAgIHJ1bign
cHJvbWlzZSA9IGFjY2Vzcy5jcmVhdGVNZWRpYUtleXMoKScpOworICAgICAgICBzaG91bGRSZXNv
bHZlKHByb21pc2UpLnRoZW4oY3JlYXRlZEtleXMsIGVuZFRlc3QpOworICAgIH0KKworICAgIGFz
eW5jIGZ1bmN0aW9uIGNyZWF0ZWRLZXlzKGtleXMpIHsKKyAgICAgICAgd2luZG93LmtleXMgPSBr
ZXlzOworICAgICAgICB2YXIgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChzZXJ2ZXJDZXJ0aWZpY2F0
ZVVSSSk7CisgICAgICAgIHNlcnZlckNlcnRpZmljYXRlID0gYXdhaXQgcmVzcG9uc2UuYXJyYXlC
dWZmZXIoKTsKKyAgICAgICAgcnVuKCdrZXlzLnNldFNlcnZlckNlcnRpZmljYXRlKHNlcnZlckNl
cnRpZmljYXRlKScpOworICAgICAgICBydW4oJ3Nlc3Npb24gPSBrZXlzLmNyZWF0ZVNlc3Npb24o
KScpOworICAgICAgICB0ZXN0RXhwZWN0ZWQoJ3Nlc3Npb24nLCAnbnVsbCcsICchPScpOworICAg
ICAgICBydW4oJ3Byb21pc2UgPSBzZXNzaW9uLmdlbmVyYXRlUmVxdWVzdCgic2luZiIsIGluaXRE
YXRhKScpOworICAgICAgICBzaG91bGRSZXNvbHZlKHByb21pc2UpLnRoZW4oZW5kVGVzdCwgZW5k
VGVzdCk7CisgICAgfQorCisgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBzdGFy
dFRlc3QpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>