<?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>196213</bug_id>
          
          <creation_ts>2019-03-25 13:58:19 -0700</creation_ts>
          <short_desc>Do not terminate the NetworkProcess if a third party application sends a NSCredential with a SecIdentityRef</short_desc>
          <delta_ts>2019-03-27 12:22:59 -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>New Bugs</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>
          <dependson>196226</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1520997</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-25 13:58:19 -0700</bug_when>
    <thetext>Do not terminate the NetworkProcess if a third party application sends a NSCredential with a SecIdentityRef</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521002</commentid>
    <comment_count>1</comment_count>
      <attachid>365896</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-25 14:07:23 -0700</bug_when>
    <thetext>Created attachment 365896
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521008</commentid>
    <comment_count>2</comment_count>
      <attachid>365898</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-25 14:12:32 -0700</bug_when>
    <thetext>Created attachment 365898
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521009</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-25 14:13:14 -0700</bug_when>
    <thetext>rdar://problem/49156511</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521029</commentid>
    <comment_count>4</comment_count>
      <attachid>365898</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-03-25 14:30:52 -0700</bug_when>
    <thetext>Comment on attachment 365898
Patch

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

r=me

&gt; Source/WebKit/Shared/cf/ArgumentCodersCF.cpp:719
&gt; +    if (!hasProcessPrivilege(ProcessPrivilege::CanAccessCredentials)) {
&gt; +        result = nullptr;
&gt; +        return true;
&gt; +    }

It seems a little sloppy that the !hasKey case above and the false if (key) case below return true without assigning nullptr to result, while here we do assign nullptr to result. I&apos;d like us to be consistent.

Looking at our caller, nullptr is the default value. So, both choices can work. Can you pick one and apply it consistently in this function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521034</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-25 14:38:31 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #4)
&gt; Comment on attachment 365898 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=365898&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebKit/Shared/cf/ArgumentCodersCF.cpp:719
&gt; &gt; +    if (!hasProcessPrivilege(ProcessPrivilege::CanAccessCredentials)) {
&gt; &gt; +        result = nullptr;
&gt; &gt; +        return true;
&gt; &gt; +    }
&gt; 
&gt; It seems a little sloppy that the !hasKey case above and the false if (key)
&gt; case below return true without assigning nullptr to result, while here we do
&gt; assign nullptr to result. I&apos;d like us to be consistent.
&gt; 
&gt; Looking at our caller, nullptr is the default value. So, both choices can
&gt; work. Can you pick one and apply it consistently in this function?

The nullptr assignment is redundant since the default constructor of RetainPtr&lt;SecIdentityRef&gt; has already been called.  I&apos;ll remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521039</commentid>
    <comment_count>6</comment_count>
      <attachid>365903</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-25 14:43:13 -0700</bug_when>
    <thetext>Created attachment 365903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521056</commentid>
    <comment_count>7</comment_count>
      <attachid>365903</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-25 15:10:22 -0700</bug_when>
    <thetext>Comment on attachment 365903
Patch

Clearing flags on attachment: 365903

Committed r243465: &lt;https://trac.webkit.org/changeset/243465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521057</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-25 15:10:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521058</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-03-25 15:11:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/49231641&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521095</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-25 16:15:51 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 196226</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521202</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-25 21:45:25 -0700</bug_when>
    <thetext>Maybe the commit bot shouldn&apos;t commit a patch that doesn&apos;t build on open source iOS bots...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521207</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-25 22:04:11 -0700</bug_when>
    <thetext>Hmmm.  SecKeychainRef is unavailable on open source iOS builds, and iOS doesn&apos;t really seem to have the ability to handle keychains like I do in this test (SecIdentityCreateWithCertificate, SecKeychainCreate unavailable).  I&apos;ll just make the test Mac only and figure out how to write client certificate tests for iOS once I start writing more in-depth tests.  This test as it is now already shows the assertion can be reached, so it would&apos;ve prevented the original regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521208</commentid>
    <comment_count>13</comment_count>
      <attachid>365946</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-25 22:05:29 -0700</bug_when>
    <thetext>Created attachment 365946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521226</commentid>
    <comment_count>14</comment_count>
      <attachid>365946</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-25 23:13:00 -0700</bug_when>
    <thetext>Comment on attachment 365946
Patch

Clearing flags on attachment: 365946

Committed r243487: &lt;https://trac.webkit.org/changeset/243487&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521227</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-25 23:13:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521777</commentid>
    <comment_count>16</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-27 12:14:37 -0700</bug_when>
    <thetext>It would also be nice if the commit queue took less than 1.5 days to commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521783</commentid>
    <comment_count>17</comment_count>
      <attachid>365946</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-27 12:22:59 -0700</bug_when>
    <thetext>Comment on attachment 365946
Patch

Oh, it landed, it just didn&apos;t remove the cq+</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365896</attachid>
            <date>2019-03-25 14:07:23 -0700</date>
            <delta_ts>2019-03-25 14:12:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196213-20190325140722.patch</filename>
            <type>text/plain</type>
            <size>20057</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDMzNjMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAzLTI1ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRG8gbm90IHRlcm1p
