<?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>216441</bug_id>
          
          <creation_ts>2020-09-12 11:42:21 -0700</creation_ts>
          <short_desc>[WebIDL] Remove need for [MayThrowException] on indexed and named setters</short_desc>
          <delta_ts>2020-09-13 11:14:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>180019</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1687947</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-12 11:42:21 -0700</bug_when>
    <thetext>[WebIDL] Remove need for [MayThrowException] on indexed and named setters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687948</commentid>
    <comment_count>1</comment_count>
      <attachid>408603</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-12 11:47:38 -0700</bug_when>
    <thetext>Created attachment 408603
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687978</commentid>
    <comment_count>2</comment_count>
      <attachid>408603</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-12 14:23:36 -0700</bug_when>
    <thetext>Comment on attachment 408603
Patch

Kinda wish there was a way to record the requirement that something *not* throw an exception, but if WebIDL doesn’t include that, then I guess we don’t need to innovate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688018</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-12 16:12:26 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 408603 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688111</commentid>
    <comment_count>4</comment_count>
      <attachid>408654</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-13 10:30:21 -0700</bug_when>
    <thetext>Created attachment 408654
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688117</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-13 11:13:07 -0700</bug_when>
    <thetext>Committed r266999: &lt;https://trac.webkit.org/changeset/266999&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408654.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688118</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-13 11:14:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/68808571&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408603</attachid>
            <date>2020-09-12 11:47:38 -0700</date>
            <delta_ts>2020-09-13 10:30:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216441-20200912114737.patch</filename>
            <type>text/plain</type>
            <size>53809</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2Njk3OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBACisyMDIwLTA5LTEyICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViSURMXSBSZW1vdmUgbmVlZCBm
