<?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>132739</bug_id>
          
          <creation_ts>2014-05-09 05:55:59 -0700</creation_ts>
          <short_desc>REGRESSION(CMAKE): [GTK] JavaScriptCore API tests are not built anymore</short_desc>
          <delta_ts>2014-05-12 01:58:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</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>Gtk, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>132686</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1007960</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-05-09 05:55:59 -0700</bug_when>
    <thetext>We lost these ones too with the switch to CMAKE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007967</commentid>
    <comment_count>1</comment_count>
      <attachid>231151</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-05-09 06:35:47 -0700</bug_when>
    <thetext>Created attachment 231151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008000</commentid>
    <comment_count>2</comment_count>
      <attachid>231151</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-05-09 09:29:12 -0700</bug_when>
    <thetext>Comment on attachment 231151
Patch

These test are platform independent right? Perhaps they should go into the shared CMakeLists.txt file like the other shared tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008395</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-05-11 00:10:41 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 231151 [details])
&gt; These test are platform independent right? Perhaps they should go into the shared CMakeLists.txt file like the other shared tests?

You are right!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008396</commentid>
    <comment_count>4</comment_count>
      <attachid>231255</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-05-11 00:11:10 -0700</bug_when>
    <thetext>Created attachment 231255
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008397</commentid>
    <comment_count>5</comment_count>
      <attachid>231256</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-05-11 00:12:52 -0700</bug_when>
    <thetext>Created attachment 231256
Patch for landing

Oops submitted the wrong patch, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008398</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-11 00:15:52 -0700</bug_when>
    <thetext>Attachment 231256 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/CMakeLists.txt:18:  Alphabetical sorting problem. &quot;JavaScriptCore&quot; should be before &quot;WTF&quot;.  [list/order] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008510</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-05-12 01:58:34 -0700</bug_when>
    <thetext>Committed r168615: &lt;http://trac.webkit.org/changeset/168615&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231151</attachid>
            <date>2014-05-09 06:35:47 -0700</date>
            <delta_ts>2014-05-11 00:11:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-jsc-unit-tests.diff</filename>
            <type>text/plain</type>
            <size>3105</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlMTgx
M2M2Li44MmY4ZDk0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTQtMDUtMDkgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCisgICAgICAgIFJFR1JFU1NJT04oQ01BS0UpOiBbR1RL
XSBKYXZhU2NyaXB0Q29yZSBBUEkgdGVzdHMgYXJlIG5vdCBidWlsdCBhbnltb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI3MzkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
Q01ha2VMaXN0cy50eHQ6IEFkZCBtaXNzaW5nIGluY2x1ZGVzIHJlcXVpcmVkIGJ5CisgICAgICAg
IHRoZSBKU0MgdW5pdCB0ZXN0cy4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RL
LmNtYWtlOiBCcmluZyBiYWNrIEphdmFTY3JpcHRDb3JlIHVuaXQgdGVzdHMuCisKKzIwMTQtMDUt
MDkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAg
IFJFR1JFU1NJT04oQ01BS0UpOiBbR1RLXSBJbnB1dE1ldGhvZEZpbHRlciB1bml0IHRlc3QgaXMg
bm90IGJ1aWx0CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzI2ODYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4
dCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKaW5kZXggODU0OTBlMC4uNWEz
OTlkZiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CkBAIC01LDEwICs1LDE5IEBAIGlu
Y2x1ZGVfZGlyZWN0b3JpZXMoJHtDTUFLRV9CSU5BUllfRElSfQogICAgICR7VEVTVFdFQktJVEFQ
SV9ESVJ9CiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0KICAgICAke0NNQUtFX1NPVVJDRV9ESVJ9
L1NvdXJjZQorICAgICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0KICAgICAk
e0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KICAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0K
ICAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vQVBJCiAgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9
L0ZvcndhcmRpbmdIZWFkZXJzCisgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Fzc2VtYmxlcgor
ICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9ieXRlY29kZQorICAgICR7SkFWQVNDUklQVENPUkVf
RElSfS9kaXNhc3NlbWJsZXIKKyAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcAorICAgICR7
SkFWQVNDUklQVENPUkVfRElSfS9qaXQKKyAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vbGxpbnQK
KyAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcGFyc2VyCisgICAgJHtKQVZBU0NSSVBUQ09SRV9E
SVJ9L3J1bnRpbWUKICAgICAke1RISVJEUEFSVFlfRElSfS9ndGVzdC9pbmNsdWRlCiAgICAgJHtX
RUJDT1JFX0RJUn0vZWRpdGluZwogICAgICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBlNDIyODY2Li42MjJiYjZhIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTU1LDYgKzU1LDEzIEBAIGxpc3QoQVBQ
RU5EIFRlc3RXZWJLaXRBUElfTElCUkFSSUVTCiAgICAgJHtHVEszX0xJQlJBUklFU30KICkKIAor
c2V0KFRlc3RKYXZhU2NyaXB0Q29yZV9MSUJSQVJJRVMKKyAgICBndGVzdAorICAgIEphdmFTY3Jp
cHRDb3JlCisgICAgJHtHREszX0xJQlJBUklFU30KKyAgICAke0dUSzNfTElCUkFSSUVTfQorKQor
CiBhZGRfZXhlY3V0YWJsZShUZXN0V2ViS2l0MgogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rl
c3RzL1dlYktpdDIvQWJvdXRCbGFua0xvYWQuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0v
VGVzdHMvV2ViS2l0Mi9DYW5IYW5kbGVSZXF1ZXN0LmNwcApAQCAtMTI4LDMgKzEzNSwxNCBAQCB0
YXJnZXRfbGlua19saWJyYXJpZXMoVGVzdFdlYkNvcmUgJHt0ZXN0X3dlYmNvcmVfTElCUkFSSUVT
fSkKIGFkZF90ZXN0KFRlc3RXZWJDb3JlICR7VEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9E
SVJFQ1RPUll9L1dlYkNvcmUvVGVzdFdlYkNvcmUpCiBzZXRfdGVzdHNfcHJvcGVydGllcyhUZXN0
V2ViQ29yZSBQUk9QRVJUSUVTIFRJTUVPVVQgNjApCiBzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoVGVz
dFdlYkNvcmUgUFJPUEVSVElFUyBSVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgJHtURVNUV0VCS0lU
QVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0vV2ViQ29yZSkKKworYWRkX2V4ZWN1dGFibGUo
VGVzdEphdmFTY3JpcHRDb3JlCisgICAgJHt0ZXN0X21haW5fU09VUkNFU30KKyAgICAke1RFU1RX
RUJLSVRBUElfRElSfS9UZXN0c0NvbnRyb2xsZXIuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJ
Un0vVGVzdHMvSmF2YVNjcmlwdENvcmUvVk1JbnNwZWN0b3IuY3BwCispCisKK3RhcmdldF9saW5r
X2xpYnJhcmllcyhUZXN0SmF2YVNjcmlwdENvcmUgJHtUZXN0SmF2YVNjcmlwdENvcmVfTElCUkFS
SUVTfSkKK2FkZF90ZXN0KFRlc3RKYXZhU2NyaXB0Q29yZSAke1RFU1RXRUJLSVRBUElfUlVOVElN
RV9PVVRQVVRfRElSRUNUT1JZfS9KYXZhU2NyaXB0Q29yZS9UZXN0SmF2YVNjcmlwdENvcmUpCitz
ZXRfdGVzdHNfcHJvcGVydGllcyhUZXN0SmF2YVNjcmlwdENvcmUgUFJPUEVSVElFUyBUSU1FT1VU
IDYwKQorc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFRlc3RKYXZhU2NyaXB0Q29yZSBQUk9QRVJUSUVT
IFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke1RFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRf
RElSRUNUT1JZfS9KYXZhU2NyaXB0Q29yZSkK
</data>
<flag name="review"
          id="255579"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231255</attachid>
            <date>2014-05-11 00:11:10 -0700</date>
            <delta_ts>2014-05-11 00:12:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wcore-unit-tests.diff</filename>
            <type>text/plain</type>
            <size>33090</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNDQ2