bmF0ZSB0aGUgTmV0d29ya1Byb2Nlc3MgaWYgYSB0aGlyZCBwYXJ0eSBhcHBsaWNhdGlvbiBzZW5k
cyBhIE5TQ3JlZGVudGlhbCB3aXRoIGEgU2VjSWRlbnRpdHlSZWYKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjIxMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgcmVsZWFzZSBhc3NlcnRpb24gYWRkZWQg
aW4gcjIzMDIyNSB3YXMgcmVhY2hhYmxlLiAgSSByZWFjaGVkIGl0IGluIGEgdW5pdCB0ZXN0IHRo
YXQgcmVzcG9uZHMgdG8gYSBjaGFsbGVuZ2UKKyAgICAgICAgd2l0aCBhIFNlY0lkZW50aXR5UmVm
IHdyYXBwZWQgaW4gYW4gTlNDcmVkZW50aWFsLgorCisgICAgICAgICogU2hhcmVkL2NmL0FyZ3Vt
ZW50Q29kZXJzQ0YuY3BwOgorICAgICAgICAoSVBDOjpkZWNvZGUpOgorCiAyMDE5LTAzLTIxICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFuIHVw
IHNvbWUgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEgbWVtYmVycwpJbmRleDogU291cmNl
L1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAJKHJldmlzaW9uIDI0MzMz
NykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02OTgsNyArNjk4LDEwIEBAIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIFNlY0lkZW50aXQKIGJvb2wgZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFJldGFpblB0cjxT
ZWNJZGVudGl0eVJlZj4mIHJlc3VsdCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBSRUxF
QVNFX0FTU0VSVChoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2aWxlZ2U6OkNhbkFjY2Vz
c0NyZWRlbnRpYWxzKSk7CisgICAgaWYgKCFoYXNQcm9jZXNzUHJpdmlsZWdlKFByb2Nlc3NQcml2
aWxlZ2U6OkNhbkFjY2Vzc0NyZWRlbnRpYWxzKSkgeworICAgICAgICByZXN1bHQgPSBudWxscHRy
OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAjZW5kaWYKIAogICAgIFJldGFpblB0cjxT
ZWNDZXJ0aWZpY2F0ZVJlZj4gY2VydGlmaWNhdGU7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDM0NTQpCisrKyBUb29scy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0wMy0yNSAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIERvIG5v
dCB0ZXJtaW5hdGUgdGhlIE5ldHdvcmtQcm9jZXNzIGlmIGEgdGhpcmQgcGFydHkgYXBwbGljYXRp
b24gc2VuZHMgYSBOU0NyZWRlbnRpYWwgd2l0aCBhIFNlY0lkZW50aXR5UmVmCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTYyMTMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ2hhbGxlbmdlLm1tOiBBZGRlZC4KKyAgICAgICAgKGNy
ZWRlbnRpYWxXaXRoSWRlbnRpdHlBbmRLZXljaGFpblBhdGgpOgorICAgICAgICAoLVtDaGFsbGVu
Z2VEZWxlZ2F0ZSB3ZWJWaWV3OmRpZEZpbmlzaE5hdmlnYXRpb246XSk6CisgICAgICAgICgtW0No
YWxsZW5nZURlbGVnYXRlIHdlYlZpZXc6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisK
IDIwMTktMDMtMjUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
VGVzdCBmb3I6IDE5NjA5NSBJbmJhbmQgVGV4dCBUcmFjayBjdWVzIGludGVyc3BlcnNlZCB3aXRo
IERhdGEgY3VlcyBjYW4gZGlzcGxheSBvdXQgb2Ygb3JkZXIuCkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjQzMzM3KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMxMCw2
ICszMTAsNyBAQAogCQk1QzBCRjg5NDFERDU5OUM5MDBCMDAzMjggLyogTWVudVR5cGVzRm9yTW91
c2VFdmVudHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QTk5RDk5MzFBRDRBMjlEMDAzNzMxNDEgLyogTWVudVR5cGVzRm9yTW91c2VFdmVudHMubW0g
Ki87IH07CiAJCTVDMEJGODk1MURENTk5Q0QwMEIwMDMyOCAvKiBOYXZpZ2F0b3JMYW5ndWFnZS5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOURCOTc4
MUIzMjEzN0MwMERCMzhENCAvKiBOYXZpZ2F0b3JMYW5ndWFnZS5tbSAqLzsgfTsKIAkJNUMxOUE1
MjQxRkQwRjYwMTAwRUVBMzIzIC8qIENvb2tpZVByaXZhdGVCcm93c2luZy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMTlBNTIzMUZEMEYzMjYwMEVF
QTMyMyAvKiBDb29raWVQcml2YXRlQnJvd3NpbmcubW0gKi87IH07CisJCTVDMjNERjBCMjI0NjAx
NTgwMEY0NTRCNiAvKiBDaGFsbGVuZ2UubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1QzIzREYwQTIyNDVDOUQ3MDBGNDU0QjYgLyogQ2hhbGxlbmdlLm1t
ICovOyB9OwogCQk1QzI5MzY5MzFENUJGNzBEMDBERUFCMUUgLyogQ29va2llQWNjZXB0UG9saWN5
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMyOTM2
OTExRDVCRjYzRTAwREVBQjFFIC8qIENvb2tpZUFjY2VwdFBvbGljeS5tbSAqLzsgfTsKIAkJNUMy
OTM2OTYxRDVDMDBFRDAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzI5MzY5NDFENUJGRDE5
MDBERUFCMUUgLyogQ29va2llTWVzc2FnZS5odG1sICovOyB9OwogCQk1QzRBODQ5NTFGN0VFRkZD
MDBBQ0ZDNTQgLyogQ29uZmlndXJhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEE4NDk0MUY3RUVGRDQwMEFDRkM1NCAvKiBDb25maWd1cmF0
aW9uLm1tICovOyB9OwpAQCAtMTcxOCw2ICsxNzE5LDcgQEAKIAkJNUMwQkY4OEMxREQ1OTU3NDAw
QjAwMzI4IC8qIE1lbW9yeVByZXNzdXJlSGFuZGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IE1lbW9yeVByZXNzdXJlSGFuZGxlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNUMwQkY4OEYxREQ1OTk5QjAwQjAwMzI4IC8qIFdlYlZpZXdDYW5Q
YXN0ZVplcm9QbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJWaWV3Q2FuUGFzdGVaZXJvUG5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
QzE5QTUyMzFGRDBGMzI2MDBFRUEzMjMgLyogQ29va2llUHJpdmF0ZUJyb3dzaW5nLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29va2llUHJpdmF0ZUJyb3dzaW5n
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzIzREYwQTIyNDVDOUQ3MDBGNDU0
QjYgLyogQ2hhbGxlbmdlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gQ2hhbGxlbmdlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzI5MzY5MTFE
NUJGNjNFMDBERUFCMUUgLyogQ29va2llQWNjZXB0UG9saWN5Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ29va2llQWNjZXB0UG9saWN5Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1QzI5MzY5NDFENUJGRDE5MDBERUFCMUUgLyogQ29va2llTWVz
c2FnZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gQ29va2llTWVzc2FnZS5odG1s
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzRBODQ5NDFGN0VFRkQ0MDBBQ0ZDNTQg
LyogQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IENvbmZpZ3VyYXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTI3
LDYgKzI1MjksNyBAQAogCQkJCTVDNzU3MTVGMjIxMjQ5QkQwMEI5RTVBQyAvKiBCdW5kbGVSZXRh
aW5QYWdlUGx1Z0luLm1tICovLAogCQkJCTFDMkI4MTdFMUM4OTFFNDIwMEE1NTI5RiAvKiBDYW5j
ZWxGb250U3VicmVzb3VyY2UubW0gKi8sCiAJCQkJMUMyQjgxODExQzg5MUVGQTAwQTU1MjlGIC8q
IENhbmNlbEZvbnRTdWJyZXNvdXJjZVBsdWdJbi5tbSAqLywKKwkJCQk1QzIzREYwQTIyNDVDOUQ3
MDBGNDU0QjYgLyogQ2hhbGxlbmdlLm1tICovLAogCQkJCTVDQjE4QkE3MUY1NjQ1QjIwMEVFMjND
NCAvKiBDbGlja0F1dG9GaWxsQnV0dG9uLm1tICovLAogCQkJCUNERjkyMjM2MjE2RDE4NjQwMDY0
N0FBNyAvKiBDbG9zZVdlYlZpZXdBZnRlckVudGVyRnVsbHNjcmVlbi5tbSAqLywKIAkJCQlDREYw
Qjc4OTIxNkQ0ODQzMDA0MjFFQ0MgLyogQ2xvc2VXZWJWaWV3RHVyaW5nRW50ZXJGdWxsc2NyZWVu
Lm1tICovLApAQCAtNDAyMSw2ICs0MDI0LDcgQEAKIAkJCQk1NzMwM0JDQjIwMDgzNzY1MDAzNTU5
NjUgLyogQ0JPUlJlYWRlclRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTczMDNCQzkyMDA4
MjREMzAwMzU1OTY1IC8qIENCT1JWYWx1ZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTcz
MDNCQ0EyMDA4MkMwMTAwMzU1OTY1IC8qIENCT1JXcml0ZXJUZXN0LmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCTVDMjNERjBCMjI0NjAxNTgwMEY0NTRCNiAvKiBDaGFsbGVuZ2UubW0gaW4gU291cmNl
cyAqLywKIAkJCQlGNDRBNTMxMjIxQjg5OTBBMDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxl
ci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUU2MUE0MTFBRTYwMDQ0N0M0QyAvKiBDbG9z
ZUZyb21XaXRoaW5DcmVhdGVQYWdlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUI3MUE0
MTFBN0UwMDQ0N0M0QyAvKiBDbG9zZU5ld1dpbmRvd0luTmF2aWdhdGlvblBvbGljeURlbGVnYXRl
Lm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0NoYWxsZW5nZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDI0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorCisjaW1w
b3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVENQU2VydmVyLmgiCisjaW1wb3J0
ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisKK3N0YXRpYyBzdGQ6OnBhaXI8
UmV0YWluUHRyPE5TVVJMQ3JlZGVudGlhbD4sIFJldGFpblB0cjxOU1N0cmluZz4+IGNyZWRlbnRp
YWxXaXRoSWRlbnRpdHlBbmRLZXljaGFpblBhdGgoKQoreworICAgIC8vIENlcnRpZmljYXRlIGFu
ZCBwcml2YXRlIGtleSB3ZXJlIGdlbmVyYXRlZCBieSBydW5uaW5nIHRoaXMgY29tbWFuZDoKKyAg
ICAvLyBvcGVuc3NsIHJlcSAteDUwOSAtbmV3a2V5IHJzYTo0MDk2IC1rZXlvdXQga2V5LnBlbSAt
b3V0IGNlcnQucGVtIC1kYXlzIDM2NSAtbm9kZXMKKyAgICAvLyBhbmQgZW50ZXJpbmcgdGhpcyBp
bmZvcm1hdGlvbjoKKyAgICAvKgorICAgICBDb3VudHJ5IE5hbWUgKDIgbGV0dGVyIGNvZGUpIFtd
OlVTCisgICAgIFN0YXRlIG9yIFByb3ZpbmNlIE5hbWUgKGZ1bGwgbmFtZSkgW106TmV3IE1leGlj
bworICAgICBMb2NhbGl0eSBOYW1lIChlZywgY2l0eSkgW106U2FudGEgRmUKKyAgICAgT3JnYW5p
emF0aW9uIE5hbWUgKGVnLCBjb21wYW55KSBbXTpTZWxmCisgICAgIE9yZ2FuaXphdGlvbmFsIFVu
aXQgTmFtZSAoZWcsIHNlY3Rpb24pIFtdOk15c2VsZgorICAgICBDb21tb24gTmFtZSAoZWcsIGZ1
bGx5IHF1YWxpZmllZCBob3N0IG5hbWUpIFtdOk1lCisgICAgIEVtYWlsIEFkZHJlc3MgW106bWVA
ZXhhbXBsZS5jb20KKyAgICAgKi8KKyAgICAKKyAgICBOU1N0cmluZyAqcGVtRW5jb2RlZENlcnRp
ZmljYXRlID0gQCIiCisgICAgIk1JSUZnRENDQTJnQ0NRQ0tIaVBSVTVNUXVEQU5CZ2txaGtpRzl3
MEJBUXNGQURDQmdURUxNQWtHQTFVRUJoTUMiCisgICAgIlZWTXhFekFSQmdOVkJBZ01DazVsZHlC
TlpYaHBZMjh4RVRBUEJnTlZCQWNNQ0ZOaGJuUmhJRVpsTVEwd0N3WUQiCisgICAgIlZRUUtEQVJU
Wld4bU1ROHdEUVlEVlFRTERBWk5lWE5sYkdZeEN6QUpCZ05WQkFNTUFrMWxNUjB3R3dZSktvWkki
CisgICAgImh2Y05BUWtCRmc1dFpVQmxlR0Z0Y0d4bExtTnZiVEFlRncweE9UQXpNak13TlRVd01U
UmFGdzB5TURBek1qSXciCisgICAgIk5UVXdNVFJhTUlHQk1Rc3dDUVlEVlFRR0V3SlZVekVUTUJF
R0ExVUVDQXdLVG1WM0lFMWxlR2xqYnpFUk1BOEciCisgICAgIkExVUVCd3dJVTJGdWRHRWdSbVV4
RFRBTEJnTlZCQW9NQkZObGJHWXhEekFOQmdOVkJBc01CazE1YzJWc1pqRUwiCisgICAgIk1Ba0dB
MVVFQXd3Q1RXVXhIVEFiQmdrcWhraUc5dzBCQ1FFV0RtMWxRR1Y0WVcxd2JHVXVZMjl0TUlJQ0lq
QU4iCisgICAgIkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQTNyaE40U1BnOFZZ
L1B0R0ROS1kzVDlKSVNnYnkiCisgICAgIjhZR01KeDB2TytZWkZabTNHM2ZzVFVzeXZEeUVId3Fw
NWFiQ1pSQi9CeTFQd1drTnJmeG4vWFA4UDAzNEpQbEUiCisgICAgIjZpclZpdUFZUXJxVWg2azda
UjhDcE9NNUdFY1JaZ0FVSkdHUXdObE9rRXdhSG5NR2M4U3NIdXJnRFBoNVhCcGciCisgICAgImJE
eXRkN0JKdUIxTm9JL0tKbWhjYWprQXVWM3ZhclMrdVBMb2ZQSE5xZStjTDhoTm5qWlF3SFdhclA0
NWtzNGUiCisgICAgIkJjT0Q3dHdxeHVIblZtL0ZXRXJwWThXczVzMU1yUFRoVWREYWhqRU1mK1lm
REo5S0w4eTMwNHlTOEo4ZmVDeFkiCisgICAgImZjSDRCdmdMdEptQk5ISmdqM2VORC9FTVpqSmd6
MkZzQmpySms4a0tEMzFjdys0V3A4VUY0c2tXWENmNDYrbU4iCisgICAgIk9IcDEzUGVTQ1pMeUY0
WkFIYXpVVmtuRFBjYzJZTnJXVlYxaTZuM1QxNWtJMFQ1Wjdic3RkbUFMdVNrRTJjdUoiCisgICAg
IlNWTk82Z1IrWnNWUlRuZXVReHdXVFUwTU5FaEFQRk9YMkJoR1A1ZWlzZ0VVemtueE1KZGRGRG45
V3hrbHUxSmgiCisgICAgImdrekFTQS8rM0FtbHJGWk1QaE9oakV1bDB6amdOUjVSQmwxRzhIejky
TEF4NVVFREJ0ZExnNzFJK0k4QXpRT2giCisgICAgImQ2THRCZWtFQ3hBMTZwU2FwcGc1dmNXOVov
OE42WmxzSG5aMkZ6dEEwbkNPZmxrb085aWVqT3BjdUZONEVWWUQiCisgICAgInhJdHdjdEt3MUxD
ZU5EL3M0a21vUlJuWGJYN2s5TzZjSTFVVVdNNTk1R3N1NXRQYTMzTTVBWkZDYXYyZ09WdVkiCisg
ICAgImRqcHBTMEhPZm81aHY2Y0NBd0VBQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQVk4RVdh
QUZFZnc3T1Yrb0QiCisgICAgIlhVWlNJWVhxM0VIMkU1cDNxMzhBaElPTFJqQnVCK3V0eXU3UTZy
eE1NSHV3MlR0c04remJBUjd5cmpmc3NlQTMiCisgICAgIjRUTTF4ZTROazdOVk5IUm9aUStDMElx
ZjlmdmNpb012VDF0VHJtYTBNaEtTakZRcHgrUHZ5TFZiRDdZZFA4NkwiCisgICAgIm1lZWhLcVU3
aDFwTEdBaUd3am9hWjlZYmg2S3VxL01UQUh5M0Q4K3drN0IzNlZCeEY2ZGlWbFVQWkpaUVdLSnki
CisgICAgIk1LeTlHM3N6ZTFaR3Q5V2VFMEFNdmtOMkhJZWYwSFRLQ1VaM2VCdmVjT01panhMMFdo
V281UXlmNWs2eWxDYVUiCisgICAgIjJmeCtNOERmRGN3Rm83dFNnTHhTSzNHQ0ZweFBmaUR0NlFr
OGM5dFFuNVMxZ1kzdDZMSnV3VkNGd1VJWGxOa0IiCisgICAgIkpENytjWjFaL3RDckVoemozWUNr
MHVVVThDaWZvVSs0RkcrSEdGUCtTUHp0c1lFMDU1bVNqMytFc2grb3lvVkIiCisgICAgImdCSDkw
c0UyVDFpMGVOSThmNjFvU2d3WUZlSHNmN2ZDNzFYRVhMRlIrR3dOZG13cWxtd2xEWkVwVHU3Qm9O
TisiCisgICAgInE3K1RmazFNUmtKbEwxUEg2WXUvSVBoWmlOaDR0eUlxRE90bFlmenA1NzdBK09V
VStxNVBQUkZSSXNxaGVPeHQiCisgICAgIm1ObEh4NFV6ZDRVM0lUZm1vZ0phempxd1lPMnZpQlpZ
NGpVUW15WnM3NWVIL2ppVUZIV1JzaGEzQWRuVzVMV2EiCisgICAgIkczUEZuWWJXOHVySDBOU0pH
L1crLzlEQStZN0FhMGNzNFRQcHVCR1owTlUxVzk0T29DTW80bGtPNkgveTZMZXUiCisgICAgIjN2
alpEM3k5a1prN21yZTlYSHdrSThNZEs1cz0iOworICAgIAorICAgIE5TU3RyaW5nICpwZW1FbmNv
ZGVkUHJpdmF0ZUtleSA9IEAiIgorICAgICJNSUlKUWdJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFT
Q0NTd3dnZ2tvQWdFQUFvSUNBUURldUUzaEkrRHhWajgrIgorICAgICIwWU0wcGpkUDBraEtCdkx4
Z1l3bkhTODc1aGtWbWJjYmQreE5Teks4UElRZkNxbmxwc0psRUg4SExVL0JhUTJ0IgorICAgICIv
R2Y5Yy93L1RmZ2srVVRxS3RXSzRCaEN1cFNIcVR0bEh3S2s0emtZUnhGbUFCUWtZWkRBMlU2UVRC
b2Vjd1p6IgorICAgICJ4S3dlNnVBTStIbGNHbUJzUEsxM3NFbTRIVTJnajhvbWFGeHFPUUM1WGU5
cXRMNjQ4dWg4OGMycDc1d3Z5RTJlIgorICAgICJObERBZFpxcy9qbVN6aDRGdzRQdTNDckc0ZWRX
YjhWWVN1bGp4YXptelV5czlPRlIwTnFHTVF4LzVoOE1uMG92IgorICAgICJ6TGZUakpMd254OTRM
Rmg5d2ZnRytBdTBtWUUwY21DUGQ0MFA4UXhtTW1EUFlXd0dPc21UeVFvUGZWekQ3aGFuIgorICAg
ICJ4UVhpeVJaY0ovanI2WTA0ZW5YYzk1SUprdklYaGtBZHJOUldTY005eHpaZzJ0WlZYV0xxZmRQ
WG1RalJQbG50IgorICAgICJ1eTEyWUF1NUtRVFp5NGxKVTA3cUJINW14VkZPZDY1REhCWk5UUXcw
U0VBOFU1ZllHRVkvbDZLeUFSVE9TZkV3IgorICAgICJsMTBVT2YxYkdTVzdVbUdDVE1CSUQvN2ND
YVdzVmt3K0U2R01TNlhUT09BMUhsRUdYVWJ3ZlAzWXNESGxRUU1HIgorICAgICIxMHVEdlVqNGp3
RE5BNkYzb3UwRjZRUUxFRFhxbEpxbW1EbTl4YjFuL3czcG1Xd2VkbllYTzBEU2NJNStXU2c3Igor
ICAgICIySjZNNmx5NFUzZ1JWZ1BFaTNCeTByRFVzSjQwUCt6aVNhaEZHZGR0ZnVUMDdwd2pWUlJZ
em4za2F5N20wOXJmIgorICAgICJjemtCa1VKcS9hQTVXNWgyT21sTFFjNStqbUcvcHdJREFRQUJB
b0lDQUdyYS9DcC9mMFhxdms5U1QrUHJ0Mi9wIgorICAgICJrTnRMZURYY2xMU1RjUDBKQ1pIdWZR
YUZ3KzdWbkZMcHFlNEd2THE5QmxsY3o4Vk92UXdyYmUvQ3dOVytWeEM4IgorICAgICJSTWpnZTJy
cUFDZ3dHaE94MXQ4N2w0Nk5rVVF3N0V5MGxDbGU4a3IrTUdnR0dvWnFyTUZkS0lSVW9NdjRubVE2
IgorICAgICJ0bWMxRkh2NXBMUmU5UStMcDVuWVF3R29ZbVpvVU91ZW9PYU9MMDhtNDlwR1hRa2lO
OHBKRE14U2ZPM0p2dHN1IgorICAgICI0Y3FJYjZrT1EvZE8xSXMxQ1R2VVJsZDFJWUxIN1l1U2hp
NFpFeDJnMmFjMlV5dnQ2WW14eHZNbUFqQlNLcEdkIgorICAgICJsb2llcGhvMy9OckRHVUtkdjNx
OVFZeXpyQTh3OUdUMzJMREdxZ0JYSmkxc2NCSThjRXhrcDZQNGlEbGxodjdzIgorICAgICJ2WnNz
cHZvYlJKYTNPMXprODYzTEhYYTI0SkNueXV6aW1xZXpaMk9saDdsNG9sSG9ZRDZVRkM5amZkNEtj
SFJnIgorICAgICIxYzRzeXF0L244QUsvMXMxZUJmUzlkemI1Q2ZqdDlNdEtZc2x4dkx6cTFXd09J
Tnd6OHJJWXVSaTBQY0xtOWhzIgorICAgICJsK1UwdS96QjM3ZU1ndjYraXdEWGsxZlNqYnVZc0Uv
YkVUV1lrbktHTkZGTDVKU2lLVjdXQ3BtZ05UVHJyRTRLIgorICAgICJTOEU2aFI5dVBPQWFvdzd2
UENDdDR4TFgvNDhsMkVJNlplcTZxT3BxMWxKMnFjeThyNHR5dVFnTlJMUU1rWmcxIgorICAgICJB
eFFsNnZuUThDdTRpdStOSWhlZjB5OVo3cWtmTnZaZUNqNUdsRkI5YzJZalY4WTJtZFdmSkI0cVdL
M1ovK01KIgorICAgICJRT1RDS1J6Ny9MeExOQlVlcFJqSkFvSUJBUUQzWnNWNXRXVTlaU0tjVko5
REM3VFprMFArbGhjaXNacjBuTDB0IgorICAgICJQUXVRTytwSHZQSTFNcVJuTnNrSEpoeVBucVZD
aStkcDg5dEsvSXQ1OTBVTGw4b3M2VUMxRmh5dEJQb1QxWVBkIgorICAgICJXR1dlcDJwT2M3YlZw
aTRpcDMxeStJbWZnZVp5SnRNQVRkbWUza0JQQU9lNU5HRTlHaWcvbDVucUx5YjAyc2QxIgorICAg
ICJRVzdPMEdkcUx4M0RwTHc0U0xsaE1mNmFFMHVHUlM4c2ZCMDg1ZTRER241NE8yd0VWdVNacVps
NU5ORWYzNVJ6IgorICAgICJYZ2ltM2grUldGMVpGU1F6akIvc21OMFpoK3YzSXo3dkVKMWgweXdW
Nm8rR3p2SGtQOUhFNmdMSWh0eVY4T0V3IgorICAgICJ2bHlZazFHYTdwVVZHUmg4bzhPTWU2UlI5
RFFpN0pxQzRlSTdHY2ttQnphcXpKY0RBb0lCQVFEbWRlNkFUZXczIgorICAgICJIOWJRSzZ4bmJN
SW5jei9DT3BJSVNkbGNGYjIzQUhHRWI0YjRWaEpGQk53eHJOTDZ0SEtTRkxlWVpGTGhUZGh4Igor
ICAgICJQZlh5VUxITmY1b3pkRWtsMFdybGVyb0Rkb2diQ3lXZzV1SnA5L1E2OHNid2JHcjhDQWxP
N1pIWVRyanVRZjFLIgorICAgICJBUzlwQ203N0tQM2syZDNVbEcrcGVsRGpYTG9CemlYcTBOanhK
cE16NDV2ckl4OHJTV3pGTmpNR2pYVDNmWGFTIgorICAgICI5NjJrLzBBWGVpNS9iZnVoQnhsbTdQ
bmkwYlFKSVdGa2VhVXVHbHJPYUhEUnhVaVgxcjlJWlM5d3Y1bGsxUHRnIgorICAgICJpZHBiY1d5
dzE4Y0ZHVHZqZEtoUmJaSDhFc2Jtem1OTnNDR2RnQ01xRmtLWXNXMTZRS29Dai9OQW92STNuMHFu
IgorICAgICI2Vm9SYTBzR21UR05Bb0lCQUNsL21xWkVzQnV4U0RIeTI5Z1NNWjdCWGdscFFhNDNI
bWZqbHJQczVuQ21MREVtIgorICAgICJWM1ptN1Q3RzZNZUROQTAvTGpkUVlsdmFaTEZhVlViN0hD
REtzRVlDUmpGWjZTdDRoejRtZFh6K1krVk43YjRGIgorICAgICJHT2tUZSsraUtwL0xZc0pYdHNE
MUZEV2IyV0lWbzdIYzFBR3o4SStnUUpvU0l1WXVUSm1MelNNMCs1SkRVT1YxIgorICAgICJ5OGRT
YmFQL1J1RXYwcVlqa0dxUVZrNWU3MFNVeU96S1YrWnhDVGhkSHZGTGlvdlRPVFRnZXZVekU3NXh5
ZGZHIgorICAgICJlN29DbXRUdXJ6Z3ZsLzY5VnU1WWdpajFuNENXUEhIY3E0Q1FXL0RPWjdCaEZH
Qndoclc3OXZvSEpGOFBid1BPIgorICAgICIrMERUdWRER1kzbkFENXNUbkY4elV1T2JZaWhKdGZ6
ai90NTlmT01DZ2dFQkFJWXV1QlVBU2I2MnpRNGJ2NS9nIgorICAgICJWUk0vS1NwZmk5TkRuRWpm
Wjd4N2g1ekNpdVZneC9aanBBbFFSTzh2elYxOHJvRU9PS3R4OWNuSmQ4QUVkK0hjIgorICAgICJu
OTNCb1MxaHgwbWhzVmgrMVRSWnd5anlCWFlKcHF3RDJ3ejFNejFYT0lRNkVxYk0veVBLVEQyZ2Z3
Zzd5TzUzIgorICAgICJxWXhyeFpzV2FnVlZjRzlRK0FSQkVSYXRUd0xwb04rZmNKTHh1aDRyL0Nh
L0xlcHN4bU9yS3pUYS9NR0sxTGhXIgorICAgICJyV2dJazIvb2dFUExTcHRqMmQxUEVETytHQXpG
ejRWS2poVzFObFVoOWZHaTZJSlBMSExuQnczb2RiaTBTOEtUIgorICAgICJnQTlaNStMQmM1Y2xv
dEFQNXJ0UUE4V2gvWkNFb1BUS1RUQTJialcySE1hdEpjYkdtUjBGcENRcjNBTTBZMVNPIgorICAg
ICJNYWtDZ2dFQUxydTZRWjZZVXdKSkc0NUgxZXEvclBkRFk4dHFxakpWVmlLb0JWdnpLai9YZkpa
WUVWUWlJdzVwIgorICAgICJ1b0doRG95RnVGVWVJaC9kMUpjMklydXkyV2pvT2tpUVl0SXVnREhI
eFJya0xkUWNqUGhsQ1RDRS9tbXlTSnQrIgorICAgICJia1ViaUhJYlE4ZEo1eWo4U0tyMGJIenFF
dE95OS9KZVJqa1lHSEM2YlZXcHE1RkEyTUJoZjRkTmpKNFVEbG5UIgorICAgICJ2dWVQY1Rqcjdu
bmZZMXN6dHZmVmw5RDhkbWdUK1RCbk9PVjZ5V2oxZ201YlMxRHhRU0xnTm10S3hKOHRBaDJ1Igor
ICAgICJkRU9idmNwU2hQMjJJdE9WalNhbXBSdUF1UkcyNlplbUViR0NJM0o2TXF4M3k2bSs2SHd1
bHRzZ3RkekRnckZlIgorICAgICJxSmZVOGJiZGJ1MnBpNDdZNEZkSkswSExmZmw1Unc9PSI7Cisg
ICAgCisgICAgTlNEYXRhICpkZXJFbmNvZGVkQ2VydGlmaWNhdGUgPSBbW1tOU0RhdGEgYWxsb2Nd
IGluaXRXaXRoQmFzZTY0RW5jb2RlZFN0cmluZzpwZW1FbmNvZGVkQ2VydGlmaWNhdGUgb3B0aW9u
czowXSBhdXRvcmVsZWFzZV07CisgICAgUmV0YWluUHRyPFNlY0NlcnRpZmljYXRlUmVmPiBjZXJ0
aWZpY2F0ZSA9IGFkb3B0Q0YoU2VjQ2VydGlmaWNhdGVDcmVhdGVXaXRoRGF0YShudWxscHRyLCAo
X19icmlkZ2UgQ0ZEYXRhUmVmKWRlckVuY29kZWRDZXJ0aWZpY2F0ZSkpOworICAgIAorICAgIE5T
RGF0YSAqZGVyRW5jb2RlZFByaXZhdGVLZXkgPSBbW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQmFz
ZTY0RW5jb2RlZFN0cmluZzpwZW1FbmNvZGVkUHJpdmF0ZUtleSBvcHRpb25zOjBdIGF1dG9yZWxl
YXNlXTsKKyAgICBOU0RpY3Rpb25hcnkqIG9wdGlvbnMgPSBAeworICAgICAgICAoaWQpa1NlY0F0
dHJLZXlUeXBlOiAoaWQpa1NlY0F0dHJLZXlUeXBlUlNBLAorICAgICAgICAoaWQpa1NlY0F0dHJL
ZXlDbGFzczogKGlkKWtTZWNBdHRyS2V5Q2xhc3NQcml2YXRlLAorICAgICAgICAoaWQpa1NlY0F0
dHJLZXlTaXplSW5CaXRzOiBANDA5NiwKKyAgICB9OworICAgIGNvbnN0IE5TVUludGVnZXIgcGVt
RW5jb2RlZFByaXZhdGVLZXlIZWFkZXJMZW5ndGggPSAyNjsKKyAgICBDRkVycm9yUmVmIGVycm9y
ID0gbnVsbHB0cjsKKyAgICBSZXRhaW5QdHI8U2VjS2V5UmVmPiBwcml2YXRlS2V5ID0gYWRvcHRD
RihTZWNLZXlDcmVhdGVXaXRoRGF0YSgoX19icmlkZ2UgQ0ZEYXRhUmVmKVtkZXJFbmNvZGVkUHJp
dmF0ZUtleSBzdWJkYXRhV2l0aFJhbmdlOk5TTWFrZVJhbmdlKHBlbUVuY29kZWRQcml2YXRlS2V5
SGVhZGVyTGVuZ3RoLCBkZXJFbmNvZGVkUHJpdmF0ZUtleS5sZW5ndGggLSBwZW1FbmNvZGVkUHJp
dmF0ZUtleUhlYWRlckxlbmd0aCldLCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKW9wdGlvbnMs
ICZlcnJvcikpOworICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICBFWFBFQ1RfTk9UX05VTEwo
cHJpdmF0ZUtleS5nZXQoKSk7CisKKyAgICBTZWNLZXljaGFpblJlZiBrZXljaGFpblJlZiA9IG51
bGxwdHI7CisgICAgY29uc3QgY2hhcioga2V5Y2hhaW5QYXNzd29yZCA9ICJ0ZXN0cGFzc3dvcmQi
OworICAgIE5TU3RyaW5nICprZXljaGFpblBhdGggPSBbTlNUZW1wb3JhcnlEaXJlY3RvcnkoKSBz
dHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJUZXN0S2V5Y2hhaW4iXTsKKyAgICBPU1N0
YXR1cyBzdGF0dXMgPSBTZWNLZXljaGFpbkNyZWF0ZShba2V5Y2hhaW5QYXRoIFVURjhTdHJpbmdd
LCBzdHJsZW4oa2V5Y2hhaW5QYXNzd29yZCksIGtleWNoYWluUGFzc3dvcmQsIE5PLCBudWxscHRy
LCAma2V5Y2hhaW5SZWYpOworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBlcnJTZWNTdWNjZXNz
KTsKKyAgICBSZXRhaW5QdHI8U2VjS2V5Y2hhaW5SZWY+IGtleWNoYWluID0gYWRvcHRDRihrZXlj
aGFpblJlZik7CisgICAgRVhQRUNUX05PVF9OVUxMKGtleWNoYWluKTsKKworICAgIFNlY0V4dGVy
bmFsSXRlbVR5cGUgdHlwZSA9IGtTZWNJdGVtVHlwZVByaXZhdGVLZXk7CisgICAgc3RhdHVzID0g
U2VjSXRlbUltcG9ydCgoX19icmlkZ2UgQ0ZEYXRhUmVmKWRlckVuY29kZWRQcml2YXRlS2V5LCBu
dWxscHRyLCBudWxscHRyLCAmdHlwZSwgMCwgbnVsbHB0ciwga2V5Y2hhaW4uZ2V0KCksIG51bGxw
dHIpOworICAgIEVYUEVDVF9UUlVFKHN0YXR1cyA9PSBlcnJTZWNTdWNjZXNzKTsKKworICAgIFNl
Y0lkZW50aXR5UmVmIGlkZW50aXR5UmVmID0gbnVsbHB0cjsKKyAgICBzdGF0dXMgPSBTZWNJZGVu
dGl0eUNyZWF0ZVdpdGhDZXJ0aWZpY2F0ZShrZXljaGFpbi5nZXQoKSwgY2VydGlmaWNhdGUuZ2V0
KCksICZpZGVudGl0eVJlZik7CisgICAgRVhQRUNUX05PVF9OVUxMKGlkZW50aXR5UmVmKTsKKyAg
ICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gZXJyU2VjU3VjY2Vzcyk7CisgICAgUmV0YWluUHRyPFNl
Y0lkZW50aXR5UmVmPiBpZGVudGl0eSA9IGFkb3B0Q0YoaWRlbnRpdHlSZWYpOworICAgIAorICAg
IHJldHVybiB7CisgICAgICAgIFtOU1VSTENyZWRlbnRpYWwgY3JlZGVudGlhbFdpdGhJZGVudGl0
eTppZGVudGl0eS5nZXQoKSBjZXJ0aWZpY2F0ZXM6QFsoaWQpY2VydGlmaWNhdGUuZ2V0KCldIHBl
cnNpc3RlbmNlOk5TVVJMQ3JlZGVudGlhbFBlcnNpc3RlbmNlTm9uZV0sCisgICAgICAgIGtleWNo
YWluUGF0aAorICAgIH07Cit9CisKK3N0YXRpYyBib29sIG5hdmlnYXRpb25GaW5pc2hlZDsKK3N0
YXRpYyBSZXRhaW5QdHI8TlNTdHJpbmc+IGtleWNoYWluUGF0aDsKKworQGludGVyZmFjZSBDaGFs
bGVuZ2VEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIENoYWxsZW5nZURlbGVnYXRlCisKKy0gKHZvaWQpd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBkaWRGaW5pc2hOYXZpZ2F0aW9uOihudWxsX3Vuc3BlY2lmaWVkIFdL
TmF2aWdhdGlvbiAqKW5hdmlnYXRpb24KK3sKKyAgICBuYXZpZ2F0aW9uRmluaXNoZWQgPSB0cnVl
OworfQorCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOihOU1VSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlICopY2hh
bGxlbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25BdXRoQ2hhbGxl
bmdlRGlzcG9zaXRpb24sIE5TVVJMQ3JlZGVudGlhbCAqKSljb21wbGV0aW9uSGFuZGxlcgorewor
ICAgIE5TVVJMUHJvdGVjdGlvblNwYWNlICpwcm90ZWN0aW9uU3BhY2UgPSBjaGFsbGVuZ2UucHJv
dGVjdGlvblNwYWNlOworICAgIEVYUEVDVF9OVUxMKGNoYWxsZW5nZS5wcm9wb3NlZENyZWRlbnRp
YWwpOworICAgIEVYUEVDVF9FUShjaGFsbGVuZ2UucHJldmlvdXNGYWlsdXJlQ291bnQsIDApOwor
ICAgIEVYUEVDVF9UUlVFKFtwcm90ZWN0aW9uU3BhY2UucmVhbG0gaXNFcXVhbFRvU3RyaW5nOkAi
dGVzdHJlYWxtIl0pOworICAgIEVYUEVDVF9GQUxTRShwcm90ZWN0aW9uU3BhY2UucmVjZWl2ZXND
cmVkZW50aWFsU2VjdXJlbHkpOworICAgIEVYUEVDVF9GQUxTRShwcm90ZWN0aW9uU3BhY2UuaXNQ
cm94eSk7CisgICAgRVhQRUNUX1RSVUUoW3Byb3RlY3Rpb25TcGFjZS5ob3N0IGlzRXF1YWxUb1N0
cmluZzpAIjEyNy4wLjAuMSJdKTsKKyAgICBFWFBFQ1RfTlVMTChwcm90ZWN0aW9uU3BhY2UucHJv
eHlUeXBlKTsKKyAgICBFWFBFQ1RfVFJVRShbcHJvdGVjdGlvblNwYWNlLnByb3RvY29sIGlzRXF1
YWxUb1N0cmluZzpOU1VSTFByb3RlY3Rpb25TcGFjZUhUVFBdKTsKKyAgICBFWFBFQ1RfVFJVRShb
cHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uTWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VS
TEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUEJhc2ljXSk7CisgICAgRVhQRUNUX0VRKFsoTlNIVFRQ
VVJMUmVzcG9uc2UgKiljaGFsbGVuZ2UuZmFpbHVyZVJlc3BvbnNlIHN0YXR1c0NvZGVdLCA0MDEp
OworCisgICAgYXV0byBwYWlyID0gY3JlZGVudGlhbFdpdGhJZGVudGl0eUFuZEtleWNoYWluUGF0
aCgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKE5TVVJMU2Vzc2lvbkF1dGhDaGFsbGVuZ2VVc2VD
cmVkZW50aWFsLCBwYWlyLmZpcnN0LmdldCgpKTsKKyAgICBrZXljaGFpblBhdGggPSBXVEZNb3Zl
KHBhaXIuc2Vjb25kKTsKK30KKworQGVuZAorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisK
K1RFU1QoQ2hhbGxlbmdlLCBTZWNJZGVudGl0eSkKK3sKKyAgICBUQ1BTZXJ2ZXIgc2VydmVyKFtd
IChhdXRvIHNvY2tldCkgeworICAgICAgICBjaGFyIHJlYWRCdWZmZXJbMTAwMF07CisgICAgICAg
IGF1dG8gYnl0ZXNSZWFkID0gOjpyZWFkKHNvY2tldCwgcmVhZEJ1ZmZlciwgc2l6ZW9mKHJlYWRC
dWZmZXIpKTsKKyAgICAgICAgRVhQRUNUX0dUKGJ5dGVzUmVhZCwgMCk7CisgICAgICAgIEVYUEVD
VF9UUlVFKHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNSZWFkKSA8IHNpemVvZihyZWFkQnVmZmVy
KSk7CisgICAgICAgIAorICAgICAgICBjb25zdCBjaGFyKiBjaGFsbGVuZ2VIZWFkZXIgPQorICAg
ICAgICAiSFRUUC8xLjEgNDAxIFVuYXV0aG9yaXplZFxyXG4iCisgICAgICAgICJEYXRlOiBTYXQs
IDIzIE1hciAyMDE5IDA2OjI5OjAxIEdNVFxyXG4iCisgICAgICAgICJDb250ZW50LUxlbmd0aDog
MFxyXG4iCisgICAgICAgICJXV1ctQXV0aGVudGljYXRlOiBCYXNpYyByZWFsbT1cInRlc3RyZWFs
bVwiXHJcblxyXG4iOworICAgICAgICBhdXRvIGJ5dGVzV3JpdHRlbiA9IDo6d3JpdGUoc29ja2V0
LCBjaGFsbGVuZ2VIZWFkZXIsIHN0cmxlbihjaGFsbGVuZ2VIZWFkZXIpKTsKKyAgICAgICAgRVhQ
RUNUX0VRKHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNXcml0dGVuKSwgc3RybGVuKGNoYWxsZW5n
ZUhlYWRlcikpOworICAgICAgICAKKyAgICAgICAgYnl0ZXNSZWFkID0gOjpyZWFkKHNvY2tldCwg
cmVhZEJ1ZmZlciwgc2l6ZW9mKHJlYWRCdWZmZXIpKTsKKyAgICAgICAgRVhQRUNUX0dUKGJ5dGVz
UmVhZCwgMCk7CisgICAgICAgIEVYUEVDVF9UUlVFKHN0YXRpY19jYXN0PHNpemVfdD4oYnl0ZXNS
ZWFkKSA8IHNpemVvZihyZWFkQnVmZmVyKSk7CisgICAgICAgIAorICAgICAgICBjb25zdCBjaGFy
KiByZXNwb25zZUhlYWRlciA9CisgICAgICAgICJIVFRQLzEuMSAyMDAgT0tcclxuIgorICAgICAg
ICAiQ29udGVudC1MZW5ndGg6IDEzXHJcblxyXG4iCisgICAgICAgICJIZWxsbywgV29ybGQhIjsK
KyAgICAgICAgYnl0ZXNXcml0dGVuID0gOjp3cml0ZShzb2NrZXQsIHJlc3BvbnNlSGVhZGVyLCBz
dHJsZW4ocmVzcG9uc2VIZWFkZXIpKTsKKyAgICAgICAgRVhQRUNUX0VRKHN0YXRpY19jYXN0PHNp
emVfdD4oYnl0ZXNXcml0dGVuKSwgc3RybGVuKHJlc3BvbnNlSGVhZGVyKSk7CisgICAgfSk7CisK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CisgICAgYXV0byBk
ZWxlZ2F0ZSA9IGFkb3B0TlMoW0NoYWxsZW5nZURlbGVnYXRlIG5ld10pOworICAgIFt3ZWJWaWV3
IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgbG9h
ZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAImh0dHA6Ly8xMjcuMC4wLjE6JWQvIiwgc2Vy
dmVyLnBvcnQoKV1dXV07CisKKyAgICBVdGlsOjpydW4oJm5hdmlnYXRpb25GaW5pc2hlZCk7Cisg
ICAgCisgICAgRVhQRUNUX05PVF9OVUxMKGtleWNoYWluUGF0aC5nZXQoKSk7CisgICAgTlNFcnJv
ciAqZXJyb3IgPSBuaWw7CisgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSByZW1v
dmVJdGVtQXRQYXRoOmtleWNoYWluUGF0aC5nZXQoKSBlcnJvcjomZXJyb3JdOworICAgIEVYUEVD
VF9OVUxMKGVycm9yKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365898</attachid>
            <date>2019-03-25 14:12:32 -0700</date>
            <delta_ts>2019-03-25 14:43:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196213-20190325141231.patch</filename>
            <type>text/plain</type>
            <size>20367</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDMzNjMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAzLTI1ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRG8gbm90IHRlcm1p
