<?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>29170</bug_id>
          
          <creation_ts>2009-09-11 01:00:36 -0700</creation_ts>
          <short_desc>[ES5] Implement Object.keys</short_desc>
          <delta_ts>2009-09-12 19:45:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>146479</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-11 01:00:36 -0700</bug_when>
    <thetext>ES5 Section 15.2.3.14
&lt;rdar://bugs/7214212&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146959</commentid>
    <comment_count>1</comment_count>
      <attachid>39520</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-12 17:43:07 -0700</bug_when>
    <thetext>Created attachment 39520
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146962</commentid>
    <comment_count>2</comment_count>
      <attachid>39520</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-09-12 18:27:16 -0700</bug_when>
    <thetext>Comment on attachment 39520
Patch v1

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146971</commentid>
    <comment_count>3</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-09-12 19:45:31 -0700</bug_when>
    <thetext>Landed r48336</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39520</attachid>
            <date>2009-09-12 17:43:07 -0700</date>
            <delta_ts>2009-09-12 18:27:16 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-29170-20090912174306.patch</filename>
            <type>text/plain</type>
            <size>45470</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmggYi9KYXZh
U2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdC5oCmluZGV4IDlkMjJhZDkuLjQ3ZmQ2YzMg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKKysrIGIv
SmF2YVNjcmlwdENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3QuaApAQCAtNjYsNyArNjYsNyBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGhhc0luc3RhbmNlKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSB2YWx1ZSwgSlNWYWx1ZSBwcm90byk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJv
cGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgIHZpcnR1YWwg
dm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7
CiAKICAgICB2aXJ0dWFsIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUqKSBjb25zdDsKICAgICB2
aXJ0dWFsIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0aW9ucy5oIGIvSmF2YVNjcmlw
dENvcmUvQVBJL0pTQ2FsbGJhY2tPYmplY3RGdW5jdGlvbnMuaAppbmRleCAxYWJlZDNmLi40ZDEx
M2ZlIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNDYWxsYmFja09iamVjdEZ1bmN0
aW9ucy5oCisrKyBiL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0RnVuY3Rpb25z
LmgKQEAgLTM3Myw3ICszNzMsNyBAQCBKU1ZhbHVlIEpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OmNh
bGwoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogZnVuY3Rpb25PYmplY3QsCiB9CiAKIHRlbXBs
YXRlIDxjbGFzcyBCYXNlPgotdm9pZCBKU0NhbGxiYWNrT2JqZWN0PEJhc2U+OjpnZXRQcm9wZXJ0
eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMp
Cit2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8QmFzZT46OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKIHsKICAgICBKU0Nv
bnRleHRSZWYgZXhlY1JlZiA9IHRvUmVmKGV4ZWMpOwogICAgIEpTT2JqZWN0UmVmIHRoaXNSZWYg
PSB0b1JlZih0aGlzKTsKQEAgLTQwNyw3ICs0MDcsNyBAQCB2b2lkIEpTQ2FsbGJhY2tPYmplY3Q8
QmFzZT46OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJh
eQogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIEJhc2U6OmdldFByb3BlcnR5TmFtZXMoZXhl
YywgcHJvcGVydHlOYW1lcyk7CisgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBw
cm9wZXJ0eU5hbWVzKTsKIH0KIAogdGVtcGxhdGUgPGNsYXNzIEJhc2U+CmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTJlMTQ4Zi4uZTYzMDE1MCAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisr
KyBiL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDA5LTA5LTEy
ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0VTNV0gSW1wbGVtZW50IE9iamVjdC5rZXlzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTE3MAorCisg
ICAgICAgIFRoaXMgcGF0Y2ggYmFzaWNhbGx5IHJlcXVpcmVzIHR3byBzZXBhcmF0ZSBzdGVwcywg
dGhlIGZpcnN0IGlzIHRvIHNwbGl0IGdldFByb3BlcnR5TmFtZXMKKyAgICAgICAgaW50byB0d28g
ZnVuY3Rpb25zIC0tIGdldE93blByb3BlcnR5TmFtZXMgYW5kIGdldFByb3BlcnR5TmFtZXMsIGJh
c2ljYWxseSBtYWtpbmcgdGhlbSBiZWhhdmUKKyAgICAgICAgaW4gdGhlIHNhbWUgd2F5IGFzIGdl
dE93blByb3BlcnR5U2xvdCBhbmQgZ2V0UHJvcGVydHlTbG90LiAgSW4gZXNzZW5jZSBnZXRPd25Q
cm9wZXJ0eU5hbWVzCisgICAgICAgIHByb2R1Y2VzIHRoZSBsaXN0IG9mIHByb3BlcnRpZXMgb24g
YW4gb2JqZWN0IGV4Y2x1ZGluZyBpdHMgcHJvdG90eXBlIGNoYWluIGFuZCBnZXRQcm9wZXJ0eU5h
bWVzCisgICAgICAgIGp1c3QgaXRlcmF0ZXMgdGhlIHRoZSBvYmplY3QgYW5kIGl0cyBwcm90b3R5
cGUgY2hhaW4gY2FsbGluZyBnZXRPd25Qcm9wZXJ0eU5hbWVzIGF0IGVhY2ggbGV2ZWwuCisKKyAg
ICAgICAgKiBBUEkvSlNDYWxsYmFja09iamVjdC5oOgorICAgICAgICAqIEFQSS9KU0NhbGxiYWNr
T2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgIChKU0M6Ojo6Z2V0T3duUHJvcGVydHlOYW1lcyk6
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIGRlYnVnZ2VyL0RlYnVn
Z2VyQWN0aXZhdGlvbi5jcHA6CisgICAgICAgIChKU0M6OkRlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0
T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9u
Lmg6CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OkpTQXJyYXk6OmdldE93blByb3BlcnR5
TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5oOgorICAgICAgICAqIHJ1bnRpbWUv
SlNCeXRlQXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpKU0J5dGVBcnJheTo6Z2V0T3duUHJvcGVy
dHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9KU0J5dGVBcnJheS5oOgorICAgICAgICAqIHJ1
bnRpbWUvSlNOb3RBbk9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTTm90QW5PYmplY3Q6Omdl
dE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNOb3RBbk9iamVjdC5oOgor
ICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9KU09iamVjdC5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OkpTVmFy
aWFibGVPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIHJ1bnRpbWUvSlNW
YXJpYWJsZU9iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoSlNDOjpPYmplY3RDb25zdHJ1Y3Rvcjo6T2JqZWN0Q29uc3RydWN0b3IpOgor
ICAgICAgICAoSlNDOjpvYmplY3RDb25zdHJ1Y3RvcktleXMpOgorICAgICAgICAqIHJ1bnRpbWUv
UmVnRXhwTWF0Y2hlc0FycmF5Lmg6CisgICAgICAgIChKU0M6OlJlZ0V4cE1hdGNoZXNBcnJheTo6
Z2V0T3duUHJvcGVydHlOYW1lcyk6CisgICAgICAgICogcnVudGltZS9TdHJpbmdPYmplY3QuY3Bw
OgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAg
ICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1
cmUuY3BwOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmU6OmdldE93bkVudW1lcmFibGVQcm9wZXJ0
eU5hbWVzKToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlOjpnZXRFbnVtZXJhYmxlUHJvcGVydHlO
YW1lcyk6CisgICAgICAgICogcnVudGltZS9TdHJ1Y3R1cmUuaDoKKwogMjAwOS0wOS0xMSAgT2xp
dmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBX
ZWluaWcuCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAgYi9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggY2Q4MGQ3NC4uMDc1MWNjYiAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCisrKyBiL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cApAQCAtMTEzLDkgKzExMyw5IEBAIF9fWk4zSlND
MTJTYW1wbGluZ1Rvb2w0ZHVtcEVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMTJTYW1wbGluZ1Rv
b2w1c2V0dXBFdgogX19aTjNKU0MxMlNtYWxsU3RyaW5nczE3Y3JlYXRlRW1wdHlTdHJpbmdFUE5T
XzEySlNHbG9iYWxEYXRhRQogX19aTjNKU0MxMlN0cmluZ09iamVjdDE0ZGVsZXRlUHJvcGVydHlF
UE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFCi1fX1pOM0pTQzEyU3RyaW5nT2JqZWN0
MTZnZXRQcm9wZXJ0eU5hbWVzRVBOU185RXhlY1N0YXRlRVJOU18xN1Byb3BlcnR5TmFtZUFycmF5
RQogX19aTjNKU0MxMlN0cmluZ09iamVjdDE4Z2V0T3duUHJvcGVydHlTbG90RVBOU185RXhlY1N0
YXRlRVJLTlNfMTBJZGVudGlmaWVyRVJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDMTJTdHJp
bmdPYmplY3QxOGdldE93blByb3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVy
dHlTbG90RQorX19aTjNKU0MxMlN0cmluZ09iamVjdDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNf
OUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUUKIF9fWk4zSlNDMTJTdHJpbmdPYmpl
Y3QyNGdldE93blByb3BlcnR5RGVzY3JpcHRvckVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRp
ZmllckVSTlNfMThQcm9wZXJ0eURlc2NyaXB0b3JFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0M3B1
dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQ
cm9wZXJ0eVNsb3RFCiBfX1pOM0pTQzEyU3RyaW5nT2JqZWN0NGluZm9FCkBAIC0xNDcsNyArMTQ3
LDcgQEAgX19aTjNKU0MxNkludGVybmFsRnVuY3Rpb240bmFtZUVQTlNfMTJKU0dsb2JhbERhdGFF
CiBfX1pOM0pTQzE2SW50ZXJuYWxGdW5jdGlvbkMyRVBOU18xMkpTR2xvYmFsRGF0YUVOM1dURjEw
UGFzc1JlZlB0cklOU185U3RydWN0dXJlRUVFUktOU18xMElkZW50aWZpZXJFCiBfX1pOM0pTQzE2
SlNWYXJpYWJsZU9iamVjdDE0ZGVsZXRlUHJvcGVydHlFUE5TXzlFeGVjU3RhdGVFUktOU18xMElk
ZW50aWZpZXJFCiBfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVjdDE0c3ltYm9sVGFibGVHZXRFUktO
U18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQotX19aTjNKU0MxNkpTVmFy
aWFibGVPYmplY3QxNmdldFByb3BlcnR5TmFtZXNFUE5TXzlFeGVjU3RhdGVFUk5TXzE3UHJvcGVy
dHlOYW1lQXJyYXlFCitfX1pOM0pTQzE2SlNWYXJpYWJsZU9iamVjdDE5Z2V0T3duUHJvcGVydHlO
YW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVBcnJheUUKIF9fWk4zSlNDMTZ0
b1VJbnQzMlNsb3dDYXNlRWRSYgogX19aTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yMjFzZXREdW1w
c0dlbmVyYXRlZENvZGVFYgogX19aTjNKU0MxN1Byb3BlcnR5TmFtZUFycmF5M2FkZEVQTlNfN1VT
dHJpbmczUmVwRQpAQCAtMjUwLDYgKzI1MCw3IEBAIF9fWk4zSlNDOEpTT2JqZWN0MTdwdXRXaXRo
QXR0cmlidXRlc0VQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRlbnRpZmllckVOU183SlNWYWx1CiBf
X1pOM0pTQzhKU09iamVjdDE3cHV0V2l0aEF0dHJpYnV0ZXNFUE5TXzlFeGVjU3RhdGVFak5TXzdK
U1ZhbHVlRWoKIF9fWk4zSlNDOEpTT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlFeGVj
U3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDOEpTT2JqZWN0MThnZXRQcmltaXRp
dmVOdW1iZXJFUE5TXzlFeGVjU3RhdGVFUmRSTlNfN0pTVmFsdWVFCitfX1pOM0pTQzhKU09iamVj
dDE5Z2V0T3duUHJvcGVydHlOYW1lc0VQTlNfOUV4ZWNTdGF0ZUVSTlNfMTdQcm9wZXJ0eU5hbWVB
cnJheUUKIF9fWk4zSlNDOEpTT2JqZWN0MjFnZXRQcm9wZXJ0eURlc2NyaXB0b3JFUE5TXzlFeGVj
U3RhdGVFUktOU18xMElkZW50aWZpZXJFUk5TXzE4UHJvcGVydHlEZXNjcmlwdG9yRQogX19aTjNK
U0M4SlNPYmplY3QyMmZpbGxHZXR0ZXJQcm9wZXJ0eVNsb3RFUk5TXzEyUHJvcGVydHlTbG90RVBO
U183SlNWYWx1ZUUgIAogX19aTjNKU0M4SlNPYmplY3QyM2FsbG9jYXRlUHJvcGVydHlTdG9yYWdl
RW1tCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRp
b24uY3BwIGIvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcApp
bmRleCAzNGQwNDQ3Li43YTY4ZDdkIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0Rl
YnVnZ2VyQWN0aXZhdGlvbi5jcHAKQEAgLTcxLDcgKzcxLDcgQEAgYm9vbCBEZWJ1Z2dlckFjdGl2
YXRpb246OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYg
cHJvcGUKICAgICByZXR1cm4gbV9hY3RpdmF0aW9uLT5kZWxldGVQcm9wZXJ0eShleGVjLCBwcm9w
ZXJ0eU5hbWUpOwogfQogCi12b2lkIERlYnVnZ2VyQWN0aXZhdGlvbjo6Z2V0UHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9p
ZCBEZWJ1Z2dlckFjdGl2YXRpb246OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVj
LCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKIHsKICAgICBtX2FjdGl2YXRpb24t
PmdldFByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CiB9CmRpZmYgLS1naXQgYS9K
YXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uaCBiL0phdmFTY3JpcHRD
b3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCmluZGV4IDc1MjVhOTYuLjA2YWVhNWEg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5o
CisrKyBiL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyQWN0aXZhdGlvbi5oCkBAIC00
Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4
ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSwgUHV0UHJv
cGVydHlTbG90Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRXaXRoQXR0cmlidXRlcyhFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIHVuc2lnbmVk
IGF0dHJpYnV0ZXMpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0
YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgdmlydHVhbCB2
b2lkIGdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVy
dHlOYW1lQXJyYXkmKTsKICAgICAgICAgdmlydHVhbCBib29sIGdldFByb3BlcnR5QXR0cmlidXRl
cyhFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkJiBh
dHRyaWJ1dGVzKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRlZmluZUdldHRlcihFeGVj
U3RhdGUqLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0KiBnZXR0ZXJG
dW5jdGlvbik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZWZpbmVTZXR0ZXIoRXhlY1N0YXRlKiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCogc2V0dGVyRnVuY3Rpb24p
OwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5o
IGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCmluZGV4IDhkNWQ1
N2EuLjg0OTNkNzMgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRl
bnRpZmllcnMuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJz
LmgKQEAgLTUzLDYgKzUzLDcgQEAKICAgICBtYWNybyhpbnB1dCkgXAogICAgIG1hY3JvKGlzQXJy
YXkpIFwKICAgICBtYWNybyhpc1Byb3RvdHlwZU9mKSBcCisgICAgbWFjcm8oa2V5cykgXAogICAg
IG1hY3JvKGxlbmd0aCkgXAogICAgIG1hY3JvKG1lc3NhZ2UpIFwKICAgICBtYWNybyhtdWx0aWxp
bmUpIFwKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAgYi9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuY3BwCmluZGV4IDRmYjg4NzAuLjFmY2NhODEg
MTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAKKysrIGIvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcApAQCAtNDY0LDcgKzQ2NCw3IEBAIGJvb2wg
SlNBcnJheTo6ZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpKQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBKU0FycmF5OjpnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIEpTQXJy
YXk6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJh
eSYgcHJvcGVydHlOYW1lcykKIHsKICAgICAvLyBGSVhNRTogRmlsbGluZyBQcm9wZXJ0eU5hbWVB
cnJheSB3aXRoIGFuIGlkZW50aWZpZXIgZm9yIGV2ZXJ5IGludGVnZXIKICAgICAvLyBpcyBpbmNy
ZWRpYmx5IGluZWZmaWNpZW50IGZvciBsYXJnZSBhcnJheXMuIFdlIG5lZWQgYSBkaWZmZXJlbnQg
YXBwcm9hY2gsCkBAIC00ODQsNyArNDg0LDcgQEAgdm9pZCBKU0FycmF5OjpnZXRQcm9wZXJ0eU5h
bWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMKICAg
ICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oZXhlYywgaXQtPmZp
cnN0KSk7CiAgICAgfQogCi0gICAgSlNPYmplY3Q6OmdldFByb3BlcnR5TmFtZXMoZXhlYywgcHJv
cGVydHlOYW1lcyk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJv
cGVydHlOYW1lcyk7CiB9CiAKIGJvb2wgSlNBcnJheTo6aW5jcmVhc2VWZWN0b3JMZW5ndGgodW5z
aWduZWQgbmV3TGVuZ3RoKQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Fy
cmF5LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAppbmRleCBlZDMwMmQ3Li40
ZjJmODZhIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAorKysg
Yi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaApAQCAtOTEsNyArOTEsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3BlcnR5U2xvdCYpOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRp
ZmllciYgcHJvcGVydHlOYW1lKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5
KEV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7Ci0gICAgICAgIHZpcnR1YWwgdm9p
ZCBnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZUFycmF5Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBtYXJrQ2hpbGRyZW4oTWFya1N0YWNr
Jik7CiAKICAgICAgICAgdm9pZCogbGF6eUNyZWF0aW9uRGF0YSgpOwpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQnl0ZUFycmF5LmNwcAppbmRleCBhMzBmMjM4Li40MjFjNDQwIDEwMDY0NAotLS0gYS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcAorKysgYi9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTQnl0ZUFycmF5LmNwcApAQCAtOTYsMTIgKzk2LDEyIEBAIHZvaWQgSlNCeXRl
QXJyYXk6OnB1dChFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSB2YWx1ZSkKICAgICBzZXRJbmRleChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKIH0KIAot
dm9pZCBKU0J5dGVBcnJheTo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBKU0J5dGVBcnJheTo6Z2V0T3duUHJv
cGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5h
bWVzKQogewogICAgIHVuc2lnbmVkIGxlbmd0aCA9IG1fc3RvcmFnZS0+bGVuZ3RoKCk7CiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAgICAgICBwcm9wZXJ0eU5h
bWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpKTsKLSAgICBKU09iamVjdDo6Z2V0UHJv
cGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJv
cGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0J5dGVBcnJheS5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0J5dGVBcnJheS5oCmluZGV4IDY2ZmI2N2UuLjAxNmM2NzcgMTAwNjQ0Ci0tLSBhL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNCeXRlQXJyYXkuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQnl0ZUFycmF5LmgKQEAgLTgyLDcgKzgyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBwdXQoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgcHV0KEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVy
dHlOYW1lLCBKU0M6OkpTVmFsdWUpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0
eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYpOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
UHJvcGVydHlOYW1lQXJyYXkmKTsKIAogICAgICAgICB2aXJ0dWFsIGNvbnN0IENsYXNzSW5mbyog
Y2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc0luZm87IH0KICAgICAgICAgc3RhdGlj
IGNvbnN0IENsYXNzSW5mbyBzX2RlZmF1bHRJbmZvOwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNO
b3RBbk9iamVjdC5jcHAKaW5kZXggZjk5ODJiOC4uYzM2ZGMxMCAxMDA2NDQKLS0tIGEvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmNwcAorKysgYi9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTTm90QW5PYmplY3QuY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgYm9vbCBKU05vdEFu
T2JqZWN0OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkKQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotdm9pZCBKU05vdEFuT2JqZWN0OjpnZXRQcm9wZXJ0eU5hbWVzKEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmKQordm9pZCBKU05vdEFuT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmKQog
ewogICAgIEFTU0VSVF9VTlVTRUQoZXhlYywgZXhlYy0+aGFkRXhjZXB0aW9uKCkgJiYgZXhlYy0+
ZXhjZXB0aW9uKCkgPT0gbV9leGNlcHRpb24pOwogfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU05vdEFuT2JqZWN0LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTm90
QW5PYmplY3QuaAppbmRleCBjMzk0OWQ4Li4wZDlhY2E2IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTTm90QW5PYmplY3QuaAorKysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTTm90QW5PYmplY3QuaApAQCAtODgsNyArODgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAg
ICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSosIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShF
eGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpOwogCi0gICAgICAgIHZpcnR1YWwgdm9p
ZCBnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAg
ICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5
TmFtZUFycmF5Jik7CiAKICAgICAgICAgSlNOb3RBbk9iamVjdEVycm9yU3R1YiogbV9leGNlcHRp
b247CiAgICAgfTsKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3Qu
Y3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKaW5kZXggNmMwMWE4NC4u
ZjkxMDYwMyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAK
KysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAKQEAgLTQyNyw2ICs0Mjcs
MTEgQEAgdm9pZCBKU09iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFBy
b3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWUKICAgICBtX3N0cnVjdHVyZS0+Z2V0RW51bWVy
YWJsZVByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgdGhpcyk7CiB9CiAKK3ZvaWQg
SlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3sKKyAgICBtX3N0cnVjdHVyZS0+Z2V0T3duRW51bWVy
YWJsZVByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcywgdGhpcyk7Cit9CisKIGJvb2wg
SlNPYmplY3Q6OnRvQm9vbGVhbihFeGVjU3RhdGUqKSBjb25zdAogewogICAgIHJldHVybiB0cnVl
OwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCmluZGV4IDc2ODZkZDMuLjlmNDRjMjQgMTAwNjQ0
Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAorKysgYi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTEyMyw2ICsxMjMsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgdmlydHVhbCBib29sIGhhc0luc3RhbmNlKEV4ZWNTdGF0ZSosIEpTVmFsdWUs
IEpTVmFsdWUgcHJvdG90eXBlUHJvcGVydHkpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQ
cm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFy
cmF5Jik7CiAKICAgICAgICAgdmlydHVhbCBKU1ZhbHVlIHRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSos
IFByZWZlcnJlZFByaW1pdGl2ZVR5cGUgPSBOb1ByZWZlcmVuY2UpIGNvbnN0OwogICAgICAgICB2
aXJ0dWFsIGJvb2wgZ2V0UHJpbWl0aXZlTnVtYmVyKEV4ZWNTdGF0ZSosIGRvdWJsZSYgbnVtYmVy
LCBKU1ZhbHVlJiB2YWx1ZSk7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
VmFyaWFibGVPYmplY3QuY3BwIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2Jq
ZWN0LmNwcAppbmRleCBhOTJlN2MwLi42NTg2MzkzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVmFyaWFibGVPYmplY3QuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNWYXJpYWJsZU9iamVjdC5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgYm9vbCBKU1ZhcmlhYmxl
T2JqZWN0OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXIm
IHByb3BlcnQKICAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KGV4ZWMsIHByb3Bl
cnR5TmFtZSk7CiB9CiAKLXZvaWQgSlNWYXJpYWJsZU9iamVjdDo6Z2V0UHJvcGVydHlOYW1lcyhF
eGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBK
U1ZhcmlhYmxlT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJv
cGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCiB7CiAgICAgU3ltYm9sVGFibGU6OmNvbnN0
X2l0ZXJhdG9yIGVuZCA9IHN5bWJvbFRhYmxlKCkuZW5kKCk7CiAgICAgZm9yIChTeW1ib2xUYWJs
ZTo6Y29uc3RfaXRlcmF0b3IgaXQgPSBzeW1ib2xUYWJsZSgpLmJlZ2luKCk7IGl0ICE9IGVuZDsg
KytpdCkgewpAQCAtNTAsNyArNTAsNyBAQCB2b2lkIEpTVmFyaWFibGVPYmplY3Q6OmdldFByb3Bl
cnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcAogICAgICAg
ICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcihleGVjLCBpdC0+Zmlyc3QuZ2V0KCkp
KTsKICAgICB9CiAgICAgCi0gICAgSlNPYmplY3Q6OmdldFByb3BlcnR5TmFtZXMoZXhlYywgcHJv
cGVydHlOYW1lcyk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJv
cGVydHlOYW1lcyk7CiB9CiAKIGJvb2wgSlNWYXJpYWJsZU9iamVjdDo6Z2V0UHJvcGVydHlBdHRy
aWJ1dGVzKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCB1
bnNpZ25lZCYgYXR0cmlidXRlcykgY29uc3QKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNWYXJpYWJsZU9iamVjdC5oIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Zhcmlh
YmxlT2JqZWN0LmgKaW5kZXggODY5OThlZC4uN2M4MGQzNiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1ZhcmlhYmxlT2JqZWN0LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXRXaXRoQXR0cmlidXRlcyhFeGVjU3RhdGUqLCBjb25z
dCBJZGVudGlmaWVyJiwgSlNWYWx1ZSwgdW5zaWduZWQgYXR0cmlidXRlcykgPSAwOwogCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqLCBjb25zdCBJZGVudGlm
aWVyJik7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSos
IFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0
eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7CiAgICAgICAgIAogICAgICAg
ICB2aXJ0dWFsIGJvb2wgaXNWYXJpYWJsZU9iamVjdCgpIGNvbnN0OwogICAgICAgICB2aXJ0dWFs
IGJvb2wgaXNEeW5hbWljU2NvcGUoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcCBiL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCmluZGV4IDVhMzRmMjAuLmFiNDQ3NjMgMTAwNjQ0Ci0t
LSBhL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCisrKyBiL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCkBAIC0zNCw2ICszNCw3
IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoT2JqZWN0Q29uc3RydWN0b3IpOwogCiBzdGF0
aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0UHJvdG90eXBlT2Yo
RXhlY1N0YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVlLCBjb25zdCBBcmdMaXN0Jik7CiBzdGF0aWMg
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgSlNWYWx1ZSwgY29uc3QgQXJnTGlzdCYpOwor
c3RhdGljIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvcktleXMoRXhlY1N0
YXRlKiwgSlNPYmplY3QqLCBKU1ZhbHVlLCBjb25zdCBBcmdMaXN0Jik7CiAKIE9iamVjdENvbnN0
cnVjdG9yOjpPYmplY3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBzdHJ1Y3R1cmUsIE9iamVjdFByb3RvdHlwZSogb2JqZWN0UHJvdG90eXBlLCBTdHJ1
Y3R1cmUqIHByb3RvdHlwZUZ1bmN0aW9uU3RydWN0dXJlKQogOiBJbnRlcm5hbEZ1bmN0aW9uKCZl
eGVjLT5nbG9iYWxEYXRhKCksIHN0cnVjdHVyZSwgSWRlbnRpZmllcihleGVjLCAiT2JqZWN0Iikp
CkBAIC00Niw2ICs0Nyw3IEBAIE9iamVjdENvbnN0cnVjdG9yOjpPYmplY3RDb25zdHJ1Y3RvcihF
eGVjU3RhdGUqIGV4ZWMsIFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1CiAgICAgCiAgICAgcHV0
RGlyZWN0RnVuY3Rpb25XaXRob3V0VHJhbnNpdGlvbihleGVjLCBuZXcgKGV4ZWMpIE5hdGl2ZUZ1
bmN0aW9uV3JhcHBlcihleGVjLCBwcm90b3R5cGVGdW5jdGlvblN0cnVjdHVyZSwgMSwgZXhlYy0+
cHJvcGVydHlOYW1lcygpLmdldFByb3RvdHlwZU9mLCBvYmplY3RDb25zdHJ1Y3RvckdldFByb3Rv
dHlwZU9mKSwgRG9udEVudW0pOwogICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRp
b24oZXhlYywgbmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgcHJvdG90eXBl
RnVuY3Rpb25TdHJ1Y3R1cmUsIDIsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IsIG9iamVjdENvbnN0cnVjdG9yR2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKSwg
RG9udEVudW0pOworICAgIHB1dERpcmVjdEZ1bmN0aW9uV2l0aG91dFRyYW5zaXRpb24oZXhlYywg
bmV3IChleGVjKSBOYXRpdmVGdW5jdGlvbldyYXBwZXIoZXhlYywgcHJvdG90eXBlRnVuY3Rpb25T
dHJ1Y3R1cmUsIDEsIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5rZXlzLCBvYmplY3RDb25zdHJ1Y3Rv
cktleXMpLCBEb250RW51bSk7CiB9CiAKIC8vIEVDTUEgMTUuMi4yCkBAIC0xMTYsNCArMTE4LDE3
IEBAIEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmplY3RDb25zdHJ1Y3RvckdldE93blByb3BlcnR5
RGVzY3JpcHRvcihFeGVjU3RhdGUqIGV4ZWMsCiAgICAgcmV0dXJuIGRlc2NyaXB0aW9uOwogfQog
CitKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0Q29uc3RydWN0b3JLZXlzKEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqLCBKU1ZhbHVlLCBjb25zdCBBcmdMaXN0JiBhcmdzKQoreworICAgIGlm
ICghYXJncy5hdCgwKS5pc09iamVjdCgpKQorICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVj
LCBUeXBlRXJyb3IsICJSZXF1ZXN0ZWQga2V5cyBvZiBhIHZhbHVlIHRoYXQgaXMgbm90IGFuIG9i
amVjdC4iKTsKKyAgICBQcm9wZXJ0eU5hbWVBcnJheSBwcm9wZXJ0aWVzKGV4ZWMpOworICAgIGFz
T2JqZWN0KGFyZ3MuYXQoMCkpLT5nZXRPd25Qcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnRpZXMp
OworICAgIEpTQXJyYXkqIGtleXMgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMpOworICAgIHNp
emVfdCBudW1Qcm9wZXJ0aWVzID0gcHJvcGVydGllcy5zaXplKCk7CisgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBudW1Qcm9wZXJ0aWVzOyBpKyspCisgICAgICAgIGtleXMtPnB1c2goZXhlYywg
anNPd25lZFN0cmluZyhleGVjLCBwcm9wZXJ0aWVzW2ldLnVzdHJpbmcoKSkpOworICAgIHJldHVy
biBrZXlzOworfQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmggYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1JlZ0V4cE1hdGNoZXNBcnJheS5oCmluZGV4IDQ0NDhmNTcuLjgyOWY3Y2YgMTAwNjQ0Ci0tLSBh
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwTWF0Y2hlc0FycmF5LmgKKysrIGIvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9SZWdFeHBNYXRjaGVzQXJyYXkuaApAQCAtNzksMTEgKzc5LDExIEBA
IG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIEpTQXJyYXk6OmRlbGV0ZVByb3Bl
cnR5KGV4ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgICAgIH0KIAotICAgICAgICB2aXJ0dWFsIHZv
aWQgZ2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBh
cnIpCisgICAgICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSog
ZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIGFycikKICAgICAgICAgewogICAgICAgICAgICAgaWYg
KGxhenlDcmVhdGlvbkRhdGEoKSkKICAgICAgICAgICAgICAgICBmaWxsQXJyYXlJbnN0YW5jZShl
eGVjKTsKLSAgICAgICAgICAgIEpTQXJyYXk6OmdldFByb3BlcnR5TmFtZXMoZXhlYywgYXJyKTsK
KyAgICAgICAgICAgIEpTQXJyYXk6OmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgYXJyKTsKICAg
ICAgICAgfQogCiAgICAgICAgIHZvaWQgZmlsbEFycmF5SW5zdGFuY2UoRXhlY1N0YXRlKik7CmRp
ZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAgYi9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKaW5kZXggNmI3ZGQ2Ny4uNDY1NDM1
YyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCisr
KyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcApAQCAtODIsMTIgKzgy
LDEyIEBAIGJvb2wgU3RyaW5nT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtCiAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxl
dGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCi12b2lkIFN0cmluZ09iamVjdDo6
Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9w
ZXJ0eU5hbWVzKQordm9pZCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKIHsKICAgICBpbnQg
c2l6ZSA9IGludGVybmFsVmFsdWUoKS0+dmFsdWUoKS5zaXplKCk7CiAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBzaXplOyArK2kpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXIo
ZXhlYywgVVN0cmluZzo6ZnJvbShpKSkpOwotICAgIHJldHVybiBKU09iamVjdDo6Z2V0UHJvcGVy
dHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93
blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaCBi
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmgKaW5kZXggY2ViMzA3YS4uNWE4
ODlkYSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAor
KysgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCkBAIC0zOSw3ICszOSw3
IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoRXhlY1N0YXRl
KiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKTsKLSAgICAgICAgdmlydHVhbCB2b2lk
IGdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlO
YW1lQXJyYXkmKTsKIAogICAgICAgICB2aXJ0dWFsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZv
KCkgY29uc3QgeyByZXR1cm4gJmluZm87IH0KICAgICAgICAgc3RhdGljIGNvbnN0IEpTX0VYUE9S
VERBVEEgQ2xhc3NJbmZvIGluZm87CmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cnVjdHVyZS5jcHAgYi9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5jcHAKaW5k
ZXggY2FhZDk5My4uZjQwOTk4OSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9T
dHJ1Y3R1cmUuY3BwCisrKyBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcApA
QCAtMjczLDYgKzI3MywxMiBAQCB2b2lkIFN0cnVjdHVyZTo6bWF0ZXJpYWxpemVQcm9wZXJ0eU1h
cCgpCiAgICAgfQogfQogCit2b2lkIFN0cnVjdHVyZTo6Z2V0T3duRW51bWVyYWJsZVByb3BlcnR5
TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywg
SlNPYmplY3QqIGJhc2VPYmplY3QpCit7CisgICAgZ2V0RW51bWVyYWJsZU5hbWVzRnJvbVByb3Bl
cnR5VGFibGUocHJvcGVydHlOYW1lcyk7CisgICAgZ2V0RW51bWVyYWJsZU5hbWVzRnJvbUNsYXNz
SW5mb1RhYmxlKGV4ZWMsIGJhc2VPYmplY3QtPmNsYXNzSW5mbygpLCBwcm9wZXJ0eU5hbWVzKTsK
K30KKwogdm9pZCBTdHJ1Y3R1cmU6OmdldEVudW1lcmFibGVQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEpTT2JqZWN0KiBiYXNl
T2JqZWN0KQogewogICAgIGJvb2wgc2hvdWxkQ2FjaGUgPSBwcm9wZXJ0eU5hbWVzLnNob3VsZENh
Y2hlKCkgJiYgIShwcm9wZXJ0eU5hbWVzLnNpemUoKSB8fCBtX2lzRGljdGlvbmFyeSk7CkBAIC0y
ODUsMTIgKzI5MSwyMiBAQCB2b2lkIFN0cnVjdHVyZTo6Z2V0RW51bWVyYWJsZVByb3BlcnR5TmFt
ZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcAogICAgICAgICBjbGVhckVu
dW1lcmF0aW9uQ2FjaGUoKTsKICAgICB9CiAKLSAgICBnZXRFbnVtZXJhYmxlTmFtZXNGcm9tUHJv
cGVydHlUYWJsZShwcm9wZXJ0eU5hbWVzKTsKLSAgICBnZXRFbnVtZXJhYmxlTmFtZXNGcm9tQ2xh
c3NJbmZvVGFibGUoZXhlYywgYmFzZU9iamVjdC0+Y2xhc3NJbmZvKCksIHByb3BlcnR5TmFtZXMp
OworICAgIGJhc2VPYmplY3QtPmdldE93blByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1l
cyk7CiAKICAgICBpZiAobV9wcm90b3R5cGUuaXNPYmplY3QoKSkgewogICAgICAgICBwcm9wZXJ0
eU5hbWVzLnNldFNob3VsZENhY2hlKGZhbHNlKTsgLy8gTm8gbmVlZCBmb3Igb3VyIHByb3RvdHlw
ZXMgdG8gd2FzdGUgbWVtb3J5IG9uIGNhY2hpbmcsIHNpbmNlIHRoZXkncmUgbm90IGJlaW5nIGVu
dW1lcmF0ZWQgZGlyZWN0bHkuCi0gICAgICAgIGFzT2JqZWN0KG1fcHJvdG90eXBlKS0+Z2V0UHJv
cGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKKyAgICAgICAgSlNPYmplY3QqIHByb3Rv
dHlwZSA9IGFzT2JqZWN0KG1fcHJvdG90eXBlKTsKKyAgICAgICAgd2hpbGUoMSkgeworICAgICAg
ICAgICAgaWYgKCFwcm90b3R5cGUtPnN0cnVjdHVyZSgpLT50eXBlSW5mbygpLmhhc0RlZmF1bHRH
ZXRQcm9wZXJ0eU5hbWVzKCkpIHsKKyAgICAgICAgICAgICAgICBwcm90b3R5cGUtPmdldFByb3Bl
cnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBwcm90b3R5cGUtPmdldE93blByb3BlcnR5TmFtZXMo
ZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgICAgICAgICBKU1ZhbHVlIG5leHRQcm90byA9IHBy
b3RvdHlwZS0+cHJvdG90eXBlKCk7CisgICAgICAgICAgICBpZiAoIW5leHRQcm90by5pc09iamVj
dCgpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgcHJvdG90eXBlID0gYXNP
YmplY3QobmV4dFByb3RvKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChzaG91bGRDYWNo
ZSkgewpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaCBiL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgKaW5kZXggOTIwZTU2Yi4uYTE4MjFjMiAx
MDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAorKysgYi9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZS5oCkBAIC0xMTQsNiArMTE0LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgIH0KIAogICAgICAgICB2b2lkIGdldEVudW1lcmFibGVQcm9wZXJ0
eU5hbWVzKEV4ZWNTdGF0ZSosIFByb3BlcnR5TmFtZUFycmF5JiwgSlNPYmplY3QqKTsKKyAgICAg
ICAgdm9pZCBnZXRPd25FbnVtZXJhYmxlUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0
eU5hbWVBcnJheSYsIEpTT2JqZWN0Kik7CiAKICAgICAgICAgYm9vbCBoYXNHZXR0ZXJTZXR0ZXJQ
cm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzOyB9
CiAgICAgICAgIHZvaWQgc2V0SGFzR2V0dGVyU2V0dGVyUHJvcGVydGllcyhib29sIGhhc0dldHRl
clNldHRlclByb3BlcnRpZXMpIHsgbV9oYXNHZXR0ZXJTZXR0ZXJQcm9wZXJ0aWVzID0gaGFzR2V0
dGVyU2V0dGVyUHJvcGVydGllczsgfQpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdEdsdWUvQ2hhbmdl
TG9nIGIvSmF2YVNjcmlwdEdsdWUvQ2hhbmdlTG9nCmluZGV4IDE0MDAxMzguLjQ3M2M2NzUgMTAw
NjQ0Ci0tLSBhL0phdmFTY3JpcHRHbHVlL0NoYW5nZUxvZworKysgYi9KYXZhU2NyaXB0R2x1ZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0wOS0xMiAgT2xpdmVyIEh1bnQgIDxvbGl2
ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFtFUzVdIEltcGxlbWVudCBPYmplY3Qua2V5cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkxNzAKKworICAgICAgICBTd2l0Y2ggb3ZlciB0
byBnZXRPd25Qcm9wZXJ0eU5hbWVzIGluc3RlYWQgb2YgZ2V0UHJvcGVydHlOYW1lcy4KKworICAg
ICAgICAqIFVzZXJPYmplY3RJbXAuY3BwOgorICAgICAgICAoVXNlck9iamVjdEltcDo6Z2V0T3du
UHJvcGVydHlOYW1lcyk6CisgICAgICAgICogVXNlck9iamVjdEltcC5oOgorCiAyMDA5LTA5LTAy
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBH
ZW9mZiBHYXJlbi4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuY3Bw
IGIvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKaW5kZXggNGU2NGFiMS4uMTI1ZTM0
OSAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKKysrIGIvSmF2
YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgSlNWYWx1ZSBV
c2VyT2JqZWN0SW1wOjpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICp0
aGlzT2JqLCBjb25zdAogfQogCiAKLXZvaWQgVXNlck9iamVjdEltcDo6Z2V0UHJvcGVydHlOYW1l
cyhFeGVjU3RhdGUgKmV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQordm9p
ZCBVc2VyT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSAqZXhlYywgUHJv
cGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCiB7CiAgICAgSlNVc2VyT2JqZWN0KiBwdHIg
PSBHZXRKU1VzZXJPYmplY3QoKTsKICAgICBpZiAocHRyKSB7CkBAIC0xMDksNyArMTA5LDcgQEAg
dm9pZCBVc2VyT2JqZWN0SW1wOjpnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSAqZXhlYywgUHJv
cGVydHlOYW1lQXJyYXkmIHByb3BlcnQKICAgICAgICAgICAgIENGUmVsZWFzZShjZlByb3BlcnR5
TmFtZXMpOwogICAgICAgICB9CiAgICAgfQotICAgIEpTT2JqZWN0OjpnZXRQcm9wZXJ0eU5hbWVz
KGV4ZWMsIHByb3BlcnR5TmFtZXMpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KGV4ZWMsIHByb3BlcnR5TmFtZXMpOwogfQogCiBKU1ZhbHVlIFVzZXJPYmplY3RJbXA6OnVzZXJP
YmplY3RHZXR0ZXIoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBj
b25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QpCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0R2x1ZS9Vc2Vy
T2JqZWN0SW1wLmggYi9KYXZhU2NyaXB0R2x1ZS9Vc2VyT2JqZWN0SW1wLmgKaW5kZXggOTc5MTY1
OC4uOThjOTI3NiAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdEdsdWUvVXNlck9iamVjdEltcC5oCisr
KyBiL0phdmFTY3JpcHRHbHVlL1VzZXJPYmplY3RJbXAuaApAQCAtNDQsNyArNDQsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIENhbGxUeXBlIGdldENhbGxEYXRhKENhbGxEYXRhJik7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVB
cnJheSYpOworICAgIHZpcnR1YWwgdm9pZCBnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSos
IFByb3BlcnR5TmFtZUFycmF5Jik7CiAKICAgICB2aXJ0dWFsIEpTVmFsdWUgY2FsbEFzRnVuY3Rp
b24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgQXJnTGlzdCAmYXJn
cyk7CiAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVlYTM2ZTcuLjUzZjI5NTgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAwOS0wOS0xMiAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJA
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFtFUzVdIEltcGxlbWVudCBPYmplY3Qua2V5cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkxNzAKKworICAgICAgICBBZGQgdGVzdHMgZm9yIE9i
amVjdC5rZXlzKG8pLCBib3RoIHN0YW5kYXJkIHVzYWdlIGFuZCBjcm9zcyBvcmlnaW4uCisKKyAg
ICAgICAgKiBmYXN0L2pzL09iamVjdC1rZXlzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9qcy9PYmplY3Qta2V5cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3Jl
c291cmNlcy9PYmplY3Qta2V5cy5qczogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9uLmh0
bWw6CisKIDIwMDktMDktMTIgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2pzL09iamVjdC1rZXlzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvT2Jq
ZWN0LWtleXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjMyOTYzYzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL09iamVjdC1r
ZXlzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIwIEBACitUZXN0IHRvIGVuc3VyZSBjb3JyZWN0
IGJlaGF2aW91ciBvZiBPYmplY3Qua2V5cworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBPYmplY3Qua2V5cyh7fSkgaXMgW10KK1BBU1MgT2JqZWN0LmtleXMoe2E6bnVsbH0p
IGlzIFsnYSddCitQQVNTIE9iamVjdC5rZXlzKHthOm51bGwsIGI6bnVsbH0pIGlzIFsnYScsICdi
J10KK1BBU1MgT2JqZWN0LmtleXMoe2I6bnVsbCwgYTpudWxsfSkgaXMgWydiJywgJ2EnXQorUEFT
UyBPYmplY3Qua2V5cyhbXSkgaXMgW10KK1BBU1MgT2JqZWN0LmtleXMoW251bGxdKSBpcyBbJzAn
XQorUEFTUyBPYmplY3Qua2V5cyhbbnVsbCxudWxsXSkgaXMgWycwJywnMSddCitQQVNTIE9iamVj
dC5rZXlzKFtudWxsLG51bGwsLCwsbnVsbF0pIGlzIFsnMCcsJzEnLCc1J10KK1BBU1MgT2JqZWN0
LmtleXMoe19fcHJvdG9fXzp7YTpudWxsfX0pIGlzIFtdCitQQVNTIE9iamVjdC5rZXlzKHtfX3By
b3RvX186WzEsMiwzXX0pIGlzIFtdCitQQVNTIHg9W107eC5fX3Byb3RvX189WzEsMiwzXTtPYmpl
Y3Qua2V5cyh4KSBpcyBbXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvT2JqZWN0LWtleXMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvanMvT2JqZWN0LWtleXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZDEwZTRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9qcy9PYmplY3Qta2V5cy5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvT2JqZWN0LWtleXMuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvT2Jq
ZWN0LWtleXMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9PYmplY3Qta2V5cy5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMmU4ZTE4Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvT2JqZWN0LWtleXMuanMKQEAg
LTAsMCArMSwxNSBAQAorZGVzY3JpcHRpb24oIlRlc3QgdG8gZW5zdXJlIGNvcnJlY3QgYmVoYXZp
b3VyIG9mIE9iamVjdC5rZXlzIik7CisKK3Nob3VsZEJlKCJPYmplY3Qua2V5cyh7fSkiLCAiW10i
KTsKK3Nob3VsZEJlKCJPYmplY3Qua2V5cyh7YTpudWxsfSkiLCAiWydhJ10iKTsKK3Nob3VsZEJl
KCJPYmplY3Qua2V5cyh7YTpudWxsLCBiOm51bGx9KSIsICJbJ2EnLCAnYiddIik7CitzaG91bGRC
ZSgiT2JqZWN0LmtleXMoe2I6bnVsbCwgYTpudWxsfSkiLCAiWydiJywgJ2EnXSIpOworc2hvdWxk
QmUoIk9iamVjdC5rZXlzKFtdKSIsICJbXSIpOworc2hvdWxkQmUoIk9iamVjdC5rZXlzKFtudWxs
XSkiLCAiWycwJ10iKTsKK3Nob3VsZEJlKCJPYmplY3Qua2V5cyhbbnVsbCxudWxsXSkiLCAiWycw
JywnMSddIik7CitzaG91bGRCZSgiT2JqZWN0LmtleXMoW251bGwsbnVsbCwsLCxudWxsXSkiLCAi
WycwJywnMScsJzUnXSIpOworc2hvdWxkQmUoIk9iamVjdC5rZXlzKHtfX3Byb3RvX186e2E6bnVs
bH19KSIsICJbXSIpOworc2hvdWxkQmUoIk9iamVjdC5rZXlzKHtfX3Byb3RvX186WzEsMiwzXX0p
IiwgIltdIik7CitzaG91bGRCZSgieD1bXTt4Ll9fcHJvdG9fXz1bMSwyLDNdO09iamVjdC5rZXlz
KHgpIiwgIltdIik7CisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1lbnVtZXJh
dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LWZyYW1lLWFjY2Vzcy1lbnVtZXJhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggY2Y5ODdhZS4uMjVh
NzFkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1m
cmFtZS1hY2Nlc3MtZW51bWVyYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9uLWV4cGVjdGVk
LnR4dApAQCAtNCwxMCArNCwxOSBAQCBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEph
dmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cAogCiBDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJh
bWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9z
cy1mcmFtZS1pZnJhbWUtZm9yLWVudW1lcmF0aW9uLXRlc3QuaHRtbCBmcm9tIGZyYW1lIHdpdGgg
VVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51
bWVyYXRpb24uaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgog
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0ZW1wdCB0byBh
Y2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3Jlc291
cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWVudW1lcmF0aW9uLXRlc3QuaHRtbCBmcm9tIGZy
YW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9zcy1mcmFtZS1h
Y2Nlc3MtZW51bWVyYXRpb24uaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0
IG1hdGNoLgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFTY3JpcHQgYXR0
ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3Vy
aXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWVudW1lcmF0aW9uLXRlc3QuaHRt
bCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24uaHRtbC4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBw
b3J0cyBtdXN0IG1hdGNoLgorCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVW5zYWZlIEphdmFT
Y3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWVudW1lcmF0aW9u
LXRlc3QuaHRtbCBmcm9tIGZyYW1lIHdpdGggVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1
cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZW51bWVyYXRpb24uaHRtbC4gRG9tYWlucywgcHJvdG9j
b2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgorCiBUaGlzIHRlc3RzIHRoYXQgdmFyaWFibGUgbmFt
ZXMgY2FuJ3QgYmUgZW51bWVyYXRlZCBjcm9zcyBkb21haW4gKHNlZSBodHRwOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM4NykKIAogCiBQQVNTOiBDcm9zcyBmcmFtZSBhY2Nl
c3MgYnkgZW51bWVyYXRpbmcgdGhlIHdpbmRvdyBvYmplY3Qgd2FzIGRlbmllZC4KK1BBU1M6IENy
b3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0aW5nIHRoZSBrZXlzIG9mIHRoZSB3aW5kb3cgb2JqZWN0
IHdhcyBkZW5pZWQuCiBQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZW51bWVyYXRpbmcgdGhl
IEhpc3Rvcnkgb2JqZWN0IHdhcyBkZW5pZWQuCitQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkg
Z2V0dGluZyB0aGUga2V5cyBvZiB0aGUgSGlzdG9yeSBvYmplY3Qgd2FzIGRlbmllZC4KIFBBU1M6
IENyb3NzIGZyYW1lIGFjY2VzcyBieSBlbnVtZXJhdGluZyB0aGUgTG9jYXRpb24gb2JqZWN0IHdh
cyBkZW5pZWQuCitQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZ2V0dGluZyB0aGUga2V5cyBv
ZiB0aGUgTG9jYXRpb24gb2JqZWN0IHdhcyBkZW5pZWQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1l
bnVtZXJhdGlvbi5odG1sCmluZGV4IDA0MDFjN2IuLjcwN2ZmZjUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWVudW1lcmF0aW9u
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1h
Y2Nlc3MtZW51bWVyYXRpb24uaHRtbApAQCAtNDUsNiArNDUsMTMgQEAKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGxvZygiUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGVudW1lcmF0aW5n
IHRoZSB3aW5kb3cgb2JqZWN0IHdhcyBkZW5pZWQuIik7CiAKKyAgICAgICAgICAgIHZhciBiX3dp
bktleXMgPSBPYmplY3Qua2V5cyhiX3dpbik7CisgICAgICAgICAgICBpZiAoYl93aW5LZXlzLmlu
ZGV4T2YoImN1c3RvbVdpbmRvd1Byb3BlcnR5IikgIT0gLTEpIHsgCisgICAgICAgICAgICAgICAg
bG9nKCJGQUlMOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZ2V0dGluZyB0aGUga2V5cyBvZiB0aGUg
d2luZG93IG9iamVjdCB3YXMgYWxsb3dlZC4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBsb2coIlBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBi
eSBnZXR0aW5nIHRoZSBrZXlzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IHdhcyBkZW5pZWQuIik7CisK
ICAgICAgICAgICAgIC8vIFRlc3QgZW51bWVyYXRpbmcgdGhlIEhpc3Rvcnkgb2JqZWN0CiAgICAg
ICAgICAgICB2YXIgYl93aW5faGlzdG9yeSA9IGJfd2luLmhpc3Rvcnk7CiAgICAgICAgICAgICB0
cnkgewpAQCAtNTgsNiArNjUsMTMgQEAKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGxvZygi
UEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGVudW1lcmF0aW5nIHRoZSBIaXN0b3J5IG9iamVj
dCB3YXMgZGVuaWVkLiIpOwogCisgICAgICAgICAgICB2YXIgYl93aW5IaXN0b3J5S2V5cyA9IE9i
amVjdC5rZXlzKGJfd2luX2hpc3RvcnkpOworICAgICAgICAgICAgaWYgKGJfd2luSGlzdG9yeUtl
eXMuaW5kZXhPZigiY3VzdG9tSGlzdG9yeVByb3BlcnR5IikgIT0gLTEpIHsgCisgICAgICAgICAg
ICAgICAgbG9nKCJGQUlMOiBDcm9zcyBmcmFtZSBhY2Nlc3MgYnkgZ2V0dGluZyB0aGUga2V5cyBv
ZiB0aGUgSGlzdG9yeSBvYmplY3Qgd2FzIGFsbG93ZWQuIik7CisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9nKCJQQVNTOiBDcm9zcyBmcmFtZSBh
Y2Nlc3MgYnkgZ2V0dGluZyB0aGUga2V5cyBvZiB0aGUgSGlzdG9yeSBvYmplY3Qgd2FzIGRlbmll
ZC4iKTsKKwogICAgICAgICAgICAgLy8gVGVzdCBlbnVtZXJhdGluZyB0aGUgTG9jYXRpb24gb2Jq
ZWN0CiAgICAgICAgICAgICB2YXIgYl93aW5fbG9jYXRpb24gPSBiX3dpbi5sb2NhdGlvbjsKICAg
ICAgICAgICAgIHRyeSB7CkBAIC03MCw2ICs4NCwxMyBAQAogICAgICAgICAgICAgfSBjYXRjaCAo
ZSkgewogICAgICAgICAgICAgfQogICAgICAgICAgICAgbG9nKCJQQVNTOiBDcm9zcyBmcmFtZSBh
Y2Nlc3MgYnkgZW51bWVyYXRpbmcgdGhlIExvY2F0aW9uIG9iamVjdCB3YXMgZGVuaWVkLiIpOwor
CisgICAgICAgICAgICB2YXIgYl93aW5Mb2NhdGlvbktleXMgPSBPYmplY3Qua2V5cyhiX3dpbl9s
b2NhdGlvbik7CisgICAgICAgICAgICBpZiAoYl93aW5Mb2NhdGlvbktleXMuaW5kZXhPZigiY3Vz
dG9tTG9jYXRpb25Qcm9wZXJ0eSIpICE9IC0xKSB7IAorICAgICAgICAgICAgICAgIGxvZygiRkFJ
TDogQ3Jvc3MgZnJhbWUgYWNjZXNzIGJ5IGdldHRpbmcgdGhlIGtleXMgb2YgdGhlIExvY2F0aW9u
IG9iamVjdCB3YXMgYWxsb3dlZC4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBsb2coIlBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBieSBnZXR0
aW5nIHRoZSBrZXlzIG9mIHRoZSBMb2NhdGlvbiBvYmplY3Qgd2FzIGRlbmllZC4iKTsKICAgICAg
ICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMDY4MTU1Li5kZDMzYjY3IDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3
IEBACisyMDA5LTA5LTEyICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0VTNV0gSW1wbGVtZW50
IE9iamVjdC5rZXlzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yOTE3MAorCisgICAgICAgIFN3aXRjaCBmcm9tIGdldFByb3BlcnR5TmFtZXMgdG8gZ2V0
T3duUHJvcGVydHlOYW1lcywgYW5kIHByb3ZpZGUgY3VzdG9tCisgICAgICAgIGdldFByb3BlcnR5
TmFtZXMgdG8gRE9NV2luZG93LCBET01XaW5kb3dTaGVsbCBhbmQgUXVhcmFudGluZWRPYmplY3RX
cmFwcGVyCisgICAgICAgIGluIG9yZGVyIHRvIGVuc3VyZSBjb3JyZWN0IHNlbWFudGljcyBhcmUg
bWFpbnRhaW5lZC4KKworICAgICAgICBUZXN0OiBmYXN0L2pzL09iamVjdC1rZXlzLmh0bWwKKwor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93U2hlbGw6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNIaXN0b3J5OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTTG9jYXRpb246OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkpTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyOjpnZXRQcm9wZXJ0eU5hbWVzKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTUXVhcmFudGluZWRPYmplY3RXcmFwcGVyOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5oOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTU3RvcmFnZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU1N0b3JhZ2U6OmdldE93blByb3BlcnR5TmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29i
amVjdC5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVPYmplY3RJbXA6OmdldFByb3BlcnR5TmFt
ZXMpOgorICAgICAgICAoSlNDOjpSdW50aW1lT2JqZWN0SW1wOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KToKKyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuaDoKKwogMjAwOS0wOS0xMiAgU2Ft
IFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBD
YXJsc3Nvbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXgg
Njc3ZTYyYy4uZjI1Zjc2NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3Rv
bS5jcHAKQEAgLTQ3Miw2ICs0NzIsMTQgQEAgdm9pZCBKU0RPTVdpbmRvdzo6Z2V0UHJvcGVydHlO
YW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU4KICAgICBC
YXNlOjpnZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOwogfQogCit2b2lkIEpT
RE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCit7CisgICAgLy8gT25seSBhbGxvdyB0aGUgd2luZG93
IHRvIGVudW1lcmF0ZWQgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4KKyAgICBpZiAoIWFs
bG93c0FjY2Vzc0Zyb20oZXhlYykpCisgICAgICAgIHJldHVybjsKKyAgICBCYXNlOjpnZXRPd25Q
cm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOworfQorCiBib29sIEpTRE9NV2luZG93
OjpnZXRQcm9wZXJ0eUF0dHJpYnV0ZXMoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIHVuc2lnbmVkJiBhdHRyaWJ1dGVzKSBjb25zdAogewogICAgIC8vIE9u
bHkgYWxsb3cgZ2V0dGluZyBwcm9wZXJ0eSBhdHRyaWJ1dGVzIHByb3BlcnRpZXMgYnkgZnJhbWVz
IGluIHRoZSBzYW1lIG9yaWdpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dTaGVsbC5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
Y3BwCmluZGV4IDRiMmE3ZGMuLmY5NjlkYzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmNwcApAQCAtMTEzLDYgKzExMywxMSBAQCB2b2lkIEpTRE9NV2luZG93U2hlbGw6
OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJv
cAogICAgIG1fd2luZG93LT5nZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpOwog
fQogCit2b2lkIEpTRE9NV2luZG93U2hlbGw6OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKK3sKKyAgICBtX3dpbmRv
dy0+Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKK30KKwogYm9vbCBK
U0RPTVdpbmRvd1NoZWxsOjpnZXRQcm9wZXJ0eUF0dHJpYnV0ZXMoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgdW5zaWduZWQmIGF0dHJpYnV0ZXMp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fd2luZG93LT5nZXRQcm9wZXJ0eUF0dHJpYnV0ZXMoZXhl
YywgcHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dTaGVsbC5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d1NoZWxsLmgKaW5kZXggNzE2ZmMxNC4uYTdjMmM1NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd1NoZWxsLmgKQEAgLTcyLDYgKzcyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2aXJ0dWFsIHZvaWQgcHV0V2l0aEF0dHJpYnV0ZXMoSlNDOjpFeGVjU3RhdGUqLCBjb25z
dCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCB1bnNpZ25lZCBh
dHRyaWJ1dGVzKTsKICAgICAgICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEpTQzo6RXhl
Y1N0YXRlKiwgY29uc3QgSlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgZ2V0UHJvcGVydHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVy
dHlOYW1lQXJyYXkmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMo
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZUFycmF5Jik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBnZXRQcm9wZXJ0eUF0dHJpYnV0ZXMoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6
OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgdW5zaWduZWQmIGF0dHJpYnV0ZXMpIGNvbnN0Owog
ICAgICAgICB2aXJ0dWFsIHZvaWQgZGVmaW5lR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgY29uc3Qg
SlNDOjpJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNPYmplY3QqIGdldHRlckZ1bmN0
aW9uKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGRlZmluZVNldHRlcihKU0M6OkV4ZWNTdGF0ZSos
IGNvbnN0IEpTQzo6SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU0M6OkpTT2JqZWN0KiBzZXR0
ZXJGdW5jdGlvbik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlzdG9yeUN1
c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHAKaW5kZXgg
NTBmZjVjMy4uYjI0YjFmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hpc3Rv
cnlDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9tLmNw
cApAQCAtMTU1LDEyICsxNTUsMTIgQEAgYm9vbCBKU0hpc3Rvcnk6OmRlbGV0ZVByb3BlcnR5KEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogICAgIHJldHVy
biBCYXNlOjpkZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCi12b2lkIEpT
SGlzdG9yeTo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFy
cmF5JiBwcm9wZXJ0eU5hbWVzKQordm9pZCBKU0hpc3Rvcnk6OmdldE93blByb3BlcnR5TmFtZXMo
RXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcykKIHsKICAg
ICAvLyBPbmx5IGFsbG93IHRoZSBoaXN0b3J5IG9iamVjdCB0byBlbnVtZXJhdGVkIGJ5IGZyYW1l
cyBpbiB0aGUgc2FtZSBvcmlnaW4uCiAgICAgaWYgKCFhbGxvd3NBY2Nlc3NGcm9tRnJhbWUoZXhl
YywgaW1wbCgpLT5mcmFtZSgpKSkKICAgICAgICAgcmV0dXJuOwotICAgIEJhc2U6OmdldFByb3Bl
cnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlO
YW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNMb2NhdGlvbkN1c3RvbS5jcHAKaW5kZXggNzZjOWVhNy4uZWY1
ODM0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0xvY2F0aW9uQ3VzdG9tLmNw
cAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTG9jYXRpb25DdXN0b20uY3BwCkBAIC0xNzQs
MTIgKzE3NCwxMiBAQCBib29sIEpTTG9jYXRpb246OmRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogICAgIHJldHVybiBCYXNlOjpk
ZWxldGVQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5hbWUpOwogfQogCi12b2lkIEpTTG9jYXRpb246
OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJv
cGVydHlOYW1lcykKK3ZvaWQgSlNMb2NhdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzKQogewogICAgIC8vIE9u
bHkgYWxsb3cgdGhlIGxvY2F0aW9uIG9iamVjdCB0byBlbnVtZXJhdGVkIGJ5IGZyYW1lcyBpbiB0
aGUgc2FtZSBvcmlnaW4uCiAgICAgaWYgKCFhbGxvd3NBY2Nlc3NGcm9tRnJhbWUoZXhlYywgaW1w
bCgpLT5mcmFtZSgpKSkKICAgICAgICAgcmV0dXJuOwotICAgIEJhc2U6OmdldFByb3BlcnR5TmFt
ZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7CisgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhl
eGVjLCBwcm9wZXJ0eU5hbWVzKTsKIH0KIAogdm9pZCBKU0xvY2F0aW9uOjpkZWZpbmVHZXR0ZXIo
RXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0
KiBnZXR0ZXJGdW5jdGlvbikKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNRdWFy
YW50aW5lZE9iamVjdFdyYXBwZXIuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1YXJhbnRp
bmVkT2JqZWN0V3JhcHBlci5jcHAKaW5kZXggZDRhZDM4My4uYTA3MWE0ZSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5jcHAKQEAgLTI5
MCw4ICsyOTAsMTYgQEAgdm9pZCBKU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlcjo6Z2V0UHJvcGVy
dHlOYW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYKIHsKICAgICBpZiAoIWFsbG93
c0dldFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcmV0dXJuOwotCisgICAgCiAgICAgbV91bndy
YXBwZWRPYmplY3QtPmdldFByb3BlcnR5TmFtZXModW53cmFwcGVkRXhlY1N0YXRlKCksIGFycmF5
KTsKIH0KIAordm9pZCBKU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlcjo6Z2V0T3duUHJvcGVydHlO
YW1lcyhFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYgYXJyYXkpCit7CisgICAgaWYgKCFh
bGxvd3NHZXRQcm9wZXJ0eU5hbWVzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdW53cmFw
cGVkT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eU5hbWVzKHVud3JhcHBlZEV4ZWNTdGF0ZSgpLCBhcnJh
eSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXIuaCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNRdWFyYW50aW5lZE9iamVjdFdyYXBwZXIuaAppbmRleCBlZjRiNjU3Li4zN2YyNTE4IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUXVhcmFudGluZWRPYmplY3RXcmFwcGVy
LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1F1YXJhbnRpbmVkT2JqZWN0V3JhcHBlci5o
CkBAIC03MCw4ICs3MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBK
U0M6OkNvbnN0cnVjdFR5cGUgZ2V0Q29uc3RydWN0RGF0YShKU0M6OkNvbnN0cnVjdERhdGEmKTsK
IAogICAgICAgICB2aXJ0dWFsIGJvb2wgaGFzSW5zdGFuY2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkpTVmFsdWUsIEpTQzo6SlNWYWx1ZSBwcm90byk7Ci0KKyAgICAgICAgCiAgICAgICAgIHZpcnR1
YWwgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5h
bWVBcnJheSYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgZ2V0T3duUHJvcGVydHlOYW1lcyhKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmKTsKIAogICAgICAgICB2aXJ0dWFs
IEpTQzo6VVN0cmluZyBjbGFzc05hbWUoKSBjb25zdCB7IHJldHVybiBtX3Vud3JhcHBlZE9iamVj
dC0+Y2xhc3NOYW1lKCk7IH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0
b3JhZ2VDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N0b3JhZ2VDdXN0b20uY3Bw
CmluZGV4IDA3Y2YyZjguLmU0MTZkMzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNTdG9yYWdlQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3RvcmFnZUN1
c3RvbS5jcHAKQEAgLTY0LDEzICs2NCwxMyBAQCBib29sIEpTU3RvcmFnZTo6ZGVsZXRlUHJvcGVy
dHkoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSlNTdG9yYWdlOjpnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMpCit2b2lkIEpTU3Rv
cmFnZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZUFy
cmF5JiBwcm9wZXJ0eU5hbWVzKQogewogICAgIHVuc2lnbmVkIGxlbmd0aCA9IG1faW1wbC0+bGVu
Z3RoKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKQogICAgICAg
ICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyKGV4ZWMsIG1faW1wbC0+a2V5KGkpKSk7CiAg
ICAgICAgIAotICAgIEJhc2U6OmdldFByb3BlcnR5TmFtZXMoZXhlYywgcHJvcGVydHlOYW1lcyk7
CisgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0eU5hbWVzKTsKIH0K
IAogYm9vbCBKU1N0b3JhZ2U6OnB1dERlbGVnYXRlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBi
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggYmEyMzI1
Zi4uODhmNjdmMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JKUy5wbQorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC02MjUsOCArNjI1LDEwIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICMgQ3VzdG9t
IGRlbGV0ZVByb3BlcnR5IGZ1bmN0aW9uCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2
aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVydHkoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6Oklk
ZW50aWZpZXImKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3Rv
bURlbGV0ZVByb3BlcnR5In07CiAKLSAgICAjIEN1c3RvbSBnZXRQcm9wZXJ0eU5hbWVzIGZ1bmN0
aW9uCi0gICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVy
dHlOYW1lcyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lQXJyYXkmKTtcbiIpIGlm
ICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21HZXRQcm9wZXJ0eU5hbWVz
In0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8
fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNDdXN0b21JbmRleEdldHRlciJ9
IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc051bWVyaWNJbmRleEdldHRl
ciJ9KTsKKyAgICAjIEN1c3RvbSBnZXRQcm9wZXJ0eU5hbWVzIGZ1bmN0aW9uIGV4aXN0cyBvbiBE
T01XaW5kb3cKKyAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgdm9pZCBnZXRQ
cm9wZXJ0eU5hbWVzKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWVBcnJheSYpO1xu
IikgaWYgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyI7CisgICAgIyBDdXN0b20gZ2V0T3du
UHJvcGVydHlOYW1lcyBmdW5jdGlvbgorICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgdmly
dHVhbCB2b2lkIGdldE93blByb3BlcnR5TmFtZXMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3Bl
cnR5TmFtZUFycmF5Jik7XG4iKSBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q3VzdG9tR2V0UHJvcGVydHlOYW1lcyJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ikhhc0luZGV4R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
SGFzQ3VzdG9tSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJIYXNOdW1lcmljSW5kZXhHZXR0ZXIifSk7ICAgIAogCiAgICAgIyBDdXN0b20gZ2V0UHJvcGVy
dHlBdHRyaWJ1dGVzIGZ1bmN0aW9uCiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0
dWFsIGJvb2wgZ2V0UHJvcGVydHlBdHRyaWJ1dGVzKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlND
OjpJZGVudGlmaWVyJiwgdW5zaWduZWQmIGF0dHJpYnV0ZXMpIGNvbnN0O1xuIikgaWYgJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ3VzdG9tR2V0UHJvcGVydHlBdHRyaWJ1dGVzIn07
CkBAIC0xNDg2LDEzICsxNDg4LDEzIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
fQogCiAgICAgaWYgKCgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJIYXNJbmRleEdl
dHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ikhhc0N1c3RvbUluZGV4
R2V0dGVyIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSGFzTnVtZXJpY0lu
ZGV4R2V0dGVyIn0pICYmICEkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21H
ZXRQcm9wZXJ0eU5hbWVzIn0pIHsKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ2b2lkICR7
Y2xhc3NOYW1lfTo6Z2V0UHJvcGVydHlOYW1lcyhFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFt
ZUFycmF5JiBwcm9wZXJ0eU5hbWVzKVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
dm9pZCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcylcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIntcbiIpOwogICAgICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSGFzSW5kZXhHZXR0ZXIifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJIYXNDdXN0b21JbmRleEdldHRlciJ9IHx8ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Ikhhc051bWVyaWNJbmRleEdldHRlciJ9KSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc3RhdGljX2Nhc3Q8JHtpbXBsQ2xh
c3NOYW1lfSo+KGltcGwoKSktPmxlbmd0aCgpOyArK2kpXG4iKTsKICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9t
KGV4ZWMsIGkpKTtcbiIpOwogICAgICAgICB9Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgICBCYXNlOjpnZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5TmFtZXMpO1xuIik7Cisg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KGV4ZWMsIHByb3BlcnR5TmFtZXMpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
fVxuXG4iKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCA5MWJlMWEw
Li4wMjgyNDExIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAK
KysrIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC0yOTUsMTIgKzI5NSwx
NyBAQCB2b2lkIFJ1bnRpbWVPYmplY3RJbXA6OmdldFByb3BlcnR5TmFtZXMoRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcAogICAgICAgICB0aHJvd0ludmFsaWRBY2Nlc3NF
cnJvcihleGVjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAKKwogICAgIGluc3RhbmNl
LT5iZWdpbigpOwogICAgIGluc3RhbmNlLT5nZXRQcm9wZXJ0eU5hbWVzKGV4ZWMsIHByb3BlcnR5
TmFtZXMpOwogICAgIGluc3RhbmNlLT5lbmQoKTsKIH0KIAordm9pZCBSdW50aW1lT2JqZWN0SW1w
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkm
IHByb3BlcnR5TmFtZXMpCit7CisgICAgZ2V0T3duUHJvcGVydHlOYW1lcyhleGVjLCBwcm9wZXJ0
eU5hbWVzKTsKK30KKwogSlNPYmplY3QqIFJ1bnRpbWVPYmplY3RJbXA6OnRocm93SW52YWxpZEFj
Y2Vzc0Vycm9yKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICByZXR1cm4gdGhyb3dFcnJvcihleGVj
LCBSZWZlcmVuY2VFcnJvciwgIlRyeWluZyB0byBhY2Nlc3Mgb2JqZWN0IGZyb20gZGVzdHJveWVk
IHBsdWctaW4uIik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5o
IGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuaAppbmRleCA0YTljMzk2Li41ZThmNTdl
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5oCisrKyBiL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmgKQEAgLTQ0LDggKzQ0LDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgSlNWYWx1ZSBkZWZhdWx0VmFsdWUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0
aXZlVHlwZSkgY29uc3Q7CiAgICAgdmlydHVhbCBDYWxsVHlwZSBnZXRDYWxsRGF0YShDYWxsRGF0
YSYpOwogICAgIHZpcnR1YWwgQ29uc3RydWN0VHlwZSBnZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVj
dERhdGEmKTsKLSAgICAKKwogICAgIHZpcnR1YWwgdm9pZCBnZXRQcm9wZXJ0eU5hbWVzKEV4ZWNT
dGF0ZSosIFByb3BlcnR5TmFtZUFycmF5Jik7CisgICAgdmlydHVhbCB2b2lkIGdldE93blByb3Bl
cnR5TmFtZXMoRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBpbnZhbGlkYXRlKCk7CiAgICAgQmluZGluZ3M6Okluc3RhbmNlKiBnZXRJbnRlcm5hbElu
c3RhbmNlKCkgY29uc3QgeyByZXR1cm4gaW5zdGFuY2UuZ2V0KCk7IH0=
</data>
<flag name="review"
          id="20618"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>