<?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>106912</bug_id>
          
          <creation_ts>2013-01-15 09:03:53 -0800</creation_ts>
          <short_desc>IndexedDB: Remove dependency on IDBKey type from IDLs</short_desc>
          <delta_ts>2013-01-22 13:23:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>97375</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>michael</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>807357</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-15 09:03:53 -0800</bug_when>
    <thetext>IndexedDB: Remove dependency on IDBKey type from IDLs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807366</commentid>
    <comment_count>1</comment_count>
      <attachid>182788</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-15 09:13:59 -0800</bug_when>
    <thetext>Created attachment 182788
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807370</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-15 09:17:09 -0800</bug_when>
    <thetext>See http://wkbug.com/97375 for more context.

This is the preamble to removing special cases for IDBKey from WebKitIDL (code generators, custom binding code, etc).

On the one hand this gets us closer to having WebKitIDL match WebIDL - &quot;IDBKey&quot; is replaced by &quot;any&quot; in our IDL files. On the other, this is more code at many of the method implementations, violating DRY.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807371</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-15 09:17:31 -0800</bug_when>
    <thetext>dgrogan@, alecflett@ - can you guys take a preliminary look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808835</commentid>
    <comment_count>4</comment_count>
      <attachid>183060</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-16 16:42:40 -0800</bug_when>
    <thetext>Created attachment 183060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>808836</commentid>
    <comment_count>5</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-16 16:42:59 -0800</bug_when>
    <thetext>New patch is just a rebase, and I wanted to get the bots to give it a try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811142</commentid>
    <comment_count>6</comment_count>
      <attachid>183060</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-01-18 16:27:44 -0800</bug_when>
    <thetext>Comment on attachment 183060
Patch

lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811144</commentid>
    <comment_count>7</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2013-01-18 16:28:44 -0800</bug_when>
    <thetext>haraken@ - can you take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>811356</commentid>
    <comment_count>8</comment_count>
      <attachid>183060</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-19 01:49:02 -0800</bug_when>
    <thetext>Comment on attachment 183060
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813353</commentid>
    <comment_count>9</comment_count>
      <attachid>183060</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 13:23:04 -0800</bug_when>
    <thetext>Comment on attachment 183060
Patch

Clearing flags on attachment: 183060

Committed r140457: &lt;http://trac.webkit.org/changeset/140457&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813354</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-22 13:23:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182788</attachid>
            <date>2013-01-15 09:13:59 -0800</date>
            <delta_ts>2013-01-16 16:42:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106912-20130115091059.patch</filename>
            <type>text/plain</type>
            <size>51389</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTNiMWM5YWFmODY0NTZi