bmF0ZSB0aGUgTmV0d29ya1Byb2Nlc3MgaWYgYSB0aGlyZCBwYXJ0eSBhcHBsaWNhdGlvbiBzZW5k
cyBhIE5TQ3JlZGVudGlhbCB3aXRoIGEgU2VjSWRlbnRpdHlSZWYKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjIxMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgcmVsZWFzZSBhc3NlcnRpb24gYWRkZWQg
aW4gcjIzMDIyNSB3YXMgcmVhY2hhYmxlLiAgSSByZWFjaGVkIGl0IGluIGEgdW5pdCB0ZXN0IHRo
YXQgcmVzcG9uZHMgdG8gYSBjaGFsbGVuZ2UKKyAgICAgICAgd2l0aCBhIFNlY0lkZW50aXR5UmVm
IHdyYXBwZWQgaW4gYW4gTlNDcmVkZW50aWFsLgorCisgICAgICAgICogU2hhcmVkL2NmL0FyZ3Vt
ZW50Q29kZXJzQ0YuY3BwOgorICAgICAgICAoSVBDOjpkZWNvZGUpOgorCiAyMDE5LTAzLTIxICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENsZWFuIHVw
IHNvbWUgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEgbWVtYmVycwpJbmRleDogU291cmNl
L1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAJKHJldmlzaW9uIDI0MzMz
NykKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02OTcsMTAgKzY5Nyw2IEBAIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIFNlY0lkZW50aXQKIAogYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRy
PFNlY0lkZW50aXR5UmVmPiYgcmVzdWx0KQogewotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJF
TEVBU0VfQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNj
ZXNzQ3JlZGVudGlhbHMpKTsKLSNlbmRpZgotCiAgICAgUmV0YWluUHRyPFNlY0NlcnRpZmljYXRl
UmVmPiBjZXJ0aWZpY2F0ZTsKICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBjZXJ0aWZpY2F0ZSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTcxNiw2ICs3MTIsMTMgQEAgYm9vbCBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPAogICAgIGlmICghZGVjb2RlKGRlY29kZXIsIGtl
eURhdGEpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBpZiAoIWhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzQ3Jl
ZGVudGlhbHMpKSB7CisgICAgICAgIHJlc3VsdCA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKyNlbmRpZgorCiAgICAgU2VjS2V5UmVmIGtleSA9IG51bGxwdHI7CiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAoc2VjS2V5UmVmRGVjb2RpbmdBbGxvd2VkKQpJ
bmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2
aXNpb24gMjQzNDU0KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTktMDMtMjUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBEbyBub3QgdGVybWluYXRlIHRoZSBOZXR3b3JrUHJvY2VzcyBp
ZiBhIHRoaXJkIHBhcnR5IGFwcGxpY2F0aW9uIHNlbmRzIGEgTlNDcmVkZW50aWFsIHdpdGggYSBT
ZWNJZGVudGl0eVJlZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk2MjEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5n
ZS5tbTogQWRkZWQuCisgICAgICAgIChjcmVkZW50aWFsV2l0aElkZW50aXR5QW5kS2V5Y2hhaW5Q
YXRoKToKKyAgICAgICAgKC1bQ2hhbGxlbmdlRGVsZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hOYXZp
Z2F0aW9uOl0pOgorICAgICAgICAoLVtDaGFsbGVuZ2VEZWxlZ2F0ZSB3ZWJWaWV3OmRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE5LTAzLTI1ICBKZXIgTm9ibGUgIDxqZXIubm9i
bGVAYXBwbGUuY29tPgogCiAgICAgICAgIFRlc3QgZm9yOiAxOTYwOTUgSW5iYW5kIFRleHQgVHJh
Y2sgY3VlcyBpbnRlcnNwZXJzZWQgd2l0aCBEYXRhIGN1ZXMgY2FuIGRpc3BsYXkgb3V0IG9mIG9y
ZGVyLgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI0MzMzNykKKysrIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC0zMTAsNiArMzEwLDcgQEAKIAkJNUMwQkY4OTQxREQ1OTlDOTAw
QjAwMzI4IC8qIE1lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0E5OUQ5OTMxQUQ0QTI5RDAwMzczMTQxIC8qIE1l
bnVUeXBlc0Zvck1vdXNlRXZlbnRzLm1tICovOyB9OwogCQk1QzBCRjg5NTFERDU5OUNEMDBCMDAz
MjggLyogTmF2aWdhdG9yTGFuZ3VhZ2UubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMTlEQjk3ODFCMzIxMzdDMDBEQjM4RDQgLyogTmF2aWdhdG9yTGFu
Z3VhZ2UubW0gKi87IH07CiAJCTVDMTlBNTI0MUZEMEY2MDEwMEVFQTMyMyAvKiBDb29raWVQcml2
YXRlQnJvd3NpbmcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzE5QTUyMzFGRDBGMzI2MDBFRUEzMjMgLyogQ29va2llUHJpdmF0ZUJyb3dzaW5nLm1t
ICovOyB9OworCQk1QzIzREYwQjIyNDYwMTU4MDBGNDU0QjYgLyogQ2hhbGxlbmdlLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMyM0RGMEEyMjQ1QzlE
NzAwRjQ1NEI2IC8qIENoYWxsZW5nZS5tbSAqLzsgfTsKIAkJNUMyOTM2OTMxRDVCRjcwRDAwREVB
QjFFIC8qIENvb2tpZUFjY2VwdFBvbGljeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjkzNjkxMUQ1QkY2M0UwMERFQUIxRSAvKiBDb29raWVBY2Nl
cHRQb2xpY3kubW0gKi87IH07CiAJCTVDMjkzNjk2MUQ1QzAwRUQwMERFQUIxRSAvKiBDb29raWVN
ZXNzYWdlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUMyOTM2OTQxRDVCRkQxOTAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRtbCAq
LzsgfTsKIAkJNUM0QTg0OTUxRjdFRUZGQzAwQUNGQzU0IC8qIENvbmZpZ3VyYXRpb24ubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRBODQ5NDFGN0VF
RkQ0MDBBQ0ZDNTQgLyogQ29uZmlndXJhdGlvbi5tbSAqLzsgfTsKQEAgLTE3MTgsNiArMTcxOSw3
IEBACiAJCTVDMEJGODhDMURENTk1NzQwMEIwMDMyOCAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZW1vcnlQcmVzc3Vy
ZUhhbmRsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMEJGODhGMURENTk5
OUIwMEIwMDMyOCAvKiBXZWJWaWV3Q2FuUGFzdGVaZXJvUG5nLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVmlld0NhblBhc3RlWmVyb1BuZy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMxOUE1MjMxRkQwRjMyNjAwRUVBMzIzIC8qIENvb2tp
ZVByaXZhdGVCcm93c2luZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IENvb2tpZVByaXZhdGVCcm93c2luZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNUMyM0RGMEEyMjQ1QzlENzAwRjQ1NEI2IC8qIENoYWxsZW5nZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENoYWxsZW5nZS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNUMyOTM2OTExRDVCRjYzRTAwREVBQjFFIC8qIENvb2tpZUFjY2VwdFBv
bGljeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvb2tpZUFj
Y2VwdFBvbGljeS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyOTM2OTQxRDVC
RkQxOTAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9IENvb2tpZU1lc3NhZ2UuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUM0QTg0OTQxRjdFRUZENDAwQUNGQzU0IC8qIENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjUyNyw2ICsyNTI5LDcgQEAKIAkJCQk1Qzc1NzE1RjIyMTI0
OUJEMDBCOUU1QUMgLyogQnVuZGxlUmV0YWluUGFnZVBsdWdJbi5tbSAqLywKIAkJCQkxQzJCODE3
RTFDODkxRTQyMDBBNTUyOUYgLyogQ2FuY2VsRm9udFN1YnJlc291cmNlLm1tICovLAogCQkJCTFD
MkI4MTgxMUM4OTFFRkEwMEE1NTI5RiAvKiBDYW5jZWxGb250U3VicmVzb3VyY2VQbHVnSW4ubW0g
Ki8sCisJCQkJNUMyM0RGMEEyMjQ1QzlENzAwRjQ1NEI2IC8qIENoYWxsZW5nZS5tbSAqLywKIAkJ
CQk1Q0IxOEJBNzFGNTY0NUIyMDBFRTIzQzQgLyogQ2xpY2tBdXRvRmlsbEJ1dHRvbi5tbSAqLywK
IAkJCQlDREY5MjIzNjIxNkQxODY0MDA2NDdBQTcgLyogQ2xvc2VXZWJWaWV3QWZ0ZXJFbnRlckZ1
bGxzY3JlZW4ubW0gKi8sCiAJCQkJQ0RGMEI3ODkyMTZENDg0MzAwNDIxRUNDIC8qIENsb3NlV2Vi
Vmlld0R1cmluZ0VudGVyRnVsbHNjcmVlbi5tbSAqLywKQEAgLTQwMjEsNiArNDAyNCw3IEBACiAJ
CQkJNTczMDNCQ0IyMDA4Mzc2NTAwMzU1OTY1IC8qIENCT1JSZWFkZXJUZXN0LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTU3MzAzQkM5MjAwODI0RDMwMDM1NTk2NSAvKiBDQk9SVmFsdWVUZXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTU3MzAzQkNBMjAwODJDMDEwMDM1NTk2NSAvKiBDQk9SV3Jp
dGVyVGVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1QzIzREYwQjIyNDYwMTU4MDBGNDU0QjYg
LyogQ2hhbGxlbmdlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0QTUzMTIyMUI4OTkwQTAwREJC
OTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VF
NjFBNDExQUU2MDA0NDdDNEMgLyogQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3Q0NFN0VCNzFBNDExQTdFMDA0NDdDNEMgLyogQ2xvc2VOZXdXaW5kb3dJ
bk5hdmlnYXRpb25Qb2xpY3lEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLApJbmRleDogVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0JKG5v
bmV4aXN0ZW50KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFs
bGVuZ2UubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNDggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBv
cnQgIlRDUFNlcnZlci5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmll
dy5oIgorCitzdGF0aWMgc3RkOjpwYWlyPFJldGFpblB0cjxOU1VSTENyZWRlbnRpYWw+LCBSZXRh
aW5QdHI8TlNTdHJpbmc+PiBjcmVkZW50aWFsV2l0aElkZW50aXR5QW5kS2V5Y2hhaW5QYXRoKCkK
K3sKKyAgICAvLyBDZXJ0aWZpY2F0ZSBhbmQgcHJpdmF0ZSBrZXkgd2VyZSBnZW5lcmF0ZWQgYnkg
cnVubmluZyB0aGlzIGNvbW1hbmQ6CisgICAgLy8gb3BlbnNzbCByZXEgLXg1MDkgLW5ld2tleSBy
c2E6NDA5NiAta2V5b3V0IGtleS5wZW0gLW91dCBjZXJ0LnBlbSAtZGF5cyAzNjUgLW5vZGVzCisg
ICAgLy8gYW5kIGVudGVyaW5nIHRoaXMgaW5mb3JtYXRpb246CisgICAgLyoKKyAgICAgQ291bnRy
eSBOYW1lICgyIGxldHRlciBjb2RlKSBbXTpVUworICAgICBTdGF0ZSBvciBQcm92aW5jZSBOYW1l
IChmdWxsIG5hbWUpIFtdOk5ldyBNZXhpY28KKyAgICAgTG9jYWxpdHkgTmFtZSAoZWcsIGNpdHkp
IFtdOlNhbnRhIEZlCisgICAgIE9yZ2FuaXphdGlvbiBOYW1lIChlZywgY29tcGFueSkgW106U2Vs
ZgorICAgICBPcmdhbml6YXRpb25hbCBVbml0IE5hbWUgKGVnLCBzZWN0aW9uKSBbXTpNeXNlbGYK
KyAgICAgQ29tbW9uIE5hbWUgKGVnLCBmdWxseSBxdWFsaWZpZWQgaG9zdCBuYW1lKSBbXTpNZQor
ICAgICBFbWFpbCBBZGRyZXNzIFtdOm1lQGV4YW1wbGUuY29tCisgICAgICovCisgICAgCisgICAg
TlNTdHJpbmcgKnBlbUVuY29kZWRDZXJ0aWZpY2F0ZSA9IEAiIgorICAgICJNSUlGZ0RDQ0EyZ0ND
UUNLSGlQUlU1TVF1REFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgorICAg
ICJWVk14RXpBUkJnTlZCQWdNQ2s1bGR5Qk5aWGhwWTI4eEVUQVBCZ05WQkFjTUNGTmhiblJoSUVa
bE1RMHdDd1lEIgorICAgICJWUVFLREFSVFpXeG1NUTh3RFFZRFZRUUxEQVpOZVhObGJHWXhDekFK
QmdOVkJBTU1BazFsTVIwd0d3WUpLb1pJIgorICAgICJodmNOQVFrQkZnNXRaVUJsZUdGdGNHeGxM
bU52YlRBZUZ3MHhPVEF6TWpNd05UVXdNVFJhRncweU1EQXpNakl3IgorICAgICJOVFV3TVRSYU1J
R0JNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0F3S1RtVjNJRTFsZUdsamJ6RVJNQThHIgor
ICAgICJBMVVFQnd3SVUyRnVkR0VnUm1VeERUQUxCZ05WQkFvTUJGTmxiR1l4RHpBTkJnTlZCQXNN
QmsxNWMyVnNaakVMIgorICAgICJNQWtHQTFVRUF3d0NUV1V4SFRBYkJna3Foa2lHOXcwQkNRRVdE
bTFsUUdWNFlXMXdiR1V1WTI5dE1JSUNJakFOIgorICAgICJCZ2txaGtpRzl3MEJBUUVGQUFPQ0Fn
OEFNSUlDQ2dLQ0FnRUEzcmhONFNQZzhWWS9QdEdETktZM1Q5SklTZ2J5IgorICAgICI4WUdNSngw
dk8rWVpGWm0zRzNmc1RVc3l2RHlFSHdxcDVhYkNaUkIvQnkxUHdXa05yZnhuL1hQOFAwMzRKUGxF
IgorICAgICI2aXJWaXVBWVFycVVoNms3WlI4Q3BPTTVHRWNSWmdBVUpHR1F3TmxPa0V3YUhuTUdj
OFNzSHVyZ0RQaDVYQnBnIgorICAgICJiRHl0ZDdCSnVCMU5vSS9LSm1oY2Fqa0F1VjN2YXJTK3VQ
TG9mUEhOcWUrY0w4aE5ualpRd0hXYXJQNDVrczRlIgorICAgICJCY09EN3R3cXh1SG5WbS9GV0Vy
cFk4V3M1czFNclBUaFVkRGFoakVNZitZZkRKOUtMOHkzMDR5UzhKOGZlQ3hZIgorICAgICJmY0g0
QnZnTHRKbUJOSEpnajNlTkQvRU1aakpnejJGc0JqckprOGtLRDMxY3crNFdwOFVGNHNrV1hDZjQ2
K21OIgorICAgICJPSHAxM1BlU0NaTHlGNFpBSGF6VVZrbkRQY2MyWU5yV1ZWMWk2bjNUMTVrSTBU
NVo3YnN0ZG1BTHVTa0UyY3VKIgorICAgICJTVk5PNmdSK1pzVlJUbmV1UXh3V1RVME1ORWhBUEZP
WDJCaEdQNWVpc2dFVXprbnhNSmRkRkRuOVd4a2x1MUpoIgorICAgICJna3pBU0EvKzNBbWxyRlpN
UGhPaGpFdWwwempnTlI1UkJsMUc4SHo5MkxBeDVVRURCdGRMZzcxSStJOEF6UU9oIgorICAgICJk
Nkx0QmVrRUN4QTE2cFNhcHBnNXZjVzlaLzhONlpsc0huWjJGenRBMG5DT2Zsa29POWllak9wY3VG
TjRFVllEIgorICAgICJ4SXR3Y3RLdzFMQ2VORC9zNGttb1JSblhiWDdrOU82Y0kxVVVXTTU5NUdz
dTV0UGEzM001QVpGQ2F2MmdPVnVZIgorICAgICJkanBwUzBIT2ZvNWh2NmNDQXdFQUFUQU5CZ2tx
aGtpRzl3MEJBUXNGQUFPQ0FnRUFZOEVXYUFGRWZ3N09WK29EIgorICAgICJYVVpTSVlYcTNFSDJF
NXAzcTM4QWhJT0xSakJ1Qit1dHl1N1E2cnhNTUh1dzJUdHNOK3piQVI3eXJqZnNzZUEzIgorICAg
ICI0VE0xeGU0Tms3TlZOSFJvWlErQzBJcWY5ZnZjaW9NdlQxdFRybWEwTWhLU2pGUXB4K1B2eUxW
YkQ3WWRQODZMIgorICAgICJtZWVoS3FVN2gxcExHQWlHd2pvYVo5WWJoNkt1cS9NVEFIeTNEOCt3
azdCMzZWQnhGNmRpVmxVUFpKWlFXS0p5IgorICAgICJNS3k5RzNzemUxWkd0OVdlRTBBTXZrTjJI
SWVmMEhUS0NVWjNlQnZlY09NaWp4TDBXaFdvNVF5ZjVrNnlsQ2FVIgorICAgICIyZngrTThEZkRj
d0ZvN3RTZ0x4U0szR0NGcHhQZmlEdDZRazhjOXRRbjVTMWdZM3Q2TEp1d1ZDRndVSVhsTmtCIgor
ICAgICJKRDcrY1oxWi90Q3JFaHpqM1lDazB1VVU4Q2lmb1UrNEZHK0hHRlArU1B6dHNZRTA1NW1T
ajMrRXNoK295b1ZCIgorICAgICJnQkg5MHNFMlQxaTBlTkk4ZjYxb1Nnd1lGZUhzZjdmQzcxWEVY
TEZSK0d3TmRtd3FsbXdsRFpFcFR1N0JvTk4rIgorICAgICJxNytUZmsxTVJrSmxMMVBINll1L0lQ
aFppTmg0dHlJcURPdGxZZnpwNTc3QStPVVUrcTVQUFJGUklzcWhlT3h0IgorICAgICJtTmxIeDRV
emQ0VTNJVGZtb2dKYXpqcXdZTzJ2aUJaWTRqVVFteVpzNzVlSC9qaVVGSFdSc2hhM0Fkblc1TFdh
IgorICAgICJHM1BGblliVzh1ckgwTlNKRy9XKy85REErWTdBYTBjczRUUHB1QkdaME5VMVc5NE9v
Q01vNGxrTzZIL3k2TGV1IgorICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9IjsKKyAg
ICAKKyAgICBOU1N0cmluZyAqcGVtRW5jb2RlZFByaXZhdGVLZXkgPSBAIiIKKyAgICAiTUlJSlFn
SUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NDU3d3Z2drb0FnRUFBb0lDQVFEZXVFM2hJK0R4Vmo4
KyIKKyAgICAiMFlNMHBqZFAwa2hLQnZMeGdZd25IUzg3NWhrVm1iY2JkK3hOU3pLOFBJUWZDcW5s
cHNKbEVIOEhMVS9CYVEydCIKKyAgICAiL0dmOWMvdy9UZmdrK1VUcUt0V0s0QmhDdXBTSHFUdGxI
d0trNHprWVJ4Rm1BQlFrWVpEQTJVNlFUQm9lY3daeiIKKyAgICAieEt3ZTZ1QU0rSGxjR21Cc1BL
MTNzRW00SFUyZ2o4b21hRnhxT1FDNVhlOXF0TDY0OHVoODhjMnA3NXd2eUUyZSIKKyAgICAiTmxE
QWRacXMvam1Temg0Rnc0UHUzQ3JHNGVkV2I4VllTdWxqeGF6bXpVeXM5T0ZSME5xR01ReC81aDhN
bjBvdiIKKyAgICAiekxmVGpKTHdueDk0TEZoOXdmZ0crQXUwbVlFMGNtQ1BkNDBQOFF4bU1tRFBZ
V3dHT3NtVHlRb1BmVnpEN2hhbiIKKyAgICAieFFYaXlSWmNKL2pyNlkwNGVuWGM5NUlKa3ZJWGhr
QWRyTlJXU2NNOXh6WmcydFpWWFdMcWZkUFhtUWpSUGxudCIKKyAgICAidXkxMllBdTVLUVRaeTRs
SlUwN3FCSDVteFZGT2Q2NURIQlpOVFF3MFNFQThVNWZZR0VZL2w2S3lBUlRPU2ZFdyIKKyAgICAi
bDEwVU9mMWJHU1c3VW1HQ1RNQklELzdjQ2FXc1ZrdytFNkdNUzZYVE9PQTFIbEVHWFVid2ZQM1lz
REhsUVFNRyIKKyAgICAiMTB1RHZVajRqd0ROQTZGM291MEY2UVFMRURYcWxKcW1tRG05eGIxbi93
M3BtV3dlZG5ZWE8wRFNjSTUrV1NnNyIKKyAgICAiMko2TTZseTRVM2dSVmdQRWkzQnkwckRVc0o0
MFAremlTYWhGR2RkdGZ1VDA3cHdqVlJSWXpuM2theTdtMDlyZiIKKyAgICAiY3prQmtVSnEvYUE1
VzVoMk9tbExRYzUram1HL3B3SURBUUFCQW9JQ0FHcmEvQ3AvZjBYcXZrOVNUK1BydDIvcCIKKyAg
ICAia050TGVEWGNsTFNUY1AwSkNaSHVmUWFGdys3Vm5GTHBxZTRHdkxxOUJsbGN6OFZPdlF3cmJl
L0N3TlcrVnhDOCIKKyAgICAiUk1qZ2UycnFBQ2d3R2hPeDF0ODdsNDZOa1VRdzdFeTBsQ2xlOGty
K01HZ0dHb1pxck1GZEtJUlVvTXY0bm1RNiIKKyAgICAidG1jMUZIdjVwTFJlOVErTHA1bllRd0dv
WW1ab1VPdWVvT2FPTDA4bTQ5cEdYUWtpTjhwSkRNeFNmTzNKdnRzdSIKKyAgICAiNGNxSWI2a09R
L2RPMUlzMUNUdlVSbGQxSVlMSDdZdVNoaTRaRXgyZzJhYzJVeXZ0NllteHh2TW1BakJTS3BHZCIK
KyAgICAibG9pZXBobzMvTnJER1VLZHYzcTlRWXl6ckE4dzlHVDMyTERHcWdCWEppMXNjQkk4Y0V4
a3A2UDRpRGxsaHY3cyIKKyAgICAidlpzc3B2b2JSSmEzTzF6azg2M0xIWGEyNEpDbnl1emltcWV6
WjJPbGg3bDRvbEhvWUQ2VUZDOWpmZDRLY0hSZyIKKyAgICAiMWM0c3lxdC9uOEFLLzFzMWVCZlM5
ZHpiNUNmanQ5TXRLWXNseHZMenExV3dPSU53ejhySVl1UmkwUGNMbTlocyIKKyAgICAibCtVMHUv
ekIzN2VNZ3Y2K2l3RFhrMWZTamJ1WXNFL2JFVFdZa25LR05GRkw1SlNpS1Y3V0NwbWdOVFRyckU0
SyIKKyAgICAiUzhFNmhSOXVQT0Fhb3c3dlBDQ3Q0eExYLzQ4bDJFSTZaZXE2cU9wcTFsSjJxY3k4
cjR0eXVRZ05STFFNa1pnMSIKKyAgICAiQXhRbDZ2blE4Q3U0aXUrTkloZWYweTlaN3FrZk52WmVD
ajVHbEZCOWMyWWpWOFkybWRXZkpCNHFXSzNaLytNSiIKKyAgICAiUU9UQ0tSejcvTHhMTkJVZXBS
akpBb0lCQVFEM1pzVjV0V1U5WlNLY1ZKOURDN1RaazBQK2xoY2lzWnIwbkwwdCIKKyAgICAiUFF1
UU8rcEh2UEkxTXFSbk5za0hKaHlQbnFWQ2krZHA4OXRLL0l0NTkwVUxsOG9zNlVDMUZoeXRCUG9U
MVlQZCIKKyAgICAiV0dXZXAycE9jN2JWcGk0aXAzMXkrSW1mZ2VaeUp0TUFUZG1lM2tCUEFPZTVO
R0U5R2lnL2w1bnFMeWIwMnNkMSIKKyAgICAiUVc3TzBHZHFMeDNEcEx3NFNMbGhNZjZhRTB1R1JT
OHNmQjA4NWU0REduNTRPMndFVnVTWnFabDVOTkVmMzVSeiIKKyAgICAiWGdpbTNoK1JXRjFaRlNR
empCL3NtTjBaaCt2M0l6N3ZFSjFoMHl3VjZvK0d6dkhrUDlIRTZnTElodHlWOE9FdyIKKyAgICAi
dmx5WWsxR2E3cFVWR1JoOG84T01lNlJSOURRaTdKcUM0ZUk3R2NrbUJ6YXF6SmNEQW9JQkFRRG1k
ZTZBVGV3MyIKKyAgICAiSDliUUs2eG5iTUluY3ovQ09wSUlTZGxjRmIyM0FIR0ViNGI0VmhKRkJO
d3hyTkw2dEhLU0ZMZVlaRkxoVGRoeCIKKyAgICAiUGZYeVVMSE5mNW96ZEVrbDBXcmxlcm9EZG9n
YkN5V2c1dUpwOS9RNjhzYndiR3I4Q0FsTzdaSFlUcmp1UWYxSyIKKyAgICAiQVM5cENtNzdLUDNr
MmQzVWxHK3BlbERqWExvQnppWHEwTmp4SnBNejQ1dnJJeDhyU1d6Rk5qTUdqWFQzZlhhUyIKKyAg
ICAiOTYyay8wQVhlaTUvYmZ1aEJ4bG03UG5pMGJRSklXRmtlYVV1R2xyT2FIRFJ4VWlYMXI5SVpT
OXd2NWxrMVB0ZyIKKyAgICAiaWRwYmNXeXcxOGNGR1R2amRLaFJiWkg4RXNibXptTk5zQ0dkZ0NN
cUZrS1lzVzE2UUtvQ2ovTkFvdkkzbjBxbiIKKyAgICAiNlZvUmEwc0dtVEdOQW9JQkFDbC9tcVpF
c0J1eFNESHkyOWdTTVo3QlhnbHBRYTQzSG1mamxyUHM1bkNtTERFbSIKKyAgICAiVjNabTdUN0c2
TWVETkEwL0xqZFFZbHZhWkxGYVZVYjdIQ0RLc0VZQ1JqRlo2U3Q0aHo0bWRYeitZK1ZON2I0RiIK
KyAgICAiR09rVGUrK2lLcC9MWXNKWHRzRDFGRFdiMldJVm83SGMxQUd6OEkrZ1FKb1NJdVl1VEpt
THpTTTArNUpEVU9WMSIKKyAgICAieThkU2JhUC9SdUV2MHFZamtHcVFWazVlNzBTVXlPektWK1p4
Q1RoZEh2Rkxpb3ZUT1RUZ2V2VXpFNzV4eWRmRyIKKyAgICAiZTdvQ210VHVyemd2bC82OVZ1NVln
aWoxbjRDV1BISGNxNENRVy9ET1o3QmhGR0J3aHJXNzl2b0hKRjhQYndQTyIKKyAgICAiKzBEVHVk
REdZM25BRDVzVG5GOHpVdU9iWWloSnRmemovdDU5Zk9NQ2dnRUJBSVl1dUJVQVNiNjJ6UTRidjUv
ZyIKKyAgICAiVlJNL0tTcGZpOU5EbkVqZlo3eDdoNXpDaXVWZ3gvWmpwQWxRUk84dnpWMThyb0VP
T0t0eDljbkpkOEFFZCtIYyIKKyAgICAibjkzQm9TMWh4MG1oc1ZoKzFUUlp3eWp5QlhZSnBxd0Qy
d3oxTXoxWE9JUTZFcWJNL3lQS1REMmdmd2c3eU81MyIKKyAgICAicVl4cnhac1dhZ1ZWY0c5UStB
UkJFUmF0VHdMcG9OK2ZjSkx4dWg0ci9DYS9MZXBzeG1Pckt6VGEvTUdLMUxoVyIKKyAgICAicldn
SWsyL29nRVBMU3B0ajJkMVBFRE8rR0F6Rno0VktqaFcxTmxVaDlmR2k2SUpQTEhMbkJ3M29kYmkw
UzhLVCIKKyAgICAiZ0E5WjUrTEJjNWNsb3RBUDVydFFBOFdoL1pDRW9QVEtUVEEyYmpXMkhNYXRK
Y2JHbVIwRnBDUXIzQU0wWTFTTyIKKyAgICAiTWFrQ2dnRUFMcnU2UVo2WVV3SkpHNDVIMWVxL3JQ
ZERZOHRxcWpKVlZpS29CVnZ6S2ovWGZKWllFVlFpSXc1cCIKKyAgICAidW9HaERveUZ1RlVlSWgv
ZDFKYzJJcnV5Mldqb09raVFZdEl1Z0RISHhScmtMZFFjalBobENUQ0UvbW15U0p0KyIKKyAgICAi
YmtVYmlISWJROGRKNXlqOFNLcjBiSHpxRXRPeTkvSmVSamtZR0hDNmJWV3BxNUZBMk1CaGY0ZE5q
SjRVRGxuVCIKKyAgICAidnVlUGNUanI3bm5mWTFzenR2ZlZsOUQ4ZG1nVCtUQm5PT1Y2eVdqMWdt
NWJTMUR4UVNMZ05tdEt4Sjh0QWgydSIKKyAgICAiZEVPYnZjcFNoUDIySXRPVmpTYW1wUnVBdVJH
MjZaZW1FYkdDSTNKNk1xeDN5Nm0rNkh3dWx0c2d0ZHpEZ3JGZSIKKyAgICAicUpmVThiYmRidTJw
aTQ3WTRGZEpLMEhMZmZsNVJ3PT0iOworICAgIAorICAgIE5TRGF0YSAqZGVyRW5jb2RlZENlcnRp
ZmljYXRlID0gW1tbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6cGVt
RW5jb2RlZENlcnRpZmljYXRlIG9wdGlvbnM6MF0gYXV0b3JlbGVhc2VdOworICAgIFJldGFpblB0
cjxTZWNDZXJ0aWZpY2F0ZVJlZj4gY2VydGlmaWNhdGUgPSBhZG9wdENGKFNlY0NlcnRpZmljYXRl
Q3JlYXRlV2l0aERhdGEobnVsbHB0ciwgKF9fYnJpZGdlIENGRGF0YVJlZilkZXJFbmNvZGVkQ2Vy
dGlmaWNhdGUpKTsKKyAgICAKKyAgICBOU0RhdGEgKmRlckVuY29kZWRQcml2YXRlS2V5ID0gW1tb
TlNEYXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6cGVtRW5jb2RlZFByaXZh
dGVLZXkgb3B0aW9uczowXSBhdXRvcmVsZWFzZV07CisgICAgTlNEaWN0aW9uYXJ5KiBvcHRpb25z
ID0gQHsKKyAgICAgICAgKGlkKWtTZWNBdHRyS2V5VHlwZTogKGlkKWtTZWNBdHRyS2V5VHlwZVJT
QSwKKyAgICAgICAgKGlkKWtTZWNBdHRyS2V5Q2xhc3M6IChpZClrU2VjQXR0cktleUNsYXNzUHJp
dmF0ZSwKKyAgICAgICAgKGlkKWtTZWNBdHRyS2V5U2l6ZUluQml0czogQDQwOTYsCisgICAgfTsK
KyAgICBjb25zdCBOU1VJbnRlZ2VyIHBlbUVuY29kZWRQcml2YXRlS2V5SGVhZGVyTGVuZ3RoID0g
MjY7CisgICAgQ0ZFcnJvclJlZiBlcnJvciA9IG51bGxwdHI7CisgICAgUmV0YWluUHRyPFNlY0tl
eVJlZj4gcHJpdmF0ZUtleSA9IGFkb3B0Q0YoU2VjS2V5Q3JlYXRlV2l0aERhdGEoKF9fYnJpZGdl
IENGRGF0YVJlZilbZGVyRW5jb2RlZFByaXZhdGVLZXkgc3ViZGF0YVdpdGhSYW5nZTpOU01ha2VS
YW5nZShwZW1FbmNvZGVkUHJpdmF0ZUtleUhlYWRlckxlbmd0aCwgZGVyRW5jb2RlZFByaXZhdGVL
ZXkubGVuZ3RoIC0gcGVtRW5jb2RlZFByaXZhdGVLZXlIZWFkZXJMZW5ndGgpXSwgKF9fYnJpZGdl
IENGRGljdGlvbmFyeVJlZilvcHRpb25zLCAmZXJyb3IpKTsKKyAgICBFWFBFQ1RfTlVMTChlcnJv
cik7CisgICAgRVhQRUNUX05PVF9OVUxMKHByaXZhdGVLZXkuZ2V0KCkpOworCisgICAgU2VjS2V5
Y2hhaW5SZWYga2V5Y2hhaW5SZWYgPSBudWxscHRyOworICAgIGNvbnN0IGNoYXIqIGtleWNoYWlu
UGFzc3dvcmQgPSAidGVzdHBhc3N3b3JkIjsKKyAgICBOU1N0cmluZyAqa2V5Y2hhaW5QYXRoID0g
W05TVGVtcG9yYXJ5RGlyZWN0b3J5KCkgc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAi
VGVzdEtleWNoYWluIl07CisgICAgT1NTdGF0dXMgc3RhdHVzID0gU2VjS2V5Y2hhaW5DcmVhdGUo
W2tleWNoYWluUGF0aCBVVEY4U3RyaW5nXSwgc3RybGVuKGtleWNoYWluUGFzc3dvcmQpLCBrZXlj
aGFpblBhc3N3b3JkLCBOTywgbnVsbHB0ciwgJmtleWNoYWluUmVmKTsKKyAgICBFWFBFQ1RfVFJV
RShzdGF0dXMgPT0gZXJyU2VjU3VjY2Vzcyk7CisgICAgUmV0YWluUHRyPFNlY0tleWNoYWluUmVm
PiBrZXljaGFpbiA9IGFkb3B0Q0Yoa2V5Y2hhaW5SZWYpOworICAgIEVYUEVDVF9OT1RfTlVMTChr
ZXljaGFpbik7CisKKyAgICBTZWNFeHRlcm5hbEl0ZW1UeXBlIHR5cGUgPSBrU2VjSXRlbVR5cGVQ
cml2YXRlS2V5OworICAgIHN0YXR1cyA9IFNlY0l0ZW1JbXBvcnQoKF9fYnJpZGdlIENGRGF0YVJl
ZilkZXJFbmNvZGVkUHJpdmF0ZUtleSwgbnVsbHB0ciwgbnVsbHB0ciwgJnR5cGUsIDAsIG51bGxw
dHIsIGtleWNoYWluLmdldCgpLCBudWxscHRyKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0g
ZXJyU2VjU3VjY2Vzcyk7CisKKyAgICBTZWNJZGVudGl0eVJlZiBpZGVudGl0eVJlZiA9IG51bGxw
dHI7CisgICAgc3RhdHVzID0gU2VjSWRlbnRpdHlDcmVhdGVXaXRoQ2VydGlmaWNhdGUoa2V5Y2hh
aW4uZ2V0KCksIGNlcnRpZmljYXRlLmdldCgpLCAmaWRlbnRpdHlSZWYpOworICAgIEVYUEVDVF9O
T1RfTlVMTChpZGVudGl0eVJlZik7CisgICAgRVhQRUNUX1RSVUUoc3RhdHVzID09IGVyclNlY1N1
Y2Nlc3MpOworICAgIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gaWRlbnRpdHkgPSBhZG9wdENG
KGlkZW50aXR5UmVmKTsKKyAgICAKKyAgICByZXR1cm4geworICAgICAgICBbTlNVUkxDcmVkZW50
aWFsIGNyZWRlbnRpYWxXaXRoSWRlbnRpdHk6aWRlbnRpdHkuZ2V0KCkgY2VydGlmaWNhdGVzOkBb
KGlkKWNlcnRpZmljYXRlLmdldCgpXSBwZXJzaXN0ZW5jZTpOU1VSTENyZWRlbnRpYWxQZXJzaXN0
ZW5jZU5vbmVdLAorICAgICAgICBrZXljaGFpblBhdGgKKyAgICB9OworfQorCitzdGF0aWMgYm9v
bCBuYXZpZ2F0aW9uRmluaXNoZWQ7CitzdGF0aWMgUmV0YWluUHRyPE5TU3RyaW5nPiBrZXljaGFp
blBhdGg7CisKK0BpbnRlcmZhY2UgQ2hhbGxlbmdlRGVsZWdhdGUgOiBOU09iamVjdCA8V0tOYXZp
Z2F0aW9uRGVsZWdhdGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBDaGFsbGVuZ2VEZWxlZ2F0
ZQorCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmluaXNoTmF2aWdh
dGlvbjoobnVsbF91bnNwZWNpZmllZCBXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uCit7CisgICAg
bmF2aWdhdGlvbkZpbmlzaGVkID0gdHJ1ZTsKK30KKworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwg
KikpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBOU1VSTFByb3RlY3Rpb25TcGFjZSAqcHJvdGVj
dGlvblNwYWNlID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZTsKKyAgICBFWFBFQ1RfTlVMTChj
aGFsbGVuZ2UucHJvcG9zZWRDcmVkZW50aWFsKTsKKyAgICBFWFBFQ1RfRVEoY2hhbGxlbmdlLnBy
ZXZpb3VzRmFpbHVyZUNvdW50LCAwKTsKKyAgICBFWFBFQ1RfVFJVRShbcHJvdGVjdGlvblNwYWNl
LnJlYWxtIGlzRXF1YWxUb1N0cmluZzpAInRlc3RyZWFsbSJdKTsKKyAgICBFWFBFQ1RfRkFMU0Uo
cHJvdGVjdGlvblNwYWNlLnJlY2VpdmVzQ3JlZGVudGlhbFNlY3VyZWx5KTsKKyAgICBFWFBFQ1Rf
RkFMU0UocHJvdGVjdGlvblNwYWNlLmlzUHJveHkpOworICAgIEVYUEVDVF9UUlVFKFtwcm90ZWN0
aW9uU3BhY2UuaG9zdCBpc0VxdWFsVG9TdHJpbmc6QCIxMjcuMC4wLjEiXSk7CisgICAgRVhQRUNU
X05VTEwocHJvdGVjdGlvblNwYWNlLnByb3h5VHlwZSk7CisgICAgRVhQRUNUX1RSVUUoW3Byb3Rl
Y3Rpb25TcGFjZS5wcm90b2NvbCBpc0VxdWFsVG9TdHJpbmc6TlNVUkxQcm90ZWN0aW9uU3BhY2VI
VFRQXSk7CisgICAgRVhQRUNUX1RSVUUoW3Byb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvbk1l
dGhvZCBpc0VxdWFsVG9TdHJpbmc6TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZEhUVFBCYXNpY10p
OworICAgIEVYUEVDVF9FUShbKE5TSFRUUFVSTFJlc3BvbnNlICopY2hhbGxlbmdlLmZhaWx1cmVS
ZXNwb25zZSBzdGF0dXNDb2RlXSwgNDAxKTsKKworICAgIGF1dG8gcGFpciA9IGNyZWRlbnRpYWxX
aXRoSWRlbnRpdHlBbmRLZXljaGFpblBhdGgoKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VS
TFNlc3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgcGFpci5maXJzdC5nZXQoKSk7Cisg
ICAga2V5Y2hhaW5QYXRoID0gV1RGTW92ZShwYWlyLnNlY29uZCk7Cit9CisKK0BlbmQKKworbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKENoYWxsZW5nZSwgU2VjSWRlbnRpdHkpCit7
CisgICAgVENQU2VydmVyIHNlcnZlcihbXSAoYXV0byBzb2NrZXQpIHsKKyAgICAgICAgY2hhciBy
ZWFkQnVmZmVyWzEwMDBdOworICAgICAgICBhdXRvIGJ5dGVzUmVhZCA9IDo6cmVhZChzb2NrZXQs
IHJlYWRCdWZmZXIsIHNpemVvZihyZWFkQnVmZmVyKSk7CisgICAgICAgIEVYUEVDVF9HVChieXRl
c1JlYWQsIDApOworICAgICAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVz
UmVhZCkgPCBzaXplb2YocmVhZEJ1ZmZlcikpOworICAgICAgICAKKyAgICAgICAgY29uc3QgY2hh
ciogY2hhbGxlbmdlSGVhZGVyID0KKyAgICAgICAgIkhUVFAvMS4xIDQwMSBVbmF1dGhvcml6ZWRc
clxuIgorICAgICAgICAiRGF0ZTogU2F0LCAyMyBNYXIgMjAxOSAwNjoyOTowMSBHTVRcclxuIgor
ICAgICAgICAiQ29udGVudC1MZW5ndGg6IDBcclxuIgorICAgICAgICAiV1dXLUF1dGhlbnRpY2F0
ZTogQmFzaWMgcmVhbG09XCJ0ZXN0cmVhbG1cIlxyXG5cclxuIjsKKyAgICAgICAgYXV0byBieXRl
c1dyaXR0ZW4gPSA6OndyaXRlKHNvY2tldCwgY2hhbGxlbmdlSGVhZGVyLCBzdHJsZW4oY2hhbGxl
bmdlSGVhZGVyKSk7CisgICAgICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVz
V3JpdHRlbiksIHN0cmxlbihjaGFsbGVuZ2VIZWFkZXIpKTsKKyAgICAgICAgCisgICAgICAgIGJ5
dGVzUmVhZCA9IDo6cmVhZChzb2NrZXQsIHJlYWRCdWZmZXIsIHNpemVvZihyZWFkQnVmZmVyKSk7
CisgICAgICAgIEVYUEVDVF9HVChieXRlc1JlYWQsIDApOworICAgICAgICBFWFBFQ1RfVFJVRShz
dGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzUmVhZCkgPCBzaXplb2YocmVhZEJ1ZmZlcikpOworICAg
ICAgICAKKyAgICAgICAgY29uc3QgY2hhciogcmVzcG9uc2VIZWFkZXIgPQorICAgICAgICAiSFRU
UC8xLjEgMjAwIE9LXHJcbiIKKyAgICAgICAgIkNvbnRlbnQtTGVuZ3RoOiAxM1xyXG5cclxuIgor
ICAgICAgICAiSGVsbG8sIFdvcmxkISI7CisgICAgICAgIGJ5dGVzV3JpdHRlbiA9IDo6d3JpdGUo
c29ja2V0LCByZXNwb25zZUhlYWRlciwgc3RybGVuKHJlc3BvbnNlSGVhZGVyKSk7CisgICAgICAg
IEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzV3JpdHRlbiksIHN0cmxlbihyZXNw
b25zZUhlYWRlcikpOworICAgIH0pOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tX
ZWJWaWV3IG5ld10pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtDaGFsbGVuZ2VEZWxl
Z2F0ZSBuZXddKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUu
Z2V0KCldOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJo
dHRwOi8vMTI3LjAuMC4xOiVkLyIsIHNlcnZlci5wb3J0KCldXV1dOworCisgICAgVXRpbDo6cnVu
KCZuYXZpZ2F0aW9uRmluaXNoZWQpOworICAgIAorICAgIEVYUEVDVF9OT1RfTlVMTChrZXljaGFp
blBhdGguZ2V0KCkpOworICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOworICAgIFtbTlNGaWxlTWFu
YWdlciBkZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0UGF0aDprZXljaGFpblBhdGguZ2V0KCkg
ZXJyb3I6JmVycm9yXTsKKyAgICBFWFBFQ1RfTlVMTChlcnJvcik7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365903</attachid>
            <date>2019-03-25 14:43:13 -0700</date>
            <delta_ts>2019-03-25 22:05:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196213-20190325144312.patch</filename>
            <type>text/plain</type>
            <size>20343</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDM0NjApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAzLTI1ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRG8gbm90IHRlcm1p
