<?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>143006</bug_id>
          
          <creation_ts>2015-03-24 09:23:24 -0700</creation_ts>
          <short_desc>Remove unnecessary create() factory function in WebCore/crypto</short_desc>
          <delta_ts>2017-01-03 15:11:21 -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>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>jiewen_tan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1079618</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-03-24 09:23:24 -0700</bug_when>
    <thetext>There are many create() factory function in WebCore/crypto. However it looks those factory function looks like redundant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1079619</commentid>
    <comment_count>1</comment_count>
      <attachid>249328</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2015-03-24 09:27:15 -0700</bug_when>
    <thetext>Created attachment 249328
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263571</commentid>
    <comment_count>2</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-01-03 15:11:21 -0800</bug_when>
    <thetext>I don&apos;t think this is an issue, see CryptoAlgorithmRegistry.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249328</attachid>
            <date>2015-03-24 09:27:15 -0700</date>
            <delta_ts>2015-03-24 09:27:15 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-143006-20150325012637.patch</filename>
            <type>text/plain</type>
            <size>27896</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxODkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzUwZjk5NjViMjZhNGYw
YzVhMDczY2UxYTdmYmVmNWM2NDE1NTc0Ni4uOWExYmNiMWNiYzg0Yzc2ZjNkM2FkZWM5NTY3ZDky
NzVmN2ZlN2RmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTAzLTI0ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVtb3ZlIHVu
bmVjZXNzYXJ5IGNyZWF0ZSgpIGZhY3RvcnkgZnVuY3Rpb24gaW4gV2ViQ29yZS9jcnlwdG8KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MzAwNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
cnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpjcmVhdGUpOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxn
b3JpdGhtQUVTX0tXOjpjcmVhdGUpOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19LVy5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUhNQUMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtSE1BQzo6
Y3JlYXRlKToKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFD
Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtD
UzFfdjFfNS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NT
MV92MV81OjpjcmVhdGUpOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQUVTX1BLQ1MxX3YxXzUuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlw
dG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6Y3JlYXRlKToKKyAgICAgICAgKiBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oOgorICAgICAgICAq
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjpjcmVhdGUpOgorICAgICAgICAqIGNy
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmg6CisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDcnlwdG9BbGdvcml0aG1TSEExOjpjcmVhdGUpOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3Jp
dGhtU0hBMjI0OjpjcmVhdGUpOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobVNIQTIyNC5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVNIQTI1Ni5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1TSEEyNTY6
OmNyZWF0ZSk6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hB
MjU2Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVNIQTM4NDo6Y3JlYXRlKToK
KyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaDoKKyAg
ICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtU0hBNTEyOjpjcmVhdGUpOgorICAgICAgICAq
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oOgorICAgICAgICAqIGNy
eXB0by9rZXlzL0NyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmg6CisgICAgICAgICogY3J5cHRv
L2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5oOgorCiAyMDE1LTAzLTIzIFlvYXYgV2Vp
c3MgIDx5b2F2QHlvYXYud3M+CiAKICAgICAgICAgVXBkYXRlIGVtcHR5IGltYWdlIGNhbnZhcyB0
ZXN0cyBhbmQgZml4IGEgcmVsYXRlZCBidWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAKaW5kZXggNDFl
MDQ0MTE5ZjdmOGZkZDA3MzY4ZGY2N2I4MzI4MGYzOWQzNGEzMC4uZmMyYjM1YTE4YmM2ZTZjM2Ni
NjEwOWUzZmQ1OGNmOGNjYjZjNmI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAKQEAgLTQ4LDcg
KzQ4LDcgQEAgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6fkNyeXB0b0FsZ29yaXRobUFFU19DQkMo
KQogCiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtPiBDcnlwdG9BbGdvcml0aG1BRVNf
Q0JDOjpjcmVhdGUoKQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3Jp
dGhtPihuZXcgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQyk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQz4oKTsKIH0KIAogQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllciBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjppZGVudGlmaWVyKCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19DQkMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUFFU19DQkMuaAppbmRleCBmM2U3OWI2NmNiMWJiNGI2OTdhY2E0M2QxZDQyOGRjYWMyODM2Nzcw
Li5kYTEyNWI4Nzk5ODcwYjViNjI2ZTkzZjczNGZkZGVjYzUzNGVkNjg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0NCQy5oCkBAIC00MCw2ICs0MCw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgY2hhciog
Y29uc3Qgc19uYW1lOwogICAgIHN0YXRpYyBjb25zdCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkM7CiAKKyAg
ICBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDKCk7CisgICAgdmlydHVhbCB+Q3J5cHRvQWxnb3JpdGht
QUVTX0NCQygpOworCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+
IGNyZWF0ZSgpOwogCiAgICAgdmlydHVhbCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50
aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKQEAgLTUwLDkgKzUzLDYgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNv
bnN0IENyeXB0b0tleURhdGEmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSwgS2V5
Q2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBv
dmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDKCk7Ci0gICAg
dmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQygpOwotCiAgICAgYm9vbCBrZXlBbGdvcml0
aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtcyYgYWxnb3JpdGhtUGFy
YW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JikgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9ybUVuY3J5
cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5QUVT
JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrLCBWb2lkQ2FsbGJh
Y2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBwbGF0Zm9ybURl
Y3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5
QUVTJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrLCBWb2lkQ2Fs
bGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNw
cAppbmRleCBlOTk3YWVkNTgzYjM5NzI0MTY4MjFkY2NkNmJjODhkNjhjYzY5YTc1Li44MGEzY2Ri
YzA1NzZjYmFjZjFlYmNjMTU3Nzc1NmEwZTMxZmVjNGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5jcHAK
QEAgLTQ3LDcgKzQ3LDcgQEAgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjp+Q3J5cHRvQWxnb3JpdGht
QUVTX0tXKCkKIAogc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4gQ3J5cHRvQWxnb3Jp
dGhtQUVTX0tXOjpjcmVhdGUoKQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRv
QWxnb3JpdGhtPihuZXcgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXKTsKKyAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxDcnlwdG9BbGdvcml0aG1BRVNfS1c+KCk7CiB9CiAKIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjppZGVudGlmaWVyKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUFFU19LVy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtQUVTX0tXLmgKaW5kZXggZDE4NzY0N2ZiYWNhNDVkZGUxMGI4NmQ0YTI0OWQ2YWYwODMyY2Jj
MS4uZjA5NGIxOWViOTdkZjQyYTJkYmJkOGFiYzAxYjEwY2ZmNmY2NTgzNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0tXLmgKQEAgLTM5LDYgKzM5LDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBj
b25zdCBzX25hbWU7CiAgICAgc3RhdGljIGNvbnN0IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
c19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOwogCisgICAg
Q3J5cHRvQWxnb3JpdGhtQUVTX0tXKCk7CisgICAgdmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtQUVT
X0tXKCk7CisKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4gY3Jl
YXRlKCk7CiAKICAgICB2aXJ0dWFsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmll
cigpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNDksOSArNTIsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3Qg
Q3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlDYWxs
YmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92ZXJy
aWRlOwogCiBwcml2YXRlOgotICAgIENyeXB0b0FsZ29yaXRobUFFU19LVygpOwotICAgIHZpcnR1
YWwgfkNyeXB0b0FsZ29yaXRobUFFU19LVygpOwotCiAgICAgYm9vbCBrZXlBbGdvcml0aG1NYXRj
aGVzKGNvbnN0IENyeXB0b0tleSYpIGNvbnN0OwogICAgIHZvaWQgcGxhdGZvcm1FbmNyeXB0KGNv
bnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxs
YmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgcGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcAppbmRleCBjNWZjZTQ5NjVkMDYwOTNl
MDFlMzQ4ZTA4N2QzY2NkYzA5NGQ5YTA4Li4yM2UwNTQxNDVhYTIyNTIyY2Q3YmFkZThmOWE0ZmY2
MTBmNzUyMzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1ITUFDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcApAQCAtNDgsNyArNDgsNyBAQCBDcnlwdG9BbGdv
cml0aG1ITUFDOjp+Q3J5cHRvQWxnb3JpdGhtSE1BQygpCiAKIHN0ZDo6dW5pcXVlX3B0cjxDcnlw
dG9BbGdvcml0aG0+IENyeXB0b0FsZ29yaXRobUhNQUM6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJu
IHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+KG5ldyBDcnlwdG9BbGdvcml0aG1ITUFD
KTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcnlwdG9BbGdvcml0aG1ITUFDPigpOwog
fQogCiBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIENyeXB0b0FsZ29yaXRobUhNQUM6OmlkZW50
aWZpZXIoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oCmluZGV4IGRiNjY3ZmRkMmYzYTJjNGMzNjkyZTE0MzI1
NWI1MzlhZjhkOGFkODkuLjQ0MWFiYTFiNzBhZTIwYmI5MmNiY2Q0YzdhMjcxNGJiYmU5ZTIwNWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUhNQUMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1ITUFDLmgKQEAgLTQwLDYgKzQwLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCBzX25hbWU7CiAgICAgc3RhdGljIGNvbnN0IENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQzsK
IAorICAgIENyeXB0b0FsZ29yaXRobUhNQUMoKTsKKyAgICB2aXJ0dWFsIH5DcnlwdG9BbGdvcml0
aG1ITUFDKCk7CisKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4g
Y3JlYXRlKCk7CiAKICAgICB2aXJ0dWFsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRp
ZmllcigpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNTAsOSArNTMsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29u
c3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlD
YWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92
ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIENyeXB0b0FsZ29yaXRobUhNQUMoKTsKLSAgICB2aXJ0
dWFsIH5DcnlwdG9BbGdvcml0aG1ITUFDKCk7Ci0KICAgICBib29sIGtleUFsZ29yaXRobU1hdGNo
ZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyYgYWxnb3JpdGhtUGFyYW1ldGVycywg
Y29uc3QgQ3J5cHRvS2V5JikgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9ybVNpZ24oY29uc3QgQ3J5
cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyYsIGNvbnN0IENyeXB0b0tleUhNQUMmLCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2Fs
bGJhY2ssIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHBsYXRmb3JtVmVyaWZ5KGNvbnN0IENy
eXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlITUFDJiwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBk
YXRhLCBCb29sQ2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlv
bkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHAKaW5kZXggZTVk
YTdhMGFmMGQwODczYzMyY2I2ZmMyNzlkYmUzMTkzZWI2MzkwNy4uM2ZiMGY0OTQ3ZGRiYmRjNzll
NTQ2M2I0NTlkYzhhOGJiNzFhM2VmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFf
djFfNS5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFf
NTo6fkNyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUoKQogCiBzdGQ6OnVuaXF1ZV9wdHI8
Q3J5cHRvQWxnb3JpdGhtPiBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81OjpjcmVhdGUo
KQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtPihuZXcgQ3J5
cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNT4oKTsKIH0KIAogQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81OjppZGVudGlmaWVy
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaAppbmRleCBhMDA1Njlm
OGI4MzdhNDlmYjQ0N2MyZTg3MTMzZGZjNTEwODUzNzVkLi41YzhiMjg3M2QwZmI1OWFjYTZmYjU0
YTEyMTY5ODY2MDAzNTI4ZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5o
CkBAIC00MCw2ICs0MCw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgY2hhciogY29uc3Qg
c19uYW1lOwogICAgIHN0YXRpYyBjb25zdCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRl
bnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU7CiAK
KyAgICBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81KCk7CisgICAgdmlydHVhbCB+Q3J5
cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNSgpOworCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCiAgICAgdmlydHVhbCBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlkZTsKQEAgLTUwLDkgKzUz
LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29sIGV4dHJhY3RhYmxl
LCBDcnlwdG9LZXlVc2FnZSwgS2V5Q2FsbGJhY2ssIFZvaWRDYWxsYmFjayBmYWlsdXJlQ2FsbGJh
Y2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBDcnlwdG9BbGdv
cml0aG1SU0FFU19QS0NTMV92MV81KCk7Ci0gICAgdmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtUlNB
RVNfUEtDUzFfdjFfNSgpOwotCiAgICAgYm9vbCBrZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENy
eXB0b0tleSYpIGNvbnN0OwogICAgIHZvaWQgcGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0tl
eVJTQSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjaywgVm9pZENh
bGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgcGxhdGZv
cm1EZWNyeXB0KGNvbnN0IENyeXB0b0tleVJTQSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEm
LCBWZWN0b3JDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9u
Q29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwCmluZGV4IDBh
NDc3ZmY5NmU5NmRmZTljMzk0MGQyZWY5NzllZjgzZTJkNDFkOTkuLmFkN2MxY2YzMDk4M2ZjZmQ5
YjllYjNhYjM5MWYxOTE0NzFkZDI5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtD
UzFfdjFfNS5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzU6On5DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNSgpCiAKIHN0ZDo6dW5pcXVl
X3B0cjxDcnlwdG9BbGdvcml0aG0+IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Ojpj
cmVhdGUoKQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtPihu
ZXcgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUpOworICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81PigpOwogfQogCiBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Ojpp
ZGVudGlmaWVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCmlu
ZGV4IDc4ZWU4NzQxZTZjMWRiNWE4ZmViMzk0YzYxODRiMzAyZGJiMjFhZTUuLjQ2ODZiNzNlNDM5
M2ZhOGZmNDBmMWE1MTAxOTAzOWQ2MWIzNWUyNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NB
X1BLQ1MxX3YxXzUuaApAQCAtNDAsNiArNDAsOSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0
IGNoYXIqIGNvbnN0IHNfbmFtZTsKICAgICBzdGF0aWMgY29uc3QgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FTU0Ff
UEtDUzFfdjFfNTsKIAorICAgIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81KCk7Cisg
ICAgdmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUoKTsKKwogICAgIHN0
YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIAogICAgIHZp
cnR1YWwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3Qgb3ZlcnJp
ZGU7CkBAIC01MCw5ICs1Myw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgaW1wb3J0S2V5
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwg
Ym9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2UsIEtleUNhbGxiYWNrLCBWb2lkQ2FsbGJh
Y2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6
Ci0gICAgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUoKTsKLSAgICB2aXJ0dWFsIH5D
cnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNSgpOwotCiAgICAgYm9vbCBrZXlBbGdvcml0
aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcyYgYWxnb3JpdGhtUGFy
YW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JikgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9ybVNpZ24o
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5UlNBJiwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sg
ZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBwbGF0Zm9ybVZlcmlm
eShjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMmLCBjb25zdCBDcnlwdG9LZXlSU0Em
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFj
aywgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuY3BwCmluZGV4IDIyMTc2ZmJj
M2U0MDljMzNmOTljYjkzYTZjNjdjMDc1ZjI2MjE1N2UuLmE2MTZjOGUwYmU2ZWZlNDY1YmM3Nzkz
MTM4ZGI5MjQ1MGFhY2IwMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5jcHAKQEAgLTQ5LDcgKzQ5
LDcgQEAgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6On5DcnlwdG9BbGdvcml0aG1SU0FfT0FFUCgp
CiAKIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+IENyeXB0b0FsZ29yaXRobVJTQV9P
QUVQOjpjcmVhdGUoKQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3Jp
dGhtPihuZXcgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVApOworICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPENyeXB0b0FsZ29yaXRobVJTQV9PQUVQPigpOwogfQogCiBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjppZGVudGlmaWVyKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVJTQV9PQUVQLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1SU0FfT0FFUC5oCmluZGV4IDNmZWE2NTQzZDVkMDRiNWRmMjM5ZDU4Y2M2OWE2NzU2Yzcz
YTFmZjMuLmIxMTIxODkzZDYxZmE1YTcwMzk4NzQ4ZWE0YWM5Y2YwMjE0YWZiZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9P
QUVQLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtUlNBX09BRVAuaApAQCAtNDIsNiArNDIsOSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKKyAgICBDcnlwdG9BbGdv
cml0aG1SU0FfT0FFUCgpOworICAgIHZpcnR1YWwgfkNyeXB0b0FsZ29yaXRobVJTQV9PQUVQKCk7
CisKICAgICB2aXJ0dWFsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNv
bnN0IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGVuY3J5cHQoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmLCBWZWN0b3JDYWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhj
ZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwpAQCAtNTAsOSArNTMsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29u
c3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBLZXlD
YWxsYmFjaywgVm9pZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpIG92
ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQKCk7Ci0gICAg
dmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtUlNBX09BRVAoKTsKLQogICAgIGJvb2wga2V5QWxnb3Jp
dGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zJiBhbGdvcml0aG1Q
YXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmKSBjb25zdDsKICAgICB2b2lkIHBsYXRmb3JtRW5j
cnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zJiwgY29uc3QgQ3J5cHRvS2V5
UlNBJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrLCBWb2lkQ2Fs
bGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBwbGF0Zm9y
bURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcyYsIGNvbnN0IENyeXB0
b0tleVJTQSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjaywgVm9p
ZENhbGxiYWNrIGZhaWx1cmVDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNw
cAppbmRleCA1OWZkM2U4NTVjMGFmYjA4ODVkNWFjYjc1NjQyNmJhMGMwY2JkYWVmLi41ZmY1NzZi
Mjk2NmM1YTNiYzZhYzJmNzliOGQ2NzFlNGQ0YWMwMWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcApAQCAt
NDQsNyArNDQsNyBAQCBDcnlwdG9BbGdvcml0aG1TSEExOjp+Q3J5cHRvQWxnb3JpdGhtU0hBMSgp
CiAKIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+IENyeXB0b0FsZ29yaXRobVNIQTE6
OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+
KG5ldyBDcnlwdG9BbGdvcml0aG1TSEExKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxD
cnlwdG9BbGdvcml0aG1TSEExPigpOwogfQogCiBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIENy
eXB0b0FsZ29yaXRobVNIQTE6OmlkZW50aWZpZXIoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oCmluZGV4IGNl
Y2VhZWU0MDNkZmY3Mzg4MDRkNDA5NWZkYTY3YjcxYTVkMTFkMjguLjIzN2UyOTg3NGU1NmQyMzk4
ODZhOTUyZGI5YTRlZjM3NDUzM2VlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmgKQEAgLTM3LDE1ICszNywxNCBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNfbmFtZTsKICAgICBzdGF0
aWMgY29uc3QgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMTsKIAorICAgIENyeXB0b0FsZ29yaXRobVNIQTEoKTsK
KyAgICB2aXJ0dWFsIH5DcnlwdG9BbGdvcml0aG1TSEExKCk7CisKICAgICBzdGF0aWMgc3RkOjp1
bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKICAgICB2aXJ0dWFsIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
dmlydHVhbCB2b2lkIGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29u
c3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFp
bHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAg
Q3J5cHRvQWxnb3JpdGhtU0hBMSgpOwotICAgIHZpcnR1YWwgfkNyeXB0b0FsZ29yaXRobVNIQTEo
KTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVNIQTIyNC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwCmluZGV4IDQ0MjRkYjcxODMwNmM3ZTRkMWMx
MDFmOWI4ZGY3NTA0M2ZmM2YyMDAuLjM4MGE0MWJkYjM0ZWI0ZjNlNzUyYTg0NDFmY2VkNTIyZTli
MTgzOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVNIQTIyNC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmNwcApAQCAtNDQsNyArNDQsNyBAQCBDcnlwdG9BbGdv
cml0aG1TSEEyMjQ6On5DcnlwdG9BbGdvcml0aG1TSEEyMjQoKQogCiBzdGQ6OnVuaXF1ZV9wdHI8
Q3J5cHRvQWxnb3JpdGhtPiBDcnlwdG9BbGdvcml0aG1TSEEyMjQ6OmNyZWF0ZSgpCiB7Ci0gICAg
cmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+KG5ldyBDcnlwdG9BbGdvcml0
aG1TSEEyMjQpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyeXB0b0FsZ29yaXRobVNI
QTIyND4oKTsKIH0KIAogQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBDcnlwdG9BbGdvcml0aG1T
SEEyMjQ6OmlkZW50aWZpZXIoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmggYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaAppbmRleCBjMWFjYmFmNDc4
ODcyYzZiMWNmMzk3YTQ5NDUzZDYxNDdlYTQxOTA1Li5lNWZjYTA5MDY3MDhhZTYxNTA1NzQ3ZmUw
MWY4MGE4YmViYjAzNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaApAQCAtNDMsNyArNDMsNiBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2ssIFZvaWRD
YWxsYmFjayBmYWlsdXJlQ2FsbGJhY2ssIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZTsKIAotcHJp
dmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1TSEEyMjQoKTsKICAgICB2aXJ0dWFsIH5DcnlwdG9B
bGdvcml0aG1TSEEyMjQoKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmNwcAppbmRleCBiNDg1OGI0OTAx
YmRlNjBhM2ExZjQ3OGM0ZjBmNDQ4MzEwMzdjMDFhLi42NDZmZWNkNzhhYzJkOTg0ZDdlYjgxOWQ1
NGE1MmM2NDMyOGVmMjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAg
Q3J5cHRvQWxnb3JpdGhtU0hBMjU2Ojp+Q3J5cHRvQWxnb3JpdGhtU0hBMjU2KCkKIAogc3RkOjp1
bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4gQ3J5cHRvQWxnb3JpdGhtU0hBMjU2OjpjcmVhdGUo
KQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtPihuZXcgQ3J5
cHRvQWxnb3JpdGhtU0hBMjU2KTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcnlwdG9B
bGdvcml0aG1TSEEyNTY+KCk7CiB9CiAKIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgQ3J5cHRv
QWxnb3JpdGhtU0hBMjU2OjppZGVudGlmaWVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmgKaW5kZXgg
OTRiMDgwNDVjYzEyMjhlMTRiODNkMDM3ZjgyMzM2MTMwNzY5ODZkOS4uNzM3NDFiYzY1NDYyMzcz
MWE3NTNjY2ZmODU0ZWRhZWZhZWZmZGEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmgKQEAgLTM3LDE1ICsz
NywxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNfbmFtZTsKICAg
ICBzdGF0aWMgY29uc3QgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjU2OwogCisgICAgQ3J5cHRvQWxnb3JpdGht
U0hBMjU2KCk7CisgICAgdmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtU0hBMjU2KCk7CisKICAgICBz
dGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKICAgICB2
aXJ0dWFsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrLCBWb2lk
Q2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7Ci0KLXBy
aXZhdGU6Ci0gICAgQ3J5cHRvQWxnb3JpdGhtU0hBMjU2KCk7Ci0gICAgdmlydHVhbCB+Q3J5cHRv
QWxnb3JpdGhtU0hBMjU2KCk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmNwcAppbmRleCAwMDUw
MmQxMzFhMzBlZmIxOWZmNzQzNTc4MjVlM2JlNDM2MjMxN2YwLi44ODIxZWVjYjUxOTU1NTIwZTI0
OTk2MGU2NTBhZTdhNDM2MzEwMzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5jcHAKQEAgLTQ0LDcgKzQ0
LDcgQEAgQ3J5cHRvQWxnb3JpdGhtU0hBMzg0Ojp+Q3J5cHRvQWxnb3JpdGhtU0hBMzg0KCkKIAog
c3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4gQ3J5cHRvQWxnb3JpdGhtU0hBMzg0Ojpj
cmVhdGUoKQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtPihu
ZXcgQ3J5cHRvQWxnb3JpdGhtU0hBMzg0KTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxD
cnlwdG9BbGdvcml0aG1TSEEzODQ+KCk7CiB9CiAKIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
Q3J5cHRvQWxnb3JpdGhtU0hBMzg0OjppZGVudGlmaWVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5oIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmgK
aW5kZXggNmY4NmNkOGMxYjUwM2M4NDFhNDdjNGI2MzliMDAxMGQyYmQ1OTRhMy4uMTU2NWY3N2Y5
MDE0NGIyYzE0OGY1NmM0M2UyOWRhMjcyODc2NjcyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmgKQEAgLTM3
LDE1ICszNywxNSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHNfbmFt
ZTsKICAgICBzdGF0aWMgY29uc3QgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZp
ZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMzg0OwogCisgICAgQ3J5cHRvQWxn
b3JpdGhtU0hBMzg0KCk7CisgICAgdmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtU0hBMzg0KCk7CisK
ICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAK
ICAgICB2aXJ0dWFsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNr
LCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3ZlcnJpZGU7
CiAKLXByaXZhdGU6Ci0gICAgQ3J5cHRvQWxnb3JpdGhtU0hBMzg0KCk7Ci0gICAgdmlydHVhbCB+
Q3J5cHRvQWxnb3JpdGhtU0hBMzg0KCk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNwcAppbmRl
eCAxZDNhMGUyNTA4Yzg0NWE0M2I1NmRiYWYwMGU5MzFkMmIwOThkYjQxLi5lZGNlNTFmMGI1MmJl
MTgzMjZhYjk0ZjkyZmVmNmQ4YjVkYjljNjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5jcHAKQEAgLTQ0
LDcgKzQ0LDcgQEAgQ3J5cHRvQWxnb3JpdGhtU0hBNTEyOjp+Q3J5cHRvQWxnb3JpdGhtU0hBNTEy
KCkKIAogc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4gQ3J5cHRvQWxnb3JpdGhtU0hB
NTEyOjpjcmVhdGUoKQogewotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3Jp
dGhtPihuZXcgQ3J5cHRvQWxnb3JpdGhtU0hBNTEyKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxDcnlwdG9BbGdvcml0aG1TSEE1MTI+KCk7CiB9CiAKIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgQ3J5cHRvQWxnb3JpdGhtU0hBNTEyOjppZGVudGlmaWVyKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUx
Mi5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hB
NTEyLmgKaW5kZXggNDYxZDAxZjE2Y2JkN2I3ZTZiZWQ4OWQ2OTUxY2QwMDQwM2Y3ZjZiMS4uNTg2
ODBmNDA2YzUxODM0NjI2MjI1NzRlMmM0NTM3ZGZlMjE4NjRhOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmgK
QEAgLTM3LDE1ICszNywxNCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0
IHNfbmFtZTsKICAgICBzdGF0aWMgY29uc3QgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lk
ZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfNTEyOwogCisgICAgQ3J5
cHRvQWxnb3JpdGhtU0hBNTEyKCk7CisgICAgdmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtU0hBNTEy
KCk7CisKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobT4gY3JlYXRl
KCk7CiAKICAgICB2aXJ0dWFsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllcigp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZ2VzdChjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNh
bGxiYWNrLCBWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrLCBFeGNlcHRpb25Db2RlJikgb3Zl
cnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAgQ3J5cHRvQWxnb3JpdGhtU0hBNTEyKCk7Ci0gICAgdmly
dHVhbCB+Q3J5cHRvQWxnb3JpdGhtU0hBNTEyKCk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaAppbmRl
eCBmODE4MGUyODg0Y2ZkODExNTM0NjFmNWU5NTdhZjA2YWM4YmEyYjg0Li4wNThjZmY3ZWUxNDBl
YzE5MWExNDU2NmQzOTVmNzRlNTYxNjc3ZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmgKQEAgLTQ2LDE5ICs0
NiwyMyBAQCBwdWJsaWM6CiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBmYWN0b3JDUlRDb2VmZmlj
aWVudDsKICAgICB9OwogCisgICAgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMoY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiBtb2R1bHVzLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGV4cG9uZW50KTsK
KyAgICBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyhjb25zdCBWZWN0b3I8dWludDhfdD4mIG1v
ZHVsdXMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZXhwb25lbnQsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgcHJpdmF0ZUV4cG9uZW50KTsKKyAgICBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyhj
b25zdCBWZWN0b3I8dWludDhfdD4mIG1vZHVsdXMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZXhw
b25lbnQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcHJpdmF0ZUV4cG9uZW50LCBjb25zdCBQcmlt
ZUluZm8mIGZpcnN0UHJpbWVJbmZvLCBjb25zdCBQcmltZUluZm8mIHNlY29uZFByaW1lSW5mbywg
Y29uc3QgVmVjdG9yPFByaW1lSW5mbz4mIG90aGVyUHJpbWVJbmZvcyk7CisKICAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzPiBjcmVhdGVQdWJsaWMo
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBtb2R1bHVzLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGV4
cG9uZW50KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlE
YXRhUlNBQ29tcG9uZW50cz4obmV3IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzKG1vZHVsdXMs
IGV4cG9uZW50KSk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyeXB0b0tleURh
dGFSU0FDb21wb25lbnRzPihtb2R1bHVzLCBleHBvbmVudCk7CiAgICAgfQogCiAgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cz4gY3JlYXRlUHJpdmF0
ZShjb25zdCBWZWN0b3I8dWludDhfdD4mIG1vZHVsdXMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
ZXhwb25lbnQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcHJpdmF0ZUV4cG9uZW50KQogICAgIHsK
LSAgICAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50
cz4obmV3IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzKG1vZHVsdXMsIGV4cG9uZW50LCBwcml2
YXRlRXhwb25lbnQpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q3J5cHRvS2V5
RGF0YVJTQUNvbXBvbmVudHM+KG1vZHVsdXMsIGV4cG9uZW50LCBwcml2YXRlRXhwb25lbnQpOwog
ICAgIH0KIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YVJTQUNvbXBv
bmVudHM+IGNyZWF0ZVByaXZhdGVXaXRoQWRkaXRpb25hbERhdGEoY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiBtb2R1bHVzLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGV4cG9uZW50LCBjb25zdCBWZWN0
b3I8dWludDhfdD4mIHByaXZhdGVFeHBvbmVudCwgY29uc3QgUHJpbWVJbmZvJiBmaXJzdFByaW1l
SW5mbywgY29uc3QgUHJpbWVJbmZvJiBzZWNvbmRQcmltZUluZm8sIGNvbnN0IFZlY3RvcjxQcmlt
ZUluZm8+JiBvdGhlclByaW1lSW5mb3MpCiAgICAgewotICAgICAgICByZXR1cm4gc3RkOjp1bmlx
dWVfcHRyPENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzPihuZXcgQ3J5cHRvS2V5RGF0YVJTQUNv
bXBvbmVudHMobW9kdWx1cywgZXhwb25lbnQsIHByaXZhdGVFeHBvbmVudCwgZmlyc3RQcmltZUlu
Zm8sIHNlY29uZFByaW1lSW5mbywgb3RoZXJQcmltZUluZm9zKSk7CisgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzPihtb2R1bHVzLCBleHBv
bmVudCwgcHJpdmF0ZUV4cG9uZW50LCBmaXJzdFByaW1lSW5mbywgc2Vjb25kUHJpbWVJbmZvLCBv
dGhlclByaW1lSW5mb3MpOwogICAgIH0KIAogICAgIHZpcnR1YWwgfkNyeXB0b0tleURhdGFSU0FD
b21wb25lbnRzKCk7CkBAIC03NywxMCArODEsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgVmVjdG9y
PFByaW1lSW5mbz4mIG90aGVyUHJpbWVJbmZvcygpIGNvbnN0IHsgcmV0dXJuIG1fb3RoZXJQcmlt
ZUluZm9zOyB9CiAKIHByaXZhdGU6Ci0gICAgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMoY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBtb2R1bHVzLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGV4cG9u
ZW50KTsKLSAgICBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyhjb25zdCBWZWN0b3I8dWludDhf
dD4mIG1vZHVsdXMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZXhwb25lbnQsIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgcHJpdmF0ZUV4cG9uZW50KTsKLSAgICBDcnlwdG9LZXlEYXRhUlNBQ29tcG9u
ZW50cyhjb25zdCBWZWN0b3I8dWludDhfdD4mIG1vZHVsdXMsIGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgZXhwb25lbnQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcHJpdmF0ZUV4cG9uZW50LCBjb25z
dCBQcmltZUluZm8mIGZpcnN0UHJpbWVJbmZvLCBjb25zdCBQcmltZUluZm8mIHNlY29uZFByaW1l
SW5mbywgY29uc3QgVmVjdG9yPFByaW1lSW5mbz4mIG90aGVyUHJpbWVJbmZvcyk7Ci0KICAgICBU
eXBlIG1fdHlwZTsKIAogICAgIC8vIFByaXZhdGUgYW5kIHB1YmxpYyBrZXlzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5o
CmluZGV4IDhjOTY4YTlmODJiODg1ZmJhZmIwNGI0ZmYyYjExYjVkZGM0Y2EwYzIuLmM5YTczMzlh
ZjU1MmU2Y2ZiNmI1NmY2MTFjY2JmYTFiNTNiNDQ2YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmgKQEAgLTQxLDE2
ICs0MSwxNSBAQCBjbGFzcyBDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3IGZpbmFsIDogcHVibGlj
IENyeXB0b0tleVNlcmlhbGl6YXRpb24gewogcHVibGljOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8Q3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdz4gY3JlYXRlKGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmIGRhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPENy
eXB0b0tleVNlcmlhbGl6YXRpb25SYXc+KG5ldyBDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3KGRh
dGEpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q3J5cHRvS2V5U2VyaWFsaXph
dGlvblJhdz4oZGF0YSk7CiAgICAgfQogCisgICAgZXhwbGljaXQgQ3J5cHRvS2V5U2VyaWFsaXph
dGlvblJhdyhjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJik7CiAgICAgdmlydHVhbCB+Q3J5cHRv
S2V5U2VyaWFsaXphdGlvblJhdygpOwogCiAgICAgc3RhdGljIGJvb2wgc2VyaWFsaXplKGNvbnN0
IENyeXB0b0tleSYsIFZlY3Rvcjx1aW50OF90PiYpOwogCiBwcml2YXRlOgotICAgIENyeXB0b0tl
eVNlcmlhbGl6YXRpb25SYXcoY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYpOwotCiAgICAgdmly
dHVhbCBib29sIHJlY29uY2lsZUFsZ29yaXRobShzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3Jp
dGhtPiYsIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiYpIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHJlY29uY2lsZVVzYWdlcyhDcnlwdG9LZXlV
c2FnZSYpIGNvbnN0IG92ZXJyaWRlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>