ZWM1MDRjZTRjMGE4MGNlNjNhNmFlYTNiMC4uZmM1Njk1OGQ0MmIxYzgzNjBkYmFkNDAxM2ViNjc3
MjJmZGRmOWY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEzLTAxLTE1ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBSZW1v
dmUgZGVwZW5kZW5jeSBvbiBJREJLZXkgdHlwZSBmcm9tIElETHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjkxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBwcmVhbWJsZSB0byB3a2J1
Zy5jb20vOTczNzUgIlJlbW92ZSBJREJLZXkgZnJvbSBXZWJLaXRJREwiOyBJREJLZXkgaXMKKyAg
ICAgICAgbm90IGEgY29uY2VwdCBmcm9tIHRoZSBJbmRleGVkIERCIHNwZWMgYnV0IGEgY29udmVu
aWVudCBpbnRlcm5hbCB0eXBlLiBJdCB3YXMKKyAgICAgICAgZXhwb3NlZCBpbiB0aGUgSURMIHdp
dGggY3VzdG9tIGJpbmRpbmcgY29kZSBhbmQgc3BlY2lhbCBjYXNlcyBpbiB0aGUgZ2VuZXJhdG9y
CisgICAgICAgIHRvIG1hcCBmcm9tIHNjcmlwdCB2YWx1ZXMgdG8gdGhlIFdlYkNvcmUgdHlwZS4g
VG8gcmVtb3ZlIHRob3NlIHNwZWNpYWwgY2FzZXMKKyAgICAgICAgYW5kIG1hdGNoIHRoZSBXZWJJ
REwgaW4gdGhlIHNwZWMsIHRoZSBJRExzIGFyZSBjaGFuZ2VkIHRvIHVzZSAiYW55IiBhbmQgdGhl
CisgICAgICAgIGltcGxlbWVudGF0aW9ucyBub3cgdGFrZSBTY3JpcHRWYWx1ZXMuIFRoaXMgZG9l
cyBtZWFuIHRoYXQgZWFjaCBjYWxsIHNpdGUgbXVzdAorICAgICAgICBjYWxsIGludG8gSURCQmlu
ZGluZ1V0aWxpdGllcyB0byBtYXAgZnJvbSBTY3JpcHRWYWx1ZSB0byBJREJLZXkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIC0ganVzdCBhIHJlZmFjdG9yLgorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCQW55LmNwcDogUmVtb3ZlIElEQktleSBhcyBhIHZhcmlhbnQgdHlwZSAtIGp1
c3QgdXNlIFNjcmlwdFZhbHVlLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkFueS5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJREJBbnkpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6
OmNvbnRpbnVlRnVuY3Rpb24pOiBOb3cgdGFrZXMgYW55L1NjcmlwdFZhbHVlLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmg6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmNvbnRpbnVlRnVuY3Rpb24pOgorICAgICAgICAoSURC
Q3Vyc29yKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbXBsOjpkZWxldGVGdW5jdGlvbik6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJGYWN0b3J5OjpjbXApOiBOb3cgdGFrZXMgYW55L1NjcmlwdFZhbHVlLgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaDoKKyAgICAgICAgKElEQkZhY3RvcnkpOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4
OjpvcGVuQ3Vyc29yKTogTm93IHRha2VzIGFueS9TY3JpcHRWYWx1ZS4KKyAgICAgICAgKFdlYkNv
cmU6OklEQkluZGV4Ojpjb3VudCk6IE5vdyB0YWtlcyBhbnkvU2NyaXB0VmFsdWUuCisgICAgICAg
IChXZWJDb3JlOjpJREJJbmRleDo6b3BlbktleUN1cnNvcik6IE5vdyB0YWtlcyBhbnkvU2NyaXB0
VmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6Z2V0KTogTm93IHRha2VzIGFueS9T
Y3JpcHRWYWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4OjpnZXRLZXkpOiBOb3cgdGFr
ZXMgYW55L1NjcmlwdFZhbHVlLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6b3BlbkN1cnNvcik6CisgICAgICAgIChJ
REJJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6b3BlbktleUN1cnNvcik6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJh
bmdlOjpjcmVhdGUpOiBBZGQgaGVscGVyIGZvciBiYWNrLWVuZCBjcmVhdGlvbiBvZiBzaW5nbGUt
a2V5IHJhbmdlcy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5
UmFuZ2U6Omxvd2VyVmFsdWUpOiBJbXBsLiBvZiBuZXcgImFueSIgdHlwZSBhY2Nlc3NvciBleHBv
c2VkIHRvIHNjcmlwdC4KKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlOjp1cHBlclZhbHVl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6b25seSk6IE5vdyB0YWtl
cyBhbnkvU2NyaXB0VmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6bG93ZXJC
b3VuZCk6IE5vdyB0YWtlcyBhbnkvU2NyaXB0VmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpJREJL
ZXlSYW5nZTo6dXBwZXJCb3VuZCk6IE5vdyB0YWtlcyBhbnkvU2NyaXB0VmFsdWUuCisgICAgICAg
IChXZWJDb3JlOjpJREJLZXlSYW5nZTo6Ym91bmQpOiBOb3cgdGFrZXMgYW55L1NjcmlwdFZhbHVl
LgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmg6CisgICAgICAgIChJ
REJLZXlSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6bG93ZXJCb3VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6dXBwZXJCb3VuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJLZXlSYW5nZTo6Ym91bmQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQktleVJhbmdlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RT
dG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Z2V0KTogTm93IHRh
a2VzIGFueS9TY3JpcHRWYWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjph
ZGQpOiBOb3cgdGFrZXMgYW55L1NjcmlwdFZhbHVlLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6cHV0KTogTm93IHRha2VzIGFueS9TY3JpcHRW
YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpkZWxldGVGdW5jdGlvbik6
IE5vdyB0YWtlcyBhbnkvU2NyaXB0VmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RT
dG9yZTo6b3BlbkN1cnNvcik6IE5vdyB0YWtlcyBhbnkvU2NyaXB0VmFsdWUuCisgICAgICAgIChX
ZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Y291bnQpOiBOb3cgdGFrZXMgYW55L1NjcmlwdFZhbHVl
LgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAg
IChJREJPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6b3Bl
bkN1cnNvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOiBSZXN1bHQgSURC
QW55IHR5cGUgaXMgbm93IFNjcmlwdFZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6b25TdWNjZXNzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmlwdFZhbHVlVG9JREJLZXkpOiBUaGUgaW52ZXJz
ZSBvZiBpZGJLZXlUb1NjcmlwdFZhbHVlKCkuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmlwdFZhbHVlVG9JREJLZXkpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOElE
QkFueUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KTogUmVtb3ZlIElEQktleSB2
YXJpYW50IHR5cGUuCisKIDIwMTMtMDEtMTIgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEF2YWlsYWJsZSBoZWlnaHQgc2hvdWxkIHJlc3BlY3QgbWluIGFuZCBt
YXggaGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJBbnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQW55LmNwcApp
bmRleCBjOWQzMDZkZjNjNjljNTdlMzNlNWRhNDEwNmI2MzNiZTM4NTAzYzFlLi44MTkwNjA2OGMx
ZWVjYjJmOTE1M2EyNWQ1NjA1MDQxYmVlZWI2MTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBbnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkFueS5jcHAKQEAgLTEwMiwxMiArMTAyLDYgQEAgUGFzc1JlZlB0cjxJ
REJJbmRleD4gSURCQW55OjppZGJJbmRleCgpCiAgICAgcmV0dXJuIG1faWRiSW5kZXg7CiB9CiAK
LVBhc3NSZWZQdHI8SURCS2V5PiBJREJBbnk6OmlkYktleSgpCi17Ci0gICAgQVNTRVJUKG1fdHlw
ZSA9PSBJREJLZXlUeXBlKTsKLSAgICByZXR1cm4gbV9pZGJLZXk7Ci19Ci0KIFBhc3NSZWZQdHI8
SURCT2JqZWN0U3RvcmU+IElEQkFueTo6aWRiT2JqZWN0U3RvcmUoKQogewogICAgIEFTU0VSVCht
X3R5cGUgPT0gSURCT2JqZWN0U3RvcmVUeXBlKTsKQEAgLTE4NiwxMyArMTgwLDYgQEAgdm9pZCBJ
REJBbnk6OnNldChQYXNzUmVmUHRyPElEQkluZGV4PiB2YWx1ZSkKICAgICBtX2lkYkluZGV4ID0g
dmFsdWU7CiB9CiAKLXZvaWQgSURCQW55OjpzZXQoUGFzc1JlZlB0cjxJREJLZXk+IHZhbHVlKQot
ewotICAgIEFTU0VSVChtX3R5cGUgPT0gVW5kZWZpbmVkVHlwZSk7Ci0gICAgbV90eXBlID0gSURC
S2V5VHlwZTsKLSAgICBtX2lkYktleSA9IHZhbHVlOwotfQotCiB2b2lkIElEQkFueTo6c2V0KFBh
c3NSZWZQdHI8SURCVHJhbnNhY3Rpb24+IHZhbHVlKQogewogICAgIEFTU0VSVChtX3R5cGUgPT0g
VW5kZWZpbmVkVHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJBbnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkFueS5o
CmluZGV4IGM0ZjA0Nzg5YzlmNGE5NjJjMzczMmM0MWMxNWZmYmJhNWY2YjhhNDAuLjE2YzJiYjk2
N2Q1YTEwODM3OTUwNDhhMzE4MjRmMDI2ZTc2YTAxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkFueS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkFueS5oCkBAIC00Myw3ICs0Myw2IEBAIGNsYXNzIElEQkN1cnNvcldp
dGhWYWx1ZTsKIGNsYXNzIElEQkRhdGFiYXNlOwogY2xhc3MgSURCRmFjdG9yeTsKIGNsYXNzIElE
QkluZGV4OwotY2xhc3MgSURCS2V5OwogY2xhc3MgSURCS2V5UGF0aDsKIGNsYXNzIElEQk9iamVj
dFN0b3JlOwogY2xhc3MgSURCVHJhbnNhY3Rpb247CkBAIC05MSw3ICs5MCw2IEBAIHB1YmxpYzoK
ICAgICAgICAgSURCRGF0YWJhc2VUeXBlLAogICAgICAgICBJREJGYWN0b3J5VHlwZSwKICAgICAg
ICAgSURCSW5kZXhUeXBlLAotICAgICAgICBJREJLZXlUeXBlLAogICAgICAgICBJREJPYmplY3RT
dG9yZVR5cGUsCiAgICAgICAgIElEQlRyYW5zYWN0aW9uVHlwZSwKICAgICAgICAgU2NyaXB0VmFs
dWVUeXBlLApAQCAtMTA3LDcgKzEwNSw2IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQkRh
dGFiYXNlPiBpZGJEYXRhYmFzZSgpOwogICAgIFBhc3NSZWZQdHI8SURCRmFjdG9yeT4gaWRiRmFj
dG9yeSgpOwogICAgIFBhc3NSZWZQdHI8SURCSW5kZXg+IGlkYkluZGV4KCk7Ci0gICAgUGFzc1Jl
ZlB0cjxJREJLZXk+IGlkYktleSgpOwogICAgIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IGlk
Yk9iamVjdFN0b3JlKCk7CiAgICAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gaWRiVHJhbnNh
Y3Rpb24oKTsKICAgICBTY3JpcHRWYWx1ZSBzY3JpcHRWYWx1ZSgpOwpAQCAtMTIyLDcgKzExOSw2
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldChQYXNzUmVmUHRyPElEQkRhdGFiYXNlPik7CiAgICAg
dm9pZCBzZXQoUGFzc1JlZlB0cjxJREJGYWN0b3J5Pik7CiAgICAgdm9pZCBzZXQoUGFzc1JlZlB0
cjxJREJJbmRleD4pOwotICAgIHZvaWQgc2V0KFBhc3NSZWZQdHI8SURCS2V5Pik7CiAgICAgdm9p
ZCBzZXQoUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4pOwogICAgIHZvaWQgc2V0KFBhc3NSZWZQ
dHI8SURCVHJhbnNhY3Rpb24+KTsKICAgICB2b2lkIHNldChjb25zdCBJREJLZXlQYXRoJik7CkBA
IC0xNDIsNyArMTM4LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SURCRGF0YWJhc2U+IG1faWRi
RGF0YWJhc2U7CiAgICAgUmVmUHRyPElEQkZhY3Rvcnk+IG1faWRiRmFjdG9yeTsKICAgICBSZWZQ
dHI8SURCSW5kZXg+IG1faWRiSW5kZXg7Ci0gICAgUmVmUHRyPElEQktleT4gbV9pZGJLZXk7CiAg
ICAgUmVmUHRyPElEQk9iamVjdFN0b3JlPiBtX2lkYk9iamVjdFN0b3JlOwogICAgIFJlZlB0cjxJ
REJUcmFuc2FjdGlvbj4gbV9pZGJUcmFuc2FjdGlvbjsKICAgICBTY3JpcHRWYWx1ZSBtX3Njcmlw
dFZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
Q3Vyc29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5j
cHAKaW5kZXggZDQxMWRhOTM3NWVmYWI5MTBjYmQ2NWU3ZDliMWU0NGM5MzA4M2RjMS4uMGM0ODQ4
ZjJkYmI0NDYzNWUzNGUzMzk2MTc5MTlkNzQxNGEzZTQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0xODAsNiArMTgwLDEzIEBAIHZv
aWQgSURCQ3Vyc29yOjphZHZhbmNlKGxvbmcgbG9uZyBjb3VudCwgRXhjZXB0aW9uQ29kZSYgZWMp
CiAgICAgQVNTRVJUKCFlYyk7CiB9CiAKK3ZvaWQgSURCQ3Vyc29yOjpjb250aW51ZUZ1bmN0aW9u
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFNjcmlwdFZhbHVlJiBrZXlW
YWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgRE9NUmVxdWVzdFN0YXRlIHJlcXVlc3RT
dGF0ZShjb250ZXh0KTsKKyAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSBzY3JpcHRWYWx1ZVRvSURC
S2V5KCZyZXF1ZXN0U3RhdGUsIGtleVZhbHVlKTsKKyAgICBjb250aW51ZUZ1bmN0aW9uKGtleS5y
ZWxlYXNlKCksIGVjKTsKK30KKwogdm9pZCBJREJDdXJzb3I6OmNvbnRpbnVlRnVuY3Rpb24oUGFz
c1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSURCX1RSQUNF
KCJJREJDdXJzb3I6OmNvbnRpbnVlIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvci5oCmluZGV4IDJiMDU5MDdiZjZjNmY5NWE1ZmRjZjljYWY5M2UxYWM5ZWVm
OTViNDkuLmU5ZjliNzRlMzY3MzM3NDBlMWUwOGY1NjlkN2U5ODQ0NzFjN2M2MGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCkBAIC02Nyw5ICs2Nyw2
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3I+IGNyZWF0ZShQYXNz
UmVmUHRyPElEQkN1cnNvckJhY2tlbmRJbnRlcmZhY2U+LCBEaXJlY3Rpb24sIElEQlJlcXVlc3Qq
LCBJREJBbnkqIHNvdXJjZSwgSURCVHJhbnNhY3Rpb24qKTsKICAgICB2aXJ0dWFsIH5JREJDdXJz
b3IoKTsKIAotICAgIC8vIEZJWE1FOiBUcnkgdG8gbW9kaWZ5IHRoZSBjb2RlIGdlbmVyYXRvciBz
byB0aGlzIGlzIHVubmVlZGVkLgotICAgIHZvaWQgY29udGludWVGdW5jdGlvbihFeGNlcHRpb25D
b2RlJiBlYykgeyBjb250aW51ZUZ1bmN0aW9uKDAsIGVjKTsgfQotCiAgICAgLy8gSW1wbGVtZW50
IHRoZSBJREwKICAgICBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbigpIGNvbnN0OwogICAgIGNvbnN0
IFNjcmlwdFZhbHVlJiBrZXkoKSBjb25zdDsKQEAgLTgwLDkgKzc3LDEyIEBAIHB1YmxpYzoKICAg
ICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IHVwZGF0ZShTY3JpcHRTdGF0ZSosIFNjcmlwdFZhbHVl
JiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgdW5zaWduZWQgbG9u
ZyBvbmNlIHdlYmtpdC5vcmcvYi85Njc5OCBsYW5kcy4KICAgICB2b2lkIGFkdmFuY2UobG9uZyBs
b25nLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBjb250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQ
dHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBUcnkgdG8gbW9kaWZ5
IHRoZSBjb2RlIGdlbmVyYXRvciBzbyB0aGlzIG92ZXJsb2FkIGlzIHVubmVlZGVkLgorICAgIHZv
aWQgY29udGludWVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29k
ZSYgZWMpIHsgY29udGludWVGdW5jdGlvbihzdGF0aWNfY2FzdDxJREJLZXkqPigwKSwgZWMpOyB9
CisgICAgdm9pZCBjb250aW51ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25z
dCBTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBkZWxldGVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0aW9u
Q29kZSYpOwogCisgICAgdm9pZCBjb250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5Piwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgcG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJhY2soKTsK
ICAgICB2b2lkIGNsb3NlKCk7CiAgICAgdm9pZCBzZXRWYWx1ZVJlYWR5KERPTVJlcXVlc3RTdGF0
ZSosIFBhc3NSZWZQdHI8SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFNj
cmlwdFZhbHVlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJDdXJzb3IuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yLmlkbAppbmRleCA2NDYyMDc3ZDBhY2M2NWYzYmU5OGNmZTk5OGFiNTdmYzU2YTVlZjkwLi40
NTcwYzFlY2M4N2QwOGI5MDEwMDNhM2RjOGYyNzg2MWYxMTg4ZWExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5pZGwKQEAgLTM4LDcgKzM4LDcgQEAK
ICAgICAvLyBGSVhNRTogTWFrZSB0aGlzIFtFbmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgb25j
ZSB3ZWJraXQub3JnL2IvOTY3OTggbGFuZHMuCiAgICAgdm9pZCBhZHZhbmNlKGluIGxvbmcgbG9u
ZyBjb3VudCkKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgIFtJbXBsZW1lbnRl
ZEFzPWNvbnRpbnVlRnVuY3Rpb25dIHZvaWQgY29udGludWUoaW4gW09wdGlvbmFsXSBJREJLZXkg
a2V5KQorICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1lbnRlZEFz
PWNvbnRpbnVlRnVuY3Rpb25dIHZvaWQgY29udGludWUoaW4gW09wdGlvbmFsXSBhbnkga2V5KQog
ICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIEltcGxlbWVudGVkQXM9ZGVsZXRlRnVuY3Rpb25dIElEQlJlcXVlc3QgZGVs
ZXRlKCkKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCmlu
ZGV4IDY0YzRhYWI2ZjM2ZTcyOTNlNWY2YTVhYmYyZmQzMGI4MGU0OGFmYTUuLjE5ZjIwYjZkYTI3
NzNhNmNjNjBmNzJlMjIxYWU0OWE5NzQxNzUxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAKQEAgLTE2
MSwxMSArMTYxLDcgQEAgdm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6ZGVsZXRlRnVuY3Rpb24o
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrcywKIHsKICAgICBJREJfVFJBQ0Uo
IklEQkN1cnNvckJhY2tlbmRJbXBsOjpkZWxldGUiKTsKICAgICBBU1NFUlQobV90cmFuc2FjdGlv
bi0+bW9kZSgpICE9IElEQlRyYW5zYWN0aW9uOjpSRUFEX09OTFkpOwotCi0gICAgRXhjZXB0aW9u
Q29kZSBlYyA9IDA7Ci0gICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSA9IElEQktleVJh
bmdlOjpvbmx5KG1fY3Vyc29yLT5wcmltYXJ5S2V5KCksIGVjKTsKLSAgICBBU1NFUlQoIWVjKTsK
LQorICAgIFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6Y3JlYXRl
KG1fY3Vyc29yLT5wcmltYXJ5S2V5KCkpOwogICAgIG1fZGF0YWJhc2UtPmRlbGV0ZVJhbmdlKG1f
dHJhbnNhY3Rpb24tPmlkKCksIG1fb2JqZWN0U3RvcmVJZCwga2V5UmFuZ2UucmVsZWFzZSgpLCBw
cnBDYWxsYmFja3MpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuY3BwCmluZGV4IDg0MGNhOThlZGEzMjM5Mjg4NGFlNTMwMzlhMWM4YjE1NDQy
MzQ5OGYuLjRkZTAzZWYwZmNlNzdmMGYyNmFhYWYyNTg5MmQ1MGY1MWY2ZGZjNTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCkBAIC0zNSw2
ICszNSw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5oIgorI2luY2x1ZGUgIklEQkJpbmRpbmdVdGlsaXRp
ZXMuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbC5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCkBAIC0xNTIs
OCArMTUzLDEyIEBAIFBhc3NSZWZQdHI8SURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q+IElEQkZhY3Rv
cnk6OmRlbGV0ZURhdGFiYXNlKFNjcmlwdEV4ZWN1dGlvbkNvCiAgICAgcmV0dXJuIHJlcXVlc3Q7
CiB9CiAKLXNob3J0IElEQkZhY3Rvcnk6OmNtcChQYXNzUmVmUHRyPElEQktleT4gZmlyc3QsIFBh
c3NSZWZQdHI8SURCS2V5PiBzZWNvbmQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorc2hvcnQgSURCRmFj
dG9yeTo6Y21wKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFNjcmlwdFZh
bHVlJiBmaXJzdFZhbHVlLCBjb25zdCBTY3JpcHRWYWx1ZSYgc2Vjb25kVmFsdWUsIEV4Y2VwdGlv
bkNvZGUmIGVjKQogeworICAgIERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoY29udGV4dCk7
CisgICAgUmVmUHRyPElEQktleT4gZmlyc3QgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KCZyZXF1ZXN0
U3RhdGUsIGZpcnN0VmFsdWUpOworICAgIFJlZlB0cjxJREJLZXk+IHNlY29uZCA9IHNjcmlwdFZh
bHVlVG9JREJLZXkoJnJlcXVlc3RTdGF0ZSwgc2Vjb25kVmFsdWUpOworCiAgICAgQVNTRVJUKGZp
cnN0KTsKICAgICBBU1NFUlQoc2Vjb25kKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeS5oCmluZGV4IDE4NTdiYTQyYTM3ZTY1NjU0YzYyNGI3YWJiNDJi
NmVmZGVlM2I5MjguLjUyMzQ1OTc0MDMzZTU0NWNiN2FiOWM1NWUwZDQ5ODg5YWYyYmQ5ZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKQEAgLTYy
LDcgKzYyLDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gb3Bl
bihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZl
cnNpb24sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlZlcnNpb25DaGFuZ2VS
ZXF1ZXN0PiBkZWxldGVEYXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICBzaG9ydCBjbXAoUGFzc1JlZlB0cjxJ
REJLZXk+IGZpcnN0LCBQYXNzUmVmUHRyPElEQktleT4gc2Vjb25kLCBFeGNlcHRpb25Db2RlJik7
CisgICAgc2hvcnQgY21wKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTY3JpcHRWYWx1
ZSYgZmlyc3QsIGNvbnN0IFNjcmlwdFZhbHVlJiBzZWNvbmQsIEV4Y2VwdGlvbkNvZGUmKTsKIAog
cHJpdmF0ZToKICAgICBJREJGYWN0b3J5KElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsCmluZGV4
IGExODA4MjM4MTJmZGU2OTEyMGU0MzI0MGUxOTE2NTkwYTIwZWUwMjMuLjc1ZjcxMjQ4NGE3NzBk
OGRiYmUzNDUzNjAwY2U0MjVhODQxZmZmZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsCkBAIC0zNSw3ICszNSw3IEBACiAgICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0IGRlbGV0
ZURhdGFiYXNlKGluIERPTVN0cmluZyBuYW1lKQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlv
bik7CiAKLSAgICBzaG9ydCBjbXAoaW4gSURCS2V5IGZpcnN0LCBpbiBJREJLZXkgc2Vjb25kKQor
ICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBzaG9ydCBjbXAoaW4gYW55IGZp
cnN0LCBpbiBhbnkgc2Vjb25kKQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAKaW5kZXgg
YThjMTk2MDYwM2E2MGUyZmI4YmM5NmU0NjIwMzBhYjhlYzk5MTNkMS4uMmUzZTg2NDM0YWQ2MWRi
NDg5ODczYzI2NjViNDE0ZjNhNDBiMWQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCSW5kZXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkluZGV4LmNwcApAQCAtNzksMTAgKzc5LDEwIEBAIFBhc3NSZWZQdHI8SURC
UmVxdWVzdD4gSURCSW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgUGFzCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gSURCSW5kZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
UGFzc1JlZlB0cjxJREJLZXk+IGtleSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlv
bkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6b3BlbkN1cnNvcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBj
b25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSURCX1RS
QUNFKCJJREJJbmRleDo6b3BlbkN1cnNvciIpOwotICAgIFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5
UmFuZ2UgPSBJREJLZXlSYW5nZTo6b25seShrZXksIGVjKTsKKyAgICBSZWZQdHI8SURCS2V5UmFu
Z2U+IGtleVJhbmdlID0gSURCS2V5UmFuZ2U6Om9ubHkoY29udGV4dCwga2V5LCBlYyk7CiAgICAg
aWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0
LCBrZXlSYW5nZS5yZWxlYXNlKCksIGRpcmVjdGlvbiwgZWMpOwpAQCAtMTA1LDEwICsxMDUsMTAg
QEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6Y291bnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGFzc1JlZlAKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAotUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6Y291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4Ojpjb3VudChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBJREJfVFJBQ0UoIklEQkluZGV4Ojpjb3VudCIpOwotICAgIFJlZlB0cjxJREJLZXlS
YW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6b25seShrZXksIGVjKTsKKyAgICBSZWZQdHI8
SURCS2V5UmFuZ2U+IGtleVJhbmdlID0gSURCS2V5UmFuZ2U6Om9ubHkoY29udGV4dCwga2V5LCBl
Yyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gY291bnQoY29u
dGV4dCwga2V5UmFuZ2UucmVsZWFzZSgpLCBlYyk7CkBAIC0xMzUsMTkgKzEzNSwxOSBAQCBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gSURCSW5kZXg6Om9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rp
b24sIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6
b3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTY3Jp
cHRWYWx1ZSYga2V5LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgSURCX1RSQUNFKCJJREJJbmRleDo6b3BlbktleUN1cnNvciIpOwotICAgIFJlZlB0
cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6b25seShrZXksIGVjKTsKKyAg
ICBSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlID0gSURCS2V5UmFuZ2U6Om9ubHkoY29udGV4
dCwga2V5LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4g
b3BlbktleUN1cnNvcihjb250ZXh0LCBrZXlSYW5nZS5yZWxlYXNlKCksIGRpcmVjdGlvbiwgZWMp
OwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpnZXQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpnZXQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgSURCX1RSQUNFKCJJREJJbmRleDo6Z2V0Iik7Ci0gICAgUmVmUHRyPElE
QktleVJhbmdlPiBrZXlSYW5nZSA9IElEQktleVJhbmdlOjpvbmx5KGtleSwgZWMpOworICAgIFJl
ZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6b25seShjb250ZXh0LCBr
ZXksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBnZXQo
Y29udGV4dCwga2V5UmFuZ2UucmVsZWFzZSgpLCBlYyk7CkBAIC0xNzQsMTAgKzE3NCwxMCBAQCBQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgUGFzc1JlZlB0cgogICAgIHJldHVybiByZXF1ZXN0OwogfQogCi1QYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpnZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpnZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgY29uc3QgU2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgSURCX1RSQUNFKCJJREJJbmRleDo6Z2V0S2V5Iik7Ci0gICAgUmVmUHRyPElEQktleVJh
bmdlPiBrZXlSYW5nZSA9IElEQktleVJhbmdlOjpvbmx5KGtleSwgZWMpOworICAgIFJlZlB0cjxJ
REJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6b25seShjb250ZXh0LCBrZXksIGVj
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCSW5kZXguaAppbmRleCAzMDcyZjE1Yjk4MTIyZjgxZDQ0NGQ0OTUx
ZDI5MjA3YjcyZWU4NmVjLi5hYzgwYzUwOGMyOTVmMDIxNmM0NTE2M2M3NTliNWExMjQ5MDVjNjI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmgKQEAgLTYz
LDIzICs2MywyMyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFRyeSB0byBtb2RpZnkgdGhlIGNv
ZGUgZ2VuZXJhdG9yIHNvIHRoaXMgaXMgdW5uZWVkZWQuCiAgICAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlv
bkNvZGUmIGVjKSB7IHJldHVybiBvcGVuQ3Vyc29yKGNvbnRleHQsIHN0YXRpY19jYXN0PElEQktl
eVJhbmdlKj4oMCksIGVjKTsgfQogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNv
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdl
PiBrZXlSYW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4
dCwga2V5UmFuZ2UsIElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpLCBlYyk7IH0KLSAgICBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJu
IG9wZW5DdXJzb3IoY29udGV4dCwga2V5LCBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHQoKSwgZWMp
OyB9CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUm
IGVjKSB7IHJldHVybiBvcGVuQ3Vyc29yKGNvbnRleHQsIGtleSwgSURCQ3Vyc29yOjpkaXJlY3Rp
b25OZXh0KCksIGVjKTsgfQogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGNvbnN0IFN0
cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktl
eT4sIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1Jl
ZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25z
dCBTY3JpcHRWYWx1ZSYga2V5LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29k
ZSYpOwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNvdW50KGNvbnRleHQs
IHN0YXRpY19jYXN0PElEQktleVJhbmdlKj4oMCksIGVjKTsgfQogICAgIFBhc3NSZWZQdHI8SURC
UmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5
UmFuZ2U+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjb3Vu
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXk+LCBFeGNlcHRpb25D
b2RlJik7CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjb3VudChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgY29uc3QgU2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAg
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuS2V5Q3Vyc29yKGNv
bnRleHQsIHN0YXRpY19jYXN0PElEQktleVJhbmdlKj4oMCksIGVjKTsgfQogICAgIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMp
IHsgcmV0dXJuIG9wZW5LZXlDdXJzb3IoY29udGV4dCwga2V5UmFuZ2UsIElEQkN1cnNvcjo6ZGly
ZWN0aW9uTmV4dCgpLCBlYyk7IH0KLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5LZXlD
dXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+
IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5LZXlDdXJzb3IoY29udGV4dCwg
a2V5LCBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHQoKSwgZWMpOyB9CisgICAgUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IGNvbnN0IFNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVu
S2V5Q3Vyc29yKGNvbnRleHQsIGtleSwgSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCksIGVjKTsg
fQogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGNvbnN0IFN0cmluZyYgZGlyZWN0
aW9uLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5
Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4sIGNvbnN0
IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTY3Jp
cHRWYWx1ZSYga2V5LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYpOwog
CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURC
S2V5PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25D
b2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBnZXRLZXkoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAg
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBnZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBh
c3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gZ2V0S2V5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTY3JpcHRWYWx1ZSYg
a2V5LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lkIG1hcmtEZWxldGVkKCkgeyBtX2RlbGV0
ZWQgPSB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkluZGV4LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQklu
ZGV4LmlkbAppbmRleCA4MTk1NzUwNDNkMjk4YzMxMzY0M2I0MDk0NzkzMTJmZTMwYTY5NWY0Li5h
NmIzOWJiMzk0MzFhYzIwNjFlYTNlZjk0MTUwMjdlYjliMDFkM2I2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsCkBAIC0zNSwyNSArMzUsMjUgQEAK
IAogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5D
dXJzb3IoaW4gW09wdGlvbmFsXSBJREJLZXlSYW5nZT8gcmFuZ2UsIGluIFtPcHRpb25hbF0gRE9N
U3RyaW5nIGRpcmVjdGlvbikKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4g
SURCS2V5IGtleSwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgZGlyZWN0aW9uKQorICAgIFtDYWxs
V2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gYW55
IGtleSwgaW4gW09wdGlvbmFsXSBET01TdHJpbmcgZGlyZWN0aW9uKQogICAgICAgICByYWlzZXMg
KERPTUV4Y2VwdGlvbik7Ci0gICAgCisKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dF0gSURCUmVxdWVzdCBvcGVuS2V5Q3Vyc29yKGluIFtPcHRpb25hbF0gSURCS2V5UmFuZ2U/
IHJhbmdlLCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyAgZGlyZWN0aW9uKQogICAgICAgICByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRd
IElEQlJlcXVlc3Qgb3BlbktleUN1cnNvcihpbiBJREJLZXkga2V5LCBpbiBbT3B0aW9uYWxdIERP
TVN0cmluZyBkaXJlY3Rpb24pCisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRd
IElEQlJlcXVlc3Qgb3BlbktleUN1cnNvcihpbiBhbnkga2V5LCBpbiBbT3B0aW9uYWxdIERPTVN0
cmluZyBkaXJlY3Rpb24pCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGdldChpbiBJREJLZXlS
YW5nZT8ga2V5KQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgW0NhbGxXaXRo
PVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgZ2V0KGluIElEQktleSBrZXkpCisg
ICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgZ2V0KGluIGFu
eSBrZXkpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICBbQ2FsbFdpdGg9U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBnZXRLZXkoaW4gSURCS2V5UmFuZ2U/IGtl
eSkKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgIFtDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGdldEtleShpbiBJREJLZXkga2V5KQorICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGdldEtleShpbiBhbnkg
a2V5KQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgW0NhbGxXaXRoPVNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgY291bnQoaW4gW09wdGlvbmFsXSBJREJLZXlS
YW5nZT8gcmFuZ2UpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICBbQ2FsbFdp
dGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBjb3VudChpbiBJREJLZXkga2V5
KQorICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGNvdW50
KGluIGFueSBrZXkpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcAppbmRleCA4
YTg0OTJjZTVlN2ZlYzc1YWJkZDUwZjJkOGFjYjk3OTdhZTY4MDhjLi5hNjM1YjUzNzQwZGJjM2I5
YTlhNTU3MmExNmU1ZTAxNDdmZjExNDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKIAorI2luY2x1ZGUgIkRPTVJlcXVl
c3RTdGF0ZS5oIgorI2luY2x1ZGUgIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIklEQktleS5oIgogCkBAIC0zMyw2ICsz
NSwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1Bhc3NSZWZQdHI8SURCS2V5UmFuZ2U+
IElEQktleVJhbmdlOjpjcmVhdGUoUGFzc1JlZlB0cjxJREJLZXk+IHBycEtleSkKK3sKKyAgICBS
ZWZQdHI8SURCS2V5PiBrZXkgPSBwcnBLZXk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJL
ZXlSYW5nZShrZXksIGtleSwgTG93ZXJCb3VuZENsb3NlZCwgVXBwZXJCb3VuZENsb3NlZCkpOwor
fQorCiBJREJLZXlSYW5nZTo6SURCS2V5UmFuZ2UoUGFzc1JlZlB0cjxJREJLZXk+IGxvd2VyLCBQ
YXNzUmVmUHRyPElEQktleT4gdXBwZXIsIExvd2VyQm91bmRUeXBlIGxvd2VyVHlwZSwgVXBwZXJC
b3VuZFR5cGUgdXBwZXJUeXBlKQogICAgIDogbV9sb3dlcihsb3dlcikKICAgICAsIG1fdXBwZXIo
dXBwZXIpCkBAIC00MSw2ICs0OSwxOCBAQCBJREJLZXlSYW5nZTo6SURCS2V5UmFuZ2UoUGFzc1Jl
ZlB0cjxJREJLZXk+IGxvd2VyLCBQYXNzUmVmUHRyPElEQktleT4gdXBwZXIsIExvdwogewogfQog
CitTY3JpcHRWYWx1ZSBJREJLZXlSYW5nZTo6bG93ZXJWYWx1ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0KSBjb25zdAoreworICAgIERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUo
Y29udGV4dCk7CisgICAgcmV0dXJuIGlkYktleVRvU2NyaXB0VmFsdWUoJnJlcXVlc3RTdGF0ZSwg
bV9sb3dlcik7Cit9CisKK1NjcmlwdFZhbHVlIElEQktleVJhbmdlOjp1cHBlclZhbHVlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpIGNvbnN0Cit7CisgICAgRE9NUmVxdWVzdFN0YXRl
IHJlcXVlc3RTdGF0ZShjb250ZXh0KTsKKyAgICByZXR1cm4gaWRiS2V5VG9TY3JpcHRWYWx1ZSgm
cmVxdWVzdFN0YXRlLCBtX3VwcGVyKTsKK30KKwogUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gSURC
S2V5UmFuZ2U6Om9ubHkoUGFzc1JlZlB0cjxJREJLZXk+IHBycEtleSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAgICAgUmVmUHRyPElEQktleT4ga2V5ID0gcHJwS2V5OwpAQCAtNTIsOCArNzIsMjIg
QEAgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6Om9ubHkoUGFzc1JlZlB0cjxJ
REJLZXk+IHBycEtleSwgRXhjZXB0aW9uQ28KICAgICByZXR1cm4gSURCS2V5UmFuZ2U6OmNyZWF0
ZShrZXksIGtleSwgTG93ZXJCb3VuZENsb3NlZCwgVXBwZXJCb3VuZENsb3NlZCk7CiB9CiAKLVBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktleVJhbmdlOjpsb3dlckJvdW5kKFBhc3NSZWZQdHI8
SURCS2V5PiBib3VuZCwgYm9vbCBvcGVuLCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8
SURCS2V5UmFuZ2U+IElEQktleVJhbmdlOjpvbmx5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFNjcmlwdFZhbHVlJiBrZXlWYWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CisgICAgRE9NUmVxdWVzdFN0YXRlIHJlcXVlc3RTdGF0ZShjb250ZXh0KTsKKyAgICBSZWZQdHI8
SURCS2V5PiBrZXkgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KCZyZXF1ZXN0U3RhdGUsIGtleVZhbHVl
KTsKKyAgICBpZiAoIWtleSB8fCAha2V5LT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgZWMgPSBJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6RGF0YUVycm9yOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisK
KyAgICByZXR1cm4gSURCS2V5UmFuZ2U6OmNyZWF0ZShrZXksIGtleSwgTG93ZXJCb3VuZENsb3Nl
ZCwgVXBwZXJCb3VuZENsb3NlZCk7Cit9CisKK1Bhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktl
eVJhbmdlOjpsb3dlckJvdW5kKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFNjcmlwdFZhbHVlJiBib3VuZFZhbHVlLCBib29sIG9wZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworICAgIERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoY29udGV4dCk7CisgICAgUmVmUHRy
PElEQktleT4gYm91bmQgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KCZyZXF1ZXN0U3RhdGUsIGJvdW5k
VmFsdWUpOwogICAgIGlmICghYm91bmQgfHwgIWJvdW5kLT5pc1ZhbGlkKCkpIHsKICAgICAgICAg
ZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6RGF0YUVycm9yOwogICAgICAgICByZXR1cm4gMDsK
QEAgLTYyLDggKzk2LDEwIEBAIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktleVJhbmdlOjps
b3dlckJvdW5kKFBhc3NSZWZQdHI8SURCS2V5PiBib3VuZCwgYm9vbCBvCiAgICAgcmV0dXJuIElE
QktleVJhbmdlOjpjcmVhdGUoYm91bmQsIDAsIG9wZW4gPyBMb3dlckJvdW5kT3BlbiA6IExvd2Vy
Qm91bmRDbG9zZWQsIFVwcGVyQm91bmRPcGVuKTsKIH0KIAotUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4gSURCS2V5UmFuZ2U6OnVwcGVyQm91bmQoUGFzc1JlZlB0cjxJREJLZXk+IGJvdW5kLCBib29s
IG9wZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5
UmFuZ2U6OnVwcGVyQm91bmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3Qg
U2NyaXB0VmFsdWUmIGJvdW5kVmFsdWUsIGJvb2wgb3BlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CisgICAgRE9NUmVxdWVzdFN0YXRlIHJlcXVlc3RTdGF0ZShjb250ZXh0KTsKKyAgICBSZWZQdHI8
SURCS2V5PiBib3VuZCA9IHNjcmlwdFZhbHVlVG9JREJLZXkoJnJlcXVlc3RTdGF0ZSwgYm91bmRW
YWx1ZSk7CiAgICAgaWYgKCFib3VuZCB8fCAhYm91bmQtPmlzVmFsaWQoKSkgewogICAgICAgICBl
YyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEYXRhRXJyb3I7CiAgICAgICAgIHJldHVybiAwOwpA
QCAtNzIsOCArMTA4LDEyIEBAIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktleVJhbmdlOjp1
cHBlckJvdW5kKFBhc3NSZWZQdHI8SURCS2V5PiBib3VuZCwgYm9vbCBvCiAgICAgcmV0dXJuIElE
QktleVJhbmdlOjpjcmVhdGUoMCwgYm91bmQsIExvd2VyQm91bmRPcGVuLCBvcGVuID8gVXBwZXJC
b3VuZE9wZW4gOiBVcHBlckJvdW5kQ2xvc2VkKTsKIH0KIAotUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4gSURCS2V5UmFuZ2U6OmJvdW5kKFBhc3NSZWZQdHI8SURCS2V5PiBsb3dlciwgUGFzc1JlZlB0
cjxJREJLZXk+IHVwcGVyLCBib29sIGxvd2VyT3BlbiwgYm9vbCB1cHBlck9wZW4sIEV4Y2VwdGlv
bkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6OmJvdW5kKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFNjcmlwdFZhbHVlJiBsb3dlclZh
bHVlLCBjb25zdCBTY3JpcHRWYWx1ZSYgdXBwZXJWYWx1ZSwgYm9vbCBsb3dlck9wZW4sIGJvb2wg
dXBwZXJPcGVuLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKKyAgICBET01SZXF1ZXN0U3RhdGUgcmVx
dWVzdFN0YXRlKGNvbnRleHQpOworICAgIFJlZlB0cjxJREJLZXk+IGxvd2VyID0gc2NyaXB0VmFs
dWVUb0lEQktleSgmcmVxdWVzdFN0YXRlLCBsb3dlclZhbHVlKTsKKyAgICBSZWZQdHI8SURCS2V5
PiB1cHBlciA9IHNjcmlwdFZhbHVlVG9JREJLZXkoJnJlcXVlc3RTdGF0ZSwgdXBwZXJWYWx1ZSk7
CisKICAgICBpZiAoIWxvd2VyIHx8ICFsb3dlci0+aXNWYWxpZCgpIHx8ICF1cHBlciB8fCAhdXBw
ZXItPmlzVmFsaWQoKSkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEYXRh
RXJyb3I7CiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleVJhbmdlLmgKaW5kZXggNjA2N2VmOTVkNjg0NzA5ZWZjYTdmOTY0NWIzMDcw
MjM0ODJhMjVlYy4uODE4NjVkMGI1M2E5NGZhZmFmMTA2NzczN2JhZWNhNmI1Y2RkOThhNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oCkBAIC01
MywzNiArNTMsMjkgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBJREJLZXlSYW5nZShsb3dlciwgdXBwZXIsIGxvd2VyVHlwZSwgdXBwZXJUeXBlKSk7CiAgICAg
fQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBjcmVhdGUoUGFzc1JlZlB0cjxJ
REJLZXk+IHBycEtleSk7CiAgICAgfklEQktleVJhbmdlKCkgeyB9CiAKICAgICBQYXNzUmVmUHRy
PElEQktleT4gbG93ZXIoKSBjb25zdCB7IHJldHVybiBtX2xvd2VyOyB9CiAgICAgUGFzc1JlZlB0
cjxJREJLZXk+IHVwcGVyKCkgY29uc3QgeyByZXR1cm4gbV91cHBlcjsgfQorCisgICAgU2NyaXB0
VmFsdWUgbG93ZXJWYWx1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgY29uc3Q7CisgICAgU2Ny
aXB0VmFsdWUgdXBwZXJWYWx1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgY29uc3Q7CiAgICAg
Ym9vbCBsb3dlck9wZW4oKSBjb25zdCB7IHJldHVybiBtX2xvd2VyVHlwZSA9PSBMb3dlckJvdW5k
T3BlbjsgfQogICAgIGJvb2wgdXBwZXJPcGVuKCkgY29uc3QgeyByZXR1cm4gbV91cHBlclR5cGUg
PT0gVXBwZXJCb3VuZE9wZW47IH0KIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleVJhbmdl
PiBvbmx5KFBhc3NSZWZQdHI8SURCS2V5PiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBvbmx5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gbG93ZXJCb3VuZChQYXNzUmVmUHRyPElEQktleT4gYm91
bmQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotICAgIHsKLSAgICAgIHJldHVybiBsb3dlckJvdW5kKGJv
dW5kLCBmYWxzZSwgZWMpOwotICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJLZXlSYW5n
ZT4gbG93ZXJCb3VuZChQYXNzUmVmUHRyPElEQktleT4gYm91bmQsIGJvb2wgb3BlbiwgRXhjZXB0
aW9uQ29kZSYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBsb3dlckJvdW5k
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFNjcmlwdFZhbHVlJiBib3Vu
ZCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGxvd2VyQm91bmQoY29udGV4dCwgYm91bmQs
IGZhbHNlLCBlYyk7IH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gbG93ZXJC
b3VuZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU2NyaXB0VmFsdWUmIGJvdW5kLCBi
b29sIG9wZW4sIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktl
eVJhbmdlPiB1cHBlckJvdW5kKFBhc3NSZWZQdHI8SURCS2V5PiBib3VuZCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCi0gICAgewotICAgICAgcmV0dXJuIHVwcGVyQm91bmQoYm91bmQsIGZhbHNlLCBlYyk7
Ci0gICAgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleVJhbmdlPiB1cHBlckJvdW5kKFBh
c3NSZWZQdHI8SURCS2V5PiBib3VuZCwgYm9vbCBvcGVuLCBFeGNlcHRpb25Db2RlJik7CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHVwcGVyQm91bmQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgY29uc3QgU2NyaXB0VmFsdWUmIGJvdW5kLCBFeGNlcHRpb25Db2Rl
JiBlYykgeyByZXR1cm4gdXBwZXJCb3VuZChjb250ZXh0LCBib3VuZCwgZmFsc2UsIGVjKTsgfQor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleVJhbmdlPiB1cHBlckJvdW5kKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBjb25zdCBTY3JpcHRWYWx1ZSYgYm91bmQsIGJvb2wgb3BlbiwgRXhjZXB0
aW9uQ29kZSYpOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGJvdW5kKFBh
c3NSZWZQdHI8SURCS2V5PiBsb3dlciwgUGFzc1JlZlB0cjxJREJLZXk+IHVwcGVyLCBFeGNlcHRp
b25Db2RlJiBlYykKLSAgICB7Ci0gICAgICByZXR1cm4gYm91bmQobG93ZXIsIHVwcGVyLCBmYWxz
ZSwgZmFsc2UsIGVjKTsKLSAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+
IGJvdW5kKFBhc3NSZWZQdHI8SURCS2V5PiBsb3dlciwgUGFzc1JlZlB0cjxJREJLZXk+IHVwcGVy
LCBib29sIGxvd2VyT3BlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCi0gICAgewotICAgICAgcmV0dXJu
IGJvdW5kKGxvd2VyLCB1cHBlciwgbG93ZXJPcGVuLCBmYWxzZSwgZWMpOwotICAgIH0KLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gYm91bmQoUGFzc1JlZlB0cjxJREJLZXk+IGxv
d2VyLCBQYXNzUmVmUHRyPElEQktleT4gdXBwZXIsIGJvb2wgbG93ZXJPcGVuLCBib29sIHVwcGVy
T3BlbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleVJhbmdl
PiBib3VuZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTY3JpcHRWYWx1
ZSYgbG93ZXIsIGNvbnN0IFNjcmlwdFZhbHVlJiB1cHBlciwgRXhjZXB0aW9uQ29kZSYgZWMpIHsg
cmV0dXJuIGJvdW5kKGNvbnRleHQsIGxvd2VyLCB1cHBlciwgZmFsc2UsIGZhbHNlLCBlYyk7IH0K
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gYm91bmQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgY29uc3QgU2NyaXB0VmFsdWUmIGxvd2VyLCBjb25zdCBTY3JpcHRW
YWx1ZSYgdXBwZXIsIGJvb2wgbG93ZXJPcGVuLCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4g
Ym91bmQoY29udGV4dCwgbG93ZXIsIHVwcGVyLCBsb3dlck9wZW4sIGZhbHNlLCBlYyk7IH0KKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gYm91bmQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIGNvbnN0IFNjcmlwdFZhbHVlJiBsb3dlciwgY29uc3QgU2NyaXB0VmFsdWUmIHVwcGVy
LCBib29sIGxvd2VyT3BlbiwgYm9vbCB1cHBlck9wZW4sIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAg
IGJvb2wgaXNPbmx5S2V5KCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJLZXlSYW5nZS5pZGwKaW5kZXggMDZmYzI3YTIwZWRmNTY0YWFhNTE0YzFiMjg0
MzE4MWJkODZhZWZjYy4uNTdlMGU1MDU2NmM0MjQwNjM3MTg0YTQwYzFhZTA5ZTE1ODg5Y2JlYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2Uu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmlk
bApAQCAtMjcsMTggKzI3LDE4IEBACiAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwK
ICAgICBKU05vU3RhdGljVGFibGVzCiBdIGludGVyZmFjZSBJREJLZXlSYW5nZSB7Ci0gICAgcmVh
ZG9ubHkgYXR0cmlidXRlIElEQktleSBsb3dlcjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgSURC
S2V5IHVwcGVyOworICAgIFtJbXBsZW1lbnRlZEFzPWxvd2VyVmFsdWUsQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gcmVhZG9ubHkgYXR0cmlidXRlIGFueSBsb3dlcjsKKyAgICBbSW1w
bGVtZW50ZWRBcz11cHBlclZhbHVlLENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBhbnkgdXBwZXI7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gbG93ZXJPcGVuOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHVwcGVyT3BlbjsK
IAotICAgIHN0YXRpYyBJREJLZXlSYW5nZSBvbmx5KGluIElEQktleSB2YWx1ZSkKKyAgICBbQ2Fs
bFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gc3RhdGljIElEQktleVJhbmdlIG9ubHkoaW4g
YW55IHZhbHVlKQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgc3RhdGljIElE
QktleVJhbmdlIGxvd2VyQm91bmQoaW4gSURCS2V5IGJvdW5kLCBpbiBbT3B0aW9uYWxdIGJvb2xl
YW4gb3BlbikKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gc3RhdGljIElE
QktleVJhbmdlIGxvd2VyQm91bmQoaW4gYW55IGJvdW5kLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4g
b3BlbikKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgIHN0YXRpYyBJREJLZXlS
YW5nZSB1cHBlckJvdW5kKGluIElEQktleSBib3VuZCwgaW4gW09wdGlvbmFsXSBib29sZWFuIG9w
ZW4pCisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHN0YXRpYyBJREJLZXlS
YW5nZSB1cHBlckJvdW5kKGluIGFueSBib3VuZCwgaW4gW09wdGlvbmFsXSBib29sZWFuIG9wZW4p
CiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICBzdGF0aWMgSURCS2V5UmFuZ2Ug
Ym91bmQoaW4gSURCS2V5IGxvd2VyLCBpbiBJREJLZXkgdXBwZXIsIGluIFtPcHRpb25hbF0gYm9v
bGVhbiBsb3dlck9wZW4sIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1cHBlck9wZW4pCisgICAgW0Nh
bGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHN0YXRpYyBJREJLZXlSYW5nZSBib3VuZChp
biBhbnkgbG93ZXIsIGluIGFueSB1cHBlciwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxvd2VyT3Bl
biwgaW4gW09wdGlvbmFsXSBib29sZWFuIHVwcGVyT3BlbikKICAgICAgICAgcmFpc2VzIChET01F
eGNlcHRpb24pOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IGY1MGZlMWViYjgwODJlMjE3NmY4ZDRmZWQzMGQ5
YWFiMDMyNTVmOGEuLmRhMGM5OWQzODZmYWFlNTk1ZGNmODRkNjRlZTFkNjhiYWEyN2RkZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9y
ZS5jcHAKQEAgLTg5LDkgKzg5LDkgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RT
dG9yZTo6Z2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3MKICAgICByZXR1
cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2Jq
ZWN0U3RvcmU6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRy
PElEQktleT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4g
SURCT2JqZWN0U3RvcmU6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25z
dCBTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBSZWZQdHI8SURC
S2V5UmFuZ2U+IGtleVJhbmdlID0gSURCS2V5UmFuZ2U6Om9ubHkoa2V5LCBlYyk7CisgICAgUmVm
UHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSA9IElEQktleVJhbmdlOjpvbmx5KGNvbnRleHQsIGtl
eSwgZWMpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGdldChj
b250ZXh0LCBrZXlSYW5nZS5yZWxlYXNlKCksIGVjKTsKQEAgLTEyMCwyMSArMTIwLDQwIEBAIHN0
YXRpYyB2b2lkIGdlbmVyYXRlSW5kZXhLZXlzRm9yVmFsdWUoRE9NUmVxdWVzdFN0YXRlKiByZXF1
ZXN0U3RhdGUsIGNvbnN0IElEQkluCiAgICAgfQogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IElEQk9iamVjdFN0b3JlOjphZGQoU2NyaXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFs
dWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6YWRkKFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2Ny
aXB0VmFsdWUmIHZhbHVlLCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBJREJfVFJBQ0UoIklEQk9iamVjdFN0b3JlOjphZGQiKTsKICAgICByZXR1cm4g
cHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6QWRkT25seSwgSURCQW55OjpjcmVh
dGUodGhpcyksIHN0YXRlLCB2YWx1ZSwga2V5LCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChTY3JpcHRTdGF0ZSogc3RhdGUsIFNjcmlwdFZhbHVl
JiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjphZGQoU2NyaXB0U3RhdGUqIHN0YXRl
LCBTY3JpcHRWYWx1ZSYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElEQl9UUkFD
RSgiSURCT2JqZWN0U3RvcmU6OmFkZCIpOworICAgIHJldHVybiBwdXQoSURCT2JqZWN0U3RvcmVC
YWNrZW5kSW50ZXJmYWNlOjpBZGRPbmx5LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgc3RhdGUsIHZh
bHVlLCBzdGF0aWNfY2FzdDxJREJLZXkqPigwKSwgZWMpOworfQorCitQYXNzUmVmUHRyPElEQlJl
cXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQoU2NyaXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1
ZSYgdmFsdWUsIGNvbnN0IFNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmU6OnB1dCIpOwogICAgIHJldHVybiBwdXQoSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpBZGRPclVwZGF0ZSwgSURCQW55OjpjcmVhdGUo
dGhpcyksIHN0YXRlLCB2YWx1ZSwga2V5LCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gSURCT2JqZWN0U3RvcmU6OnB1dChJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OlB1
dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqIHN0
YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBwcnBLZXksIEV4Y2Vw
dGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6cHV0
KFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2NyaXB0VmFsdWUmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBJREJfVFJBQ0UoIklEQk9iamVjdFN0b3JlOjpwdXQiKTsKKyAgICByZXR1cm4g
cHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEludGVyZmFjZTo6QWRkT3JVcGRhdGUsIElEQkFueTo6
Y3JlYXRlKHRoaXMpLCBzdGF0ZSwgdmFsdWUsIHN0YXRpY19jYXN0PElEQktleSo+KDApLCBlYyk7
Cit9CisKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJB
bnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUsIGNvbnN0
IFNjcmlwdFZhbHVlJiBrZXlWYWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tU2Ny
aXB0U3RhdGUoc3RhdGUpOworICAgIERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoY29udGV4
dCk7CisgICAgUmVmUHRyPElEQktleT4ga2V5ID0gc2NyaXB0VmFsdWVUb0lEQktleSgmcmVxdWVz
dFN0YXRlLCBrZXlWYWx1ZSk7CisgICAgcmV0dXJuIHB1dChwdXRNb2RlLCBzb3VyY2UsIHN0YXRl
LCB2YWx1ZSwga2V5LnJlbGVhc2UoKSwgZWMpOworfQorCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IElEQk9iamVjdFN0b3JlOjpwdXQoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW50ZXJmYWNlOjpQdXRN
b2RlIHB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIFNjcmlwdFN0YXRlKiBzdGF0
ZSwgU2NyaXB0VmFsdWUmIHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBFeGNlcHRp
b25Db2RlJiBlYykKK3sKICAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSBwcnBLZXk7CiAgICAgaWYg
KG1fZGVsZXRlZCkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJbnZhbGlk
U3RhdGVFcnJvcjsKQEAgLTI0MCw5ICsyNTksOSBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElE
Qk9iamVjdFN0b3JlOjpkZWxldGVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjbwog
ICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAotUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiBJREJPYmplY3RTdG9yZTo6ZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpkZWxldGVGdW5jdGlvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRp
b25Db2RlJiBlYykKIHsKLSAgICBSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlID0gSURCS2V5
UmFuZ2U6Om9ubHkoa2V5LCBlYyk7CisgICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSA9
IElEQktleVJhbmdlOjpvbmx5KGNvbnRleHQsIGtleSwgZWMpOwogICAgIGlmIChlYykKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGRlbGV0ZUZ1bmN0aW9uKGNvbnRleHQsIGtleVJhbmdl
LnJlbGVhc2UoKSwgZWMpOwpAQCAtMzEzLDcgKzMzMiw3IEBAIHByaXZhdGU6CiAgICAgICAgIFZl
Y3RvcjxpbnQ2NF90LCAxPiBpbmRleElkczsKICAgICAgICAgaW5kZXhJZHMuYXBwZW5kKG1faW5k
ZXhNZXRhZGF0YS5pZCk7CiAgICAgICAgIGlmIChjdXJzb3IpIHsKLSAgICAgICAgICAgIGN1cnNv
ci0+Y29udGludWVGdW5jdGlvbihlYyk7CisgICAgICAgICAgICBjdXJzb3ItPmNvbnRpbnVlRnVu
Y3Rpb24oc3RhdGljX2Nhc3Q8SURCS2V5Kj4oMCksIGVjKTsKICAgICAgICAgICAgIEFTU0VSVCgh
ZWMpOwogCiAgICAgICAgICAgICBSZWZQdHI8SURCS2V5PiBwcmltYXJ5S2V5ID0gY3Vyc29yLT5p
ZGJQcmltYXJ5S2V5KCk7CkBAIC00OTQsOSArNTEzLDkgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiBJREJPYmplY3RTdG9yZTo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXgKICAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gSURCT2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24s
IEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9y
ZTo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTY3Jp
cHRWYWx1ZSYga2V5LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7Ci0gICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSA9IElEQktleVJhbmdlOjpvbmx5
KGtleSwgZWMpOworICAgIFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlSYW5n
ZTo6b25seShjb250ZXh0LCBrZXksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAw
OwogICAgIHJldHVybiBvcGVuQ3Vyc29yKGNvbnRleHQsIGtleVJhbmdlLnJlbGVhc2UoKSwgZGly
ZWN0aW9uLCBlYyk7CkBAIC01MTgsOSArNTM3LDkgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJ
REJPYmplY3RTdG9yZTo6Y291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGEK
ICAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gSURCT2JqZWN0U3RvcmU6OmNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6Y291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgY29uc3QgU2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0g
ICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSA9IElEQktleVJhbmdlOjpvbmx5KGtleSwg
ZWMpOworICAgIFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6b25s
eShjb250ZXh0LCBrZXksIGVjKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogICAg
IHJldHVybiBjb3VudChjb250ZXh0LCBrZXlSYW5nZS5yZWxlYXNlKCksIGVjKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oCmluZGV4IDZk
ZmQ5Nzg4YTUwOGM2Yjk4NTIwZGUwZjQxZDMxZGQxM2ZkYTI3YWYuLjI5YzQ0MWUzMGMwOGIwMDJi
MDc0OTUxNDY5YzZjNjZmZTY4OTcyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaApAQCAtNjYsMjEgKzY2LDIxIEBAIHB1YmxpYzoK
ICAgICBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiB0cmFuc2FjdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fdHJhbnNhY3Rpb247IH0KICAgICBib29sIGF1dG9JbmNyZW1lbnQoKSBjb25zdCB7IHJl
dHVybiBtX21ldGFkYXRhLmF1dG9JbmNyZW1lbnQ7IH0KIAotICAgIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gYWRkKFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2NyaXB0VmFsdWUmIHZhbHVlLCBFeGNlcHRp
b25Db2RlJiBlYykgeyByZXR1cm4gYWRkKHN0YXRlLCB2YWx1ZSwgMCwgZWMpOyAgfQotICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gcHV0KFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2NyaXB0VmFsdWUm
IHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gcHV0KHN0YXRlLCB2YWx1ZSwgMCwg
ZWMpOyAgfQorICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gYWRkKFNjcmlwdFN0YXRlKiwgU2Ny
aXB0VmFsdWUmLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBw
dXQoU2NyaXB0U3RhdGUqLCBTY3JpcHRWYWx1ZSYsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwgc3Rh
dGljX2Nhc3Q8SURCS2V5UmFuZ2UqPigwKSwgZWMpOyB9CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQ
dHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gb3Bl
bkN1cnNvcihjb250ZXh0LCBrZXlSYW5nZSwgSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCksIGVj
KTsgfQotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBFeGNlcHRpb25Db2Rl
JiBlYykgeyByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBrZXksIElEQkN1cnNvcjo6ZGlyZWN0
aW9uTmV4dCgpLCBlYyk7IH0KKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3Io
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU2NyaXB0VmFsdWUmIGtleSwg
RXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwga2V5LCBJREJD
dXJzb3I6OmRpcmVjdGlvbk5leHQoKSwgZWMpOyB9CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8
SURCS2V5UmFuZ2U+IHJhbmdlLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29k
ZSYgZWMpIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwgcmFuZ2UsIGRpcmVjdGlvbiwgSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpOb3JtYWxUYXNrLCBlYyk7IH0KICAgICBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBh
c3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgSURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxJREJLZXk+LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29k
ZSYpOworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU2NyaXB0VmFsdWUmIGtleSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rp
b24sIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4sIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgY29uc3QgU2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gZ2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElE
QktleVJhbmdlPiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
YWRkKFNjcmlwdFN0YXRlKiwgU2NyaXB0VmFsdWUmLCBQYXNzUmVmUHRyPElEQktleT4sIEV4Y2Vw
dGlvbkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IHB1dChTY3JpcHRTdGF0ZSos
IFNjcmlwdFZhbHVlJiwgUGFzc1JlZlB0cjxJREJLZXk+LCBFeGNlcHRpb25Db2RlJik7CisgICAg
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBhZGQoU2NyaXB0U3RhdGUqLCBTY3JpcHRWYWx1ZSYsIGNv
bnN0IFNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IHB1dChTY3JpcHRTdGF0ZSosIFNjcmlwdFZhbHVlJiwgY29uc3QgU2NyaXB0VmFs
dWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZGVs
ZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFu
Z2U+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBkZWxldGVG
dW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwg
RXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZGVsZXRlRnVuY3Rp
b24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFNjcmlwdFZhbHVlJiBrZXksIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNsZWFyKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBQYXNzUmVmUHRyPElEQkluZGV4
PiBjcmVhdGVJbmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgY29uc3QgRGljdGlvbmFyeSYgb3B0aW9u
cywgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNyZWF0ZUluZGV4KGNvbnRleHQsIG5hbWUs
IElEQktleVBhdGgoa2V5UGF0aCksIG9wdGlvbnMsIGVjKTsgfQpAQCAtOTMsOCArOTMsOSBAQCBw
dWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBjb3VudChjb250
ZXh0LCBzdGF0aWNfY2FzdDxJREJLZXlSYW5nZSo+KDApLCBlYyk7IH0KICAgICBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElE
QktleVJhbmdlPiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
Y291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0
aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IFNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKTsKIAor
ICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gcHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEludGVy
ZmFjZTo6UHV0TW9kZSwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqLCBT
Y3JpcHRWYWx1ZSYsIGNvbnN0IFNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IHB1dChJREJPYmplY3RTdG9yZUJhY2tlbmRJbnRlcmZh
Y2U6OlB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIFNjcmlwdFN0YXRlKiwgU2Ny
aXB0VmFsdWUmLCBQYXNzUmVmUHRyPElEQktleT4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IG1hcmtEZWxldGVkKCkgeyBtX2RlbGV0ZWQgPSB0cnVlOyB9CiAgICAgdm9pZCB0cmFuc2FjdGlv
bkZpbmlzaGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5pZGwKaW5kZXggM2QyOGU5YzQ3MzczYWFkNjY3ZDdjYzgxYjZmYzcyZTgw
MjYwMTY5MC4uMzU5NWRlMTNkMmVkNmU4ODljMjk4MjAxZmU4NGM5ODE3MWVkMjQ5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmlk
bApAQCAtMzMsMjMgKzMzLDIzIEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQlRyYW5zYWN0
aW9uIHRyYW5zYWN0aW9uOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGF1dG9JbmNy
ZW1lbnQ7CiAKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIElEQlJlcXVlc3QgcHV0KGluIGFu
eSB2YWx1ZSwgaW4gW09wdGlvbmFsXSBJREJLZXkga2V5KQorICAgIFtDYWxsV2l0aD1TY3JpcHRT
dGF0ZV0gSURCUmVxdWVzdCBwdXQoaW4gYW55IHZhbHVlLCBpbiBbT3B0aW9uYWxdIGFueSBrZXkp
CiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3Rh
dGVdIElEQlJlcXVlc3QgYWRkKGluIGFueSB2YWx1ZSwgaW4gW09wdGlvbmFsXSBJREJLZXkga2V5
KQorICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gSURCUmVxdWVzdCBhZGQoaW4gYW55IHZhbHVl
LCBpbiBbT3B0aW9uYWxdIGFueSBrZXkpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsK
ICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgSW1wbGVtZW50ZWRBcz1kZWxl
dGVGdW5jdGlvbl0gSURCUmVxdWVzdCBkZWxldGUoaW4gSURCS2V5UmFuZ2U/IGtleVJhbmdlKQog
ICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQsIEltcGxlbWVudGVkQXM9ZGVsZXRlRnVuY3Rpb25dIElEQlJlcXVlc3QgZGVs
ZXRlKGluIElEQktleSBrZXkpCisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IEltcGxlbWVudGVkQXM9ZGVsZXRlRnVuY3Rpb25dIElEQlJlcXVlc3QgZGVsZXRlKGluIGFueSBr
ZXkpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0
RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBjbGVhcigpCiAgICAgICAgIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVx
dWVzdCBnZXQoaW4gSURCS2V5UmFuZ2U/IGtleSkKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRp
b24pOwotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGdl
dChpbiBJREJLZXkga2V5KQorICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJ
REJSZXF1ZXN0IGdldChpbiBhbnkga2V5KQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7
CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3BlbkN1
cnNvcihpbiBbT3B0aW9uYWxdIElEQktleVJhbmdlPyByYW5nZSwgaW4gW09wdGlvbmFsXSBET01T
dHJpbmcgZGlyZWN0aW9uKQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgW0Nh
bGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3BlbkN1cnNvcihpbiBJ
REJLZXkga2V5LCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyBkaXJlY3Rpb24pCisgICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3BlbkN1cnNvcihpbiBhbnkg
a2V5LCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyBkaXJlY3Rpb24pCiAgICAgICAgIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKIAogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBK
U0N1c3RvbV0gSURCSW5kZXggY3JlYXRlSW5kZXgoaW4gRE9NU3RyaW5nIG5hbWUsIGluIHNlcXVl
bmNlPERPTVN0cmluZz4ga2V5UGF0aCwgaW4gW09wdGlvbmFsXSBEaWN0aW9uYXJ5IG9wdGlvbnMp
CkBAIC02Miw2ICs2Miw2IEBACiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBjb3VudChpbiBbT3B0
aW9uYWxdIElEQktleVJhbmdlPyByYW5nZSkKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24p
OwotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGNvdW50
KGluIElEQktleSBrZXkpCisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElE
QlJlcXVlc3QgY291bnQoaW4gYW55IGtleSkKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24p
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5j
cHAKaW5kZXggNTBhOTk1ODhmNmJlMTg5Y2I5ZjU1ZDIzZTA5MjI2YmFjYjA0ZTZmMC4uM2Q4Mjlj
ZDJiY2YxNWRmOGFhNTI4YmVlZjg3NzU0NWZiMTczNDQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTMxMyw5ICszMTMsMTAgQEAg
dm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJLZXk+IGlkYktleSkKICAg
ICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAo
aWRiS2V5ICYmIGlkYktleS0+aXNWYWxpZCgpKQotICAgICAgICBtX3Jlc3VsdCA9IElEQkFueTo6
Y3JlYXRlKGlkYktleSk7Ci0gICAgZWxzZQorICAgIGlmIChpZGJLZXkgJiYgaWRiS2V5LT5pc1Zh
bGlkKCkpIHsKKyAgICAgICAgRE9NUmVxdWVzdFN0YXRlOjpTY29wZSBzY29wZShtX3JlcXVlc3RT
dGF0ZSk7CisgICAgICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVhdGUoaWRiS2V5VG9TY3JpcHRW
YWx1ZShyZXF1ZXN0U3RhdGUoKSwgaWRiS2V5KSk7CisgICAgfSBlbHNlCiAgICAgICAgIG1fcmVz
dWx0ID0gSURCQW55OjpjcmVhdGVJbnZhbGlkKCk7CiAgICAgZW5xdWV1ZUV2ZW50KGNyZWF0ZVN1
Y2Nlc3NFdmVudCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURC
QmluZGluZ1V0aWxpdGllcy5jcHAKaW5kZXggMzRjNzdiZmMyNTNkMmZlNmJlMzNiYmY5ZjE5ZTM1
OGZhNzhkOGVlZS4uODE5ZDhlY2FiZWM3NGVhZjM4YWIzMmFjZTYzZTM5ZDJlNGQ0NGE4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5j
cHAKQEAgLTI3MSw2ICsyNzEsMTIgQEAgU2NyaXB0VmFsdWUgaWRiS2V5VG9TY3JpcHRWYWx1ZShE
T01SZXF1ZXN0U3RhdGUqIHJlcXVlc3RTdGF0ZSwgUGFzc1JlZlB0cjxJREJLZXkKICAgICByZXR1
cm4gU2NyaXB0VmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0b0pTKGV4ZWMsIGpzQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIGtleS5nZXQoKSkp
OwogfQogCitQYXNzUmVmUHRyPElEQktleT4gc2NyaXB0VmFsdWVUb0lEQktleShET01SZXF1ZXN0
U3RhdGUqIHJlcXVlc3RTdGF0ZSwgY29uc3QgU2NyaXB0VmFsdWUmIHNjcmlwdFZhbHVlKQorewor
ICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHJlcXVlc3RTdGF0ZS0+ZXhlYygpOworICAgIHJldHVybiBj
cmVhdGVJREJLZXlGcm9tVmFsdWUoZXhlYywgc2NyaXB0VmFsdWUuanNWYWx1ZSgpKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRp
bGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVz
LmgKaW5kZXggOTk3OGNjNWYxMTA2MmI5ZjdiOTUzNGI1M2JhYjZjMjg4N2Q5ZTMzYi4uMjMzYmFk
NWYyNWIwNzhjNjRmNDhkMDVmOGU3OGQzOTU0MDRkYWU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuaApAQCAtNDcsNiArNDcsNyBAQCBQ
YXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVNjcmlwdFZhbHVlQW5kS2V5UGF0aChE
T01SZXF1ZXN0U3RhdGUqLCBjb25zdAogYm9vbCBjYW5JbmplY3RJREJLZXlJbnRvU2NyaXB0VmFs
dWUoRE9NUmVxdWVzdFN0YXRlKiwgY29uc3QgU2NyaXB0VmFsdWUmLCBjb25zdCBJREJLZXlQYXRo
Jik7CiBTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIFBh
c3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiBTY3JpcHRWYWx1ZSBpZGJLZXlUb1Nj
cmlwdFZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIFBhc3NSZWZQdHI8SURCS2V5Pik7CitQYXNzUmVm
UHRyPElEQktleT4gc2NyaXB0VmFsdWVUb0lEQktleShET01SZXF1ZXN0U3RhdGUqLCBjb25zdCBT
Y3JpcHRWYWx1ZSYpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSURCQW55Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURC
QW55Q3VzdG9tLmNwcAppbmRleCA0ZjE0NTU1OGQ4ZWNiZjVjNjgxNmQxNGM5MmY4ODgzOTgzNzVm
ZmQyLi40N2RmMzM0MDY3YWU5NjlmNGQ2MDZjMGM5YzE0NmFjM2JiY2IzYTliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJBbnlDdXN0b20uY3BwCkBAIC0zNyw3ICszNyw2
IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJJREJGYWN0b3J5LmgiCiAj
aW5jbHVkZSAiSURCSW5kZXguaCIKLSNpbmNsdWRlICJJREJLZXkuaCIKICNpbmNsdWRlICJJREJP
YmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIkpTRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIkpT
SURCQ3Vyc29yLmgiCkBAIC00NSw3ICs0NCw2IEBACiAjaW5jbHVkZSAiSlNJREJEYXRhYmFzZS5o
IgogI2luY2x1ZGUgIkpTSURCRmFjdG9yeS5oIgogI2luY2x1ZGUgIkpTSURCSW5kZXguaCIKLSNp
bmNsdWRlICJKU0lEQktleS5oIgogI2luY2x1ZGUgIkpTSURCT2JqZWN0U3RvcmUuaCIKICNpbmNs
dWRlICJKU0lEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgiCkBAIC03Niw4ICs3NCw2IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIElEQkFueSogaWRiQW55KQogICAgICAgICByZXR1
cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlkYkFueS0+aWRiRmFjdG9yeSgpKTsKICAgICBj
YXNlIElEQkFueTo6SURCSW5kZXhUeXBlOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsIGlkYkFueS0+aWRiSW5kZXgoKSk7Ci0gICAgY2FzZSBJREJBbnk6OklEQktleVR5
cGU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgaWRiQW55LT5pZGJL
ZXkoKSk7CiAgICAgY2FzZSBJREJBbnk6OklEQk9iamVjdFN0b3JlVHlwZToKICAgICAgICAgcmV0
dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlkYk9iamVjdFN0b3JlKCkpOwog
ICAgIGNhc2UgSURCQW55OjpJREJUcmFuc2FjdGlvblR5cGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCmluZGV4IGUxMDdjY2Y1ZDgy
NjY0ODk4ZTczZTgyNWI1NjZhMDkxODY0NzVmNGMuLmIyZjFlOTQ4N2FkNzVmNTk4ZDIzZjk2NjAz
Mjc5NmFjZmU5MGFjNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lE
QkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lE
QkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC0yNzEsNiArMjcxLDE0IEBAIFNjcmlwdFZhbHVlIGlk
YktleVRvU2NyaXB0VmFsdWUoRE9NUmVxdWVzdFN0YXRlKiBzdGF0ZSwgUGFzc1JlZlB0cjxJREJL
ZXk+IGtleSkKICAgICByZXR1cm4gU2NyaXB0VmFsdWUodjhWYWx1ZSk7CiB9CiAKK1Bhc3NSZWZQ
dHI8SURCS2V5PiBzY3JpcHRWYWx1ZVRvSURCS2V5KERPTVJlcXVlc3RTdGF0ZSosIGNvbnN0IFNj
cmlwdFZhbHVlJiBzY3JpcHRWYWx1ZSkKK3sKKyAgICBBU1NFUlQodjg6OkNvbnRleHQ6OkluQ29u
dGV4dCgpKTsKKyAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7CisgICAgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHY4VmFsdWUoc2NyaXB0VmFsdWUudjhWYWx1ZSgpKTsKKyAgICByZXR1cm4g
Y3JlYXRlSURCS2V5RnJvbVZhbHVlKHY4VmFsdWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURC
QmluZGluZ1V0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmluZGlu
Z1V0aWxpdGllcy5oCmluZGV4IDg2ZWZjNDQzYWE2OTI5ODE5ZDZhYzhiZjQ1YThkMDQ5M2M5ZGE4
ZmUuLjdhZGYxYjJhZWEwNTgwNWY2MmY3NzI0YmIxNmI4NTc2OTY5MmU0ZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmgKQEAgLTQ2LDYg
KzQ2LDcgQEAgUGFzc1JlZlB0cjxJREJLZXk+IGNyZWF0ZUlEQktleUZyb21TY3JpcHRWYWx1ZUFu
ZEtleVBhdGgoRE9NUmVxdWVzdFN0YXRlKiwgY29uc3QKIGJvb2wgY2FuSW5qZWN0SURCS2V5SW50
b1NjcmlwdFZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIGNvbnN0IFNjcmlwdFZhbHVlJiwgY29uc3Qg
SURCS2V5UGF0aCYpOwogU2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJWYWx1ZShET01SZXF1ZXN0
U3RhdGUqLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogU2NyaXB0VmFsdWUg
aWRiS2V5VG9TY3JpcHRWYWx1ZShET01SZXF1ZXN0U3RhdGUqLCBQYXNzUmVmUHRyPElEQktleT4p
OworUGFzc1JlZlB0cjxJREJLZXk+IHNjcmlwdFZhbHVlVG9JREJLZXkoRE9NUmVxdWVzdFN0YXRl
KiwgY29uc3QgU2NyaXB0VmFsdWUmKTsKIAogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCQW55Q3VzdG9tLmNwcAppbmRleCA1ZDcxZTQyOWVhNDY3
YzU0YmJkMTQyNjdhY2Y3MDA1YmNjOTZmMGUyLi5jZjQwNjRmZGQ1MjgzMDcyNzI4ZTk5ODlhZGE2
Mzc2ZmUyYzY2MWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhJREJBbnlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1
c3RvbS9WOElEQkFueUN1c3RvbS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlICJWOElE
QkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiVjhJREJGYWN0b3J5LmgiCiAjaW5jbHVkZSAiVjhJREJJ
bmRleC5oIgotI2luY2x1ZGUgIlY4SURCS2V5LmgiCiAjaW5jbHVkZSAiVjhJREJPYmplY3RTdG9y
ZS5oIgogI2luY2x1ZGUgIlY4SURCVHJhbnNhY3Rpb24uaCIKIApAQCAtNjcsOCArNjYsNiBAQCB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChJREJBbnkqIGltcGwsIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gY3JlYXRpb25Db250ZXh0LAogICAgICAgICByZXR1cm4gdG9WOChpbXBsLT5pZGJGYWN0
b3J5KCksIGNyZWF0aW9uQ29udGV4dCwgaXNvbGF0ZSk7CiAgICAgY2FzZSBJREJBbnk6OklEQklu
ZGV4VHlwZToKICAgICAgICAgcmV0dXJuIHRvVjgoaW1wbC0+aWRiSW5kZXgoKSwgY3JlYXRpb25D
b250ZXh0LCBpc29sYXRlKTsKLSAgICBjYXNlIElEQkFueTo6SURCS2V5VHlwZToKLSAgICAgICAg
cmV0dXJuIHRvVjgoaW1wbC0+aWRiS2V5KCksIGNyZWF0aW9uQ29udGV4dCwgaXNvbGF0ZSk7CiAg
ICAgY2FzZSBJREJBbnk6OklEQk9iamVjdFN0b3JlVHlwZToKICAgICAgICAgcmV0dXJuIHRvVjgo
aW1wbC0+aWRiT2JqZWN0U3RvcmUoKSwgY3JlYXRpb25Db250ZXh0LCBpc29sYXRlKTsKICAgICBj
YXNlIElEQkFueTo6SURCVHJhbnNhY3Rpb25UeXBlOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183060</attachid>
            <date>2013-01-16 16:42:40 -0800</date>
            <delta_ts>2013-01-22 13:23:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106912-20130116163941.patch</filename>
            <type>text/plain</type>
            <size>51347</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE1ZDllZjQyOThmZjgw