bmF0ZSB0aGUgTmV0d29ya1Byb2Nlc3MgaWYgYSB0aGlyZCBwYXJ0eSBhcHBsaWNhdGlvbiBzZW5k
cyBhIE5TQ3JlZGVudGlhbCB3aXRoIGEgU2VjSWRlbnRpdHlSZWYKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjIxMworCisgICAgICAgIFJldmlld2Vk
IGJ5IEdlb2ZmIEdhcmVuLgorCisgICAgICAgIEEgcmVsZWFzZSBhc3NlcnRpb24gYWRkZWQgaW4g
cjIzMDIyNSB3YXMgcmVhY2hhYmxlLiAgSSByZWFjaGVkIGl0IGluIGEgdW5pdCB0ZXN0IHRoYXQg
cmVzcG9uZHMgdG8gYSBjaGFsbGVuZ2UKKyAgICAgICAgd2l0aCBhIFNlY0lkZW50aXR5UmVmIHdy
YXBwZWQgaW4gYW4gTlNDcmVkZW50aWFsLgorCisgICAgICAgICogU2hhcmVkL2NmL0FyZ3VtZW50
Q29kZXJzQ0YuY3BwOgorICAgICAgICAoSVBDOjpkZWNvZGUpOgorCiAyMDE5LTAzLTI1ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRW5hYmxl
IElQQyBzZW5kaW5nIGFuZCByZWNlaXZpbmcgbm9uLWRlZmF1bHQtY29uc3RydWN0aWJsZSB0eXBl
cwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAJ
KHJldmlzaW9uIDI0MzQ1OCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29k
ZXJzQ0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OTcsMTAgKzY5Nyw2IEBAIHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIFNlY0lkZW50aXQKIAogYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgUmV0YWluUHRyPFNlY0lkZW50aXR5UmVmPiYgcmVzdWx0KQogewotI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIFJFTEVBU0VfQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1By
aXZpbGVnZTo6Q2FuQWNjZXNzQ3JlZGVudGlhbHMpKTsKLSNlbmRpZgotCiAgICAgUmV0YWluUHRy
PFNlY0NlcnRpZmljYXRlUmVmPiBjZXJ0aWZpY2F0ZTsKICAgICBpZiAoIWRlY29kZShkZWNvZGVy
LCBjZXJ0aWZpY2F0ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTcxNiw2ICs3MTIsMTEg
QEAgYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPAogICAgIGlmICghZGVj
b2RlKGRlY29kZXIsIGtleURhdGEpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyAgICBpZiAoIWhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVn
ZTo6Q2FuQWNjZXNzQ3JlZGVudGlhbHMpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgor
CiAgICAgU2VjS2V5UmVmIGtleSA9IG51bGxwdHI7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
ICAgICBpZiAoc2VjS2V5UmVmRGVjb2RpbmdBbGxvd2VkKQpJbmRleDogVG9vbHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQzNDU4KQorKysgVG9v
bHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDMtMjUg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBE
byBub3QgdGVybWluYXRlIHRoZSBOZXR3b3JrUHJvY2VzcyBpZiBhIHRoaXJkIHBhcnR5IGFwcGxp
Y2F0aW9uIHNlbmRzIGEgTlNDcmVkZW50aWFsIHdpdGggYSBTZWNJZGVudGl0eVJlZgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MjEzCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NoYWxsZW5nZS5tbTogQWRkZWQuCisgICAgICAgIChj
cmVkZW50aWFsV2l0aElkZW50aXR5QW5kS2V5Y2hhaW5QYXRoKToKKyAgICAgICAgKC1bQ2hhbGxl
bmdlRGVsZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hOYXZpZ2F0aW9uOl0pOgorICAgICAgICAoLVtD
aGFsbGVuZ2VEZWxlZ2F0ZSB3ZWJWaWV3OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgor
CiAyMDE5LTAzLTI1ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAg
IFRlc3QgZm9yOiAxOTYwOTUgSW5iYW5kIFRleHQgVHJhY2sgY3VlcyBpbnRlcnNwZXJzZWQgd2l0
aCBEYXRhIGN1ZXMgY2FuIGRpc3BsYXkgb3V0IG9mIG9yZGVyLgpJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDI0MzQ1OCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zMTEs
NiArMzExLDcgQEAKIAkJNUMwQkY4OTQxREQ1OTlDOTAwQjAwMzI4IC8qIE1lbnVUeXBlc0Zvck1v
dXNlRXZlbnRzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gN0E5OUQ5OTMxQUQ0QTI5RDAwMzczMTQxIC8qIE1lbnVUeXBlc0Zvck1vdXNlRXZlbnRzLm1t
ICovOyB9OwogCQk1QzBCRjg5NTFERDU5OUNEMDBCMDAzMjggLyogTmF2aWdhdG9yTGFuZ3VhZ2Uu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTlEQjk3
ODFCMzIxMzdDMDBEQjM4RDQgLyogTmF2aWdhdG9yTGFuZ3VhZ2UubW0gKi87IH07CiAJCTVDMTlB
NTI0MUZEMEY2MDEwMEVFQTMyMyAvKiBDb29raWVQcml2YXRlQnJvd3NpbmcubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzE5QTUyMzFGRDBGMzI2MDBF
RUEzMjMgLyogQ29va2llUHJpdmF0ZUJyb3dzaW5nLm1tICovOyB9OworCQk1QzIzREYwQjIyNDYw
MTU4MDBGNDU0QjYgLyogQ2hhbGxlbmdlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUMyM0RGMEEyMjQ1QzlENzAwRjQ1NEI2IC8qIENoYWxsZW5nZS5t
bSAqLzsgfTsKIAkJNUMyOTM2OTMxRDVCRjcwRDAwREVBQjFFIC8qIENvb2tpZUFjY2VwdFBvbGlj
eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDMjkz
NjkxMUQ1QkY2M0UwMERFQUIxRSAvKiBDb29raWVBY2NlcHRQb2xpY3kubW0gKi87IH07CiAJCTVD
MjkzNjk2MUQ1QzAwRUQwMERFQUIxRSAvKiBDb29raWVNZXNzYWdlLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMyOTM2OTQxRDVCRkQx
OTAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRtbCAqLzsgfTsKIAkJNUM0QTg0OTUxRjdFRUZG
QzAwQUNGQzU0IC8qIENvbmZpZ3VyYXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRBODQ5NDFGN0VFRkQ0MDBBQ0ZDNTQgLyogQ29uZmlndXJh
dGlvbi5tbSAqLzsgfTsKQEAgLTE3MjAsNiArMTcyMSw3IEBACiAJCTVDMEJGODhDMURENTk1NzQw
MEIwMDMyOCAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBNZW1vcnlQcmVzc3VyZUhhbmRsZXIubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVDMEJGODhGMURENTk5OUIwMEIwMDMyOCAvKiBXZWJWaWV3Q2Fu
UGFzdGVaZXJvUG5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViVmlld0NhblBhc3RlWmVyb1BuZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NUMxOUE1MjMxRkQwRjMyNjAwRUVBMzIzIC8qIENvb2tpZVByaXZhdGVCcm93c2luZy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvb2tpZVByaXZhdGVCcm93c2lu
Zy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMyM0RGMEEyMjQ1QzlENzAwRjQ1
NEI2IC8qIENoYWxsZW5nZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IENoYWxsZW5nZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyOTM2OTEx
RDVCRjYzRTAwREVBQjFFIC8qIENvb2tpZUFjY2VwdFBvbGljeS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvb2tpZUFjY2VwdFBvbGljeS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyOTM2OTQxRDVCRkQxOTAwREVBQjFFIC8qIENvb2tpZU1l
c3NhZ2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IENvb2tpZU1lc3NhZ2UuaHRt
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM0QTg0OTQxRjdFRUZENDAwQUNGQzU0
IC8qIENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUz
MCw2ICsyNTMyLDcgQEAKIAkJCQk1Qzc1NzE1RjIyMTI0OUJEMDBCOUU1QUMgLyogQnVuZGxlUmV0
YWluUGFnZVBsdWdJbi5tbSAqLywKIAkJCQkxQzJCODE3RTFDODkxRTQyMDBBNTUyOUYgLyogQ2Fu
Y2VsRm9udFN1YnJlc291cmNlLm1tICovLAogCQkJCTFDMkI4MTgxMUM4OTFFRkEwMEE1NTI5RiAv
KiBDYW5jZWxGb250U3VicmVzb3VyY2VQbHVnSW4ubW0gKi8sCisJCQkJNUMyM0RGMEEyMjQ1QzlE
NzAwRjQ1NEI2IC8qIENoYWxsZW5nZS5tbSAqLywKIAkJCQk1Q0IxOEJBNzFGNTY0NUIyMDBFRTIz
QzQgLyogQ2xpY2tBdXRvRmlsbEJ1dHRvbi5tbSAqLywKIAkJCQlDREY5MjIzNjIxNkQxODY0MDA2
NDdBQTcgLyogQ2xvc2VXZWJWaWV3QWZ0ZXJFbnRlckZ1bGxzY3JlZW4ubW0gKi8sCiAJCQkJQ0RG
MEI3ODkyMTZENDg0MzAwNDIxRUNDIC8qIENsb3NlV2ViVmlld0R1cmluZ0VudGVyRnVsbHNjcmVl
bi5tbSAqLywKQEAgLTQwMjYsNiArNDAyOSw3IEBACiAJCQkJNTczMDNCQ0IyMDA4Mzc2NTAwMzU1
OTY1IC8qIENCT1JSZWFkZXJUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3MzAzQkM5MjAw
ODI0RDMwMDM1NTk2NSAvKiBDQk9SVmFsdWVUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3
MzAzQkNBMjAwODJDMDEwMDM1NTk2NSAvKiBDQk9SV3JpdGVyVGVzdC5jcHAgaW4gU291cmNlcyAq
LywKKwkJCQk1QzIzREYwQjIyNDYwMTU4MDBGNDU0QjYgLyogQ2hhbGxlbmdlLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRjQ0QTUzMTIyMUI4OTkwQTAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenps
ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFNjFBNDExQUU2MDA0NDdDNEMgLyogQ2xv
c2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VCNzFB
NDExQTdFMDA0NDdDNEMgLyogQ2xvc2VOZXdXaW5kb3dJbk5hdmlnYXRpb25Qb2xpY3lEZWxlZ2F0
ZS5tbSBpbiBTb3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9DaGFsbGVuZ2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0JKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0JKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwyNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lt
cG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRDUFNlcnZlci5oIgorI2ltcG9y
dCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorCitzdGF0aWMgc3RkOjpwYWly
PFJldGFpblB0cjxOU1VSTENyZWRlbnRpYWw+LCBSZXRhaW5QdHI8TlNTdHJpbmc+PiBjcmVkZW50
aWFsV2l0aElkZW50aXR5QW5kS2V5Y2hhaW5QYXRoKCkKK3sKKyAgICAvLyBDZXJ0aWZpY2F0ZSBh
bmQgcHJpdmF0ZSBrZXkgd2VyZSBnZW5lcmF0ZWQgYnkgcnVubmluZyB0aGlzIGNvbW1hbmQ6Cisg
ICAgLy8gb3BlbnNzbCByZXEgLXg1MDkgLW5ld2tleSByc2E6NDA5NiAta2V5b3V0IGtleS5wZW0g
LW91dCBjZXJ0LnBlbSAtZGF5cyAzNjUgLW5vZGVzCisgICAgLy8gYW5kIGVudGVyaW5nIHRoaXMg
aW5mb3JtYXRpb246CisgICAgLyoKKyAgICAgQ291bnRyeSBOYW1lICgyIGxldHRlciBjb2RlKSBb
XTpVUworICAgICBTdGF0ZSBvciBQcm92aW5jZSBOYW1lIChmdWxsIG5hbWUpIFtdOk5ldyBNZXhp
Y28KKyAgICAgTG9jYWxpdHkgTmFtZSAoZWcsIGNpdHkpIFtdOlNhbnRhIEZlCisgICAgIE9yZ2Fu
aXphdGlvbiBOYW1lIChlZywgY29tcGFueSkgW106U2VsZgorICAgICBPcmdhbml6YXRpb25hbCBV
bml0IE5hbWUgKGVnLCBzZWN0aW9uKSBbXTpNeXNlbGYKKyAgICAgQ29tbW9uIE5hbWUgKGVnLCBm
dWxseSBxdWFsaWZpZWQgaG9zdCBuYW1lKSBbXTpNZQorICAgICBFbWFpbCBBZGRyZXNzIFtdOm1l
QGV4YW1wbGUuY29tCisgICAgICovCisgICAgCisgICAgTlNTdHJpbmcgKnBlbUVuY29kZWRDZXJ0
aWZpY2F0ZSA9IEAiIgorICAgICJNSUlGZ0RDQ0EyZ0NDUUNLSGlQUlU1TVF1REFOQmdrcWhraUc5
dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVCaE1DIgorICAgICJWVk14RXpBUkJnTlZCQWdNQ2s1bGR5
Qk5aWGhwWTI4eEVUQVBCZ05WQkFjTUNGTmhiblJoSUVabE1RMHdDd1lEIgorICAgICJWUVFLREFS
VFpXeG1NUTh3RFFZRFZRUUxEQVpOZVhObGJHWXhDekFKQmdOVkJBTU1BazFsTVIwd0d3WUpLb1pJ
IgorICAgICJodmNOQVFrQkZnNXRaVUJsZUdGdGNHeGxMbU52YlRBZUZ3MHhPVEF6TWpNd05UVXdN
VFJhRncweU1EQXpNakl3IgorICAgICJOVFV3TVRSYU1JR0JNUXN3Q1FZRFZRUUdFd0pWVXpFVE1C
RUdBMVVFQ0F3S1RtVjNJRTFsZUdsamJ6RVJNQThHIgorICAgICJBMVVFQnd3SVUyRnVkR0VnUm1V
eERUQUxCZ05WQkFvTUJGTmxiR1l4RHpBTkJnTlZCQXNNQmsxNWMyVnNaakVMIgorICAgICJNQWtH
QTFVRUF3d0NUV1V4SFRBYkJna3Foa2lHOXcwQkNRRVdEbTFsUUdWNFlXMXdiR1V1WTI5dE1JSUNJ
akFOIgorICAgICJCZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEzcmhONFNQZzhW
WS9QdEdETktZM1Q5SklTZ2J5IgorICAgICI4WUdNSngwdk8rWVpGWm0zRzNmc1RVc3l2RHlFSHdx
cDVhYkNaUkIvQnkxUHdXa05yZnhuL1hQOFAwMzRKUGxFIgorICAgICI2aXJWaXVBWVFycVVoNms3
WlI4Q3BPTTVHRWNSWmdBVUpHR1F3TmxPa0V3YUhuTUdjOFNzSHVyZ0RQaDVYQnBnIgorICAgICJi
RHl0ZDdCSnVCMU5vSS9LSm1oY2Fqa0F1VjN2YXJTK3VQTG9mUEhOcWUrY0w4aE5ualpRd0hXYXJQ
NDVrczRlIgorICAgICJCY09EN3R3cXh1SG5WbS9GV0VycFk4V3M1czFNclBUaFVkRGFoakVNZitZ
ZkRKOUtMOHkzMDR5UzhKOGZlQ3hZIgorICAgICJmY0g0QnZnTHRKbUJOSEpnajNlTkQvRU1aakpn
ejJGc0JqckprOGtLRDMxY3crNFdwOFVGNHNrV1hDZjQ2K21OIgorICAgICJPSHAxM1BlU0NaTHlG
NFpBSGF6VVZrbkRQY2MyWU5yV1ZWMWk2bjNUMTVrSTBUNVo3YnN0ZG1BTHVTa0UyY3VKIgorICAg
ICJTVk5PNmdSK1pzVlJUbmV1UXh3V1RVME1ORWhBUEZPWDJCaEdQNWVpc2dFVXprbnhNSmRkRkRu
OVd4a2x1MUpoIgorICAgICJna3pBU0EvKzNBbWxyRlpNUGhPaGpFdWwwempnTlI1UkJsMUc4SHo5
MkxBeDVVRURCdGRMZzcxSStJOEF6UU9oIgorICAgICJkNkx0QmVrRUN4QTE2cFNhcHBnNXZjVzla
LzhONlpsc0huWjJGenRBMG5DT2Zsa29POWllak9wY3VGTjRFVllEIgorICAgICJ4SXR3Y3RLdzFM
Q2VORC9zNGttb1JSblhiWDdrOU82Y0kxVVVXTTU5NUdzdTV0UGEzM001QVpGQ2F2MmdPVnVZIgor
ICAgICJkanBwUzBIT2ZvNWh2NmNDQXdFQUFUQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFZOEVX
YUFGRWZ3N09WK29EIgorICAgICJYVVpTSVlYcTNFSDJFNXAzcTM4QWhJT0xSakJ1Qit1dHl1N1E2
cnhNTUh1dzJUdHNOK3piQVI3eXJqZnNzZUEzIgorICAgICI0VE0xeGU0Tms3TlZOSFJvWlErQzBJ
cWY5ZnZjaW9NdlQxdFRybWEwTWhLU2pGUXB4K1B2eUxWYkQ3WWRQODZMIgorICAgICJtZWVoS3FV
N2gxcExHQWlHd2pvYVo5WWJoNkt1cS9NVEFIeTNEOCt3azdCMzZWQnhGNmRpVmxVUFpKWlFXS0p5
IgorICAgICJNS3k5RzNzemUxWkd0OVdlRTBBTXZrTjJISWVmMEhUS0NVWjNlQnZlY09NaWp4TDBX
aFdvNVF5ZjVrNnlsQ2FVIgorICAgICIyZngrTThEZkRjd0ZvN3RTZ0x4U0szR0NGcHhQZmlEdDZR
azhjOXRRbjVTMWdZM3Q2TEp1d1ZDRndVSVhsTmtCIgorICAgICJKRDcrY1oxWi90Q3JFaHpqM1lD
azB1VVU4Q2lmb1UrNEZHK0hHRlArU1B6dHNZRTA1NW1TajMrRXNoK295b1ZCIgorICAgICJnQkg5
MHNFMlQxaTBlTkk4ZjYxb1Nnd1lGZUhzZjdmQzcxWEVYTEZSK0d3TmRtd3FsbXdsRFpFcFR1N0Jv
Tk4rIgorICAgICJxNytUZmsxTVJrSmxMMVBINll1L0lQaFppTmg0dHlJcURPdGxZZnpwNTc3QStP
VVUrcTVQUFJGUklzcWhlT3h0IgorICAgICJtTmxIeDRVemQ0VTNJVGZtb2dKYXpqcXdZTzJ2aUJa
WTRqVVFteVpzNzVlSC9qaVVGSFdSc2hhM0Fkblc1TFdhIgorICAgICJHM1BGblliVzh1ckgwTlNK
Ry9XKy85REErWTdBYTBjczRUUHB1QkdaME5VMVc5NE9vQ01vNGxrTzZIL3k2TGV1IgorICAgICIz
dmpaRDN5OWtaazdtcmU5WEh3a0k4TWRLNXM9IjsKKyAgICAKKyAgICBOU1N0cmluZyAqcGVtRW5j
b2RlZFByaXZhdGVLZXkgPSBAIiIKKyAgICAiTUlJSlFnSUJBREFOQmdrcWhraUc5dzBCQVFFRkFB
U0NDU3d3Z2drb0FnRUFBb0lDQVFEZXVFM2hJK0R4Vmo4KyIKKyAgICAiMFlNMHBqZFAwa2hLQnZM
eGdZd25IUzg3NWhrVm1iY2JkK3hOU3pLOFBJUWZDcW5scHNKbEVIOEhMVS9CYVEydCIKKyAgICAi
L0dmOWMvdy9UZmdrK1VUcUt0V0s0QmhDdXBTSHFUdGxId0trNHprWVJ4Rm1BQlFrWVpEQTJVNlFU
Qm9lY3daeiIKKyAgICAieEt3ZTZ1QU0rSGxjR21Cc1BLMTNzRW00SFUyZ2o4b21hRnhxT1FDNVhl
OXF0TDY0OHVoODhjMnA3NXd2eUUyZSIKKyAgICAiTmxEQWRacXMvam1Temg0Rnc0UHUzQ3JHNGVk
V2I4VllTdWxqeGF6bXpVeXM5T0ZSME5xR01ReC81aDhNbjBvdiIKKyAgICAiekxmVGpKTHdueDk0
TEZoOXdmZ0crQXUwbVlFMGNtQ1BkNDBQOFF4bU1tRFBZV3dHT3NtVHlRb1BmVnpEN2hhbiIKKyAg
ICAieFFYaXlSWmNKL2pyNlkwNGVuWGM5NUlKa3ZJWGhrQWRyTlJXU2NNOXh6WmcydFpWWFdMcWZk
UFhtUWpSUGxudCIKKyAgICAidXkxMllBdTVLUVRaeTRsSlUwN3FCSDVteFZGT2Q2NURIQlpOVFF3
MFNFQThVNWZZR0VZL2w2S3lBUlRPU2ZFdyIKKyAgICAibDEwVU9mMWJHU1c3VW1HQ1RNQklELzdj
Q2FXc1ZrdytFNkdNUzZYVE9PQTFIbEVHWFVid2ZQM1lzREhsUVFNRyIKKyAgICAiMTB1RHZVajRq
d0ROQTZGM291MEY2UVFMRURYcWxKcW1tRG05eGIxbi93M3BtV3dlZG5ZWE8wRFNjSTUrV1NnNyIK
KyAgICAiMko2TTZseTRVM2dSVmdQRWkzQnkwckRVc0o0MFAremlTYWhGR2RkdGZ1VDA3cHdqVlJS
WXpuM2theTdtMDlyZiIKKyAgICAiY3prQmtVSnEvYUE1VzVoMk9tbExRYzUram1HL3B3SURBUUFC
QW9JQ0FHcmEvQ3AvZjBYcXZrOVNUK1BydDIvcCIKKyAgICAia050TGVEWGNsTFNUY1AwSkNaSHVm
UWFGdys3Vm5GTHBxZTRHdkxxOUJsbGN6OFZPdlF3cmJlL0N3TlcrVnhDOCIKKyAgICAiUk1qZ2Uy
cnFBQ2d3R2hPeDF0ODdsNDZOa1VRdzdFeTBsQ2xlOGtyK01HZ0dHb1pxck1GZEtJUlVvTXY0bm1R
NiIKKyAgICAidG1jMUZIdjVwTFJlOVErTHA1bllRd0dvWW1ab1VPdWVvT2FPTDA4bTQ5cEdYUWtp
TjhwSkRNeFNmTzNKdnRzdSIKKyAgICAiNGNxSWI2a09RL2RPMUlzMUNUdlVSbGQxSVlMSDdZdVNo
aTRaRXgyZzJhYzJVeXZ0NllteHh2TW1BakJTS3BHZCIKKyAgICAibG9pZXBobzMvTnJER1VLZHYz
cTlRWXl6ckE4dzlHVDMyTERHcWdCWEppMXNjQkk4Y0V4a3A2UDRpRGxsaHY3cyIKKyAgICAidlpz
c3B2b2JSSmEzTzF6azg2M0xIWGEyNEpDbnl1emltcWV6WjJPbGg3bDRvbEhvWUQ2VUZDOWpmZDRL
Y0hSZyIKKyAgICAiMWM0c3lxdC9uOEFLLzFzMWVCZlM5ZHpiNUNmanQ5TXRLWXNseHZMenExV3dP
SU53ejhySVl1UmkwUGNMbTlocyIKKyAgICAibCtVMHUvekIzN2VNZ3Y2K2l3RFhrMWZTamJ1WXNF
L2JFVFdZa25LR05GRkw1SlNpS1Y3V0NwbWdOVFRyckU0SyIKKyAgICAiUzhFNmhSOXVQT0Fhb3c3
dlBDQ3Q0eExYLzQ4bDJFSTZaZXE2cU9wcTFsSjJxY3k4cjR0eXVRZ05STFFNa1pnMSIKKyAgICAi
QXhRbDZ2blE4Q3U0aXUrTkloZWYweTlaN3FrZk52WmVDajVHbEZCOWMyWWpWOFkybWRXZkpCNHFX
SzNaLytNSiIKKyAgICAiUU9UQ0tSejcvTHhMTkJVZXBSakpBb0lCQVFEM1pzVjV0V1U5WlNLY1ZK
OURDN1RaazBQK2xoY2lzWnIwbkwwdCIKKyAgICAiUFF1UU8rcEh2UEkxTXFSbk5za0hKaHlQbnFW
Q2krZHA4OXRLL0l0NTkwVUxsOG9zNlVDMUZoeXRCUG9UMVlQZCIKKyAgICAiV0dXZXAycE9jN2JW
cGk0aXAzMXkrSW1mZ2VaeUp0TUFUZG1lM2tCUEFPZTVOR0U5R2lnL2w1bnFMeWIwMnNkMSIKKyAg
ICAiUVc3TzBHZHFMeDNEcEx3NFNMbGhNZjZhRTB1R1JTOHNmQjA4NWU0REduNTRPMndFVnVTWnFa
bDVOTkVmMzVSeiIKKyAgICAiWGdpbTNoK1JXRjFaRlNRempCL3NtTjBaaCt2M0l6N3ZFSjFoMHl3
VjZvK0d6dkhrUDlIRTZnTElodHlWOE9FdyIKKyAgICAidmx5WWsxR2E3cFVWR1JoOG84T01lNlJS
OURRaTdKcUM0ZUk3R2NrbUJ6YXF6SmNEQW9JQkFRRG1kZTZBVGV3MyIKKyAgICAiSDliUUs2eG5i
TUluY3ovQ09wSUlTZGxjRmIyM0FIR0ViNGI0VmhKRkJOd3hyTkw2dEhLU0ZMZVlaRkxoVGRoeCIK
KyAgICAiUGZYeVVMSE5mNW96ZEVrbDBXcmxlcm9EZG9nYkN5V2c1dUpwOS9RNjhzYndiR3I4Q0Fs
TzdaSFlUcmp1UWYxSyIKKyAgICAiQVM5cENtNzdLUDNrMmQzVWxHK3BlbERqWExvQnppWHEwTmp4
SnBNejQ1dnJJeDhyU1d6Rk5qTUdqWFQzZlhhUyIKKyAgICAiOTYyay8wQVhlaTUvYmZ1aEJ4bG03
UG5pMGJRSklXRmtlYVV1R2xyT2FIRFJ4VWlYMXI5SVpTOXd2NWxrMVB0ZyIKKyAgICAiaWRwYmNX
eXcxOGNGR1R2amRLaFJiWkg4RXNibXptTk5zQ0dkZ0NNcUZrS1lzVzE2UUtvQ2ovTkFvdkkzbjBx
biIKKyAgICAiNlZvUmEwc0dtVEdOQW9JQkFDbC9tcVpFc0J1eFNESHkyOWdTTVo3QlhnbHBRYTQz
SG1mamxyUHM1bkNtTERFbSIKKyAgICAiVjNabTdUN0c2TWVETkEwL0xqZFFZbHZhWkxGYVZVYjdI
Q0RLc0VZQ1JqRlo2U3Q0aHo0bWRYeitZK1ZON2I0RiIKKyAgICAiR09rVGUrK2lLcC9MWXNKWHRz
RDFGRFdiMldJVm83SGMxQUd6OEkrZ1FKb1NJdVl1VEptTHpTTTArNUpEVU9WMSIKKyAgICAieThk
U2JhUC9SdUV2MHFZamtHcVFWazVlNzBTVXlPektWK1p4Q1RoZEh2Rkxpb3ZUT1RUZ2V2VXpFNzV4
eWRmRyIKKyAgICAiZTdvQ210VHVyemd2bC82OVZ1NVlnaWoxbjRDV1BISGNxNENRVy9ET1o3QmhG
R0J3aHJXNzl2b0hKRjhQYndQTyIKKyAgICAiKzBEVHVkREdZM25BRDVzVG5GOHpVdU9iWWloSnRm
emovdDU5Zk9NQ2dnRUJBSVl1dUJVQVNiNjJ6UTRidjUvZyIKKyAgICAiVlJNL0tTcGZpOU5EbkVq
Zlo3eDdoNXpDaXVWZ3gvWmpwQWxRUk84dnpWMThyb0VPT0t0eDljbkpkOEFFZCtIYyIKKyAgICAi
bjkzQm9TMWh4MG1oc1ZoKzFUUlp3eWp5QlhZSnBxd0Qyd3oxTXoxWE9JUTZFcWJNL3lQS1REMmdm
d2c3eU81MyIKKyAgICAicVl4cnhac1dhZ1ZWY0c5UStBUkJFUmF0VHdMcG9OK2ZjSkx4dWg0ci9D
YS9MZXBzeG1Pckt6VGEvTUdLMUxoVyIKKyAgICAicldnSWsyL29nRVBMU3B0ajJkMVBFRE8rR0F6
Rno0VktqaFcxTmxVaDlmR2k2SUpQTEhMbkJ3M29kYmkwUzhLVCIKKyAgICAiZ0E5WjUrTEJjNWNs
b3RBUDVydFFBOFdoL1pDRW9QVEtUVEEyYmpXMkhNYXRKY2JHbVIwRnBDUXIzQU0wWTFTTyIKKyAg
ICAiTWFrQ2dnRUFMcnU2UVo2WVV3SkpHNDVIMWVxL3JQZERZOHRxcWpKVlZpS29CVnZ6S2ovWGZK
WllFVlFpSXc1cCIKKyAgICAidW9HaERveUZ1RlVlSWgvZDFKYzJJcnV5Mldqb09raVFZdEl1Z0RI
SHhScmtMZFFjalBobENUQ0UvbW15U0p0KyIKKyAgICAiYmtVYmlISWJROGRKNXlqOFNLcjBiSHpx
RXRPeTkvSmVSamtZR0hDNmJWV3BxNUZBMk1CaGY0ZE5qSjRVRGxuVCIKKyAgICAidnVlUGNUanI3
bm5mWTFzenR2ZlZsOUQ4ZG1nVCtUQm5PT1Y2eVdqMWdtNWJTMUR4UVNMZ05tdEt4Sjh0QWgydSIK
KyAgICAiZEVPYnZjcFNoUDIySXRPVmpTYW1wUnVBdVJHMjZaZW1FYkdDSTNKNk1xeDN5Nm0rNkh3
dWx0c2d0ZHpEZ3JGZSIKKyAgICAicUpmVThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iOwor
ICAgIAorICAgIE5TRGF0YSAqZGVyRW5jb2RlZENlcnRpZmljYXRlID0gW1tbTlNEYXRhIGFsbG9j
XSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6cGVtRW5jb2RlZENlcnRpZmljYXRlIG9wdGlv
bnM6MF0gYXV0b3JlbGVhc2VdOworICAgIFJldGFpblB0cjxTZWNDZXJ0aWZpY2F0ZVJlZj4gY2Vy
dGlmaWNhdGUgPSBhZG9wdENGKFNlY0NlcnRpZmljYXRlQ3JlYXRlV2l0aERhdGEobnVsbHB0ciwg
KF9fYnJpZGdlIENGRGF0YVJlZilkZXJFbmNvZGVkQ2VydGlmaWNhdGUpKTsKKyAgICAKKyAgICBO
U0RhdGEgKmRlckVuY29kZWRQcml2YXRlS2V5ID0gW1tbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJh
c2U2NEVuY29kZWRTdHJpbmc6cGVtRW5jb2RlZFByaXZhdGVLZXkgb3B0aW9uczowXSBhdXRvcmVs
ZWFzZV07CisgICAgTlNEaWN0aW9uYXJ5KiBvcHRpb25zID0gQHsKKyAgICAgICAgKGlkKWtTZWNB
dHRyS2V5VHlwZTogKGlkKWtTZWNBdHRyS2V5VHlwZVJTQSwKKyAgICAgICAgKGlkKWtTZWNBdHRy
S2V5Q2xhc3M6IChpZClrU2VjQXR0cktleUNsYXNzUHJpdmF0ZSwKKyAgICAgICAgKGlkKWtTZWNB
dHRyS2V5U2l6ZUluQml0czogQDQwOTYsCisgICAgfTsKKyAgICBjb25zdCBOU1VJbnRlZ2VyIHBl
bUVuY29kZWRQcml2YXRlS2V5SGVhZGVyTGVuZ3RoID0gMjY7CisgICAgQ0ZFcnJvclJlZiBlcnJv
ciA9IG51bGxwdHI7CisgICAgUmV0YWluUHRyPFNlY0tleVJlZj4gcHJpdmF0ZUtleSA9IGFkb3B0
Q0YoU2VjS2V5Q3JlYXRlV2l0aERhdGEoKF9fYnJpZGdlIENGRGF0YVJlZilbZGVyRW5jb2RlZFBy
aXZhdGVLZXkgc3ViZGF0YVdpdGhSYW5nZTpOU01ha2VSYW5nZShwZW1FbmNvZGVkUHJpdmF0ZUtl
eUhlYWRlckxlbmd0aCwgZGVyRW5jb2RlZFByaXZhdGVLZXkubGVuZ3RoIC0gcGVtRW5jb2RlZFBy
aXZhdGVLZXlIZWFkZXJMZW5ndGgpXSwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilvcHRpb25z
LCAmZXJyb3IpKTsKKyAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgRVhQRUNUX05PVF9OVUxM
KHByaXZhdGVLZXkuZ2V0KCkpOworCisgICAgU2VjS2V5Y2hhaW5SZWYga2V5Y2hhaW5SZWYgPSBu
dWxscHRyOworICAgIGNvbnN0IGNoYXIqIGtleWNoYWluUGFzc3dvcmQgPSAidGVzdHBhc3N3b3Jk
IjsKKyAgICBOU1N0cmluZyAqa2V5Y2hhaW5QYXRoID0gW05TVGVtcG9yYXJ5RGlyZWN0b3J5KCkg
c3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OkAiVGVzdEtleWNoYWluIl07CisgICAgT1NT
dGF0dXMgc3RhdHVzID0gU2VjS2V5Y2hhaW5DcmVhdGUoW2tleWNoYWluUGF0aCBVVEY4U3RyaW5n
XSwgc3RybGVuKGtleWNoYWluUGFzc3dvcmQpLCBrZXljaGFpblBhc3N3b3JkLCBOTywgbnVsbHB0
ciwgJmtleWNoYWluUmVmKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gZXJyU2VjU3VjY2Vz
cyk7CisgICAgUmV0YWluUHRyPFNlY0tleWNoYWluUmVmPiBrZXljaGFpbiA9IGFkb3B0Q0Yoa2V5
Y2hhaW5SZWYpOworICAgIEVYUEVDVF9OT1RfTlVMTChrZXljaGFpbik7CisKKyAgICBTZWNFeHRl
cm5hbEl0ZW1UeXBlIHR5cGUgPSBrU2VjSXRlbVR5cGVQcml2YXRlS2V5OworICAgIHN0YXR1cyA9
IFNlY0l0ZW1JbXBvcnQoKF9fYnJpZGdlIENGRGF0YVJlZilkZXJFbmNvZGVkUHJpdmF0ZUtleSwg
bnVsbHB0ciwgbnVsbHB0ciwgJnR5cGUsIDAsIG51bGxwdHIsIGtleWNoYWluLmdldCgpLCBudWxs
cHRyKTsKKyAgICBFWFBFQ1RfVFJVRShzdGF0dXMgPT0gZXJyU2VjU3VjY2Vzcyk7CisKKyAgICBT
ZWNJZGVudGl0eVJlZiBpZGVudGl0eVJlZiA9IG51bGxwdHI7CisgICAgc3RhdHVzID0gU2VjSWRl
bnRpdHlDcmVhdGVXaXRoQ2VydGlmaWNhdGUoa2V5Y2hhaW4uZ2V0KCksIGNlcnRpZmljYXRlLmdl
dCgpLCAmaWRlbnRpdHlSZWYpOworICAgIEVYUEVDVF9OT1RfTlVMTChpZGVudGl0eVJlZik7Cisg
ICAgRVhQRUNUX1RSVUUoc3RhdHVzID09IGVyclNlY1N1Y2Nlc3MpOworICAgIFJldGFpblB0cjxT
ZWNJZGVudGl0eVJlZj4gaWRlbnRpdHkgPSBhZG9wdENGKGlkZW50aXR5UmVmKTsKKyAgICAKKyAg
ICByZXR1cm4geworICAgICAgICBbTlNVUkxDcmVkZW50aWFsIGNyZWRlbnRpYWxXaXRoSWRlbnRp
dHk6aWRlbnRpdHkuZ2V0KCkgY2VydGlmaWNhdGVzOkBbKGlkKWNlcnRpZmljYXRlLmdldCgpXSBw
ZXJzaXN0ZW5jZTpOU1VSTENyZWRlbnRpYWxQZXJzaXN0ZW5jZU5vbmVdLAorICAgICAgICBrZXlj
aGFpblBhdGgKKyAgICB9OworfQorCitzdGF0aWMgYm9vbCBuYXZpZ2F0aW9uRmluaXNoZWQ7Citz
dGF0aWMgUmV0YWluUHRyPE5TU3RyaW5nPiBrZXljaGFpblBhdGg7CisKK0BpbnRlcmZhY2UgQ2hh
bGxlbmdlRGVsZWdhdGUgOiBOU09iamVjdCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+CitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBDaGFsbGVuZ2VEZWxlZ2F0ZQorCistICh2b2lkKXdlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgZGlkRmluaXNoTmF2aWdhdGlvbjoobnVsbF91bnNwZWNpZmllZCBX
S05hdmlnYXRpb24gKiluYXZpZ2F0aW9uCit7CisgICAgbmF2aWdhdGlvbkZpbmlzaGVkID0gdHJ1
ZTsKK30KKworLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZTooTlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNo
YWxsZW5nZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNVUkxTZXNzaW9uQXV0aENoYWxs
ZW5nZURpc3Bvc2l0aW9uLCBOU1VSTENyZWRlbnRpYWwgKikpY29tcGxldGlvbkhhbmRsZXIKK3sK
KyAgICBOU1VSTFByb3RlY3Rpb25TcGFjZSAqcHJvdGVjdGlvblNwYWNlID0gY2hhbGxlbmdlLnBy
b3RlY3Rpb25TcGFjZTsKKyAgICBFWFBFQ1RfTlVMTChjaGFsbGVuZ2UucHJvcG9zZWRDcmVkZW50
aWFsKTsKKyAgICBFWFBFQ1RfRVEoY2hhbGxlbmdlLnByZXZpb3VzRmFpbHVyZUNvdW50LCAwKTsK
KyAgICBFWFBFQ1RfVFJVRShbcHJvdGVjdGlvblNwYWNlLnJlYWxtIGlzRXF1YWxUb1N0cmluZzpA
InRlc3RyZWFsbSJdKTsKKyAgICBFWFBFQ1RfRkFMU0UocHJvdGVjdGlvblNwYWNlLnJlY2VpdmVz
Q3JlZGVudGlhbFNlY3VyZWx5KTsKKyAgICBFWFBFQ1RfRkFMU0UocHJvdGVjdGlvblNwYWNlLmlz
UHJveHkpOworICAgIEVYUEVDVF9UUlVFKFtwcm90ZWN0aW9uU3BhY2UuaG9zdCBpc0VxdWFsVG9T
dHJpbmc6QCIxMjcuMC4wLjEiXSk7CisgICAgRVhQRUNUX05VTEwocHJvdGVjdGlvblNwYWNlLnBy
b3h5VHlwZSk7CisgICAgRVhQRUNUX1RSVUUoW3Byb3RlY3Rpb25TcGFjZS5wcm90b2NvbCBpc0Vx
dWFsVG9TdHJpbmc6TlNVUkxQcm90ZWN0aW9uU3BhY2VIVFRQXSk7CisgICAgRVhQRUNUX1RSVUUo
W3Byb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvbk1ldGhvZCBpc0VxdWFsVG9TdHJpbmc6TlNV
UkxBdXRoZW50aWNhdGlvbk1ldGhvZEhUVFBCYXNpY10pOworICAgIEVYUEVDVF9FUShbKE5TSFRU
UFVSTFJlc3BvbnNlICopY2hhbGxlbmdlLmZhaWx1cmVSZXNwb25zZSBzdGF0dXNDb2RlXSwgNDAx
KTsKKworICAgIGF1dG8gcGFpciA9IGNyZWRlbnRpYWxXaXRoSWRlbnRpdHlBbmRLZXljaGFpblBh
dGgoKTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlVXNl
Q3JlZGVudGlhbCwgcGFpci5maXJzdC5nZXQoKSk7CisgICAga2V5Y2hhaW5QYXRoID0gV1RGTW92
ZShwYWlyLnNlY29uZCk7Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewor
CitURVNUKENoYWxsZW5nZSwgU2VjSWRlbnRpdHkpCit7CisgICAgVENQU2VydmVyIHNlcnZlcihb
XSAoYXV0byBzb2NrZXQpIHsKKyAgICAgICAgY2hhciByZWFkQnVmZmVyWzEwMDBdOworICAgICAg
ICBhdXRvIGJ5dGVzUmVhZCA9IDo6cmVhZChzb2NrZXQsIHJlYWRCdWZmZXIsIHNpemVvZihyZWFk
QnVmZmVyKSk7CisgICAgICAgIEVYUEVDVF9HVChieXRlc1JlYWQsIDApOworICAgICAgICBFWFBF
Q1RfVFJVRShzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzUmVhZCkgPCBzaXplb2YocmVhZEJ1ZmZl
cikpOworICAgICAgICAKKyAgICAgICAgY29uc3QgY2hhciogY2hhbGxlbmdlSGVhZGVyID0KKyAg
ICAgICAgIkhUVFAvMS4xIDQwMSBVbmF1dGhvcml6ZWRcclxuIgorICAgICAgICAiRGF0ZTogU2F0
LCAyMyBNYXIgMjAxOSAwNjoyOTowMSBHTVRcclxuIgorICAgICAgICAiQ29udGVudC1MZW5ndGg6
IDBcclxuIgorICAgICAgICAiV1dXLUF1dGhlbnRpY2F0ZTogQmFzaWMgcmVhbG09XCJ0ZXN0cmVh
bG1cIlxyXG5cclxuIjsKKyAgICAgICAgYXV0byBieXRlc1dyaXR0ZW4gPSA6OndyaXRlKHNvY2tl
dCwgY2hhbGxlbmdlSGVhZGVyLCBzdHJsZW4oY2hhbGxlbmdlSGVhZGVyKSk7CisgICAgICAgIEVY
UEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzV3JpdHRlbiksIHN0cmxlbihjaGFsbGVu
Z2VIZWFkZXIpKTsKKyAgICAgICAgCisgICAgICAgIGJ5dGVzUmVhZCA9IDo6cmVhZChzb2NrZXQs
IHJlYWRCdWZmZXIsIHNpemVvZihyZWFkQnVmZmVyKSk7CisgICAgICAgIEVYUEVDVF9HVChieXRl
c1JlYWQsIDApOworICAgICAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVz
UmVhZCkgPCBzaXplb2YocmVhZEJ1ZmZlcikpOworICAgICAgICAKKyAgICAgICAgY29uc3QgY2hh
ciogcmVzcG9uc2VIZWFkZXIgPQorICAgICAgICAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKKyAgICAg
ICAgIkNvbnRlbnQtTGVuZ3RoOiAxM1xyXG5cclxuIgorICAgICAgICAiSGVsbG8sIFdvcmxkISI7
CisgICAgICAgIGJ5dGVzV3JpdHRlbiA9IDo6d3JpdGUoc29ja2V0LCByZXNwb25zZUhlYWRlciwg
c3RybGVuKHJlc3BvbnNlSGVhZGVyKSk7CisgICAgICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxz
aXplX3Q+KGJ5dGVzV3JpdHRlbiksIHN0cmxlbihyZXNwb25zZUhlYWRlcikpOworICAgIH0pOwor
CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgIGF1dG8g
ZGVsZWdhdGUgPSBhZG9wdE5TKFtDaGFsbGVuZ2VEZWxlZ2F0ZSBuZXddKTsKKyAgICBbd2ViVmll
dyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6ZGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJodHRwOi8vMTI3LjAuMC4xOiVkLyIsIHNl
cnZlci5wb3J0KCldXV1dOworCisgICAgVXRpbDo6cnVuKCZuYXZpZ2F0aW9uRmluaXNoZWQpOwor
ICAgIAorICAgIEVYUEVDVF9OT1RfTlVMTChrZXljaGFpblBhdGguZ2V0KCkpOworICAgIE5TRXJy
b3IgKmVycm9yID0gbmlsOworICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gcmVt
b3ZlSXRlbUF0UGF0aDprZXljaGFpblBhdGguZ2V0KCkgZXJyb3I6JmVycm9yXTsKKyAgICBFWFBF
Q1RfTlVMTChlcnJvcik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>365946</attachid>
            <date>2019-03-25 22:05:29 -0700</date>
            <delta_ts>2019-03-27 12:22:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196213-20190325220528.patch</filename>
            <type>text/plain</type>
            <size>20329</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDM0NjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAzLTI1ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgRG8gbm90IHRlcm1p