OWYwLi5mMDYxOGE4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQtMDUtMDkgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04oQ01BS0UpOiBbR1RL
XSBJbnB1dE1ldGhvZEZpbHRlciB1bml0IHRlc3QgaXMgbm90IGJ1aWx0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI2ODYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCcmluZyBiYWNrIElucHV0TWV0aG9k
RmlsdGVyIHRlc3QgdG8gdGhlIGJ1aWxkIGFuZCBjb21waWxlIGl0IGludG8KKyAgICAgICAgYSBz
aW5nbGUgYmluYXJ5IFRlc3RXZWJDb3JlIHdpdGggdGhlIG90aGVyIFdlYkNvcmUgdGVzdHMuIEFs
c28KKyAgICAgICAgbW92ZSBpdCBmcm9tIFRlc3RXZWJLaXRBUEkvZ3RrLyB0byBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvZ3RrLy4KKworICAgICAgICAqIFNjcmlwdHMvcnVuLWd0ay10ZXN0
czoKKyAgICAgICAgKFRlc3RSdW5uZXIpOiBSZW1vdmUgV2ViQ29yZUd0ayBmcm9tIHRoZSBsaXN0
IG9mIHRlc3QgZGlyZWN0b3JpZXMuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdU
Sy5jbWFrZToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvZ3RrL0lucHV0
TWV0aG9kRmlsdGVyLmNwcDogUmVuYW1lZCBmcm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
Z3RrL0lucHV0TWV0aG9kRmlsdGVyLmNwcC4KKwogMjAxNC0wNS0xMCAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihDTUFLRSk6
IFtHVEtdIFdlYktpdDIgQyBBUEkgdGVzdHMgYXJlIG5vdCBsb25nZXIgYnVpbHQgaW4gdGhlIHNh
bWUgYmluYXJ5CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi1ndGstdGVzdHMgYi9Ub29s
cy9TY3JpcHRzL3J1bi1ndGstdGVzdHMKaW5kZXggNjBlZGMwMi4uMTVkODVjMCAxMDA3NTUKLS0t
IGEvVG9vbHMvU2NyaXB0cy9ydW4tZ3RrLXRlc3RzCisrKyBiL1Rvb2xzL1NjcmlwdHMvcnVuLWd0
ay10ZXN0cwpAQCAtNTgsNyArNTgsNyBAQCBjbGFzcyBUZXN0VGltZW91dChFeGNlcHRpb24pOgog
ICAgIHBhc3MKIAogY2xhc3MgVGVzdFJ1bm5lcjoKLSAgICBURVNUX0RJUlMgPSBbICJXZWJLaXQy
R3RrIiwgIldlYktpdDIiLCAiSmF2YVNjcmlwdENvcmUiLCAiV1RGIiwgIldlYkNvcmUiLCAgIldl
YkNvcmVHdGsiIF0KKyAgICBURVNUX0RJUlMgPSBbICJXZWJLaXQyR3RrIiwgIldlYktpdDIiLCAi
SmF2YVNjcmlwdENvcmUiLCAiV1RGIiwgIldlYkNvcmUiIF0KIAogICAgIFNLSVBQRUQgPSBbCiAg
ICAgICAgIFNraXBwZWRUZXN0KCJXZWJLaXQyR3RrL1Rlc3RVSUNsaWVudCIsICIvd2Via2l0Mi9X
ZWJLaXRXZWJWaWV3L21vdXNlLXRhcmdldCIsICJUZXN0IHRpbWVzIG91dCBhZnRlciByMTUwODkw
IiwgMTE3Njg5KSwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsu
Y21ha2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDkzOGVh
OWYuLmU0MjI4NjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsu
Y21ha2UKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtMTA2
LDE2ICsxMDYsMjUgQEAgYWRkX3Rlc3QoVGVzdFdlYktpdDIgJHtURVNUV0VCS0lUQVBJX1JVTlRJ
TUVfT1VUUFVUX0RJUkVDVE9SWX0vV2ViS2l0Mi9UZXN0V2ViS2kKIHNldF90ZXN0c19wcm9wZXJ0
aWVzKFRlc3RXZWJLaXQyIFBST1BFUlRJRVMgVElNRU9VVCA2MCkKIHNldF90YXJnZXRfcHJvcGVy
dGllcyhUZXN0V2ViS2l0MiBQUk9QRVJUSUVTIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke1RF
U1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9XZWJLaXQyKQogCi0jIFRoZSBs
aXN0IGJlbG93IHdvcmtzIGxpa2UgYSB0ZXN0IGV4cGVjdGF0aW9uLiBUZXN0cyBpbiB0aGUKLSMg
dGVzdF97d2Via2l0Ml9hcGl8d2ViY29yZX1fQklOQVJJRVMgbGlzdCBhcmUgYWRkZWQgdG8gdGhl
IHRlc3QgcnVubmVyIGFuZAotIyB0cmllZCBvbiB0aGUgYm90cyBvbiBldmVyeSBidWlsZC4gVGVz
dHMgaW4gdGVzdF97d2Via2l0Ml9hcGl8d2ViY29yZX1fQklOQVJJRVMKLSMgYXJlIGNvbXBpbGVk
IGFuZCBzdWZmaXhlZCB3aXRoIGZhaWwgYW5kIHNraXBwZWQgZnJvbSB0aGUgdGVzdCBydW5uZXIu
Ci0jCi0jIE1ha2Ugc3VyZSB0aGF0IHRoZSB0ZXN0cyBhcmUgcGFzc2luZyBvbiBib3RoIERlYnVn
IGFuZAotIyBSZWxlYXNlIGJ1aWxkcyBiZWZvcmUgYWRkaW5nIGl0IHRvIHRlc3Rfe3dlYmtpdDJf
YXBpfHdlYmNvcmV9X0JJTkFSSUVTLgorc2V0KFRlc3RXZWJDb3JlR3RrX1NPVVJDRVMKKyAgICAk
e1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRQb2ludC5jcHAKKyAgICAke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmNwcAorICAgICR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL2dyYXBoaWNzL0ludFNpemUuY3BwCisgICAgJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vSW50UmVjdENhaXJvLmNwcAorICAgICR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL2dyYXBoaWNzL2d0ay9JbnRSZWN0R3RrLmNwcAorICAgICR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL2d0ay9HdGtJbnB1dE1ldGhvZEZpbHRlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElf
RElSfS9UZXN0cy9XZWJDb3JlL2d0ay9JbnB1dE1ldGhvZEZpbHRlci5jcHAKKykKIAotc2V0KHRl
c3Rfd2ViY29yZV9CSU5BUklFUwotICAgIExheW91dFVuaXQKLSAgICBVUkwKK2FkZF9leGVjdXRh
YmxlKFRlc3RXZWJDb3JlCisgICAgJHt0ZXN0X21haW5fU09VUkNFU30KKyAgICAke1Rlc3RXZWJD
b3JlR3RrX1NPVVJDRVN9CisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHNDb250cm9sbGVy
LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvTGF5b3V0VW5pdC5j
cHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1VSTC5jcHAKICkKIAor
dGFyZ2V0X2xpbmtfbGlicmFyaWVzKFRlc3RXZWJDb3JlICR7dGVzdF93ZWJjb3JlX0xJQlJBUklF
U30pCithZGRfdGVzdChUZXN0V2ViQ29yZSAke1RFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRf
RElSRUNUT1JZfS9XZWJDb3JlL1Rlc3RXZWJDb3JlKQorc2V0X3Rlc3RzX3Byb3BlcnRpZXMoVGVz
dFdlYkNvcmUgUFJPUEVSVElFUyBUSU1FT1VUIDYwKQorc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFRl
c3RXZWJDb3JlIFBST1BFUlRJRVMgUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZICR7VEVTVFdFQktJ
VEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L1dlYkNvcmUpCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvZ3RrL0lucHV0TWV0aG9kRmlsdGVyLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9ndGsvSW5wdXRNZXRob2RGaWx0ZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAzZjNjOTIKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvZ3RrL0lucHV0TWV0
aG9kRmlsdGVyLmNwcApAQCAtMCwwICsxLDMxMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRl
ICJXVEZTdHJpbmdVdGlsaXRpZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0d0a0lucHV0TWV0aG9k
RmlsdGVyLmg+CisjaW5jbHVkZSA8Z2RrL2dka2tleXN5bXMuaD4KKyNpbmNsdWRlIDxndGsvZ3Rr
Lmg+CisjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgorI2luY2x1ZGUgPHd0Zi9n
b2JqZWN0L0dSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK2NsYXNz
IFRlc3RJbnB1dE1ldGhvZEZpbHRlciA6IHB1YmxpYyBHdGtJbnB1dE1ldGhvZEZpbHRlciB7Citw
dWJsaWM6CisgICAgVGVzdElucHV0TWV0aG9kRmlsdGVyKCkKKyAgICAgICAgOiBtX3Rlc3RXaW5k
b3coZ3RrX3dpbmRvd19uZXcoR1RLX1dJTkRPV19QT1BVUCkpCisgICAgeworICAgICAgICBndGtf
d2lkZ2V0X3Nob3cobV90ZXN0V2luZG93LmdldCgpKTsKKyAgICAgICAgc2V0V2lkZ2V0KG1fdGVz
dFdpbmRvdy5nZXQoKSk7CisKKyAgICAgICAgLy8gRm9jdXMgaW4gaXMgbmVjZXNzYXJ5IHRvIGFj
dGl2YXRlIHRoZSBkZWZhdWx0IGlucHV0IG1ldGhvZCBpbiB0aGUgbXVsdGljb250ZXh0LgorICAg
ICAgICBub3RpZnlGb2N1c2VkSW4oKTsKKyAgICB9CisKKyAgICBWZWN0b3I8U3RyaW5nPiYgZXZl
bnRzKCkgeyByZXR1cm4gbV9ldmVudHM7IH0KKworICAgIHZvaWQgc2VuZEtleUV2ZW50VG9GaWx0
ZXIodW5zaWduZWQgZ2RrS2V5VmFsdWUsIEdka0V2ZW50VHlwZSB0eXBlLCB1bnNpZ25lZCBtb2Rp
ZmllcnMgPSAwKQorICAgIHsKKyAgICAgICAgR2RrRXZlbnQqIGV2ZW50ID0gZ2RrX2V2ZW50X25l
dyh0eXBlKTsKKyAgICAgICAgZXZlbnQtPmtleS5rZXl2YWwgPSBnZGtLZXlWYWx1ZTsKKyAgICAg
ICAgZXZlbnQtPmtleS5zdGF0ZSA9IG1vZGlmaWVyczsKKyAgICAgICAgZXZlbnQtPmtleS53aW5k
b3cgPSBndGtfd2lkZ2V0X2dldF93aW5kb3cobV90ZXN0V2luZG93LmdldCgpKTsKKyAgICAgICAg
ZXZlbnQtPmtleS50aW1lID0gR0RLX0NVUlJFTlRfVElNRTsKKyAgICAgICAgZ19vYmplY3RfcmVm
KGV2ZW50LT5rZXkud2luZG93KTsKKworI2lmbmRlZiBHVEtfQVBJX1ZFUlNJT05fMgorICAgICAg
ICBnZGtfZXZlbnRfc2V0X2RldmljZShldmVudCwgZ2RrX2RldmljZV9tYW5hZ2VyX2dldF9jbGll
bnRfcG9pbnRlcihnZGtfZGlzcGxheV9nZXRfZGV2aWNlX21hbmFnZXIoZ2RrX2Rpc3BsYXlfZ2V0
X2RlZmF1bHQoKSkpKTsKKyNlbmRpZgorCisgICAgICAgIEdVbmlxdWVPdXRQdHI8R2RrS2V5bWFw
S2V5PiBrZXlzOworICAgICAgICBnaW50IG5LZXlzOworICAgICAgICBpZiAoZ2RrX2tleW1hcF9n
ZXRfZW50cmllc19mb3Jfa2V5dmFsKGdka19rZXltYXBfZ2V0X2RlZmF1bHQoKSwgZ2RrS2V5VmFs
dWUsICZrZXlzLm91dFB0cigpLCAmbktleXMpKQorICAgICAgICAgICAgZXZlbnQtPmtleS5oYXJk
d2FyZV9rZXljb2RlID0ga2V5cy5nZXQoKVswXS5rZXljb2RlOworCisgICAgICAgIGZpbHRlcktl
eUV2ZW50KCZldmVudC0+a2V5KTsKKyAgICAgICAgZ2RrX2V2ZW50X2ZyZWUoZXZlbnQpOworICAg
IH0KKworICAgIHZvaWQgc2VuZFByZXNzQW5kUmVsZWFzZUtleUV2ZW50UGFpclRvRmlsdGVyKHVu
c2lnbmVkIGdka0tleVZhbHVlLCB1bnNpZ25lZCBtb2RpZmllcnMgPSAwKQorICAgIHsKKyAgICAg
ICAgc2VuZEtleUV2ZW50VG9GaWx0ZXIoZ2RrS2V5VmFsdWUsIEdES19LRVlfUFJFU1MsIG1vZGlm
aWVycyk7CisgICAgICAgIHNlbmRLZXlFdmVudFRvRmlsdGVyKGdka0tleVZhbHVlLCBHREtfS0VZ
X1JFTEVBU0UsIG1vZGlmaWVycyk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgdmlydHVhbCBi
b29sIHNlbmRTaW1wbGVLZXlFdmVudChHZGtFdmVudEtleSogZXZlbnQsIFdURjo6U3RyaW5nIGV2
ZW50U3RyaW5nLCBFdmVudEZha2VkRm9yQ29tcG9zaXRpb24gZmFrZWQpCisgICAgeworICAgICAg
ICBjb25zdCBjaGFyKiBldmVudFR5cGUgPSBldmVudC0+dHlwZSA9PSBHREtfS0VZX1JFTEVBU0Ug
PyAicmVsZWFzZSIgOiAicHJlc3MiOworICAgICAgICBjb25zdCBjaGFyKiBmYWtlZFN0cmluZyA9
IGZha2VkID09IEV2ZW50RmFrZWQgPyAiIChmYWtlZCkiIDogIiI7CisgICAgICAgIGlmICghZXZl
bnRTdHJpbmcuaXNOdWxsKCkpCisgICAgICAgICAgICBtX2V2ZW50cy5hcHBlbmQoU3RyaW5nOjpm
b3JtYXQoInNlbmRTaW1wbGVLZXlFdmVudCB0eXBlPSVzIGtleWNvZGU9JXggdGV4dD0nJXMnJXMi
LCBldmVudFR5cGUsIGV2ZW50LT5rZXl2YWwsIGV2ZW50U3RyaW5nLnV0ZjgoKS5kYXRhKCksIGZh
a2VkU3RyaW5nKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fZXZlbnRzLmFwcGVuZChT
dHJpbmc6OmZvcm1hdCgic2VuZFNpbXBsZUtleUV2ZW50IHR5cGU9JXMga2V5Y29kZT0leCVzIiwg
ZXZlbnRUeXBlLCBldmVudC0+a2V5dmFsLCBmYWtlZFN0cmluZykpOworCisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBzZW5kS2V5RXZlbnRXaXRoQ29tcG9z
aXRpb25SZXN1bHRzKEdka0V2ZW50S2V5KiBldmVudCwgUmVzdWx0c1RvU2VuZCByZXN1bHRzVG9T
ZW5kLCBFdmVudEZha2VkRm9yQ29tcG9zaXRpb24gZmFrZWQpCisgICAgeworICAgICAgICBjb25z
dCBjaGFyKiBldmVudFR5cGUgPSBldmVudC0+dHlwZSA9PSBHREtfS0VZX1JFTEVBU0UgPyAicmVs
ZWFzZSIgOiAicHJlc3MiOworICAgICAgICBjb25zdCBjaGFyKiBmYWtlZFN0cmluZyA9IGZha2Vk
ID09IEV2ZW50RmFrZWQgPyAiIChmYWtlZCkiIDogIiI7CisgICAgICAgIG1fZXZlbnRzLmFwcGVu
ZChTdHJpbmc6OmZvcm1hdCgic2VuZEtleUV2ZW50V2l0aENvbXBvc2l0aW9uUmVzdWx0cyB0eXBl
PSVzIGtleWNvZGU9JXUlcyIsIGV2ZW50VHlwZSwgZXZlbnQtPmtleXZhbCwgZmFrZWRTdHJpbmcp
KTsKKworICAgICAgICBpZiAocmVzdWx0c1RvU2VuZCAmIENvbXBvc2l0aW9uICYmICFtX2NvbmZp
cm1lZENvbXBvc2l0aW9uLmlzTnVsbCgpKQorICAgICAgICAgICAgY29uZmlybUNvbXBvc2l0aW9u
VGV4dChtX2NvbmZpcm1lZENvbXBvc2l0aW9uKTsKKyAgICAgICAgaWYgKHJlc3VsdHNUb1NlbmQg
JiBQcmVlZGl0ICYmICFtX3ByZWVkaXQuaXNOdWxsKCkpCisgICAgICAgICAgICBzZXRQcmVlZGl0
KG1fcHJlZWRpdCwgbV9jdXJzb3JPZmZzZXQpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKworICAgIHZpcnR1YWwgYm9vbCBjYW5FZGl0KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBjb25maXJtQ29tcG9zaXRpb25UZXh0KFN0
cmluZyB0ZXh0KQorICAgIHsKKyAgICAgICAgbV9ldmVudHMuYXBwZW5kKFN0cmluZzo6Zm9ybWF0
KCJjb25maXJtQ29tcG9zaXRpb24gJyVzJyIsIHRleHQudXRmOCgpLmRhdGEoKSkpOworICAgIH0K
KworICAgIHZpcnR1YWwgdm9pZCBjb25maXJtQ3VycmVudENvbXBvc2l0aW9uKCkKKyAgICB7Cisg
ICAgICAgIG1fZXZlbnRzLmFwcGVuZChTdHJpbmcoImNvbmZpcm1DdXJyZW50Y29tcG9zaXRpb24i
KSk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGNhbmNlbEN1cnJlbnRDb21wb3NpdGlvbigp
CisgICAgeworICAgICAgICBtX2V2ZW50cy5hcHBlbmQoU3RyaW5nKCJjYW5jZWxDdXJyZW50Q29t
cG9zaXRpb24iKSk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHNldFByZWVkaXQoU3RyaW5n
IHByZWVkaXQsIGludCBjdXJzb3JPZmZzZXQpCisgICAgeworICAgICAgICBtX2V2ZW50cy5hcHBl
bmQoU3RyaW5nOjpmb3JtYXQoInNldFByZWVkaXQgdGV4dD0nJXMnIGN1cnNvck9mZnNldD0laSIs
IHByZWVkaXQudXRmOCgpLmRhdGEoKSwgY3Vyc29yT2Zmc2V0KSk7CisgICAgfQorCitwcml2YXRl
OgorICAgIEdSZWZQdHI8R3RrV2lkZ2V0PiBtX3Rlc3RXaW5kb3c7CisgICAgVmVjdG9yPFN0cmlu
Zz4gbV9ldmVudHM7Cit9OworCitURVNUKEdUSywgR3RrSW5wdXRNZXRob2RGaWx0ZXJTaW1wbGUp
Cit7CisgICAgVGVzdElucHV0TWV0aG9kRmlsdGVyIGlucHV0TWV0aG9kRmlsdGVyOworICAgIGlu
cHV0TWV0aG9kRmlsdGVyLnNlbmRQcmVzc0FuZFJlbGVhc2VLZXlFdmVudFBhaXJUb0ZpbHRlcihH
REtfS0VZX2cpOworICAgIGlucHV0TWV0aG9kRmlsdGVyLnNlbmRQcmVzc0FuZFJlbGVhc2VLZXlF
dmVudFBhaXJUb0ZpbHRlcihHREtfS0VZX3QpOworICAgIGlucHV0TWV0aG9kRmlsdGVyLnNlbmRQ
cmVzc0FuZFJlbGVhc2VLZXlFdmVudFBhaXJUb0ZpbHRlcihHREtfS0VZX2spOworCisgICAgY29u
c3QgVmVjdG9yPFN0cmluZz4mIGV2ZW50cyA9IGlucHV0TWV0aG9kRmlsdGVyLmV2ZW50cygpOwor
CisgICAgQVNTRVJUX0VRKDYsIGV2ZW50cy5zaXplKCkpOworICAgIEFTU0VSVF9FUShTdHJpbmco
InNlbmRTaW1wbGVLZXlFdmVudCB0eXBlPXByZXNzIGtleWNvZGU9NjcgdGV4dD0nZyciKSwgZXZl
bnRzWzBdKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCJzZW5kU2ltcGxlS2V5RXZlbnQgdHlwZT1y
ZWxlYXNlIGtleWNvZGU9NjciKSwgZXZlbnRzWzFdKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCJz
ZW5kU2ltcGxlS2V5RXZlbnQgdHlwZT1wcmVzcyBrZXljb2RlPTc0IHRleHQ9J3QnIiksIGV2ZW50
c1syXSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygic2VuZFNpbXBsZUtleUV2ZW50IHR5cGU9cmVs
ZWFzZSBrZXljb2RlPTc0IiksIGV2ZW50c1szXSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygic2Vu
ZFNpbXBsZUtleUV2ZW50IHR5cGU9cHJlc3Mga2V5Y29kZT02YiB0ZXh0PSdrJyIpLCBldmVudHNb
NF0pOworICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRTaW1wbGVLZXlFdmVudCB0eXBlPXJlbGVh
c2Uga2V5Y29kZT02YiIpLCBldmVudHNbNV0pOworfQorCitURVNUKEdUSywgR3RrSW5wdXRNZXRo
b2RGaWx0ZXJVbmljb2RlU2VxdWVuY2UpCit7CisgICAgVGVzdElucHV0TWV0aG9kRmlsdGVyIGlu
cHV0TWV0aG9kRmlsdGVyOworCisgICAgLy8gVGhpcyBpcyBzaW1wbGUgdW5pY29kZSBoZXggZW50
cnkgb2YgdGhlIGNoYXJhY3RlcnMsIHUsIDAsIDAsIGYsIDQgcHJlc3NlZCB3aXRoCisgICAgLy8g
dGhlIHNoaWZ0IGFuZCBjb250cm9scyBrZXlzIGhlbGQgZG93bi4gSW4gcmVhbGl0eSwgdGhlc2Ug
dmFsdWVzIGFyZSBub3QgdHlwaWNhbAorICAgIC8vIG9mIGFuIGFjdHVhbCBoZXggZW50cnksIGJl
Y2F1c2UgdGhleSdkIGJlIHRyYW5zZm9ybWVkIGJ5IHRoZSBzaGlmdCBtb2RpZmllciBhY2NvcmRp
bmcKKyAgICAvLyB0byB0aGUga2V5Ym9hcmQgbGF5b3V0LiBGb3IgaW5zdGFuY2UsIG9uIGEgVVMg
a2V5Ym9hcmQgYSAwIHdpdGggdGhlIHNoaWZ0IGtleSBwcmVzc2VkCisgICAgLy8gaXMgYSByaWdo
dCBwYXJlbnRoZXNpcy4gVXNpbmcgdGhlc2UgdmFsdWVzIHByZXZlbnRzIGhhdmluZyB0byB3b3Jr
IG91dCB3aGF0IHRoZQorICAgIC8vIHRyYW5zZm9ybWVkIGNoYXJhY3RlcnMgYXJlIGJhc2VkIG9u
IHRoZSBjdXJyZW50IGtleWJvYXJkIGxheW91dC4KKyAgICBpbnB1dE1ldGhvZEZpbHRlci5zZW5k
S2V5RXZlbnRUb0ZpbHRlcihHREtfS0VZX0NvbnRyb2xfTCwgR0RLX0tFWV9QUkVTUyk7CisgICAg
aW5wdXRNZXRob2RGaWx0ZXIuc2VuZEtleUV2ZW50VG9GaWx0ZXIoR0RLX0tFWV9TaGlmdF9MLCBH
REtfS0VZX1BSRVNTLCBHREtfQ09OVFJPTF9NQVNLKTsKKworICAgIGlucHV0TWV0aG9kRmlsdGVy
LnNlbmRQcmVzc0FuZFJlbGVhc2VLZXlFdmVudFBhaXJUb0ZpbHRlcihHREtfS0VZX1UsIEdES19T
SElGVF9NQVNLIHwgR0RLX0NPTlRST0xfTUFTSyk7CisgICAgaW5wdXRNZXRob2RGaWx0ZXIuc2Vu
ZFByZXNzQW5kUmVsZWFzZUtleUV2ZW50UGFpclRvRmlsdGVyKEdES19LRVlfMCwgR0RLX1NISUZU
X01BU0sgfCBHREtfQ09OVFJPTF9NQVNLKTsKKyAgICBpbnB1dE1ldGhvZEZpbHRlci5zZW5kUHJl
c3NBbmRSZWxlYXNlS2V5RXZlbnRQYWlyVG9GaWx0ZXIoR0RLX0tFWV8wLCBHREtfU0hJRlRfTUFT
SyB8IEdES19DT05UUk9MX01BU0spOworICAgIGlucHV0TWV0aG9kRmlsdGVyLnNlbmRQcmVzc0Fu
ZFJlbGVhc2VLZXlFdmVudFBhaXJUb0ZpbHRlcihHREtfS0VZX0YsIEdES19TSElGVF9NQVNLIHwg
R0RLX0NPTlRST0xfTUFTSyk7CisgICAgaW5wdXRNZXRob2RGaWx0ZXIuc2VuZFByZXNzQW5kUmVs
ZWFzZUtleUV2ZW50UGFpclRvRmlsdGVyKEdES19LRVlfNCwgR0RLX1NISUZUX01BU0sgfCBHREtf
Q09OVFJPTF9NQVNLKTsKKworICAgIGlucHV0TWV0aG9kRmlsdGVyLnNlbmRLZXlFdmVudFRvRmls
dGVyKEdES19LRVlfU2hpZnRfTCwgR0RLX0tFWV9SRUxFQVNFLCBHREtfQ09OVFJPTF9NQVNLIHwg
R0RLX1NISUZUX01BU0spOworICAgIGlucHV0TWV0aG9kRmlsdGVyLnNlbmRLZXlFdmVudFRvRmls
dGVyKEdES19LRVlfQ29udHJvbF9MLCBHREtfS0VZX1JFTEVBU0UsIEdES19DT05UUk9MX01BU0sp
OworCisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGV2ZW50cyA9IGlucHV0TWV0aG9kRmlsdGVy
LmV2ZW50cygpOworICAgIEFTU0VSVF9FUSgyMSwgZXZlbnRzLnNpemUoKSk7CisgICAgQVNTRVJU
X0VRKFN0cmluZygic2VuZFNpbXBsZUtleUV2ZW50IHR5cGU9cHJlc3Mga2V5Y29kZT1mZmUzIiks
IGV2ZW50c1swXSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygic2VuZFNpbXBsZUtleUV2ZW50IHR5
cGU9cHJlc3Mga2V5Y29kZT1mZmUxIiksIGV2ZW50c1sxXSk7CisgICAgQVNTRVJUX0VRKFN0cmlu
Zygic2VuZEtleUV2ZW50V2l0aENvbXBvc2l0aW9uUmVzdWx0cyB0eXBlPXByZXNzIGtleWNvZGU9
ODUiKSwgZXZlbnRzWzJdKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCJzZXRQcmVlZGl0IHRleHQ9
J3UnIGN1cnNvck9mZnNldD0xIiksIGV2ZW50c1szXSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygi
c2VuZFNpbXBsZUtleUV2ZW50IHR5cGU9cmVsZWFzZSBrZXljb2RlPTU1IiksIGV2ZW50c1s0XSk7
CisgICAgQVNTRVJUX0VRKFN0cmluZygic2VuZEtleUV2ZW50V2l0aENvbXBvc2l0aW9uUmVzdWx0
cyB0eXBlPXByZXNzIGtleWNvZGU9NDgiKSwgZXZlbnRzWzVdKTsKKyAgICBBU1NFUlRfRVEoU3Ry
aW5nKCJzZXRQcmVlZGl0IHRleHQ9J3UwJyBjdXJzb3JPZmZzZXQ9MiIpLCBldmVudHNbNl0pOwor
ICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRTaW1wbGVLZXlFdmVudCB0eXBlPXJlbGVhc2Uga2V5
Y29kZT0zMCIpLCBldmVudHNbN10pOworICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRLZXlFdmVu
dFdpdGhDb21wb3NpdGlvblJlc3VsdHMgdHlwZT1wcmVzcyBrZXljb2RlPTQ4IiksIGV2ZW50c1s4
XSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygic2V0UHJlZWRpdCB0ZXh0PSd1MDAnIGN1cnNvck9m
ZnNldD0zIiksIGV2ZW50c1s5XSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygic2VuZFNpbXBsZUtl
eUV2ZW50IHR5cGU9cmVsZWFzZSBrZXljb2RlPTMwIiksIGV2ZW50c1sxMF0pOworICAgIEFTU0VS
VF9FUShTdHJpbmcoInNlbmRLZXlFdmVudFdpdGhDb21wb3NpdGlvblJlc3VsdHMgdHlwZT1wcmVz
cyBrZXljb2RlPTcwIiksIGV2ZW50c1sxMV0pOworICAgIEFTU0VSVF9FUShTdHJpbmcoInNldFBy
ZWVkaXQgdGV4dD0ndTAwRicgY3Vyc29yT2Zmc2V0PTQiKSwgZXZlbnRzWzEyXSk7CisgICAgQVNT
RVJUX0VRKFN0cmluZygic2VuZFNpbXBsZUtleUV2ZW50IHR5cGU9cmVsZWFzZSBrZXljb2RlPTQ2
IiksIGV2ZW50c1sxM10pOworICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRLZXlFdmVudFdpdGhD
b21wb3NpdGlvblJlc3VsdHMgdHlwZT1wcmVzcyBrZXljb2RlPTUyIiksIGV2ZW50c1sxNF0pOwor
ICAgIEFTU0VSVF9FUShTdHJpbmcoInNldFByZWVkaXQgdGV4dD0ndTAwRjQnIGN1cnNvck9mZnNl
dD01IiksIGV2ZW50c1sxNV0pOworICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRTaW1wbGVLZXlF
dmVudCB0eXBlPXJlbGVhc2Uga2V5Y29kZT0zNCIpLCBldmVudHNbMTZdKTsKKyAgICBBU1NFUlRf
RVEoU3RyaW5nKCJjb25maXJtQ29tcG9zaXRpb24gJ8O0JyIpLCBldmVudHNbMTddKTsKKyAgICBB
U1NFUlRfRVEoU3RyaW5nKCJzZXRQcmVlZGl0IHRleHQ9JycgY3Vyc29yT2Zmc2V0PTAiKSwgZXZl
bnRzWzE4XSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygic2VuZFNpbXBsZUtleUV2ZW50IHR5cGU9
cmVsZWFzZSBrZXljb2RlPWZmZTEiKSwgZXZlbnRzWzE5XSk7CisgICAgQVNTRVJUX0VRKFN0cmlu
Zygic2VuZFNpbXBsZUtleUV2ZW50IHR5cGU9cmVsZWFzZSBrZXljb2RlPWZmZTMiKSwgZXZlbnRz
WzIwXSk7Cit9CisKK1RFU1QoR1RLLCBHdGtJbnB1dE1ldGhvZEZpbHRlckNvbXBvc2VLZXkpCit7
CisgICAgVGVzdElucHV0TWV0aG9kRmlsdGVyIGlucHV0TWV0aG9kRmlsdGVyOworCisgICAgaW5w
dXRNZXRob2RGaWx0ZXIuc2VuZFByZXNzQW5kUmVsZWFzZUtleUV2ZW50UGFpclRvRmlsdGVyKEdE
S19LRVlfTXVsdGlfa2V5KTsKKyAgICBpbnB1dE1ldGhvZEZpbHRlci5zZW5kUHJlc3NBbmRSZWxl
YXNlS2V5RXZlbnRQYWlyVG9GaWx0ZXIoR0RLX0tFWV9hcG9zdHJvcGhlKTsKKyAgICBpbnB1dE1l
dGhvZEZpbHRlci5zZW5kUHJlc3NBbmRSZWxlYXNlS2V5RXZlbnRQYWlyVG9GaWx0ZXIoR0RLX0tF
WV9vKTsKKworICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBldmVudHMgPSBpbnB1dE1ldGhvZEZp
bHRlci5ldmVudHMoKTsKKyAgICBBU1NFUlRfRVEoNSwgZXZlbnRzLnNpemUoKSk7CisgICAgQVNT
RVJUX0VRKFN0cmluZygic2VuZEtleUV2ZW50V2l0aENvbXBvc2l0aW9uUmVzdWx0cyB0eXBlPXBy
ZXNzIGtleWNvZGU9MzkiKSwgZXZlbnRzWzBdKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCJzZXRQ
cmVlZGl0IHRleHQ9JycgY3Vyc29yT2Zmc2V0PTAiKSwgZXZlbnRzWzFdKTsKKyAgICBBU1NFUlRf
RVEoU3RyaW5nKCJzZW5kU2ltcGxlS2V5RXZlbnQgdHlwZT1yZWxlYXNlIGtleWNvZGU9MjciKSwg
ZXZlbnRzWzJdKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCJzZW5kU2ltcGxlS2V5RXZlbnQgdHlw
ZT1wcmVzcyBrZXljb2RlPTZmIHRleHQ9J8OzJyIpLCBldmVudHNbM10pOworICAgIEFTU0VSVF9F
UShTdHJpbmcoInNlbmRTaW1wbGVLZXlFdmVudCB0eXBlPXJlbGVhc2Uga2V5Y29kZT02ZiIpLCBl
dmVudHNbNF0pOworfQorCit0eXBlZGVmIHZvaWQgKCpHZXRQcmVlZGl0U3RyaW5nQ2FsbGJhY2sp
IChHdGtJTUNvbnRleHQqLCBnY2hhcioqLCBQYW5nb0F0dHJMaXN0KiosIGludCopOworc3RhdGlj
IHZvaWQgdGVtcG9yYXJ5R2V0UHJlZWRpdFN0cmluZ092ZXJyaWRlKEd0a0lNQ29udGV4dCosIGNo
YXIqKiBzdHJpbmcsIFBhbmdvQXR0ckxpc3QqKiBhdHRycywgaW50KiBjdXJzb3JQb3NpdGlvbikK
K3sKKyAgICAqc3RyaW5nID0gZ19zdHJkdXAoInByZWVkaXQgb2YgZG9vbSwgYnJpbmdlciBvZiBj
aGVlc2UiKTsKKyAgICAqY3Vyc29yUG9zaXRpb24gPSAzOworfQorCitURVNUKEdUSywgR3RrSW5w
dXRNZXRob2RGaWx0ZXJDb250ZXh0RXZlbnRzV2l0aG91dEtleUV2ZW50cykKK3sKKyAgICBUZXN0
SW5wdXRNZXRob2RGaWx0ZXIgaW5wdXRNZXRob2RGaWx0ZXI7CisKKyAgICAvLyBUaGlzIGlzIGEg
Yml0IG9mIGEgaGFjayB0byBhdm9pZCBtb2NraW5nIG91dCB0aGUgZW50aXJlIElucHV0TWV0aG9k
Q29udGV4dCwgYnkKKyAgICAvLyBzaW1wbHkgcmVwbGFjaW5nIHRoZSBnZXRfcHJlZWRpdF9zdHJp
bmcgdmlydHVhbCBtZXRob2QgZm9yIHRoZSBsZW5ndGggb2YgdGhpcyB0ZXN0LgorICAgIEd0a0lN
Q29udGV4dCogY29udGV4dCA9IGlucHV0TWV0aG9kRmlsdGVyLmNvbnRleHQoKTsKKyAgICBHdGtJ
TUNvbnRleHRDbGFzcyogY29udGV4dENsYXNzID0gR1RLX0lNX0NPTlRFWFRfR0VUX0NMQVNTKGNv
bnRleHQpOworICAgIEdldFByZWVkaXRTdHJpbmdDYWxsYmFjayBwcmV2aW91c0NhbGxiYWNrID0g
Y29udGV4dENsYXNzLT5nZXRfcHJlZWRpdF9zdHJpbmc7CisgICAgY29udGV4dENsYXNzLT5nZXRf
cHJlZWRpdF9zdHJpbmcgPSB0ZW1wb3JhcnlHZXRQcmVlZGl0U3RyaW5nT3ZlcnJpZGU7CisKKyAg
ICBnX3NpZ25hbF9lbWl0X2J5X25hbWUoY29udGV4dCwgInByZWVkaXQtY2hhbmdlZCIpOworICAg
IGdfc2lnbmFsX2VtaXRfYnlfbmFtZShjb250ZXh0LCAiY29tbWl0IiwgImNvbW1pdCB0ZXh0Iik7
CisKKyAgICBjb250ZXh0Q2xhc3MtPmdldF9wcmVlZGl0X3N0cmluZyA9IHByZXZpb3VzQ2FsbGJh
Y2s7CisKKyAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZXZlbnRzID0gaW5wdXRNZXRob2RGaWx0
ZXIuZXZlbnRzKCk7CisgICAgQVNTRVJUX0VRKDYsIGV2ZW50cy5zaXplKCkpOworICAgIEFTU0VS
VF9FUShTdHJpbmcoInNlbmRLZXlFdmVudFdpdGhDb21wb3NpdGlvblJlc3VsdHMgdHlwZT1wcmVz
cyBrZXljb2RlPTE2Nzc3MjE1IChmYWtlZCkiKSwgZXZlbnRzWzBdKTsKKyAgICBBU1NFUlRfRVEo
U3RyaW5nKCJzZXRQcmVlZGl0IHRleHQ9J3ByZWVkaXQgb2YgZG9vbSwgYnJpbmdlciBvZiBjaGVl
c2UnIGN1cnNvck9mZnNldD0zIiksIGV2ZW50c1sxXSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygi
c2VuZFNpbXBsZUtleUV2ZW50IHR5cGU9cmVsZWFzZSBrZXljb2RlPWZmZmZmZiAoZmFrZWQpIiks
IGV2ZW50c1syXSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygic2VuZEtleUV2ZW50V2l0aENvbXBv
c2l0aW9uUmVzdWx0cyB0eXBlPXByZXNzIGtleWNvZGU9MTY3NzcyMTUgKGZha2VkKSIpLCBldmVu
dHNbM10pOworICAgIEFTU0VSVF9FUShTdHJpbmcoImNvbmZpcm1Db21wb3NpdGlvbiAnY29tbWl0
IHRleHQnIiksIGV2ZW50c1s0XSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygic2VuZFNpbXBsZUtl
eUV2ZW50IHR5cGU9cmVsZWFzZSBrZXljb2RlPWZmZmZmZiAoZmFrZWQpIiksIGV2ZW50c1s1XSk7
Cit9CisKK3N0YXRpYyBib29sIGdTYXdDb250ZXh0UmVzZXQgPSBmYWxzZTsKK3R5cGVkZWYgdm9p
ZCAoKlJlc2V0Q2FsbGJhY2spIChHdGtJTUNvbnRleHQqKTsKK3N0YXRpYyB2b2lkIHRlbXBvcmFy
eVJlc2V0T3ZlcnJpZGUoR3RrSU1Db250ZXh0KikKK3sKKyAgICBnU2F3Q29udGV4dFJlc2V0ID0g
dHJ1ZTsKK30KKworc3RhdGljIHZvaWQgdmVyaWZ5Q2FuY2VsZWRDb21wb3NpdGlvbihjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgZXZlbnRzKQoreworICAgIEFTU0VSVF9FUSgzLCBldmVudHMuc2l6ZSgp
KTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCJzZW5kS2V5RXZlbnRXaXRoQ29tcG9zaXRpb25SZXN1
bHRzIHR5cGU9cHJlc3Mga2V5Y29kZT0zOSIpLCBldmVudHNbMF0pOworICAgIEFTU0VSVF9FUShT
dHJpbmcoInNldFByZWVkaXQgdGV4dD0nJyBjdXJzb3JPZmZzZXQ9MCIpLCBldmVudHNbMV0pOwor
ICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRTaW1wbGVLZXlFdmVudCB0eXBlPXJlbGVhc2Uga2V5
Y29kZT0yNyIpLCBldmVudHNbMl0pOworICAgIEFTU0VSVChnU2F3Q29udGV4dFJlc2V0KTsKK30K
KworVEVTVChHVEssIEd0a0lucHV0TWV0aG9kRmlsdGVyQ29udGV4dEZvY3VzT3V0RHVyaW5nT25n
b2luZ0NvbXBvc2l0aW9uKQoreworICAgIFRlc3RJbnB1dE1ldGhvZEZpbHRlciBpbnB1dE1ldGhv
ZEZpbHRlcjsKKworICAgIC8vIFNlZSBjb21tZW50IGFib3ZlIGFib3V0IHRoaXMgdGVjaG5pcXVl
LgorICAgIEd0a0lNQ29udGV4dCogY29udGV4dCA9IGlucHV0TWV0aG9kRmlsdGVyLmNvbnRleHQo
KTsKKyAgICBHdGtJTUNvbnRleHRDbGFzcyogY29udGV4dENsYXNzID0gR1RLX0lNX0NPTlRFWFRf
R0VUX0NMQVNTKGNvbnRleHQpOworICAgIFJlc2V0Q2FsbGJhY2sgcHJldmlvdXNDYWxsYmFjayA9
IGNvbnRleHRDbGFzcy0+cmVzZXQ7CisgICAgY29udGV4dENsYXNzLT5yZXNldCA9IHRlbXBvcmFy
eVJlc2V0T3ZlcnJpZGU7CisKKyAgICBnU2F3Q29udGV4dFJlc2V0ID0gZmFsc2U7CisgICAgaW5w
dXRNZXRob2RGaWx0ZXIuc2VuZFByZXNzQW5kUmVsZWFzZUtleUV2ZW50UGFpclRvRmlsdGVyKEdE
S19LRVlfTXVsdGlfa2V5KTsKKyAgICBpbnB1dE1ldGhvZEZpbHRlci5zZW5kUHJlc3NBbmRSZWxl
YXNlS2V5RXZlbnRQYWlyVG9GaWx0ZXIoR0RLX0tFWV9hcG9zdHJvcGhlKTsKKyAgICBpbnB1dE1l
dGhvZEZpbHRlci5ub3RpZnlGb2N1c2VkT3V0KCk7CisKKyAgICB2ZXJpZnlDYW5jZWxlZENvbXBv
c2l0aW9uKGlucHV0TWV0aG9kRmlsdGVyLmV2ZW50cygpKTsKKworICAgIGNvbnRleHRDbGFzcy0+
cmVzZXQgPSBwcmV2aW91c0NhbGxiYWNrOworfQorCitURVNUKEdUSywgR3RrSW5wdXRNZXRob2RG
aWx0ZXJDb250ZXh0TW91c2VDbGlja0R1cmluZ09uZ29pbmdDb21wb3NpdGlvbikKK3sKKyAgICBU
ZXN0SW5wdXRNZXRob2RGaWx0ZXIgaW5wdXRNZXRob2RGaWx0ZXI7CisKKyAgICAvLyBTZWUgY29t
bWVudCBhYm92ZSBhYm91dCB0aGlzIHRlY2huaXF1ZS4KKyAgICBHdGtJTUNvbnRleHQqIGNvbnRl
eHQgPSBpbnB1dE1ldGhvZEZpbHRlci5jb250ZXh0KCk7CisgICAgR3RrSU1Db250ZXh0Q2xhc3Mq
IGNvbnRleHRDbGFzcyA9IEdUS19JTV9DT05URVhUX0dFVF9DTEFTUyhjb250ZXh0KTsKKyAgICBS
ZXNldENhbGxiYWNrIHByZXZpb3VzQ2FsbGJhY2sgPSBjb250ZXh0Q2xhc3MtPnJlc2V0OworICAg
IGNvbnRleHRDbGFzcy0+cmVzZXQgPSB0ZW1wb3JhcnlSZXNldE92ZXJyaWRlOworCisgICAgZ1Nh
d0NvbnRleHRSZXNldCA9IGZhbHNlOworICAgIGlucHV0TWV0aG9kRmlsdGVyLnNlbmRQcmVzc0Fu
ZFJlbGVhc2VLZXlFdmVudFBhaXJUb0ZpbHRlcihHREtfS0VZX011bHRpX2tleSk7CisgICAgaW5w
dXRNZXRob2RGaWx0ZXIuc2VuZFByZXNzQW5kUmVsZWFzZUtleUV2ZW50UGFpclRvRmlsdGVyKEdE
S19LRVlfYXBvc3Ryb3BoZSk7CisgICAgaW5wdXRNZXRob2RGaWx0ZXIubm90aWZ5TW91c2VCdXR0
b25QcmVzcygpOworCisgICAgdmVyaWZ5Q2FuY2VsZWRDb21wb3NpdGlvbihpbnB1dE1ldGhvZEZp
bHRlci5ldmVudHMoKSk7CisKKyAgICBjb250ZXh0Q2xhc3MtPnJlc2V0ID0gcHJldmlvdXNDYWxs
YmFjazsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9ndGsvSW5wdXRNZXRob2RGaWx0ZXIuY3BwIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9ndGsvSW5wdXRNZXRob2RGaWx0ZXIuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0YWFiN2MwLi4wMDAwMDAwCi0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvZ3RrL0lucHV0TWV0aG9kRmlsdGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDMxMCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIkd0a0lucHV0TWV0aG9kRmls
dGVyLmgiCi0jaW5jbHVkZSAiV1RGU3RyaW5nVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSA8Z2RrL2dk
a2tleXN5bXMuaD4KLSNpbmNsdWRlIDxndGsvZ3RrLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3Qv
R1VuaXF1ZVB0ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dSZWZQdHIuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1l
c3BhY2UgVGVzdFdlYktpdEFQSSB7Ci0KLWNsYXNzIFRlc3RJbnB1dE1ldGhvZEZpbHRlciA6IHB1
YmxpYyBHdGtJbnB1dE1ldGhvZEZpbHRlciB7Ci1wdWJsaWM6Ci0gICAgVGVzdElucHV0TWV0aG9k
RmlsdGVyKCkKLSAgICAgICAgOiBtX3Rlc3RXaW5kb3coZ3RrX3dpbmRvd19uZXcoR1RLX1dJTkRP
V19QT1BVUCkpCi0gICAgewotICAgICAgICBndGtfd2lkZ2V0X3Nob3cobV90ZXN0V2luZG93Lmdl
dCgpKTsKLSAgICAgICAgc2V0V2lkZ2V0KG1fdGVzdFdpbmRvdy5nZXQoKSk7Ci0KLSAgICAgICAg
Ly8gRm9jdXMgaW4gaXMgbmVjZXNzYXJ5IHRvIGFjdGl2YXRlIHRoZSBkZWZhdWx0IGlucHV0IG1l
dGhvZCBpbiB0aGUgbXVsdGljb250ZXh0LgotICAgICAgICBub3RpZnlGb2N1c2VkSW4oKTsKLSAg
ICB9Ci0KLSAgICBWZWN0b3I8U3RyaW5nPiYgZXZlbnRzKCkgeyByZXR1cm4gbV9ldmVudHM7IH0K
LQotICAgIHZvaWQgc2VuZEtleUV2ZW50VG9GaWx0ZXIodW5zaWduZWQgaW50IGdka0tleVZhbHVl
LCBHZGtFdmVudFR5cGUgdHlwZSwgdW5zaWduZWQgaW50IG1vZGlmaWVycyA9IDApCi0gICAgewot
ICAgICAgICBHZGtFdmVudCogZXZlbnQgPSBnZGtfZXZlbnRfbmV3KHR5cGUpOwotICAgICAgICBl
dmVudC0+a2V5LmtleXZhbCA9IGdka0tleVZhbHVlOwotICAgICAgICBldmVudC0+a2V5LnN0YXRl
ID0gbW9kaWZpZXJzOwotICAgICAgICBldmVudC0+a2V5LndpbmRvdyA9IGd0a193aWRnZXRfZ2V0
X3dpbmRvdyhtX3Rlc3RXaW5kb3cuZ2V0KCkpOwotICAgICAgICBldmVudC0+a2V5LnRpbWUgPSBH
REtfQ1VSUkVOVF9USU1FOwotICAgICAgICBnX29iamVjdF9yZWYoZXZlbnQtPmtleS53aW5kb3cp
OwotCi0jaWZuZGVmIEdUS19BUElfVkVSU0lPTl8yCi0gICAgICAgIGdka19ldmVudF9zZXRfZGV2
aWNlKGV2ZW50LCBnZGtfZGV2aWNlX21hbmFnZXJfZ2V0X2NsaWVudF9wb2ludGVyKGdka19kaXNw
bGF5X2dldF9kZXZpY2VfbWFuYWdlcihnZGtfZGlzcGxheV9nZXRfZGVmYXVsdCgpKSkpOwotI2Vu
ZGlmCi0KLSAgICAgICAgR1VuaXF1ZU91dFB0cjxHZGtLZXltYXBLZXk+IGtleXM7Ci0gICAgICAg
IGdpbnQgbktleXM7Ci0gICAgICAgIGlmIChnZGtfa2V5bWFwX2dldF9lbnRyaWVzX2Zvcl9rZXl2
YWwoZ2RrX2tleW1hcF9nZXRfZGVmYXVsdCgpLCBnZGtLZXlWYWx1ZSwgJmtleXMub3V0UHRyKCks
ICZuS2V5cykpCi0gICAgICAgICAgICBldmVudC0+a2V5LmhhcmR3YXJlX2tleWNvZGUgPSBrZXlz
LmdldCgpWzBdLmtleWNvZGU7Ci0KLSAgICAgICAgZmlsdGVyS2V5RXZlbnQoJmV2ZW50LT5rZXkp
OwotICAgICAgICBnZGtfZXZlbnRfZnJlZShldmVudCk7Ci0gICAgfQotCi0gICAgdm9pZCBzZW5k
UHJlc3NBbmRSZWxlYXNlS2V5RXZlbnRQYWlyVG9GaWx0ZXIodW5zaWduZWQgaW50IGdka0tleVZh
bHVlLCB1bnNpZ25lZCBpbnQgbW9kaWZpZXJzID0gMCkKLSAgICB7Ci0gICAgICAgIHNlbmRLZXlF
dmVudFRvRmlsdGVyKGdka0tleVZhbHVlLCBHREtfS0VZX1BSRVNTLCBtb2RpZmllcnMpOwotICAg
ICAgICBzZW5kS2V5RXZlbnRUb0ZpbHRlcihnZGtLZXlWYWx1ZSwgR0RLX0tFWV9SRUxFQVNFLCBt
b2RpZmllcnMpOwotICAgIH0KLQotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgYm9vbCBzZW5kU2lt
cGxlS2V5RXZlbnQoR2RrRXZlbnRLZXkqIGV2ZW50LCBXVEY6OlN0cmluZyBldmVudFN0cmluZywg
RXZlbnRGYWtlZEZvckNvbXBvc2l0aW9uIGZha2VkKQotICAgIHsKLSAgICAgICAgY29uc3QgY2hh
ciogZXZlbnRUeXBlID0gZXZlbnQtPnR5cGUgPT0gR0RLX0tFWV9SRUxFQVNFID8gInJlbGVhc2Ui
IDogInByZXNzIjsKLSAgICAgICAgY29uc3QgY2hhciogZmFrZWRTdHJpbmcgPSBmYWtlZCA9PSBF
dmVudEZha2VkID8gIiAoZmFrZWQpIiA6ICIiOwotICAgICAgICBpZiAoIWV2ZW50U3RyaW5nLmlz
TnVsbCgpKQotICAgICAgICAgICAgbV9ldmVudHMuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCJzZW5k
U2ltcGxlS2V5RXZlbnQgdHlwZT0lcyBrZXljb2RlPSV4IHRleHQ9JyVzJyVzIiwgZXZlbnRUeXBl
LCBldmVudC0+a2V5dmFsLCBldmVudFN0cmluZy51dGY4KCkuZGF0YSgpLCBmYWtlZFN0cmluZykp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2V2ZW50cy5hcHBlbmQoU3RyaW5nOjpmb3Jt
YXQoInNlbmRTaW1wbGVLZXlFdmVudCB0eXBlPSVzIGtleWNvZGU9JXglcyIsIGV2ZW50VHlwZSwg
ZXZlbnQtPmtleXZhbCwgZmFrZWRTdHJpbmcpKTsKLQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgc2VuZEtleUV2ZW50V2l0aENvbXBvc2l0aW9uUmVzdWx0
cyhHZGtFdmVudEtleSogZXZlbnQsIFJlc3VsdHNUb1NlbmQgcmVzdWx0c1RvU2VuZCwgRXZlbnRG
YWtlZEZvckNvbXBvc2l0aW9uIGZha2VkKQotICAgIHsKLSAgICAgICAgY29uc3QgY2hhciogZXZl
bnRUeXBlID0gZXZlbnQtPnR5cGUgPT0gR0RLX0tFWV9SRUxFQVNFID8gInJlbGVhc2UiIDogInBy
ZXNzIjsKLSAgICAgICAgY29uc3QgY2hhciogZmFrZWRTdHJpbmcgPSBmYWtlZCA9PSBFdmVudEZh
a2VkID8gIiAoZmFrZWQpIiA6ICIiOwotICAgICAgICBtX2V2ZW50cy5hcHBlbmQoU3RyaW5nOjpm
b3JtYXQoInNlbmRLZXlFdmVudFdpdGhDb21wb3NpdGlvblJlc3VsdHMgdHlwZT0lcyBrZXljb2Rl
PSV1JXMiLCBldmVudFR5cGUsIGV2ZW50LT5rZXl2YWwsIGZha2VkU3RyaW5nKSk7Ci0KLSAgICAg
ICAgaWYgKHJlc3VsdHNUb1NlbmQgJiBDb21wb3NpdGlvbiAmJiAhbV9jb25maXJtZWRDb21wb3Np
dGlvbi5pc051bGwoKSkKLSAgICAgICAgICAgIGNvbmZpcm1Db21wb3NpdGlvblRleHQobV9jb25m
aXJtZWRDb21wb3NpdGlvbik7Ci0gICAgICAgIGlmIChyZXN1bHRzVG9TZW5kICYgUHJlZWRpdCAm
JiAhbV9wcmVlZGl0LmlzTnVsbCgpKQotICAgICAgICAgICAgc2V0UHJlZWRpdChtX3ByZWVkaXQs
IG1fY3Vyc29yT2Zmc2V0KTsKLQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICB2
aXJ0dWFsIGJvb2wgY2FuRWRpdCgpCi0gICAgewotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
Ci0KLSAgICB2aXJ0dWFsIHZvaWQgY29uZmlybUNvbXBvc2l0aW9uVGV4dChTdHJpbmcgdGV4dCkK
LSAgICB7Ci0gICAgICAgIG1fZXZlbnRzLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiY29uZmlybUNv
bXBvc2l0aW9uICclcyciLCB0ZXh0LnV0ZjgoKS5kYXRhKCkpKTsKLSAgICB9Ci0KLSAgICB2aXJ0
dWFsIHZvaWQgY29uZmlybUN1cnJlbnRDb21wb3NpdGlvbigpCi0gICAgewotICAgICAgICBtX2V2
ZW50cy5hcHBlbmQoU3RyaW5nKCJjb25maXJtQ3VycmVudGNvbXBvc2l0aW9uIikpOwotICAgIH0K
LQotICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxDdXJyZW50Q29tcG9zaXRpb24oKQotICAgIHsKLSAg
ICAgICAgbV9ldmVudHMuYXBwZW5kKFN0cmluZygiY2FuY2VsQ3VycmVudENvbXBvc2l0aW9uIikp
OwotICAgIH0KLQotICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVlZGl0KFN0cmluZyBwcmVlZGl0LCBp
bnQgY3Vyc29yT2Zmc2V0KQotICAgIHsKLSAgICAgICAgbV9ldmVudHMuYXBwZW5kKFN0cmluZzo6
Zm9ybWF0KCJzZXRQcmVlZGl0IHRleHQ9JyVzJyBjdXJzb3JPZmZzZXQ9JWkiLCBwcmVlZGl0LnV0
ZjgoKS5kYXRhKCksIGN1cnNvck9mZnNldCkpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBHUmVm
UHRyPEd0a1dpZGdldD4gbV90ZXN0V2luZG93OwotICAgIFZlY3RvcjxTdHJpbmc+IG1fZXZlbnRz
OwotfTsKLQotVEVTVChHVEssIEd0a0lucHV0TWV0aG9kRmlsdGVyU2ltcGxlKQotewotICAgIFRl
c3RJbnB1dE1ldGhvZEZpbHRlciBpbnB1dE1ldGhvZEZpbHRlcjsKLSAgICBpbnB1dE1ldGhvZEZp
bHRlci5zZW5kUHJlc3NBbmRSZWxlYXNlS2V5RXZlbnRQYWlyVG9GaWx0ZXIoR0RLX0tFWV9nKTsK
LSAgICBpbnB1dE1ldGhvZEZpbHRlci5zZW5kUHJlc3NBbmRSZWxlYXNlS2V5RXZlbnRQYWlyVG9G
aWx0ZXIoR0RLX0tFWV90KTsKLSAgICBpbnB1dE1ldGhvZEZpbHRlci5zZW5kUHJlc3NBbmRSZWxl
YXNlS2V5RXZlbnRQYWlyVG9GaWx0ZXIoR0RLX0tFWV9rKTsKLQotICAgIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBldmVudHMgPSBpbnB1dE1ldGhvZEZpbHRlci5ldmVudHMoKTsKLQotICAgIEFTU0VS
VF9FUSg2LCBldmVudHMuc2l6ZSgpKTsKLSAgICBBU1NFUlRfRVEoU3RyaW5nKCJzZW5kU2ltcGxl
S2V5RXZlbnQgdHlwZT1wcmVzcyBrZXljb2RlPTY3IHRleHQ9J2cnIiksIGV2ZW50c1swXSk7Ci0g
ICAgQVNTRVJUX0VRKFN0cmluZygic2VuZFNpbXBsZUtleUV2ZW50IHR5cGU9cmVsZWFzZSBrZXlj
b2RlPTY3IiksIGV2ZW50c1sxXSk7Ci0gICAgQVNTRVJUX0VRKFN0cmluZygic2VuZFNpbXBsZUtl
eUV2ZW50IHR5cGU9cHJlc3Mga2V5Y29kZT03NCB0ZXh0PSd0JyIpLCBldmVudHNbMl0pOwotICAg
IEFTU0VSVF9FUShTdHJpbmcoInNlbmRTaW1wbGVLZXlFdmVudCB0eXBlPXJlbGVhc2Uga2V5Y29k
ZT03NCIpLCBldmVudHNbM10pOwotICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRTaW1wbGVLZXlF
dmVudCB0eXBlPXByZXNzIGtleWNvZGU9NmIgdGV4dD0nayciKSwgZXZlbnRzWzRdKTsKLSAgICBB
U1NFUlRfRVEoU3RyaW5nKCJzZW5kU2ltcGxlS2V5RXZlbnQgdHlwZT1yZWxlYXNlIGtleWNvZGU9
NmIiKSwgZXZlbnRzWzVdKTsKLX0KLQotVEVTVChHVEssIEd0a0lucHV0TWV0aG9kRmlsdGVyVW5p
Y29kZVNlcXVlbmNlKQotewotICAgIFRlc3RJbnB1dE1ldGhvZEZpbHRlciBpbnB1dE1ldGhvZEZp
bHRlcjsKLQotICAgIC8vIFRoaXMgaXMgc2ltcGxlIHVuaWNvZGUgaGV4IGVudHJ5IG9mIHRoZSBj
aGFyYWN0ZXJzLCB1LCAwLCAwLCBmLCA0IHByZXNzZWQgd2l0aAotICAgIC8vIHRoZSBzaGlmdCBh
bmQgY29udHJvbHMga2V5cyBoZWxkIGRvd24uIEluIHJlYWxpdHksIHRoZXNlIHZhbHVlcyBhcmUg
bm90IHR5cGljYWwKLSAgICAvLyBvZiBhbiBhY3R1YWwgaGV4IGVudHJ5LCBiZWNhdXNlIHRoZXkn
ZCBiZSB0cmFuc2Zvcm1lZCBieSB0aGUgc2hpZnQgbW9kaWZpZXIgYWNjb3JkaW5nCi0gICAgLy8g
dG8gdGhlIGtleWJvYXJkIGxheW91dC4gRm9yIGluc3RhbmNlLCBvbiBhIFVTIGtleWJvYXJkIGEg
MCB3aXRoIHRoZSBzaGlmdCBrZXkgcHJlc3NlZAotICAgIC8vIGlzIGEgcmlnaHQgcGFyZW50aGVz
aXMuIFVzaW5nIHRoZXNlIHZhbHVlcyBwcmV2ZW50cyBoYXZpbmcgdG8gd29yayBvdXQgd2hhdCB0
aGUKLSAgICAvLyB0cmFuc2Zvcm1lZCBjaGFyYWN0ZXJzIGFyZSBiYXNlZCBvbiB0aGUgY3VycmVu
dCBrZXlib2FyZCBsYXlvdXQuCi0gICAgaW5wdXRNZXRob2RGaWx0ZXIuc2VuZEtleUV2ZW50VG9G
aWx0ZXIoR0RLX0tFWV9Db250cm9sX0wsIEdES19LRVlfUFJFU1MpOwotICAgIGlucHV0TWV0aG9k
RmlsdGVyLnNlbmRLZXlFdmVudFRvRmlsdGVyKEdES19LRVlfU2hpZnRfTCwgR0RLX0tFWV9QUkVT
UywgR0RLX0NPTlRST0xfTUFTSyk7Ci0KLSAgICBpbnB1dE1ldGhvZEZpbHRlci5zZW5kUHJlc3NB
bmRSZWxlYXNlS2V5RXZlbnRQYWlyVG9GaWx0ZXIoR0RLX0tFWV9VLCBHREtfU0hJRlRfTUFTSyB8
IEdES19DT05UUk9MX01BU0spOwotICAgIGlucHV0TWV0aG9kRmlsdGVyLnNlbmRQcmVzc0FuZFJl
bGVhc2VLZXlFdmVudFBhaXJUb0ZpbHRlcihHREtfS0VZXzAsIEdES19TSElGVF9NQVNLIHwgR0RL
X0NPTlRST0xfTUFTSyk7Ci0gICAgaW5wdXRNZXRob2RGaWx0ZXIuc2VuZFByZXNzQW5kUmVsZWFz
ZUtleUV2ZW50UGFpclRvRmlsdGVyKEdES19LRVlfMCwgR0RLX1NISUZUX01BU0sgfCBHREtfQ09O
VFJPTF9NQVNLKTsKLSAgICBpbnB1dE1ldGhvZEZpbHRlci5zZW5kUHJlc3NBbmRSZWxlYXNlS2V5
RXZlbnRQYWlyVG9GaWx0ZXIoR0RLX0tFWV9GLCBHREtfU0hJRlRfTUFTSyB8IEdES19DT05UUk9M
X01BU0spOwotICAgIGlucHV0TWV0aG9kRmlsdGVyLnNlbmRQcmVzc0FuZFJlbGVhc2VLZXlFdmVu
dFBhaXJUb0ZpbHRlcihHREtfS0VZXzQsIEdES19TSElGVF9NQVNLIHwgR0RLX0NPTlRST0xfTUFT
Syk7Ci0KLSAgICBpbnB1dE1ldGhvZEZpbHRlci5zZW5kS2V5RXZlbnRUb0ZpbHRlcihHREtfS0VZ
X1NoaWZ0X0wsIEdES19LRVlfUkVMRUFTRSwgR0RLX0NPTlRST0xfTUFTSyB8IEdES19TSElGVF9N
QVNLKTsKLSAgICBpbnB1dE1ldGhvZEZpbHRlci5zZW5kS2V5RXZlbnRUb0ZpbHRlcihHREtfS0VZ
X0NvbnRyb2xfTCwgR0RLX0tFWV9SRUxFQVNFLCBHREtfQ09OVFJPTF9NQVNLKTsKLQotICAgIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBldmVudHMgPSBpbnB1dE1ldGhvZEZpbHRlci5ldmVudHMoKTsK
LSAgICBBU1NFUlRfRVEoMjEsIGV2ZW50cy5zaXplKCkpOwotICAgIEFTU0VSVF9FUShTdHJpbmco
InNlbmRTaW1wbGVLZXlFdmVudCB0eXBlPXByZXNzIGtleWNvZGU9ZmZlMyIpLCBldmVudHNbMF0p
OwotICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRTaW1wbGVLZXlFdmVudCB0eXBlPXByZXNzIGtl
eWNvZGU9ZmZlMSIpLCBldmVudHNbMV0pOwotICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRLZXlF
dmVudFdpdGhDb21wb3NpdGlvblJlc3VsdHMgdHlwZT1wcmVzcyBrZXljb2RlPTg1IiksIGV2ZW50
c1syXSk7Ci0gICAgQVNTRVJUX0VRKFN0cmluZygic2V0UHJlZWRpdCB0ZXh0PSd1JyBjdXJzb3JP
ZmZzZXQ9MSIpLCBldmVudHNbM10pOwotICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRTaW1wbGVL
ZXlFdmVudCB0eXBlPXJlbGVhc2Uga2V5Y29kZT01NSIpLCBldmVudHNbNF0pOwotICAgIEFTU0VS
VF9FUShTdHJpbmcoInNlbmRLZXlFdmVudFdpdGhDb21wb3NpdGlvblJlc3VsdHMgdHlwZT1wcmVz
cyBrZXljb2RlPTQ4IiksIGV2ZW50c1s1XSk7Ci0gICAgQVNTRVJUX0VRKFN0cmluZygic2V0UHJl
ZWRpdCB0ZXh0PSd1MCcgY3Vyc29yT2Zmc2V0PTIiKSwgZXZlbnRzWzZdKTsKLSAgICBBU1NFUlRf
RVEoU3RyaW5nKCJzZW5kU2ltcGxlS2V5RXZlbnQgdHlwZT1yZWxlYXNlIGtleWNvZGU9MzAiKSwg
ZXZlbnRzWzddKTsKLSAgICBBU1NFUlRfRVEoU3RyaW5nKCJzZW5kS2V5RXZlbnRXaXRoQ29tcG9z
aXRpb25SZXN1bHRzIHR5cGU9cHJlc3Mga2V5Y29kZT00OCIpLCBldmVudHNbOF0pOwotICAgIEFT
U0VSVF9FUShTdHJpbmcoInNldFByZWVkaXQgdGV4dD0ndTAwJyBjdXJzb3JPZmZzZXQ9MyIpLCBl
dmVudHNbOV0pOwotICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRTaW1wbGVLZXlFdmVudCB0eXBl
PXJlbGVhc2Uga2V5Y29kZT0zMCIpLCBldmVudHNbMTBdKTsKLSAgICBBU1NFUlRfRVEoU3RyaW5n
KCJzZW5kS2V5RXZlbnRXaXRoQ29tcG9zaXRpb25SZXN1bHRzIHR5cGU9cHJlc3Mga2V5Y29kZT03
MCIpLCBldmVudHNbMTFdKTsKLSAgICBBU1NFUlRfRVEoU3RyaW5nKCJzZXRQcmVlZGl0IHRleHQ9
J3UwMEYnIGN1cnNvck9mZnNldD00IiksIGV2ZW50c1sxMl0pOwotICAgIEFTU0VSVF9FUShTdHJp
bmcoInNlbmRTaW1wbGVLZXlFdmVudCB0eXBlPXJlbGVhc2Uga2V5Y29kZT00NiIpLCBldmVudHNb
MTNdKTsKLSAgICBBU1NFUlRfRVEoU3RyaW5nKCJzZW5kS2V5RXZlbnRXaXRoQ29tcG9zaXRpb25S
ZXN1bHRzIHR5cGU9cHJlc3Mga2V5Y29kZT01MiIpLCBldmVudHNbMTRdKTsKLSAgICBBU1NFUlRf
RVEoU3RyaW5nKCJzZXRQcmVlZGl0IHRleHQ9J3UwMEY0JyBjdXJzb3JPZmZzZXQ9NSIpLCBldmVu
dHNbMTVdKTsKLSAgICBBU1NFUlRfRVEoU3RyaW5nKCJzZW5kU2ltcGxlS2V5RXZlbnQgdHlwZT1y
ZWxlYXNlIGtleWNvZGU9MzQiKSwgZXZlbnRzWzE2XSk7Ci0gICAgQVNTRVJUX0VRKFN0cmluZygi
Y29uZmlybUNvbXBvc2l0aW9uICfDtCciKSwgZXZlbnRzWzE3XSk7Ci0gICAgQVNTRVJUX0VRKFN0
cmluZygic2V0UHJlZWRpdCB0ZXh0PScnIGN1cnNvck9mZnNldD0wIiksIGV2ZW50c1sxOF0pOwot
ICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRTaW1wbGVLZXlFdmVudCB0eXBlPXJlbGVhc2Uga2V5
Y29kZT1mZmUxIiksIGV2ZW50c1sxOV0pOwotICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRTaW1w
bGVLZXlFdmVudCB0eXBlPXJlbGVhc2Uga2V5Y29kZT1mZmUzIiksIGV2ZW50c1syMF0pOwotfQot
Ci1URVNUKEdUSywgR3RrSW5wdXRNZXRob2RGaWx0ZXJDb21wb3NlS2V5KQotewotICAgIFRlc3RJ
bnB1dE1ldGhvZEZpbHRlciBpbnB1dE1ldGhvZEZpbHRlcjsKLQotICAgIGlucHV0TWV0aG9kRmls
dGVyLnNlbmRQcmVzc0FuZFJlbGVhc2VLZXlFdmVudFBhaXJUb0ZpbHRlcihHREtfS0VZX011bHRp
X2tleSk7Ci0gICAgaW5wdXRNZXRob2RGaWx0ZXIuc2VuZFByZXNzQW5kUmVsZWFzZUtleUV2ZW50
UGFpclRvRmlsdGVyKEdES19LRVlfYXBvc3Ryb3BoZSk7Ci0gICAgaW5wdXRNZXRob2RGaWx0ZXIu
c2VuZFByZXNzQW5kUmVsZWFzZUtleUV2ZW50UGFpclRvRmlsdGVyKEdES19LRVlfbyk7Ci0KLSAg
ICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZXZlbnRzID0gaW5wdXRNZXRob2RGaWx0ZXIuZXZlbnRz
KCk7Ci0gICAgQVNTRVJUX0VRKDUsIGV2ZW50cy5zaXplKCkpOwotICAgIEFTU0VSVF9FUShTdHJp
bmcoInNlbmRLZXlFdmVudFdpdGhDb21wb3NpdGlvblJlc3VsdHMgdHlwZT1wcmVzcyBrZXljb2Rl
PTM5IiksIGV2ZW50c1swXSk7Ci0gICAgQVNTRVJUX0VRKFN0cmluZygic2V0UHJlZWRpdCB0ZXh0
PScnIGN1cnNvck9mZnNldD0wIiksIGV2ZW50c1sxXSk7Ci0gICAgQVNTRVJUX0VRKFN0cmluZygi
c2VuZFNpbXBsZUtleUV2ZW50IHR5cGU9cmVsZWFzZSBrZXljb2RlPTI3IiksIGV2ZW50c1syXSk7
Ci0gICAgQVNTRVJUX0VRKFN0cmluZygic2VuZFNpbXBsZUtleUV2ZW50IHR5cGU9cHJlc3Mga2V5
Y29kZT02ZiB0ZXh0PSfDsyciKSwgZXZlbnRzWzNdKTsKLSAgICBBU1NFUlRfRVEoU3RyaW5nKCJz
ZW5kU2ltcGxlS2V5RXZlbnQgdHlwZT1yZWxlYXNlIGtleWNvZGU9NmYiKSwgZXZlbnRzWzRdKTsK
LX0KLQotdHlwZWRlZiB2b2lkICgqR2V0UHJlZWRpdFN0cmluZ0NhbGxiYWNrKSAoR3RrSU1Db250
ZXh0KiwgZ2NoYXIqKiwgUGFuZ29BdHRyTGlzdCoqLCBpbnQqKTsKLXN0YXRpYyB2b2lkIHRlbXBv
cmFyeUdldFByZWVkaXRTdHJpbmdPdmVycmlkZShHdGtJTUNvbnRleHQqLCBjaGFyKiogc3RyaW5n
LCBQYW5nb0F0dHJMaXN0KiogYXR0cnMsIGludCogY3Vyc29yUG9zaXRpb24pCi17Ci0gICAgKnN0
cmluZyA9IGdfc3RyZHVwKCJwcmVlZGl0IG9mIGRvb20sIGJyaW5nZXIgb2YgY2hlZXNlIik7Ci0g
ICAgKmN1cnNvclBvc2l0aW9uID0gMzsKLX0KLQotVEVTVChHVEssIEd0a0lucHV0TWV0aG9kRmls
dGVyQ29udGV4dEV2ZW50c1dpdGhvdXRLZXlFdmVudHMpCi17Ci0gICAgVGVzdElucHV0TWV0aG9k
RmlsdGVyIGlucHV0TWV0aG9kRmlsdGVyOwotCi0gICAgLy8gVGhpcyBpcyBhIGJpdCBvZiBhIGhh
Y2sgdG8gYXZvaWQgbW9ja2luZyBvdXQgdGhlIGVudGlyZSBJbnB1dE1ldGhvZENvbnRleHQsIGJ5
Ci0gICAgLy8gc2ltcGx5IHJlcGxhY2luZyB0aGUgZ2V0X3ByZWVkaXRfc3RyaW5nIHZpcnR1YWwg
bWV0aG9kIGZvciB0aGUgbGVuZ3RoIG9mIHRoaXMgdGVzdC4KLSAgICBHdGtJTUNvbnRleHQqIGNv
bnRleHQgPSBpbnB1dE1ldGhvZEZpbHRlci5jb250ZXh0KCk7Ci0gICAgR3RrSU1Db250ZXh0Q2xh
c3MqIGNvbnRleHRDbGFzcyA9IEdUS19JTV9DT05URVhUX0dFVF9DTEFTUyhjb250ZXh0KTsKLSAg
ICBHZXRQcmVlZGl0U3RyaW5nQ2FsbGJhY2sgcHJldmlvdXNDYWxsYmFjayA9IGNvbnRleHRDbGFz
cy0+Z2V0X3ByZWVkaXRfc3RyaW5nOwotICAgIGNvbnRleHRDbGFzcy0+Z2V0X3ByZWVkaXRfc3Ry
aW5nID0gdGVtcG9yYXJ5R2V0UHJlZWRpdFN0cmluZ092ZXJyaWRlOwotCi0gICAgZ19zaWduYWxf
ZW1pdF9ieV9uYW1lKGNvbnRleHQsICJwcmVlZGl0LWNoYW5nZWQiKTsKLSAgICBnX3NpZ25hbF9l
bWl0X2J5X25hbWUoY29udGV4dCwgImNvbW1pdCIsICJjb21taXQgdGV4dCIpOwotCi0gICAgY29u
dGV4dENsYXNzLT5nZXRfcHJlZWRpdF9zdHJpbmcgPSBwcmV2aW91c0NhbGxiYWNrOwotCi0gICAg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGV2ZW50cyA9IGlucHV0TWV0aG9kRmlsdGVyLmV2ZW50cygp
OwotICAgIEFTU0VSVF9FUSg2LCBldmVudHMuc2l6ZSgpKTsKLSAgICBBU1NFUlRfRVEoU3RyaW5n
KCJzZW5kS2V5RXZlbnRXaXRoQ29tcG9zaXRpb25SZXN1bHRzIHR5cGU9cHJlc3Mga2V5Y29kZT0x
Njc3NzIxNSAoZmFrZWQpIiksIGV2ZW50c1swXSk7Ci0gICAgQVNTRVJUX0VRKFN0cmluZygic2V0
UHJlZWRpdCB0ZXh0PSdwcmVlZGl0IG9mIGRvb20sIGJyaW5nZXIgb2YgY2hlZXNlJyBjdXJzb3JP
ZmZzZXQ9MyIpLCBldmVudHNbMV0pOwotICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRTaW1wbGVL
ZXlFdmVudCB0eXBlPXJlbGVhc2Uga2V5Y29kZT1mZmZmZmYgKGZha2VkKSIpLCBldmVudHNbMl0p
OwotICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRLZXlFdmVudFdpdGhDb21wb3NpdGlvblJlc3Vs
dHMgdHlwZT1wcmVzcyBrZXljb2RlPTE2Nzc3MjE1IChmYWtlZCkiKSwgZXZlbnRzWzNdKTsKLSAg
ICBBU1NFUlRfRVEoU3RyaW5nKCJjb25maXJtQ29tcG9zaXRpb24gJ2NvbW1pdCB0ZXh0JyIpLCBl
dmVudHNbNF0pOwotICAgIEFTU0VSVF9FUShTdHJpbmcoInNlbmRTaW1wbGVLZXlFdmVudCB0eXBl
PXJlbGVhc2Uga2V5Y29kZT1mZmZmZmYgKGZha2VkKSIpLCBldmVudHNbNV0pOwotfQotCi1zdGF0
aWMgYm9vbCBnU2F3Q29udGV4dFJlc2V0ID0gZmFsc2U7Ci10eXBlZGVmIHZvaWQgKCpSZXNldENh
bGxiYWNrKSAoR3RrSU1Db250ZXh0Kik7Ci1zdGF0aWMgdm9pZCB0ZW1wb3JhcnlSZXNldE92ZXJy
aWRlKEd0a0lNQ29udGV4dCopCi17Ci0gICAgZ1Nhd0NvbnRleHRSZXNldCA9IHRydWU7Ci19Ci0K
LXN0YXRpYyB2b2lkIHZlcmlmeUNhbmNlbGVkQ29tcG9zaXRpb24oY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGV2ZW50cykKLXsKLSAgICBBU1NFUlRfRVEoMywgZXZlbnRzLnNpemUoKSk7Ci0gICAgQVNT
RVJUX0VRKFN0cmluZygic2VuZEtleUV2ZW50V2l0aENvbXBvc2l0aW9uUmVzdWx0cyB0eXBlPXBy
ZXNzIGtleWNvZGU9MzkiKSwgZXZlbnRzWzBdKTsKLSAgICBBU1NFUlRfRVEoU3RyaW5nKCJzZXRQ
cmVlZGl0IHRleHQ9JycgY3Vyc29yT2Zmc2V0PTAiKSwgZXZlbnRzWzFdKTsKLSAgICBBU1NFUlRf
RVEoU3RyaW5nKCJzZW5kU2ltcGxlS2V5RXZlbnQgdHlwZT1yZWxlYXNlIGtleWNvZGU9MjciKSwg
ZXZlbnRzWzJdKTsKLSAgICBBU1NFUlQoZ1Nhd0NvbnRleHRSZXNldCk7Ci19Ci0KLVRFU1QoR1RL
LCBHdGtJbnB1dE1ldGhvZEZpbHRlckNvbnRleHRGb2N1c091dER1cmluZ09uZ29pbmdDb21wb3Np
dGlvbikKLXsKLSAgICBUZXN0SW5wdXRNZXRob2RGaWx0ZXIgaW5wdXRNZXRob2RGaWx0ZXI7Ci0K
LSAgICAvLyBTZWUgY29tbWVudCBhYm92ZSBhYm91dCB0aGlzIHRlY2huaXF1ZS4KLSAgICBHdGtJ
TUNvbnRleHQqIGNvbnRleHQgPSBpbnB1dE1ldGhvZEZpbHRlci5jb250ZXh0KCk7Ci0gICAgR3Rr
SU1Db250ZXh0Q2xhc3MqIGNvbnRleHRDbGFzcyA9IEdUS19JTV9DT05URVhUX0dFVF9DTEFTUyhj
b250ZXh0KTsKLSAgICBSZXNldENhbGxiYWNrIHByZXZpb3VzQ2FsbGJhY2sgPSBjb250ZXh0Q2xh
c3MtPnJlc2V0OwotICAgIGNvbnRleHRDbGFzcy0+cmVzZXQgPSB0ZW1wb3JhcnlSZXNldE92ZXJy
aWRlOwotCi0gICAgZ1Nhd0NvbnRleHRSZXNldCA9IGZhbHNlOwotICAgIGlucHV0TWV0aG9kRmls
dGVyLnNlbmRQcmVzc0FuZFJlbGVhc2VLZXlFdmVudFBhaXJUb0ZpbHRlcihHREtfS0VZX011bHRp
X2tleSk7Ci0gICAgaW5wdXRNZXRob2RGaWx0ZXIuc2VuZFByZXNzQW5kUmVsZWFzZUtleUV2ZW50
UGFpclRvRmlsdGVyKEdES19LRVlfYXBvc3Ryb3BoZSk7Ci0gICAgaW5wdXRNZXRob2RGaWx0ZXIu
bm90aWZ5Rm9jdXNlZE91dCgpOwotCi0gICAgdmVyaWZ5Q2FuY2VsZWRDb21wb3NpdGlvbihpbnB1
dE1ldGhvZEZpbHRlci5ldmVudHMoKSk7Ci0KLSAgICBjb250ZXh0Q2xhc3MtPnJlc2V0ID0gcHJl
dmlvdXNDYWxsYmFjazsKLX0KLQotVEVTVChHVEssIEd0a0lucHV0TWV0aG9kRmlsdGVyQ29udGV4
dE1vdXNlQ2xpY2tEdXJpbmdPbmdvaW5nQ29tcG9zaXRpb24pCi17Ci0gICAgVGVzdElucHV0TWV0
aG9kRmlsdGVyIGlucHV0TWV0aG9kRmlsdGVyOwotCi0gICAgLy8gU2VlIGNvbW1lbnQgYWJvdmUg
YWJvdXQgdGhpcyB0ZWNobmlxdWUuCi0gICAgR3RrSU1Db250ZXh0KiBjb250ZXh0ID0gaW5wdXRN
ZXRob2RGaWx0ZXIuY29udGV4dCgpOwotICAgIEd0a0lNQ29udGV4dENsYXNzKiBjb250ZXh0Q2xh
c3MgPSBHVEtfSU1fQ09OVEVYVF9HRVRfQ0xBU1MoY29udGV4dCk7Ci0gICAgUmVzZXRDYWxsYmFj
ayBwcmV2aW91c0NhbGxiYWNrID0gY29udGV4dENsYXNzLT5yZXNldDsKLSAgICBjb250ZXh0Q2xh
c3MtPnJlc2V0ID0gdGVtcG9yYXJ5UmVzZXRPdmVycmlkZTsKLQotICAgIGdTYXdDb250ZXh0UmVz
ZXQgPSBmYWxzZTsKLSAgICBpbnB1dE1ldGhvZEZpbHRlci5zZW5kUHJlc3NBbmRSZWxlYXNlS2V5
RXZlbnRQYWlyVG9GaWx0ZXIoR0RLX0tFWV9NdWx0aV9rZXkpOwotICAgIGlucHV0TWV0aG9kRmls
dGVyLnNlbmRQcmVzc0FuZFJlbGVhc2VLZXlFdmVudFBhaXJUb0ZpbHRlcihHREtfS0VZX2Fwb3N0
cm9waGUpOwotICAgIGlucHV0TWV0aG9kRmlsdGVyLm5vdGlmeU1vdXNlQnV0dG9uUHJlc3MoKTsK
LQotICAgIHZlcmlmeUNhbmNlbGVkQ29tcG9zaXRpb24oaW5wdXRNZXRob2RGaWx0ZXIuZXZlbnRz
KCkpOwotCi0gICAgY29udGV4dENsYXNzLT5yZXNldCA9IHByZXZpb3VzQ2FsbGJhY2s7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231256</attachid>
            <date>2014-05-11 00:12:52 -0700</date>
            <delta_ts>2014-05-11 00:12:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>jsc-unit-tests.diff</filename>
            <type>text/plain</type>
            <size>3488</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmMDYx
OGE4Li5iNzhjOWNmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTQtMDUtMDkgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCisgICAgICAgIFJFR1JFU1NJT04oQ01BS0UpOiBbR1RL
XSBKYXZhU2NyaXB0Q29yZSBBUEkgdGVzdHMgYXJlIG5vdCBidWlsdCBhbnltb3JlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI3MzkKKworICAgICAg
ICBSZXZpZXdlZCBBbmRlcnMgQ2FybHNzb24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL0NN
YWtlTGlzdHMudHh0OiBBZGQgbWlzc2luZyBpbmNsdWRlcyByZXF1aXJlZCBieQorICAgICAgICB0
aGUgSlNDIHVuaXQgdGVzdHMuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5j
bWFrZTogQnJpbmcgYmFjayBKYXZhU2NyaXB0Q29yZSB1bml0IHRlc3RzLgorCisyMDE0LTA1LTA5
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKwogICAgICAgICBS
RUdSRVNTSU9OKENNQUtFKTogW0dUS10gSW5wdXRNZXRob2RGaWx0ZXIgdW5pdCB0ZXN0IGlzIG5v
dCBidWlsdAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMyNjg2CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL0NNYWtlTGlzdHMudHh0CmluZGV4IDg1NDkwZTAuLjMwMGI5
ZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ01ha2VMaXN0cy50eHQKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9DTWFrZUxpc3RzLnR4dApAQCAtMywxMiArMywyMCBAQCBzZXQo
VEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgIiR7Q01BS0VfUlVOVElNRV9P
VVRQVVRfRElSRUNUT1JZfS9UZQogCiBpbmNsdWRlX2RpcmVjdG9yaWVzKCR7Q01BS0VfQklOQVJZ
X0RJUn0KICAgICAke1RFU1RXRUJLSVRBUElfRElSfQotICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
CiAgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UKKyAgICAke0RFUklWRURfU09VUkNFU19K
QVZBU0NSSVBUQ09SRV9ESVJ9CiAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9CiAg
ICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9CiAgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0FQSQog
ICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9Gb3J3YXJkaW5nSGVhZGVycworICAgICR7SkFWQVND
UklQVENPUkVfRElSfS9hc3NlbWJsZXIKKyAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNv
ZGUKKyAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGlzYXNzZW1ibGVyCisgICAgJHtKQVZBU0NS
SVBUQ09SRV9ESVJ9L2hlYXAKKyAgICAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaml0CisgICAgJHtK
QVZBU0NSSVBUQ09SRV9ESVJ9L2xsaW50CisgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3BhcnNl
cgorICAgICR7SkFWQVNDUklQVENPUkVfRElSfS9ydW50aW1lCiAgICAgJHtUSElSRFBBUlRZX0RJ
Un0vZ3Rlc3QvaW5jbHVkZQogICAgICR7V0VCQ09SRV9ESVJ9L2VkaXRpbmcKICAgICAke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybQpAQCAtNTAsNiArNTgsMTEgQEAgc2V0KFRlc3RXZWJLaXRBUElfTElC
UkFSSUVTCiAgICAgV2ViS2l0MgogKQogCitzZXQoVGVzdEphdmFTY3JpcHRDb3JlX0xJQlJBUklF
UworICAgIGd0ZXN0CisgICAgSmF2YVNjcmlwdENvcmUKKykKKwogV0VCS0lUX0lOQ0xVREVfQ09O
RklHX0ZJTEVTX0lGX0VYSVNUUygpCiAKIGFkZF9saWJyYXJ5KFRlc3RXZWJLaXRBUElJbmplY3Rl
ZEJ1bmRsZSBTSEFSRUQKQEAgLTEzNiw2ICsxNDksMTggQEAgc2V0X3Rlc3RzX3Byb3BlcnRpZXMo
VGVzdFdURiBQUk9QRVJUSUVTIFRJTUVPVVQgNjApCiAgICAgICAgIFJVTlRJTUVfT1VUUFVUX0RJ
UkVDVE9SWSAke1RFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9XVEYKICAg
ICApCiAKKworYWRkX2V4ZWN1dGFibGUoVGVzdEphdmFTY3JpcHRDb3JlCisgICAgJHt0ZXN0X21h
aW5fU09VUkNFU30KKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0c0NvbnRyb2xsZXIuY3Bw
CisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvSmF2YVNjcmlwdENvcmUvVk1JbnNwZWN0
b3IuY3BwCispCisKK3RhcmdldF9saW5rX2xpYnJhcmllcyhUZXN0SmF2YVNjcmlwdENvcmUgJHtU
ZXN0SmF2YVNjcmlwdENvcmVfTElCUkFSSUVTfSkKK2FkZF90ZXN0KFRlc3RKYXZhU2NyaXB0Q29y
ZSAke1RFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9KYXZhU2NyaXB0Q29y
ZS9UZXN0SmF2YVNjcmlwdENvcmUpCitzZXRfdGVzdHNfcHJvcGVydGllcyhUZXN0SmF2YVNjcmlw
dENvcmUgUFJPUEVSVElFUyBUSU1FT1VUIDYwKQorc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFRlc3RK
YXZhU2NyaXB0Q29yZSBQUk9QRVJUSUVTIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke1RFU1RX
RUJLSVRBUElfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9KYXZhU2NyaXB0Q29yZSkKKwogZm9y
ZWFjaCAodGVzdE5hbWUgJHt0ZXN0X3dlYmNvcmVfQklOQVJJRVN9KQogICAgIGFkZF9leGVjdXRh
YmxlKCR7dGVzdE5hbWV9ICR7dGVzdF9tYWluX1NPVVJDRVN9ICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzQ29udHJvbGxlci5jcHAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS8k
e3Rlc3ROYW1lfS5jcHApCiAgICAgYWRkX3Rlc3QoJHt0ZXN0TmFtZX0gJHtURVNUV0VCS0lUQVBJ
X1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0vV2ViQ29yZS8ke3Rlc3ROYW1lfSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IGU0MjI4NjYuLjBjYmUyNDcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1HVEsuY21ha2UKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9QbGF0Zm9ybUdUSy5jbWFrZQpAQCAtNTUsNiArNTUsMTEgQEAgbGlzdChBUFBF
TkQgVGVzdFdlYktpdEFQSV9MSUJSQVJJRVMKICAgICAke0dUSzNfTElCUkFSSUVTfQogKQogCits
aXN0KEFQUEVORCBUZXN0SmF2YVNjcmlwdENvcmVfTElCUkFSSUVTCisgICAgJHtHREszX0xJQlJB
UklFU30KKyAgICAke0dUSzNfTElCUkFSSUVTfQorKQorCiBhZGRfZXhlY3V0YWJsZShUZXN0V2Vi
S2l0MgogICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYktpdDIvQWJvdXRCbGFua0xv
YWQuY3BwCiAgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViS2l0Mi9DYW5IYW5kbGVS
ZXF1ZXN0LmNwcAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>