MWY5NzA3NWQ4YTgzMjMzODNmY2NjZDA5YS4uMGQ2YjkyMGUxZTY4YTA5YmY0MzhjMWYzNDE0NTQ2
Y2Q0YTkyYTcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkzIEBACisyMDEzLTAxLTE1ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBSZW1v
dmUgZGVwZW5kZW5jeSBvbiBJREJLZXkgdHlwZSBmcm9tIElETHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjkxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBwcmVhbWJsZSB0byB3a2J1
Zy5jb20vOTczNzUgIlJlbW92ZSBJREJLZXkgZnJvbSBXZWJLaXRJREwiOyBJREJLZXkgaXMKKyAg
ICAgICAgbm90IGEgY29uY2VwdCBmcm9tIHRoZSBJbmRleGVkIERCIHNwZWMgYnV0IGEgY29udmVu
aWVudCBpbnRlcm5hbCB0eXBlLiBJdCB3YXMKKyAgICAgICAgZXhwb3NlZCBpbiB0aGUgSURMIHdp
dGggY3VzdG9tIGJpbmRpbmcgY29kZSBhbmQgc3BlY2lhbCBjYXNlcyBpbiB0aGUgZ2VuZXJhdG9y
CisgICAgICAgIHRvIG1hcCBmcm9tIHNjcmlwdCB2YWx1ZXMgdG8gdGhlIFdlYkNvcmUgdHlwZS4g
VG8gcmVtb3ZlIHRob3NlIHNwZWNpYWwgY2FzZXMKKyAgICAgICAgYW5kIG1hdGNoIHRoZSBXZWJJ
REwgaW4gdGhlIHNwZWMsIHRoZSBJRExzIGFyZSBjaGFuZ2VkIHRvIHVzZSAiYW55IiBhbmQgdGhl
CisgICAgICAgIGltcGxlbWVudGF0aW9ucyBub3cgdGFrZSBTY3JpcHRWYWx1ZXMuIFRoaXMgZG9l
cyBtZWFuIHRoYXQgZWFjaCBjYWxsIHNpdGUgbXVzdAorICAgICAgICBjYWxsIGludG8gSURCQmlu
ZGluZ1V0aWxpdGllcyB0byBtYXAgZnJvbSBTY3JpcHRWYWx1ZSB0byBJREJLZXkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIC0ganVzdCBhIHJlZmFjdG9yLgorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCQW55LmNwcDogUmVtb3ZlIElEQktleSBhcyBhIHZhcmlhbnQgdHlwZSAtIGp1
c3QgdXNlIFNjcmlwdFZhbHVlLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkFueS5o
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChJREJBbnkpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6
OmNvbnRpbnVlRnVuY3Rpb24pOiBOb3cgdGFrZXMgYW55L1NjcmlwdFZhbHVlLgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmg6CisgICAg
ICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmNvbnRpbnVlRnVuY3Rpb24pOgorICAgICAgICAoSURC
Q3Vyc29yKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaWRsOgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQkN1cnNvckJhY2tlbmRJbXBsOjpkZWxldGVGdW5jdGlvbik6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJGYWN0b3J5OjpjbXApOiBOb3cgdGFrZXMgYW55L1NjcmlwdFZhbHVlLgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaDoKKyAgICAgICAgKElEQkZhY3RvcnkpOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4
OjpvcGVuQ3Vyc29yKTogTm93IHRha2VzIGFueS9TY3JpcHRWYWx1ZS4KKyAgICAgICAgKFdlYkNv
cmU6OklEQkluZGV4Ojpjb3VudCk6IE5vdyB0YWtlcyBhbnkvU2NyaXB0VmFsdWUuCisgICAgICAg
IChXZWJDb3JlOjpJREJJbmRleDo6b3BlbktleUN1cnNvcik6IE5vdyB0YWtlcyBhbnkvU2NyaXB0
VmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6Z2V0KTogTm93IHRha2VzIGFueS9T
Y3JpcHRWYWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4OjpnZXRLZXkpOiBOb3cgdGFr
ZXMgYW55L1NjcmlwdFZhbHVlLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4
Lmg6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6b3BlbkN1cnNvcik6CisgICAgICAgIChJ
REJJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6b3BlbktleUN1cnNvcik6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaWRsOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJh
bmdlOjpjcmVhdGUpOiBBZGQgaGVscGVyIGZvciBiYWNrLWVuZCBjcmVhdGlvbiBvZiBzaW5nbGUt
a2V5IHJhbmdlcy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5
UmFuZ2U6Omxvd2VyVmFsdWUpOiBJbXBsLiBvZiBuZXcgImFueSIgdHlwZSBhY2Nlc3NvciBleHBv
c2VkIHRvIHNjcmlwdC4KKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlOjp1cHBlclZhbHVl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6b25seSk6IE5vdyB0YWtl
cyBhbnkvU2NyaXB0VmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6bG93ZXJC
b3VuZCk6IE5vdyB0YWtlcyBhbnkvU2NyaXB0VmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpJREJL
ZXlSYW5nZTo6dXBwZXJCb3VuZCk6IE5vdyB0YWtlcyBhbnkvU2NyaXB0VmFsdWUuCisgICAgICAg
IChXZWJDb3JlOjpJREJLZXlSYW5nZTo6Ym91bmQpOiBOb3cgdGFrZXMgYW55L1NjcmlwdFZhbHVl
LgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmg6CisgICAgICAgIChJ
REJLZXlSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6bG93ZXJCb3VuZCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6dXBwZXJCb3VuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJLZXlSYW5nZTo6Ym91bmQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQktleVJhbmdlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RT
dG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Z2V0KTogTm93IHRh
a2VzIGFueS9TY3JpcHRWYWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjph
ZGQpOiBOb3cgdGFrZXMgYW55L1NjcmlwdFZhbHVlLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6cHV0KTogTm93IHRha2VzIGFueS9TY3JpcHRW
YWx1ZS4KKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpkZWxldGVGdW5jdGlvbik6
IE5vdyB0YWtlcyBhbnkvU2NyaXB0VmFsdWUuCisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RT
dG9yZTo6b3BlbkN1cnNvcik6IE5vdyB0YWtlcyBhbnkvU2NyaXB0VmFsdWUuCisgICAgICAgIChX
ZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6Y291bnQpOiBOb3cgdGFrZXMgYW55L1NjcmlwdFZhbHVl
LgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAg
IChJREJPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6b3Bl
bkN1cnNvcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaWRs
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwOiBSZXN1bHQgSURC
QW55IHR5cGUgaXMgbm93IFNjcmlwdFZhbHVlLgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVz
dDo6b25TdWNjZXNzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmlwdFZhbHVlVG9JREJLZXkpOiBUaGUgaW52ZXJz
ZSBvZiBpZGJLZXlUb1NjcmlwdFZhbHVlKCkuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmg6CisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnNjcmlwdFZhbHVlVG9JREJLZXkpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMu
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOElE
QkFueUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KTogUmVtb3ZlIElEQktleSB2
YXJpYW50IHR5cGUuCisKIDIwMTMtMDEtMTUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgR1RLKyBhbmQgUXQgYnVpbGQgZml4IGFmdGVyIHIxMzk4MzMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBbnkuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQW55LmNwcAppbmRleCBjOWQzMDZkZjNj
NjljNTdlMzNlNWRhNDEwNmI2MzNiZTM4NTAzYzFlLi44MTkwNjA2OGMxZWVjYjJmOTE1M2EyNWQ1
NjA1MDQxYmVlZWI2MTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJBbnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkFueS5jcHAKQEAgLTEwMiwxMiArMTAyLDYgQEAgUGFzc1JlZlB0cjxJREJJbmRleD4gSURCQW55
OjppZGJJbmRleCgpCiAgICAgcmV0dXJuIG1faWRiSW5kZXg7CiB9CiAKLVBhc3NSZWZQdHI8SURC
S2V5PiBJREJBbnk6OmlkYktleSgpCi17Ci0gICAgQVNTRVJUKG1fdHlwZSA9PSBJREJLZXlUeXBl
KTsKLSAgICByZXR1cm4gbV9pZGJLZXk7Ci19Ci0KIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+
IElEQkFueTo6aWRiT2JqZWN0U3RvcmUoKQogewogICAgIEFTU0VSVChtX3R5cGUgPT0gSURCT2Jq
ZWN0U3RvcmVUeXBlKTsKQEAgLTE4NiwxMyArMTgwLDYgQEAgdm9pZCBJREJBbnk6OnNldChQYXNz
UmVmUHRyPElEQkluZGV4PiB2YWx1ZSkKICAgICBtX2lkYkluZGV4ID0gdmFsdWU7CiB9CiAKLXZv
aWQgSURCQW55OjpzZXQoUGFzc1JlZlB0cjxJREJLZXk+IHZhbHVlKQotewotICAgIEFTU0VSVCht
X3R5cGUgPT0gVW5kZWZpbmVkVHlwZSk7Ci0gICAgbV90eXBlID0gSURCS2V5VHlwZTsKLSAgICBt
X2lkYktleSA9IHZhbHVlOwotfQotCiB2b2lkIElEQkFueTo6c2V0KFBhc3NSZWZQdHI8SURCVHJh
bnNhY3Rpb24+IHZhbHVlKQogewogICAgIEFTU0VSVChtX3R5cGUgPT0gVW5kZWZpbmVkVHlwZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJBbnkuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkFueS5oCmluZGV4IGM0ZjA0Nzg5
YzlmNGE5NjJjMzczMmM0MWMxNWZmYmJhNWY2YjhhNDAuLjE2YzJiYjk2N2Q1YTEwODM3OTUwNDhh
MzE4MjRmMDI2ZTc2YTAxODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkFueS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkFueS5oCkBAIC00Myw3ICs0Myw2IEBAIGNsYXNzIElEQkN1cnNvcldpdGhWYWx1ZTsKIGNsYXNz
IElEQkRhdGFiYXNlOwogY2xhc3MgSURCRmFjdG9yeTsKIGNsYXNzIElEQkluZGV4OwotY2xhc3Mg
SURCS2V5OwogY2xhc3MgSURCS2V5UGF0aDsKIGNsYXNzIElEQk9iamVjdFN0b3JlOwogY2xhc3Mg
SURCVHJhbnNhY3Rpb247CkBAIC05MSw3ICs5MCw2IEBAIHB1YmxpYzoKICAgICAgICAgSURCRGF0
YWJhc2VUeXBlLAogICAgICAgICBJREJGYWN0b3J5VHlwZSwKICAgICAgICAgSURCSW5kZXhUeXBl
LAotICAgICAgICBJREJLZXlUeXBlLAogICAgICAgICBJREJPYmplY3RTdG9yZVR5cGUsCiAgICAg
ICAgIElEQlRyYW5zYWN0aW9uVHlwZSwKICAgICAgICAgU2NyaXB0VmFsdWVUeXBlLApAQCAtMTA3
LDcgKzEwNSw2IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQkRhdGFiYXNlPiBpZGJEYXRh
YmFzZSgpOwogICAgIFBhc3NSZWZQdHI8SURCRmFjdG9yeT4gaWRiRmFjdG9yeSgpOwogICAgIFBh
c3NSZWZQdHI8SURCSW5kZXg+IGlkYkluZGV4KCk7Ci0gICAgUGFzc1JlZlB0cjxJREJLZXk+IGlk
YktleSgpOwogICAgIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IGlkYk9iamVjdFN0b3JlKCk7
CiAgICAgUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbj4gaWRiVHJhbnNhY3Rpb24oKTsKICAgICBT
Y3JpcHRWYWx1ZSBzY3JpcHRWYWx1ZSgpOwpAQCAtMTIyLDcgKzExOSw2IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldChQYXNzUmVmUHRyPElEQkRhdGFiYXNlPik7CiAgICAgdm9pZCBzZXQoUGFzc1Jl
ZlB0cjxJREJGYWN0b3J5Pik7CiAgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxJREJJbmRleD4pOwot
ICAgIHZvaWQgc2V0KFBhc3NSZWZQdHI8SURCS2V5Pik7CiAgICAgdm9pZCBzZXQoUGFzc1JlZlB0
cjxJREJPYmplY3RTdG9yZT4pOwogICAgIHZvaWQgc2V0KFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rp
b24+KTsKICAgICB2b2lkIHNldChjb25zdCBJREJLZXlQYXRoJik7CkBAIC0xNDIsNyArMTM4LDYg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8SURCRGF0YWJhc2U+IG1faWRiRGF0YWJhc2U7CiAgICAg
UmVmUHRyPElEQkZhY3Rvcnk+IG1faWRiRmFjdG9yeTsKICAgICBSZWZQdHI8SURCSW5kZXg+IG1f
aWRiSW5kZXg7Ci0gICAgUmVmUHRyPElEQktleT4gbV9pZGJLZXk7CiAgICAgUmVmUHRyPElEQk9i
amVjdFN0b3JlPiBtX2lkYk9iamVjdFN0b3JlOwogICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4g
bV9pZGJUcmFuc2FjdGlvbjsKICAgICBTY3JpcHRWYWx1ZSBtX3NjcmlwdFZhbHVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5jcHAKaW5kZXggYzdkYzQ3
ZGQ5YzQwZWI0NzY0M2IwYTZmNDg0N2MyNzEzZTljMDdkYS4uNzQ2NTAxMzFmOWExZGQxOWE1ZjZm
ZTEwNmU2MTQyYmU2MDZhNzMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCQ3Vyc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJDdXJzb3IuY3BwCkBAIC0xODAsNiArMTgwLDEzIEBAIHZvaWQgSURCQ3Vyc29yOjph
ZHZhbmNlKGxvbmcgbG9uZyBjb3VudCwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgQVNTRVJUKCFl
Yyk7CiB9CiAKK3ZvaWQgSURCQ3Vyc29yOjpjb250aW51ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFNjcmlwdFZhbHVlJiBrZXlWYWx1ZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCit7CisgICAgRE9NUmVxdWVzdFN0YXRlIHJlcXVlc3RTdGF0ZShjb250ZXh0KTsK
KyAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KCZyZXF1ZXN0U3Rh
dGUsIGtleVZhbHVlKTsKKyAgICBjb250aW51ZUZ1bmN0aW9uKGtleS5yZWxlYXNlKCksIGVjKTsK
K30KKwogdm9pZCBJREJDdXJzb3I6OmNvbnRpbnVlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJLZXk+
IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSURCX1RSQUNFKCJJREJDdXJzb3I6OmNv
bnRpbnVlIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJDdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5o
CmluZGV4IDJiMDU5MDdiZjZjNmY5NWE1ZmRjZjljYWY5M2UxYWM5ZWVmOTViNDkuLmU5ZjliNzRl
MzY3MzM3NDBlMWUwOGY1NjlkN2U5ODQ0NzFjN2M2MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCkBAIC02Nyw5ICs2Nyw2IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxJREJDdXJzb3I+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkN1cnNv
ckJhY2tlbmRJbnRlcmZhY2U+LCBEaXJlY3Rpb24sIElEQlJlcXVlc3QqLCBJREJBbnkqIHNvdXJj
ZSwgSURCVHJhbnNhY3Rpb24qKTsKICAgICB2aXJ0dWFsIH5JREJDdXJzb3IoKTsKIAotICAgIC8v
IEZJWE1FOiBUcnkgdG8gbW9kaWZ5IHRoZSBjb2RlIGdlbmVyYXRvciBzbyB0aGlzIGlzIHVubmVl
ZGVkLgotICAgIHZvaWQgY29udGludWVGdW5jdGlvbihFeGNlcHRpb25Db2RlJiBlYykgeyBjb250
aW51ZUZ1bmN0aW9uKDAsIGVjKTsgfQotCiAgICAgLy8gSW1wbGVtZW50IHRoZSBJREwKICAgICBj
b25zdCBTdHJpbmcmIGRpcmVjdGlvbigpIGNvbnN0OwogICAgIGNvbnN0IFNjcmlwdFZhbHVlJiBr
ZXkoKSBjb25zdDsKQEAgLTgwLDkgKzc3LDEyIEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IHVwZGF0ZShTY3JpcHRTdGF0ZSosIFNjcmlwdFZhbHVlJiwgRXhjZXB0aW9uQ29k
ZSYpOwogICAgIC8vIEZJWE1FOiBNYWtlIHRoaXMgdW5zaWduZWQgbG9uZyBvbmNlIHdlYmtpdC5v
cmcvYi85Njc5OCBsYW5kcy4KICAgICB2b2lkIGFkdmFuY2UobG9uZyBsb25nLCBFeGNlcHRpb25D
b2RlJik7Ci0gICAgdm9pZCBjb250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIC8vIEZJWE1FOiBUcnkgdG8gbW9kaWZ5IHRoZSBjb2RlIGdlbmVy
YXRvciBzbyB0aGlzIG92ZXJsb2FkIGlzIHVubmVlZGVkLgorICAgIHZvaWQgY29udGludWVGdW5j
dGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgY29udGlu
dWVGdW5jdGlvbihzdGF0aWNfY2FzdDxJREJLZXkqPigwKSwgZWMpOyB9CisgICAgdm9pZCBjb250
aW51ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTY3JpcHRWYWx1ZSYg
a2V5LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBkZWxldGVG
dW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAg
dm9pZCBjb250aW51ZUZ1bmN0aW9uKFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZvaWQgcG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJhY2soKTsKICAgICB2b2lkIGNsb3Nl
KCk7CiAgICAgdm9pZCBzZXRWYWx1ZVJlYWR5KERPTVJlcXVlc3RTdGF0ZSosIFBhc3NSZWZQdHI8
SURCS2V5PiwgUGFzc1JlZlB0cjxJREJLZXk+IHByaW1hcnlLZXksIFNjcmlwdFZhbHVlJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yLmlkbAppbmRleCA2
NDYyMDc3ZDBhY2M2NWYzYmU5OGNmZTk5OGFiNTdmYzU2YTVlZjkwLi40NTcwYzFlY2M4N2QwOGI5
MDEwMDNhM2RjOGYyNzg2MWYxMTg4ZWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvci5pZGwKQEAgLTM4LDcgKzM4LDcgQEAKICAgICAvLyBGSVhNRTog
TWFrZSB0aGlzIFtFbmZvcmNlUmFuZ2VdIHVuc2lnbmVkIGxvbmcgb25jZSB3ZWJraXQub3JnL2Iv
OTY3OTggbGFuZHMuCiAgICAgdm9pZCBhZHZhbmNlKGluIGxvbmcgbG9uZyBjb3VudCkKICAgICAg
ICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgIFtJbXBsZW1lbnRlZEFzPWNvbnRpbnVlRnVu
Y3Rpb25dIHZvaWQgY29udGludWUoaW4gW09wdGlvbmFsXSBJREJLZXkga2V5KQorICAgIFtDYWxs
V2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBJbXBsZW1lbnRlZEFzPWNvbnRpbnVlRnVuY3Rp
b25dIHZvaWQgY29udGludWUoaW4gW09wdGlvbmFsXSBhbnkga2V5KQogICAgICAgICByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIElt
cGxlbWVudGVkQXM9ZGVsZXRlRnVuY3Rpb25dIElEQlJlcXVlc3QgZGVsZXRlKCkKICAgICAgICAg
cmFpc2VzIChET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZEltcGwuY3BwCmluZGV4IDY0YzRhYWI2ZjM2
ZTcyOTNlNWY2YTVhYmYyZmQzMGI4MGU0OGFmYTUuLjE5ZjIwYjZkYTI3NzNhNmNjNjBmNzJlMjIx
YWU0OWE5NzQxNzUxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkN1cnNvckJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kSW1wbC5jcHAKQEAgLTE2MSwxMSArMTYxLDcgQEAg
dm9pZCBJREJDdXJzb3JCYWNrZW5kSW1wbDo6ZGVsZXRlRnVuY3Rpb24oUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IHBycENhbGxiYWNrcywKIHsKICAgICBJREJfVFJBQ0UoIklEQkN1cnNvckJhY2tl
bmRJbXBsOjpkZWxldGUiKTsKICAgICBBU1NFUlQobV90cmFuc2FjdGlvbi0+bW9kZSgpICE9IElE
QlRyYW5zYWN0aW9uOjpSRUFEX09OTFkpOwotCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSA9IElEQktleVJhbmdlOjpvbmx5KG1fY3Vy
c29yLT5wcmltYXJ5S2V5KCksIGVjKTsKLSAgICBBU1NFUlQoIWVjKTsKLQorICAgIFJlZlB0cjxJ
REJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6Y3JlYXRlKG1fY3Vyc29yLT5wcmlt
YXJ5S2V5KCkpOwogICAgIG1fZGF0YWJhc2UtPmRlbGV0ZVJhbmdlKG1fdHJhbnNhY3Rpb24tPmlk
KCksIG1fb2JqZWN0U3RvcmVJZCwga2V5UmFuZ2UucmVsZWFzZSgpLCBwcnBDYWxsYmFja3MpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0
b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3Bw
CmluZGV4IDg0MGNhOThlZGEzMjM5Mjg4NGFlNTMwMzlhMWM4YjE1NDQyMzQ5OGYuLjRkZTAzZWYw
ZmNlNzdmMGYyNmFhYWYyNTg5MmQ1MGY1MWY2ZGZjNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiR3Jv
dXBTZXR0aW5ncy5oIgorI2luY2x1ZGUgIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKICNpbmNsdWRl
ICJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5oIgog
I2luY2x1ZGUgIklEQkRhdGFiYXNlRXhjZXB0aW9uLmgiCkBAIC0xNTIsOCArMTUzLDEyIEBAIFBh
c3NSZWZQdHI8SURCVmVyc2lvbkNoYW5nZVJlcXVlc3Q+IElEQkZhY3Rvcnk6OmRlbGV0ZURhdGFi
YXNlKFNjcmlwdEV4ZWN1dGlvbkNvCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLXNob3J0IElE
QkZhY3Rvcnk6OmNtcChQYXNzUmVmUHRyPElEQktleT4gZmlyc3QsIFBhc3NSZWZQdHI8SURCS2V5
PiBzZWNvbmQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorc2hvcnQgSURCRmFjdG9yeTo6Y21wKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFNjcmlwdFZhbHVlJiBmaXJzdFZhbHVl
LCBjb25zdCBTY3JpcHRWYWx1ZSYgc2Vjb25kVmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewor
ICAgIERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoY29udGV4dCk7CisgICAgUmVmUHRyPElE
QktleT4gZmlyc3QgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KCZyZXF1ZXN0U3RhdGUsIGZpcnN0VmFs
dWUpOworICAgIFJlZlB0cjxJREJLZXk+IHNlY29uZCA9IHNjcmlwdFZhbHVlVG9JREJLZXkoJnJl
cXVlc3RTdGF0ZSwgc2Vjb25kVmFsdWUpOworCiAgICAgQVNTRVJUKGZpcnN0KTsKICAgICBBU1NF
UlQoc2Vjb25kKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFj
dG9yeS5oCmluZGV4IDE4NTdiYTQyYTM3ZTY1NjU0YzYyNGI3YWJiNDJiNmVmZGVlM2I5MjguLjUy
MzQ1OTc0MDMzZTU0NWNiN2FiOWM1NWUwZDQ5ODg5YWYyYmQ5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVi
bGljOgogICAgIFBhc3NSZWZQdHI8SURCT3BlbkRCUmVxdWVzdD4gb3BlbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0PiBkZWxldGVE
YXRhYmFzZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNl
cHRpb25Db2RlJik7CiAKLSAgICBzaG9ydCBjbXAoUGFzc1JlZlB0cjxJREJLZXk+IGZpcnN0LCBQ
YXNzUmVmUHRyPElEQktleT4gc2Vjb25kLCBFeGNlcHRpb25Db2RlJik7CisgICAgc2hvcnQgY21w
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTY3JpcHRWYWx1ZSYgZmlyc3QsIGNvbnN0
IFNjcmlwdFZhbHVlJiBzZWNvbmQsIEV4Y2VwdGlvbkNvZGUmKTsKIAogcHJpdmF0ZToKICAgICBJ
REJGYWN0b3J5KElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuaWRsCmluZGV4IGExODA4MjM4MTJmZGU2
OTEyMGU0MzI0MGUxOTE2NTkwYTIwZWUwMjMuLjc1ZjcxMjQ4NGE3NzBkOGRiYmUzNDUzNjAwY2U0
MjVhODQxZmZmZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnkuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnkuaWRsCkBAIC0zNSw3ICszNSw3IEBACiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRdIElEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0IGRlbGV0ZURhdGFiYXNlKGluIERP
TVN0cmluZyBuYW1lKQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKLSAgICBzaG9y
dCBjbXAoaW4gSURCS2V5IGZpcnN0LCBpbiBJREJLZXkgc2Vjb25kKQorICAgIFtDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0XSBzaG9ydCBjbXAoaW4gYW55IGZpcnN0LCBpbiBhbnkgc2Vj
b25kKQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5jcHAKaW5kZXggNjgwYjdhN2YzMTQ3NzU5
ZjUwYjRhMDFhNDY0ZWY4ZDA3ZjE3MjQ2YS4uYjJlZjJjZWQ0NzE2YjU1ZTBhYTVhYzc0ZDRmMjRm
OWM3M2Q1ZTY2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCSW5kZXguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQklu
ZGV4LmNwcApAQCAtNzgsMTAgKzc4LDEwIEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5k
ZXg6Om9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzCiAgICAg
cmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCSW5kZXg6Om9w
ZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJL
ZXk+IGtleSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBjb25zdCBTdHJpbmcmIGRp
cmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSURCX1RSQUNFKCJJREJJbmRleDo6
b3BlbkN1cnNvciIpOwotICAgIFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UgPSBJREJLZXlS
YW5nZTo6b25seShrZXksIGVjKTsKKyAgICBSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlID0g
SURCS2V5UmFuZ2U6Om9ubHkoY29udGV4dCwga2V5LCBlYyk7CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm4gMDsKICAgICByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBrZXlSYW5nZS5yZWxl
YXNlKCksIGRpcmVjdGlvbiwgZWMpOwpAQCAtMTA0LDEwICsxMDQsMTAgQEAgUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBJREJJbmRleDo6Y291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgUGFzc1JlZlAKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAotUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBJREJJbmRleDo6Y291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFz
c1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPElEQlJl
cXVlc3Q+IElEQkluZGV4Ojpjb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b25zdCBTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJB
Q0UoIklEQkluZGV4Ojpjb3VudCIpOwotICAgIFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2Ug
PSBJREJLZXlSYW5nZTo6b25seShrZXksIGVjKTsKKyAgICBSZWZQdHI8SURCS2V5UmFuZ2U+IGtl
eVJhbmdlID0gSURCS2V5UmFuZ2U6Om9ubHkoY29udGV4dCwga2V5LCBlYyk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gY291bnQoY29udGV4dCwga2V5UmFuZ2Uu
cmVsZWFzZSgpLCBlYyk7CkBAIC0xMzQsMTkgKzEzNCwxOSBAQCBQYXNzUmVmUHRyPElEQlJlcXVl
c3Q+IElEQkluZGV4OjpvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsCiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURC
SW5kZXg6Om9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFz
c1JlZlB0cjxJREJLZXk+IGtleSwgY29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJJbmRleDo6b3BlbktleUN1cnNvcihT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBj
b25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSURCX1RS
QUNFKCJJREJJbmRleDo6b3BlbktleUN1cnNvciIpOwotICAgIFJlZlB0cjxJREJLZXlSYW5nZT4g
a2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6b25seShrZXksIGVjKTsKKyAgICBSZWZQdHI8SURCS2V5
UmFuZ2U+IGtleVJhbmdlID0gSURCS2V5UmFuZ2U6Om9ubHkoY29udGV4dCwga2V5LCBlYyk7CiAg
ICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gb3BlbktleUN1cnNvcihj
b250ZXh0LCBrZXlSYW5nZS5yZWxlYXNlKCksIGRpcmVjdGlvbiwgZWMpOwogfQogCi1QYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IElEQkluZGV4OjpnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgY29uc3QgU2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAg
SURCX1RSQUNFKCJJREJJbmRleDo6Z2V0Iik7Ci0gICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlS
YW5nZSA9IElEQktleVJhbmdlOjpvbmx5KGtleSwgZWMpOworICAgIFJlZlB0cjxJREJLZXlSYW5n
ZT4ga2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6b25seShjb250ZXh0LCBrZXksIGVjKTsKICAgICBp
ZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBnZXQoY29udGV4dCwga2V5UmFu
Z2UucmVsZWFzZSgpLCBlYyk7CkBAIC0xNzMsMTAgKzE3MywxMCBAQCBQYXNzUmVmUHRyPElEQlJl
cXVlc3Q+IElEQkluZGV4OjpnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFz
c1JlZlB0cgogICAgIHJldHVybiByZXF1ZXN0OwogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IElEQkluZGV4OjpnZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1Jl
ZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPElEQlJlcXVl
c3Q+IElEQkluZGV4OjpnZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29u
c3QgU2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSURCX1RSQUNF
KCJJREJJbmRleDo6Z2V0S2V5Iik7Ci0gICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSA9
IElEQktleVJhbmdlOjpvbmx5KGtleSwgZWMpOworICAgIFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5
UmFuZ2UgPSBJREJLZXlSYW5nZTo6b25seShjb250ZXh0LCBrZXksIGVjKTsKICAgICBpZiAoZWMp
CiAgICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJJbmRleC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCSW5kZXguaAppbmRleCAzMDcyZjE1Yjk4MTIyZjgxZDQ0NGQ0OTUxZDI5MjA3YjcyZWU4NmVj
Li5hYzgwYzUwOGMyOTVmMDIxNmM0NTE2M2M3NTliNWExMjQ5MDVjNjI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmgKQEAgLTYzLDIzICs2MywyMyBAQCBw
dWJsaWM6CiAgICAgLy8gRklYTUU6IFRyeSB0byBtb2RpZnkgdGhlIGNvZGUgZ2VuZXJhdG9yIHNv
IHRoaXMgaXMgdW5uZWVkZWQuCiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29y
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJl
dHVybiBvcGVuQ3Vyc29yKGNvbnRleHQsIHN0YXRpY19jYXN0PElEQktleVJhbmdlKj4oMCksIGVj
KTsgfQogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwga2V5UmFuZ2UsIElE
QkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpLCBlYyk7IH0KLSAgICBQYXNzUmVmUHRyPElEQlJlcXVl
c3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0
cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29u
dGV4dCwga2V5LCBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHQoKSwgZWMpOyB9CisgICAgUGFzc1Jl
ZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBv
cGVuQ3Vyc29yKGNvbnRleHQsIGtleSwgSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCksIGVjKTsg
fQogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9u
LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29y
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4sIGNvbnN0IFN0cmlu
ZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0
PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTY3JpcHRWYWx1ZSYg
a2V5LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
RXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNvdW50KGNvbnRleHQsIHN0YXRpY19jYXN0PElE
QktleVJhbmdlKj4oMCksIGVjKTsgfQogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBFeGNlcHRp
b25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjb3VudChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXk+LCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBjb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4
Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuS2V5Q3Vyc29yKGNvbnRleHQsIHN0YXRpY19j
YXN0PElEQktleVJhbmdlKj4oMCksIGVjKTsgfQogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
b3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRy
PElEQktleVJhbmdlPiBrZXlSYW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5L
ZXlDdXJzb3IoY29udGV4dCwga2V5UmFuZ2UsIElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpLCBl
Yyk7IH0KLSAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5LZXlDdXJzb3IoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9u
Q29kZSYgZWMpIHsgcmV0dXJuIG9wZW5LZXlDdXJzb3IoY29udGV4dCwga2V5LCBJREJDdXJzb3I6
OmRpcmVjdGlvbk5leHQoKSwgZWMpOyB9CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVu
S2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFNjcmlwdFZh
bHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuS2V5Q3Vyc29yKGNvbnRl
eHQsIGtleSwgSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCksIGVjKTsgfQogICAgIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxJREJLZXlSYW5nZT4sIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25D
b2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQktleT4sIGNvbnN0IFN0cmluZyYgZGlyZWN0
aW9uLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5
Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBj
b25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURC
S2V5UmFuZ2U+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBn
ZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBnZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NS
ZWZQdHI8SURCS2V5UmFuZ2U+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBnZXRLZXkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5
PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0S2V5KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25D
b2RlJik7CiAKICAgICB2b2lkIG1hcmtEZWxldGVkKCkgeyBtX2RlbGV0ZWQgPSB0cnVlOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmlkbAppbmRleCA4
MTk1NzUwNDNkMjk4YzMxMzY0M2I0MDk0NzkzMTJmZTMwYTY5NWY0Li5hNmIzOWJiMzk0MzFhYzIw
NjFlYTNlZjk0MTUwMjdlYjliMDFkM2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJJbmRleC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCSW5kZXguaWRsCkBAIC0zNSwyNSArMzUsMjUgQEAKIAogICAgIFtDYWxsV2l0
aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gW09wdGlv
bmFsXSBJREJLZXlSYW5nZT8gcmFuZ2UsIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIGRpcmVjdGlv
bikKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwotICAgIFtDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gSURCS2V5IGtleSwgaW4g
W09wdGlvbmFsXSBET01TdHJpbmcgZGlyZWN0aW9uKQorICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IG9wZW5DdXJzb3IoaW4gYW55IGtleSwgaW4gW09wdGlv
bmFsXSBET01TdHJpbmcgZGlyZWN0aW9uKQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7
Ci0gICAgCisKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVz
dCBvcGVuS2V5Q3Vyc29yKGluIFtPcHRpb25hbF0gSURCS2V5UmFuZ2U/IHJhbmdlLCBpbiBbT3B0
aW9uYWxdIERPTVN0cmluZyAgZGlyZWN0aW9uKQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlv
bik7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3Bl
bktleUN1cnNvcihpbiBJREJLZXkga2V5LCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyBkaXJlY3Rp
b24pCisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3Bl
bktleUN1cnNvcihpbiBhbnkga2V5LCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyBkaXJlY3Rpb24p
CiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgIFtDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGdldChpbiBJREJLZXlSYW5nZT8ga2V5KQogICAg
ICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRdIElEQlJlcXVlc3QgZ2V0KGluIElEQktleSBrZXkpCisgICAgW0NhbGxXaXRoPVNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgZ2V0KGluIGFueSBrZXkpCiAgICAgICAg
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dF0gSURCUmVxdWVzdCBnZXRLZXkoaW4gSURCS2V5UmFuZ2U/IGtleSkKICAgICAgICAgcmFp
c2VzIChET01FeGNlcHRpb24pOwotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
XSBJREJSZXF1ZXN0IGdldEtleShpbiBJREJLZXkga2V5KQorICAgIFtDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGdldEtleShpbiBhbnkga2V5KQogICAgICAgICBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRdIElEQlJlcXVlc3QgY291bnQoaW4gW09wdGlvbmFsXSBJREJLZXlSYW5nZT8gcmFuZ2UpCiAg
ICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0
aW9uQ29udGV4dF0gSURCUmVxdWVzdCBjb3VudChpbiBJREJLZXkga2V5KQorICAgIFtDYWxsV2l0
aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGNvdW50KGluIGFueSBrZXkpCiAg
ICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcAppbmRleCA4YTg0OTJjZTVlN2ZlYzc1
YWJkZDUwZjJkOGFjYjk3OTdhZTY4MDhjLi5hNjM1YjUzNzQwZGJjM2I5YTlhNTU3MmExNmU1ZTAx
NDdmZjExNDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXlSYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2UuY3BwCkBAIC0yNiw2ICsyNiw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSURCS2V5UmFuZ2UuaCIKIAorI2luY2x1ZGUgIkRPTVJlcXVlc3RTdGF0ZS5oIgorI2lu
Y2x1ZGUgIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUV4Y2Vw
dGlvbi5oIgogI2luY2x1ZGUgIklEQktleS5oIgogCkBAIC0zMyw2ICszNSwxMiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK1Bhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktleVJhbmdlOjpj
cmVhdGUoUGFzc1JlZlB0cjxJREJLZXk+IHBycEtleSkKK3sKKyAgICBSZWZQdHI8SURCS2V5PiBr
ZXkgPSBwcnBLZXk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJLZXlSYW5nZShrZXksIGtl
eSwgTG93ZXJCb3VuZENsb3NlZCwgVXBwZXJCb3VuZENsb3NlZCkpOworfQorCiBJREJLZXlSYW5n
ZTo6SURCS2V5UmFuZ2UoUGFzc1JlZlB0cjxJREJLZXk+IGxvd2VyLCBQYXNzUmVmUHRyPElEQktl
eT4gdXBwZXIsIExvd2VyQm91bmRUeXBlIGxvd2VyVHlwZSwgVXBwZXJCb3VuZFR5cGUgdXBwZXJU
eXBlKQogICAgIDogbV9sb3dlcihsb3dlcikKICAgICAsIG1fdXBwZXIodXBwZXIpCkBAIC00MSw2
ICs0OSwxOCBAQCBJREJLZXlSYW5nZTo6SURCS2V5UmFuZ2UoUGFzc1JlZlB0cjxJREJLZXk+IGxv
d2VyLCBQYXNzUmVmUHRyPElEQktleT4gdXBwZXIsIExvdwogewogfQogCitTY3JpcHRWYWx1ZSBJ
REJLZXlSYW5nZTo6bG93ZXJWYWx1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KSBj
b25zdAoreworICAgIERPTVJlcXVlc3RTdGF0ZSByZXF1ZXN0U3RhdGUoY29udGV4dCk7CisgICAg
cmV0dXJuIGlkYktleVRvU2NyaXB0VmFsdWUoJnJlcXVlc3RTdGF0ZSwgbV9sb3dlcik7Cit9CisK
K1NjcmlwdFZhbHVlIElEQktleVJhbmdlOjp1cHBlclZhbHVlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQpIGNvbnN0Cit7CisgICAgRE9NUmVxdWVzdFN0YXRlIHJlcXVlc3RTdGF0ZShj
b250ZXh0KTsKKyAgICByZXR1cm4gaWRiS2V5VG9TY3JpcHRWYWx1ZSgmcmVxdWVzdFN0YXRlLCBt
X3VwcGVyKTsKK30KKwogUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6Om9ubHko
UGFzc1JlZlB0cjxJREJLZXk+IHBycEtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgUmVm
UHRyPElEQktleT4ga2V5ID0gcHJwS2V5OwpAQCAtNTIsOCArNzIsMjIgQEAgUGFzc1JlZlB0cjxJ
REJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6Om9ubHkoUGFzc1JlZlB0cjxJREJLZXk+IHBycEtleSwg
RXhjZXB0aW9uQ28KICAgICByZXR1cm4gSURCS2V5UmFuZ2U6OmNyZWF0ZShrZXksIGtleSwgTG93
ZXJCb3VuZENsb3NlZCwgVXBwZXJCb3VuZENsb3NlZCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCS2V5
UmFuZ2U+IElEQktleVJhbmdlOjpsb3dlckJvdW5kKFBhc3NSZWZQdHI8SURCS2V5PiBib3VuZCwg
Ym9vbCBvcGVuLCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IElE
QktleVJhbmdlOjpvbmx5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFNj
cmlwdFZhbHVlJiBrZXlWYWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgRE9NUmVxdWVz
dFN0YXRlIHJlcXVlc3RTdGF0ZShjb250ZXh0KTsKKyAgICBSZWZQdHI8SURCS2V5PiBrZXkgPSBz
Y3JpcHRWYWx1ZVRvSURCS2V5KCZyZXF1ZXN0U3RhdGUsIGtleVZhbHVlKTsKKyAgICBpZiAoIWtl
eSB8fCAha2V5LT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgZWMgPSBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6RGF0YUVycm9yOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gSURC
S2V5UmFuZ2U6OmNyZWF0ZShrZXksIGtleSwgTG93ZXJCb3VuZENsb3NlZCwgVXBwZXJCb3VuZENs
b3NlZCk7Cit9CisKK1Bhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktleVJhbmdlOjpsb3dlckJv
dW5kKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFNjcmlwdFZhbHVlJiBi
b3VuZFZhbHVlLCBib29sIG9wZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIERPTVJlcXVl
c3RTdGF0ZSByZXF1ZXN0U3RhdGUoY29udGV4dCk7CisgICAgUmVmUHRyPElEQktleT4gYm91bmQg
PSBzY3JpcHRWYWx1ZVRvSURCS2V5KCZyZXF1ZXN0U3RhdGUsIGJvdW5kVmFsdWUpOwogICAgIGlm
ICghYm91bmQgfHwgIWJvdW5kLT5pc1ZhbGlkKCkpIHsKICAgICAgICAgZWMgPSBJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6RGF0YUVycm9yOwogICAgICAgICByZXR1cm4gMDsKQEAgLTYyLDggKzk2LDEw
IEBAIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktleVJhbmdlOjpsb3dlckJvdW5kKFBhc3NS
ZWZQdHI8SURCS2V5PiBib3VuZCwgYm9vbCBvCiAgICAgcmV0dXJuIElEQktleVJhbmdlOjpjcmVh
dGUoYm91bmQsIDAsIG9wZW4gPyBMb3dlckJvdW5kT3BlbiA6IExvd2VyQm91bmRDbG9zZWQsIFVw
cGVyQm91bmRPcGVuKTsKIH0KIAotUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6
OnVwcGVyQm91bmQoUGFzc1JlZlB0cjxJREJLZXk+IGJvdW5kLCBib29sIG9wZW4sIEV4Y2VwdGlv
bkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6OnVwcGVyQm91
bmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU2NyaXB0VmFsdWUmIGJv
dW5kVmFsdWUsIGJvb2wgb3BlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CisgICAgRE9NUmVxdWVz
dFN0YXRlIHJlcXVlc3RTdGF0ZShjb250ZXh0KTsKKyAgICBSZWZQdHI8SURCS2V5PiBib3VuZCA9
IHNjcmlwdFZhbHVlVG9JREJLZXkoJnJlcXVlc3RTdGF0ZSwgYm91bmRWYWx1ZSk7CiAgICAgaWYg
KCFib3VuZCB8fCAhYm91bmQtPmlzVmFsaWQoKSkgewogICAgICAgICBlYyA9IElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpEYXRhRXJyb3I7CiAgICAgICAgIHJldHVybiAwOwpAQCAtNzIsOCArMTA4LDEy
IEBAIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IElEQktleVJhbmdlOjp1cHBlckJvdW5kKFBhc3NS
ZWZQdHI8SURCS2V5PiBib3VuZCwgYm9vbCBvCiAgICAgcmV0dXJuIElEQktleVJhbmdlOjpjcmVh
dGUoMCwgYm91bmQsIExvd2VyQm91bmRPcGVuLCBvcGVuID8gVXBwZXJCb3VuZE9wZW4gOiBVcHBl
ckJvdW5kQ2xvc2VkKTsKIH0KIAotUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6
OmJvdW5kKFBhc3NSZWZQdHI8SURCS2V5PiBsb3dlciwgUGFzc1JlZlB0cjxJREJLZXk+IHVwcGVy
LCBib29sIGxvd2VyT3BlbiwgYm9vbCB1cHBlck9wZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFz
c1JlZlB0cjxJREJLZXlSYW5nZT4gSURCS2V5UmFuZ2U6OmJvdW5kKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIGNvbnRleHQsIGNvbnN0IFNjcmlwdFZhbHVlJiBsb3dlclZhbHVlLCBjb25zdCBTY3Jp
cHRWYWx1ZSYgdXBwZXJWYWx1ZSwgYm9vbCBsb3dlck9wZW4sIGJvb2wgdXBwZXJPcGVuLCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKKyAgICBET01SZXF1ZXN0U3RhdGUgcmVxdWVzdFN0YXRlKGNvbnRl
eHQpOworICAgIFJlZlB0cjxJREJLZXk+IGxvd2VyID0gc2NyaXB0VmFsdWVUb0lEQktleSgmcmVx
dWVzdFN0YXRlLCBsb3dlclZhbHVlKTsKKyAgICBSZWZQdHI8SURCS2V5PiB1cHBlciA9IHNjcmlw
dFZhbHVlVG9JREJLZXkoJnJlcXVlc3RTdGF0ZSwgdXBwZXJWYWx1ZSk7CisKICAgICBpZiAoIWxv
d2VyIHx8ICFsb3dlci0+aXNWYWxpZCgpIHx8ICF1cHBlciB8fCAhdXBwZXItPmlzVmFsaWQoKSkg
ewogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEYXRhRXJyb3I7CiAgICAgICAg
IHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCS2V5UmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJh
bmdlLmgKaW5kZXggNjA2N2VmOTVkNjg0NzA5ZWZjYTdmOTY0NWIzMDcwMjM0ODJhMjVlYy4uODE4
NjVkMGI1M2E5NGZhZmFmMTA2NzczN2JhZWNhNmI1Y2RkOThhNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oCkBAIC01MywzNiArNTMsMjkgQEAg
cHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJLZXlSYW5nZShs
b3dlciwgdXBwZXIsIGxvd2VyVHlwZSwgdXBwZXJUeXBlKSk7CiAgICAgfQorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPElEQktleVJhbmdlPiBjcmVhdGUoUGFzc1JlZlB0cjxJREJLZXk+IHBycEtleSk7
CiAgICAgfklEQktleVJhbmdlKCkgeyB9CiAKICAgICBQYXNzUmVmUHRyPElEQktleT4gbG93ZXIo
KSBjb25zdCB7IHJldHVybiBtX2xvd2VyOyB9CiAgICAgUGFzc1JlZlB0cjxJREJLZXk+IHVwcGVy
KCkgY29uc3QgeyByZXR1cm4gbV91cHBlcjsgfQorCisgICAgU2NyaXB0VmFsdWUgbG93ZXJWYWx1
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgY29uc3Q7CisgICAgU2NyaXB0VmFsdWUgdXBwZXJW
YWx1ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgY29uc3Q7CiAgICAgYm9vbCBsb3dlck9wZW4o
KSBjb25zdCB7IHJldHVybiBtX2xvd2VyVHlwZSA9PSBMb3dlckJvdW5kT3BlbjsgfQogICAgIGJv
b2wgdXBwZXJPcGVuKCkgY29uc3QgeyByZXR1cm4gbV91cHBlclR5cGUgPT0gVXBwZXJCb3VuZE9w
ZW47IH0KIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBvbmx5KFBhc3NSZWZQ
dHI8SURCS2V5PiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PElEQktleVJhbmdlPiBvbmx5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTY3JpcHRW
YWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJL
ZXlSYW5nZT4gbG93ZXJCb3VuZChQYXNzUmVmUHRyPElEQktleT4gYm91bmQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQotICAgIHsKLSAgICAgIHJldHVybiBsb3dlckJvdW5kKGJvdW5kLCBmYWxzZSwgZWMp
OwotICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gbG93ZXJCb3VuZChQ
YXNzUmVmUHRyPElEQktleT4gYm91bmQsIGJvb2wgb3BlbiwgRXhjZXB0aW9uQ29kZSYpOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBsb3dlckJvdW5kKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFNjcmlwdFZhbHVlJiBib3VuZCwgRXhjZXB0aW9uQ29k
ZSYgZWMpIHsgcmV0dXJuIGxvd2VyQm91bmQoY29udGV4dCwgYm91bmQsIGZhbHNlLCBlYyk7IH0K
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4gbG93ZXJCb3VuZChTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiwgY29uc3QgU2NyaXB0VmFsdWUmIGJvdW5kLCBib29sIG9wZW4sIEV4Y2Vw
dGlvbkNvZGUmKTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleVJhbmdlPiB1cHBlckJv
dW5kKFBhc3NSZWZQdHI8SURCS2V5PiBib3VuZCwgRXhjZXB0aW9uQ29kZSYgZWMpCi0gICAgewot
ICAgICAgcmV0dXJuIHVwcGVyQm91bmQoYm91bmQsIGZhbHNlLCBlYyk7Ci0gICAgfQotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPElEQktleVJhbmdlPiB1cHBlckJvdW5kKFBhc3NSZWZQdHI8SURCS2V5
PiBib3VuZCwgYm9vbCBvcGVuLCBFeGNlcHRpb25Db2RlJik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8SURCS2V5UmFuZ2U+IHVwcGVyQm91bmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU2NyaXB0VmFsdWUmIGJvdW5kLCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4g
dXBwZXJCb3VuZChjb250ZXh0LCBib3VuZCwgZmFsc2UsIGVjKTsgfQorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPElEQktleVJhbmdlPiB1cHBlckJvdW5kKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBj
b25zdCBTY3JpcHRWYWx1ZSYgYm91bmQsIGJvb2wgb3BlbiwgRXhjZXB0aW9uQ29kZSYpOwogCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGJvdW5kKFBhc3NSZWZQdHI8SURCS2V5
PiBsb3dlciwgUGFzc1JlZlB0cjxJREJLZXk+IHVwcGVyLCBFeGNlcHRpb25Db2RlJiBlYykKLSAg
ICB7Ci0gICAgICByZXR1cm4gYm91bmQobG93ZXIsIHVwcGVyLCBmYWxzZSwgZmFsc2UsIGVjKTsK
LSAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGJvdW5kKFBhc3NSZWZQ
dHI8SURCS2V5PiBsb3dlciwgUGFzc1JlZlB0cjxJREJLZXk+IHVwcGVyLCBib29sIGxvd2VyT3Bl
biwgRXhjZXB0aW9uQ29kZSYgZWMpCi0gICAgewotICAgICAgcmV0dXJuIGJvdW5kKGxvd2VyLCB1
cHBlciwgbG93ZXJPcGVuLCBmYWxzZSwgZWMpOwotICAgIH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxJREJLZXlSYW5nZT4gYm91bmQoUGFzc1JlZlB0cjxJREJLZXk+IGxvd2VyLCBQYXNzUmVmUHRy
PElEQktleT4gdXBwZXIsIGJvb2wgbG93ZXJPcGVuLCBib29sIHVwcGVyT3BlbiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleVJhbmdlPiBib3VuZChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTY3JpcHRWYWx1ZSYgbG93ZXIsIGNvbnN0
IFNjcmlwdFZhbHVlJiB1cHBlciwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGJvdW5kKGNv
bnRleHQsIGxvd2VyLCB1cHBlciwgZmFsc2UsIGZhbHNlLCBlYyk7IH0KKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxJREJLZXlSYW5nZT4gYm91bmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU2NyaXB0VmFsdWUmIGxvd2VyLCBjb25zdCBTY3JpcHRWYWx1ZSYgdXBwZXIsIGJv
b2wgbG93ZXJPcGVuLCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gYm91bmQoY29udGV4dCwg
bG93ZXIsIHVwcGVyLCBsb3dlck9wZW4sIGZhbHNlLCBlYyk7IH0KKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxJREJLZXlSYW5nZT4gYm91bmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFNj
cmlwdFZhbHVlJiBsb3dlciwgY29uc3QgU2NyaXB0VmFsdWUmIHVwcGVyLCBib29sIGxvd2VyT3Bl
biwgYm9vbCB1cHBlck9wZW4sIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIGJvb2wgaXNPbmx5S2V5
KCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXlSYW5nZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlS
YW5nZS5pZGwKaW5kZXggMDZmYzI3YTIwZWRmNTY0YWFhNTE0YzFiMjg0MzE4MWJkODZhZWZjYy4u
NTdlMGU1MDU2NmM0MjQwNjM3MTg0YTQwYzFhZTA5ZTE1ODg5Y2JlYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmlkbApAQCAtMjcsMTggKzI3
LDE4IEBACiAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRSwKICAgICBKU05vU3RhdGlj
VGFibGVzCiBdIGludGVyZmFjZSBJREJLZXlSYW5nZSB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRl
IElEQktleSBsb3dlcjsKLSAgICByZWFkb25seSBhdHRyaWJ1dGUgSURCS2V5IHVwcGVyOworICAg
IFtJbXBsZW1lbnRlZEFzPWxvd2VyVmFsdWUsQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4
dF0gcmVhZG9ubHkgYXR0cmlidXRlIGFueSBsb3dlcjsKKyAgICBbSW1wbGVtZW50ZWRBcz11cHBl
clZhbHVlLENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBhbnkgdXBwZXI7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gbG93ZXJPcGVuOwog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHVwcGVyT3BlbjsKIAotICAgIHN0YXRpYyBJ
REJLZXlSYW5nZSBvbmx5KGluIElEQktleSB2YWx1ZSkKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dF0gc3RhdGljIElEQktleVJhbmdlIG9ubHkoaW4gYW55IHZhbHVlKQogICAg
ICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgc3RhdGljIElEQktleVJhbmdlIGxvd2Vy
Qm91bmQoaW4gSURCS2V5IGJvdW5kLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gb3BlbikKKyAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gc3RhdGljIElEQktleVJhbmdlIGxvd2Vy
Qm91bmQoaW4gYW55IGJvdW5kLCBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gb3BlbikKICAgICAgICAg
cmFpc2VzIChET01FeGNlcHRpb24pOwotICAgIHN0YXRpYyBJREJLZXlSYW5nZSB1cHBlckJvdW5k
KGluIElEQktleSBib3VuZCwgaW4gW09wdGlvbmFsXSBib29sZWFuIG9wZW4pCisgICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIHN0YXRpYyBJREJLZXlSYW5nZSB1cHBlckJvdW5k
KGluIGFueSBib3VuZCwgaW4gW09wdGlvbmFsXSBib29sZWFuIG9wZW4pCiAgICAgICAgIHJhaXNl
cyAoRE9NRXhjZXB0aW9uKTsKLSAgICBzdGF0aWMgSURCS2V5UmFuZ2UgYm91bmQoaW4gSURCS2V5
IGxvd2VyLCBpbiBJREJLZXkgdXBwZXIsIGluIFtPcHRpb25hbF0gYm9vbGVhbiBsb3dlck9wZW4s
IGluIFtPcHRpb25hbF0gYm9vbGVhbiB1cHBlck9wZW4pCisgICAgW0NhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRdIHN0YXRpYyBJREJLZXlSYW5nZSBib3VuZChpbiBhbnkgbG93ZXIsIGlu
IGFueSB1cHBlciwgaW4gW09wdGlvbmFsXSBib29sZWFuIGxvd2VyT3BlbiwgaW4gW09wdGlvbmFs
XSBib29sZWFuIHVwcGVyT3BlbikKICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmUuY3BwCmluZGV4IGYxMGQwODZlZTQ5NmZkZTFiNTgxODA4ZTk5YzlhZTdlYTk0NWMzNDQuLjAx
YjI3M2FjMTU2MzFmZTNhYjM3MmRlOGQ1ODk2MjAyNmZkZWZjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKQEAgLTg5LDkg
Kzg5LDkgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6Z2V0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3MKICAgICByZXR1cm4gcmVxdWVzdC5yZWxl
YXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OmdldChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBF
eGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6
OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTY3JpcHRWYWx1ZSYg
a2V5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJh
bmdlID0gSURCS2V5UmFuZ2U6Om9ubHkoa2V5LCBlYyk7CisgICAgUmVmUHRyPElEQktleVJhbmdl
PiBrZXlSYW5nZSA9IElEQktleVJhbmdlOjpvbmx5KGNvbnRleHQsIGtleSwgZWMpOwogICAgIGlm
IChlYykKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGdldChjb250ZXh0LCBrZXlSYW5n
ZS5yZWxlYXNlKCksIGVjKTsKQEAgLTEyMCwyMSArMTIwLDQwIEBAIHN0YXRpYyB2b2lkIGdlbmVy
YXRlSW5kZXhLZXlzRm9yVmFsdWUoRE9NUmVxdWVzdFN0YXRlKiByZXF1ZXN0U3RhdGUsIGNvbnN0
IElEQkluCiAgICAgfQogfQogCi1QYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3Jl
OjphZGQoU2NyaXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUsIFBhc3NSZWZQdHI8
SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJ
REJPYmplY3RTdG9yZTo6YWRkKFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2NyaXB0VmFsdWUmIHZhbHVl
LCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJf
VFJBQ0UoIklEQk9iamVjdFN0b3JlOjphZGQiKTsKICAgICByZXR1cm4gcHV0KElEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZTo6QWRkT25seSwgSURCQW55OjpjcmVhdGUodGhpcyksIHN0YXRlLCB2
YWx1ZSwga2V5LCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3Rv
cmU6OnB1dChTY3JpcHRTdGF0ZSogc3RhdGUsIFNjcmlwdFZhbHVlJiB2YWx1ZSwgUGFzc1JlZlB0
cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IElEQk9iamVjdFN0b3JlOjphZGQoU2NyaXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFs
dWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIElEQl9UUkFDRSgiSURCT2JqZWN0U3RvcmU6
OmFkZCIpOworICAgIHJldHVybiBwdXQoSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpBZGRP
bmx5LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgc3RhdGUsIHZhbHVlLCBzdGF0aWNfY2FzdDxJREJL
ZXkqPigwKSwgZWMpOworfQorCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3Jl
OjpwdXQoU2NyaXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUsIGNvbnN0IFNjcmlw
dFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIElEQl9UUkFDRSgiSURCT2Jq
ZWN0U3RvcmU6OnB1dCIpOwogICAgIHJldHVybiBwdXQoSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlOjpBZGRPclVwZGF0ZSwgSURCQW55OjpjcmVhdGUodGhpcyksIHN0YXRlLCB2YWx1ZSwga2V5
LCBlYyk7CiB9CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChJ
REJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJ
REJBbnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqIHN0YXRlLCBTY3JpcHRWYWx1ZSYgdmFsdWUsIFBh
c3NSZWZQdHI8SURCS2V5PiBwcnBLZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6cHV0KFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2NyaXB0
VmFsdWUmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJREJfVFJBQ0UoIklEQk9i
amVjdFN0b3JlOjpwdXQiKTsKKyAgICByZXR1cm4gcHV0KElEQkRhdGFiYXNlQmFja2VuZEludGVy
ZmFjZTo6QWRkT3JVcGRhdGUsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBzdGF0ZSwgdmFsdWUsIHN0
YXRpY19jYXN0PElEQktleSo+KDApLCBlYyk7Cit9CisKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4g
SURCT2JqZWN0U3RvcmU6OnB1dChJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUg
cHV0TW9kZSwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgU2NyaXB0U3RhdGUqIHN0YXRlLCBT
Y3JpcHRWYWx1ZSYgdmFsdWUsIGNvbnN0IFNjcmlwdFZhbHVlJiBrZXlWYWx1ZSwgRXhjZXB0aW9u
Q29kZSYgZWMpCit7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRGcm9tU2NyaXB0U3RhdGUoc3RhdGUpOworICAgIERPTVJlcXVlc3RT
dGF0ZSByZXF1ZXN0U3RhdGUoY29udGV4dCk7CisgICAgUmVmUHRyPElEQktleT4ga2V5ID0gc2Ny
aXB0VmFsdWVUb0lEQktleSgmcmVxdWVzdFN0YXRlLCBrZXlWYWx1ZSk7CisgICAgcmV0dXJuIHB1
dChwdXRNb2RlLCBzb3VyY2UsIHN0YXRlLCB2YWx1ZSwga2V5LnJlbGVhc2UoKSwgZWMpOworfQor
CitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQoSURCRGF0YWJhc2VC
YWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlIHB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQW55PiBzb3Vy
Y2UsIFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2NyaXB0VmFsdWUmIHZhbHVlLCBQYXNzUmVmUHRyPElE
QktleT4gcHJwS2V5LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKICAgICBSZWZQdHI8SURCS2V5PiBr
ZXkgPSBwcnBLZXk7CiAgICAgaWYgKG1fZGVsZXRlZCkgewogICAgICAgICBlYyA9IElEQkRhdGFi
YXNlRXhjZXB0aW9uOjpJbnZhbGlkU3RhdGVFcnJvcjsKQEAgLTI0MCw5ICsyNTksOSBAQCBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpkZWxldGVGdW5jdGlvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjbwogICAgIHJldHVybiByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIAot
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6ZGVsZXRlRnVuY3Rpb24oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpk
ZWxldGVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTY3Jp
cHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBSZWZQdHI8SURCS2V5UmFu
Z2U+IGtleVJhbmdlID0gSURCS2V5UmFuZ2U6Om9ubHkoa2V5LCBlYyk7CisgICAgUmVmUHRyPElE
QktleVJhbmdlPiBrZXlSYW5nZSA9IElEQktleVJhbmdlOjpvbmx5KGNvbnRleHQsIGtleSwgZWMp
OwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGRlbGV0ZUZ1bmN0
aW9uKGNvbnRleHQsIGtleVJhbmdlLnJlbGVhc2UoKSwgZWMpOwpAQCAtMzEzLDcgKzMzMiw3IEBA
IHByaXZhdGU6CiAgICAgICAgIFZlY3RvcjxpbnQ2NF90LCAxPiBpbmRleElkczsKICAgICAgICAg
aW5kZXhJZHMuYXBwZW5kKG1faW5kZXhNZXRhZGF0YS5pZCk7CiAgICAgICAgIGlmIChjdXJzb3Ip
IHsKLSAgICAgICAgICAgIGN1cnNvci0+Y29udGludWVGdW5jdGlvbihlYyk7CisgICAgICAgICAg
ICBjdXJzb3ItPmNvbnRpbnVlRnVuY3Rpb24oc3RhdGljX2Nhc3Q8SURCS2V5Kj4oMCksIGVjKTsK
ICAgICAgICAgICAgIEFTU0VSVCghZWMpOwogCiAgICAgICAgICAgICBSZWZQdHI8SURCS2V5PiBw
cmltYXJ5S2V5ID0gY3Vyc29yLT5pZGJQcmltYXJ5S2V5KCk7CkBAIC00OTQsOSArNTEzLDkgQEAg
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6b3BlbkN1cnNvcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXgKICAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9
CiAKLVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6Om9wZW5DdXJzb3IoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgY29u
c3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBjb25zdCBTY3JpcHRWYWx1ZSYga2V5LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlv
biwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5n
ZSA9IElEQktleVJhbmdlOjpvbmx5KGtleSwgZWMpOworICAgIFJlZlB0cjxJREJLZXlSYW5nZT4g
a2V5UmFuZ2UgPSBJREJLZXlSYW5nZTo6b25seShjb250ZXh0LCBrZXksIGVjKTsKICAgICBpZiAo
ZWMpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBvcGVuQ3Vyc29yKGNvbnRleHQsIGtl
eVJhbmdlLnJlbGVhc2UoKSwgZGlyZWN0aW9uLCBlYyk7CkBAIC01MTgsOSArNTM3LDkgQEAgUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6Y291bnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGEKICAgICByZXR1cm4gcmVxdWVzdC5yZWxlYXNlKCk7CiB9CiAK
LVBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OmNvdW50KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6Y291bnQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU2NyaXB0VmFsdWUmIGtleSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgUmVmUHRyPElEQktleVJhbmdlPiBrZXlSYW5nZSA9IElE
QktleVJhbmdlOjpvbmx5KGtleSwgZWMpOworICAgIFJlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFu
Z2UgPSBJREJLZXlSYW5nZTo6b25seShjb250ZXh0LCBrZXksIGVjKTsKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBjb3VudChjb250ZXh0LCBrZXlSYW5nZS5yZWxl
YXNlKCksIGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQk9iamVjdFN0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJP
YmplY3RTdG9yZS5oCmluZGV4IDU5MmJiYzE2Yzk0OWFjMDk1ZGM2Y2NlOGEzZGEyNmQxMzAzMzM0
YjAuLmVlZWUwY2RlOWVlNDMwOGZmN2VlNTk1Yzk2NmRiMzI5ZWQ0ZWRlZTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaApAQCAtNjUs
MjEgKzY1LDIxIEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uPiB0cmFu
c2FjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb247IH0KICAgICBib29sIGF1dG9J
bmNyZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRhLmF1dG9JbmNyZW1lbnQ7IH0KIAot
ICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gYWRkKFNjcmlwdFN0YXRlKiBzdGF0ZSwgU2NyaXB0
VmFsdWUmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gYWRkKHN0YXRlLCB2YWx1
ZSwgMCwgZWMpOyAgfQotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gcHV0KFNjcmlwdFN0YXRl
KiBzdGF0ZSwgU2NyaXB0VmFsdWUmIHZhbHVlLCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4g
cHV0KHN0YXRlLCB2YWx1ZSwgMCwgZWMpOyAgfQorICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4g
YWRkKFNjcmlwdFN0YXRlKiwgU2NyaXB0VmFsdWUmLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBwdXQoU2NyaXB0U3RhdGUqLCBTY3JpcHRWYWx1ZSYsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9w
ZW5DdXJzb3IoY29udGV4dCwgc3RhdGljX2Nhc3Q8SURCS2V5UmFuZ2UqPigwKSwgZWMpOyB9CiAg
ICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBFeGNlcHRpb25D
b2RlJiBlYykgeyByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBrZXlSYW5nZSwgSURCQ3Vyc29y
OjpkaXJlY3Rpb25OZXh0KCksIGVjKTsgfQotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3Bl
bkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktl
eT4ga2V5LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBr
ZXksIElEQkN1cnNvcjo6ZGlyZWN0aW9uTmV4dCgpLCBlYyk7IH0KKyAgICBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29u
c3QgU2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5DdXJz
b3IoY29udGV4dCwga2V5LCBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHQoKSwgZWMpOyB9CiAgICAg
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IHJhbmdlLCBjb25zdCBTdHJpbmcmIGRp
cmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwg
cmFuZ2UsIGRpcmVjdGlvbiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpOb3JtYWxU
YXNrLCBlYyk7IH0KICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBjb25zdCBTdHJpbmcm
IGRpcmVjdGlvbiwgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlOjpUYXNrVHlwZSwgRXhj
ZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXk+LCBjb25zdCBTdHJpbmcmIGRp
cmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3Bl
bkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU2NyaXB0VmFsdWUmIGtleSwg
Y29uc3QgU3RyaW5nJiBkaXJlY3Rpb24sIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gZ2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElE
QktleT4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGdldChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZ2V0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gYWRkKFNjcmlwdFN0YXRlKiwgU2NyaXB0VmFsdWUmLCBQYXNz
UmVmUHRyPElEQktleT4sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPElEQlJlcXVl
c3Q+IHB1dChTY3JpcHRTdGF0ZSosIFNjcmlwdFZhbHVlJiwgUGFzc1JlZlB0cjxJREJLZXk+LCBF
eGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBhZGQoU2NyaXB0U3Rh
dGUqLCBTY3JpcHRWYWx1ZSYsIGNvbnN0IFNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUm
KTsKKyAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IHB1dChTY3JpcHRTdGF0ZSosIFNjcmlwdFZh
bHVlJiwgY29uc3QgU2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBkZWxldGVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFz
c1JlZlB0cjxJREJLZXk+IGtleSwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURC
UmVxdWVzdD4gZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFNj
cmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVl
c3Q+IGNsZWFyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJik7CiAKICAg
ICBQYXNzUmVmUHRyPElEQkluZGV4PiBjcmVhdGVJbmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgY29u
c3QgRGljdGlvbmFyeSYgb3B0aW9ucywgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNyZWF0
ZUluZGV4KGNvbnRleHQsIG5hbWUsIElEQktleVBhdGgoa2V5UGF0aCksIG9wdGlvbnMsIGVjKTsg
fQpAQCAtOTIsOCArOTIsOSBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IGNvdW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVj
KSB7IHJldHVybiBjb3VudChjb250ZXh0LCBzdGF0aWNfY2FzdDxJREJLZXlSYW5nZSo+KDApLCBl
Yyk7IH0KICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGNvdW50KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBQYXNzUmVmUHRyPElEQktleVJhbmdlPiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NS
ZWZQdHI8SURCS2V5PiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFNjcmlwdFZhbHVlJiBrZXks
IEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gcHV0KElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZTo6UHV0TW9kZSwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJj
ZSwgU2NyaXB0U3RhdGUqLCBTY3JpcHRWYWx1ZSYsIGNvbnN0IFNjcmlwdFZhbHVlJiBrZXksIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IHB1dChJREJEYXRhYmFz
ZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQW55PiBzb3VyY2UsIFNj
cmlwdFN0YXRlKiwgU2NyaXB0VmFsdWUmLCBQYXNzUmVmUHRyPElEQktleT4sIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2b2lkIG1hcmtEZWxldGVkKCkgeyBtX2RlbGV0ZWQgPSB0cnVlOyB9CiAgICAg
dm9pZCB0cmFuc2FjdGlvbkZpbmlzaGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5pZGwKaW5kZXggM2QyOGU5YzQ3MzczYWFkNjY3
ZDdjYzgxYjZmYzcyZTgwMjYwMTY5MC4uMzU5NWRlMTNkMmVkNmU4ODljMjk4MjAxZmU4NGM5ODE3
MWVkMjQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9iamVjdFN0b3JlLmlkbApAQCAtMzMsMjMgKzMzLDIzIEBACiAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIElEQlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBi
b29sZWFuIGF1dG9JbmNyZW1lbnQ7CiAKLSAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGVdIElEQlJl
cXVlc3QgcHV0KGluIGFueSB2YWx1ZSwgaW4gW09wdGlvbmFsXSBJREJLZXkga2V5KQorICAgIFtD
YWxsV2l0aD1TY3JpcHRTdGF0ZV0gSURCUmVxdWVzdCBwdXQoaW4gYW55IHZhbHVlLCBpbiBbT3B0
aW9uYWxdIGFueSBrZXkpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKLSAgICBbQ2Fs
bFdpdGg9U2NyaXB0U3RhdGVdIElEQlJlcXVlc3QgYWRkKGluIGFueSB2YWx1ZSwgaW4gW09wdGlv
bmFsXSBJREJLZXkga2V5KQorICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZV0gSURCUmVxdWVzdCBh
ZGQoaW4gYW55IHZhbHVlLCBpbiBbT3B0aW9uYWxdIGFueSBrZXkpCiAgICAgICAgIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgSW1w
bGVtZW50ZWRBcz1kZWxldGVGdW5jdGlvbl0gSURCUmVxdWVzdCBkZWxldGUoaW4gSURCS2V5UmFu
Z2U/IGtleVJhbmdlKQogICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7Ci0gICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIEltcGxlbWVudGVkQXM9ZGVsZXRlRnVuY3Rpb25d
IElEQlJlcXVlc3QgZGVsZXRlKGluIElEQktleSBrZXkpCisgICAgW0NhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQsIEltcGxlbWVudGVkQXM9ZGVsZXRlRnVuY3Rpb25dIElEQlJlcXVlc3Qg
ZGVsZXRlKGluIGFueSBrZXkpCiAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICBb
Q2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVzdCBjbGVhcigpCiAgICAg
ICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dF0gSURCUmVxdWVzdCBnZXQoaW4gSURCS2V5UmFuZ2U/IGtleSkKICAgICAgICAgcmFp
c2VzIChET01FeGNlcHRpb24pOwotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0
XSBJREJSZXF1ZXN0IGdldChpbiBJREJLZXkga2V5KQorICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0XSBJREJSZXF1ZXN0IGdldChpbiBhbnkga2V5KQogICAgICAgICByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CiAgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElE
QlJlcXVlc3Qgb3BlbkN1cnNvcihpbiBbT3B0aW9uYWxdIElEQktleVJhbmdlPyByYW5nZSwgaW4g
W09wdGlvbmFsXSBET01TdHJpbmcgZGlyZWN0aW9uKQogICAgICAgICByYWlzZXMgKERPTUV4Y2Vw
dGlvbik7Ci0gICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qg
b3BlbkN1cnNvcihpbiBJREJLZXkga2V5LCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyBkaXJlY3Rp
b24pCisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRdIElEQlJlcXVlc3Qgb3Bl
bkN1cnNvcihpbiBhbnkga2V5LCBpbiBbT3B0aW9uYWxdIERPTVN0cmluZyBkaXJlY3Rpb24pCiAg
ICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKIAogICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVj
dXRpb25Db250ZXh0LCBKU0N1c3RvbV0gSURCSW5kZXggY3JlYXRlSW5kZXgoaW4gRE9NU3RyaW5n
IG5hbWUsIGluIHNlcXVlbmNlPERPTVN0cmluZz4ga2V5UGF0aCwgaW4gW09wdGlvbmFsXSBEaWN0
aW9uYXJ5IG9wdGlvbnMpCkBAIC02Miw2ICs2Miw2IEBACiAgICAgICAgIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKICAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dF0gSURCUmVxdWVz
dCBjb3VudChpbiBbT3B0aW9uYWxdIElEQktleVJhbmdlPyByYW5nZSkKICAgICAgICAgcmFpc2Vz
IChET01FeGNlcHRpb24pOwotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0XSBJ
REJSZXF1ZXN0IGNvdW50KGluIElEQktleSBrZXkpCisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRdIElEQlJlcXVlc3QgY291bnQoaW4gYW55IGtleSkKICAgICAgICAgcmFpc2Vz
IChET01FeGNlcHRpb24pOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggNTBhOTk1ODhmNmJlMTg5Y2I5ZjU1ZDIzZTA5MjI2YmFj
YjA0ZTZmMC4uM2Q4MjljZDJiY2YxNWRmOGFhNTI4YmVlZjg3NzU0NWZiMTczNDQxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTMx
Myw5ICszMTMsMTAgQEAgdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJL
ZXk+IGlkYktleSkKICAgICBpZiAoIXNob3VsZEVucXVldWVFdmVudCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAoaWRiS2V5ICYmIGlkYktleS0+aXNWYWxpZCgpKQotICAgICAgICBtX3Jl
c3VsdCA9IElEQkFueTo6Y3JlYXRlKGlkYktleSk7Ci0gICAgZWxzZQorICAgIGlmIChpZGJLZXkg
JiYgaWRiS2V5LT5pc1ZhbGlkKCkpIHsKKyAgICAgICAgRE9NUmVxdWVzdFN0YXRlOjpTY29wZSBz
Y29wZShtX3JlcXVlc3RTdGF0ZSk7CisgICAgICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVhdGUo
aWRiS2V5VG9TY3JpcHRWYWx1ZShyZXF1ZXN0U3RhdGUoKSwgaWRiS2V5KSk7CisgICAgfSBlbHNl
CiAgICAgICAgIG1fcmVzdWx0ID0gSURCQW55OjpjcmVhdGVJbnZhbGlkKCk7CiAgICAgZW5xdWV1
ZUV2ZW50KGNyZWF0ZVN1Y2Nlc3NFdmVudCgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5jcHAKaW5kZXggMzRjNzdiZmMyNTNkMmZl
NmJlMzNiYmY5ZjE5ZTM1OGZhNzhkOGVlZS4uODE5ZDhlY2FiZWM3NGVhZjM4YWIzMmFjZTYzZTM5
ZDJlNGQ0NGE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmlu
ZGluZ1V0aWxpdGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmlu
ZGluZ1V0aWxpdGllcy5jcHAKQEAgLTI3MSw2ICsyNzEsMTIgQEAgU2NyaXB0VmFsdWUgaWRiS2V5
VG9TY3JpcHRWYWx1ZShET01SZXF1ZXN0U3RhdGUqIHJlcXVlc3RTdGF0ZSwgUGFzc1JlZlB0cjxJ
REJLZXkKICAgICByZXR1cm4gU2NyaXB0VmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCB0b0pTKGV4
ZWMsIGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3Qo
KSksIGtleS5nZXQoKSkpOwogfQogCitQYXNzUmVmUHRyPElEQktleT4gc2NyaXB0VmFsdWVUb0lE
QktleShET01SZXF1ZXN0U3RhdGUqIHJlcXVlc3RTdGF0ZSwgY29uc3QgU2NyaXB0VmFsdWUmIHNj
cmlwdFZhbHVlKQoreworICAgIEV4ZWNTdGF0ZSogZXhlYyA9IHJlcXVlc3RTdGF0ZS0+ZXhlYygp
OworICAgIHJldHVybiBjcmVhdGVJREJLZXlGcm9tVmFsdWUoZXhlYywgc2NyaXB0VmFsdWUuanNW
YWx1ZSgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9JREJCaW5kaW5nVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9JREJC
aW5kaW5nVXRpbGl0aWVzLmgKaW5kZXggOTk3OGNjNWYxMTA2MmI5ZjdiOTUzNGI1M2JhYjZjMjg4
N2Q5ZTMzYi4uMjMzYmFkNWYyNWIwNzhjNjRmNDhkMDVmOGU3OGQzOTU0MDRkYWU2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSURCQmluZGluZ1V0aWxpdGllcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuaApAQCAt
NDcsNiArNDcsNyBAQCBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlSURCS2V5RnJvbVNjcmlwdFZh
bHVlQW5kS2V5UGF0aChET01SZXF1ZXN0U3RhdGUqLCBjb25zdAogYm9vbCBjYW5JbmplY3RJREJL
ZXlJbnRvU2NyaXB0VmFsdWUoRE9NUmVxdWVzdFN0YXRlKiwgY29uc3QgU2NyaXB0VmFsdWUmLCBj
b25zdCBJREJLZXlQYXRoJik7CiBTY3JpcHRWYWx1ZSBkZXNlcmlhbGl6ZUlEQlZhbHVlKERPTVJl
cXVlc3RTdGF0ZSosIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CiBTY3JpcHRW
YWx1ZSBpZGJLZXlUb1NjcmlwdFZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIFBhc3NSZWZQdHI8SURC
S2V5Pik7CitQYXNzUmVmUHRyPElEQktleT4gc2NyaXB0VmFsdWVUb0lEQktleShET01SZXF1ZXN0
U3RhdGUqLCBjb25zdCBTY3JpcHRWYWx1ZSYpOwogCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSURCQW55Q3VzdG9tLmNwcAppbmRleCA0ZjE0NTU1OGQ4ZWNiZjVjNjgxNmQx
NGM5MmY4ODgzOTgzNzVmZmQyLi40N2RmMzM0MDY3YWU5NjlmNGQ2MDZjMGM5YzE0NmFjM2JiY2Iz
YTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJBbnlDdXN0b20uY3Bw
CkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJJ
REJGYWN0b3J5LmgiCiAjaW5jbHVkZSAiSURCSW5kZXguaCIKLSNpbmNsdWRlICJJREJLZXkuaCIK
ICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIkpTRE9NU3RyaW5nTGlzdC5o
IgogI2luY2x1ZGUgIkpTSURCQ3Vyc29yLmgiCkBAIC00NSw3ICs0NCw2IEBACiAjaW5jbHVkZSAi
SlNJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIkpTSURCRmFjdG9yeS5oIgogI2luY2x1ZGUgIkpT
SURCSW5kZXguaCIKLSNpbmNsdWRlICJKU0lEQktleS5oIgogI2luY2x1ZGUgIkpTSURCT2JqZWN0
U3RvcmUuaCIKICNpbmNsdWRlICJKU0lEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmgiCkBAIC03Niw4ICs3NCw2IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3Rh
dGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIElEQkFueSogaWRiQW55
KQogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlkYkFueS0+aWRiRmFj
dG9yeSgpKTsKICAgICBjYXNlIElEQkFueTo6SURCSW5kZXhUeXBlOgogICAgICAgICByZXR1cm4g
dG9KUyhleGVjLCBnbG9iYWxPYmplY3QsIGlkYkFueS0+aWRiSW5kZXgoKSk7Ci0gICAgY2FzZSBJ
REJBbnk6OklEQktleVR5cGU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgaWRiQW55LT5pZGJLZXkoKSk7CiAgICAgY2FzZSBJREJBbnk6OklEQk9iamVjdFN0b3JlVHlw
ZToKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBpZGJBbnktPmlkYk9i
amVjdFN0b3JlKCkpOwogICAgIGNhc2UgSURCQW55OjpJREJUcmFuc2FjdGlvblR5cGU6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCmlu
ZGV4IGUxMDdjY2Y1ZDgyNjY0ODk4ZTczZTgyNWI1NjZhMDkxODY0NzVmNGMuLmIyZjFlOTQ4N2Fk
NzVmNTk4ZDIzZjk2NjAzMjc5NmFjZmU5MGFjNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC0yNzEsNiArMjcxLDE0IEBA
IFNjcmlwdFZhbHVlIGlkYktleVRvU2NyaXB0VmFsdWUoRE9NUmVxdWVzdFN0YXRlKiBzdGF0ZSwg
UGFzc1JlZlB0cjxJREJLZXk+IGtleSkKICAgICByZXR1cm4gU2NyaXB0VmFsdWUodjhWYWx1ZSk7
CiB9CiAKK1Bhc3NSZWZQdHI8SURCS2V5PiBzY3JpcHRWYWx1ZVRvSURCS2V5KERPTVJlcXVlc3RT
dGF0ZSosIGNvbnN0IFNjcmlwdFZhbHVlJiBzY3JpcHRWYWx1ZSkKK3sKKyAgICBBU1NFUlQodjg6
OkNvbnRleHQ6OkluQ29udGV4dCgpKTsKKyAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2NvcGU7
CisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHY4VmFsdWUoc2NyaXB0VmFsdWUudjhWYWx1ZSgp
KTsKKyAgICByZXR1cm4gY3JlYXRlSURCS2V5RnJvbVZhbHVlKHY4VmFsdWUpOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5oCmluZGV4IDg2ZWZjNDQzYWE2OTI5ODE5ZDZhYzhi
ZjQ1YThkMDQ5M2M5ZGE4ZmUuLjdhZGYxYjJhZWEwNTgwNWY2MmY3NzI0YmIxNmI4NTc2OTY5MmU0
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGls
aXRpZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0
aWVzLmgKQEAgLTQ2LDYgKzQ2LDcgQEAgUGFzc1JlZlB0cjxJREJLZXk+IGNyZWF0ZUlEQktleUZy
b21TY3JpcHRWYWx1ZUFuZEtleVBhdGgoRE9NUmVxdWVzdFN0YXRlKiwgY29uc3QKIGJvb2wgY2Fu
SW5qZWN0SURCS2V5SW50b1NjcmlwdFZhbHVlKERPTVJlcXVlc3RTdGF0ZSosIGNvbnN0IFNjcmlw
dFZhbHVlJiwgY29uc3QgSURCS2V5UGF0aCYpOwogU2NyaXB0VmFsdWUgZGVzZXJpYWxpemVJREJW
YWx1ZShET01SZXF1ZXN0U3RhdGUqLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4p
OwogU2NyaXB0VmFsdWUgaWRiS2V5VG9TY3JpcHRWYWx1ZShET01SZXF1ZXN0U3RhdGUqLCBQYXNz
UmVmUHRyPElEQktleT4pOworUGFzc1JlZlB0cjxJREJLZXk+IHNjcmlwdFZhbHVlVG9JREJLZXko
RE9NUmVxdWVzdFN0YXRlKiwgY29uc3QgU2NyaXB0VmFsdWUmKTsKIAogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCQW55Q3VzdG9tLmNwcAppbmRl
eCA1ZDcxZTQyOWVhNDY3YzU0YmJkMTQyNjdhY2Y3MDA1YmNjOTZmMGUyLi5jZjQwNjRmZGQ1Mjgz
MDcyNzI4ZTk5ODlhZGE2Mzc2ZmUyYzY2MWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHAKQEAgLTM5LDcgKzM5LDYgQEAK
ICNpbmNsdWRlICJWOElEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiVjhJREJGYWN0b3J5LmgiCiAj
aW5jbHVkZSAiVjhJREJJbmRleC5oIgotI2luY2x1ZGUgIlY4SURCS2V5LmgiCiAjaW5jbHVkZSAi
VjhJREJPYmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIlY4SURCVHJhbnNhY3Rpb24uaCIKIApAQCAt
NjcsOCArNjYsNiBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChJREJBbnkqIGltcGwsIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LAogICAgICAgICByZXR1cm4gdG9W
OChpbXBsLT5pZGJGYWN0b3J5KCksIGNyZWF0aW9uQ29udGV4dCwgaXNvbGF0ZSk7CiAgICAgY2Fz
ZSBJREJBbnk6OklEQkluZGV4VHlwZToKICAgICAgICAgcmV0dXJuIHRvVjgoaW1wbC0+aWRiSW5k
ZXgoKSwgY3JlYXRpb25Db250ZXh0LCBpc29sYXRlKTsKLSAgICBjYXNlIElEQkFueTo6SURCS2V5
VHlwZToKLSAgICAgICAgcmV0dXJuIHRvVjgoaW1wbC0+aWRiS2V5KCksIGNyZWF0aW9uQ29udGV4
dCwgaXNvbGF0ZSk7CiAgICAgY2FzZSBJREJBbnk6OklEQk9iamVjdFN0b3JlVHlwZToKICAgICAg
ICAgcmV0dXJuIHRvVjgoaW1wbC0+aWRiT2JqZWN0U3RvcmUoKSwgY3JlYXRpb25Db250ZXh0LCBp
c29sYXRlKTsKICAgICBjYXNlIElEQkFueTo6SURCVHJhbnNhY3Rpb25UeXBlOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>