b3IgW01heVRocm93RXhjZXB0aW9uXSBvbiBpbmRleGVkIGFuZCBuYW1lZCBzZXR0ZXJzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY0NDEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWR1Y2UgaW1wbGVt
ZW50YXRpb24gcG90ZW50aWFsbHkgdGhyb3dpbmcgYnkgaW50cm9zcGVjdGluZyB0aGUgcmV0dXJu
CisgICAgICAgIHR5cGUgb2YgdGhlIHNldHRlcnMgaW1wbGVtZW50YXRpb24gaW4gYSBuZXcgaGVs
cGVyLCBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeS4gCisgICAg
ICAgIFRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSBhbm90aGVyIHNldCBvZiB1c2VzIG9mIFtNYXlU
aHJvd0V4Y2VwdGlvbl0uCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRCYXNl
Lmg6CisgICAgICAgICogZG9tL0V4Y2VwdGlvbk9yLmg6CisgICAgICAgIE1vdmUgSXNFeGNlcHRp
b25PciB0byBFeGNlcHRpb25Pci5oIHNvIGl0IGNhbiBiZSB1c2VkIG1vcmUgd2lkZWx5LgorCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oOgorICAgICAgICAo
V2ViQ29yZTo6aW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkpOgor
ICAgICAgICBBZGQgaGVscGVyIHRoYXQgaW52b2tlcyB0aGUgcGFzc2VkIGluIGZ1bmN0b3IgYW5k
IGNhbGxzIHByb3BhZ2F0ZUV4Y2VwdGlvbgorICAgICAgICBpZiB0aGUgcmV0dXJuIHR5cGUgd2Fz
IGFuIEV4Y2VwdGlvbk9yPD4uIElmIHRoZSByZXR1cm4gdHlwZSBpcyBub3QgYW4gCisgICAgICAg
IEV4Y2VwdGlvbk9yPD4sIGl0IGp1c3QgaW52b2tlcyB0aGUgZnVuY3RvciBhbmQgcmV0dXJucy4K
KworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAg
ICAoR2VuZXJhdGVJbnZva2VJbmRleGVkUHJvcGVydHlTZXR0ZXIpOgorICAgICAgICAoR2VuZXJh
dGVJbnZva2VOYW1lZFByb3BlcnR5U2V0dGVyKToKKyAgICAgICAgVXBkYXRlIHRvIGNhbGwgaW52
b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkuCisKKyAgICAgICAgKiBj
c3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGw6CisgICAgICAgICogZG9tL0RPTVN0cmluZ01hcC5p
ZGw6CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHTGVu
Z3RoTGlzdC5pZGw6CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3QuaWRsOgorICAgICAgICAq
IHN2Zy9TVkdQYXRoU2VnTGlzdC5pZGw6CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdC5pZGw6
CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3QuaWRsOgorICAgICAgICAqIHN2Zy9TVkdUcmFu
c2Zvcm1MaXN0LmlkbDoKKyAgICAgICAgUmVtb3ZlIG5vdyB1bm5lZWRlZCBbTWF5VGhyb3dFeGNl
cHRpb25dLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9u
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5k
U2V0dGVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHA6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxl
UHJvcGVydGllcy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJy
aWRlQnVpbHRJbnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0SW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmlkbDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24uaWRsOgorICAgICAgICBVcGRhdGUgdGVzdHMvZXhwZWN0YXRpb25zLgorCiAyMDIw
LTA5LTEyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11b
SUZDXSBBZGQgc3VwcG9ydCBmb3Igbm9uLXJvb3QtaW5saW5lLWJveCBsaW5lIHNwYWNpbmcKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydEJhc2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRCYXNlLmgJKHJl
dmlzaW9uIDI2Njk2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVy
dEJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtODcsMTAgKzg3LDYgQEAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgRXhjZXB0aW9uVAogfQogCiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPgot
c3RydWN0IElzRXhjZXB0aW9uT3IgOiBwdWJsaWMgc3RkOjppbnRlZ3JhbF9jb25zdGFudDxib29s
LCBXVEY6OklzVGVtcGxhdGU8c3RkOjpkZWNheV90PFQ+LCBFeGNlcHRpb25Pcj46OnZhbHVlPiB7
IH07Ci0KLQogLy8gQ29udmVyc2lvbiBmcm9tIEltcGxlbWVudGF0aW9uIC0+IEpTVmFsdWUKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBKU0NvbnZlcnRlcjsKIApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaAkocmV2
aXNpb24gMjY2OTY4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRp
b25IYW5kbGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC04OSw0ICs4OSwxOCBAQCBpbmxpbmUgdm9p
ZCBwcm9wYWdhdGVFeGNlcHRpb24oSlNDOjpKU0dsCiAgICAgICAgIHByb3BhZ2F0ZUV4Y2VwdGlv
bihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCB2YWx1ZS5yZWxlYXNlRXhjZXB0aW9u
KCkpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB2b2lkIGludm9rZUZ1bmN0b3JQ
cm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYgdGhyb3dTY29wZSwgRnVuY3RvciYmIGZ1
bmN0b3IpCit7CisgICAgdXNpbmcgUmV0dXJuVHlwZSA9IHN0ZDo6aW52b2tlX3Jlc3VsdF90PEZ1
bmN0b3I+OworCisgICAgaWYgY29uc3RleHByIChJc0V4Y2VwdGlvbk9yPFJldHVyblR5cGU+Ojp2
YWx1ZSkgeworICAgICAgICBhdXRvIHJlc3VsdCA9IGZ1bmN0b3IoKTsKKyAgICAgICAgaWYgKFVO
TElLRUxZKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkpCisgICAgICAgICAgICBwcm9wYWdhdGVFeGNl
cHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgcmVzdWx0LnJlbGVhc2VFeGNl
cHRpb24oKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmdW5jdG9yKCk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyNjY5NjgpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2lu
ZyBjb3B5KQpAQCAtODk3LDkgKzg5Nyw3IEBAIHN1YiBHZW5lcmF0ZUludm9rZUluZGV4ZWRQcm9w
ZXJ0eVNldHRlcgogICAgIG15ICRpbmRleGVkU2V0dGVyRnVuY3Rpb25OYW1lID0gJGluZGV4ZWRT
ZXR0ZXJPcGVyYXRpb24tPm5hbWUgfHwgInNldEl0ZW0iOwogICAgIG15ICRuYXRpdmVWYWx1ZVBh
c3NFeHByZXNzaW9uID0gUGFzc0FyZ3VtZW50RXhwcmVzc2lvbigibmF0aXZlVmFsdWUiLCAkYXJn
dW1lbnQpOwogICAgIG15ICRmdW5jdGlvblN0cmluZyA9ICJ0aGlzT2JqZWN0LT53cmFwcGVkKCku
JHtpbmRleGVkU2V0dGVyRnVuY3Rpb25OYW1lfSgke2luZGV4RXhwcmVzc2lvbn0sICR7bmF0aXZl
VmFsdWVQYXNzRXhwcmVzc2lvbn0pIjsKLSAgICAkZnVuY3Rpb25TdHJpbmcgPSAicHJvcGFnYXRl
RXhjZXB0aW9uKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCAke2Z1bmN0aW9uU3Ry
aW5nfSkiIGlmIE5lZWRzRXhwbGljaXRQcm9wYWdhdGVFeGNlcHRpb25DYWxsKCRpbmRleGVkU2V0
dGVyT3BlcmF0aW9uKTsKLSAgICAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAk
ZnVuY3Rpb25TdHJpbmcgLiAiO1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50
IC4gImludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gJHtmdW5jdGlvblN0cmluZ307
IH0pO1xuIik7CiB9CiAKICMgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jaW52b2tl
LW5hbWVkLXNldHRlcgpAQCAtOTI1LDkgKzkyMyw3IEBAIHN1YiBHZW5lcmF0ZUludm9rZU5hbWVk
UHJvcGVydHlTZXR0ZXIKICAgICBwdXNoKEBhcmd1bWVudHMsICJpc1Byb3BlcnR5U3VwcG9ydGVk
IikgaWYgJG5hbWVkU2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDYWxsTmFt
ZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllc307CiAKICAgICBteSAkZnVuY3Rpb25T
dHJpbmcgPSAidGhpc09iamVjdC0+d3JhcHBlZCgpLiR7bmFtZWRTZXR0ZXJGdW5jdGlvbk5hbWV9
KCIgLiBqb2luKCIsICIsIEBhcmd1bWVudHMpIC4gIikiOwotICAgICRmdW5jdGlvblN0cmluZyA9
ICJwcm9wYWdhdGVFeGNlcHRpb24oKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsICR7
ZnVuY3Rpb25TdHJpbmd9KSIgaWYgTmVlZHNFeHBsaWNpdFByb3BhZ2F0ZUV4Y2VwdGlvbkNhbGwo
JG5hbWVkU2V0dGVyT3BlcmF0aW9uKTsKLQotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVu
dCAuICRmdW5jdGlvblN0cmluZyAuICI7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRp
bmRlbnQgLiAiaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiAke2Z1bmN0aW9uU3Ry
aW5nfTsgfSk7XG4iKTsKIH0KIAogc3ViIEdlbmVyYXRlUHV0CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAyNjY5Njgp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAK
ICAqLwogCiBpbnRlcmZhY2UgVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiB7Ci0g
ICAgW01heVRocm93RXhjZXB0aW9uXSBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25lZCBsb25nIGlu
ZGV4LCBET01TdHJpbmcgdmFsdWUpOworICAgIHNldHRlciB1bmRlZmluZWQgKHVuc2lnbmVkIGxv
bmcgaW5kZXgsIERPTVN0cmluZyB2YWx1ZSk7CiAKICAgICAvLyBOT1RFOiBJbmRleGVkIHNldHRl
cnMgcmVxdWlyZSB0aGUgcHJlc2VuY2Ugb2YgYSBpbmRleGVkIGdldHRlciBhcyB3ZWxsLgogICAg
IGdldHRlciBET01TdHJpbmcgKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5p
ZGwJKHJldmlzaW9uIDI2Njk2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNCw5ICsyNCw5IEBACiAgKi8KIAogaW50ZXJmYWNlIFRlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbiB7Ci0gICAgW01heVRocm93RXhjZXB0aW9u
XSBzZXR0ZXIgdW5kZWZpbmVkIChET01TdHJpbmcgbmFtZSwgRE9NU3RyaW5nIHZhbHVlKTsKKyAg
ICBzZXR0ZXIgdW5kZWZpbmVkIChET01TdHJpbmcgbmFtZSwgRE9NU3RyaW5nIHZhbHVlKTsKICAg
ICBnZXR0ZXIgRE9NU3RyaW5nIChET01TdHJpbmcgbmFtZSk7CiAKLSAgICBbTWF5VGhyb3dFeGNl
cHRpb25dIHNldHRlciB1bmRlZmluZWQgKHVuc2lnbmVkIGxvbmcgaW5kZXgsIERPTVN0cmluZyB2
YWx1ZSk7CisgICAgc2V0dGVyIHVuZGVmaW5lZCAodW5zaWduZWQgbG9uZyBpbmRleCwgRE9NU3Ry
aW5nIHZhbHVlKTsKICAgICBnZXR0ZXIgRE9NU3RyaW5nICh1bnNpZ25lZCBsb25nIGluZGV4KTsK
IH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5hbWVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5p
ZGwJKHJldmlzaW9uIDI2Njk2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9UZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiBpbnRlcmZhY2UgVGVzdE5hbWVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24gewotICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gc2V0dGVyIHVuZGVmaW5lZCAo
RE9NU3RyaW5nIG5hbWUsIERPTVN0cmluZyB2YWx1ZSk7CisgICAgc2V0dGVyIHVuZGVmaW5lZCAo
RE9NU3RyaW5nIG5hbWUsIERPTVN0cmluZyB2YWx1ZSk7CiAKICAgICAvLyBOT1RFOiBOYW1lZCBz
ZXR0ZXJzIHJlcXVpcmUgdGhlIHByZXNlbmNlIG9mIGEgbmFtZWQgZ2V0dGVyIGFzIHdlbGwuCiAg
ICAgZ2V0dGVyIERPTVN0cmluZyAoRE9NU3RyaW5nIG5hbWUpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjY2OTY4
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTgsNyArMTk4LDcg
QEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpwdQogICAgICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJp
bmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgIHRoaXNPYmplY3QtPndyYXBwZWQoKS5z
ZXRJdGVtKGluZGV4LnZhbHVlKCksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgaW52
b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0
SXRlbShpbmRleC52YWx1ZSgpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTIxNCw3ICsyMTQsNyBAQCBib29sIEpTVGVzdEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OnB1CiAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAg
IGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHZhbHVlKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0
cnVlKTsKLSAgICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgsIFdURk1v
dmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0
aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJl
dHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0SXRlbShpbmRleCwgV1RGTW92ZShuYXRpdmVW
YWx1ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0yMzIsNyArMjMy
LDcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpkZQogICAgICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01T
dHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eURlc2NyaXB0b3IudmFsdWUoKSk7
CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAg
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXRJdGVtKGluZGV4LnZhbHVlKCksIFdURk1vdmUobmF0
aXZlVmFsdWUpKTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZO
ZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0SXRlbShpbmRleC52YWx1ZSgpLCBXVEZNb3ZlKG5hdGl2
ZVZhbHVlKSk7IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3Bw
CShyZXZpc2lvbiAyNjY5NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTk4LDcgKzE5OCw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW8KICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgYXV0byBuYXRpdmVWYWx1
ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwog
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICBw
cm9wYWdhdGVFeGNlcHRpb24oKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIHRoaXNP
YmplY3QtPndyYXBwZWQoKS5zZXRJdGVtKGluZGV4LnZhbHVlKCksIFdURk1vdmUobmF0aXZlVmFs
dWUpKSk7CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNz
YXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09i
amVjdC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgudmFsdWUoKSwgV1RGTW92ZShuYXRpdmVWYWx1
ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0yMTQsNyArMjE0LDcg
QEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpbwogICAgICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2Jh
bE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJp
bmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgIHByb3BhZ2F0ZUV4Y2VwdGlvbigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldEl0
ZW0oaW5kZXgsIFdURk1vdmUobmF0aXZlVmFsdWUpKSk7CisgICAgICAgIGludm9rZUZ1bmN0b3JQ
cm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgs
IFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IApAQCAtMjMyLDcgKzIzMiw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aW8KICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9
IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlEZXNj
cmlwdG9yLnZhbHVlKCkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUs
IHRydWUpOwotICAgICAgICBwcm9wYWdhdGVFeGNlcHRpb24oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXRJdGVtKGluZGV4LnZhbHVlKCks
IFdURk1vdmUobmF0aXZlVmFsdWUpKSk7CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGlu
Z0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBb
Jl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgudmFsdWUoKSwg
V1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyLmNwcAkocmV2aXNpb24gMjY2OTY4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIwNSw3ICsyMDUsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcjo6CiAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZl
VmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVl
KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAg
ICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLmluZGV4ZWRTZXR0ZXIoaW5kZXgudmFsdWUoKSwgV1RG
TW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNl
cHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsg
cmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pbmRleGVkU2V0dGVyKGluZGV4LnZhbHVlKCks
IFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IApAQCAtMjIxLDcgKzIyMSw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyOjoKICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9
IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICB0aGlz
T2JqZWN0LT53cmFwcGVkKCkuaW5kZXhlZFNldHRlcihpbmRleCwgV1RGTW92ZShuYXRpdmVWYWx1
ZSkpOworICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2Fy
eSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5pbmRleGVkU2V0dGVyKGluZGV4LCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7
IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTIzOSw3ICsyMzksNyBAQCBi
b29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6CiAgICAgICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5RGVzY3JpcHRvci52YWx1ZSgpKTsKICAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgdGhpc09i
amVjdC0+d3JhcHBlZCgpLmluZGV4ZWRTZXR0ZXIoaW5kZXgudmFsdWUoKSwgV1RGTW92ZShuYXRp
dmVWYWx1ZSkpOworICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5l
Y2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRo
aXNPYmplY3QtPndyYXBwZWQoKS5pbmRleGVkU2V0dGVyKGluZGV4LnZhbHVlKCksIFdURk1vdmUo
bmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRl
bnRpZmllci5jcHAJKHJldmlzaW9uIDI2Njk2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjksNyArMjI5LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJOb0lkZW50aQogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICBh
dXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB2YWx1ZSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1
ZSk7Ci0gICAgICAgIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXRJdGVtKGluZGV4LnZhbHVlKCks
IFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5n
RXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsm
XSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0SXRlbShpbmRleC52YWx1ZSgpLCBX
VEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
QEAgLTI0Miw3ICsyNDIsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRl
bnRpCiAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICAgICAgYXV0byBuYXRpdmVW
YWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUp
OwogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAg
ICAgICAgICAgIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1l
VG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICAg
ICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVk
KCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1v
dmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQogICAgIH0KQEAgLTI2MCw3ICsyNjAsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlck5vSWRlbnRpCiAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZl
VmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVl
KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAg
ICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgsIFdURk1vdmUobmF0aXZlVmFs
dWUpKTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3Nh
cnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuc2V0SXRlbShpbmRleCwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0yNzMsNyArMjczLDcgQEAgYm9vbCBK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aQogICAgICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkp
OwogICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhy
b3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0
ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1
ZSkpOworICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2Fy
eSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlO
YW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCkBAIC0yOTEsNyArMjkxLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aQogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZh
bHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0
eURlc2NyaXB0b3IudmFsdWUoKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dT
Y29wZSwgdHJ1ZSk7Ci0gICAgICAgIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXRJdGVtKGluZGV4
LnZhbHVlKCksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgaW52b2tlRnVuY3RvclBy
b3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0SXRlbShpbmRleC52
YWx1ZSgpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKQEAgLTMwNSw3ICszMDUsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlck5vSWRlbnRpCiAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICAgICAgYXV0
byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgcHJvcGVydHlEZXNjcmlwdG9yLnZhbHVlKCkpOwogICAgICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgICAgIHRoaXNPYmplY3QtPndyYXBw
ZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RG
TW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5n
RXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsm
XSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFt
ZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uLmNwcAkocmV2aXNpb24gMjY2OTY4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0
aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI5LDcgKzIyOSw3IEBAIGJvb2wgSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmcKICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAg
ICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUs
IHRydWUpOwotICAgICAgICBwcm9wYWdhdGVFeGNlcHRpb24oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXRJdGVtKGluZGV4LnZhbHVlKCks
IFdURk1vdmUobmF0aXZlVmFsdWUpKSk7CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGlu
Z0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBb
Jl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgudmFsdWUoKSwg
V1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
CkBAIC0yNDIsNyArMjQyLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJv
d2luZwogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgICAgIGF1dG8gbmF0aXZl
VmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVl
KTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0g
ICAgICAgICAgICBwcm9wYWdhdGVFeGNlcHRpb24oKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9T
dHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpKTsKKyAgICAgICAgICAg
IGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgp
LnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3Zl
KG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
ICAgICB9CkBAIC0yNjAsNyArMjYwLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJUaHJvd2luZwogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZh
bHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7
CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAg
IHByb3BhZ2F0ZUV4Y2VwdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgdGhp
c09iamVjdC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgsIFdURk1vdmUobmF0aXZlVmFsdWUpKSk7
CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+
d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgsIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMjczLDcgKzI3Myw3IEBAIGJvb2wgSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmcKICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAg
ICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIHRydWUpOwotICAgICAgICBwcm9wYWdhdGVFeGNlcHRpb24oKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVy
dHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpKTsKKyAg
ICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFw
cGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdU
Rk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApA
QCAtMjkxLDcgKzI5MSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dp
bmcKICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6Omdl
dFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNv
bnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlEZXNjcmlw
dG9yLnZhbHVlKCkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRy
dWUpOwotICAgICAgICBwcm9wYWdhdGVFeGNlcHRpb24oKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXRJdGVtKGluZGV4LnZhbHVlKCksIFdU
Rk1vdmUobmF0aXZlVmFsdWUpKSk7CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4
Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0g
eyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgudmFsdWUoKSwgV1RG
TW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBA
IC0zMDUsNyArMzA1LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2lu
ZwogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgICAgIGF1dG8gbmF0aXZlVmFs
dWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5
RGVzY3JpcHRvci52YWx1ZSgpKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhy
b3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgICAgICBwcm9wYWdhdGVFeGNlcHRpb24oKmxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0
ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1
ZSkpKTsKKyAgICAgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVj
ZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhp
c09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9w
ZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHJldmlzaW9u
IDI2Njk2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIzOCw3ICsyMzgsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVuCiAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBj
b252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgdGhpc09i
amVjdC0+d3JhcHBlZCgpLmluZGV4ZWRTZXR0ZXIoaW5kZXgudmFsdWUoKSwgV1RGTW92ZShuYXRp
dmVWYWx1ZSkpOworICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5l
Y2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRo
aXNPYmplY3QtPndyYXBwZWQoKS5pbmRleGVkU2V0dGVyKGluZGV4LnZhbHVlKCksIFdURk1vdmUo
bmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMjUx
LDcgKzI1MSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW4KICAg
ICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRW
TShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0g
Y29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAg
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICAg
ICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkU2V0dGVyKHByb3BlcnR5TmFtZVRvU3RyaW5n
KHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgICAgIGludm9r
ZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVk
U2V0dGVyKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZl
VmFsdWUpKTsgfSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0K
QEAgLTI2OSw3ICsyNjksNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVuCiAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBj
b252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgdGhpc09i
amVjdC0+d3JhcHBlZCgpLmluZGV4ZWRTZXR0ZXIoaW5kZXgsIFdURk1vdmUobmF0aXZlVmFsdWUp
KTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3Nhcnko
KmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0
LT53cmFwcGVkKCkuaW5kZXhlZFNldHRlcihpbmRleCwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0yODIsNyArMjgyLDcgQEAgYm9v
bCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbgogICAgICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVj
dCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgIHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZFNl
dHRlcihwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZh
bHVlKSk7CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNz
YXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09i
amVjdC0+d3JhcHBlZCgpLm5hbWVkU2V0dGVyKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5
TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIApAQCAtMzAwLDcgKzMwMCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyV2l0aElkZW4KICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgYXV0byBuYXRpdmVW
YWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVy
dHlEZXNjcmlwdG9yLnZhbHVlKCkpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93
U2NvcGUsIHRydWUpOwotICAgICAgICB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaW5kZXhlZFNldHRl
cihpbmRleC52YWx1ZSgpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgICAgIGludm9rZUZ1
bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLmluZGV4ZWRT
ZXR0ZXIoaW5kZXgudmFsdWUoKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0zMTQsNyArMzE0LDcgQEAgYm9vbCBKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbgogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAg
ICAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHByb3BlcnR5RGVzY3JpcHRvci52YWx1ZSgpKTsKICAgICAgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgICAgICB0aGlz
T2JqZWN0LT53cmFwcGVkKCkubmFtZWRTZXR0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVy
dHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICAgICAgaW52b2tlRnVuY3Rv
clByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRTZXR0ZXIo
cHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkp
OyB9KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVy
Tm9JZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCShyZXZpc2lv
biAyNjY5NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUsNyAr
MjE1LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6cHV0KAogICAgICAg
ICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252
ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgICAgICB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHBy
b3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgICAgIGludm9rZUZ1
bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVk
SXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZh
bHVlKSk7IH0pOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkBA
IC0yMzgsNyArMjM4LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6cHV0
QgogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29u
dmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgIHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlO
YW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFn
YXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVy
dHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0yNjAsNyArMjYwLDcgQEAgYm9vbCBK
U1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6ZGVmaQogICAgICAgICAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmpl
Y3QpKTsKICAgICAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmlu
Zz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5RGVzY3JpcHRvci52YWx1ZSgpKTsKICAg
ICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAg
ICAgICB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3Ry
aW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgICAgIGlu
dm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLnNl
dE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5h
dGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAg
ICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24uY3BwCShyZXZpc2lvbiAyNjY5NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIxNSw3ICsyMTUsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb246CiAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICAg
ICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdmFsdWUpOwogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Nj
b3BlLCB0cnVlKTsKLSAgICAgICAgICAgIHByb3BhZ2F0ZUV4Y2VwdGlvbigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShw
cm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSkp
OworICAgICAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3Nh
cnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5
TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTIzOCw3ICsyMzgsNyBAQCBib29sIEpTVGVzdE5hbWVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb246CiAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAg
IGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxP
YmplY3QsIHZhbHVlKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0
cnVlKTsKLSAgICAgICAgcHJvcGFnYXRlRXhjZXB0aW9uKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0
aHJvd1Njb3BlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFt
ZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKSk7CisgICAgICAg
IGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgp
LnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3Zl
KG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTI2
MCw3ICsyNjAsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246CiAg
ICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9
IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlEZXNj
cmlwdG9yLnZhbHVlKCkpOwogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Nj
b3BlLCB0cnVlKTsKLSAgICAgICAgICAgIHByb3BhZ2F0ZUV4Y2VwdGlvbigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShw
cm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSkp
OworICAgICAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3Nh
cnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5
TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDI2Njk2OCkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIxLDcgKzIyMSw3IEBAIGJvb2wgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6cHUKICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAg
ICAgICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLm5h
bWVkU2V0dGVyKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0
aXZlVmFsdWUpKTsKKyAgICAgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlv
bklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1
cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkU2V0dGVyKHByb3BlcnR5TmFtZVRvU3RyaW5n
KHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTI0NCw3ICsyNDQsNyBAQCBib29sIEpT
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnB1CiAgICAgICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7
CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJv
d1Njb3BlLCB0cnVlKTsKLSAgICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkU2V0dGVy
KHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUp
KTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3Nhcnko
KmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0
LT53cmFwcGVkKCkubmFtZWRTZXR0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1l
KSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCkBAIC0yNjYsNyArMjY2LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyOjpkZQogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgICAgIGF1dG8gbmF0
aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHBy
b3BlcnR5RGVzY3JpcHRvci52YWx1ZSgpKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgICAgICB0aGlzT2JqZWN0LT53cmFwcGVkKCku
bmFtZWRTZXR0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShu
YXRpdmVWYWx1ZSkpOworICAgICAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0
aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJl
dHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRTZXR0ZXIocHJvcGVydHlOYW1lVG9TdHJp
bmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgICAg
IHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAkocmV2aXNpb24gMjY2OTY4
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDMsNyArMjQz
LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyOgogICAgICAgICAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0
PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgICAgICB0aGlz
T2JqZWN0LT53cmFwcGVkKCkubmFtZWRTZXR0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVy
dHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICAgICAgaW52b2tlRnVuY3Rv
clByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRTZXR0ZXIo
cHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkp
OyB9KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAtMjY2
LDcgKzI2Niw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcjoKICAg
ICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8
SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICB0aGlzT2JqZWN0LT53
cmFwcGVkKCkubmFtZWRTZXR0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwg
V1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdF
eGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZd
IHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZFNldHRlcihwcm9wZXJ0eU5hbWVU
b1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTI5MSw3ICsyOTEsNyBAQCBib29sIEpTVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI6CiAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwog
ICAgICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlEZXNjcmlwdG9yLnZhbHVlKCkpOwogICAgICAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgICAgIHRo
aXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZFNldHRlcihwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9w
ZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgICAgICAgICBpbnZva2VGdW5j
dG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZFNldHRl
cihwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVl
KSk7IH0pOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCShyZXZpc2lvbiAyNjY5NjgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckFuZFNldHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzOCw3ICsyMzgsNyBAQCBib29s
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBCiAgICAgICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0
aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLmluZGV4ZWRT
ZXR0ZXIoaW5kZXgudmFsdWUoKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICBpbnZv
a2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9i
amVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pbmRl
eGVkU2V0dGVyKGluZGV4LnZhbHVlKCksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMjUxLDcgKzI1MSw3IEBAIGJvb2wgSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckEKICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7
CiAgICAgICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgp
Lm5hbWVkU2V0dGVyKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUo
bmF0aXZlVmFsdWUpKTsKKyAgICAgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2Vw
dGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyBy
ZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkU2V0dGVyKHByb3BlcnR5TmFtZVRvU3Ry
aW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTI2OSw3ICsyNjksNyBAQCBib29s
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBCiAgICAgICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0
KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxl
eGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0
aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLmluZGV4ZWRT
ZXR0ZXIoaW5kZXgsIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgaW52b2tlRnVuY3Rv
clByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaW5kZXhlZFNldHRl
cihpbmRleCwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCkBAIC0yODIsNyArMjgyLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQQogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2
ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1
ZSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAg
ICAgIHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZFNldHRlcihwcm9wZXJ0eU5hbWVUb1N0cmlu
Zyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgICAgIGludm9rZUZ1
bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkU2V0
dGVyKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFs
dWUpKTsgfSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMzAwLDcgKzMwMCw3
IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckEKICAgICAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpKTsKICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3Ry
aW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlEZXNjcmlwdG9yLnZhbHVlKCkpOwog
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuaW5kZXhlZFNldHRlcihpbmRleC52YWx1ZSgpLCBXVEZNb3Zl
KG5hdGl2ZVZhbHVlKSk7CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlv
bklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1
cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLmluZGV4ZWRTZXR0ZXIoaW5kZXgudmFsdWUoKSwgV1RG
TW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBA
IC0zMTQsNyArMzE0LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
QQogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6
OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgICAgIGF1dG8gbmF0aXZlVmFs
dWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5
RGVzY3JpcHRvci52YWx1ZSgpKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhy
b3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgICAgICB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRT
ZXR0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVW
YWx1ZSkpOworICAgICAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZO
ZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0
aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRTZXR0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJv
cGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJ
bnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAkocmV2
aXNpb24gMjY2OTY4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMTAsNyArMjEwLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lPdmVycmlkZQogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZh
bHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7
CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAg
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmco
cHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICBpbnZva2VGdW5j
dG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0
ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1
ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0yMjcsNyArMjI3LDcg
QEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lPdmVycmlkZQogICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSk7CiAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dT
Y29wZSwgdHJ1ZSk7Ci0gICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9w
ZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7Cisg
ICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxH
bG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVk
KCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1v
dmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTI0Miw3ICsy
NDIsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlCiAgICAgICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2Fs
R2xvYmFsT2JqZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERP
TVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5RGVzY3JpcHRvci52YWx1ZSgp
KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAg
ICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmlu
Zyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgICAgIGludm9rZUZ1
bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVk
SXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZh
bHVlKSk7IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZv
cmdlYWJsZVByb3BlcnRpZXMuY3BwCShyZXZpc2lvbiAyNjY5NjgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5m
b3JnZWFibGVQcm9wZXJ0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM5LDcgKzIzOSw3IEBA
IGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWEKICAgICAgICAgICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KSk7CiAgICAgICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExE
T01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICAgICAgdGhpc09iamVj
dC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5h
bWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgICAgICAgICBpbnZva2VGdW5jdG9yUHJv
cGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJv
cGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9
KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAtMjYyLDcg
KzI2Miw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWEKICAgICAg
ICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGlj
YWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURM
RE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICB0aGlzT2JqZWN0LT53cmFw
cGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdU
Rk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhj
ZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7
IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRv
U3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMjkwLDcgKzI5MCw3IEBAIHN0YXRpYyBib29sIGlz
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0eU4KICAgICAgICAgICAgICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkp
OwogICAgICAgICAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmlu
Zz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5RGVzY3JpcHRvci52YWx1ZSgpKTsKICAg
ICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAg
ICAgICAgICAgICAgIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlO
YW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAg
ICAgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+
d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUp
LCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICAgICAgfQogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQ
cm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0
aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3Bw
CShyZXZpc2lvbiAyNjY5NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5k
TGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzNCw3ICsyMzQs
NyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhCiAgICAgICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xv
YmFsT2JqZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0
cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgp
LnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3Zl
KG5hdGl2ZVZhbHVlKSk7CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlv
bklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1
cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmlu
Zyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTI1MSw3ICsyNTEsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aExlZ2FjeVVuZm9yZ2VhCiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICBhdXRvIG5hdGl2
ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1
ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICB0aGlz
T2JqZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3Bl
cnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICBpbnZva2VGdW5jdG9yUHJvcGFn
YXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVy
dHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjcyLDcgKzI3Miw3IEBAIHN0YXRpYyBib29sIGlz
TGVnYWN5VW5mb3JnZWFibGVQcm9wZXJ0eU4KICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAg
ICAgICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eURlc2NyaXB0b3IudmFsdWUoKSk7CiAgICAgICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICAgICAgdGhp
c09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9w
ZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgICAgICAgICBpbnZva2VGdW5j
dG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0
ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1
ZSkpOyB9KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAkocmV2aXNpb24g
MjY2OTY4KQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC00OSw3ICs0OSw3IEBACiAgICAgLy8gcHJlZml4ZXMgZm9yIHRoaXMg
dG8gYmUgcHJhY3RpY2FsLiBJZiB3ZSByZW1vdmUgbGVnYWN5IGFsaWFzZXMsIHdlIHNob3VsZAog
ICAgIC8vIHJlY29uc2lkZXIgdGhpcyBkZWNpc2lvbi4KICAgICBnZXR0ZXIgKERPTVN0cmluZyBv
ciBkb3VibGUpIChET01TdHJpbmcgbmFtZSk7Ci0gICAgW0NFUmVhY3Rpb25zLCBNYXlUaHJvd0V4
Y2VwdGlvbiwgQ2FsbE5hbWVkU2V0dGVyT25seUZvclN1cHBvcnRlZFByb3BlcnRpZXNdIHNldHRl
ciB1bmRlZmluZWQgKERPTVN0cmluZyBuYW1lLCBbTGVnYWN5TnVsbFRvRW1wdHlTdHJpbmddIERP
TVN0cmluZyB2YWx1ZSk7CisgICAgW0NFUmVhY3Rpb25zLCBDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9y
U3VwcG9ydGVkUHJvcGVydGllc10gc2V0dGVyIHVuZGVmaW5lZCAoRE9NU3RyaW5nIG5hbWUsIFtM
ZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3RyaW5nIHZhbHVlKTsKIAogICAgIC8vIFRoaXMg
bWV0aG9kIGlzIGRlcHJlY2F0ZWQsIGFuZCB3ZSB3b3VsZCBsaWtlIHRvIGRyb3Agc3VwcG9ydCBm
b3IgaXQgc29tZWRheQogICAgIERlcHJlY2F0ZWRDU1NPTVZhbHVlPyBnZXRQcm9wZXJ0eUNTU1Zh
bHVlKERPTVN0cmluZyBwcm9wZXJ0eU5hbWUpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RP
TVN0cmluZ01hcC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmlu
Z01hcC5pZGwJKHJldmlzaW9uIDI2Njk2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9ET01TdHJp
bmdNYXAuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBACiAgICAgU2tpcFZUYWJs
ZVZhbGlkYXRpb24sCiBdIGludGVyZmFjZSBET01TdHJpbmdNYXAgewogICAgIGdldHRlciBET01T
dHJpbmcgKERPTVN0cmluZyBuYW1lKTsKLSAgICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0
aW9uXSBzZXR0ZXIgdW5kZWZpbmVkIChET01TdHJpbmcgbmFtZSwgRE9NU3RyaW5nIHZhbHVlKTsK
KyAgICBbQ0VSZWFjdGlvbnNdIHNldHRlciB1bmRlZmluZWQgKERPTVN0cmluZyBuYW1lLCBET01T
dHJpbmcgdmFsdWUpOwogICAgIFtDRVJlYWN0aW9uc10gZGVsZXRlciB1bmRlZmluZWQgKERPTVN0
cmluZyBuYW1lKTsKIH07CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Pci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Pci5oCShyZXZpc2lv
biAyNjY5NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uT3IuaAkod29ya2luZyBj
b3B5KQpAQCAtMjksNiArMjksNyBAQCBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJCiAjaW5jbHVkZSAiRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFk
Q29waWVyLmg+CiAjaW5jbHVkZSA8d3RmL0V4cGVjdGVkLmg+CisjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE5OSw2ICsyMDAsOCBAQCBp
bmxpbmUgRXhjZXB0aW9uT3I8dm9pZD4gaXNvbGF0ZWRDb3B5KEV4CiAgICAgcmV0dXJuIHsgfTsK
IH0KIAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBJc0V4Y2VwdGlvbk9yIDogcHVibGlj
IHN0ZDo6aW50ZWdyYWxfY29uc3RhbnQ8Ym9vbCwgV1RGOjpJc1RlbXBsYXRlPHN0ZDo6ZGVjYXlf
dDxUPiwgRXhjZXB0aW9uT3I+Ojp2YWx1ZT4geyB9OworCiB9CiAKIG5hbWVzcGFjZSBXVEYgewpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaWRsCShyZXZpc2lvbiAyNjY5NjgpCisrKyBT
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3
ICszMCw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwog
ICAgIERPTVN0cmluZz8ga2V5KHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIGdldHRlciBET01T
dHJpbmc/IGdldEl0ZW0oRE9NU3RyaW5nIGtleSk7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBz
ZXR0ZXIgdW5kZWZpbmVkIHNldEl0ZW0oRE9NU3RyaW5nIGtleSwgRE9NU3RyaW5nIGRhdGEpOwor
ICAgIHNldHRlciB1bmRlZmluZWQgc2V0SXRlbShET01TdHJpbmcga2V5LCBET01TdHJpbmcgZGF0
YSk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBkZWxldGVyIHVuZGVmaW5lZCByZW1vdmVJdGVt
KERPTVN0cmluZyBrZXkpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIGNsZWFy
KCk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmlkbAkocmV2aXNpb24g
MjY2OTY4KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC0zNyw1ICszNyw1IEBACiAgICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdMZW5n
dGggcmVwbGFjZUl0ZW0oU1ZHTGVuZ3RoIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwog
ICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHTGVuZ3RoIHJlbW92ZUl0ZW0odW5zaWduZWQgbG9u
ZyBpbmRleCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdMZW5ndGggYXBwZW5kSXRlbShT
VkdMZW5ndGggbmV3SXRlbSk7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBzZXR0ZXIgdW5kZWZp
bmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBTVkdMZW5ndGggbmV3SXRlbSk7CisgICAgc2V0dGVy
IHVuZGVmaW5lZCAodW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHTGVuZ3RoIG5ld0l0ZW0pOwogfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5pZGwJKHJldmlzaW9uIDI2Njk2OCkK
KysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMzUsNSArMzUsNSBAQCBpbnRlcmZhY2UgU1ZHTnVtYmVyTGlzdCB7CiAgICAgW01heVRocm93
RXhjZXB0aW9uXSBTVkdOdW1iZXIgcmVwbGFjZUl0ZW0oU1ZHTnVtYmVyIG5ld0l0ZW0sIHVuc2ln
bmVkIGxvbmcgaW5kZXgpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHTnVtYmVyIHJlbW92
ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdO
dW1iZXIgYXBwZW5kSXRlbShTVkdOdW1iZXIgbmV3SXRlbSk7Ci0gICAgW01heVRocm93RXhjZXB0
aW9uXSBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBTVkdOdW1iZXIgbmV3
SXRlbSk7CisgICAgc2V0dGVyIHVuZGVmaW5lZCAodW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHTnVt
YmVyIG5ld0l0ZW0pOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlz
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0Lmlk
bAkocmV2aXNpb24gMjY2OTY4KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzUsNSArMzUsNSBAQCBpbnRlcmZhY2UgU1ZHUGF0aFNl
Z0xpc3QgewogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHUGF0aFNlZyByZXBsYWNlSXRlbShT
VkdQYXRoU2VnIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gU1ZHUGF0aFNlZyByZW1vdmVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAg
IFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHUGF0aFNlZyBhcHBlbmRJdGVtKFNWR1BhdGhTZWcgbmV3
SXRlbSk7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25l
ZCBsb25nIGluZGV4LCBTVkdQYXRoU2VnIG5ld0l0ZW0pOworICAgIHNldHRlciB1bmRlZmluZWQg
KHVuc2lnbmVkIGxvbmcgaW5kZXgsIFNWR1BhdGhTZWcgbmV3SXRlbSk7CiB9OwpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5pZGwJKHJldmlzaW9uIDI2Njk2OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw1ICszNCw1
IEBAIGludGVyZmFjZSBTVkdQb2ludExpc3QgewogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZH
UG9pbnQgcmVwbGFjZUl0ZW0oU1ZHUG9pbnQgbmV3SXRlbSwgdW5zaWduZWQgbG9uZyBpbmRleCk7
CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdQb2ludCByZW1vdmVJdGVtKHVuc2lnbmVkIGxv
bmcgaW5kZXgpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHUG9pbnQgYXBwZW5kSXRlbShT
VkdQb2ludCBuZXdJdGVtKTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHNldHRlciB1bmRlZmlu
ZWQgKHVuc2lnbmVkIGxvbmcgaW5kZXgsIFNWR1BvaW50IG5ld0l0ZW0pOworICAgIHNldHRlciB1
bmRlZmluZWQgKHVuc2lnbmVkIGxvbmcgaW5kZXgsIFNWR1BvaW50IG5ld0l0ZW0pOwogfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5pZGwJKHJldmlzaW9uIDI2Njk2OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MzQsNSArMzQsNSBAQCBpbnRlcmZhY2UgU1ZHU3RyaW5nTGlzdCB7CiAgICAgW01heVRocm93RXhj
ZXB0aW9uXSBET01TdHJpbmcgcmVwbGFjZUl0ZW0oRE9NU3RyaW5nIG5ld0l0ZW0sIHVuc2lnbmVk
IGxvbmcgaW5kZXgpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHJlbW92ZUl0
ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJp
bmcgYXBwZW5kSXRlbShET01TdHJpbmcgbmV3SXRlbSk7Ci0gICAgW01heVRocm93RXhjZXB0aW9u
XSBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBET01TdHJpbmcgbmV3SXRl
bSk7CisgICAgc2V0dGVyIHVuZGVmaW5lZCAodW5zaWduZWQgbG9uZyBpbmRleCwgRE9NU3RyaW5n
IG5ld0l0ZW0pOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5p
ZGwJKHJldmlzaW9uIDI2Njk2OCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1M
aXN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUsNyBAQCBpbnRlcmZhY2UgU1ZHVHJh
bnNmb3JtTGlzdCB7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdUcmFuc2Zvcm0gcmVwbGFj
ZUl0ZW0oU1ZHVHJhbnNmb3JtIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIFtN
YXlUaHJvd0V4Y2VwdGlvbl0gU1ZHVHJhbnNmb3JtIHJlbW92ZUl0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdUcmFuc2Zvcm0gYXBwZW5kSXRlbShT
VkdUcmFuc2Zvcm0gbmV3SXRlbSk7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBzZXR0ZXIgdW5k
ZWZpbmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBTVkdUcmFuc2Zvcm0gbmV3SXRlbSk7CisgICAg
c2V0dGVyIHVuZGVmaW5lZCAodW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHVHJhbnNmb3JtIG5ld0l0
ZW0pOwogCiAgICAgW01heVRocm93RXhjZXB0aW9uLCBOZXdPYmplY3RdIFNWR1RyYW5zZm9ybSBj
cmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KG9wdGlvbmFsIERPTU1hdHJpeDJESW5pdCBtYXRy
aXgpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHVHJhbnNmb3JtIGNvbnNvbGlkYXRlKCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408654</attachid>
            <date>2020-09-13 10:30:21 -0700</date>
            <delta_ts>2020-09-13 11:13:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216441-20200913103020.patch</filename>
            <type>text/plain</type>
            <size>53785</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2Njk5NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU5IEBACisyMDIwLTA5LTEzICBTYW0gV2Vp
bmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViSURMXSBSZW1vdmUgbmVlZCBm
b3IgW01heVRocm93RXhjZXB0aW9uXSBvbiBpbmRleGVkIGFuZCBuYW1lZCBzZXR0ZXJzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTY0NDEKKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBEZWR1Y2UgaW1wbGVtZW50
YXRpb24gcG90ZW50aWFsbHkgdGhyb3dpbmcgYnkgaW50cm9zcGVjdGluZyB0aGUgcmV0dXJuCisg
ICAgICAgIHR5cGUgb2YgdGhlIHNldHRlcnMgaW1wbGVtZW50YXRpb24gaW4gYSBuZXcgaGVscGVy
LCBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeS4gCisgICAgICAg
IFRoaXMgYWxsb3dzIHVzIHRvIHJlbW92ZSBhbm90aGVyIHNldCBvZiB1c2VzIG9mIFtNYXlUaHJv
d0V4Y2VwdGlvbl0uCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRCYXNlLmg6
CisgICAgICAgICogZG9tL0V4Y2VwdGlvbk9yLmg6CisgICAgICAgIE1vdmUgSXNFeGNlcHRpb25P
ciB0byBFeGNlcHRpb25Pci5oIHNvIGl0IGNhbiBiZSB1c2VkIG1vcmUgd2lkZWx5LgorCisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oOgorICAgICAgICAoV2Vi
Q29yZTo6aW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkpOgorICAg
ICAgICBBZGQgaGVscGVyIHRoYXQgaW52b2tlcyB0aGUgcGFzc2VkIGluIGZ1bmN0b3IgYW5kIGNh
bGxzIHByb3BhZ2F0ZUV4Y2VwdGlvbgorICAgICAgICBpZiB0aGUgcmV0dXJuIHR5cGUgd2FzIGFu
IEV4Y2VwdGlvbk9yPD4uIElmIHRoZSByZXR1cm4gdHlwZSBpcyBub3QgYW4gCisgICAgICAgIEV4
Y2VwdGlvbk9yPD4sIGl0IGp1c3QgaW52b2tlcyB0aGUgZnVuY3RvciBhbmQgcmV0dXJucy4KKwor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtOgorICAgICAgICAo
R2VuZXJhdGVJbnZva2VJbmRleGVkUHJvcGVydHlTZXR0ZXIpOgorICAgICAgICAoR2VuZXJhdGVJ
bnZva2VOYW1lZFByb3BlcnR5U2V0dGVyKToKKyAgICAgICAgVXBkYXRlIHRvIGNhbGwgaW52b2tl
RnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkuCisKKyAgICAgICAgKiBjc3Mv
Q1NTU3R5bGVEZWNsYXJhdGlvbi5pZGw6CisgICAgICAgICogZG9tL0RPTVN0cmluZ01hcC5pZGw6
CisgICAgICAgICogc3RvcmFnZS9TdG9yYWdlLmlkbDoKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3Ro
TGlzdC5pZGw6CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3QuaWRsOgorICAgICAgICAqIHN2
Zy9TVkdQYXRoU2VnTGlzdC5pZGw6CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdC5pZGw6Cisg
ICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3QuaWRsOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zv
cm1MaXN0LmlkbDoKKyAgICAgICAgUmVtb3ZlIG5vdyB1bm5lZWRlZCBbTWF5VGhyb3dFeGNlcHRp
b25dLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0
dGVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJv
cGVydGllcy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2VhYmxlUHJvcGVydGllc0FuZExlZ2FjeU92ZXJyaWRl
QnVpbHRJbnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0SW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmlkbDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb24uaWRsOgorICAgICAgICBVcGRhdGUgdGVzdHMvZXhwZWN0YXRpb25zLgorCiAyMDIwLTA5
LTEzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bVHJl
ZSBidWlsZGluZ10gVGFibGUgcm93cyBtYXkgbm90IGhhdmUgYW55IGNoaWxkcmVuLgpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0QmFzZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydEJhc2UuaAkocmV2aXNp
b24gMjY2OTk3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0QmFz
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NywxMCArODcsNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBFeGNlcHRpb25UCiB9CiAKIAotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci1zdHJ1
Y3QgSXNFeGNlcHRpb25PciA6IHB1YmxpYyBzdGQ6OmludGVncmFsX2NvbnN0YW50PGJvb2wsIFdU
Rjo6SXNUZW1wbGF0ZTxzdGQ6OmRlY2F5X3Q8VD4sIEV4Y2VwdGlvbk9yPjo6dmFsdWU+IHsgfTsK
LQotCiAvLyBDb252ZXJzaW9uIGZyb20gSW1wbGVtZW50YXRpb24gLT4gSlNWYWx1ZQogdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RydWN0IEpTQ29udmVydGVyOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCShyZXZpc2lv
biAyNjY5OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhh
bmRsaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTg5LDQgKzg5LDE4IEBAIGlubGluZSB2b2lkIHBy
b3BhZ2F0ZUV4Y2VwdGlvbihKU0M6OkpTR2wKICAgICAgICAgcHJvcGFnYXRlRXhjZXB0aW9uKGxl
eGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIHZhbHVlLnJlbGVhc2VFeGNlcHRpb24oKSk7
CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHZvaWQgaW52b2tlRnVuY3RvclByb3Bh
Z2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEds
b2JhbE9iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiB0aHJvd1Njb3BlLCBGdW5jdG9yJiYgZnVuY3Rv
cikKK3sKKyAgICB1c2luZyBSZXR1cm5UeXBlID0gc3RkOjppbnZva2VfcmVzdWx0X3Q8RnVuY3Rv
cj47CisKKyAgICBpZiBjb25zdGV4cHIgKElzRXhjZXB0aW9uT3I8UmV0dXJuVHlwZT46OnZhbHVl
KSB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gZnVuY3RvcigpOworICAgICAgICBpZiAoVU5MSUtF
TFkocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSkKKyAgICAgICAgICAgIHByb3BhZ2F0ZUV4Y2VwdGlv
bihsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCByZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGZ1bmN0b3IoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDI2Njk5NykKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNv
cHkpCkBAIC04OTcsOSArODk3LDcgQEAgc3ViIEdlbmVyYXRlSW52b2tlSW5kZXhlZFByb3BlcnR5
U2V0dGVyCiAgICAgbXkgJGluZGV4ZWRTZXR0ZXJGdW5jdGlvbk5hbWUgPSAkaW5kZXhlZFNldHRl
ck9wZXJhdGlvbi0+bmFtZSB8fCAic2V0SXRlbSI7CiAgICAgbXkgJG5hdGl2ZVZhbHVlUGFzc0V4
cHJlc3Npb24gPSBQYXNzQXJndW1lbnRFeHByZXNzaW9uKCJuYXRpdmVWYWx1ZSIsICRhcmd1bWVu
dCk7CiAgICAgbXkgJGZ1bmN0aW9uU3RyaW5nID0gInRoaXNPYmplY3QtPndyYXBwZWQoKS4ke2lu
ZGV4ZWRTZXR0ZXJGdW5jdGlvbk5hbWV9KCR7aW5kZXhFeHByZXNzaW9ufSwgJHtuYXRpdmVWYWx1
ZVBhc3NFeHByZXNzaW9ufSkiOwotICAgICRmdW5jdGlvblN0cmluZyA9ICJwcm9wYWdhdGVFeGNl
cHRpb24oKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsICR7ZnVuY3Rpb25TdHJpbmd9
KSIgaWYgTmVlZHNFeHBsaWNpdFByb3BhZ2F0ZUV4Y2VwdGlvbkNhbGwoJGluZGV4ZWRTZXR0ZXJP
cGVyYXRpb24pOwotICAgIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICRmdW5j
dGlvblN0cmluZyAuICI7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAi
aW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9i
YWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiAke2Z1bmN0aW9uU3RyaW5nfTsgfSk7
XG4iKTsKIH0KIAogIyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNpbnZva2UtbmFt
ZWQtc2V0dGVyCkBAIC05MjUsOSArOTIzLDcgQEAgc3ViIEdlbmVyYXRlSW52b2tlTmFtZWRQcm9w
ZXJ0eVNldHRlcgogICAgIHB1c2goQGFyZ3VtZW50cywgImlzUHJvcGVydHlTdXBwb3J0ZWQiKSBp
ZiAkbmFtZWRTZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NhbGxOYW1lZFNl
dHRlck9ubHlGb3JTdXBwb3J0ZWRQcm9wZXJ0aWVzfTsKIAogICAgIG15ICRmdW5jdGlvblN0cmlu
ZyA9ICJ0aGlzT2JqZWN0LT53cmFwcGVkKCkuJHtuYW1lZFNldHRlckZ1bmN0aW9uTmFtZX0oIiAu
IGpvaW4oIiwgIiwgQGFyZ3VtZW50cykgLiAiKSI7Ci0gICAgJGZ1bmN0aW9uU3RyaW5nID0gInBy
b3BhZ2F0ZUV4Y2VwdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgJHtmdW5j
dGlvblN0cmluZ30pIiBpZiBOZWVkc0V4cGxpY2l0UHJvcGFnYXRlRXhjZXB0aW9uQ2FsbCgkbmFt
ZWRTZXR0ZXJPcGVyYXRpb24pOwotCi0gICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4g
JGZ1bmN0aW9uU3RyaW5nIC4gIjtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVu
dCAuICJpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuICR7ZnVuY3Rpb25TdHJpbmd9
OyB9KTtcbiIpOwogfQogCiBzdWIgR2VuZXJhdGVQdXQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDI2Njk5NykKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0SW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogICov
CiAKIGludGVyZmFjZSBUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIHsKLSAgICBb
TWF5VGhyb3dFeGNlcHRpb25dIHNldHRlciB1bmRlZmluZWQgKHVuc2lnbmVkIGxvbmcgaW5kZXgs
IERPTVN0cmluZyB2YWx1ZSk7CisgICAgc2V0dGVyIHVuZGVmaW5lZCAodW5zaWduZWQgbG9uZyBp
bmRleCwgRE9NU3RyaW5nIHZhbHVlKTsKIAogICAgIC8vIE5PVEU6IEluZGV4ZWQgc2V0dGVycyBy
ZXF1aXJlIHRoZSBwcmVzZW5jZSBvZiBhIGluZGV4ZWQgZ2V0dGVyIGFzIHdlbGwuCiAgICAgZ2V0
dGVyIERPTVN0cmluZyAodW5zaWduZWQgbG9uZyBpbmRleCk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmlkbAko
cmV2aXNpb24gMjY2OTk3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDkgKzI0LDkgQEAKICAqLwogCiBpbnRlcmZhY2UgVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uIHsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHNl
dHRlciB1bmRlZmluZWQgKERPTVN0cmluZyBuYW1lLCBET01TdHJpbmcgdmFsdWUpOworICAgIHNl
dHRlciB1bmRlZmluZWQgKERPTVN0cmluZyBuYW1lLCBET01TdHJpbmcgdmFsdWUpOwogICAgIGdl
dHRlciBET01TdHJpbmcgKERPTVN0cmluZyBuYW1lKTsKIAotICAgIFtNYXlUaHJvd0V4Y2VwdGlv
bl0gc2V0dGVyIHVuZGVmaW5lZCAodW5zaWduZWQgbG9uZyBpbmRleCwgRE9NU3RyaW5nIHZhbHVl
KTsKKyAgICBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBET01TdHJpbmcg
dmFsdWUpOwogICAgIGdldHRlciBET01TdHJpbmcgKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogfTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0TmFtZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmlkbAko
cmV2aXNpb24gMjY2OTk3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MjQsNyArMjQsNyBAQAogICovCiAKIGludGVyZmFjZSBUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbiB7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBzZXR0ZXIgdW5kZWZpbmVkIChET01T
dHJpbmcgbmFtZSwgRE9NU3RyaW5nIHZhbHVlKTsKKyAgICBzZXR0ZXIgdW5kZWZpbmVkIChET01T
dHJpbmcgbmFtZSwgRE9NU3RyaW5nIHZhbHVlKTsKIAogICAgIC8vIE5PVEU6IE5hbWVkIHNldHRl
cnMgcmVxdWlyZSB0aGUgcHJlc2VuY2Ugb2YgYSBuYW1lZCBnZXR0ZXIgYXMgd2VsbC4KICAgICBn
ZXR0ZXIgRE9NU3RyaW5nIChET01TdHJpbmcgbmFtZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyNjY5OTcpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5OCw3ICsxOTgsNyBAQCBi
b29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OnB1CiAgICAgICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
Tih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldEl0
ZW0oaW5kZXgudmFsdWUoKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICBpbnZva2VG
dW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXRJdGVt
KGluZGV4LnZhbHVlKCksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIApAQCAtMjE0LDcgKzIxNCw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllcjo6cHUKICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgYXV0
byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUp
OwotICAgICAgICB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0SXRlbShpbmRleCwgV1RGTW92ZShu
YXRpdmVWYWx1ZSkpOworICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25J
Zk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJu
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXRJdGVtKGluZGV4LCBXVEZNb3ZlKG5hdGl2ZVZhbHVl
KSk7IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTIzMiw3ICsyMzIsNyBA
QCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmRlCiAgICAgICAgIGF1dG8g
dGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFs
T2JqZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmlu
Zz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5RGVzY3JpcHRvci52YWx1ZSgpKTsKICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgdGhp
c09iamVjdC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgudmFsdWUoKSwgV1RGTW92ZShuYXRpdmVW
YWx1ZSkpOworICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vz
c2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNP
YmplY3QtPndyYXBwZWQoKS5zZXRJdGVtKGluZGV4LnZhbHVlKCksIFdURk1vdmUobmF0aXZlVmFs
dWUpKTsgfSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHJl
dmlzaW9uIDI2Njk5NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOTgsNyArMTk4LDcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpbwogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0g
Y29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgIHByb3Bh
Z2F0ZUV4Y2VwdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgdGhpc09iamVj
dC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgudmFsdWUoKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkp
KTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3Nhcnko
KmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0
LT53cmFwcGVkKCkuc2V0SXRlbShpbmRleC52YWx1ZSgpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7
IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTIxNCw3ICsyMTQsNyBAQCBi
b29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvCiAgICAgICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2Jq
ZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4o
KmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
Tih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgcHJvcGFnYXRlRXhjZXB0aW9uKCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0SXRlbShp
bmRleCwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpKTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3Bh
Z2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2Nv
cGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0SXRlbShpbmRleCwgV1RG
TW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBA
IC0yMzIsNyArMjMyLDcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
bwogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29u
dmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eURlc2NyaXB0
b3IudmFsdWUoKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1
ZSk7Ci0gICAgICAgIHByb3BhZ2F0ZUV4Y2VwdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgudmFsdWUoKSwgV1RG
TW92ZShuYXRpdmVWYWx1ZSkpKTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhj
ZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7
IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0SXRlbShpbmRleC52YWx1ZSgpLCBXVEZN
b3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIu
Y3BwCShyZXZpc2lvbiAyNjY5OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjA1LDcgKzIwNSw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyOjoKICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgYXV0byBuYXRpdmVWYWx1
ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwog
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuaW5kZXhlZFNldHRlcihpbmRleC52YWx1ZSgpLCBXVEZNb3Zl
KG5hdGl2ZVZhbHVlKSk7CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlv
bklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1
cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLmluZGV4ZWRTZXR0ZXIoaW5kZXgudmFsdWUoKSwgV1RG
TW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBA
IC0yMjEsNyArMjIxLDcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6
OgogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29u
dmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgIHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5pbmRleGVkU2V0dGVyKGluZGV4LCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7
CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+
d3JhcHBlZCgpLmluZGV4ZWRTZXR0ZXIoaW5kZXgsIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMjM5LDcgKzIzOSw3IEBAIGJvb2wg
SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjoKICAgICAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
KTsKICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4
aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlEZXNjcmlwdG9yLnZhbHVlKCkpOwogICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICB0aGlzT2JqZWN0
LT53cmFwcGVkKCkuaW5kZXhlZFNldHRlcihpbmRleC52YWx1ZSgpLCBXVEZNb3ZlKG5hdGl2ZVZh
bHVlKSk7CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNz
YXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09i
amVjdC0+d3JhcHBlZCgpLmluZGV4ZWRTZXR0ZXIoaW5kZXgudmFsdWUoKSwgV1RGTW92ZShuYXRp
dmVWYWx1ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyLmNwcAkocmV2aXNpb24gMjY2OTk3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIyOSw3ICsyMjksNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlck5vSWRlbnRpCiAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgIGF1dG8g
bmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3Qs
IHZhbHVlKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsK
LSAgICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgudmFsdWUoKSwgV1RG
TW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNl
cHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsg
cmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXRJdGVtKGluZGV4LnZhbHVlKCksIFdURk1v
dmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAt
MjQyLDcgKzI0Miw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGkK
ICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpn
ZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgICAgICBhdXRvIG5hdGl2ZVZhbHVl
ID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAg
ICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAg
ICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0
cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgICAgICAgICBp
bnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5z
ZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShu
YXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMjYwLDcgKzI2MCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGkKICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShK
U0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgYXV0byBuYXRpdmVWYWx1
ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwog
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0SXRlbShpbmRleCwgV1RGTW92ZShuYXRpdmVWYWx1ZSkp
OworICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3Qt
PndyYXBwZWQoKS5zZXRJdGVtKGluZGV4LCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTI3Myw3ICsyNzMsNyBAQCBib29sIEpTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpCiAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAg
ICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Nj
b3BlLCB0cnVlKTsKLSAgICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShw
cm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7
CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCps
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+
d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUp
LCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKQEAgLTI5MSw3ICsyOTEsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5v
SWRlbnRpCiAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUg
PSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5RGVz
Y3JpcHRvci52YWx1ZSgpKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3Bl
LCB0cnVlKTsKLSAgICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgudmFs
dWUoKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFn
YXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXRJdGVtKGluZGV4LnZhbHVl
KCksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIApAQCAtMzA1LDcgKzMwNSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGkKICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgICAgICBhdXRvIG5h
dGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBw
cm9wZXJ0eURlc2NyaXB0b3IudmFsdWUoKSk7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgp
LnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3Zl
KG5hdGl2ZVZhbHVlKSk7CisgICAgICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNl
cHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsg
cmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9T
dHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b24uY3BwCShyZXZpc2lvbiAyNjY5OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24u
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjksNyArMjI5LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJUaHJvd2luZwogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICBh
dXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB2YWx1ZSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1
ZSk7Ci0gICAgICAgIHByb3BhZ2F0ZUV4Y2VwdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhy
b3dTY29wZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgudmFsdWUoKSwgV1RG
TW92ZShuYXRpdmVWYWx1ZSkpKTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhj
ZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7
IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0SXRlbShpbmRleC52YWx1ZSgpLCBXVEZN
b3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAg
LTI0Miw3ICsyNDIsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5n
CiAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6
Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICAgICAgYXV0byBuYXRpdmVWYWx1
ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwog
ICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAg
ICAgICAgIHByb3BhZ2F0ZUV4Y2VwdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29w
ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmlu
Zyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSkpOworICAgICAgICAgICAgaW52
b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0
TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0
aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAg
IH0KQEAgLTI2MCw3ICsyNjAsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRo
cm93aW5nCiAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUg
PSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgcHJv
cGFnYXRlRXhjZXB0aW9uKCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuc2V0SXRlbShpbmRleCwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpKTsKKyAg
ICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFw
cGVkKCkuc2V0SXRlbShpbmRleCwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0yNzMsNyArMjczLDcgQEAgYm9vbCBKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZwogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAg
ICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFs
T2JqZWN0LCB2YWx1ZSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwg
dHJ1ZSk7Ci0gICAgICAgIHByb3BhZ2F0ZUV4Y2VwdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwg
dGhyb3dTY29wZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5h
bWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSkpOworICAgICAg
ICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEds
b2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQo
KS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92
ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0y
OTEsNyArMjkxLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZwog
ICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0o
bGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVy
dDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eURlc2NyaXB0b3Iu
dmFsdWUoKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7
Ci0gICAgICAgIHByb3BhZ2F0ZUV4Y2VwdGlvbigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldEl0ZW0oaW5kZXgudmFsdWUoKSwgV1RGTW92
ZShuYXRpdmVWYWx1ZSkpKTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0
aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJl
dHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0SXRlbShpbmRleC52YWx1ZSgpLCBXVEZNb3Zl
KG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTMw
NSw3ICszMDUsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nCiAg
ICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9
IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlEZXNj
cmlwdG9yLnZhbHVlKCkpOwogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Nj
b3BlLCB0cnVlKTsKLSAgICAgICAgICAgIHByb3BhZ2F0ZUV4Y2VwdGlvbigqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShw
cm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSkp
OworICAgICAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3Nh
cnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5
TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjY2
OTk3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjM4LDcgKzIzOCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW4K
ICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZl
cnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICB0aGlzT2JqZWN0
LT53cmFwcGVkKCkuaW5kZXhlZFNldHRlcihpbmRleC52YWx1ZSgpLCBXVEZNb3ZlKG5hdGl2ZVZh
bHVlKSk7CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNz
YXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09i
amVjdC0+d3JhcHBlZCgpLmluZGV4ZWRTZXR0ZXIoaW5kZXgudmFsdWUoKSwgV1RGTW92ZShuYXRp
dmVWYWx1ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0yNTEsNyAr
MjUxLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbgogICAgICAg
ICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxl
eGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252
ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgICAgICB0
aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRTZXR0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJv
cGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICAgICAgaW52b2tlRnVu
Y3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3Qs
IHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRTZXR0
ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1
ZSkpOyB9KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAt
MjY5LDcgKzI2OSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW4K
ICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZN
KGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZl
cnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICB0aGlzT2JqZWN0
LT53cmFwcGVkKCkuaW5kZXhlZFNldHRlcihpbmRleCwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOwor
ICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndy
YXBwZWQoKS5pbmRleGVkU2V0dGVyKGluZGV4LCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTI4Miw3ICsyODIsNyBAQCBib29sIEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVuCiAgICAgICAgIGF1dG8gdGhyb3dTY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7
CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJv
d1Njb3BlLCB0cnVlKTsKLSAgICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkU2V0dGVy
KHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUp
KTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3Nhcnko
KmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0
LT53cmFwcGVkKCkubmFtZWRTZXR0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1l
KSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCkBAIC0zMDAsNyArMzAwLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbgogICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZhbHVl
ID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eURl
c2NyaXB0b3IudmFsdWUoKSk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgdHJ1ZSk7Ci0gICAgICAgIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pbmRleGVkU2V0dGVyKGlu
ZGV4LnZhbHVlKCksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgaW52b2tlRnVuY3Rv
clByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaW5kZXhlZFNldHRl
cihpbmRleC52YWx1ZSgpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTMxNCw3ICszMTQsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlcldpdGhJZGVuCiAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAg
ICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgcHJvcGVydHlEZXNjcmlwdG9yLnZhbHVlKCkpOwogICAgICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgICAgIHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5uYW1lZFNldHRlcihwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5h
bWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgICAgICAgICBpbnZva2VGdW5jdG9yUHJv
cGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZFNldHRlcihwcm9w
ZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0p
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lk
ZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDI2
Njk5NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxNSw3ICsyMTUs
NyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpwdXQoCiAgICAgICAgICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCkpOwogICAgICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8
SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAgICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgICAgIHRoaXNP
YmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVy
dHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICAgICAgaW52b2tlRnVuY3Rv
clByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVt
KHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUp
KTsgfSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KQEAgLTIz
OCw3ICsyMzgsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpwdXRCCiAg
ICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0
PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgdGhpc09iamVjdC0+
d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUp
LCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGlu
Z0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBb
Jl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5h
bWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTI2MCw3ICsyNjAsNyBAQCBib29sIEpTVGVz
dE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpkZWZpCiAgICAgICAgICAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkp
OwogICAgICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlEZXNjcmlwdG9yLnZhbHVlKCkpOwogICAgICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgICAg
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmco
cHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICAgICAgaW52b2tl
RnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmpl
Y3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0TmFt
ZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZl
VmFsdWUpKTsgfSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbi5jcHAJKHJldmlzaW9uIDI2Njk5NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjE1LDcgKzIxNSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbjoKICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgICAgICBh
dXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB2YWx1ZSk7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUs
IHRydWUpOwotICAgICAgICAgICAgcHJvcGFnYXRlRXhjZXB0aW9uKCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3Bl
cnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKSk7Cisg
ICAgICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3Qt
PndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1l
KSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CiAgICAgfQpAQCAtMjM4LDcgKzIzOCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbjoKICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAgICAgYXV0
byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVj
dCwgdmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUp
OwotICAgICAgICBwcm9wYWdhdGVFeGNlcHRpb24oKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93
U2NvcGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9T
dHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpKTsKKyAgICAgICAgaW52
b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxP
YmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0
TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0
aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMjYwLDcg
KzI2MCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjoKICAgICAg
ICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShs
ZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29u
dmVydDxJRExET01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eURlc2NyaXB0
b3IudmFsdWUoKSk7CiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUs
IHRydWUpOwotICAgICAgICAgICAgcHJvcGFnYXRlRXhjZXB0aW9uKCpsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCB0aHJvd1Njb3BlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3Bl
cnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKSk7Cisg
ICAgICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgq
bGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3Qt
PndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1l
KSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhJZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjY2OTk3KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjEsNyArMjIxLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJZGVudGlmaWVyOjpwdQogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAg
ICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhy
b3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgICAgICB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRT
ZXR0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVW
YWx1ZSkpOworICAgICAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZO
ZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0
aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRTZXR0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJv
cGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAtMjQ0LDcgKzI0NCw3IEBAIGJvb2wgSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6cHUKICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAg
ICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEds
b2JhbE9iamVjdCwgdmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIHRydWUpOwotICAgICAgICB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRTZXR0ZXIocHJv
cGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOwor
ICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndy
YXBwZWQoKS5uYW1lZFNldHRlcihwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBX
VEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
QEAgLTI2Niw3ICsyNjYsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6
OmRlCiAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpT
Qzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICAgICAgYXV0byBuYXRpdmVW
YWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVy
dHlEZXNjcmlwdG9yLnZhbHVlKCkpOwogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0
aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgICAgIHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1l
ZFNldHRlcihwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2
ZVZhbHVlKSk7CisgICAgICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25J
Zk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJu
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZFNldHRlcihwcm9wZXJ0eU5hbWVUb1N0cmluZyhw
cm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCShyZXZpc2lvbiAyNjY5OTcpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0Myw3ICsyNDMsNyBA
QCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI6CiAgICAgICAgICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCkpOwogICAgICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURM
RE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAgICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgICAgIHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5uYW1lZFNldHRlcihwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5h
bWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgICAgICAgICBpbnZva2VGdW5jdG9yUHJv
cGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZFNldHRlcihwcm9w
ZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0p
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNjYsNyAr
MjY2LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyOgogICAgICAg
ICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNh
bEdsb2JhbE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExE
T01TdHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgIHRoaXNPYmplY3QtPndyYXBw
ZWQoKS5uYW1lZFNldHRlcihwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZN
b3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGluZ0V4Y2Vw
dGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBbJl0geyBy
ZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkU2V0dGVyKHByb3BlcnR5TmFtZVRvU3Ry
aW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIApAQCAtMjkxLDcgKzI5MSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSW5kZXhlZEdldHRlcjoKICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAg
ICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBwcm9wZXJ0eURlc2NyaXB0b3IudmFsdWUoKSk7CiAgICAgICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICAgICAgdGhpc09i
amVjdC0+d3JhcHBlZCgpLm5hbWVkU2V0dGVyKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5
TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgICAgIGludm9rZUZ1bmN0b3JQ
cm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkU2V0dGVyKHBy
b3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsg
fSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldp
dGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckFuZFNldHRlci5jcHAJKHJldmlzaW9uIDI2Njk5NykKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVy
QW5kU2V0dGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM4LDcgKzIzOCw3IEBAIGJvb2wgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckEKICAgICAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsK
ICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93
U2NvcGUsIHRydWUpOwotICAgICAgICB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaW5kZXhlZFNldHRl
cihpbmRleC52YWx1ZSgpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgICAgIGludm9rZUZ1
bmN0b3JQcm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB0aHJvd1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLmluZGV4ZWRT
ZXR0ZXIoaW5kZXgudmFsdWUoKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0yNTEsNyArMjUxLDcgQEAgYm9vbCBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQQogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAg
ICAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGlj
YWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgICAgICB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFt
ZWRTZXR0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRp
dmVWYWx1ZSkpOworICAgICAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9u
SWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVy
biB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRTZXR0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmco
cHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICB9CiAgICAgfQpAQCAtMjY5LDcgKzI2OSw3IEBAIGJvb2wgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckEKICAgICAgICAgYXV0byB0aHJvd1Njb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsK
ICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNh
bEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93
U2NvcGUsIHRydWUpOwotICAgICAgICB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaW5kZXhlZFNldHRl
cihpbmRleCwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICBpbnZva2VGdW5jdG9yUHJv
cGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dT
Y29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pbmRleGVkU2V0dGVyKGlu
ZGV4LCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKQEAgLTI4Miw3ICsyODIsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXJBCiAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
SlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFs
dWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsK
ICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAg
dGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkU2V0dGVyKHByb3BlcnR5TmFtZVRvU3RyaW5nKHBy
b3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgaW52b2tlRnVuY3Rv
clByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRTZXR0ZXIo
cHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkp
OyB9KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0zMDAsNyArMzAwLDcgQEAg
Ym9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQQogICAgICAgICBhdXRvIHRo
cm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9i
amVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+
KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eURlc2NyaXB0b3IudmFsdWUoKSk7CiAgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgIHRoaXNP
YmplY3QtPndyYXBwZWQoKS5pbmRleGVkU2V0dGVyKGluZGV4LnZhbHVlKCksIFdURk1vdmUobmF0
aXZlVmFsdWUpKTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZO
ZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuaW5kZXhlZFNldHRlcihpbmRleC52YWx1ZSgpLCBXVEZNb3Zl
KG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTMx
NCw3ICszMTQsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBCiAg
ICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0
Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9
IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlEZXNj
cmlwdG9yLnZhbHVlKCkpOwogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Nj
b3BlLCB0cnVlKTsKLSAgICAgICAgICAgIHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZFNldHRl
cihwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVl
KSk7CisgICAgICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vz
c2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNP
YmplY3QtPndyYXBwZWQoKS5uYW1lZFNldHRlcihwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0
eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlQnVpbHRJbnMuY3BwCShyZXZpc2lv
biAyNjY5OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIxMCw3ICsyMTAsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92
ZXJyaWRlCiAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoSlND
OjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUg
PSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKLSAgICAgICAgdGhp
c09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9w
ZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgICAgIGludm9rZUZ1bmN0b3JQ
cm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShw
cm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7
IH0pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTIyNyw3ICsyMjcsNyBAQCBi
b29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeU92ZXJyaWRlCiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3Qp
KTsKICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpsZXhpY2Fs
R2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3Bl
LCB0cnVlKTsKLSAgICB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5
TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICBp
bnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRpb25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2Jh
bE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5z
ZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShu
YXRpdmVWYWx1ZSkpOyB9KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjQyLDcgKzI0Miw3
IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5T3ZlcnJpZGUKICAgICAgICAgYXV0
byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9i
YWxPYmplY3QpKTsKICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3Ry
aW5nPigqbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlEZXNjcmlwdG9yLnZhbHVlKCkpOwog
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHBy
b3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgaW52b2tlRnVuY3Rv
clByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRo
cm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVt
KHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUp
KTsgfSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVu
Zm9yZ2VhYmxlUHJvcGVydGllcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aExlZ2FjeVVuZm9yZ2Vh
YmxlUHJvcGVydGllcy5jcHAJKHJldmlzaW9uIDI2Njk5NykKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdl
YWJsZVByb3BlcnRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzksNyArMjM5LDcgQEAgYm9v
bCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYQogICAgICAgICAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpKTsKICAgICAgICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0
cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgICAgICB0aGlzT2JqZWN0LT53
cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSks
IFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgICAgIGludm9rZUZ1bmN0b3JQcm9wYWdh
dGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3Bl
LCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0
eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkBAIC0yNjIsNyArMjYy
LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYQogICAgICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEds
b2JhbE9iamVjdCkpOwogICAgICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01T
dHJpbmc+KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgIHRoaXNPYmplY3QtPndyYXBwZWQo
KS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSwgV1RGTW92
ZShuYXRpdmVWYWx1ZSkpOworICAgICAgICBpbnZva2VGdW5jdG9yUHJvcGFnYXRpbmdFeGNlcHRp
b25JZk5lY2Vzc2FyeSgqbGV4aWNhbEdsb2JhbE9iamVjdCwgdGhyb3dTY29wZSwgWyZdIHsgcmV0
dXJuIHRoaXNPYmplY3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJp
bmcocHJvcGVydHlOYW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOyB9KTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogCkBAIC0yOTAsNyArMjkwLDcgQEAgc3RhdGljIGJvb2wgaXNMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnR5TgogICAgICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUoSlNDOjpnZXRWTShsZXhpY2FsR2xvYmFsT2JqZWN0KSk7CiAg
ICAgICAgICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigq
bGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlEZXNjcmlwdG9yLnZhbHVlKCkpOwogICAgICAg
ICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAg
ICAgICAgICAgdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5hbWVU
b1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7CisgICAgICAgICAg
ICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZOZWNlc3NhcnkoKmxleGlj
YWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0aGlzT2JqZWN0LT53cmFw
cGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdU
Rk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3Bl
cnRpZXNBbmRMZWdhY3lPdmVycmlkZUJ1aWx0SW5zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVn
YWN5VW5mb3JnZWFibGVQcm9wZXJ0aWVzQW5kTGVnYWN5T3ZlcnJpZGVCdWlsdElucy5jcHAJKHJl
dmlzaW9uIDI2Njk5NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZFNldHRlcldpdGhMZWdhY3lVbmZvcmdlYWJsZVByb3BlcnRpZXNBbmRMZWdh
Y3lPdmVycmlkZUJ1aWx0SW5zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM0LDcgKzIzNCw3IEBA
IGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoTGVnYWN5VW5mb3JnZWEKICAgICAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxP
YmplY3QpKTsKICAgICAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5n
PigqbGV4aWNhbEdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgICAgICB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0
TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSksIFdURk1vdmUobmF0
aXZlVmFsdWUpKTsKKyAgICAgICAgaW52b2tlRnVuY3RvclByb3BhZ2F0aW5nRXhjZXB0aW9uSWZO
ZWNlc3NhcnkoKmxleGljYWxHbG9iYWxPYmplY3QsIHRocm93U2NvcGUsIFsmXSB7IHJldHVybiB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHBy
b3BlcnR5TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsgfSk7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIApAQCAtMjUxLDcgKzI1MSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoTGVnYWN5VW5mb3JnZWEKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKEpTQzo6Z2V0Vk0obGV4aWNhbEdsb2JhbE9iamVjdCkpOwogICAgIGF1dG8gbmF0aXZlVmFs
dWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxHbG9iYWxPYmplY3QsIHZhbHVlKTsK
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUpOwotICAgIHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5zZXROYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlO
YW1lKSwgV1RGTW92ZShuYXRpdmVWYWx1ZSkpOworICAgIGludm9rZUZ1bmN0b3JQcm9wYWdhdGlu
Z0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJvd1Njb3BlLCBb
Jl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShwcm9wZXJ0eU5h
bWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7IH0pOwogICAg
IHJldHVybiB0cnVlOwogfQogCkBAIC0yNzIsNyArMjcyLDcgQEAgc3RhdGljIGJvb2wgaXNMZWdh
Y3lVbmZvcmdlYWJsZVByb3BlcnR5TgogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRShKU0M6OmdldFZNKGxleGljYWxHbG9iYWxPYmplY3QpKTsKICAgICAg
ICAgICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKmxleGljYWxH
bG9iYWxPYmplY3QsIHByb3BlcnR5RGVzY3JpcHRvci52YWx1ZSgpKTsKICAgICAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7Ci0gICAgICAgICAgICB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuc2V0TmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5
TmFtZSksIFdURk1vdmUobmF0aXZlVmFsdWUpKTsKKyAgICAgICAgICAgIGludm9rZUZ1bmN0b3JQ
cm9wYWdhdGluZ0V4Y2VwdGlvbklmTmVjZXNzYXJ5KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aHJv
d1Njb3BlLCBbJl0geyByZXR1cm4gdGhpc09iamVjdC0+d3JhcHBlZCgpLnNldE5hbWVkSXRlbShw
cm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpLCBXVEZNb3ZlKG5hdGl2ZVZhbHVlKSk7
IH0pOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlRGVjbGFyYXRpb24uaWRsCShyZXZpc2lvbiAyNjY5
OTcpCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVEZWNsYXJhdGlvbi5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAKICAgICAvLyBwcmVmaXhlcyBmb3IgdGhpcyB0byBi
ZSBwcmFjdGljYWwuIElmIHdlIHJlbW92ZSBsZWdhY3kgYWxpYXNlcywgd2Ugc2hvdWxkCiAgICAg
Ly8gcmVjb25zaWRlciB0aGlzIGRlY2lzaW9uLgogICAgIGdldHRlciAoRE9NU3RyaW5nIG9yIGRv
dWJsZSkgKERPTVN0cmluZyBuYW1lKTsKLSAgICBbQ0VSZWFjdGlvbnMsIE1heVRocm93RXhjZXB0
aW9uLCBDYWxsTmFtZWRTZXR0ZXJPbmx5Rm9yU3VwcG9ydGVkUHJvcGVydGllc10gc2V0dGVyIHVu
ZGVmaW5lZCAoRE9NU3RyaW5nIG5hbWUsIFtMZWdhY3lOdWxsVG9FbXB0eVN0cmluZ10gRE9NU3Ry
aW5nIHZhbHVlKTsKKyAgICBbQ0VSZWFjdGlvbnMsIENhbGxOYW1lZFNldHRlck9ubHlGb3JTdXBw
b3J0ZWRQcm9wZXJ0aWVzXSBzZXR0ZXIgdW5kZWZpbmVkIChET01TdHJpbmcgbmFtZSwgW0xlZ2Fj
eU51bGxUb0VtcHR5U3RyaW5nXSBET01TdHJpbmcgdmFsdWUpOwogCiAgICAgLy8gVGhpcyBtZXRo
b2QgaXMgZGVwcmVjYXRlZCwgYW5kIHdlIHdvdWxkIGxpa2UgdG8gZHJvcCBzdXBwb3J0IGZvciBp
dCBzb21lZGF5CiAgICAgRGVwcmVjYXRlZENTU09NVmFsdWU/IGdldFByb3BlcnR5Q1NTVmFsdWUo
RE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRE9NU3Ry
aW5nTWFwLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRE9NU3RyaW5nTWFw
LmlkbAkocmV2aXNpb24gMjY2OTk3KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RPTVN0cmluZ01h
cC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAKICAgICBTa2lwVlRhYmxlVmFs
aWRhdGlvbiwKIF0gaW50ZXJmYWNlIERPTVN0cmluZ01hcCB7CiAgICAgZ2V0dGVyIERPTVN0cmlu
ZyAoRE9NU3RyaW5nIG5hbWUpOwotICAgIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dFeGNlcHRpb25d
IHNldHRlciB1bmRlZmluZWQgKERPTVN0cmluZyBuYW1lLCBET01TdHJpbmcgdmFsdWUpOworICAg
IFtDRVJlYWN0aW9uc10gc2V0dGVyIHVuZGVmaW5lZCAoRE9NU3RyaW5nIG5hbWUsIERPTVN0cmlu
ZyB2YWx1ZSk7CiAgICAgW0NFUmVhY3Rpb25zXSBkZWxldGVyIHVuZGVmaW5lZCAoRE9NU3RyaW5n
IG5hbWUpOwogfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbk9yLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbk9yLmgJKHJldmlzaW9uIDI2
Njk5NykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Pci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw2ICsyOSw3IEBAIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QkkKICNpbmNsdWRlICJFeGNlcHRpb24uaCIKICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRDb3Bp
ZXIuaD4KICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KKyNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTk5LDYgKzIwMCw4IEBAIGlubGlu
ZSBFeGNlcHRpb25Pcjx2b2lkPiBpc29sYXRlZENvcHkoRXgKICAgICByZXR1cm4geyB9OwogfQog
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IElzRXhjZXB0aW9uT3IgOiBwdWJsaWMgc3Rk
OjppbnRlZ3JhbF9jb25zdGFudDxib29sLCBXVEY6OklzVGVtcGxhdGU8c3RkOjpkZWNheV90PFQ+
LCBFeGNlcHRpb25Pcj46OnZhbHVlPiB7IH07CisKIH0KIAogbmFtZXNwYWNlIFdURiB7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2UuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5pZGwJKHJldmlzaW9uIDI2Njk5NykKKysrIFNvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMw
LDcgQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CiAgICAg
RE9NU3RyaW5nPyBrZXkodW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgZ2V0dGVyIERPTVN0cmlu
Zz8gZ2V0SXRlbShET01TdHJpbmcga2V5KTsKLSAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHNldHRl
ciB1bmRlZmluZWQgc2V0SXRlbShET01TdHJpbmcga2V5LCBET01TdHJpbmcgZGF0YSk7CisgICAg
c2V0dGVyIHVuZGVmaW5lZCBzZXRJdGVtKERPTVN0cmluZyBrZXksIERPTVN0cmluZyBkYXRhKTsK
ICAgICBkZWxldGVyIHVuZGVmaW5lZCByZW1vdmVJdGVtKERPTVN0cmluZyBrZXkpOwogICAgIFtN
YXlUaHJvd0V4Y2VwdGlvbl0gdW5kZWZpbmVkIGNsZWFyKCk7CiB9OwpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMZW5ndGhMaXN0LmlkbAkocmV2aXNpb24gMjY2OTk3KQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xlbmd0aExpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw1ICszNyw1IEBA
CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdMZW5ndGggcmVwbGFjZUl0ZW0oU1ZHTGVuZ3Ro
IG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0g
U1ZHTGVuZ3RoIHJlbW92ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgW01heVRocm93
RXhjZXB0aW9uXSBTVkdMZW5ndGggYXBwZW5kSXRlbShTVkdMZW5ndGggbmV3SXRlbSk7Ci0gICAg
W01heVRocm93RXhjZXB0aW9uXSBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25lZCBsb25nIGluZGV4
LCBTVkdMZW5ndGggbmV3SXRlbSk7CisgICAgc2V0dGVyIHVuZGVmaW5lZCAodW5zaWduZWQgbG9u
ZyBpbmRleCwgU1ZHTGVuZ3RoIG5ld0l0ZW0pOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdOdW1iZXJMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TnVtYmVyTGlzdC5pZGwJKHJldmlzaW9uIDI2Njk5NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdOdW1iZXJMaXN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzUsNSArMzUsNSBAQCBpbnRlcmZh
Y2UgU1ZHTnVtYmVyTGlzdCB7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdOdW1iZXIgcmVw
bGFjZUl0ZW0oU1ZHTnVtYmVyIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIFtN
YXlUaHJvd0V4Y2VwdGlvbl0gU1ZHTnVtYmVyIHJlbW92ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRl
eCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBTVkdOdW1iZXIgYXBwZW5kSXRlbShTVkdOdW1i
ZXIgbmV3SXRlbSk7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBzZXR0ZXIgdW5kZWZpbmVkICh1
bnNpZ25lZCBsb25nIGluZGV4LCBTVkdOdW1iZXIgbmV3SXRlbSk7CisgICAgc2V0dGVyIHVuZGVm
aW5lZCAodW5zaWduZWQgbG9uZyBpbmRleCwgU1ZHTnVtYmVyIG5ld0l0ZW0pOwogfTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmlkbAkocmV2aXNpb24gMjY2OTk3KQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MzUsNSArMzUsNSBAQCBpbnRlcmZhY2UgU1ZHUGF0aFNlZ0xpc3QgewogICAgIFtNYXlUaHJvd0V4
Y2VwdGlvbl0gU1ZHUGF0aFNlZyByZXBsYWNlSXRlbShTVkdQYXRoU2VnIG5ld0l0ZW0sIHVuc2ln
bmVkIGxvbmcgaW5kZXgpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHUGF0aFNlZyByZW1v
dmVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZH
UGF0aFNlZyBhcHBlbmRJdGVtKFNWR1BhdGhTZWcgbmV3SXRlbSk7Ci0gICAgW01heVRocm93RXhj
ZXB0aW9uXSBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25lZCBsb25nIGluZGV4LCBTVkdQYXRoU2Vn
IG5ld0l0ZW0pOworICAgIHNldHRlciB1bmRlZmluZWQgKHVuc2lnbmVkIGxvbmcgaW5kZXgsIFNW
R1BhdGhTZWcgbmV3SXRlbSk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50
TGlzdC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5p
ZGwJKHJldmlzaW9uIDI2Njk5NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3Qu
aWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw1ICszNCw1IEBAIGludGVyZmFjZSBTVkdQb2ludExp
c3QgewogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHUG9pbnQgcmVwbGFjZUl0ZW0oU1ZHUG9p
bnQgbmV3SXRlbSwgdW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgW01heVRocm93RXhjZXB0aW9u
XSBTVkdQb2ludCByZW1vdmVJdGVtKHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gU1ZHUG9pbnQgYXBwZW5kSXRlbShTVkdQb2ludCBuZXdJdGVtKTsKLSAgICBb
TWF5VGhyb3dFeGNlcHRpb25dIHNldHRlciB1bmRlZmluZWQgKHVuc2lnbmVkIGxvbmcgaW5kZXgs
IFNWR1BvaW50IG5ld0l0ZW0pOworICAgIHNldHRlciB1bmRlZmluZWQgKHVuc2lnbmVkIGxvbmcg
aW5kZXgsIFNWR1BvaW50IG5ld0l0ZW0pOwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdHJpbmdMaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3Ry
aW5nTGlzdC5pZGwJKHJldmlzaW9uIDI2Njk5NykKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdT
dHJpbmdMaXN0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzQsNSArMzQsNSBAQCBpbnRlcmZhY2Ug
U1ZHU3RyaW5nTGlzdCB7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgcmVwbGFj
ZUl0ZW0oRE9NU3RyaW5nIG5ld0l0ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHJlbW92ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7
CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBET01TdHJpbmcgYXBwZW5kSXRlbShET01TdHJpbmcg
bmV3SXRlbSk7Ci0gICAgW01heVRocm93RXhjZXB0aW9uXSBzZXR0ZXIgdW5kZWZpbmVkICh1bnNp
Z25lZCBsb25nIGluZGV4LCBET01TdHJpbmcgbmV3SXRlbSk7CisgICAgc2V0dGVyIHVuZGVmaW5l
ZCAodW5zaWduZWQgbG9uZyBpbmRleCwgRE9NU3RyaW5nIG5ld0l0ZW0pOwogfTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmlkbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5pZGwJKHJldmlzaW9uIDI2Njk5NykKKysr
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMzUsNyArMzUsNyBAQCBpbnRlcmZhY2UgU1ZHVHJhbnNmb3JtTGlzdCB7CiAgICAgW01heVRo
cm93RXhjZXB0aW9uXSBTVkdUcmFuc2Zvcm0gcmVwbGFjZUl0ZW0oU1ZHVHJhbnNmb3JtIG5ld0l0
ZW0sIHVuc2lnbmVkIGxvbmcgaW5kZXgpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gU1ZHVHJh
bnNmb3JtIHJlbW92ZUl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CiAgICAgW01heVRocm93RXhj
ZXB0aW9uXSBTVkdUcmFuc2Zvcm0gYXBwZW5kSXRlbShTVkdUcmFuc2Zvcm0gbmV3SXRlbSk7Ci0g
ICAgW01heVRocm93RXhjZXB0aW9uXSBzZXR0ZXIgdW5kZWZpbmVkICh1bnNpZ25lZCBsb25nIGlu
ZGV4LCBTVkdUcmFuc2Zvcm0gbmV3SXRlbSk7CisgICAgc2V0dGVyIHVuZGVmaW5lZCAodW5zaWdu
ZWQgbG9uZyBpbmRleCwgU1ZHVHJhbnNmb3JtIG5ld0l0ZW0pOwogCiAgICAgW01heVRocm93RXhj
ZXB0aW9uLCBOZXdPYmplY3RdIFNWR1RyYW5zZm9ybSBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0
cml4KG9wdGlvbmFsIERPTU1hdHJpeDJESW5pdCBtYXRyaXgpOwogICAgIFtNYXlUaHJvd0V4Y2Vw
dGlvbl0gU1ZHVHJhbnNmb3JtIGNvbnNvbGlkYXRlKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>