bmF0ZSB0aGUgTmV0d29ya1Byb2Nlc3MgaWYgYSB0aGlyZCBwYXJ0eSBhcHBsaWNhdGlvbiBzZW5k
cyBhIE5TQ3JlZGVudGlhbCB3aXRoIGEgU2VjSWRlbnRpdHlSZWYKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjIxMworCisgICAgICAgIFJldmlld2Vk
IGJ5IEdlb2ZmIEdhcmVuLgorCisgICAgICAgIEEgcmVsZWFzZSBhc3NlcnRpb24gYWRkZWQgaW4g
cjIzMDIyNSB3YXMgcmVhY2hhYmxlLiAgSSByZWFjaGVkIGl0IGluIGEgdW5pdCB0ZXN0IHRoYXQg
cmVzcG9uZHMgdG8gYSBjaGFsbGVuZ2UKKyAgICAgICAgd2l0aCBhIFNlY0lkZW50aXR5UmVmIHdy
YXBwZWQgaW4gYW4gTlNDcmVkZW50aWFsLgorCisgICAgICAgICogU2hhcmVkL2NmL0FyZ3VtZW50
Q29kZXJzQ0YuY3BwOgorICAgICAgICAoSVBDOjpkZWNvZGUpOgorCiAyMDE5LTAzLTI1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgR2V0IHJpZCBvZiBXZWJQYWdl
OjptX3Nob3VsZFJlc2V0RHJhd2luZ0FyZWFBZnRlclN1c3BlbmQgZmxhZwpJbmRleDogU291cmNl
L1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9TaGFyZWQvY2YvQXJndW1lbnRDb2RlcnNDRi5jcHAJKHJldmlzaW9uIDI0MzQ2
MikKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL2NmL0FyZ3VtZW50Q29kZXJzQ0YuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02OTcsMTAgKzY5Nyw2IEBAIHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIFNlY0lkZW50aXQKIAogYm9vbCBkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRy
PFNlY0lkZW50aXR5UmVmPiYgcmVzdWx0KQogewotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFJF
TEVBU0VfQVNTRVJUKGhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNj
ZXNzQ3JlZGVudGlhbHMpKTsKLSNlbmRpZgotCiAgICAgUmV0YWluUHRyPFNlY0NlcnRpZmljYXRl
UmVmPiBjZXJ0aWZpY2F0ZTsKICAgICBpZiAoIWRlY29kZShkZWNvZGVyLCBjZXJ0aWZpY2F0ZSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTcxNiw2ICs3MTIsMTEgQEAgYm9vbCBkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPAogICAgIGlmICghZGVjb2RlKGRlY29kZXIsIGtl
eURhdGEpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyAg
ICBpZiAoIWhhc1Byb2Nlc3NQcml2aWxlZ2UoUHJvY2Vzc1ByaXZpbGVnZTo6Q2FuQWNjZXNzQ3Jl
ZGVudGlhbHMpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorCiAgICAgU2VjS2V5UmVm
IGtleSA9IG51bGxwdHI7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAoc2VjS2V5
UmVmRGVjb2RpbmdBbGxvd2VkKQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQzNDYyKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDMtMjUgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBEbyBub3QgdGVybWluYXRl
IHRoZSBOZXR3b3JrUHJvY2VzcyBpZiBhIHRoaXJkIHBhcnR5IGFwcGxpY2F0aW9uIHNlbmRzIGEg
TlNDcmVkZW50aWFsIHdpdGggYSBTZWNJZGVudGl0eVJlZgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2MjEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
R2VvZmYgR2FyZW4uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0NoYWxsZW5nZS5tbTogQWRkZWQuCisgICAgICAgIChjcmVkZW50aWFsV2l0aElk
ZW50aXR5QW5kS2V5Y2hhaW5QYXRoKToKKyAgICAgICAgKC1bQ2hhbGxlbmdlRGVsZWdhdGUgd2Vi
VmlldzpkaWRGaW5pc2hOYXZpZ2F0aW9uOl0pOgorICAgICAgICAoLVtDaGFsbGVuZ2VEZWxlZ2F0
ZSB3ZWJWaWV3OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTpjb21wbGV0aW9uSGFu
ZGxlcjpdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE5LTAzLTI1ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFB1bGwgc29t
ZSBBUEkgdGVzdGluZyBoZWxwZXIgbWV0aG9kcyBvdXQgb2YgVGVzdFdLV2ViVmlldwpJbmRleDog
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI0MzQ2MikKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0zMTEsNiArMzExLDcgQEAKIAkJNUMwQkY4OTQxREQ1OTlDOTAwQjAwMzI4IC8qIE1l
bnVUeXBlc0Zvck1vdXNlRXZlbnRzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0E5OUQ5OTMxQUQ0QTI5RDAwMzczMTQxIC8qIE1lbnVUeXBlc0Zvck1v
dXNlRXZlbnRzLm1tICovOyB9OwogCQk1QzBCRjg5NTFERDU5OUNEMDBCMDAzMjggLyogTmF2aWdh
dG9yTGFuZ3VhZ2UubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTlEQjk3ODFCMzIxMzdDMDBEQjM4RDQgLyogTmF2aWdhdG9yTGFuZ3VhZ2UubW0gKi87
IH07CiAJCTVDMTlBNTI0MUZEMEY2MDEwMEVFQTMyMyAvKiBDb29raWVQcml2YXRlQnJvd3Npbmcu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzE5QTUy
MzFGRDBGMzI2MDBFRUEzMjMgLyogQ29va2llUHJpdmF0ZUJyb3dzaW5nLm1tICovOyB9OworCQk1
QzIzREYwQjIyNDYwMTU4MDBGNDU0QjYgLyogQ2hhbGxlbmdlLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMyM0RGMEEyMjQ1QzlENzAwRjQ1NEI2IC8q
IENoYWxsZW5nZS5tbSAqLzsgfTsKIAkJNUMyOTM2OTMxRDVCRjcwRDAwREVBQjFFIC8qIENvb2tp
ZUFjY2VwdFBvbGljeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVDMjkzNjkxMUQ1QkY2M0UwMERFQUIxRSAvKiBDb29raWVBY2NlcHRQb2xpY3kubW0g
Ki87IH07CiAJCTVDMjkzNjk2MUQ1QzAwRUQwMERFQUIxRSAvKiBDb29raWVNZXNzYWdlLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUMy
OTM2OTQxRDVCRkQxOTAwREVBQjFFIC8qIENvb2tpZU1lc3NhZ2UuaHRtbCAqLzsgfTsKIAkJNUM0
QTg0OTUxRjdFRUZGQzAwQUNGQzU0IC8qIENvbmZpZ3VyYXRpb24ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRBODQ5NDFGN0VFRkQ0MDBBQ0ZDNTQg
LyogQ29uZmlndXJhdGlvbi5tbSAqLzsgfTsKQEAgLTE3MjAsNiArMTcyMSw3IEBACiAJCTVDMEJG
ODhDMURENTk1NzQwMEIwMDMyOCAvKiBNZW1vcnlQcmVzc3VyZUhhbmRsZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNZW1vcnlQcmVzc3VyZUhhbmRsZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDMEJGODhGMURENTk5OUIwMEIwMDMyOCAv
KiBXZWJWaWV3Q2FuUGFzdGVaZXJvUG5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV2ViVmlld0NhblBhc3RlWmVyb1BuZy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUMxOUE1MjMxRkQwRjMyNjAwRUVBMzIzIC8qIENvb2tpZVByaXZhdGVCcm93
c2luZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvb2tpZVBy
aXZhdGVCcm93c2luZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUMyM0RGMEEy
MjQ1QzlENzAwRjQ1NEI2IC8qIENoYWxsZW5nZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IENoYWxsZW5nZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNUMyOTM2OTExRDVCRjYzRTAwREVBQjFFIC8qIENvb2tpZUFjY2VwdFBvbGljeS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENvb2tpZUFjY2VwdFBvbGljeS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUMyOTM2OTQxRDVCRkQxOTAwREVBQjFF
IC8qIENvb2tpZU1lc3NhZ2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IENvb2tp
ZU1lc3NhZ2UuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM0QTg0OTQxRjdF
RUZENDAwQUNGQzU0IC8qIENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjUzMCw2ICsyNTMyLDcgQEAKIAkJCQk1Qzc1NzE1RjIyMTI0OUJEMDBCOUU1QUMg
LyogQnVuZGxlUmV0YWluUGFnZVBsdWdJbi5tbSAqLywKIAkJCQkxQzJCODE3RTFDODkxRTQyMDBB
NTUyOUYgLyogQ2FuY2VsRm9udFN1YnJlc291cmNlLm1tICovLAogCQkJCTFDMkI4MTgxMUM4OTFF
RkEwMEE1NTI5RiAvKiBDYW5jZWxGb250U3VicmVzb3VyY2VQbHVnSW4ubW0gKi8sCisJCQkJNUMy
M0RGMEEyMjQ1QzlENzAwRjQ1NEI2IC8qIENoYWxsZW5nZS5tbSAqLywKIAkJCQk1Q0IxOEJBNzFG
NTY0NUIyMDBFRTIzQzQgLyogQ2xpY2tBdXRvRmlsbEJ1dHRvbi5tbSAqLywKIAkJCQlDREY5MjIz
NjIxNkQxODY0MDA2NDdBQTcgLyogQ2xvc2VXZWJWaWV3QWZ0ZXJFbnRlckZ1bGxzY3JlZW4ubW0g
Ki8sCiAJCQkJQ0RGMEI3ODkyMTZENDg0MzAwNDIxRUNDIC8qIENsb3NlV2ViVmlld0R1cmluZ0Vu
dGVyRnVsbHNjcmVlbi5tbSAqLywKQEAgLTQwMjYsNiArNDAyOSw3IEBACiAJCQkJNTczMDNCQ0Iy
MDA4Mzc2NTAwMzU1OTY1IC8qIENCT1JSZWFkZXJUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTU3MzAzQkM5MjAwODI0RDMwMDM1NTk2NSAvKiBDQk9SVmFsdWVUZXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTU3MzAzQkNBMjAwODJDMDEwMDM1NTk2NSAvKiBDQk9SV3JpdGVyVGVzdC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk1QzIzREYwQjIyNDYwMTU4MDBGNDU0QjYgLyogQ2hhbGxlbmdl
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0QTUzMTIyMUI4OTkwQTAwREJCOTlDIC8qIENsYXNz
TWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFNjFBNDExQUU2MDA0
NDdDNEMgLyogQ2xvc2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk3Q0NFN0VCNzFBNDExQTdFMDA0NDdDNEMgLyogQ2xvc2VOZXdXaW5kb3dJbk5hdmlnYXRpb25Q
b2xpY3lEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0JKG5vbmV4aXN0ZW50KQor
KysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9DaGFsbGVuZ2UubW0JKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwyNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRDUFNlcnZl
ci5oIgorI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorCisjaWYg
UExBVEZPUk0oTUFDKQorCitzdGF0aWMgc3RkOjpwYWlyPFJldGFpblB0cjxOU1VSTENyZWRlbnRp
YWw+LCBSZXRhaW5QdHI8TlNTdHJpbmc+PiBjcmVkZW50aWFsV2l0aElkZW50aXR5QW5kS2V5Y2hh
aW5QYXRoKCkKK3sKKyAgICAvLyBDZXJ0aWZpY2F0ZSBhbmQgcHJpdmF0ZSBrZXkgd2VyZSBnZW5l
cmF0ZWQgYnkgcnVubmluZyB0aGlzIGNvbW1hbmQ6CisgICAgLy8gb3BlbnNzbCByZXEgLXg1MDkg
LW5ld2tleSByc2E6NDA5NiAta2V5b3V0IGtleS5wZW0gLW91dCBjZXJ0LnBlbSAtZGF5cyAzNjUg
LW5vZGVzCisgICAgLy8gYW5kIGVudGVyaW5nIHRoaXMgaW5mb3JtYXRpb246CisgICAgLyoKKyAg
ICAgQ291bnRyeSBOYW1lICgyIGxldHRlciBjb2RlKSBbXTpVUworICAgICBTdGF0ZSBvciBQcm92
aW5jZSBOYW1lIChmdWxsIG5hbWUpIFtdOk5ldyBNZXhpY28KKyAgICAgTG9jYWxpdHkgTmFtZSAo
ZWcsIGNpdHkpIFtdOlNhbnRhIEZlCisgICAgIE9yZ2FuaXphdGlvbiBOYW1lIChlZywgY29tcGFu
eSkgW106U2VsZgorICAgICBPcmdhbml6YXRpb25hbCBVbml0IE5hbWUgKGVnLCBzZWN0aW9uKSBb
XTpNeXNlbGYKKyAgICAgQ29tbW9uIE5hbWUgKGVnLCBmdWxseSBxdWFsaWZpZWQgaG9zdCBuYW1l
KSBbXTpNZQorICAgICBFbWFpbCBBZGRyZXNzIFtdOm1lQGV4YW1wbGUuY29tCisgICAgICovCisg
ICAgCisgICAgTlNTdHJpbmcgKnBlbUVuY29kZWRDZXJ0aWZpY2F0ZSA9IEAiIgorICAgICJNSUlG
Z0RDQ0EyZ0NDUUNLSGlQUlU1TVF1REFOQmdrcWhraUc5dzBCQVFzRkFEQ0JnVEVMTUFrR0ExVUVC
aE1DIgorICAgICJWVk14RXpBUkJnTlZCQWdNQ2s1bGR5Qk5aWGhwWTI4eEVUQVBCZ05WQkFjTUNG
TmhiblJoSUVabE1RMHdDd1lEIgorICAgICJWUVFLREFSVFpXeG1NUTh3RFFZRFZRUUxEQVpOZVhO
bGJHWXhDekFKQmdOVkJBTU1BazFsTVIwd0d3WUpLb1pJIgorICAgICJodmNOQVFrQkZnNXRaVUJs
ZUdGdGNHeGxMbU52YlRBZUZ3MHhPVEF6TWpNd05UVXdNVFJhRncweU1EQXpNakl3IgorICAgICJO
VFV3TVRSYU1JR0JNUXN3Q1FZRFZRUUdFd0pWVXpFVE1CRUdBMVVFQ0F3S1RtVjNJRTFsZUdsamJ6
RVJNQThHIgorICAgICJBMVVFQnd3SVUyRnVkR0VnUm1VeERUQUxCZ05WQkFvTUJGTmxiR1l4RHpB
TkJnTlZCQXNNQmsxNWMyVnNaakVMIgorICAgICJNQWtHQTFVRUF3d0NUV1V4SFRBYkJna3Foa2lH
OXcwQkNRRVdEbTFsUUdWNFlXMXdiR1V1WTI5dE1JSUNJakFOIgorICAgICJCZ2txaGtpRzl3MEJB
UUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUEzcmhONFNQZzhWWS9QdEdETktZM1Q5SklTZ2J5IgorICAg
ICI4WUdNSngwdk8rWVpGWm0zRzNmc1RVc3l2RHlFSHdxcDVhYkNaUkIvQnkxUHdXa05yZnhuL1hQ
OFAwMzRKUGxFIgorICAgICI2aXJWaXVBWVFycVVoNms3WlI4Q3BPTTVHRWNSWmdBVUpHR1F3TmxP
a0V3YUhuTUdjOFNzSHVyZ0RQaDVYQnBnIgorICAgICJiRHl0ZDdCSnVCMU5vSS9LSm1oY2Fqa0F1
VjN2YXJTK3VQTG9mUEhOcWUrY0w4aE5ualpRd0hXYXJQNDVrczRlIgorICAgICJCY09EN3R3cXh1
SG5WbS9GV0VycFk4V3M1czFNclBUaFVkRGFoakVNZitZZkRKOUtMOHkzMDR5UzhKOGZlQ3hZIgor
ICAgICJmY0g0QnZnTHRKbUJOSEpnajNlTkQvRU1aakpnejJGc0JqckprOGtLRDMxY3crNFdwOFVG
NHNrV1hDZjQ2K21OIgorICAgICJPSHAxM1BlU0NaTHlGNFpBSGF6VVZrbkRQY2MyWU5yV1ZWMWk2
bjNUMTVrSTBUNVo3YnN0ZG1BTHVTa0UyY3VKIgorICAgICJTVk5PNmdSK1pzVlJUbmV1UXh3V1RV
ME1ORWhBUEZPWDJCaEdQNWVpc2dFVXprbnhNSmRkRkRuOVd4a2x1MUpoIgorICAgICJna3pBU0Ev
KzNBbWxyRlpNUGhPaGpFdWwwempnTlI1UkJsMUc4SHo5MkxBeDVVRURCdGRMZzcxSStJOEF6UU9o
IgorICAgICJkNkx0QmVrRUN4QTE2cFNhcHBnNXZjVzlaLzhONlpsc0huWjJGenRBMG5DT2Zsa29P
OWllak9wY3VGTjRFVllEIgorICAgICJ4SXR3Y3RLdzFMQ2VORC9zNGttb1JSblhiWDdrOU82Y0kx
VVVXTTU5NUdzdTV0UGEzM001QVpGQ2F2MmdPVnVZIgorICAgICJkanBwUzBIT2ZvNWh2NmNDQXdF
QUFUQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FnRUFZOEVXYUFGRWZ3N09WK29EIgorICAgICJYVVpT
SVlYcTNFSDJFNXAzcTM4QWhJT0xSakJ1Qit1dHl1N1E2cnhNTUh1dzJUdHNOK3piQVI3eXJqZnNz
ZUEzIgorICAgICI0VE0xeGU0Tms3TlZOSFJvWlErQzBJcWY5ZnZjaW9NdlQxdFRybWEwTWhLU2pG
UXB4K1B2eUxWYkQ3WWRQODZMIgorICAgICJtZWVoS3FVN2gxcExHQWlHd2pvYVo5WWJoNkt1cS9N
VEFIeTNEOCt3azdCMzZWQnhGNmRpVmxVUFpKWlFXS0p5IgorICAgICJNS3k5RzNzemUxWkd0OVdl
RTBBTXZrTjJISWVmMEhUS0NVWjNlQnZlY09NaWp4TDBXaFdvNVF5ZjVrNnlsQ2FVIgorICAgICIy
ZngrTThEZkRjd0ZvN3RTZ0x4U0szR0NGcHhQZmlEdDZRazhjOXRRbjVTMWdZM3Q2TEp1d1ZDRndV
SVhsTmtCIgorICAgICJKRDcrY1oxWi90Q3JFaHpqM1lDazB1VVU4Q2lmb1UrNEZHK0hHRlArU1B6
dHNZRTA1NW1TajMrRXNoK295b1ZCIgorICAgICJnQkg5MHNFMlQxaTBlTkk4ZjYxb1Nnd1lGZUhz
ZjdmQzcxWEVYTEZSK0d3TmRtd3FsbXdsRFpFcFR1N0JvTk4rIgorICAgICJxNytUZmsxTVJrSmxM
MVBINll1L0lQaFppTmg0dHlJcURPdGxZZnpwNTc3QStPVVUrcTVQUFJGUklzcWhlT3h0IgorICAg
ICJtTmxIeDRVemQ0VTNJVGZtb2dKYXpqcXdZTzJ2aUJaWTRqVVFteVpzNzVlSC9qaVVGSFdSc2hh
M0Fkblc1TFdhIgorICAgICJHM1BGblliVzh1ckgwTlNKRy9XKy85REErWTdBYTBjczRUUHB1Qkda
ME5VMVc5NE9vQ01vNGxrTzZIL3k2TGV1IgorICAgICIzdmpaRDN5OWtaazdtcmU5WEh3a0k4TWRL
NXM9IjsKKyAgICAKKyAgICBOU1N0cmluZyAqcGVtRW5jb2RlZFByaXZhdGVLZXkgPSBAIiIKKyAg
ICAiTUlJSlFnSUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NDU3d3Z2drb0FnRUFBb0lDQVFEZXVF
M2hJK0R4Vmo4KyIKKyAgICAiMFlNMHBqZFAwa2hLQnZMeGdZd25IUzg3NWhrVm1iY2JkK3hOU3pL
OFBJUWZDcW5scHNKbEVIOEhMVS9CYVEydCIKKyAgICAiL0dmOWMvdy9UZmdrK1VUcUt0V0s0QmhD
dXBTSHFUdGxId0trNHprWVJ4Rm1BQlFrWVpEQTJVNlFUQm9lY3daeiIKKyAgICAieEt3ZTZ1QU0r
SGxjR21Cc1BLMTNzRW00SFUyZ2o4b21hRnhxT1FDNVhlOXF0TDY0OHVoODhjMnA3NXd2eUUyZSIK
KyAgICAiTmxEQWRacXMvam1Temg0Rnc0UHUzQ3JHNGVkV2I4VllTdWxqeGF6bXpVeXM5T0ZSME5x
R01ReC81aDhNbjBvdiIKKyAgICAiekxmVGpKTHdueDk0TEZoOXdmZ0crQXUwbVlFMGNtQ1BkNDBQ
OFF4bU1tRFBZV3dHT3NtVHlRb1BmVnpEN2hhbiIKKyAgICAieFFYaXlSWmNKL2pyNlkwNGVuWGM5
NUlKa3ZJWGhrQWRyTlJXU2NNOXh6WmcydFpWWFdMcWZkUFhtUWpSUGxudCIKKyAgICAidXkxMllB
dTVLUVRaeTRsSlUwN3FCSDVteFZGT2Q2NURIQlpOVFF3MFNFQThVNWZZR0VZL2w2S3lBUlRPU2ZF
dyIKKyAgICAibDEwVU9mMWJHU1c3VW1HQ1RNQklELzdjQ2FXc1ZrdytFNkdNUzZYVE9PQTFIbEVH
WFVid2ZQM1lzREhsUVFNRyIKKyAgICAiMTB1RHZVajRqd0ROQTZGM291MEY2UVFMRURYcWxKcW1t
RG05eGIxbi93M3BtV3dlZG5ZWE8wRFNjSTUrV1NnNyIKKyAgICAiMko2TTZseTRVM2dSVmdQRWkz
QnkwckRVc0o0MFAremlTYWhGR2RkdGZ1VDA3cHdqVlJSWXpuM2theTdtMDlyZiIKKyAgICAiY3pr
QmtVSnEvYUE1VzVoMk9tbExRYzUram1HL3B3SURBUUFCQW9JQ0FHcmEvQ3AvZjBYcXZrOVNUK1By
dDIvcCIKKyAgICAia050TGVEWGNsTFNUY1AwSkNaSHVmUWFGdys3Vm5GTHBxZTRHdkxxOUJsbGN6
OFZPdlF3cmJlL0N3TlcrVnhDOCIKKyAgICAiUk1qZ2UycnFBQ2d3R2hPeDF0ODdsNDZOa1VRdzdF
eTBsQ2xlOGtyK01HZ0dHb1pxck1GZEtJUlVvTXY0bm1RNiIKKyAgICAidG1jMUZIdjVwTFJlOVEr
THA1bllRd0dvWW1ab1VPdWVvT2FPTDA4bTQ5cEdYUWtpTjhwSkRNeFNmTzNKdnRzdSIKKyAgICAi
NGNxSWI2a09RL2RPMUlzMUNUdlVSbGQxSVlMSDdZdVNoaTRaRXgyZzJhYzJVeXZ0NllteHh2TW1B
akJTS3BHZCIKKyAgICAibG9pZXBobzMvTnJER1VLZHYzcTlRWXl6ckE4dzlHVDMyTERHcWdCWEpp
MXNjQkk4Y0V4a3A2UDRpRGxsaHY3cyIKKyAgICAidlpzc3B2b2JSSmEzTzF6azg2M0xIWGEyNEpD
bnl1emltcWV6WjJPbGg3bDRvbEhvWUQ2VUZDOWpmZDRLY0hSZyIKKyAgICAiMWM0c3lxdC9uOEFL
LzFzMWVCZlM5ZHpiNUNmanQ5TXRLWXNseHZMenExV3dPSU53ejhySVl1UmkwUGNMbTlocyIKKyAg
ICAibCtVMHUvekIzN2VNZ3Y2K2l3RFhrMWZTamJ1WXNFL2JFVFdZa25LR05GRkw1SlNpS1Y3V0Nw
bWdOVFRyckU0SyIKKyAgICAiUzhFNmhSOXVQT0Fhb3c3dlBDQ3Q0eExYLzQ4bDJFSTZaZXE2cU9w
cTFsSjJxY3k4cjR0eXVRZ05STFFNa1pnMSIKKyAgICAiQXhRbDZ2blE4Q3U0aXUrTkloZWYweTla
N3FrZk52WmVDajVHbEZCOWMyWWpWOFkybWRXZkpCNHFXSzNaLytNSiIKKyAgICAiUU9UQ0tSejcv
THhMTkJVZXBSakpBb0lCQVFEM1pzVjV0V1U5WlNLY1ZKOURDN1RaazBQK2xoY2lzWnIwbkwwdCIK
KyAgICAiUFF1UU8rcEh2UEkxTXFSbk5za0hKaHlQbnFWQ2krZHA4OXRLL0l0NTkwVUxsOG9zNlVD
MUZoeXRCUG9UMVlQZCIKKyAgICAiV0dXZXAycE9jN2JWcGk0aXAzMXkrSW1mZ2VaeUp0TUFUZG1l
M2tCUEFPZTVOR0U5R2lnL2w1bnFMeWIwMnNkMSIKKyAgICAiUVc3TzBHZHFMeDNEcEx3NFNMbGhN
ZjZhRTB1R1JTOHNmQjA4NWU0REduNTRPMndFVnVTWnFabDVOTkVmMzVSeiIKKyAgICAiWGdpbTNo
K1JXRjFaRlNRempCL3NtTjBaaCt2M0l6N3ZFSjFoMHl3VjZvK0d6dkhrUDlIRTZnTElodHlWOE9F
dyIKKyAgICAidmx5WWsxR2E3cFVWR1JoOG84T01lNlJSOURRaTdKcUM0ZUk3R2NrbUJ6YXF6SmNE
QW9JQkFRRG1kZTZBVGV3MyIKKyAgICAiSDliUUs2eG5iTUluY3ovQ09wSUlTZGxjRmIyM0FIR0Vi
NGI0VmhKRkJOd3hyTkw2dEhLU0ZMZVlaRkxoVGRoeCIKKyAgICAiUGZYeVVMSE5mNW96ZEVrbDBX
cmxlcm9EZG9nYkN5V2c1dUpwOS9RNjhzYndiR3I4Q0FsTzdaSFlUcmp1UWYxSyIKKyAgICAiQVM5
cENtNzdLUDNrMmQzVWxHK3BlbERqWExvQnppWHEwTmp4SnBNejQ1dnJJeDhyU1d6Rk5qTUdqWFQz
ZlhhUyIKKyAgICAiOTYyay8wQVhlaTUvYmZ1aEJ4bG03UG5pMGJRSklXRmtlYVV1R2xyT2FIRFJ4
VWlYMXI5SVpTOXd2NWxrMVB0ZyIKKyAgICAiaWRwYmNXeXcxOGNGR1R2amRLaFJiWkg4RXNibXpt
Tk5zQ0dkZ0NNcUZrS1lzVzE2UUtvQ2ovTkFvdkkzbjBxbiIKKyAgICAiNlZvUmEwc0dtVEdOQW9J
QkFDbC9tcVpFc0J1eFNESHkyOWdTTVo3QlhnbHBRYTQzSG1mamxyUHM1bkNtTERFbSIKKyAgICAi
VjNabTdUN0c2TWVETkEwL0xqZFFZbHZhWkxGYVZVYjdIQ0RLc0VZQ1JqRlo2U3Q0aHo0bWRYeitZ
K1ZON2I0RiIKKyAgICAiR09rVGUrK2lLcC9MWXNKWHRzRDFGRFdiMldJVm83SGMxQUd6OEkrZ1FK
b1NJdVl1VEptTHpTTTArNUpEVU9WMSIKKyAgICAieThkU2JhUC9SdUV2MHFZamtHcVFWazVlNzBT
VXlPektWK1p4Q1RoZEh2Rkxpb3ZUT1RUZ2V2VXpFNzV4eWRmRyIKKyAgICAiZTdvQ210VHVyemd2
bC82OVZ1NVlnaWoxbjRDV1BISGNxNENRVy9ET1o3QmhGR0J3aHJXNzl2b0hKRjhQYndQTyIKKyAg
ICAiKzBEVHVkREdZM25BRDVzVG5GOHpVdU9iWWloSnRmemovdDU5Zk9NQ2dnRUJBSVl1dUJVQVNi
NjJ6UTRidjUvZyIKKyAgICAiVlJNL0tTcGZpOU5EbkVqZlo3eDdoNXpDaXVWZ3gvWmpwQWxRUk84
dnpWMThyb0VPT0t0eDljbkpkOEFFZCtIYyIKKyAgICAibjkzQm9TMWh4MG1oc1ZoKzFUUlp3eWp5
QlhZSnBxd0Qyd3oxTXoxWE9JUTZFcWJNL3lQS1REMmdmd2c3eU81MyIKKyAgICAicVl4cnhac1dh
Z1ZWY0c5UStBUkJFUmF0VHdMcG9OK2ZjSkx4dWg0ci9DYS9MZXBzeG1Pckt6VGEvTUdLMUxoVyIK
KyAgICAicldnSWsyL29nRVBMU3B0ajJkMVBFRE8rR0F6Rno0VktqaFcxTmxVaDlmR2k2SUpQTEhM
bkJ3M29kYmkwUzhLVCIKKyAgICAiZ0E5WjUrTEJjNWNsb3RBUDVydFFBOFdoL1pDRW9QVEtUVEEy
YmpXMkhNYXRKY2JHbVIwRnBDUXIzQU0wWTFTTyIKKyAgICAiTWFrQ2dnRUFMcnU2UVo2WVV3SkpH
NDVIMWVxL3JQZERZOHRxcWpKVlZpS29CVnZ6S2ovWGZKWllFVlFpSXc1cCIKKyAgICAidW9HaERv
eUZ1RlVlSWgvZDFKYzJJcnV5Mldqb09raVFZdEl1Z0RISHhScmtMZFFjalBobENUQ0UvbW15U0p0
KyIKKyAgICAiYmtVYmlISWJROGRKNXlqOFNLcjBiSHpxRXRPeTkvSmVSamtZR0hDNmJWV3BxNUZB
Mk1CaGY0ZE5qSjRVRGxuVCIKKyAgICAidnVlUGNUanI3bm5mWTFzenR2ZlZsOUQ4ZG1nVCtUQm5P
T1Y2eVdqMWdtNWJTMUR4UVNMZ05tdEt4Sjh0QWgydSIKKyAgICAiZEVPYnZjcFNoUDIySXRPVmpT
YW1wUnVBdVJHMjZaZW1FYkdDSTNKNk1xeDN5Nm0rNkh3dWx0c2d0ZHpEZ3JGZSIKKyAgICAicUpm
VThiYmRidTJwaTQ3WTRGZEpLMEhMZmZsNVJ3PT0iOworICAgIAorICAgIE5TRGF0YSAqZGVyRW5j
b2RlZENlcnRpZmljYXRlID0gW1tbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRT
dHJpbmc6cGVtRW5jb2RlZENlcnRpZmljYXRlIG9wdGlvbnM6MF0gYXV0b3JlbGVhc2VdOworICAg
IFJldGFpblB0cjxTZWNDZXJ0aWZpY2F0ZVJlZj4gY2VydGlmaWNhdGUgPSBhZG9wdENGKFNlY0Nl
cnRpZmljYXRlQ3JlYXRlV2l0aERhdGEobnVsbHB0ciwgKF9fYnJpZGdlIENGRGF0YVJlZilkZXJF
bmNvZGVkQ2VydGlmaWNhdGUpKTsKKyAgICAKKyAgICBOU0RhdGEgKmRlckVuY29kZWRQcml2YXRl
S2V5ID0gW1tbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJhc2U2NEVuY29kZWRTdHJpbmc6cGVtRW5j
b2RlZFByaXZhdGVLZXkgb3B0aW9uczowXSBhdXRvcmVsZWFzZV07CisgICAgTlNEaWN0aW9uYXJ5
KiBvcHRpb25zID0gQHsKKyAgICAgICAgKGlkKWtTZWNBdHRyS2V5VHlwZTogKGlkKWtTZWNBdHRy
S2V5VHlwZVJTQSwKKyAgICAgICAgKGlkKWtTZWNBdHRyS2V5Q2xhc3M6IChpZClrU2VjQXR0cktl
eUNsYXNzUHJpdmF0ZSwKKyAgICAgICAgKGlkKWtTZWNBdHRyS2V5U2l6ZUluQml0czogQDQwOTYs
CisgICAgfTsKKyAgICBjb25zdCBOU1VJbnRlZ2VyIHBlbUVuY29kZWRQcml2YXRlS2V5SGVhZGVy
TGVuZ3RoID0gMjY7CisgICAgQ0ZFcnJvclJlZiBlcnJvciA9IG51bGxwdHI7CisgICAgUmV0YWlu
UHRyPFNlY0tleVJlZj4gcHJpdmF0ZUtleSA9IGFkb3B0Q0YoU2VjS2V5Q3JlYXRlV2l0aERhdGEo
KF9fYnJpZGdlIENGRGF0YVJlZilbZGVyRW5jb2RlZFByaXZhdGVLZXkgc3ViZGF0YVdpdGhSYW5n
ZTpOU01ha2VSYW5nZShwZW1FbmNvZGVkUHJpdmF0ZUtleUhlYWRlckxlbmd0aCwgZGVyRW5jb2Rl
ZFByaXZhdGVLZXkubGVuZ3RoIC0gcGVtRW5jb2RlZFByaXZhdGVLZXlIZWFkZXJMZW5ndGgpXSwg
KF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilvcHRpb25zLCAmZXJyb3IpKTsKKyAgICBFWFBFQ1Rf
TlVMTChlcnJvcik7CisgICAgRVhQRUNUX05PVF9OVUxMKHByaXZhdGVLZXkuZ2V0KCkpOworCisg
ICAgU2VjS2V5Y2hhaW5SZWYga2V5Y2hhaW5SZWYgPSBudWxscHRyOworICAgIGNvbnN0IGNoYXIq
IGtleWNoYWluUGFzc3dvcmQgPSAidGVzdHBhc3N3b3JkIjsKKyAgICBOU1N0cmluZyAqa2V5Y2hh
aW5QYXRoID0gW05TVGVtcG9yYXJ5RGlyZWN0b3J5KCkgc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29t
cG9uZW50OkAiVGVzdEtleWNoYWluIl07CisgICAgT1NTdGF0dXMgc3RhdHVzID0gU2VjS2V5Y2hh
aW5DcmVhdGUoW2tleWNoYWluUGF0aCBVVEY4U3RyaW5nXSwgc3RybGVuKGtleWNoYWluUGFzc3dv
cmQpLCBrZXljaGFpblBhc3N3b3JkLCBOTywgbnVsbHB0ciwgJmtleWNoYWluUmVmKTsKKyAgICBF
WFBFQ1RfVFJVRShzdGF0dXMgPT0gZXJyU2VjU3VjY2Vzcyk7CisgICAgUmV0YWluUHRyPFNlY0tl
eWNoYWluUmVmPiBrZXljaGFpbiA9IGFkb3B0Q0Yoa2V5Y2hhaW5SZWYpOworICAgIEVYUEVDVF9O
T1RfTlVMTChrZXljaGFpbik7CisKKyAgICBTZWNFeHRlcm5hbEl0ZW1UeXBlIHR5cGUgPSBrU2Vj
SXRlbVR5cGVQcml2YXRlS2V5OworICAgIHN0YXR1cyA9IFNlY0l0ZW1JbXBvcnQoKF9fYnJpZGdl
IENGRGF0YVJlZilkZXJFbmNvZGVkUHJpdmF0ZUtleSwgbnVsbHB0ciwgbnVsbHB0ciwgJnR5cGUs
IDAsIG51bGxwdHIsIGtleWNoYWluLmdldCgpLCBudWxscHRyKTsKKyAgICBFWFBFQ1RfVFJVRShz
dGF0dXMgPT0gZXJyU2VjU3VjY2Vzcyk7CisKKyAgICBTZWNJZGVudGl0eVJlZiBpZGVudGl0eVJl
ZiA9IG51bGxwdHI7CisgICAgc3RhdHVzID0gU2VjSWRlbnRpdHlDcmVhdGVXaXRoQ2VydGlmaWNh
dGUoa2V5Y2hhaW4uZ2V0KCksIGNlcnRpZmljYXRlLmdldCgpLCAmaWRlbnRpdHlSZWYpOworICAg
IEVYUEVDVF9OT1RfTlVMTChpZGVudGl0eVJlZik7CisgICAgRVhQRUNUX1RSVUUoc3RhdHVzID09
IGVyclNlY1N1Y2Nlc3MpOworICAgIFJldGFpblB0cjxTZWNJZGVudGl0eVJlZj4gaWRlbnRpdHkg
PSBhZG9wdENGKGlkZW50aXR5UmVmKTsKKyAgICAKKyAgICByZXR1cm4geworICAgICAgICBbTlNV
UkxDcmVkZW50aWFsIGNyZWRlbnRpYWxXaXRoSWRlbnRpdHk6aWRlbnRpdHkuZ2V0KCkgY2VydGlm
aWNhdGVzOkBbKGlkKWNlcnRpZmljYXRlLmdldCgpXSBwZXJzaXN0ZW5jZTpOU1VSTENyZWRlbnRp
YWxQZXJzaXN0ZW5jZU5vbmVdLAorICAgICAgICBrZXljaGFpblBhdGgKKyAgICB9OworfQorCitz
dGF0aWMgYm9vbCBuYXZpZ2F0aW9uRmluaXNoZWQ7CitzdGF0aWMgUmV0YWluUHRyPE5TU3RyaW5n
PiBrZXljaGFpblBhdGg7CisKK0BpbnRlcmZhY2UgQ2hhbGxlbmdlRGVsZWdhdGUgOiBOU09iamVj
dCA8V0tOYXZpZ2F0aW9uRGVsZWdhdGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBDaGFsbGVu
Z2VEZWxlZ2F0ZQorCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRmlu
aXNoTmF2aWdhdGlvbjoobnVsbF91bnNwZWNpZmllZCBXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9u
Cit7CisgICAgbmF2aWdhdGlvbkZpbmlzaGVkID0gdHJ1ZTsKK30KKworLSAodm9pZCl3ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZToo
TlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAqKWNoYWxsZW5nZSBjb21wbGV0aW9uSGFuZGxl
cjoodm9pZCAoXikoTlNVUkxTZXNzaW9uQXV0aENoYWxsZW5nZURpc3Bvc2l0aW9uLCBOU1VSTENy
ZWRlbnRpYWwgKikpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBOU1VSTFByb3RlY3Rpb25TcGFj
ZSAqcHJvdGVjdGlvblNwYWNlID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZTsKKyAgICBFWFBF
Q1RfTlVMTChjaGFsbGVuZ2UucHJvcG9zZWRDcmVkZW50aWFsKTsKKyAgICBFWFBFQ1RfRVEoY2hh
bGxlbmdlLnByZXZpb3VzRmFpbHVyZUNvdW50LCAwKTsKKyAgICBFWFBFQ1RfVFJVRShbcHJvdGVj
dGlvblNwYWNlLnJlYWxtIGlzRXF1YWxUb1N0cmluZzpAInRlc3RyZWFsbSJdKTsKKyAgICBFWFBF
Q1RfRkFMU0UocHJvdGVjdGlvblNwYWNlLnJlY2VpdmVzQ3JlZGVudGlhbFNlY3VyZWx5KTsKKyAg
ICBFWFBFQ1RfRkFMU0UocHJvdGVjdGlvblNwYWNlLmlzUHJveHkpOworICAgIEVYUEVDVF9UUlVF
KFtwcm90ZWN0aW9uU3BhY2UuaG9zdCBpc0VxdWFsVG9TdHJpbmc6QCIxMjcuMC4wLjEiXSk7Cisg
ICAgRVhQRUNUX05VTEwocHJvdGVjdGlvblNwYWNlLnByb3h5VHlwZSk7CisgICAgRVhQRUNUX1RS
VUUoW3Byb3RlY3Rpb25TcGFjZS5wcm90b2NvbCBpc0VxdWFsVG9TdHJpbmc6TlNVUkxQcm90ZWN0
aW9uU3BhY2VIVFRQXSk7CisgICAgRVhQRUNUX1RSVUUoW3Byb3RlY3Rpb25TcGFjZS5hdXRoZW50
aWNhdGlvbk1ldGhvZCBpc0VxdWFsVG9TdHJpbmc6TlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZEhU
VFBCYXNpY10pOworICAgIEVYUEVDVF9FUShbKE5TSFRUUFVSTFJlc3BvbnNlICopY2hhbGxlbmdl
LmZhaWx1cmVSZXNwb25zZSBzdGF0dXNDb2RlXSwgNDAxKTsKKworICAgIGF1dG8gcGFpciA9IGNy
ZWRlbnRpYWxXaXRoSWRlbnRpdHlBbmRLZXljaGFpblBhdGgoKTsKKyAgICBjb21wbGV0aW9uSGFu
ZGxlcihOU1VSTFNlc3Npb25BdXRoQ2hhbGxlbmdlVXNlQ3JlZGVudGlhbCwgcGFpci5maXJzdC5n
ZXQoKSk7CisgICAga2V5Y2hhaW5QYXRoID0gV1RGTW92ZShwYWlyLnNlY29uZCk7Cit9CisKK0Bl
bmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKENoYWxsZW5nZSwgU2VjSWRl
bnRpdHkpCit7CisgICAgVENQU2VydmVyIHNlcnZlcihbXSAoYXV0byBzb2NrZXQpIHsKKyAgICAg
ICAgY2hhciByZWFkQnVmZmVyWzEwMDBdOworICAgICAgICBhdXRvIGJ5dGVzUmVhZCA9IDo6cmVh
ZChzb2NrZXQsIHJlYWRCdWZmZXIsIHNpemVvZihyZWFkQnVmZmVyKSk7CisgICAgICAgIEVYUEVD
VF9HVChieXRlc1JlYWQsIDApOworICAgICAgICBFWFBFQ1RfVFJVRShzdGF0aWNfY2FzdDxzaXpl
X3Q+KGJ5dGVzUmVhZCkgPCBzaXplb2YocmVhZEJ1ZmZlcikpOworICAgICAgICAKKyAgICAgICAg
Y29uc3QgY2hhciogY2hhbGxlbmdlSGVhZGVyID0KKyAgICAgICAgIkhUVFAvMS4xIDQwMSBVbmF1
dGhvcml6ZWRcclxuIgorICAgICAgICAiRGF0ZTogU2F0LCAyMyBNYXIgMjAxOSAwNjoyOTowMSBH
TVRcclxuIgorICAgICAgICAiQ29udGVudC1MZW5ndGg6IDBcclxuIgorICAgICAgICAiV1dXLUF1
dGhlbnRpY2F0ZTogQmFzaWMgcmVhbG09XCJ0ZXN0cmVhbG1cIlxyXG5cclxuIjsKKyAgICAgICAg
YXV0byBieXRlc1dyaXR0ZW4gPSA6OndyaXRlKHNvY2tldCwgY2hhbGxlbmdlSGVhZGVyLCBzdHJs
ZW4oY2hhbGxlbmdlSGVhZGVyKSk7CisgICAgICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXpl
X3Q+KGJ5dGVzV3JpdHRlbiksIHN0cmxlbihjaGFsbGVuZ2VIZWFkZXIpKTsKKyAgICAgICAgCisg
ICAgICAgIGJ5dGVzUmVhZCA9IDo6cmVhZChzb2NrZXQsIHJlYWRCdWZmZXIsIHNpemVvZihyZWFk
QnVmZmVyKSk7CisgICAgICAgIEVYUEVDVF9HVChieXRlc1JlYWQsIDApOworICAgICAgICBFWFBF
Q1RfVFJVRShzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzUmVhZCkgPCBzaXplb2YocmVhZEJ1ZmZl
cikpOworICAgICAgICAKKyAgICAgICAgY29uc3QgY2hhciogcmVzcG9uc2VIZWFkZXIgPQorICAg
ICAgICAiSFRUUC8xLjEgMjAwIE9LXHJcbiIKKyAgICAgICAgIkNvbnRlbnQtTGVuZ3RoOiAxM1xy
XG5cclxuIgorICAgICAgICAiSGVsbG8sIFdvcmxkISI7CisgICAgICAgIGJ5dGVzV3JpdHRlbiA9
IDo6d3JpdGUoc29ja2V0LCByZXNwb25zZUhlYWRlciwgc3RybGVuKHJlc3BvbnNlSGVhZGVyKSk7
CisgICAgICAgIEVYUEVDVF9FUShzdGF0aWNfY2FzdDxzaXplX3Q+KGJ5dGVzV3JpdHRlbiksIHN0
cmxlbihyZXNwb25zZUhlYWRlcikpOworICAgIH0pOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtDaGFs
bGVuZ2VEZWxlZ2F0ZSBuZXddKTsKKyAgICBbd2ViVmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6
ZGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3Qg
cmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCJodHRwOi8vMTI3LjAuMC4xOiVkLyIsIHNlcnZlci5wb3J0KCldXV1dOworCisgICAg
VXRpbDo6cnVuKCZuYXZpZ2F0aW9uRmluaXNoZWQpOworICAgIAorICAgIEVYUEVDVF9OT1RfTlVM
TChrZXljaGFpblBhdGguZ2V0KCkpOworICAgIE5TRXJyb3IgKmVycm9yID0gbmlsOworICAgIFtb
TlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gcmVtb3ZlSXRlbUF0UGF0aDprZXljaGFpblBh
dGguZ2V0KCkgZXJyb3I6JmVycm9yXTsKKyAgICBFWFBFQ1RfTlVMTChlcnJvcik7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>