<?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>232521</bug_id>
          
          <creation_ts>2021-10-29 20:37:27 -0700</creation_ts>
          <short_desc>[JSC] Having StructureStubInfo and CallLinkInfo via FixedVector for Baseline JIT</short_desc>
          <delta_ts>2021-10-29 23:49:21 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1810375</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-29 20:37:27 -0700</bug_when>
    <thetext>[JSC] Having StructureStubInfo and CallLinkInfo via FixedVector for Baseline JIT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810376</commentid>
    <comment_count>1</comment_count>
      <attachid>442896</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-10-29 20:39:30 -0700</bug_when>
    <thetext>Created attachment 442896
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810379</commentid>
    <comment_count>2</comment_count>
      <attachid>442896</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-29 21:42:14 -0700</bug_when>
    <thetext>Comment on attachment 442896
Patch

Nice. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810398</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-29 23:48:17 -0700</bug_when>
    <thetext>Committed r285078 (243720@main): &lt;https://commits.webkit.org/243720@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442896.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1810399</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-29 23:49:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/84834753&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442896</attachid>
            <date>2021-10-29 20:39:30 -0700</date>
            <delta_ts>2021-10-29 23:48:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232521-20211029203929.patch</filename>
            <type>text/plain</type>
            <size>92149</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
M2IwNmU1MjczMWIxZDljMjEwOWYzNjRhZjBiZjM2NWI1NDAxMDE2Li41OTFmMjg0YzM1OWZmMjNl
M2NlZTdmYjAzMzgwZDEyMjJkYWMyYjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMjMgQEAKKzIwMjEtMTAtMjkgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNv
bT4KKworICAgICAgICBbSlNDXSBIYXZpbmcgU3RydWN0dXJlU3R1YkluZm8gYW5kIENhbGxMaW5r
SW5mbyB2aWEgRml4ZWRWZWN0b3IgZm9yIEJhc2VsaW5lIEpJVAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNTIxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Uga25vdyAjIG9mIFN0cnVjdHVyZVN0dWJJ
bmZvIGFuZCAjIG9mIENhbGxMaW5rSW5mbyBhZnRlciBjb21waWxpbmcgQmFzZWxpbmUgSklUIGNv
ZGUuCisgICAgICAgIFNvIHdoZW4gaW5zdGFsbGluZyBhIGNvZGUgaW50byBDb2RlQmxvY2ssIHdl
IGRvIG5vdCBuZWVkIHRvIHVzZSBCYWc8Pi4gSW5zdGVhZCB3ZSBjYW4ganVzdAorICAgICAgICB1
c2UgRml4ZWRWZWN0b3IgdG8gYWxsb2NhdGUgdGhlc2UgaW5zdGFuY2VzLgorCisgICAgICAgIFdl
IGtlZXAgRml4ZWRWZWN0b3I8U3RydWN0dXJlU3R1YkluZm8+IGFuZCBGaXhlZFZlY3RvcjxDYWxs
TGlua0luZm8+IGluIEpJVERhdGEgZm9yIEJhc2VsaW5lIEpJVC4KKyAgICAgICAgQW5kIG1vdmlu
ZyBCYWc8U3RydWN0dXJlU3R1YkluZm8+IGFuZCBCYWc8Q2FsbExpbmtJbmZvPiB0byBERkc6OkNv
bW1vbkRhdGEgd2hlbiB0aGV5IGFyZSBpbnN0YW50aWF0ZWQKKyAgICAgICAgZm9yIERGRyAvIEZU
TCBjb2Rlcy4KKworICAgICAgICAqIGJ5dGVjb2RlL0NhbGxMaW5rSW5mby5jcHA6CisgICAgICAg
IChKU0M6OkNhbGxMaW5rSW5mbzo6Q2FsbExpbmtJbmZvKTogRGVsZXRlZC4KKyAgICAgICAgKiBi
eXRlY29kZS9DYWxsTGlua0luZm8uaDoKKyAgICAgICAgKEpTQzo6Q2FsbExpbmtJbmZvOjpDYWxs
TGlua0luZm8pOgorICAgICAgICAqIGJ5dGVjb2RlL0NvZGVCbG9jay5jcHA6CisgICAgICAgIChK
U0M6OkNvZGVCbG9jazo6c2V0dXBXaXRoVW5saW5rZWRCYXNlbGluZUNvZGUpOgorICAgICAgICAo
SlNDOjpDb2RlQmxvY2s6On5Db2RlQmxvY2spOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OnBy
b3BhZ2F0ZVRyYW5zaXRpb25zKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpmaW5hbGl6ZUpJ
VElubGluZUNhY2hlcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6Z2V0SUNTdGF0dXNNYXAp
OgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmZpbmRTdHViSW5mbyk6CisgICAgICAgIChKU0M6
OkNvZGVCbG9jazo6Z2V0Q2FsbExpbmtJbmZvRm9yQnl0ZWNvZGVJbmRleCk6CisgICAgICAgIChK
U0M6OkNvZGVCbG9jazo6cmVzZXRKSVREYXRhKToKKyAgICAgICAgKEpTQzo6Q29kZUJsb2NrOjpz
dHJvbmdseVZpc2l0U3Ryb25nUmVmZXJlbmNlcyk6CisgICAgICAgIChKU0M6OkNvZGVCbG9jazo6
amV0dGlzb24pOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmZpbmRQQyk6CisgICAgICAgIChK
U0M6OkNvZGVCbG9jazo6YWRkT3B0aW1pemluZ1N0dWJJbmZvKTogRGVsZXRlZC4KKyAgICAgICAg
KEpTQzo6Q29kZUJsb2NrOjphZGRDYWxsTGlua0luZm8pOiBEZWxldGVkLgorICAgICAgICAqIGJ5
dGVjb2RlL0NvZGVCbG9jay5oOgorICAgICAgICAqIGJ5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZv
LmNwcDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU3R1YkluZm86OlN0cnVjdHVyZVN0dWJJbmZv
KTogRGVsZXRlZC4KKyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oOgorICAg
ICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6U3RydWN0dXJlU3R1YkluZm8pOgorICAgICAg
ICAqIGRmZy9ERkdDb21tb25EYXRhLmg6CisgICAgICAgIChKU0M6OkRGRzo6Q29tbW9uRGF0YTo6
YWRkQ2FsbExpbmtJbmZvKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlRGVsZXRlQnlJZCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVEZWxldGVCeVZhbCk6Cisg
ICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbkJ5SWQpOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5CeVZhbCk6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVIYXNQcml2YXRlKToKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFByaXZhdGVOYW1lQnlWYWwpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0UHJpdmF0ZU5hbWUpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQ2hlY2tQcml2YXRlQnJh
bmQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlU2V0UHJpdmF0
ZUJyYW5kKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluc3Rh
bmNlT2ZGb3JDZWxscyk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhY2hl
ZFB1dEJ5SWQpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZCk6CisgICAgICAg
IChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5SWRXaXRoVGhpcyk6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRDYWxsKToKKyAgICAgICAgKEpTQzo6
REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ5VmFsKToKKyAgICAgICAgKEpTQzo6REZH
OjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZl
SklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjYWNoZWRHZXRC
eUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZFdp
dGhUaGlzKToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwpOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlR2V0QnlWYWwpOgorICAg
ICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBmdGwv
RlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9C
Mzo6Z2V0UHJpdmF0ZU5hbWUpOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0Iz
Ojpjb21waWxlUHJpdmF0ZUJyYW5kQWNjZXNzKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxv
d2VyREZHVG9CMzo6Y29tcGlsZVB1dFByaXZhdGVOYW1lKToKKyAgICAgICAgKEpTQzo6RlRMOjpE
Rkc6Okxvd2VyREZHVG9CMzo6Y2FjaGVkUHV0QnlJZCk6CisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmNvbXBpbGVHZXRCeVZhbEltcGwpOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlUHV0QnlWYWwpOgorICAgICAgICAoSlNDOjpGVEw6
OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlRGVsQnkpOgorICAgICAgICAoSlNDOjpGVEw6OkRG
Rzo6TG93ZXJERkdUb0IzOjpjb21waWxlQ29tcGFyZVN0cmljdEVxKToKKyAgICAgICAgKiBqaXQv
QmFzZWxpbmVKSVRDb2RlLmg6CisgICAgICAgICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6
OkpJVDo6YWRkVW5saW5rZWRDYWxsTGlua0luZm8pOgorICAgICAgICAoSlNDOjpKSVQ6Omxpbmsp
OgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBqaXQvSklUQ2FsbC5jcHA6CisgICAg
ICAgIChKU0M6OkpJVDo6Y29tcGlsZU9wQ2FsbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9v
cF9pdGVyYXRvcl9vcGVuKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2l0ZXJhdG9yX25l
eHQpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHA6CisgICAgICAg
IChKU0M6OkpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OkpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpKSVRHZXRCeUlkR2VuZXJhdG9yOjpKSVRHZXRCeUlkR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6SklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yOjpKSVRHZXRCeUlkV2l0aFRo
aXNHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRC
eUlkR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SklURGVsQnlWYWxHZW5lcmF0b3I6OkpJVERl
bEJ5VmFsR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SklURGVsQnlJZEdlbmVyYXRvcjo6SklU
RGVsQnlJZEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVEluQnlWYWxHZW5lcmF0b3I6OkpJ
VEluQnlWYWxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRJbkJ5SWRHZW5lcmF0b3I6OkpJ
VEluQnlJZEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVEluc3RhbmNlT2ZHZW5lcmF0b3I6
OkpJVEluc3RhbmNlT2ZHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRHZXRCeVZhbEdlbmVy
YXRvcjo6SklUR2V0QnlWYWxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRQdXRCeVZhbEdl
bmVyYXRvcjo6SklUUHV0QnlWYWxHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRQcml2YXRl
QnJhbmRBY2Nlc3NHZW5lcmF0b3I6OkpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcik6Cisg
ICAgICAgICogaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmg6CisgICAgICAgICogaml0L0pJ
VE9wY29kZXMuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZik6Cisg
ICAgICAgICogaml0L0pJVE9wY29kZXMzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dF9vcF9pbnN0YW5jZW9mKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJ
VDo6ZW1pdF9vcF9nZXRfcHJpdmF0ZV9uYW1lKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29w
X3NldF9wcml2YXRlX2JyYW5kKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX2NoZWNrX3By
aXZhdGVfYnJhbmQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbCk6Cisg
ICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfcHJpdmF0ZV9uYW1lKToKKyAgICAgICAgKEpT
Qzo6SklUOjplbWl0X29wX2RlbF9ieV9pZCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9k
ZWxfYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0X29wX3RyeV9nZXRfYnlfaWQpOgor
ICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX2RpcmVjdCk6CisgICAgICAgIChK
U0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfaWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3Bf
Z2V0X2J5X2lkX3dpdGhfdGhpcyk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9wdXRfYnlf
aWQpOgorICAgICAgICAoSlNDOjpKSVQ6OmVtaXRfb3BfaW5fYnlfaWQpOgorICAgICAgICAoSlND
OjpKSVQ6OmVtaXRfb3BfaW5fYnlfdmFsKToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0SGFzUHJp
dmF0ZSk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9lbnVtZXJhdG9yX2dldF9ieV92YWwp
OgorCiAyMDIxLTEwLTI5ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0pTQ10gQ2xlYW4gdXAgQmFzZWxpbmUgU3RydWN0dXJlU3R1YkluZm8gbWFuYWdlbWVu
dApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NhbGxMaW5rSW5m
by5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcApp
bmRleCAwNjNjYTgyZGQ1YjllZDY5YjJiOTBiNDQzNDNjNTc4YzI0MTdiNzAwLi4zYjgwM2IzOGE3
ODY5YjQ5Mzg5YzA3OTBhYmM4YmViOGQ0MGE1NThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmNwcApAQCAtNzIsMTkgKzcyLDYgQEAgQ2FsbExp
bmtJbmZvOjpDYWxsVHlwZSBDYWxsTGlua0luZm86OmNhbGxUeXBlRm9yKE9wY29kZUlEIG9wY29k
ZUlEKQogICAgIHJldHVybiBDYWxsOwogfQogCi1DYWxsTGlua0luZm86OkNhbGxMaW5rSW5mbyhD
b2RlT3JpZ2luIGNvZGVPcmlnaW4pCi0gICAgOiBtX2NvZGVPcmlnaW4oY29kZU9yaWdpbikKLSAg
ICAsIG1faGFzU2VlblNob3VsZFJlcGF0Y2goZmFsc2UpCi0gICAgLCBtX2hhc1NlZW5DbG9zdXJl
KGZhbHNlKQotICAgICwgbV9jbGVhcmVkQnlHQyhmYWxzZSkKLSAgICAsIG1fY2xlYXJlZEJ5Vmly
dHVhbChmYWxzZSkKLSAgICAsIG1fYWxsb3dTdHVicyh0cnVlKQotICAgICwgbV9jbGVhcmVkQnlK
ZXR0aXNvbihmYWxzZSkKLSAgICAsIG1fY2FsbFR5cGUoTm9uZSkKLSAgICAsIG1fdXNlRGF0YUlD
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihVc2VEYXRhSUM6OlllcykpCi17Ci19Ci0KIENhbGxMaW5r
SW5mbzo6fkNhbGxMaW5rSW5mbygpCiB7CiAgICAgY2xlYXJTdHViKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ2FsbExpbmtJbmZvLmgKaW5kZXggMGY1YzUyYmJjY2U0NDk1
NjA1ZDQ1ODliOTY2YjkyMmIwYjM3MDg4Mi4uZTVmNzdjZjM3YmYyNjZmNGI5YzkzYzUwY2Y5OTZk
MjFjNjY4Y2U0NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nh
bGxMaW5rSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9DYWxsTGlu
a0luZm8uaApAQCAtNzUsOCArNzUsMjQgQEAgY2xhc3MgQ2FsbExpbmtJbmZvIDogcHVibGljIFBh
Y2tlZFJhd1NlbnRpbmVsTm9kZTxDYWxsTGlua0luZm8+IHsKICAgICAgICAgfQogICAgIH0KIAot
ICAgIENhbGxMaW5rSW5mbyhDb2RlT3JpZ2luKTsKLSAgICAgICAgCisgICAgQ2FsbExpbmtJbmZv
KENvZGVPcmlnaW4gY29kZU9yaWdpbikKKyAgICAgICAgOiBtX2NvZGVPcmlnaW4oY29kZU9yaWdp
bikKKyAgICAgICAgLCBtX2hhc1NlZW5TaG91bGRSZXBhdGNoKGZhbHNlKQorICAgICAgICAsIG1f
aGFzU2VlbkNsb3N1cmUoZmFsc2UpCisgICAgICAgICwgbV9jbGVhcmVkQnlHQyhmYWxzZSkKKyAg
ICAgICAgLCBtX2NsZWFyZWRCeVZpcnR1YWwoZmFsc2UpCisgICAgICAgICwgbV9hbGxvd1N0dWJz
KHRydWUpCisgICAgICAgICwgbV9jbGVhcmVkQnlKZXR0aXNvbihmYWxzZSkKKyAgICAgICAgLCBt
X2NhbGxUeXBlKE5vbmUpCisgICAgICAgICwgbV91c2VEYXRhSUMoc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KFVzZURhdGFJQzo6WWVzKSkKKyAgICB7CisgICAgfQorCisgICAgQ2FsbExpbmtJbmZvKCkK
KyAgICAgICAgOiBDYWxsTGlua0luZm8oQ29kZU9yaWdpbiB7IH0pCisgICAgeworICAgIH0KKwog
ICAgIH5DYWxsTGlua0luZm8oKTsKICAgICAKICAgICBzdGF0aWMgQ29kZVNwZWNpYWxpemF0aW9u
S2luZCBzcGVjaWFsaXphdGlvbktpbmRGb3IoQ2FsbFR5cGUgY2FsbFR5cGUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3BwCmluZGV4IDE5MDU5NzBjYWVjODZj
ZGM4MjU0ODhkYTVkNDhiNDBlNWI4ZTBkMmYuLmI5MDlkZjQ1ODQ0YjIyOWVjOTE4MzM5MTg0MjYy
MzQ1OTI3ZWE2ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9D
b2RlQmxvY2suY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxv
Y2suY3BwCkBAIC03ODIsNiArNzgyLDggQEAgdm9pZCBDb2RlQmxvY2s6OnNldHVwV2l0aFVubGlu
a2VkQmFzZWxpbmVDb2RlKFJlZjxCYXNlbGluZUpJVENvZGU+IGppdENvZGUpCiAKICAgICAgICAg
UkVMRUFTRV9BU1NFUlQoaml0RGF0YS5tX2ppdENvbnN0YW50UG9vbC5pc0VtcHR5KCkpOwogICAg
ICAgICBqaXREYXRhLm1faml0Q29uc3RhbnRQb29sID0gRml4ZWRWZWN0b3I8dm9pZCo+KGppdENv
ZGUtPm1fY29uc3RhbnRQb29sLnNpemUoKSk7CisgICAgICAgIGppdERhdGEubV9zdHViSW5mb3Mg
PSBGaXhlZFZlY3RvcjxTdHJ1Y3R1cmVTdHViSW5mbz4oaml0Q29kZS0+bV91bmxpbmtlZFN0dWJJ
bmZvcy5zaXplKCkpOworICAgICAgICBqaXREYXRhLm1fY2FsbExpbmtJbmZvcyA9IEZpeGVkVmVj
dG9yPENhbGxMaW5rSW5mbz4oaml0Q29kZS0+bV91bmxpbmtlZENhbGxzLnNpemUoKSk7CiAgICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaml0Q29kZS0+bV9jb25zdGFudFBvb2wuc2l6ZSgp
OyArK2kpIHsKICAgICAgICAgICAgIGF1dG8gZW50cnkgPSBqaXRDb2RlLT5tX2NvbnN0YW50UG9v
bC5hdChpKTsKICAgICAgICAgICAgIHN3aXRjaCAoZW50cnkudHlwZSgpKSB7CkBAIC03ODksMTcg
Kzc5MSwxOSBAQCB2b2lkIENvZGVCbG9jazo6c2V0dXBXaXRoVW5saW5rZWRCYXNlbGluZUNvZGUo
UmVmPEJhc2VsaW5lSklUQ29kZT4gaml0Q29kZSkKICAgICAgICAgICAgICAgICBqaXREYXRhLm1f
aml0Q29uc3RhbnRQb29sW2ldID0gbV9nbG9iYWxPYmplY3QuZ2V0KCk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIEpJVENvbnN0YW50UG9vbDo6VHlwZTo6Q2FsbExp
bmtJbmZvOiB7Ci0gICAgICAgICAgICAgICAgVW5saW5rZWRDYWxsTGlua0luZm8mIHVubGlua2Vk
Q2FsbExpbmtJbmZvID0gKnN0YXRpY19jYXN0PFVubGlua2VkQ2FsbExpbmtJbmZvKj4oZW50cnku
cG9pbnRlcigpKTsKLSAgICAgICAgICAgICAgICBDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbyA9
IGppdERhdGEubV9jYWxsTGlua0luZm9zLmFkZChDb2RlT3JpZ2luKHVubGlua2VkQ2FsbExpbmtJ
bmZvLmJ5dGVjb2RlSW5kZXgpKTsKLSAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPmluaXRp
YWxpemVEYXRhSUModm0oKSwgdW5saW5rZWRDYWxsTGlua0luZm8sIEdQUkluZm86OnJlZ1QwLCBH
UFJJbmZvOjpyZWdUMik7Ci0gICAgICAgICAgICAgICAgaml0RGF0YS5tX2ppdENvbnN0YW50UG9v
bFtpXSA9IGNhbGxMaW5rSW5mbzsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbmRleCA9IGJp
dHdpc2VfY2FzdDx1aW50cHRyX3Q+KGVudHJ5LnBvaW50ZXIoKSk7CisgICAgICAgICAgICAgICAg
VW5saW5rZWRDYWxsTGlua0luZm8mIHVubGlua2VkQ2FsbExpbmtJbmZvID0gaml0Q29kZS0+bV91
bmxpbmtlZENhbGxzW2luZGV4XTsKKyAgICAgICAgICAgICAgICBDYWxsTGlua0luZm8mIGNhbGxM
aW5rSW5mbyA9IGppdERhdGEubV9jYWxsTGlua0luZm9zW2luZGV4XTsKKyAgICAgICAgICAgICAg
ICBjYWxsTGlua0luZm8uaW5pdGlhbGl6ZURhdGFJQyh2bSgpLCB1bmxpbmtlZENhbGxMaW5rSW5m
bywgR1BSSW5mbzo6cmVnVDAsIEdQUkluZm86OnJlZ1QyKTsKKyAgICAgICAgICAgICAgICBqaXRE
YXRhLm1faml0Q29uc3RhbnRQb29sW2ldID0gJmNhbGxMaW5rSW5mbzsKICAgICAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhc2UgSklUQ29uc3RhbnRQb29s
OjpUeXBlOjpTdHJ1Y3R1cmVTdHViSW5mbzogewotICAgICAgICAgICAgICAgIFVubGlua2VkU3Ry
dWN0dXJlU3R1YkluZm8mIHVubGlua2VkU3R1YkluZm8gPSBqaXRDb2RlLT5tX3VubGlua2VkU3R1
YkluZm9zW2JpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KGVudHJ5LnBvaW50ZXIoKSldOwotICAgICAg
ICAgICAgICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9IGppdERhdGEubV9zdHViSW5m
b3MuYWRkKHVubGlua2VkU3R1YkluZm8uYWNjZXNzVHlwZSwgQ29kZU9yaWdpbih1bmxpbmtlZFN0
dWJJbmZvLmJ5dGVjb2RlSW5kZXgpKTsKLSAgICAgICAgICAgICAgICBzdHViSW5mby0+aW5pdGlh
bGl6ZUZyb21VbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKHRoaXMsIHVubGlua2VkU3R1YkluZm8p
OwotICAgICAgICAgICAgICAgIGppdERhdGEubV9qaXRDb25zdGFudFBvb2xbaV0gPSBzdHViSW5m
bzsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbmRleCA9IGJpdHdpc2VfY2FzdDx1aW50cHRy
X3Q+KGVudHJ5LnBvaW50ZXIoKSk7CisgICAgICAgICAgICAgICAgVW5saW5rZWRTdHJ1Y3R1cmVT
dHViSW5mbyYgdW5saW5rZWRTdHViSW5mbyA9IGppdENvZGUtPm1fdW5saW5rZWRTdHViSW5mb3Nb
aW5kZXhdOworICAgICAgICAgICAgICAgIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbyA9IGpp
dERhdGEubV9zdHViSW5mb3NbaW5kZXhdOworICAgICAgICAgICAgICAgIHN0dWJJbmZvLmluaXRp
YWxpemVGcm9tVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbyh0aGlzLCB1bmxpbmtlZFN0dWJJbmZv
KTsKKyAgICAgICAgICAgICAgICBqaXREYXRhLm1faml0Q29uc3RhbnRQb29sW2ldID0gJnN0dWJJ
bmZvOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
Y2FzZSBKSVRDb25zdGFudFBvb2w6OlR5cGU6OkZ1bmN0aW9uRGVjbDogewpAQCAtODk5LDExICs5
MDMsMTkgQEAgQ29kZUJsb2NrOjp+Q29kZUJsb2NrKCkKIAogI2lmIEVOQUJMRShKSVQpCiAgICAg
aWYgKGF1dG8qIGppdERhdGEgPSBtX2ppdERhdGEuZ2V0KCkpIHsKLSAgICAgICAgZm9yIChTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gOiBqaXREYXRhLT5tX3N0dWJJbmZvcykgeworICAgICAg
ICBmb3IgKGF1dG8mIHN0dWJJbmZvIDogaml0RGF0YS0+bV9zdHViSW5mb3MpIHsKKyAgICAgICAg
ICAgIHN0dWJJbmZvLmFib3V0VG9EaWUoKTsKKyAgICAgICAgICAgIHN0dWJJbmZvLmRlcmVmKCk7
CisgICAgICAgIH0KKyAgICB9CisjaWYgRU5BQkxFKERGR19KSVQpCisgICAgaWYgKEpJVENvZGU6
OmlzT3B0aW1pemluZ0pJVChqaXRUeXBlKCkpKSB7CisgICAgICAgIGZvciAoYXV0byogc3R1Yklu
Zm8gOiBqaXRDb2RlKCktPmRmZ0NvbW1vbigpLT5tX3N0dWJJbmZvcykgewogICAgICAgICAgICAg
c3R1YkluZm8tPmFib3V0VG9EaWUoKTsKICAgICAgICAgICAgIHN0dWJJbmZvLT5kZXJlZigpOwog
ICAgICAgICB9CiAgICAgfQorI2VuZGlmCiAjZW5kaWYgLy8gRU5BQkxFKEpJVCkKIH0KIApAQCAt
MTIzNSwxMCArMTI0NywxNiBAQCB2b2lkIENvZGVCbG9jazo6cHJvcGFnYXRlVHJhbnNpdGlvbnMo
Y29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiwgVmlzaXRvciYgdmlzaXRvcgogI2lmIEVOQUJMRShK
SVQpCiAgICAgaWYgKEpJVENvZGU6OmlzSklUKGppdFR5cGUoKSkpIHsKICAgICAgICAgaWYgKGF1
dG8qIGppdERhdGEgPSBtX2ppdERhdGEuZ2V0KCkpIHsKLSAgICAgICAgICAgIGZvciAoU3RydWN0
dXJlU3R1YkluZm8qIHN0dWJJbmZvIDogaml0RGF0YS0+bV9zdHViSW5mb3MpCi0gICAgICAgICAg
ICAgICAgc3R1YkluZm8tPnByb3BhZ2F0ZVRyYW5zaXRpb25zKHZpc2l0b3IpOworICAgICAgICAg
ICAgZm9yIChhdXRvJiBzdHViSW5mbyA6IGppdERhdGEtPm1fc3R1YkluZm9zKQorICAgICAgICAg
ICAgICAgIHN0dWJJbmZvLnByb3BhZ2F0ZVRyYW5zaXRpb25zKHZpc2l0b3IpOwogICAgICAgICB9
CiAgICAgfQorI2lmIEVOQUJMRShERkdfSklUKQorICAgIGlmIChKSVRDb2RlOjppc09wdGltaXpp
bmdKSVQoaml0VHlwZSgpKSkgeworICAgICAgICBmb3IgKGF1dG8qIHN0dWJJbmZvIDogaml0Q29k
ZSgpLT5kZmdDb21tb24oKS0+bV9zdHViSW5mb3MpCisgICAgICAgICAgICBzdHViSW5mby0+cHJv
cGFnYXRlVHJhbnNpdGlvbnModmlzaXRvcik7CisgICAgfQorI2VuZGlmCiAjZW5kaWYgLy8gRU5B
QkxFKEpJVCkKICAgICAKICNpZiBFTkFCTEUoREZHX0pJVCkKQEAgLTE1NzUsMTUgKzE1OTMsMjUg
QEAgQ29kZUJsb2NrOjpKSVREYXRhJiBDb2RlQmxvY2s6OmVuc3VyZUpJVERhdGFTbG93KGNvbnN0
IENvbmN1cnJlbnRKU0xvY2tlciYpCiB2b2lkIENvZGVCbG9jazo6ZmluYWxpemVKSVRJbmxpbmVD
YWNoZXMoKQogewogICAgIGlmIChhdXRvKiBqaXREYXRhID0gbV9qaXREYXRhLmdldCgpKSB7Ci0g
ICAgICAgIGZvciAoQ2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8gOiBqaXREYXRhLT5tX2NhbGxM
aW5rSW5mb3MpCi0gICAgICAgICAgICBjYWxsTGlua0luZm8tPnZpc2l0V2Vhayh2bSgpKTsKKyAg
ICAgICAgZm9yIChhdXRvJiBjYWxsTGlua0luZm8gOiBqaXREYXRhLT5tX2NhbGxMaW5rSW5mb3Mp
CisgICAgICAgICAgICBjYWxsTGlua0luZm8udmlzaXRXZWFrKHZtKCkpOworICAgICAgICBmb3Ig
KGF1dG8mIHN0dWJJbmZvIDogaml0RGF0YS0+bV9zdHViSW5mb3MpIHsKKyAgICAgICAgICAgIENv
bmN1cnJlbnRKU0xvY2tlckJhc2UgbG9ja2VyKE5vTG9ja2luZ05lY2Vzc2FyeSk7CisgICAgICAg
ICAgICBzdHViSW5mby52aXNpdFdlYWtSZWZlcmVuY2VzKGxvY2tlciwgdGhpcyk7CisgICAgICAg
IH0KKyAgICB9CiAKLSAgICAgICAgZm9yIChTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gOiBq
aXREYXRhLT5tX3N0dWJJbmZvcykgeworI2lmIEVOQUJMRShERkdfSklUKQorICAgIGlmIChKSVRD
b2RlOjppc09wdGltaXppbmdKSVQoaml0VHlwZSgpKSkgeworICAgICAgICBERkc6OkNvbW1vbkRh
dGEqIGRmZ0NvbW1vbiA9IG1faml0Q29kZS0+ZGZnQ29tbW9uKCk7CisgICAgICAgIGZvciAoYXV0
byogY2FsbExpbmtJbmZvIDogZGZnQ29tbW9uLT5tX2NhbGxMaW5rSW5mb3MpCisgICAgICAgICAg
ICBjYWxsTGlua0luZm8tPnZpc2l0V2Vhayh2bSgpKTsKKyAgICAgICAgZm9yIChhdXRvKiBzdHVi
SW5mbyA6IGRmZ0NvbW1vbi0+bV9zdHViSW5mb3MpIHsKICAgICAgICAgICAgIENvbmN1cnJlbnRK
U0xvY2tlckJhc2UgbG9ja2VyKE5vTG9ja2luZ05lY2Vzc2FyeSk7CiAgICAgICAgICAgICBzdHVi
SW5mby0+dmlzaXRXZWFrUmVmZXJlbmNlcyhsb2NrZXIsIHRoaXMpOwogICAgICAgICB9CiAgICAg
fQotCisjZW5kaWYKIAogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgaWYgKGppdFR5cGUoKSA9PSBK
SVRUeXBlOjpCYXNlbGluZUpJVCkgewpAQCAtMTY3NCwxNCArMTcwMiwxOCBAQCB2b2lkIENvZGVC
bG9jazo6Z2V0SUNTdGF0dXNNYXAoY29uc3QgQ29uY3VycmVudEpTTG9ja2VyJiwgSUNTdGF0dXNN
YXAmIHJlc3VsdCkKICNpZiBFTkFCTEUoSklUKQogICAgIGlmIChKSVRDb2RlOjppc0pJVChqaXRU
eXBlKCkpKSB7CiAgICAgICAgIGlmIChhdXRvKiBqaXREYXRhID0gbV9qaXREYXRhLmdldCgpKSB7
Ci0gICAgICAgICAgICBmb3IgKFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA6IGppdERhdGEt
Pm1fc3R1YkluZm9zKQotICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoc3R1YkluZm8tPmNvZGVP
cmlnaW4sIElDU3RhdHVzKCkpLml0ZXJhdG9yLT52YWx1ZS5zdHViSW5mbyA9IHN0dWJJbmZvOwot
ICAgICAgICAgICAgZm9yIChDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbyA6IGppdERhdGEtPm1f
Y2FsbExpbmtJbmZvcykKLSAgICAgICAgICAgICAgICByZXN1bHQuYWRkKGNhbGxMaW5rSW5mby0+
Y29kZU9yaWdpbigpLCBJQ1N0YXR1cygpKS5pdGVyYXRvci0+dmFsdWUuY2FsbExpbmtJbmZvID0g
Y2FsbExpbmtJbmZvOworICAgICAgICAgICAgZm9yIChhdXRvJiBzdHViSW5mbyA6IGppdERhdGEt
Pm1fc3R1YkluZm9zKQorICAgICAgICAgICAgICAgIHJlc3VsdC5hZGQoc3R1YkluZm8uY29kZU9y
aWdpbiwgSUNTdGF0dXMoKSkuaXRlcmF0b3ItPnZhbHVlLnN0dWJJbmZvID0gJnN0dWJJbmZvOwor
ICAgICAgICAgICAgZm9yIChhdXRvJiBjYWxsTGlua0luZm8gOiBqaXREYXRhLT5tX2NhbGxMaW5r
SW5mb3MpCisgICAgICAgICAgICAgICAgcmVzdWx0LmFkZChjYWxsTGlua0luZm8uY29kZU9yaWdp
bigpLCBJQ1N0YXR1cygpKS5pdGVyYXRvci0+dmFsdWUuY2FsbExpbmtJbmZvID0gJmNhbGxMaW5r
SW5mbzsKICAgICAgICAgfQogI2lmIEVOQUJMRShERkdfSklUKQogICAgICAgICBpZiAoSklUQ29k
ZTo6aXNPcHRpbWl6aW5nSklUKGppdFR5cGUoKSkpIHsKICAgICAgICAgICAgIERGRzo6Q29tbW9u
RGF0YSogZGZnQ29tbW9uID0gbV9qaXRDb2RlLT5kZmdDb21tb24oKTsKKyAgICAgICAgICAgIGZv
ciAoYXV0byogc3R1YkluZm8gOiBkZmdDb21tb24tPm1fc3R1YkluZm9zKQorICAgICAgICAgICAg
ICAgIHJlc3VsdC5hZGQoc3R1YkluZm8tPmNvZGVPcmlnaW4sIElDU3RhdHVzKCkpLml0ZXJhdG9y
LT52YWx1ZS5zdHViSW5mbyA9IHN0dWJJbmZvOworICAgICAgICAgICAgZm9yIChhdXRvKiBjYWxs
TGlua0luZm8gOiBkZmdDb21tb24tPm1fY2FsbExpbmtJbmZvcykKKyAgICAgICAgICAgICAgICBy
ZXN1bHQuYWRkKGNhbGxMaW5rSW5mby0+Y29kZU9yaWdpbigpLCBJQ1N0YXR1cygpKS5pdGVyYXRv
ci0+dmFsdWUuY2FsbExpbmtJbmZvID0gY2FsbExpbmtJbmZvOwogICAgICAgICAgICAgZm9yIChh
dXRvJiBwYWlyIDogZGZnQ29tbW9uLT5yZWNvcmRlZFN0YXR1c2VzLmNhbGxzKQogICAgICAgICAg
ICAgICAgIHJlc3VsdC5hZGQocGFpci5maXJzdCwgSUNTdGF0dXMoKSkuaXRlcmF0b3ItPnZhbHVl
LmNhbGxTdGF0dXMgPSBwYWlyLnNlY29uZC5nZXQoKTsKICAgICAgICAgICAgIGZvciAoYXV0byYg
cGFpciA6IGRmZ0NvbW1vbi0+cmVjb3JkZWRTdGF0dXNlcy5nZXRzKQpAQCAtMTcwNywzOSArMTcz
OSw0NSBAQCB2b2lkIENvZGVCbG9jazo6Z2V0SUNTdGF0dXNNYXAoSUNTdGF0dXNNYXAmIHJlc3Vs
dCkKIH0KIAogI2lmIEVOQUJMRShKSVQpCi1TdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjph
ZGRPcHRpbWl6aW5nU3R1YkluZm8oQWNjZXNzVHlwZSBhY2Nlc3NUeXBlLCBDb2RlT3JpZ2luIGNv
ZGVPcmlnaW4pCi17Ci0gICAgQ29uY3VycmVudEpTTG9ja2VyIGxvY2tlcihtX2xvY2spOwotICAg
IHJldHVybiBlbnN1cmVKSVREYXRhKGxvY2tlcikubV9zdHViSW5mb3MuYWRkKGFjY2Vzc1R5cGUs
IGNvZGVPcmlnaW4pOwotfQotCiBTdHJ1Y3R1cmVTdHViSW5mbyogQ29kZUJsb2NrOjpmaW5kU3R1
YkluZm8oQ29kZU9yaWdpbiBjb2RlT3JpZ2luKQogewogICAgIENvbmN1cnJlbnRKU0xvY2tlciBs
b2NrZXIobV9sb2NrKTsKICAgICBpZiAoYXV0byogaml0RGF0YSA9IG1faml0RGF0YS5nZXQoKSkg
ewotICAgICAgICBmb3IgKFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA6IGppdERhdGEtPm1f
c3R1YkluZm9zKSB7CisgICAgICAgIGZvciAoYXV0byYgc3R1YkluZm8gOiBqaXREYXRhLT5tX3N0
dWJJbmZvcykgeworICAgICAgICAgICAgaWYgKHN0dWJJbmZvLmNvZGVPcmlnaW4gPT0gY29kZU9y
aWdpbikKKyAgICAgICAgICAgICAgICByZXR1cm4gJnN0dWJJbmZvOworICAgICAgICB9CisgICAg
fQorCisjaWYgRU5BQkxFKERGR19KSVQpCisgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJ
VChqaXRUeXBlKCkpKSB7CisgICAgICAgIGZvciAoYXV0byogc3R1YkluZm8gOiBqaXRDb2RlKCkt
PmRmZ0NvbW1vbigpLT5tX3N0dWJJbmZvcykgewogICAgICAgICAgICAgaWYgKHN0dWJJbmZvLT5j
b2RlT3JpZ2luID09IGNvZGVPcmlnaW4pCiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0dWJJbmZv
OwogICAgICAgICB9CiAgICAgfQorI2VuZGlmCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLUNh
bGxMaW5rSW5mbyogQ29kZUJsb2NrOjphZGRDYWxsTGlua0luZm8oQ29kZU9yaWdpbiBjb2RlT3Jp
Z2luKQotewotICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIobV9sb2NrKTsKLSAgICByZXR1
cm4gZW5zdXJlSklURGF0YShsb2NrZXIpLm1fY2FsbExpbmtJbmZvcy5hZGQoY29kZU9yaWdpbik7
Ci19Ci0KIENhbGxMaW5rSW5mbyogQ29kZUJsb2NrOjpnZXRDYWxsTGlua0luZm9Gb3JCeXRlY29k
ZUluZGV4KEJ5dGVjb2RlSW5kZXggaW5kZXgpCiB7CiAgICAgQ29uY3VycmVudEpTTG9ja2VyIGxv
Y2tlcihtX2xvY2spOwogICAgIGlmIChhdXRvKiBqaXREYXRhID0gbV9qaXREYXRhLmdldCgpKSB7
Ci0gICAgICAgIGZvciAoQ2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8gOiBqaXREYXRhLT5tX2Nh
bGxMaW5rSW5mb3MpIHsKKyAgICAgICAgZm9yIChhdXRvJiBjYWxsTGlua0luZm8gOiBqaXREYXRh
LT5tX2NhbGxMaW5rSW5mb3MpIHsKKyAgICAgICAgICAgIGlmIChjYWxsTGlua0luZm8uY29kZU9y
aWdpbigpID09IENvZGVPcmlnaW4oaW5kZXgpKQorICAgICAgICAgICAgICAgIHJldHVybiAmY2Fs
bExpbmtJbmZvOworICAgICAgICB9CisgICAgfQorI2lmIEVOQUJMRShERkdfSklUKQorICAgIGlm
IChKSVRDb2RlOjppc09wdGltaXppbmdKSVQoaml0VHlwZSgpKSkgeworICAgICAgICBERkc6OkNv
bW1vbkRhdGEqIGRmZ0NvbW1vbiA9IG1faml0Q29kZS0+ZGZnQ29tbW9uKCk7CisgICAgICAgIGZv
ciAoYXV0byogY2FsbExpbmtJbmZvIDogZGZnQ29tbW9uLT5tX2NhbGxMaW5rSW5mb3MpIHsKICAg
ICAgICAgICAgIGlmIChjYWxsTGlua0luZm8tPmNvZGVPcmlnaW4oKSA9PSBDb2RlT3JpZ2luKGlu
ZGV4KSkKICAgICAgICAgICAgICAgICByZXR1cm4gY2FsbExpbmtJbmZvOwogICAgICAgICB9CiAg
ICAgfQorI2VuZGlmCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKQEAgLTE3ODEsOSArMTgxOSw5
IEBAIHZvaWQgQ29kZUJsb2NrOjpyZXNldEpJVERhdGEoKQogICAgICAgICAvLyB0aGVzZSAqaW5m
b3MsIGJ1dCB3aGVuIHdlIGhhdmUgYW4gT1NSIGV4aXQgbGlua2VkIHRvIHRoaXMgQ29kZUJsb2Nr
LCB3ZSB3b24ndCBkb3duZ3JhZGUKICAgICAgICAgLy8gdG8gTExJbnQuCiAKLSAgICAgICAgZm9y
IChTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gOiBqaXREYXRhLT5tX3N0dWJJbmZvcykgewot
ICAgICAgICAgICAgc3R1YkluZm8tPmFib3V0VG9EaWUoKTsKLSAgICAgICAgICAgIHN0dWJJbmZv
LT5kZXJlZigpOworICAgICAgICBmb3IgKGF1dG8mIHN0dWJJbmZvIDogaml0RGF0YS0+bV9zdHVi
SW5mb3MpIHsKKyAgICAgICAgICAgIHN0dWJJbmZvLmFib3V0VG9EaWUoKTsKKyAgICAgICAgICAg
IHN0dWJJbmZvLmRlcmVmKCk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBXZSBjYW4gY2xlYXIg
dGhpcyBiZWNhdXNlIHRoZSBERkcncyBxdWVyaWVzIHRvIHRoZXNlIGRhdGEgc3RydWN0dXJlcyBh
cmUgZ3VhcmRlZCBieSB3aGV0aGVyCkBAIC0xODM2LDE0ICsxODc0LDE2IEBAIHZvaWQgQ29kZUJs
b2NrOjpzdHJvbmdseVZpc2l0U3Ryb25nUmVmZXJlbmNlcyhjb25zdCBDb25jdXJyZW50SlNMb2Nr
ZXImIGxvY2tlciwKIAogI2lmIEVOQUJMRShKSVQpCiAgICAgaWYgKGF1dG8qIGppdERhdGEgPSBt
X2ppdERhdGEuZ2V0KCkpIHsKLSAgICAgICAgZm9yIChTdHJ1Y3R1cmVTdHViSW5mbyogc3R1Yklu
Zm8gOiBqaXREYXRhLT5tX3N0dWJJbmZvcykKLSAgICAgICAgICAgIHN0dWJJbmZvLT52aXNpdEFn
Z3JlZ2F0ZSh2aXNpdG9yKTsKKyAgICAgICAgZm9yIChhdXRvJiBzdHViSW5mbyA6IGppdERhdGEt
Pm1fc3R1YkluZm9zKQorICAgICAgICAgICAgc3R1YkluZm8udmlzaXRBZ2dyZWdhdGUodmlzaXRv
cik7CiAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoREZHX0pJVCkKICAgICBpZiAoSklUQ29k
ZTo6aXNPcHRpbWl6aW5nSklUKGppdFR5cGUoKSkpIHsKICAgICAgICAgREZHOjpDb21tb25EYXRh
KiBkZmdDb21tb24gPSBtX2ppdENvZGUtPmRmZ0NvbW1vbigpOworICAgICAgICBmb3IgKGF1dG8q
IHN0dWJJbmZvIDogZGZnQ29tbW9uLT5tX3N0dWJJbmZvcykKKyAgICAgICAgICAgIHN0dWJJbmZv
LT52aXNpdEFnZ3JlZ2F0ZSh2aXNpdG9yKTsKICAgICAgICAgZGZnQ29tbW9uLT5yZWNvcmRlZFN0
YXR1c2VzLnZpc2l0QWdncmVnYXRlKHZpc2l0b3IpOwogICAgICAgICB2aXNpdE9TUkV4aXRUYXJn
ZXRzKGxvY2tlciwgdmlzaXRvcik7CiAgICAgfQpAQCAtMjI5Myw5ICsyMzMzLDE2IEBAIHZvaWQg
Q29kZUJsb2NrOjpqZXR0aXNvbihQcm9maWxlcjo6SmV0dGlzb25SZWFzb24gcmVhc29uLCBSZW9w
dGltaXphdGlvbk1vZGUgbW9kCiAgICAgewogICAgICAgICBDb25jdXJyZW50SlNMb2NrZXIgbG9j
a2VyKG1fbG9jayk7CiAgICAgICAgIGlmIChKSVREYXRhKiBqaXREYXRhID0gbV9qaXREYXRhLmdl
dCgpKSB7Ci0gICAgICAgICAgICBmb3IgKENhbGxMaW5rSW5mbyogY2FsbExpbmtJbmZvIDogaml0
RGF0YS0+bV9jYWxsTGlua0luZm9zKQorICAgICAgICAgICAgZm9yIChhdXRvJiBjYWxsTGlua0lu
Zm8gOiBqaXREYXRhLT5tX2NhbGxMaW5rSW5mb3MpCisgICAgICAgICAgICAgICAgY2FsbExpbmtJ
bmZvLnNldENsZWFyZWRCeUpldHRpc29uKCk7CisgICAgICAgIH0KKyNpZiBFTkFCTEUoREZHX0pJ
VCkKKyAgICAgICAgaWYgKEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChqaXRUeXBlKCkpKSB7Cisg
ICAgICAgICAgICBERkc6OkNvbW1vbkRhdGEqIGRmZ0NvbW1vbiA9IG1faml0Q29kZS0+ZGZnQ29t
bW9uKCk7CisgICAgICAgICAgICBmb3IgKGF1dG8qIGNhbGxMaW5rSW5mbyA6IGRmZ0NvbW1vbi0+
bV9jYWxsTGlua0luZm9zKQogICAgICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+c2V0Q2xlYXJl
ZEJ5SmV0dGlzb24oKTsKICAgICAgICAgfQorI2VuZGlmCiAgICAgfQogI2VuZGlmCiAKQEAgLTM0
OTYsMTcgKzM1NDMsMjMgQEAgc3RkOjpvcHRpb25hbDxDb2RlT3JpZ2luPiBDb2RlQmxvY2s6OmZp
bmRQQyh2b2lkKiBwYykKICAgICB7CiAgICAgICAgIENvbmN1cnJlbnRKU0xvY2tlciBsb2NrZXIo
bV9sb2NrKTsKICAgICAgICAgaWYgKGF1dG8qIGppdERhdGEgPSBtX2ppdERhdGEuZ2V0KCkpIHsK
LSAgICAgICAgICAgIGZvciAoU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvIDogaml0RGF0YS0+
bV9zdHViSW5mb3MpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgc3R1YkluZm8gOiBqaXREYXRh
LT5tX3N0dWJJbmZvcykgeworICAgICAgICAgICAgICAgIGlmIChzdHViSW5mby5jb250YWluc1BD
KHBjKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0dWJJbmZvLmNvZGVPcmlnaW47Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyNpZiBFTkFCTEUoREZHX0pJVCkKKyAgICAgICAgaWYg
KEpJVENvZGU6OmlzT3B0aW1pemluZ0pJVChqaXRUeXBlKCkpKSB7CisgICAgICAgICAgICBERkc6
OkNvbW1vbkRhdGEqIGRmZ0NvbW1vbiA9IG1faml0Q29kZS0+ZGZnQ29tbW9uKCk7CisgICAgICAg
ICAgICBmb3IgKGF1dG8qIHN0dWJJbmZvIDogZGZnQ29tbW9uLT5tX3N0dWJJbmZvcykgewogICAg
ICAgICAgICAgICAgIGlmIChzdHViSW5mby0+Y29udGFpbnNQQyhwYykpCi0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPENvZGVPcmlnaW4+KHN0dWJJbmZvLT5jb2RlT3Jp
Z2luKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN0dWJJbmZvLT5jb2RlT3JpZ2luOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKLSAgICBpZiAoc3RkOjpv
cHRpb25hbDxDb2RlT3JpZ2luPiBjb2RlT3JpZ2luID0gbV9qaXRDb2RlLT5maW5kUEModGhpcywg
cGMpKQotICAgICAgICByZXR1cm4gY29kZU9yaWdpbjsKLQotICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgcmV0dXJuIG1faml0Q29kZS0+ZmluZFBDKHRoaXMsIHBjKTsKIH0KICNlbmRpZiAv
LyBFTkFCTEUoSklUKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQ29kZUJsb2NrLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2Nr
LmgKaW5kZXggNWE5NzUyNTg5YjQ2YjNjOWM5OWM0NzQwNGFhMThmNDJkOTQxZTU4Ni4uNjRmOWY1
YWJjZmUyYWU3MDVkMWRhNjVhYTlmODMxOTdiOTZjNmQzMSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaApAQCAtNjgsNyArNjgsNiBAQAogI2luY2x1ZGUgIlZh
bHVlUHJvZmlsZS5oIgogI2luY2x1ZGUgIlZpcnR1YWxSZWdpc3Rlci5oIgogI2luY2x1ZGUgIldh
dGNocG9pbnQuaCIKLSNpbmNsdWRlIDx3dGYvQmFnLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxs
b2MuaD4KICNpbmNsdWRlIDx3dGYvRml4ZWRWZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgpAQCAtMjYxLDggKzI2MCw4IEBAIGNsYXNzIENvZGVCbG9jayA6IHB1YmxpYyBKU0NlbGwg
ewogICAgICAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CiAgICAgICAgIGZyaWVu
ZCBjbGFzcyBMTEludE9mZnNldHNFeHRyYWN0b3I7CiAKLSAgICAgICAgQmFnPFN0cnVjdHVyZVN0
dWJJbmZvPiBtX3N0dWJJbmZvczsKLSAgICAgICAgQmFnPENhbGxMaW5rSW5mbz4gbV9jYWxsTGlu
a0luZm9zOworICAgICAgICBGaXhlZFZlY3RvcjxTdHJ1Y3R1cmVTdHViSW5mbz4gbV9zdHViSW5m
b3M7CisgICAgICAgIEZpeGVkVmVjdG9yPENhbGxMaW5rSW5mbz4gbV9jYWxsTGlua0luZm9zOwog
ICAgICAgICBTZW50aW5lbExpbmtlZExpc3Q8Q2FsbExpbmtJbmZvLCBQYWNrZWRSYXdTZW50aW5l
bE5vZGU8Q2FsbExpbmtJbmZvPj4gbV9pbmNvbWluZ0NhbGxzOwogICAgICAgICBTZW50aW5lbExp
bmtlZExpc3Q8UG9seW1vcnBoaWNDYWxsTm9kZSwgUGFja2VkUmF3U2VudGluZWxOb2RlPFBvbHlt
b3JwaGljQ2FsbE5vZGU+PiBtX2luY29taW5nUG9seW1vcnBoaWNDYWxsczsKICAgICAgICAgYm9v
bCBtX2hhc0NhbGxlZVNhdmVSZWdpc3RlcnMgeyBmYWxzZSB9OwpAQCAtMjg5LDggKzI4OCw2IEBA
IGNsYXNzIENvZGVCbG9jayA6IHB1YmxpYyBKU0NlbGwgewogICAgIC8vIE8obikgb3BlcmF0aW9u
LiBVc2UgZ2V0SUNTdGF0dXNNYXAoKSB1bmxlc3MgeW91IHJlYWxseSBvbmx5IGludGVuZCB0byBn
ZXQgb25lIHN0dWIgaW5mby4KICAgICBTdHJ1Y3R1cmVTdHViSW5mbyogZmluZFN0dWJJbmZvKENv
ZGVPcmlnaW4pOwogCi0gICAgQ2FsbExpbmtJbmZvKiBhZGRDYWxsTGlua0luZm8oQ29kZU9yaWdp
bik7Ci0KICAgICAvLyBUaGlzIGlzIGEgc2xvdyBmdW5jdGlvbiBjYWxsIHVzZWQgcHJpbWFyaWx5
IGZvciBjb21waWxpbmcgT1NSIGV4aXRzIGluIHRoZSBjYXNlCiAgICAgLy8gdGhhdCB0aGVyZSBo
YWQgYmVlbiBpbmxpbmluZy4gQ2hhbmNlcyBhcmUgaWYgeW91IHdhbnQgdG8gdXNlIHRoaXMsIHlv
dSdyZSByZWFsbHkKICAgICAvLyBsb29raW5nIGZvciBhIENhbGxMaW5rSW5mb01hcCB0byBhbW9y
dGl6ZSB0aGUgY29zdCBvZiBjYWxsaW5nIHRoaXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcAppbmRleCBiMWJkYjEyYzgyYTBl
ZjNlMGVlYjFmMGU1ODkyNmRmMDIwMDU2YWUwLi43N2M5YjhjNzJiMTQ5MDVkMTQ4ODJkNWQ4NTQz
MzQ4Nzc5ZTE3MTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
U3RydWN0dXJlU3R1YkluZm8uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5jcHAKQEAgLTM5LDIzICszOSw2IEBAIG5hbWVzcGFjZSBTdHJ1
Y3R1cmVTdHViSW5mb0ludGVybmFsIHsKIHN0YXRpYyBjb25zdGV4cHIgYm9vbCB2ZXJib3NlID0g
ZmFsc2U7CiB9CiAKLVN0cnVjdHVyZVN0dWJJbmZvOjpTdHJ1Y3R1cmVTdHViSW5mbyhBY2Nlc3NU
eXBlIGFjY2Vzc1R5cGUsIENvZGVPcmlnaW4gY29kZU9yaWdpbikKLSAgICA6IGNvZGVPcmlnaW4o
Y29kZU9yaWdpbikKLSAgICAsIGFjY2Vzc1R5cGUoYWNjZXNzVHlwZSkKLSAgICAsIGJ1ZmZlcmlu
Z0NvdW50ZG93bihPcHRpb25zOjpyZXBhdGNoQnVmZmVyaW5nQ291bnRkb3duKCkpCi0gICAgLCBy
ZXNldEJ5R0MoZmFsc2UpCi0gICAgLCB0b29rU2xvd1BhdGgoZmFsc2UpCi0gICAgLCBldmVyQ29u
c2lkZXJlZChmYWxzZSkKLSAgICAsIHByb3RvdHlwZUlzS25vd25PYmplY3QoZmFsc2UpCi0gICAg
LCBzYXdOb25DZWxsKGZhbHNlKQotICAgICwgaGFzQ29uc3RhbnRJZGVudGlmaWVyKHRydWUpCi0g
ICAgLCBwcm9wZXJ0eUlzU3RyaW5nKGZhbHNlKQotICAgICwgcHJvcGVydHlJc0ludDMyKGZhbHNl
KQotICAgICwgcHJvcGVydHlJc1N5bWJvbChmYWxzZSkKLXsKLSAgICByZWdzLnRoaXNHUFIgPSBJ
bnZhbGlkR1BSUmVnOwotfQotCiBTdHJ1Y3R1cmVTdHViSW5mbzo6flN0cnVjdHVyZVN0dWJJbmZv
KCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1
Y3R1cmVTdHViSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVy
ZVN0dWJJbmZvLmgKaW5kZXggOTk2ZjU5YWI4NTU5ZjhmZGQ1ZTlmNmY2MDgzNmNlMzEwMzdlYzA1
Ni4uMDQ3YjRlYmYwZWQxYTA3ODcwYjUwNjU2YTJmNmRjMzQ0ZWU4ZWE0NiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKQEAgLTg2
LDcgKzg2LDI3IEBAIGNsYXNzIFN0cnVjdHVyZVN0dWJJbmZvIHsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShTdHJ1Y3R1cmVTdHViSW5mbyk7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgU3RydWN0dXJlU3R1YkluZm8oQWNjZXNzVHlwZSwgQ29kZU9yaWdpbik7
CisgICAgU3RydWN0dXJlU3R1YkluZm8oQWNjZXNzVHlwZSBhY2Nlc3NUeXBlLCBDb2RlT3JpZ2lu
IGNvZGVPcmlnaW4pCisgICAgICAgIDogY29kZU9yaWdpbihjb2RlT3JpZ2luKQorICAgICAgICAs
IGFjY2Vzc1R5cGUoYWNjZXNzVHlwZSkKKyAgICAgICAgLCBidWZmZXJpbmdDb3VudGRvd24oT3B0
aW9uczo6cmVwYXRjaEJ1ZmZlcmluZ0NvdW50ZG93bigpKQorICAgICAgICAsIHJlc2V0QnlHQyhm
YWxzZSkKKyAgICAgICAgLCB0b29rU2xvd1BhdGgoZmFsc2UpCisgICAgICAgICwgZXZlckNvbnNp
ZGVyZWQoZmFsc2UpCisgICAgICAgICwgcHJvdG90eXBlSXNLbm93bk9iamVjdChmYWxzZSkKKyAg
ICAgICAgLCBzYXdOb25DZWxsKGZhbHNlKQorICAgICAgICAsIGhhc0NvbnN0YW50SWRlbnRpZmll
cih0cnVlKQorICAgICAgICAsIHByb3BlcnR5SXNTdHJpbmcoZmFsc2UpCisgICAgICAgICwgcHJv
cGVydHlJc0ludDMyKGZhbHNlKQorICAgICAgICAsIHByb3BlcnR5SXNTeW1ib2woZmFsc2UpCisg
ICAgeworICAgICAgICByZWdzLnRoaXNHUFIgPSBJbnZhbGlkR1BSUmVnOworICAgIH0KKworICAg
IFN0cnVjdHVyZVN0dWJJbmZvKCkKKyAgICAgICAgOiBTdHJ1Y3R1cmVTdHViSW5mbyhBY2Nlc3NU
eXBlOjpHZXRCeUlkLCB7IH0pCisgICAgeyB9CisKICAgICB+U3RydWN0dXJlU3R1YkluZm8oKTsK
IAogICAgIHZvaWQgaW5pdEdldEJ5SWRTZWxmKGNvbnN0IENvbmN1cnJlbnRKU0xvY2tlckJhc2Um
LCBDb2RlQmxvY2sqLCBTdHJ1Y3R1cmUqIGlubGluZUFjY2Vzc0Jhc2VTdHJ1Y3R1cmUsIFByb3Bl
cnR5T2Zmc2V0LCBDYWNoZWFibGVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uRGF0YS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdDb21tb25EYXRhLmgKaW5kZXggMzY1ZWVhNWQzZDMwNjU1MzFlMWQzYzc3NDEzNDkzYmMy
MTViNTRhZS4uYmUwMjQ3N2Q0Njc5NDBhNzg0NjYwMzk5MGVjOTMwOWVmNDAyMzYzMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb25EYXRhLmgKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpZiBFTkFCTEUoREZHX0pJVCkKIAogI2luY2x1ZGUgIkJhc2VsaW5lSklUQ29kZS5oIgorI2lu
Y2x1ZGUgIkNhbGxMaW5rSW5mby5oIgogI2luY2x1ZGUgIkNvZGVCbG9ja0pldHRpc29uaW5nV2F0
Y2hwb2ludC5oIgogI2luY2x1ZGUgIkRGR0FkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0
Y2hwb2ludC5oIgogI2luY2x1ZGUgIkRGR0FkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludC5oIgpA
QCAtNDAsNiArNDEsNyBAQAogI2luY2x1ZGUgIlBDVG9Db2RlT3JpZ2luTWFwLmgiCiAjaW5jbHVk
ZSAiUHJvZmlsZXJDb21waWxhdGlvbi5oIgogI2luY2x1ZGUgIlJlY29yZGVkU3RhdHVzZXMuaCIK
KyNpbmNsdWRlICJTdHJ1Y3R1cmVTdHViSW5mby5oIgogI2luY2x1ZGUgPHd0Zi9CYWcuaD4KICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIApAQCAtMTA4LDYgKzExMCwxMSBAQCBjbGFzcyBD
b21tb25EYXRhIDogcHVibGljIE1hdGhJQ0hvbGRlciB7CiAgICAgCiAgICAgdm9pZCBjbGVhcldh
dGNocG9pbnRzKCk7CiAKKyAgICBDYWxsTGlua0luZm8qIGFkZENhbGxMaW5rSW5mbyhDb2RlT3Jp
Z2luIGNvZGVPcmlnaW4pCisgICAgeworICAgICAgICByZXR1cm4gbV9jYWxsTGlua0luZm9zLmFk
ZChjb2RlT3JpZ2luKTsKKyAgICB9CisKICAgICBSZWZQdHI8SW5saW5lQ2FsbEZyYW1lU2V0PiBp
bmxpbmVDYWxsRnJhbWVzOwogICAgIFJlZjxDb2RlT3JpZ2luUG9vbD4gY29kZU9yaWdpbnM7CiAg
ICAgCkBAIC0xMjIsNiArMTI5LDggQEAgY2xhc3MgQ29tbW9uRGF0YSA6IHB1YmxpYyBNYXRoSUNI
b2xkZXIgewogICAgIHN0ZDo6dW5pcXVlX3B0cjxQQ1RvQ29kZU9yaWdpbk1hcD4gbV9wY1RvQ29k
ZU9yaWdpbk1hcDsKICAgICBSZWNvcmRlZFN0YXR1c2VzIHJlY29yZGVkU3RhdHVzZXM7CiAgICAg
VmVjdG9yPEp1bXBSZXBsYWNlbWVudD4gbV9qdW1wUmVwbGFjZW1lbnRzOworICAgIEJhZzxTdHJ1
Y3R1cmVTdHViSW5mbz4gbV9zdHViSW5mb3M7CisgICAgQmFnPENhbGxMaW5rSW5mbz4gbV9jYWxs
TGlua0luZm9zOwogICAgIAogICAgIFNjcmF0Y2hCdWZmZXIqIGNhdGNoT1NSRW50cnlCdWZmZXI7
CiAgICAgUmVmUHRyPFByb2ZpbGVyOjpDb21waWxhdGlvbj4gY29tcGlsYXRpb247CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IDYyOWIz
Y2M2NjFlNTI3OTdiOGEyMWI5MDMwY2QyMDVkMTg2M2QzNDIuLjY5MDJkNzk4YjZlNTE3NTA4Y2Mw
MmRkNjRiOGU3OGI2Zjk2N2ExYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQuY3BwCkBAIC0xMTc5LDcgKzExNzksNyBAQCB2b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlRGVsZXRlQnlJZChOb2RlKiBub2RlKQogICAgICAgICBSZWdpc3RlclNl
dCB1c2VkUmVnaXN0ZXJzID0gdGhpcy0+dXNlZFJlZ2lzdGVycygpOwogCiAgICAgICAgIEpJVERl
bEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIEpJVFR5
cGU6OkRGR0pJVCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIG5vZGUtPmNh
Y2hlYWJsZUlkZW50aWZpZXIoKSwKKyAgICAgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCAmbV9q
aXQuaml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkRGR0pJVCwgY29kZU9y
aWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIG5vZGUtPmNhY2hlYWJsZUlkZW50aWZpZXIo
KSwKICAgICAgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShiYXNlR1BSKSwgcmVzdWx0
UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIpOwogCiAgICAgICAgIGdlbi5nZW5lcmF0ZUZh
c3RQYXRoKG1faml0KTsKQEAgLTEyNjUsNyArMTI2NSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVEZWxldGVCeVZhbChOb2RlKiBub2RlKQogICAgICAgICBSZWdpc3RlclNldCB1c2Vk
UmVnaXN0ZXJzID0gdGhpcy0+dXNlZFJlZ2lzdGVycygpOwogCiAgICAgICAgIEpJVERlbEJ5VmFs
R2VuZXJhdG9yIGdlbigKLSAgICAgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBKSVRUeXBlOjpE
RkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLAorICAgICAgICAgICAg
bV9qaXQuY29kZUJsb2NrKCksICZtX2ppdC5qaXRDb2RlKCktPmNvbW1vbi5tX3N0dWJJbmZvcywg
SklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgdXNlZFJlZ2lzdGVycywKICAg
ICAgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShiYXNlR1BSKSwga2V5UmVncywgcmVz
dWx0UmVncywgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIpOwogCiAgICAgICAgIGdlbi5nZW5lcmF0
ZUZhc3RQYXRoKG1faml0KTsKQEAgLTEzNDAsNyArMTM0MCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVJbkJ5SWQoTm9kZSogbm9kZSkKICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRl
ID0gbV9qaXQucmVjb3JkQ2FsbFNpdGVBbmRHZW5lcmF0ZUV4Y2VwdGlvbkhhbmRsaW5nT1NSRXhp
dElmTmVlZGVkKGNvZGVPcmlnaW4sIG1fc3RyZWFtLT5zaXplKCkpOwogICAgIFJlZ2lzdGVyU2V0
IHVzZWRSZWdpc3RlcnMgPSB0aGlzLT51c2VkUmVnaXN0ZXJzKCk7CiAgICAgSklUSW5CeUlkR2Vu
ZXJhdG9yIGdlbigKLSAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIEpJVFR5cGU6OkRGR0pJVCwg
Y29kZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIG5vZGUtPmNhY2hlYWJsZUlkZW50
aWZpZXIoKSwKKyAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksICZtX2ppdC5qaXRDb2RlKCktPmNv
bW1vbi5tX3N0dWJJbmZvcywgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwg
dXNlZFJlZ2lzdGVycywgbm9kZS0+Y2FjaGVhYmxlSWRlbnRpZmllcigpLAogICAgICAgICBKU1Zh
bHVlUmVnczo6cGF5bG9hZE9ubHkoYmFzZUdQUiksIHJlc3VsdFJlZ3MsIHN0dWJJbmZvR1BSKTsK
ICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CiAKQEAgLTEzOTEsNyArMTM5MSw3IEBA
IHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJbkJ5VmFsKE5vZGUqIG5vZGUpCiAgICAgQ2Fs
bFNpdGVJbmRleCBjYWxsU2l0ZSA9IG1faml0LnJlY29yZENhbGxTaXRlQW5kR2VuZXJhdGVFeGNl
cHRpb25IYW5kbGluZ09TUkV4aXRJZk5lZWRlZChjb2RlT3JpZ2luLCBtX3N0cmVhbS0+c2l6ZSgp
KTsKICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gdGhpcy0+dXNlZFJlZ2lzdGVycygp
OwogICAgIEpJVEluQnlWYWxHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2ppdC5jb2RlQmxvY2so
KSwgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgQWNjZXNzVHlwZTo6SW5C
eVZhbCwgdXNlZFJlZ2lzdGVycywKKyAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksICZtX2ppdC5q
aXRDb2RlKCktPmNvbW1vbi5tX3N0dWJJbmZvcywgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2lu
LCBjYWxsU2l0ZSwgQWNjZXNzVHlwZTo6SW5CeVZhbCwgdXNlZFJlZ2lzdGVycywKICAgICAgICAg
SlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJhc2VHUFIpLCBrZXlSZWdzLCByZXN1bHRSZWdzLCBz
dHViSW5mb0dQUik7CiAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOwogICAgIGlmICgh
SklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkRGR0pJVCkpCkBAIC0xNDQzLDcgKzE0NDMsNyBA
QCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSGFzUHJpdmF0ZShOb2RlKiBub2RlLCBBY2Nl
c3NUeXBlIHR5cGUpCiAgICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSA9IG1faml0LnJlY29yZENh
bGxTaXRlQW5kR2VuZXJhdGVFeGNlcHRpb25IYW5kbGluZ09TUkV4aXRJZk5lZWRlZChjb2RlT3Jp
Z2luLCBtX3N0cmVhbS0+c2l6ZSgpKTsKICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0g
dGhpcy0+dXNlZFJlZ2lzdGVycygpOwogICAgIEpJVEluQnlWYWxHZW5lcmF0b3IgZ2VuKAotICAg
ICAgICBtX2ppdC5jb2RlQmxvY2soKSwgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxs
U2l0ZSwgdHlwZSwgdXNlZFJlZ2lzdGVycywKKyAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksICZt
X2ppdC5qaXRDb2RlKCktPmNvbW1vbi5tX3N0dWJJbmZvcywgSklUVHlwZTo6REZHSklULCBjb2Rl
T3JpZ2luLCBjYWxsU2l0ZSwgdHlwZSwgdXNlZFJlZ2lzdGVycywKICAgICAgICAgSlNWYWx1ZVJl
Z3M6OnBheWxvYWRPbmx5KGJhc2VHUFIpLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocHJvcGVy
dHlPckJyYW5kR1BSKSwgcmVzdWx0UmVncywgc3R1YkluZm9HUFIpOwogCiAgICAgZ2VuLnN0dWJJ
bmZvKCktPnByb3BlcnR5SXNTeW1ib2wgPSB0cnVlOwpAQCAtMzg0MCw3ICszODQwLDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldFByaXZhdGVOYW1lQnlWYWwoTm9kZSogbm9kZSwg
SlNWYWx1ZVJlZ3MgYmFzZSwgSlMKICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2ppdC5icmFu
Y2hJZk5vdENlbGwoYmFzZSkpOwogCiAgICAgSklUR2V0QnlWYWxHZW5lcmF0b3IgZ2VuKAotICAg
ICAgICBtX2ppdC5jb2RlQmxvY2soKSwgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxs
U2l0ZSwgQWNjZXNzVHlwZTo6R2V0UHJpdmF0ZU5hbWUsIHVzZWRSZWdpc3RlcnMsCisgICAgICAg
IG1faml0LmNvZGVCbG9jaygpLCAmbV9qaXQuaml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3Ms
IEpJVFR5cGU6OkRGR0pJVCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIEFjY2Vzc1R5cGU6OkdldFBy
aXZhdGVOYW1lLCB1c2VkUmVnaXN0ZXJzLAogICAgICAgICBiYXNlLCBwcm9wZXJ0eSwgcmVzdWx0
UmVncywgc3R1YkluZm9HUFIpOwogICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzU3ltYm9s
ID0gdHJ1ZTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CkBAIC00MDMyLDcgKzQw
MzIsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlUHV0UHJpdmF0ZU5hbWUoTm9kZSog
bm9kZSkKICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gdGhpcy0+dXNlZFJlZ2lzdGVy
cygpOwogCiAgICAgSklUUHV0QnlWYWxHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2ppdC5jb2Rl
QmxvY2soKSwgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgQWNjZXNzVHlw
ZTo6UHV0UHJpdmF0ZU5hbWUsIHVzZWRSZWdpc3RlcnMsCisgICAgICAgIG1faml0LmNvZGVCbG9j
aygpLCAmbV9qaXQuaml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkRGR0pJ
VCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIEFjY2Vzc1R5cGU6OlB1dFByaXZhdGVOYW1lLCB1c2Vk
UmVnaXN0ZXJzLAogICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkoYmFzZUdQUiksIEpT
VmFsdWVSZWdzOjpwYXlsb2FkT25seShwcm9wZXJ0eUdQUiksIHZhbHVlUmVncywgSW52YWxpZEdQ
UlJlZywgc3R1YkluZm9HUFIpOwogICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzU3ltYm9s
ID0gdHJ1ZTsKIApAQCAtNDEwOSw3ICs0MTA5LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUNoZWNrUHJpdmF0ZUJyYW5kKE5vZGUqIG5vZGUpCiAgICAgICAgIHNsb3dDYXNlcy5hcHBl
bmQobV9qaXQuYnJhbmNoSWZOb3RDZWxsKGJhc2VSZWdzKSk7CiAKICAgICBKSVRQcml2YXRlQnJh
bmRBY2Nlc3NHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgSklUVHlw
ZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgQWNjZXNzVHlwZTo6Q2hlY2tQcml2YXRl
QnJhbmQsIHVzZWRSZWdpc3RlcnMsCisgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCAmbV9qaXQu
aml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkRGR0pJVCwgY29kZU9yaWdp
biwgY2FsbFNpdGUsIEFjY2Vzc1R5cGU6OkNoZWNrUHJpdmF0ZUJyYW5kLCB1c2VkUmVnaXN0ZXJz
LAogICAgICAgICBiYXNlUmVncywgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJyYW5kR1BSKSwg
c3R1YkluZm9HUFIpOwogCiAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNTeW1ib2wgPSB0
cnVlOwpAQCAtNDE1Nyw3ICs0MTU3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNl
dFByaXZhdGVCcmFuZChOb2RlKiBub2RlKQogCiAgICAgSklUQ29tcGlsZXI6Okp1bXBMaXN0IHNs
b3dDYXNlczsKICAgICBKSVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3IgZ2VuKAotICAgICAg
ICBtX2ppdC5jb2RlQmxvY2soKSwgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0
ZSwgQWNjZXNzVHlwZTo6U2V0UHJpdmF0ZUJyYW5kLCB1c2VkUmVnaXN0ZXJzLAorICAgICAgICBt
X2ppdC5jb2RlQmxvY2soKSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBK
SVRUeXBlOjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCBBY2Nlc3NUeXBlOjpTZXRQcml2
YXRlQnJhbmQsIHVzZWRSZWdpc3RlcnMsCiAgICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25s
eShiYXNlR1BSKSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KGJyYW5kR1BSKSwgc3R1YkluZm9H
UFIpOwogCiAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNTeW1ib2wgPSB0cnVlOwpAQCAt
NDI5Nyw3ICs0Mjk3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUluc3RhbmNlT2ZG
b3JDZWxscyhOb2RlKiBub2RlLCBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3MKICAgICBDYWxsU2l0ZUlu
ZGV4IGNhbGxTaXRlSW5kZXggPSBtX2ppdC5hZGRDYWxsU2l0ZShub2RlLT5vcmlnaW4uc2VtYW50
aWMpOwogICAgIAogICAgIEpJVEluc3RhbmNlT2ZHZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2pp
dC5jb2RlQmxvY2soKSwgSklUVHlwZTo6REZHSklULCBub2RlLT5vcmlnaW4uc2VtYW50aWMsIGNh
bGxTaXRlSW5kZXgsIHVzZWRSZWdpc3RlcnMoKSwgcmVzdWx0R1BSLAorICAgICAgICBtX2ppdC5j
b2RlQmxvY2soKSwgJm1faml0LmppdENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBl
OjpERkdKSVQsIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgY2FsbFNpdGVJbmRleCwgdXNlZFJlZ2lz
dGVycygpLCByZXN1bHRHUFIsCiAgICAgICAgIHZhbHVlUmVncy5wYXlsb2FkR1BSKCksIHByb3Rv
dHlwZVJlZ3MucGF5bG9hZEdQUigpLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUiwgc2NyYXRjaDJH
UFIsCiAgICAgICAgIG1fc3RhdGUuZm9yTm9kZShub2RlLT5jaGlsZDIoKSkuaXNUeXBlKFNwZWNP
YmplY3QgfCB+U3BlY0NlbGwpKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CkBA
IC0xNTQ5OSw3ICsxNTQ5OSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZFB1dEJ5SWQo
Q29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgSlNWYWx1CiAgICAgfQogICAg
IENhbGxTaXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFuZEdlbmVyYXRl
RXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9zdHJlYW0tPnNp
emUoKSk7CiAgICAgSklUUHV0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1faml0LmNvZGVC
bG9jaygpLCBKSVRUeXBlOjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0
ZXJzLCBpZGVudGlmaWVyLAorICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgJm1faml0LmppdENv
ZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpERkdKSVQsIGNvZGVPcmlnaW4sIGNh
bGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBpZGVudGlmaWVyLAogICAgICAgICBKU1ZhbHVlUmVnczo6
cGF5bG9hZE9ubHkoYmFzZUdQUiksIHZhbHVlUmVncywgc3R1YkluZm9HUFIsCiAgICAgICAgIHNj
cmF0Y2hHUFIsIGVjbWFNb2RlLCBwdXRLaW5kKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggMTg4NjY5ODJiNTY2
MjhmMmIxYWVkNGI5NTBkODJjMTVlYTQzNTNhZi4uMTg3ZWRjZTAyMzRiZDQ0ZTk2ODIyOWY2OTgz
NzJmMTk1ZDdlODNhOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6Y2FjaGVkR2V0QnlJZCgKICAgICAKICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRl
ID0gbV9qaXQucmVjb3JkQ2FsbFNpdGVBbmRHZW5lcmF0ZUV4Y2VwdGlvbkhhbmRsaW5nT1NSRXhp
dElmTmVlZGVkKGNvZGVPcmlnaW4sIG1fc3RyZWFtLT5zaXplKCkpOwogICAgIEpJVEdldEJ5SWRH
ZW5lcmF0b3IgZ2VuKAotICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgSklUVHlwZTo6REZHSklU
LCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgdXNlZFJlZ2lzdGVycywgaWRlbnRpZmllciwKKyAgICAg
ICAgbV9qaXQuY29kZUJsb2NrKCksICZtX2ppdC5qaXRDb2RlKCktPmNvbW1vbi5tX3N0dWJJbmZv
cywgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgdXNlZFJlZ2lzdGVycywg
aWRlbnRpZmllciwKICAgICAgICAgSlNWYWx1ZVJlZ3MoYmFzZVRhZ0dQUk9yTm9uZSwgYmFzZVBh
eWxvYWRHUFIpLCBKU1ZhbHVlUmVncyhyZXN1bHRUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpLCBJ
bnZhbGlkR1BSUmVnLCB0eXBlKTsKICAgICAKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2pp
dCk7CkBAIC0yMzcsNyArMjM3LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y2FjaGVkR2V0QnlJ
ZFdpdGhUaGlzKAogICAgIAogICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5yZWNv
cmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQoY29k
ZU9yaWdpbiwgbV9zdHJlYW0tPnNpemUoKSk7CiAgICAgSklUR2V0QnlJZFdpdGhUaGlzR2VuZXJh
dG9yIGdlbigKLSAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIEpJVFR5cGU6OkRGR0pJVCwgY29k
ZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIGlkZW50aWZpZXIsCisgICAgICAgIG1f
aml0LmNvZGVCbG9jaygpLCAmbV9qaXQuaml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3MsIEpJ
VFR5cGU6OkRGR0pJVCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIGlkZW50
aWZpZXIsCiAgICAgICAgIEpTVmFsdWVSZWdzKHJlc3VsdFRhZ0dQUiwgcmVzdWx0UGF5bG9hZEdQ
UiksIEpTVmFsdWVSZWdzKGJhc2VUYWdHUFJPck5vbmUsIGJhc2VQYXlsb2FkR1BSKSwgSlNWYWx1
ZVJlZ3ModGhpc1RhZ0dQUiwgdGhpc1BheWxvYWRHUFIpLCBJbnZhbGlkR1BSUmVnKTsKICAgICAK
ICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aChtX2ppdCk7CkBAIC03ODYsNyArNzg2LDcgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdENhbGwoTm9kZSogbm9kZSkKICAgICAgICAgaXNFbXVsYXRl
ZFRhaWwgPyAqc3RhdGljSW5saW5lQ2FsbEZyYW1lLT5nZXRDYWxsZXJTa2lwcGluZ1RhaWxDYWxs
cygpIDogc3RhdGljT3JpZ2luOwogICAgIENhbGxTaXRlSW5kZXggY2FsbFNpdGUgPSBtX2ppdC5y
ZWNvcmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JFeGl0SWZOZWVkZWQo
ZHluYW1pY09yaWdpbiwgbV9zdHJlYW0tPnNpemUoKSk7CiAgICAgCi0gICAgQ2FsbExpbmtJbmZv
KiBpbmZvID0gbV9qaXQuY29kZUJsb2NrKCktPmFkZENhbGxMaW5rSW5mbyhub2RlLT5vcmlnaW4u
c2VtYW50aWMpOworICAgIENhbGxMaW5rSW5mbyogaW5mbyA9IG1faml0LmppdENvZGUoKS0+Y29t
bW9uLmFkZENhbGxMaW5rSW5mbyhub2RlLT5vcmlnaW4uc2VtYW50aWMpOwogICAgIGluZm8tPnNl
dFVwQ2FsbChjYWxsVHlwZSwgY2FsbGVlUGF5bG9hZEdQUik7CiAgICAgCiAgICAgYXV0byBzZXRS
ZXN1bHRBbmRSZXNldFN0YWNrID0gWyZdICgpIHsKQEAgLTE4OTYsNyArMTg5Niw3IEBAIHZvaWQg
U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRM
YW1iZGE8c3RkOjp0dXBsZTxKCiAgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChtX2pp
dC5icmFuY2hJZk5vdENlbGwoYmFzZVJlZ3MpKTsKIAogICAgICAgICAgICAgSklUR2V0QnlWYWxH
ZW5lcmF0b3IgZ2VuKAotICAgICAgICAgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCBKSVRUeXBl
OjpERkdKSVQsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCBBY2Nlc3NUeXBlOjpHZXRCeVZhbCwgdXNl
ZFJlZ2lzdGVycywKKyAgICAgICAgICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgJm1faml0Lmpp
dENvZGUoKS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpERkdKSVQsIGNvZGVPcmlnaW4s
IGNhbGxTaXRlLCBBY2Nlc3NUeXBlOjpHZXRCeVZhbCwgdXNlZFJlZ2lzdGVycywKICAgICAgICAg
ICAgICAgICBiYXNlUmVncywgcHJvcGVydHlSZWdzLCByZXN1bHRSZWdzLCBJbnZhbGlkR1BSUmVn
KTsKIAogICAgICAgICAgICAgaWYgKG1fc3RhdGUuZm9yTm9kZShtX2dyYXBoLnZhckFyZ0NoaWxk
KG5vZGUsIDEpKS5pc1R5cGUoU3BlY1N0cmluZykpCkBAIC0yNzgzLDcgKzI3ODMsNyBAQCB2b2lk
IFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBFQ01BTW9k
ZSBlY21hTW9kZSA9IG5vZGUtPmVjbWFNb2RlKCk7CiAKICAgICAgICAgICAgIEpJVFB1dEJ5VmFs
R2VuZXJhdG9yIGdlbigKLSAgICAgICAgICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgSklUVHlw
ZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgQWNjZXNzVHlwZTo6UHV0QnlWYWwsIHVz
ZWRSZWdpc3RlcnMsCisgICAgICAgICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksICZtX2ppdC5q
aXRDb2RlKCktPmNvbW1vbi5tX3N0dWJJbmZvcywgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2lu
LCBjYWxsU2l0ZSwgQWNjZXNzVHlwZTo6UHV0QnlWYWwsIHVzZWRSZWdpc3RlcnMsCiAgICAgICAg
ICAgICAgICAgYmFzZVJlZ3MsIHByb3BlcnR5UmVncywgdmFsdWVSZWdzLCBJbnZhbGlkR1BSUmVn
LCBJbnZhbGlkR1BSUmVnKTsKIAogICAgICAgICAgICAgaWYgKG1fc3RhdGUuZm9yTm9kZShjaGls
ZDIpLmlzVHlwZShTcGVjU3RyaW5nKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDIyNjZjNDYwNzkwNzc0NGFkYWFkNGZmMDU5
YjkyNzgyMGFjMDdkMTIuLmE1YThjYzNjZjUzZTllOTE0OTc4ZGY5YzM0MzIwNTA1ZGJjMjA4N2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2
NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0
LmNwcApAQCAtMTY0LDcgKzE2NCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNhY2hlZEdldEJ5
SWQoQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBHUFJSZWcgYmFzZUdQUiwgR1BSUmVnCiAgICAgICAg
ICAgICB1c2VkUmVnaXN0ZXJzLnNldChzdHViSW5mb0dQUiwgZmFsc2UpOwogICAgIH0KICAgICBK
SVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIEpJVFR5
cGU6OkRGR0pJVCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIGlkZW50aWZp
ZXIsCisgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCAmbV9qaXQuaml0Q29kZSgpLT5jb21tb24u
bV9zdHViSW5mb3MsIEpJVFR5cGU6OkRGR0pJVCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRS
ZWdpc3RlcnMsIGlkZW50aWZpZXIsCiAgICAgICAgIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1Zh
bHVlUmVncyhyZXN1bHRHUFIpLCBzdHViSW5mb0dQUiwgdHlwZSk7CiAgICAgZ2VuLmdlbmVyYXRl
RmFzdFBhdGgobV9qaXQpOwogICAgIApAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNhY2hlZEdldEJ5SWRXaXRoVGhpcyhDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIEdQUlJl
ZyBiYXNlR1BSCiAgICAgICAgIHVzZWRSZWdpc3RlcnMuc2V0KHN0dWJJbmZvR1BSLCBmYWxzZSk7
CiAgICAgCiAgICAgSklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9q
aXQuY29kZUJsb2NrKCksIEpJVFR5cGU6OkRGR0pJVCwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIHVz
ZWRSZWdpc3RlcnMsIGlkZW50aWZpZXIsCisgICAgICAgIG1faml0LmNvZGVCbG9jaygpLCAmbV9q
aXQuaml0Q29kZSgpLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkRGR0pJVCwgY29kZU9y
aWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsIGlkZW50aWZpZXIsCiAgICAgICAgIEpTVmFs
dWVSZWdzKHJlc3VsdEdQUiksIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVlUmVncyh0aGlz
R1BSKSwgc3R1YkluZm9HUFIpOwogICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKICAg
ICAKQEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjplbWl0Q2FsbChOb2Rl
KiBub2RlKQogICAgICAgICBtX2ppdC5hZGRQdHIoVHJ1c3RlZEltbTMyKG1faml0LmdyYXBoKCku
c3RhY2tQb2ludGVyT2Zmc2V0KCkgKiBzaXplb2YoUmVnaXN0ZXIpKSwgR1BSSW5mbzo6Y2FsbEZy
YW1lUmVnaXN0ZXIsIEpJVENvbXBpbGVyOjpzdGFja1BvaW50ZXJSZWdpc3Rlcik7CiAgICAgfTsK
ICAgICAKLSAgICBDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbyA9IG1faml0LmNvZGVCbG9jaygp
LT5hZGRDYWxsTGlua0luZm8obV9jdXJyZW50Tm9kZS0+b3JpZ2luLnNlbWFudGljKTsKKyAgICBD
YWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbyA9IG1faml0LmppdENvZGUoKS0+Y29tbW9uLmFkZENh
bGxMaW5rSW5mbyhtX2N1cnJlbnROb2RlLT5vcmlnaW4uc2VtYW50aWMpOwogICAgIGNhbGxMaW5r
SW5mby0+c2V0VXBDYWxsKGNhbGxUeXBlLCBjYWxsZWVHUFIpOwogCiAgICAgaWYgKG5vZGUtPm9w
KCkgPT0gQ2FsbEV2YWwpIHsKQEAgLTI0MjEsNyArMjQyMSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVHZXRCeVZhbChOb2RlKiBub2RlLCBjb25zdCBTY29wZWRMYW1iZGE8c3RkOjp0
dXBsZTxKCiAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaElmTm90Q2Vs
bChiYXNlR1BSKSk7CiAKICAgICAgICAgSklUR2V0QnlWYWxHZW5lcmF0b3IgZ2VuKAotICAgICAg
ICAgICAgbV9qaXQuY29kZUJsb2NrKCksIEpJVFR5cGU6OkRGR0pJVCwgY29kZU9yaWdpbiwgY2Fs
bFNpdGUsIEFjY2Vzc1R5cGU6OkdldEJ5VmFsLCB1c2VkUmVnaXN0ZXJzLAorICAgICAgICAgICAg
bV9qaXQuY29kZUJsb2NrKCksICZtX2ppdC5qaXRDb2RlKCktPmNvbW1vbi5tX3N0dWJJbmZvcywg
SklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgQWNjZXNzVHlwZTo6R2V0QnlW
YWwsIHVzZWRSZWdpc3RlcnMsCiAgICAgICAgICAgICBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNW
YWx1ZVJlZ3MocHJvcGVydHlHUFIpLCBKU1ZhbHVlUmVncyhyZXN1bHRHUFIpLCBzdHViSW5mb0dQ
Uik7CiAKICAgICAgICAgaWYgKG1fc3RhdGUuZm9yTm9kZShtX2dyYXBoLnZhckFyZ0NoaWxkKG5v
ZGUsIDEpKS5pc1R5cGUoU3BlY1N0cmluZykpCkBAIC0zNDA4LDcgKzM0MDgsNyBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgICAgICBFQ01BTW9kZSBl
Y21hTW9kZSA9IG5vZGUtPmVjbWFNb2RlKCk7CiAKICAgICAgICAgICAgIEpJVFB1dEJ5VmFsR2Vu
ZXJhdG9yIGdlbigKLSAgICAgICAgICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgSklUVHlwZTo6
REZHSklULCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgQWNjZXNzVHlwZTo6UHV0QnlWYWwsIHVzZWRS
ZWdpc3RlcnMsCisgICAgICAgICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksICZtX2ppdC5qaXRD
b2RlKCktPmNvbW1vbi5tX3N0dWJJbmZvcywgSklUVHlwZTo6REZHSklULCBjb2RlT3JpZ2luLCBj
YWxsU2l0ZSwgQWNjZXNzVHlwZTo6UHV0QnlWYWwsIHVzZWRSZWdpc3RlcnMsCiAgICAgICAgICAg
ICAgICAgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksIEpTVmFsdWVSZWdzKHByb3BlcnR5R1BSKSwgSlNW
YWx1ZVJlZ3ModmFsdWVHUFIpLCBJbnZhbGlkR1BSUmVnLCBzdHViSW5mb0dQUik7CiAKICAgICAg
ICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUoY2hpbGQyKS5pc1R5cGUoU3BlY1N0cmluZykpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXggMGE5
Y2Q0Yjk3NmU5NjJkY2M0YjYxYjAyMGNiYmYxMTM4NWQ0YWNmNC4uZjFkNzRmOTBhZTRkY2FmOGI2
MTYxNjNjMGFjNjkxZGExNDJhMGIwZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMTG93ZXJERkdUb0IzLmNwcApAQCAtNDAzNCw3ICs0MDM0LDcgQEAgY2xhc3MgTG93ZXJERkdU
b0IzIHsKICAgICAgICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBKSVRDb2RlOjp1c2VE
YXRhSUMoSklUVHlwZTo6RlRMSklUKSA/IHBhcmFtcy5ncFNjcmF0Y2goMCkgOiBJbnZhbGlkR1BS
UmVnOwogCiAgICAgICAgICAgICAgICAgYXV0byBnZW5lcmF0b3IgPSBCb3g8SklUR2V0QnlWYWxH
ZW5lcmF0b3I+OjpjcmVhdGUoCi0gICAgICAgICAgICAgICAgICAgIGppdC5jb2RlQmxvY2soKSwg
SklUVHlwZTo6RlRMSklULCBub2RlU2VtYW50aWNPcmlnaW4sIGNhbGxTaXRlSW5kZXgsIEFjY2Vz
c1R5cGU6OkdldFByaXZhdGVOYW1lLAorICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2Nr
KCksICZzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpGVExKSVQs
IG5vZGVTZW1hbnRpY09yaWdpbiwgY2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZTo6R2V0UHJpdmF0
ZU5hbWUsCiAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygp
LCBKU1ZhbHVlUmVncyhiYXNlR1BSKSwgSlNWYWx1ZVJlZ3MocHJvcGVydHlHUFIpLCBKU1ZhbHVl
UmVncyhyZXN1bHRHUFIpLCBzdHViSW5mb0dQUik7CiAKICAgICAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6Okp1bXAgbm90Q2VsbDsKQEAgLTQxODAsNyArNDE4MCw3IEBAIGNsYXNzIExvd2VyREZH
VG9CMyB7CiAgICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBKSVRDb2RlOjp1c2VEYXRh
SUMoSklUVHlwZTo6RlRMSklUKSA/IHBhcmFtcy5ncFNjcmF0Y2goMCkgOiBJbnZhbGlkR1BSUmVn
OwogCiAgICAgICAgICAgICBhdXRvIGdlbmVyYXRvciA9IEJveDxKSVRQcml2YXRlQnJhbmRBY2Nl
c3NHZW5lcmF0b3I+OjpjcmVhdGUoCi0gICAgICAgICAgICAgICAgaml0LmNvZGVCbG9jaygpLCBK
SVRUeXBlOjpGVExKSVQsIG5vZGVTZW1hbnRpY09yaWdpbiwgY2FsbFNpdGVJbmRleCwgYWNjZXNz
VHlwZSwKKyAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCksICZzdGF0ZS0+aml0Q29kZS0+
Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpGVExKSVQsIG5vZGVTZW1hbnRpY09yaWdpbiwg
Y2FsbFNpdGVJbmRleCwgYWNjZXNzVHlwZSwKICAgICAgICAgICAgICAgICBwYXJhbXMudW5hdmFp
bGFibGVSZWdpc3RlcnMoKSwgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksIEpTVmFsdWVSZWdzKGJyYW5k
R1BSKSwgc3R1YkluZm9HUFIpOwogCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90
Q2VsbDsKQEAgLTQzNDEsNyArNDM0MSw3IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAg
ICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6RlRM
SklUKSA/IHBhcmFtcy5ncFNjcmF0Y2goMCkgOiBJbnZhbGlkR1BSUmVnOwogCiAgICAgICAgICAg
ICBhdXRvIGdlbmVyYXRvciA9IEJveDxKSVRQdXRCeVZhbEdlbmVyYXRvcj46OmNyZWF0ZSgKLSAg
ICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCksIEpJVFR5cGU6OkZUTEpJVCwgbm9kZVNlbWFu
dGljT3JpZ2luLCBjYWxsU2l0ZUluZGV4LCBBY2Nlc3NUeXBlOjpQdXRQcml2YXRlTmFtZSwKKyAg
ICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCksICZzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLm1f
c3R1YkluZm9zLCBKSVRUeXBlOjpGVExKSVQsIG5vZGVTZW1hbnRpY09yaWdpbiwgY2FsbFNpdGVJ
bmRleCwgQWNjZXNzVHlwZTo6UHV0UHJpdmF0ZU5hbWUsCiAgICAgICAgICAgICAgICAgcGFyYW1z
LnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIEpTVmFsdWVSZWdzKGJhc2VHUFIpLCBKU1ZhbHVlUmVn
cyhwcm9wZXJ0eUdQUiksIEpTVmFsdWVSZWdzKHZhbHVlR1BSKSwgSW52YWxpZEdQUlJlZywgc3R1
YkluZm9HUFIpOwogCiAgICAgICAgICAgICBnZW5lcmF0b3ItPnN0dWJJbmZvKCktPnByb3BlcnR5
SXNTeW1ib2wgPSB0cnVlOwpAQCAtNDY4OCw3ICs0Njg4LDcgQEAgY2xhc3MgTG93ZXJERkdUb0Iz
IHsKICAgICAgICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9HUFIgPSBKSVRDb2RlOjp1c2VEYXRh
SUMoSklUVHlwZTo6RlRMSklUKSA/IHBhcmFtcy5ncFNjcmF0Y2goMCkgOiBJbnZhbGlkR1BSUmVn
OwogCiAgICAgICAgICAgICAgICAgYXV0byBnZW5lcmF0b3IgPSBCb3g8SklUUHV0QnlJZEdlbmVy
YXRvcj46OmNyZWF0ZSgKLSAgICAgICAgICAgICAgICAgICAgaml0LmNvZGVCbG9jaygpLCBKSVRU
eXBlOjpGVExKSVQsIG5vZGVTZW1hbnRpY09yaWdpbiwgY2FsbFNpdGVJbmRleCwKKyAgICAgICAg
ICAgICAgICAgICAgaml0LmNvZGVCbG9jaygpLCAmc3RhdGUtPmppdENvZGUtPmNvbW1vbi5tX3N0
dWJJbmZvcywgSklUVHlwZTo6RlRMSklULCBub2RlU2VtYW50aWNPcmlnaW4sIGNhbGxTaXRlSW5k
ZXgsCiAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCBp
ZGVudGlmaWVyLCBKU1ZhbHVlUmVncyhwYXJhbXNbMF0uZ3ByKCkpLAogICAgICAgICAgICAgICAg
ICAgICBKU1ZhbHVlUmVncyhwYXJhbXNbMV0uZ3ByKCkpLCBzdHViSW5mb0dQUiwgR1BSSW5mbzo6
cGF0Y2hwb2ludFNjcmF0Y2hSZWdpc3RlciwgZWNtYU1vZGUsCiAgICAgICAgICAgICAgICAgICAg
IHB1dEtpbmQpOwpAQCAtNTQ2NSw3ICs1NDY1LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VO
RAogICAgICAgICAgICAgICAgIEdQUlJlZyBzdHViSW5mb0dQUiA9IEpJVENvZGU6OnVzZURhdGFJ
QyhKSVRUeXBlOjpGVExKSVQpID8gcGFyYW1zLmdwU2NyYXRjaCgwKSA6IEludmFsaWRHUFJSZWc7
CiAKICAgICAgICAgICAgICAgICBhdXRvIGdlbmVyYXRvciA9IEJveDxKSVRHZXRCeVZhbEdlbmVy
YXRvcj46OmNyZWF0ZSgKLSAgICAgICAgICAgICAgICAgICAgaml0LmNvZGVCbG9jaygpLCBKSVRU
eXBlOjpGVExKSVQsIG5vZGVTZW1hbnRpY09yaWdpbiwgY2FsbFNpdGVJbmRleCwgQWNjZXNzVHlw
ZTo6R2V0QnlWYWwsCisgICAgICAgICAgICAgICAgICAgIGppdC5jb2RlQmxvY2soKSwgJnN0YXRl
LT5qaXRDb2RlLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkZUTEpJVCwgbm9kZVNlbWFu
dGljT3JpZ2luLCBjYWxsU2l0ZUluZGV4LCBBY2Nlc3NUeXBlOjpHZXRCeVZhbCwKICAgICAgICAg
ICAgICAgICAgICAgcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIEpTVmFsdWVSZWdzKGJh
c2VHUFIpLCBKU1ZhbHVlUmVncyhwcm9wZXJ0eUdQUiksIEpTVmFsdWVSZWdzKHJlc3VsdEdQUiks
IHN0dWJJbmZvR1BSKTsKIAogICAgICAgICAgICAgICAgIGdlbmVyYXRvci0+c3R1YkluZm8oKS0+
cHJvcGVydHlJc1N0cmluZyA9IHByb3BlcnR5SXNTdHJpbmc7CkBAIC01ODIyLDcgKzU4MjIsNyBA
QCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgR1BSUmVnIHN0dWJJ
bmZvR1BSID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkgPyBwYXJhbXMuZ3BT
Y3JhdGNoKDApIDogSW52YWxpZEdQUlJlZzsKIAogICAgICAgICAgICAgICAgIGF1dG8gZ2VuZXJh
dG9yID0gQm94PEpJVFB1dEJ5VmFsR2VuZXJhdG9yPjo6Y3JlYXRlKAotICAgICAgICAgICAgICAg
ICAgICBqaXQuY29kZUJsb2NrKCksIEpJVFR5cGU6OkZUTEpJVCwgbm9kZVNlbWFudGljT3JpZ2lu
LCBjYWxsU2l0ZUluZGV4LCBBY2Nlc3NUeXBlOjpQdXRCeVZhbCwKKyAgICAgICAgICAgICAgICAg
ICAgaml0LmNvZGVCbG9jaygpLCAmc3RhdGUtPmppdENvZGUtPmNvbW1vbi5tX3N0dWJJbmZvcywg
SklUVHlwZTo6RlRMSklULCBub2RlU2VtYW50aWNPcmlnaW4sIGNhbGxTaXRlSW5kZXgsIEFjY2Vz
c1R5cGU6OlB1dEJ5VmFsLAogICAgICAgICAgICAgICAgICAgICBwYXJhbXMudW5hdmFpbGFibGVS
ZWdpc3RlcnMoKSwgSlNWYWx1ZVJlZ3MoYmFzZUdQUiksIEpTVmFsdWVSZWdzKHByb3BlcnR5R1BS
KSwgSlNWYWx1ZVJlZ3ModmFsdWVHUFIpLCBJbnZhbGlkR1BSUmVnLCBzdHViSW5mb0dQUik7CiAK
ICAgICAgICAgICAgICAgICBnZW5lcmF0b3ItPnN0dWJJbmZvKCktPnByb3BlcnR5SXNTdHJpbmcg
PSBwcm9wZXJ0eUlzU3RyaW5nOwpAQCAtNjIyMywxMiArNjIyMywxMiBAQCBJR05PUkVfQ0xBTkdf
V0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgY29uc3QgYXV0byBnZW5lcmF0b3IgPSBbJl0g
ewogICAgICAgICAgICAgICAgICAgICBpZiBjb25zdGV4cHIgKGtpbmQgPT0gRGVsQnlLaW5kOjpC
eUlkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gQm94PEpJVERlbEJ5SWRHZW5l
cmF0b3I+OjpjcmVhdGUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaml0LmNvZGVCbG9j
aygpLCBKSVRUeXBlOjpGVExKSVQsIG5vZGVTZW1hbnRpY09yaWdpbiwgY2FsbFNpdGVJbmRleCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCksICZzdGF0ZS0+aml0
Q29kZS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpGVExKSVQsIG5vZGVTZW1hbnRpY09y
aWdpbiwgY2FsbFNpdGVJbmRleCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMu
dW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgc3Vic2NyaXB0VmFsdWUsIGJhc2UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocmV0dXJuR1BSKSwgc3R1YkluZm9HUFIsIHNj
cmF0Y2hHUFIpOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEJveDxKSVREZWxCeVZhbEdlbmVyYXRvcj46OmNyZWF0ZSgKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCksIEpJVFR5cGU6OkZUTEpJVCwg
bm9kZVNlbWFudGljT3JpZ2luLCBjYWxsU2l0ZUluZGV4LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGppdC5jb2RlQmxvY2soKSwgJnN0YXRlLT5qaXRDb2RlLT5jb21tb24ubV9zdHViSW5m
b3MsIEpJVFR5cGU6OkZUTEpJVCwgbm9kZVNlbWFudGljT3JpZ2luLCBjYWxsU2l0ZUluZGV4LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygp
LCBiYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdCwgSlNWYWx1ZVJl
Z3MocmV0dXJuR1BSKSwgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIpOwogICAgICAgICAgICAgICAg
ICAgICB9CkBAIC0xMDI1NSw3ICsxMDI1NSw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQK
ICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoY2FsbFNpdGVJ
bmRleC5iaXRzKCkpLAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0ZvcihW
aXJ0dWFsUmVnaXN0ZXIoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMp
KSk7CiAKLSAgICAgICAgICAgICAgICBDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbyA9IGppdC5j
b2RlQmxvY2soKS0+YWRkQ2FsbExpbmtJbmZvKG5vZGVTZW1hbnRpY09yaWdpbik7CisgICAgICAg
ICAgICAgICAgQ2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8gPSBzdGF0ZS0+aml0Q29kZS0+Y29t
bW9uLmFkZENhbGxMaW5rSW5mbyhub2RlU2VtYW50aWNPcmlnaW4pOwogICAgICAgICAgICAgICAg
IGNhbGxMaW5rSW5mby0+c2V0VXBDYWxsKAogICAgICAgICAgICAgICAgICAgICBub2RlT3AgPT0g
Q29uc3RydWN0ID8gQ2FsbExpbmtJbmZvOjpDb25zdHJ1Y3QgOiBDYWxsTGlua0luZm86OkNhbGws
IEdQUkluZm86OnJlZ1QwKTsKIApAQCAtMTAzODksNyArMTAzODksNyBAQCBJR05PUkVfQ0xBTkdf
V0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgICAgIHNodWZmbGVEYXRhLm51bVBhcmFtZXRl
cnMgPSBqaXQuY29kZUJsb2NrKCktPm51bVBhcmFtZXRlcnMoKTsKICAgICAgICAgICAgICAgICAg
ICAgc2h1ZmZsZURhdGEuc2V0dXBDYWxsZWVTYXZlUmVnaXN0ZXJzKGppdC5jb2RlQmxvY2soKSk7
CiAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBDYWxsTGlua0luZm8q
IGNhbGxMaW5rSW5mbyA9IGppdC5jb2RlQmxvY2soKS0+YWRkQ2FsbExpbmtJbmZvKHNlbWFudGlj
Tm9kZU9yaWdpbik7CisgICAgICAgICAgICAgICAgICAgIENhbGxMaW5rSW5mbyogY2FsbExpbmtJ
bmZvID0gc3RhdGUtPmppdENvZGUtPmNvbW1vbi5hZGRDYWxsTGlua0luZm8oc2VtYW50aWNOb2Rl
T3JpZ2luKTsKICAgICAgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5zZXRVcENhbGwoQ2Fs
bExpbmtJbmZvOjpEaXJlY3RUYWlsQ2FsbCwgSW52YWxpZEdQUlJlZyk7CiAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIG1haW5QYXRo
ID0gaml0LmxhYmVsKCk7CkBAIC0xMDQyMSw3ICsxMDQyMSw3IEBAIElHTk9SRV9DTEFOR19XQVJO
SU5HU19FTkQKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBDYWxsTGlua0luZm8qIGNhbGxMaW5r
SW5mbyA9IGppdC5jb2RlQmxvY2soKS0+YWRkQ2FsbExpbmtJbmZvKHNlbWFudGljTm9kZU9yaWdp
bik7CisgICAgICAgICAgICAgICAgQ2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8gPSBzdGF0ZS0+
aml0Q29kZS0+Y29tbW9uLmFkZENhbGxMaW5rSW5mbyhzZW1hbnRpY05vZGVPcmlnaW4pOwogICAg
ICAgICAgICAgICAgIGNhbGxMaW5rSW5mby0+c2V0VXBDYWxsKAogICAgICAgICAgICAgICAgICAg
ICBpc0NvbnN0cnVjdCA/IENhbGxMaW5rSW5mbzo6RGlyZWN0Q29uc3RydWN0IDogQ2FsbExpbmtJ
bmZvOjpEaXJlY3RDYWxsLCBJbnZhbGlkR1BSUmVnKTsKIApAQCAtMTA1NDksNyArMTA1NDksNyBA
QCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgc2h1ZmZsZURhdGEuc2V0dXBDYWxsZWVTYXZlUmVnaXN0ZXJzKGppdC5jb2RlQmxvY2so
KSk7CiAKLSAgICAgICAgICAgICAgICBDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbyA9IGppdC5j
b2RlQmxvY2soKS0+YWRkQ2FsbExpbmtJbmZvKGNvZGVPcmlnaW4pOworICAgICAgICAgICAgICAg
IENhbGxMaW5rSW5mbyogY2FsbExpbmtJbmZvID0gc3RhdGUtPmppdENvZGUtPmNvbW1vbi5hZGRD
YWxsTGlua0luZm8oY29kZU9yaWdpbik7CiAgICAgICAgICAgICAgICAgY2FsbExpbmtJbmZvLT5z
ZXRVcENhbGwoQ2FsbExpbmtJbmZvOjpUYWlsQ2FsbCwgR1BSSW5mbzo6cmVnVDApOwogCiAgICAg
ICAgICAgICAgICAgYXV0byBzbG93UGF0aCA9IGNhbGxMaW5rSW5mby0+ZW1pdFRhaWxDYWxsRmFz
dFBhdGgoaml0LCBHUFJJbmZvOjpyZWdUMCwgWyZdIHsKQEAgLTEwNzU0LDcgKzEwNzU0LDcgQEAg
SUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW0zMihjYWxsU2l0ZUluZGV4LmJpdHMoKSksCiAgICAgICAgICAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6dGFnRm9yKFZpcnR1YWxSZWdpc3RlcihDYWxsRnJhbWVTbG90Ojph
cmd1bWVudENvdW50SW5jbHVkaW5nVGhpcykpKTsKIAotICAgICAgICAgICAgICAgIENhbGxMaW5r
SW5mbyogY2FsbExpbmtJbmZvID0gaml0LmNvZGVCbG9jaygpLT5hZGRDYWxsTGlua0luZm8oc2Vt
YW50aWNOb2RlT3JpZ2luKTsKKyAgICAgICAgICAgICAgICBDYWxsTGlua0luZm8qIGNhbGxMaW5r
SW5mbyA9IHN0YXRlLT5qaXRDb2RlLT5jb21tb24uYWRkQ2FsbExpbmtJbmZvKHNlbWFudGljTm9k
ZU9yaWdpbik7CiAKICAgICAgICAgICAgICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0g
UmVnaXN0ZXJTZXQ6OmFsbFJlZ2lzdGVycygpOwogICAgICAgICAgICAgICAgIHVzZWRSZWdpc3Rl
cnMuZXhjbHVkZShSZWdpc3RlclNldDo6dm9sYXRpbGVSZWdpc3RlcnNGb3JKU0NhbGwoKSk7CkBA
IC0xMTAzOCw3ICsxMTAzOCw3IEBAIElHTk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAg
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoY2FsbFNpdGVJbmRleC5iaXRz
KCkpLAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OnRhZ0ZvcihWaXJ0dWFsUmVn
aXN0ZXIoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMpKSk7CiAKLSAg
ICAgICAgICAgICAgICBDYWxsTGlua0luZm8qIGNhbGxMaW5rSW5mbyA9IGppdC5jb2RlQmxvY2so
KS0+YWRkQ2FsbExpbmtJbmZvKHNlbWFudGljTm9kZU9yaWdpbik7CisgICAgICAgICAgICAgICAg
Q2FsbExpbmtJbmZvKiBjYWxsTGlua0luZm8gPSBzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLmFkZENh
bGxMaW5rSW5mbyhzZW1hbnRpY05vZGVPcmlnaW4pOwogCiAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgYXJnSW5kZXggPSAxOwogICAgICAgICAgICAgICAgIEdQUlJlZyBjYWxsZWVHUFIgPSBwYXJh
bXNbYXJnSW5kZXgrK10uZ3ByKCk7CkBAIC0xMTI4MCw3ICsxMTI4MCw3IEBAIElHTk9SRV9DTEFO
R19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoY2FsbFNpdGVJbmRleC5iaXRzKCkpLAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhl
bHBlcnM6OnRhZ0ZvcihWaXJ0dWFsUmVnaXN0ZXIoQ2FsbEZyYW1lU2xvdDo6YXJndW1lbnRDb3Vu
dEluY2x1ZGluZ1RoaXMpKSk7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgQ2Fs
bExpbmtJbmZvKiBjYWxsTGlua0luZm8gPSBqaXQuY29kZUJsb2NrKCktPmFkZENhbGxMaW5rSW5m
byhzZW1hbnRpY05vZGVPcmlnaW4pOworICAgICAgICAgICAgICAgIENhbGxMaW5rSW5mbyogY2Fs
bExpbmtJbmZvID0gc3RhdGUtPmppdENvZGUtPmNvbW1vbi5hZGRDYWxsTGlua0luZm8oc2VtYW50
aWNOb2RlT3JpZ2luKTsKICAgICAgICAgICAgICAgICBjYWxsTGlua0luZm8tPnNldFVwQ2FsbChD
YWxsTGlua0luZm86OkNhbGwsIEdQUkluZm86OnJlZ1QwKTsKICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICBqaXQuYWRkUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKC1zdGF0
aWNfY2FzdDxwdHJkaWZmX3Q+KHNpemVvZihDYWxsZXJGcmFtZUFuZFBDKSkpLCBDQ2FsbEhlbHBl
cnM6OnN0YWNrUG9pbnRlclJlZ2lzdGVyLCBHUFJJbmZvOjpyZWdUMSk7CkBAIC0xMjg2OSwxMiAr
MTI4NjksMTIgQEAgSUdOT1JFX0NMQU5HX1dBUk5JTkdTX0VORAogICAgICAgICAgICAgICAgIGNv
bnN0IGF1dG8gZ2VuZXJhdG9yID0gWyZdIHsKICAgICAgICAgICAgICAgICAgICAgaWYgY29uc3Rl
eHByICh0eXBlID09IEFjY2Vzc1R5cGU6OkluQnlJZCkgewogICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEJveDxKSVRJbkJ5SWRHZW5lcmF0b3I+OjpjcmVhdGUoCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaml0LmNvZGVCbG9jaygpLCBKSVRUeXBlOjpGVExKSVQsIHNlbWFudGlj
Tm9kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBq
aXQuY29kZUJsb2NrKCksICZzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRU
eXBlOjpGVExKSVQsIHNlbWFudGljTm9kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXJhbXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgc3Vic2Ny
aXB0VmFsdWUsIGJhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3Mo
cmV0dXJuR1BSKSwgc3R1YkluZm9HUFIpOwogICAgICAgICAgICAgICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEJveDxKSVRJbkJ5VmFsR2VuZXJhdG9yPjo6
Y3JlYXRlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppdC5jb2RlQmxvY2soKSwgSklU
VHlwZTo6RlRMSklULCBzZW1hbnRpY05vZGVPcmlnaW4sIGNhbGxTaXRlSW5kZXgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaml0LmNvZGVCbG9jaygpLCAmc3RhdGUtPmppdENvZGUtPmNv
bW1vbi5tX3N0dWJJbmZvcywgSklUVHlwZTo6RlRMSklULCBzZW1hbnRpY05vZGVPcmlnaW4sIGNh
bGxTaXRlSW5kZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSwgcGFyYW1zLnVu
YXZhaWxhYmxlUmVnaXN0ZXJzKCksIGJhc2UsIHN1YnNjcmlwdCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBKU1ZhbHVlUmVncyhyZXR1cm5HUFIpLCBzdHViSW5mb0dQUik7CiAgICAgICAg
ICAgICAgICAgICAgIH0KQEAgLTEzMTk3LDcgKzEzMTk3LDcgQEAgSUdOT1JFX0NMQU5HX1dBUk5J
TkdTX0VORAogICAgICAgICAgICAgICAgICAgICBleGNlcHRpb25IYW5kbGUtPnNjaGVkdWxlRXhp
dENyZWF0aW9uKHBhcmFtcyktPmp1bXBzKGppdCk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgYXV0byBnZW5lcmF0b3IgPSBCb3g8SklUSW5zdGFuY2VPZkdlbmVyYXRvcj46OmNy
ZWF0ZSgKLSAgICAgICAgICAgICAgICAgICAgaml0LmNvZGVCbG9jaygpLCBKSVRUeXBlOjpGVExK
SVQsIHNlbWFudGljTm9kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwKKyAgICAgICAgICAgICAgICAg
ICAgaml0LmNvZGVCbG9jaygpLCAmc3RhdGUtPmppdENvZGUtPmNvbW1vbi5tX3N0dWJJbmZvcywg
SklUVHlwZTo6RlRMSklULCBzZW1hbnRpY05vZGVPcmlnaW4sIGNhbGxTaXRlSW5kZXgsCiAgICAg
ICAgICAgICAgICAgICAgIHBhcmFtcy51bmF2YWlsYWJsZVJlZ2lzdGVycygpLCByZXN1bHRHUFIs
IHZhbHVlR1BSLCBwcm90b3R5cGVHUFIsIHN0dWJJbmZvR1BSLCBzY3JhdGNoR1BSLAogICAgICAg
ICAgICAgICAgICAgICBzY3JhdGNoMkdQUiwgcHJvdG90eXBlSXNPYmplY3QpOwogICAgICAgICAg
ICAgICAgIGdlbmVyYXRvci0+Z2VuZXJhdGVGYXN0UGF0aChqaXQpOwpAQCAtMTQ5MjMsNyArMTQ5
MjMsNyBAQCBJR05PUkVfQ0xBTkdfV0FSTklOR1NfRU5ECiAgICAgICAgICAgICAgICAgR1BSUmVn
IHN0dWJJbmZvR1BSID0gSklUQ29kZTo6dXNlRGF0YUlDKEpJVFR5cGU6OkZUTEpJVCkgPyBwYXJh
bXMuZ3BTY3JhdGNoKDApIDogSW52YWxpZEdQUlJlZzsKIAogICAgICAgICAgICAgICAgIGF1dG8g
Z2VuZXJhdG9yID0gQm94PEpJVEdldEJ5SWRHZW5lcmF0b3I+OjpjcmVhdGUoCi0gICAgICAgICAg
ICAgICAgICAgIGppdC5jb2RlQmxvY2soKSwgSklUVHlwZTo6RlRMSklULCBzZW1hbnRpY05vZGVP
cmlnaW4sIGNhbGxTaXRlSW5kZXgsCisgICAgICAgICAgICAgICAgICAgIGppdC5jb2RlQmxvY2so
KSwgJnN0YXRlLT5qaXRDb2RlLT5jb21tb24ubV9zdHViSW5mb3MsIEpJVFR5cGU6OkZUTEpJVCwg
c2VtYW50aWNOb2RlT3JpZ2luLCBjYWxsU2l0ZUluZGV4LAogICAgICAgICAgICAgICAgICAgICBw
YXJhbXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgaWRlbnRpZmllciwgSlNWYWx1ZVJlZ3MocGFy
YW1zWzFdLmdwcigpKSwKICAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3MocGFyYW1zWzBd
LmdwcigpKSwgc3R1YkluZm9HUFIsIHR5cGUpOwogCkBAIC0xNTAwNyw3ICsxNTAwNyw3IEBAIElH
Tk9SRV9DTEFOR19XQVJOSU5HU19FTkQKICAgICAgICAgICAgICAgICBHUFJSZWcgc3R1YkluZm9H
UFIgPSBKSVRDb2RlOjp1c2VEYXRhSUMoSklUVHlwZTo6RlRMSklUKSA/IHBhcmFtcy5ncFNjcmF0
Y2goMCkgOiBJbnZhbGlkR1BSUmVnOwogCiAgICAgICAgICAgICAgICAgYXV0byBnZW5lcmF0b3Ig
PSBCb3g8SklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yPjo6Y3JlYXRlKAotICAgICAgICAgICAg
ICAgICAgICBqaXQuY29kZUJsb2NrKCksIEpJVFR5cGU6OkZUTEpJVCwgc2VtYW50aWNOb2RlT3Jp
Z2luLCBjYWxsU2l0ZUluZGV4LAorICAgICAgICAgICAgICAgICAgICBqaXQuY29kZUJsb2NrKCks
ICZzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLm1fc3R1YkluZm9zLCBKSVRUeXBlOjpGVExKSVQsIHNl
bWFudGljTm9kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwKICAgICAgICAgICAgICAgICAgICAgcGFy
YW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIGlkZW50aWZpZXIsIEpTVmFsdWVSZWdzKHBhcmFt
c1swXS5ncHIoKSksCiAgICAgICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzKHBhcmFtc1sxXS5n
cHIoKSksIEpTVmFsdWVSZWdzKHBhcmFtc1syXS5ncHIoKSksIHN0dWJJbmZvR1BSKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9CYXNlbGluZUpJVENvZGUuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQmFzZWxpbmVKSVRDb2RlLmgKaW5kZXggZjY1N2M0YmEw
ZWY2MmJlZjBiMmY0NWQ3NjliNTQzNWQwMWJkZGMxYy4uMTU4OTYwM2YxNDljMjc2YzM1OWU3YmIy
NmQ2NGY0ZDg1NzI3ZjE1MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9C
YXNlbGluZUpJVENvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0Jhc2VsaW5l
SklUQ29kZS5oCkBAIC05Myw4ICs5Myw4IEBAIGNsYXNzIEJhc2VsaW5lSklUQ29kZSA6IHB1Ymxp
YyBEaXJlY3RKSVRDb2RlLCBwdWJsaWMgTWF0aElDSG9sZGVyIHsKICAgICB+QmFzZWxpbmVKSVRD
b2RlKCkgb3ZlcnJpZGU7CiAgICAgUENUb0NvZGVPcmlnaW5NYXAqIHBjVG9Db2RlT3JpZ2luTWFw
KCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9wY1RvQ29kZU9yaWdpbk1hcC5nZXQoKTsgfQogCi0gICAg
QmFnPFVubGlua2VkQ2FsbExpbmtJbmZvPiBtX3VubGlua2VkQ2FsbHM7CiAgICAgQmFnPENhbGxM
aW5rSW5mbz4gbV9ldmFsQ2FsbExpbmtJbmZvczsKKyAgICBGaXhlZFZlY3RvcjxVbmxpbmtlZENh
bGxMaW5rSW5mbz4gbV91bmxpbmtlZENhbGxzOwogICAgIEZpeGVkVmVjdG9yPFVubGlua2VkU3Ry
dWN0dXJlU3R1YkluZm8+IG1fdW5saW5rZWRTdHViSW5mb3M7CiAgICAgRml4ZWRWZWN0b3I8U2lt
cGxlSnVtcFRhYmxlPiBtX3N3aXRjaEp1bXBUYWJsZXM7CiAgICAgRml4ZWRWZWN0b3I8U3RyaW5n
SnVtcFRhYmxlPiBtX3N0cmluZ1N3aXRjaEp1bXBUYWJsZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VC5jcHAKaW5kZXggZGJjNzg0YmM2ZDU1YzdmZDA5MWI4YjZkYTY0MjE4YjcxM2YzZTdkMy4uOTI5
NDI0NjA3MzQwMDkxMWI2YzM1N2M3OGE0YTBjNmE3NGU5YWFkNCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklULmNwcApAQCAtMTAxLDYgKzEwMSwxNCBAQCBzdGQ6OnR1cGxlPFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8qLCBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50PiBKSVQ6OmFkZFVubGluawog
ICAgIHJldHVybiBzdGQ6OnR1cGxlIHsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggfTsKIH0KIAor
c3RkOjp0dXBsZTxVbmxpbmtlZENhbGxMaW5rSW5mbyosIEpJVENvbnN0YW50UG9vbDo6Q29uc3Rh
bnQ+IEpJVDo6YWRkVW5saW5rZWRDYWxsTGlua0luZm8oKQoreworICAgIHZvaWQqIHVubGlua2Vk
Q2FsbExpbmtJbmZvSW5kZXggPSBiaXR3aXNlX2Nhc3Q8dm9pZCo+KHN0YXRpY19jYXN0PHVpbnRw
dHJfdD4obV91bmxpbmtlZENhbGxzLnNpemUoKSkpOworICAgIFVubGlua2VkQ2FsbExpbmtJbmZv
KiBpbmZvID0gJm1fdW5saW5rZWRDYWxscy5hbGxvYygpOworICAgIEpJVENvbnN0YW50UG9vbDo6
Q29uc3RhbnQgY2FsbExpbmtJbmZvSW5kZXggPSBhZGRUb0NvbnN0YW50UG9vbChKSVRDb25zdGFu
dFBvb2w6OlR5cGU6OkNhbGxMaW5rSW5mbywgdW5saW5rZWRDYWxsTGlua0luZm9JbmRleCk7Cisg
ICAgcmV0dXJuIHN0ZDo6dHVwbGUgeyBpbmZvLCBjYWxsTGlua0luZm9JbmRleCB9OworfQorCiAj
aWYgRU5BQkxFKERGR19KSVQpCiB2b2lkIEpJVDo6ZW1pdEVudGVyT3B0aW1pemF0aW9uQ2hlY2so
KQogewpAQCAtOTk5LDExICsxMDA3LDEzIEBAIHZvaWQgSklUOjpsaW5rKCkKICAgICBNYWNyb0Fz
c2VtYmxlckNvZGVQdHI8SlNFbnRyeVB0clRhZz4gd2l0aEFyaXR5Q2hlY2sgPSBwYXRjaEJ1ZmZl
ci5sb2NhdGlvbk9mPEpTRW50cnlQdHJUYWc+KG1fYXJpdHlDaGVjayk7CiAgICAgbV9qaXRDb2Rl
ID0gYWRvcHRSZWYoKm5ldyBCYXNlbGluZUpJVENvZGUocmVzdWx0LCB3aXRoQXJpdHlDaGVjaykp
OwogCi0gICAgbV9qaXRDb2RlLT5tX3VubGlua2VkQ2FsbHMgPSBXVEZNb3ZlKG1fdW5saW5rZWRD
YWxscyk7CisgICAgbV9qaXRDb2RlLT5tX3VubGlua2VkQ2FsbHMgPSBGaXhlZFZlY3RvcjxVbmxp
bmtlZENhbGxMaW5rSW5mbz4obV91bmxpbmtlZENhbGxzLnNpemUoKSk7CisgICAgaWYgKG1faml0
Q29kZS0+bV91bmxpbmtlZENhbGxzLnNpemUoKSkKKyAgICAgICAgc3RkOjptb3ZlKG1fdW5saW5r
ZWRDYWxscy5iZWdpbigpLCBtX3VubGlua2VkQ2FsbHMuZW5kKCksIG1faml0Q29kZS0+bV91bmxp
bmtlZENhbGxzLmJlZ2luKCkpOwogICAgIG1faml0Q29kZS0+bV9ldmFsQ2FsbExpbmtJbmZvcyA9
IFdURk1vdmUobV9ldmFsQ2FsbExpbmtJbmZvcyk7CiAgICAgbV9qaXRDb2RlLT5tX3VubGlua2Vk
U3R1YkluZm9zID0gRml4ZWRWZWN0b3I8VW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbz4obV91bmxp
bmtlZFN0dWJJbmZvcy5zaXplKCkpOwogICAgIGlmIChtX2ppdENvZGUtPm1fdW5saW5rZWRTdHVi
SW5mb3Muc2l6ZSgpKQotICAgICAgICBzdGQ6OmNvcHkobV91bmxpbmtlZFN0dWJJbmZvcy5iZWdp
bigpLCBtX3VubGlua2VkU3R1YkluZm9zLmVuZCgpLCBtX2ppdENvZGUtPm1fdW5saW5rZWRTdHVi
SW5mb3MuYmVnaW4oKSk7CisgICAgICAgIHN0ZDo6bW92ZShtX3VubGlua2VkU3R1YkluZm9zLmJl
Z2luKCksIG1fdW5saW5rZWRTdHViSW5mb3MuZW5kKCksIG1faml0Q29kZS0+bV91bmxpbmtlZFN0
dWJJbmZvcy5iZWdpbigpKTsKICAgICBtX2ppdENvZGUtPm1fc3dpdGNoSnVtcFRhYmxlcyA9IFdU
Rk1vdmUobV9zd2l0Y2hKdW1wVGFibGVzKTsKICAgICBtX2ppdENvZGUtPm1fc3RyaW5nU3dpdGNo
SnVtcFRhYmxlcyA9IFdURk1vdmUobV9zdHJpbmdTd2l0Y2hKdW1wVGFibGVzKTsKICAgICBtX2pp
dENvZGUtPm1faml0Q29kZU1hcCA9IGppdENvZGVNYXBCdWlsZGVyLmZpbmFsaXplKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVQuaAppbmRleCA2NTA5NDZkMWU1N2NhOWQ1YTY0MWQ5NzU3ZGYzMzMyMWM5
N2JmZWNjLi5kZTJjNWNlNzcwYmJkNTkzYjdhZTVmZDFhNjUyNjczODk0M2RkOWExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklULmgKQEAgLTk1OCw2ICs5NTgsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAog
ICAgICAgICBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50IGFkZFRvQ29uc3RhbnRQb29sKEpJVENv
bnN0YW50UG9vbDo6VHlwZSwgdm9pZCogcGF5bG9hZCA9IG51bGxwdHIpOwogICAgICAgICBzdGQ6
OnR1cGxlPFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8qLCBKSVRDb25zdGFudFBvb2w6OkNvbnN0
YW50PiBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CisgICAgICAgIHN0ZDo6dHVwbGU8
VW5saW5rZWRDYWxsTGlua0luZm8qLCBKSVRDb25zdGFudFBvb2w6OkNvbnN0YW50PiBhZGRVbmxp
bmtlZENhbGxMaW5rSW5mbygpOwogCiAgICAgICAgIEludGVycHJldGVyKiBtX2ludGVycHJldGVy
OwogCkBAIC0xMDI4LDggKzEwMjksOCBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICBWZWN0
b3I8SklUQ29uc3RhbnRQb29sOjpWYWx1ZT4gbV9jb25zdGFudFBvb2w7CiAgICAgICAgIEpJVENv
bnN0YW50UG9vbDo6Q29uc3RhbnQgbV9nbG9iYWxPYmplY3RDb25zdGFudCB7IHN0ZDo6bnVtZXJp
Y19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSB9OwotICAgICAgICBCYWc8VW5saW5rZWRDYWxsTGlu
a0luZm8+IG1fdW5saW5rZWRDYWxsczsKICAgICAgICAgQmFnPENhbGxMaW5rSW5mbz4gbV9ldmFs
Q2FsbExpbmtJbmZvczsKKyAgICAgICAgU2VnbWVudGVkVmVjdG9yPFVubGlua2VkQ2FsbExpbmtJ
bmZvPiBtX3VubGlua2VkQ2FsbHM7CiAgICAgICAgIFNlZ21lbnRlZFZlY3RvcjxVbmxpbmtlZFN0
cnVjdHVyZVN0dWJJbmZvPiBtX3VubGlua2VkU3R1YkluZm9zOwogICAgICAgICBGaXhlZFZlY3Rv
cjxTaW1wbGVKdW1wVGFibGU+IG1fc3dpdGNoSnVtcFRhYmxlczsKICAgICAgICAgRml4ZWRWZWN0
b3I8U3RyaW5nSnVtcFRhYmxlPiBtX3N0cmluZ1N3aXRjaEp1bXBUYWJsZXM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRDYWxsLmNwcAppbmRleCA1N2RjNjYxOTAwODU0ZDY1MDMwY2YyNWM1YTg0
MjliMWQ2NTA2ZDJmLi4wOTE5OTE1ODQ2OGMwZmUxMDJiNWRmYmZhMmJlNGZlMTczMTk3ZTJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVENhbGwuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ2FsbC5jcHAKQEAgLTI5MCwxMiArMjkwLDkgQEAg
dm9pZCBKSVQ6OmNvbXBpbGVPcENhbGwoY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydWN0aW9uLCB1
bnNpZ25lZCBjYWxsTGlua0luZm9JbmQKICAgICBVbmxpbmtlZENhbGxMaW5rSW5mbyogaW5mbyA9
IG51bGxwdHI7CiAgICAgSklUQ29uc3RhbnRQb29sOjpDb25zdGFudCBpbmZvQ29uc3RhbnQgPSBV
SU5UX01BWDsKICAgICBpZiAob3Bjb2RlSUQgIT0gb3BfY2FsbF9ldmFsKSB7Ci0gICAgICAgIGlu
Zm8gPSBtX3VubGlua2VkQ2FsbHMuYWRkKCk7CisgICAgICAgIHN0ZDo6dGllKGluZm8sIGluZm9D
b25zdGFudCkgPSBhZGRVbmxpbmtlZENhbGxMaW5rSW5mbygpOwogICAgICAgICBpbmZvLT5ieXRl
Y29kZUluZGV4ID0gbV9ieXRlY29kZUluZGV4OwogICAgICAgICBpbmZvLT5jYWxsVHlwZSA9IENh
bGxMaW5rSW5mbzo6Y2FsbFR5cGVGb3Iob3Bjb2RlSUQpOwotCi0gICAgICAgIGluZm9Db25zdGFu
dCA9IGFkZFRvQ29uc3RhbnRQb29sKEpJVENvbnN0YW50UG9vbDo6VHlwZTo6Q2FsbExpbmtJbmZv
LCBpbmZvKTsKLQogICAgICAgICBBU1NFUlQobV9jYWxsQ29tcGlsYXRpb25JbmZvLnNpemUoKSA9
PSBjYWxsTGlua0luZm9JbmRleCk7CiAgICAgICAgIG1fY2FsbENvbXBpbGF0aW9uSW5mby5hcHBl
bmQoQ2FsbENvbXBpbGF0aW9uSW5mbygpKTsKICAgICAgICAgbV9jYWxsQ29tcGlsYXRpb25JbmZv
W2NhbGxMaW5rSW5mb0luZGV4XS51bmxpbmtlZENhbGxMaW5rSW5mbyA9IGluZm87CkBAIC00ODcs
NyArNDg0LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaXRlcmF0b3Jfb3Blbihjb25zdCBJbnN0cnVj
dGlvbiogaW5zdHJ1Y3Rpb24pCiAgICAgY29uc3QgSWRlbnRpZmllciogaWRlbnQgPSAmdm0oKS5w
cm9wZXJ0eU5hbWVzLT5uZXh0OwogCiAgICAgSklUR2V0QnlJZEdlbmVyYXRvciBnZW4oCi0gICAg
ICAgIG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJ
bmRleCksIENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChtX2J5dGVjb2RlSW5kZXgub2Zmc2V0
KCkpKSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAorICAgICAgICBu
dWxscHRyLCBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVj
b2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgobV9ieXRlY29kZUluZGV4Lm9m
ZnNldCgpKSksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAg
ICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUltbW9ydGFsSWRlbnRpZmllcihpZGVu
dC0+aW1wbCgpKSwgYmFzZUpTUiwgcmVzdWx0SlNSLCBzdHViSW5mb0dQUiwgQWNjZXNzVHlwZTo6
R2V0QnlJZCk7CiAKICAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVu
bGlua2VkU3RydWN0dXJlU3R1YkluZm8oKTsKQEAgLTU5Nyw3ICs1OTQsNyBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9pdGVyYXRvcl9uZXh0KGNvbnN0IEluc3RydWN0aW9uKiBpbnN0cnVjdGlvbikKICAg
ICAgICAgUmVnaXN0ZXJTZXQgcHJlc2VydmVkUmVncyA9IFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFp
bGFibGVSZWdpc3RlcnMoKTsKICAgICAgICAgcHJlc2VydmVkUmVncy5zZXQoaXRlckNhbGxSZXN1
bHRKU1IpOwogICAgICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgICAgIG51
bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCks
IENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChtX2J5dGVjb2RlSW5kZXgub2Zmc2V0KCkpKSwg
cHJlc2VydmVkUmVncywKKyAgICAgICAgICAgIG51bGxwdHIsIG51bGxwdHIsIEpJVFR5cGU6OkJh
c2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgoQnl0
ZWNvZGVJbmRleChtX2J5dGVjb2RlSW5kZXgub2Zmc2V0KCkpKSwgcHJlc2VydmVkUmVncywKICAg
ICAgICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JbW1vcnRhbElkZW50aWZp
ZXIodm0oKS5wcm9wZXJ0eU5hbWVzLT5kb25lLmltcGwoKSksIHJldHVyblZhbHVlSlNSLCBkb25l
SlNSLCBzdHViSW5mb0dQUiwgQWNjZXNzVHlwZTo6R2V0QnlJZCk7CiAKICAgICAgICAgYXV0byBb
IHN0dWJJbmZvLCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZv
KCk7CkBAIC02MjksNyArNjI2LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfaXRlcmF0b3JfbmV4dChj
b25zdCBJbnN0cnVjdGlvbiogaW5zdHJ1Y3Rpb24pCiAgICAgICAgIG1vdmVWYWx1ZVJlZ3MoaXRl
ckNhbGxSZXN1bHRKU1IsIGJhc2VKU1IpOwogCiAgICAgICAgIEpJVEdldEJ5SWRHZW5lcmF0b3Ig
Z2VuKAotICAgICAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmln
aW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4KG1fYnl0ZWNv
ZGVJbmRleC5vZmZzZXQoKSkpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJz
KCksCisgICAgICAgICAgICBudWxscHRyLCBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwg
Q29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KEJ5dGVjb2RlSW5kZXgo
bV9ieXRlY29kZUluZGV4Lm9mZnNldCgpKSksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVS
ZWdpc3RlcnMoKSwKICAgICAgICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21J
bW1vcnRhbElkZW50aWZpZXIodm0oKS5wcm9wZXJ0eU5hbWVzLT52YWx1ZS5pbXBsKCkpLCBiYXNl
SlNSLCByZXN1bHRKU1IsIHN0dWJJbmZvR1BSLCBBY2Nlc3NUeXBlOjpHZXRCeUlkKTsKIAogICAg
ICAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
SW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJ
bmxpbmVDYWNoZUdlbmVyYXRvci5jcHAKaW5kZXggYTkxYTY3MTZhZWQ3YjczYmZiYzYwYTMwZTM3
YTllYmNlYmJlYWQxZC4uOWE5OTNmMWViOTEwNmQxY2I4OGFhNGExYjNmMzFjMzQ4MzgwN2RkMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVy
YXRvci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdl
bmVyYXRvci5jcHAKQEAgLTQwLDE3ICs0MCwyMCBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIEpJVElu
bGluZUNhY2hlR2VuZXJhdG9yOjpKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcigKLSAgICBDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgSklUVHlwZSBqaXRUeXBlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIENh
bGxTaXRlSW5kZXggY2FsbFNpdGUsIEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSwKKyAgICBDb2RlQmxv
Y2sqIGNvZGVCbG9jaywgQmFnPFN0cnVjdHVyZVN0dWJJbmZvPiogc3R1YkluZm9zLCBKSVRUeXBl
IGppdFR5cGUsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSwg
QWNjZXNzVHlwZSBhY2Nlc3NUeXBlLAogICAgIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0
ZXJzKQogICAgIDogbV9qaXRUeXBlKGppdFR5cGUpCiB7CiAgICAgaWYgKEpJVENvZGU6OmlzT3B0
aW1pemluZ0pJVChtX2ppdFR5cGUpKSB7Ci0gICAgICAgIEFTU0VSVChjb2RlQmxvY2spOwotICAg
ICAgICBtX3N0dWJJbmZvID0gY29kZUJsb2NrLT5hZGRPcHRpbWl6aW5nU3R1YkluZm8oYWNjZXNz
VHlwZSwgY29kZU9yaWdpbik7CisgICAgICAgIEFTU0VSVF9VTlVTRUQoY29kZUJsb2NrLCBjb2Rl
QmxvY2spOworICAgICAgICBBU1NFUlQoc3R1YkluZm9zKTsKKyAgICAgICAgbV9zdHViSW5mbyA9
IHN0dWJJbmZvcy0+YWRkKGFjY2Vzc1R5cGUsIGNvZGVPcmlnaW4pOwogICAgICAgICBtX3N0dWJJ
bmZvLT5jYWxsU2l0ZUluZGV4ID0gY2FsbFNpdGU7CiAgICAgICAgIG1fc3R1YkluZm8tPnVzZWRS
ZWdpc3RlcnMgPSB1c2VkUmVnaXN0ZXJzOwotICAgIH0gZWxzZQorICAgIH0gZWxzZSB7CiAgICAg
ICAgIEFTU0VSVCghY29kZUJsb2NrKTsKKyAgICAgICAgQVNTRVJUKCFzdHViSW5mb3MpOworICAg
IH0KIH0KIAogdm9pZCBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcjo6ZmluYWxpemUoCkBAIC03NSw5
ICs3OCw5IEBAIHZvaWQgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3I6OmdlbmVyYXRlQmFzZWxpbmVE
YXRhSUNGYXN0UGF0aChKSVQmIGppdCwgdW5zaWduZWQKIH0KIAogSklUQnlJZEdlbmVyYXRvcjo6
SklUQnlJZEdlbmVyYXRvcigKLSAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSklUVHlwZSBqaXRU
eXBlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXggY2FsbFNpdGUsIEFjY2Vz
c1R5cGUgYWNjZXNzVHlwZSwKKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQmFnPFN0cnVjdHVy
ZVN0dWJJbmZvPiogc3R1YkluZm9zLCBKSVRUeXBlIGppdFR5cGUsIENvZGVPcmlnaW4gY29kZU9y
aWdpbiwgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlLAogICAg
IGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1Zh
bHVlUmVncyB2YWx1ZSwgR1BSUmVnIHN0dWJJbmZvR1BSKQotICAgIDogSklUSW5saW5lQ2FjaGVH
ZW5lcmF0b3IoY29kZUJsb2NrLCBqaXRUeXBlLCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgYWNjZXNz
VHlwZSwgdXNlZFJlZ2lzdGVycykKKyAgICA6IEpJVElubGluZUNhY2hlR2VuZXJhdG9yKGNvZGVC
bG9jaywgc3R1YkluZm9zLCBqaXRUeXBlLCBjb2RlT3JpZ2luLCBjYWxsU2l0ZSwgYWNjZXNzVHlw
ZSwgdXNlZFJlZ2lzdGVycykKICAgICAsIG1fYmFzZShiYXNlKQogICAgICwgbV92YWx1ZSh2YWx1
ZSkKIHsKQEAgLTExNyw5ICsxMjAsOSBAQCB2b2lkIEpJVEJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRl
RmFzdENvbW1vbihNYWNyb0Fzc2VtYmxlciYgaml0LCBzaXplX3QgaW5saW5lSUNTaQogfQogCiBK
SVRHZXRCeUlkR2VuZXJhdG9yOjpKSVRHZXRCeUlkR2VuZXJhdG9yKAotICAgIENvZGVCbG9jayog
Y29kZUJsb2NrLCBKSVRUeXBlIGppdFR5cGUsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgQ2FsbFNp
dGVJbmRleCBjYWxsU2l0ZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCisgICAg
Q29kZUJsb2NrKiBjb2RlQmxvY2ssIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qIHN0dWJJbmZvcywg
SklUVHlwZSBqaXRUeXBlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXggY2Fs
bFNpdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAogICAgIENhY2hlYWJsZUlk
ZW50aWZpZXIgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1
ZSwgR1BSUmVnIHN0dWJJbmZvR1BSLCBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUpCi0gICAgOiBKSVRC
eUlkR2VuZXJhdG9yKGNvZGVCbG9jaywgaml0VHlwZSwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIGFj
Y2Vzc1R5cGUsIHVzZWRSZWdpc3RlcnMsIGJhc2UsIHZhbHVlLCBzdHViSW5mb0dQUikKKyAgICA6
IEpJVEJ5SWRHZW5lcmF0b3IoY29kZUJsb2NrLCBzdHViSW5mb3MsIGppdFR5cGUsIGNvZGVPcmln
aW4sIGNhbGxTaXRlLCBhY2Nlc3NUeXBlLCB1c2VkUmVnaXN0ZXJzLCBiYXNlLCB2YWx1ZSwgc3R1
YkluZm9HUFIpCiAgICAgLCBtX2lzTGVuZ3RoQWNjZXNzKGNvZGVCbG9jayAmJiBwcm9wZXJ0eU5h
bWUudWlkKCkgPT0gY29kZUJsb2NrLT52bSgpLnByb3BlcnR5TmFtZXMtPmxlbmd0aC5pbXBsKCkp
CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoYmFzZS5wYXlsb2FkR1BSKCkgIT0gdmFsdWUudGFnR1BS
KCkpOwpAQCAtMTY0LDkgKzE2Nyw5IEBAIHZvaWQgSklUR2V0QnlJZEdlbmVyYXRvcjo6Z2VuZXJh
dGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYgaml0LCB1bnNpZ25lZCBzdHViCiB9CiAKIEpJ
VEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcjo6SklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yKAot
ICAgIENvZGVCbG9jayogY29kZUJsb2NrLCBKSVRUeXBlIGppdFR5cGUsIENvZGVPcmlnaW4gY29k
ZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRS
ZWdpc3RlcnMsCisgICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJhZzxTdHJ1Y3R1cmVTdHViSW5m
bz4qIHN0dWJJbmZvcywgSklUVHlwZSBqaXRUeXBlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIENh
bGxTaXRlSW5kZXggY2FsbFNpdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLAog
ICAgIENhY2hlYWJsZUlkZW50aWZpZXIsIEpTVmFsdWVSZWdzIHZhbHVlLCBKU1ZhbHVlUmVncyBi
YXNlLCBKU1ZhbHVlUmVncyB0aGlzUmVncywgR1BSUmVnIHN0dWJJbmZvR1BSKQotICAgIDogSklU
QnlJZEdlbmVyYXRvcihjb2RlQmxvY2ssIGppdFR5cGUsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCBB
Y2Nlc3NUeXBlOjpHZXRCeUlkV2l0aFRoaXMsIHVzZWRSZWdpc3RlcnMsIGJhc2UsIHZhbHVlLCBz
dHViSW5mb0dQUikKKyAgICA6IEpJVEJ5SWRHZW5lcmF0b3IoY29kZUJsb2NrLCBzdHViSW5mb3Ms
IGppdFR5cGUsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCBBY2Nlc3NUeXBlOjpHZXRCeUlkV2l0aFRo
aXMsIHVzZWRSZWdpc3RlcnMsIGJhc2UsIHZhbHVlLCBzdHViSW5mb0dQUikKIHsKICAgICBSRUxF
QVNFX0FTU0VSVCh0aGlzUmVncy5wYXlsb2FkR1BSKCkgIT0gdGhpc1JlZ3MudGFnR1BSKCkpOwog
ICAgIGlmIChtX3N0dWJJbmZvKSB7CkBAIC0yMDAsMTAgKzIwMywxMCBAQCB2b2lkIEpJVEdldEJ5
SWRXaXRoVGhpc0dlbmVyYXRvcjo6Z2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYg
aml0LCB1bnNpZwogfQogCiBKSVRQdXRCeUlkR2VuZXJhdG9yOjpKSVRQdXRCeUlkR2VuZXJhdG9y
KAotICAgIENvZGVCbG9jayogY29kZUJsb2NrLCBKSVRUeXBlIGppdFR5cGUsIENvZGVPcmlnaW4g
Y29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVz
ZWRSZWdpc3RlcnMsIENhY2hlYWJsZUlkZW50aWZpZXIsCisgICAgQ29kZUJsb2NrKiBjb2RlQmxv
Y2ssIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qIHN0dWJJbmZvcywgSklUVHlwZSBqaXRUeXBlLCBD
b2RlT3JpZ2luIGNvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXggY2FsbFNpdGUsIGNvbnN0IFJlZ2lz
dGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNoZWFibGVJZGVudGlmaWVyLAogICAgIEpTVmFsdWVS
ZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBz
Y3JhdGNoLCAKICAgICBFQ01BTW9kZSBlY21hTW9kZSwgUHV0S2luZCBwdXRLaW5kKQotICAgICAg
ICA6IEpJVEJ5SWRHZW5lcmF0b3IoY29kZUJsb2NrLCBqaXRUeXBlLCBjb2RlT3JpZ2luLCBjYWxs
U2l0ZSwgQWNjZXNzVHlwZTo6UHV0QnlJZCwgdXNlZFJlZ2lzdGVycywgYmFzZSwgdmFsdWUsIHN0
dWJJbmZvR1BSKQorICAgICAgICA6IEpJVEJ5SWRHZW5lcmF0b3IoY29kZUJsb2NrLCBzdHViSW5m
b3MsIGppdFR5cGUsIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCBBY2Nlc3NUeXBlOjpQdXRCeUlkLCB1
c2VkUmVnaXN0ZXJzLCBiYXNlLCB2YWx1ZSwgc3R1YkluZm9HUFIpCiAgICAgICAgICwgbV9lY21h
TW9kZShlY21hTW9kZSkKICAgICAgICAgLCBtX3B1dEtpbmQocHV0S2luZCkKIHsKQEAgLTI2Niw4
ICsyNjksOCBAQCBWX0pJVE9wZXJhdGlvbl9HU3NpSkpDIEpJVFB1dEJ5SWRHZW5lcmF0b3I6OnNs
b3dQYXRoRnVuY3Rpb24oKQogICAgIHJldHVybiBudWxscHRyOwogfQogCi1KSVREZWxCeVZhbEdl
bmVyYXRvcjo6SklURGVsQnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVFR5
cGUgaml0VHlwZSwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4IGNhbGxTaXRl
SW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBKU1ZhbHVlUmVncyBiYXNl
LCBKU1ZhbHVlUmVncyBwcm9wZXJ0eSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgc3R1Yklu
Zm9HUFIsIEdQUlJlZyBzY3JhdGNoKQotICAgIDogQmFzZShjb2RlQmxvY2ssIGppdFR5cGUsIGNv
ZGVPcmlnaW4sIGNhbGxTaXRlSW5kZXgsIEFjY2Vzc1R5cGU6OkRlbGV0ZUJ5VmFsLCB1c2VkUmVn
aXN0ZXJzKQorSklURGVsQnlWYWxHZW5lcmF0b3I6OkpJVERlbEJ5VmFsR2VuZXJhdG9yKENvZGVC
bG9jayogY29kZUJsb2NrLCBCYWc8U3RydWN0dXJlU3R1YkluZm8+KiBzdHViSW5mb3MsIEpJVFR5
cGUgaml0VHlwZSwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4IGNhbGxTaXRl
SW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBKU1ZhbHVlUmVncyBiYXNl
LCBKU1ZhbHVlUmVncyBwcm9wZXJ0eSwgSlNWYWx1ZVJlZ3MgcmVzdWx0LCBHUFJSZWcgc3R1Yklu
Zm9HUFIsIEdQUlJlZyBzY3JhdGNoKQorICAgIDogQmFzZShjb2RlQmxvY2ssIHN0dWJJbmZvcywg
aml0VHlwZSwgY29kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZTo6RGVsZXRlQnlW
YWwsIHVzZWRSZWdpc3RlcnMpCiB7CiAgICAgQVNTRVJUKGJhc2UucGF5bG9hZEdQUigpICE9IHJl
c3VsdC5wYXlsb2FkR1BSKCkpOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCkBAIC0zMDgsOCArMzEx
LDggQEAgdm9pZCBKSVREZWxCeVZhbEdlbmVyYXRvcjo6ZmluYWxpemUoTGlua0J1ZmZlciYgZmFz
dFBhdGgsIExpbmtCdWZmZXImIHNsb3dQYXRoKQogICAgICAgICBtX3N0dWJJbmZvLT5tX2NvZGVQ
dHIgPSBtX3N0dWJJbmZvLT5zbG93UGF0aFN0YXJ0TG9jYXRpb247CiB9CiAKLUpJVERlbEJ5SWRH
ZW5lcmF0b3I6OkpJVERlbEJ5SWRHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVFR5
cGUgaml0VHlwZSwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4IGNhbGxTaXRl
SW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNoZWFibGVJZGVudGlm
aWVyLCBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5m
b0dQUiwgR1BSUmVnIHNjcmF0Y2gpCi0gICAgOiBCYXNlKGNvZGVCbG9jaywgaml0VHlwZSwgY29k
ZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZTo6RGVsZXRlQnlJRCwgdXNlZFJlZ2lz
dGVycykKK0pJVERlbEJ5SWRHZW5lcmF0b3I6OkpJVERlbEJ5SWRHZW5lcmF0b3IoQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qIHN0dWJJbmZvcywgSklUVHlwZSBq
aXRUeXBlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRl
eCwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENhY2hlYWJsZUlkZW50aWZpZXIs
IEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJbmZvR1BS
LCBHUFJSZWcgc2NyYXRjaCkKKyAgICA6IEJhc2UoY29kZUJsb2NrLCBzdHViSW5mb3MsIGppdFR5
cGUsIGNvZGVPcmlnaW4sIGNhbGxTaXRlSW5kZXgsIEFjY2Vzc1R5cGU6OkRlbGV0ZUJ5SUQsIHVz
ZWRSZWdpc3RlcnMpCiB7CiAgICAgQVNTRVJUKGJhc2UucGF5bG9hZEdQUigpICE9IHJlc3VsdC5w
YXlsb2FkR1BSKCkpOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCkBAIC0zNTAsOCArMzUzLDggQEAg
dm9pZCBKSVREZWxCeUlkR2VuZXJhdG9yOjpmaW5hbGl6ZShMaW5rQnVmZmVyJiBmYXN0UGF0aCwg
TGlua0J1ZmZlciYgc2xvd1BhdGgpCiAgICAgICAgIG1fc3R1YkluZm8tPm1fY29kZVB0ciA9IG1f
c3R1YkluZm8tPnNsb3dQYXRoU3RhcnRMb2NhdGlvbjsKIH0KIAotSklUSW5CeVZhbEdlbmVyYXRv
cjo6SklUSW5CeVZhbEdlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgSklUVHlwZSBqaXRU
eXBlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCwg
QWNjZXNzVHlwZSBhY2Nlc3NUeXBlLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywg
SlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHksIEpTVmFsdWVSZWdzIHJlc3Vs
dCwgR1BSUmVnIHN0dWJJbmZvR1BSKQotICAgIDogQmFzZShjb2RlQmxvY2ssIGppdFR5cGUsIGNv
ZGVPcmlnaW4sIGNhbGxTaXRlSW5kZXgsIGFjY2Vzc1R5cGUsIHVzZWRSZWdpc3RlcnMpCitKSVRJ
bkJ5VmFsR2VuZXJhdG9yOjpKSVRJbkJ5VmFsR2VuZXJhdG9yKENvZGVCbG9jayogY29kZUJsb2Nr
LCBCYWc8U3RydWN0dXJlU3R1YkluZm8+KiBzdHViSW5mb3MsIEpJVFR5cGUgaml0VHlwZSwgQ29k
ZU9yaWdpbiBjb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXgsIEFjY2Vzc1R5
cGUgYWNjZXNzVHlwZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIEpTVmFsdWVS
ZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHByb3BlcnR5LCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJl
ZyBzdHViSW5mb0dQUikKKyAgICA6IEJhc2UoY29kZUJsb2NrLCBzdHViSW5mb3MsIGppdFR5cGUs
IGNvZGVPcmlnaW4sIGNhbGxTaXRlSW5kZXgsIGFjY2Vzc1R5cGUsIHVzZWRSZWdpc3RlcnMpCiB7
CiAgICAgaWYgKG1fc3R1YkluZm8pIHsKICAgICAgICAgbV9zdHViSW5mby0+aGFzQ29uc3RhbnRJ
ZGVudGlmaWVyID0gZmFsc2U7CkBAIC0zOTAsOSArMzkzLDkgQEAgdm9pZCBKSVRJbkJ5VmFsR2Vu
ZXJhdG9yOjpmaW5hbGl6ZSgKIH0KIAogSklUSW5CeUlkR2VuZXJhdG9yOjpKSVRJbkJ5SWRHZW5l
cmF0b3IoCi0gICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVFR5cGUgaml0VHlwZSwgQ29kZU9y
aWdpbiBjb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlLCBjb25zdCBSZWdpc3RlclNl
dCYgdXNlZFJlZ2lzdGVycywKKyAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywgQmFnPFN0cnVjdHVy
ZVN0dWJJbmZvPiogc3R1YkluZm9zLCBKSVRUeXBlIGppdFR5cGUsIENvZGVPcmlnaW4gY29kZU9y
aWdpbiwgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdp
c3RlcnMsCiAgICAgQ2FjaGVhYmxlSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWdz
IGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc3R1YkluZm9HUFIpCi0gICAgOiBKSVRC
eUlkR2VuZXJhdG9yKGNvZGVCbG9jaywgaml0VHlwZSwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIEFj
Y2Vzc1R5cGU6OkluQnlJZCwgdXNlZFJlZ2lzdGVycywgYmFzZSwgdmFsdWUsIHN0dWJJbmZvR1BS
KQorICAgIDogSklUQnlJZEdlbmVyYXRvcihjb2RlQmxvY2ssIHN0dWJJbmZvcywgaml0VHlwZSwg
Y29kZU9yaWdpbiwgY2FsbFNpdGUsIEFjY2Vzc1R5cGU6OkluQnlJZCwgdXNlZFJlZ2lzdGVycywg
YmFzZSwgdmFsdWUsIHN0dWJJbmZvR1BSKQogewogICAgIC8vIEZJWE1FOiBXZSBhcmUgbm90IHN1
cHBvcnRpbmcgZmFzdCBwYXRoIGZvciAibGVuZ3RoIiBwcm9wZXJ0eS4KICAgICBVTlVTRURfUEFS
QU0ocHJvcGVydHlOYW1lKTsKQEAgLTQzMiwxMCArNDM1LDEwIEBAIHZvaWQgSklUSW5CeUlkR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUJhc2VsaW5lRGF0YUlDRmFzdFBhdGgoSklUJiBqaXQsIHVuc2lnbmVk
IHN0dWJJCiB9CiAKIEpJVEluc3RhbmNlT2ZHZW5lcmF0b3I6OkpJVEluc3RhbmNlT2ZHZW5lcmF0
b3IoCi0gICAgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJVFR5cGUgaml0VHlwZSwgQ29kZU9yaWdp
biBjb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXgsCisgICAgQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qIHN0dWJJbmZvcywgSklUVHlwZSBq
aXRUeXBlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRl
eCwKICAgICBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgR1BSUmVnIHJlc3VsdCwg
R1BSUmVnIHZhbHVlLCBHUFJSZWcgcHJvdG90eXBlLCBHUFJSZWcgc3R1YkluZm9HUFIsCiAgICAg
R1BSUmVnIHNjcmF0Y2gxLCBHUFJSZWcgc2NyYXRjaDIsIGJvb2wgcHJvdG90eXBlSXNLbm93bk9i
amVjdCkKLSAgICA6IEpJVElubGluZUNhY2hlR2VuZXJhdG9yKGNvZGVCbG9jaywgaml0VHlwZSwg
Y29kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZTo6SW5zdGFuY2VPZiwgdXNlZFJl
Z2lzdGVycykKKyAgICA6IEpJVElubGluZUNhY2hlR2VuZXJhdG9yKGNvZGVCbG9jaywgc3R1Yklu
Zm9zLCBqaXRUeXBlLCBjb2RlT3JpZ2luLCBjYWxsU2l0ZUluZGV4LCBBY2Nlc3NUeXBlOjpJbnN0
YW5jZU9mLCB1c2VkUmVnaXN0ZXJzKQogewogICAgIGlmIChtX3N0dWJJbmZvKSB7CiAgICAgICAg
IG1fc3R1YkluZm8tPmJhc2VHUFIgPSB2YWx1ZTsKQEAgLTQ3OSw4ICs0ODIsOCBAQCB2b2lkIEpJ
VEluc3RhbmNlT2ZHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtCdWZmZXImIGZhc3RQYXRoLCBMaW5r
QnVmZmVyJiBzbG93UGF0aAogICAgICAgICBtX3N0dWJJbmZvLT5tX2NvZGVQdHIgPSBtX3N0dWJJ
bmZvLT5zbG93UGF0aFN0YXJ0TG9jYXRpb247CiB9CiAKLUpJVEdldEJ5VmFsR2VuZXJhdG9yOjpK
SVRHZXRCeVZhbEdlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgSklUVHlwZSBqaXRUeXBl
LCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCwgQWNj
ZXNzVHlwZSBhY2Nlc3NUeXBlLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgSlNW
YWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHksIEpTVmFsdWVSZWdzIHJlc3VsdCwg
R1BSUmVnIHN0dWJJbmZvR1BSKQotICAgIDogQmFzZShjb2RlQmxvY2ssIGppdFR5cGUsIGNvZGVP
cmlnaW4sIGNhbGxTaXRlSW5kZXgsIGFjY2Vzc1R5cGUsIHVzZWRSZWdpc3RlcnMpCitKSVRHZXRC
eVZhbEdlbmVyYXRvcjo6SklUR2V0QnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ss
IEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qIHN0dWJJbmZvcywgSklUVHlwZSBqaXRUeXBlLCBDb2Rl
T3JpZ2luIGNvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCwgQWNjZXNzVHlw
ZSBhY2Nlc3NUeXBlLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgSlNWYWx1ZVJl
Z3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHksIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVn
IHN0dWJJbmZvR1BSKQorICAgIDogQmFzZShjb2RlQmxvY2ssIHN0dWJJbmZvcywgaml0VHlwZSwg
Y29kZU9yaWdpbiwgY2FsbFNpdGVJbmRleCwgYWNjZXNzVHlwZSwgdXNlZFJlZ2lzdGVycykKICAg
ICAsIG1fYmFzZShiYXNlKQogICAgICwgbV9yZXN1bHQocmVzdWx0KQogewpAQCAtNTE4LDggKzUy
MSw4IEBAIHZvaWQgSklUR2V0QnlWYWxHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtCdWZmZXImIGZh
c3RQYXRoLCBMaW5rQnVmZmVyJiBzbG93UGF0aCkKICAgICAgICAgbV9zdHViSW5mby0+bV9jb2Rl
UHRyID0gbV9zdHViSW5mby0+c2xvd1BhdGhTdGFydExvY2F0aW9uOwogfQogCi1KSVRQdXRCeVZh
bEdlbmVyYXRvcjo6SklUUHV0QnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEpJ
VFR5cGUgaml0VHlwZSwgQ29kZU9yaWdpbiBjb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4IGNhbGxT
aXRlSW5kZXgsIEFjY2Vzc1R5cGUgYWNjZXNzVHlwZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRS
ZWdpc3RlcnMsIEpTVmFsdWVSZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHByb3BlcnR5LCBKU1ZhbHVl
UmVncyB2YWx1ZSwgR1BSUmVnIGFycmF5UHJvZmlsZUdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSKQot
ICAgIDogQmFzZShjb2RlQmxvY2ssIGppdFR5cGUsIGNvZGVPcmlnaW4sIGNhbGxTaXRlSW5kZXgs
IGFjY2Vzc1R5cGUsIHVzZWRSZWdpc3RlcnMpCitKSVRQdXRCeVZhbEdlbmVyYXRvcjo6SklUUHV0
QnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJhZzxTdHJ1Y3R1cmVTdHViSW5m
bz4qIHN0dWJJbmZvcywgSklUVHlwZSBqaXRUeXBlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIENh
bGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlLCBjb25zdCBS
ZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3Mg
cHJvcGVydHksIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgYXJyYXlQcm9maWxlR1BSLCBHUFJS
ZWcgc3R1YkluZm9HUFIpCisgICAgOiBCYXNlKGNvZGVCbG9jaywgc3R1YkluZm9zLCBqaXRUeXBl
LCBjb2RlT3JpZ2luLCBjYWxsU2l0ZUluZGV4LCBhY2Nlc3NUeXBlLCB1c2VkUmVnaXN0ZXJzKQog
ICAgICwgbV9iYXNlKGJhc2UpCiAgICAgLCBtX3ZhbHVlKHZhbHVlKQogewpAQCAtNTU4LDggKzU2
MSw4IEBAIHZvaWQgSklUUHV0QnlWYWxHZW5lcmF0b3I6OmZpbmFsaXplKExpbmtCdWZmZXImIGZh
c3RQYXRoLCBMaW5rQnVmZmVyJiBzbG93UGF0aCkKICAgICAgICAgbV9zdHViSW5mby0+bV9jb2Rl
UHRyID0gbV9zdHViSW5mby0+c2xvd1BhdGhTdGFydExvY2F0aW9uOwogfQogCi1KSVRQcml2YXRl
QnJhbmRBY2Nlc3NHZW5lcmF0b3I6OkpJVFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcihDb2Rl
QmxvY2sqIGNvZGVCbG9jaywgSklUVHlwZSBqaXRUeXBlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4s
IENhbGxTaXRlSW5kZXggY2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlLCBjb25z
dCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJl
Z3MgYnJhbmQsIEdQUlJlZyBzdHViSW5mb0dQUikKLSAgICA6IEJhc2UoY29kZUJsb2NrLCBqaXRU
eXBlLCBjb2RlT3JpZ2luLCBjYWxsU2l0ZUluZGV4LCBhY2Nlc3NUeXBlLCB1c2VkUmVnaXN0ZXJz
KQorSklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yOjpKSVRQcml2YXRlQnJhbmRBY2Nlc3NH
ZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qIHN0
dWJJbmZvcywgSklUVHlwZSBqaXRUeXBlLCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIENhbGxTaXRl
SW5kZXggY2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZSBhY2Nlc3NUeXBlLCBjb25zdCBSZWdpc3Rl
clNldCYgdXNlZFJlZ2lzdGVycywgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgYnJhbmQs
IEdQUlJlZyBzdHViSW5mb0dQUikKKyAgICA6IEJhc2UoY29kZUJsb2NrLCBzdHViSW5mb3MsIGpp
dFR5cGUsIGNvZGVPcmlnaW4sIGNhbGxTaXRlSW5kZXgsIGFjY2Vzc1R5cGUsIHVzZWRSZWdpc3Rl
cnMpCiB7CiAgICAgQVNTRVJUKGFjY2Vzc1R5cGUgPT0gQWNjZXNzVHlwZTo6Q2hlY2tQcml2YXRl
QnJhbmQgfHwgYWNjZXNzVHlwZSA9PSBBY2Nlc3NUeXBlOjpTZXRQcml2YXRlQnJhbmQpOwogICAg
IGlmIChtX3N0dWJJbmZvKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VElubGluZUNhY2hlR2VuZXJhdG9yLmgKaW5kZXggNzE2ZDAyNmM5Yzg4ODA2NmU3YTY3MjU4YjZm
YWViYWRmYzFkNzhiOC4uOWUwMjIwOTg2ZjA0OTgxMGEzZWJkMGMzMDM5NGViMzRmYzMyNTg3YiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVy
YXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5l
cmF0b3IuaApAQCAtMjM5LDcgKzIzOSw3IEBAIHN0YXRpY19hc3NlcnQoYnJhbmRKU1IgPT0gQmFz
ZWxpbmVHZXRCeVZhbFJlZ2lzdGVyczo6cHJvcGVydHlKU1IpOwogY2xhc3MgSklUSW5saW5lQ2Fj
aGVHZW5lcmF0b3IgewogcHJvdGVjdGVkOgogICAgIEpJVElubGluZUNhY2hlR2VuZXJhdG9yKCkg
eyB9Ci0gICAgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IoQ29kZUJsb2NrKiwgSklUVHlwZSwgQ29k
ZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVz
ZWRSZWdpc3RlcnMpOworICAgIEpJVElubGluZUNhY2hlR2VuZXJhdG9yKENvZGVCbG9jayosIEJh
ZzxTdHJ1Y3R1cmVTdHViSW5mbz4qLCBKSVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4
LCBBY2Nlc3NUeXBlLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycyk7CiAgICAgCiBw
dWJsaWM6CiAgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvKCkgY29uc3QgeyByZXR1cm4g
bV9zdHViSW5mbzsgfQpAQCAtMjc3LDcgKzI3Nyw3IEBAIGNsYXNzIEpJVEJ5SWRHZW5lcmF0b3Ig
OiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogICAgIEpJVEJ5SWRHZW5lcmF0b3Io
KSB7IH0KIAogICAgIEpJVEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgIENvZGVCbG9jayosIEpJVFR5
cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIEFjY2Vzc1R5cGUsIGNvbnN0IFJlZ2lzdGVy
U2V0JiB1c2VkUmVnaXN0ZXJzLAorICAgICAgICBDb2RlQmxvY2sqLCBCYWc8U3RydWN0dXJlU3R1
YkluZm8+KiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZSwg
Y29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCiAgICAgICAgIEpTVmFsdWVSZWdzIGJh
c2UsIEpTVmFsdWVSZWdzIHZhbHVlLCBHUFJSZWcgc3R1YkluZm9HUFIpOwogCiBwdWJsaWM6CkBA
IC0zMDYsNyArMzA2LDcgQEAgY2xhc3MgSklUR2V0QnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1Ymxp
YyBKSVRCeUlkR2VuZXJhdG9yIHsKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yKCkgeyB9CiAKICAg
ICBKSVRHZXRCeUlkR2VuZXJhdG9yKAotICAgICAgICBDb2RlQmxvY2sqLCBKSVRUeXBlLCBDb2Rl
T3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywg
Q2FjaGVhYmxlSWRlbnRpZmllciwKKyAgICAgICAgQ29kZUJsb2NrKiwgQmFnPFN0cnVjdHVyZVN0
dWJJbmZvPiosIEpJVFR5cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lz
dGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNoZWFibGVJZGVudGlmaWVyLAogICAgICAgICBKU1Zh
bHVlUmVncyBiYXNlLCBKU1ZhbHVlUmVncyB2YWx1ZSwgR1BSUmVnIHN0dWJJbmZvR1BSLCBBY2Nl
c3NUeXBlKTsKICAgICAKICAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXIm
KTsKQEAgLTMyMSw3ICszMjEsNyBAQCBjbGFzcyBKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3Ig
ZmluYWwgOiBwdWJsaWMgSklUQnlJZEdlbmVyYXRvciB7CiAgICAgSklUR2V0QnlJZFdpdGhUaGlz
R2VuZXJhdG9yKCkgeyB9CiAKICAgICBKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3IoCi0gICAg
ICAgIENvZGVCbG9jayosIEpJVFR5cGUsIENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIGNvbnN0
IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNoZWFibGVJZGVudGlmaWVyLAorICAgICAg
ICBDb2RlQmxvY2sqLCBCYWc8U3RydWN0dXJlU3R1YkluZm8+KiwgSklUVHlwZSwgQ29kZU9yaWdp
biwgQ2FsbFNpdGVJbmRleCwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENhY2hl
YWJsZUlkZW50aWZpZXIsCiAgICAgICAgIEpTVmFsdWVSZWdzIHZhbHVlLCBKU1ZhbHVlUmVncyBi
YXNlLCBKU1ZhbHVlUmVncyB0aGlzUmVncywgR1BSUmVnIHN0dWJJbmZvR1BSKTsKIAogICAgIHZv
aWQgZ2VuZXJhdGVCYXNlbGluZURhdGFJQ0Zhc3RQYXRoKEpJVCYsIHVuc2lnbmVkIHN0dWJJbmZv
Q29uc3RhbnQsIEdQUlJlZyBzdHViSW5mb0dQUik7CkBAIC0zMzMsNyArMzMzLDcgQEAgY2xhc3Mg
SklUUHV0QnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1YmxpYyBKSVRCeUlkR2VuZXJhdG9yIHsKICAg
ICBKSVRQdXRCeUlkR2VuZXJhdG9yKCkgPSBkZWZhdWx0OwogCiAgICAgSklUUHV0QnlJZEdlbmVy
YXRvcigKLSAgICAgICAgQ29kZUJsb2NrKiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJ
bmRleCwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENhY2hlYWJsZUlkZW50aWZp
ZXIsCisgICAgICAgIENvZGVCbG9jayosIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qLCBKSVRUeXBl
LCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lz
dGVycywgQ2FjaGVhYmxlSWRlbnRpZmllciwKICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNW
YWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzdHViSW5mb0dQUiwgR1BSUmVnIHNjcmF0Y2gsIEVDTUFN
b2RlLCBQdXRLaW5kKTsKICAgICAKICAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3Nl
bWJsZXImKTsKQEAgLTM1Miw3ICszNTIsNyBAQCBjbGFzcyBKSVRQdXRCeVZhbEdlbmVyYXRvciBm
aW5hbCA6IHB1YmxpYyBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvciB7CiAgICAgSklUUHV0QnlWYWxH
ZW5lcmF0b3IoKSA9IGRlZmF1bHQ7CiAKICAgICBKSVRQdXRCeVZhbEdlbmVyYXRvcigKLSAgICAg
ICAgQ29kZUJsb2NrKiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgQWNjZXNz
VHlwZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCisgICAgICAgIENvZGVCbG9j
ayosIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qLCBKSVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0
ZUluZGV4LCBBY2Nlc3NUeXBlLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKICAg
ICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHksIEpTVmFsdWVSZWdz
IHJlc3VsdCwgR1BSUmVnIGFycmF5UHJvZmlsZUdQUiwgR1BSUmVnIHN0dWJJbmZvR1BSKTsKIAog
ICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIHNsb3dQYXRoSnVtcCgpIGNvbnN0CkBAIC0zNzcsNyAr
Mzc3LDcgQEAgY2xhc3MgSklURGVsQnlWYWxHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5s
aW5lQ2FjaGVHZW5lcmF0b3IgewogICAgIEpJVERlbEJ5VmFsR2VuZXJhdG9yKCkgeyB9CiAKICAg
ICBKSVREZWxCeVZhbEdlbmVyYXRvcigKLSAgICAgICAgQ29kZUJsb2NrKiwgSklUVHlwZSwgQ29k
ZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMs
CisgICAgICAgIENvZGVCbG9jayosIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qLCBKSVRUeXBlLCBD
b2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVy
cywKICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHksIEpTVmFs
dWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcgc2NyYXRjaCk7CiAKICAg
ICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdApAQCAtNDAwLDcgKzQw
MCw3IEBAIGNsYXNzIEpJVERlbEJ5SWRHZW5lcmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5l
Q2FjaGVHZW5lcmF0b3IgewogICAgIEpJVERlbEJ5SWRHZW5lcmF0b3IoKSB7IH0KIAogICAgIEpJ
VERlbEJ5SWRHZW5lcmF0b3IoCi0gICAgICAgIENvZGVCbG9jayosIEpJVFR5cGUsIENvZGVPcmln
aW4sIENhbGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDYWNo
ZWFibGVJZGVudGlmaWVyLAorICAgICAgICBDb2RlQmxvY2sqLCBCYWc8U3RydWN0dXJlU3R1Yklu
Zm8+KiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgY29uc3QgUmVnaXN0ZXJT
ZXQmIHVzZWRSZWdpc3RlcnMsIENhY2hlYWJsZUlkZW50aWZpZXIsCiAgICAgICAgIEpTVmFsdWVS
ZWdzIGJhc2UsIEpTVmFsdWVSZWdzIHJlc3VsdCwgR1BSUmVnIHN0dWJJbmZvR1BSLCBHUFJSZWcg
c2NyYXRjaCk7CiAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25z
dApAQCAtNDIzLDcgKzQyMyw3IEBAIGNsYXNzIEpJVEluQnlWYWxHZW5lcmF0b3IgOiBwdWJsaWMg
SklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogICAgIEpJVEluQnlWYWxHZW5lcmF0b3IoKSB7IH0K
IAogICAgIEpJVEluQnlWYWxHZW5lcmF0b3IoCi0gICAgICAgIENvZGVCbG9jayosIEpJVFR5cGUs
IENvZGVPcmlnaW4sIENhbGxTaXRlSW5kZXgsIEFjY2Vzc1R5cGUsIGNvbnN0IFJlZ2lzdGVyU2V0
JiB1c2VkUmVnaXN0ZXJzLAorICAgICAgICBDb2RlQmxvY2sqLCBCYWc8U3RydWN0dXJlU3R1Yklu
Zm8+KiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZSwgY29u
c3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCiAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2Us
IEpTVmFsdWVSZWdzIHByb3BlcnR5LCBKU1ZhbHVlUmVncyByZXN1bHQsIEdQUlJlZyBzdHViSW5m
b0dQUik7CiAKICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdApA
QCAtNDQ1LDcgKzQ0NSw3IEBAIGNsYXNzIEpJVEluQnlJZEdlbmVyYXRvciBmaW5hbCA6IHB1Ymxp
YyBKSVRCeUlkR2VuZXJhdG9yIHsKICAgICBKSVRJbkJ5SWRHZW5lcmF0b3IoKSB7IH0KIAogICAg
IEpJVEluQnlJZEdlbmVyYXRvcigKLSAgICAgICAgQ29kZUJsb2NrKiwgSklUVHlwZSwgQ29kZU9y
aWdpbiwgQ2FsbFNpdGVJbmRleCwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENh
Y2hlYWJsZUlkZW50aWZpZXIsCisgICAgICAgIENvZGVCbG9jayosIEJhZzxTdHJ1Y3R1cmVTdHVi
SW5mbz4qLCBKSVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBjb25zdCBSZWdpc3Rl
clNldCYgdXNlZFJlZ2lzdGVycywgQ2FjaGVhYmxlSWRlbnRpZmllciwKICAgICAgICAgSlNWYWx1
ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgdmFsdWUsIEdQUlJlZyBzdHViSW5mb0dQUik7CiAKICAg
ICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImKTsKQEAgLTQ1OCw3ICs0NTgs
NyBAQCBjbGFzcyBKSVRJbnN0YW5jZU9mR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGlu
ZUNhY2hlR2VuZXJhdG9yIHsKICAgICBKSVRJbnN0YW5jZU9mR2VuZXJhdG9yKCkgeyB9CiAgICAg
CiAgICAgSklUSW5zdGFuY2VPZkdlbmVyYXRvcigKLSAgICAgICAgQ29kZUJsb2NrKiwgSklUVHlw
ZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdp
c3RlcnMsIEdQUlJlZyByZXN1bHQsCisgICAgICAgIENvZGVCbG9jayosIEJhZzxTdHJ1Y3R1cmVT
dHViSW5mbz4qLCBKSVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBjb25zdCBSZWdp
c3RlclNldCYgdXNlZFJlZ2lzdGVycywgR1BSUmVnIHJlc3VsdCwKICAgICAgICAgR1BSUmVnIHZh
bHVlLCBHUFJSZWcgcHJvdG90eXBlLCBHUFJSZWcgc3R1YkluZm9HUFIsIEdQUlJlZyBzY3JhdGNo
MSwgR1BSUmVnIHNjcmF0Y2gyLAogICAgICAgICBib29sIHByb3RvdHlwZUlzS25vd25PYmplY3Qg
PSBmYWxzZSk7CiAgICAgCkBAIC00ODEsNyArNDgxLDcgQEAgY2xhc3MgSklUR2V0QnlWYWxHZW5l
cmF0b3IgZmluYWwgOiBwdWJsaWMgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IgewogICAgIEpJVEdl
dEJ5VmFsR2VuZXJhdG9yKCkgeyB9CiAKICAgICBKSVRHZXRCeVZhbEdlbmVyYXRvcigKLSAgICAg
ICAgQ29kZUJsb2NrKiwgSklUVHlwZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgQWNjZXNz
VHlwZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsCisgICAgICAgIENvZGVCbG9j
ayosIEJhZzxTdHJ1Y3R1cmVTdHViSW5mbz4qLCBKSVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0
ZUluZGV4LCBBY2Nlc3NUeXBlLCBjb25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKICAg
ICAgICAgSlNWYWx1ZVJlZ3MgYmFzZSwgSlNWYWx1ZVJlZ3MgcHJvcGVydHksIEpTVmFsdWVSZWdz
IHJlc3VsdCwgR1BSUmVnIHN0dWJJbmZvR1BSKTsKIAogICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1w
IHNsb3dQYXRoSnVtcCgpIGNvbnN0CkBAIC01MDcsNyArNTA3LDcgQEAgY2xhc3MgSklUUHJpdmF0
ZUJyYW5kQWNjZXNzR2VuZXJhdG9yIGZpbmFsIDogcHVibGljIEpJVElubGluZUNhY2hlR2VuZXJh
dG9yIHsKICAgICBKSVRQcml2YXRlQnJhbmRBY2Nlc3NHZW5lcmF0b3IoKSB7IH0KIAogICAgIEpJ
VFByaXZhdGVCcmFuZEFjY2Vzc0dlbmVyYXRvcigKLSAgICAgICAgQ29kZUJsb2NrKiwgSklUVHlw
ZSwgQ29kZU9yaWdpbiwgQ2FsbFNpdGVJbmRleCwgQWNjZXNzVHlwZSwgY29uc3QgUmVnaXN0ZXJT
ZXQmIHVzZWRSZWdpc3RlcnMsCisgICAgICAgIENvZGVCbG9jayosIEJhZzxTdHJ1Y3R1cmVTdHVi
SW5mbz4qLCBKSVRUeXBlLCBDb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4LCBBY2Nlc3NUeXBlLCBj
b25zdCBSZWdpc3RlclNldCYgdXNlZFJlZ2lzdGVycywKICAgICAgICAgSlNWYWx1ZVJlZ3MgYmFz
ZSwgSlNWYWx1ZVJlZ3MgYnJhbmQsIEdQUlJlZyBzdHViSW5mb0dQUik7CiAKICAgICBNYWNyb0Fz
c2VtYmxlcjo6SnVtcCBzbG93UGF0aEp1bXAoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUT3Bjb2Rlcy5jcHAKaW5kZXggMDk3ZGQ5NzE1ZWVjYjQyZjRiMjI2OWM0ZjM4ODM5MTFk
ZDUyOWY2Ni4uZjg0NDU4NzgwM2MyNjE4YzY4MDM5ODM2Y2VlNmM3YjM0ZmQyYzMwNCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMuY3BwCkBAIC0xNjksNyArMTY5LDcgQEAg
dm9pZCBKSVQ6OmVtaXRfb3BfaW5zdGFuY2VvZihjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudElu
c3RydWN0aW9uKQogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChwcm90b0dQUiwgcHJv
dG8pOwogCiAgICAgSklUSW5zdGFuY2VPZkdlbmVyYXRvciBnZW4oCi0gICAgICAgIG51bGxwdHIs
IEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxT
aXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwKKyAgICAgICAgbnVsbHB0ciwgbnVsbHB0ciwgSklU
VHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJ
bmRleChtX2J5dGVjb2RlSW5kZXgpLAogICAgICAgICBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxh
YmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIHJlc3VsdEdQUiwKICAgICAgICAgdmFsdWVHUFIsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wY29kZXMzMl82NC5jcHAKaW5kZXggMDU4
MTkzYmY5MjM4NDhjZDU2NGExNGViN2ZjOGQwZjUyZTRiYjYwZS4uZDQ4NDM0Y2VmZmE5ZTUyNzE3
NzI5YzM1NDQwNzk1NzhhY2ZlMTc4MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUT3Bjb2RlczMyXzY0LmNwcApAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQgSklUOjplbWl0X29w
X2luc3RhbmNlb2YoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBl
bWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwocHJvdG8pOwogICAgIAogICAgIEpJVEluc3RhbmNl
T2ZHZW5lcmF0b3IgZ2VuKAotICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwg
Q29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRl
eCksCisgICAgICAgIG51bGxwdHIsIG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2Rl
T3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwK
ICAgICAgICAgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAogICAgICAg
ICByZXN1bHRHUFIsCiAgICAgICAgIHZhbHVlSlNSLnBheWxvYWRHUFIoKSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggNmEzOTFlM2Q1
OTNlNjdlOGZiNzdhMTljMzJkMzhlNzhmZDRmMDhhZi4uOTU3Njk1YjMwZTkzOTliYmEwZTMwZjJl
ZmY0OTBkMzBmYjY3Y2I1ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRQcm9wZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2Vzcy5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0
X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgICAgICBl
bWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoYnl0ZWNvZGUsIGJhc2VKU1IucGF5bG9hZEdQ
UigpLCBzY3JhdGNoR1BSKTsKIAogICAgICAgICBKSVRHZXRCeVZhbEdlbmVyYXRvciBnZW4oCi0g
ICAgICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5
dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIEFjY2Vzc1R5cGU6
OkdldEJ5VmFsLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisgICAg
ICAgICAgICBudWxscHRyLCBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdp
bihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIEFjY2Vz
c1R5cGU6OkdldEJ5VmFsLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCks
CiAgICAgICAgICAgICBiYXNlSlNSLCBwcm9wZXJ0eUpTUiwgcmVzdWx0SlNSLCBzdHViSW5mb0dQ
Uik7CiAKICAgICAgICAgYXV0byBbIHN0dWJJbmZvLCBzdHViSW5mb0luZGV4IF0gPSBhZGRVbmxp
bmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CkBAIC0yMTgsNyArMjE4LDcgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfZ2V0X3ByaXZhdGVfbmFtZShjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlSlNSLCBiYXNlKTsKIAog
ICAgIEpJVEdldEJ5VmFsR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6
QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleCht
X2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpHZXRQcml2YXRlTmFtZSwKKyAgICAgICAgbnVs
bHB0ciwgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29k
ZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpHZXRQ
cml2YXRlTmFtZSwKICAgICAgICAgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVy
cygpLCBiYXNlSlNSLCBwcm9wZXJ0eUpTUiwgcmVzdWx0SlNSLCBzdHViSW5mb0dQUik7CiAKICAg
ICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJl
U3R1YkluZm8oKTsKQEAgLTM0MCw3ICszNDAsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9zZXRfcHJp
dmF0ZV9icmFuZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVt
aXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlSlNSLCBiYXNlKTsKIAogICAgIEpJVFByaXZh
dGVCcmFuZEFjY2Vzc0dlbmVyYXRvciBnZW4oCi0gICAgICAgIG51bGxwdHIsIEpJVFR5cGU6OkJh
c2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9i
eXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6U2V0UHJpdmF0ZUJyYW5kLCBSZWdpc3RlclNldDo6
c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisgICAgICAgIG51bGxwdHIsIG51bGxwdHIsIEpJ
VFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRl
SW5kZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6U2V0UHJpdmF0ZUJyYW5kLCBSZWdp
c3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIGJhc2VKU1IsIGJy
YW5kSlNSLCBzdHViSW5mb0dQUik7CiAKICAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5k
ZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1YkluZm8oKTsKQEAgLTQyNCw3ICs0MjQsNyBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9jaGVja19wcml2YXRlX2JyYW5kKGNvbnN0IEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJh
c2VKU1IsIGJhc2UpOwogCiAgICAgSklUUHJpdmF0ZUJyYW5kQWNjZXNzR2VuZXJhdG9yIGdlbigK
LSAgICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRl
Y29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBBY2Nlc3NUeXBlOjpD
aGVja1ByaXZhdGVCcmFuZCwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygp
LAorICAgICAgICBudWxscHRyLCBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9y
aWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIEFj
Y2Vzc1R5cGU6OkNoZWNrUHJpdmF0ZUJyYW5kLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxl
UmVnaXN0ZXJzKCksCiAgICAgICAgIGJhc2VKU1IsIGJyYW5kSlNSLCBzdHViSW5mb0dQUik7CiAK
ICAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8oKTsKQEAgLTUwOCw3ICs1MDgsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRf
YnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgbWF0ZXJp
YWxpemVQb2ludGVySW50b01ldGFkYXRhKGJ5dGVjb2RlLCBPcDo6TWV0YWRhdGE6Om9mZnNldE9m
QXJyYXlQcm9maWxlKCksIHByb2ZpbGVHUFIpOwogCiAgICAgSklUUHV0QnlWYWxHZW5lcmF0b3Ig
Z2VuKAotICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbiht
X2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIEFjY2Vzc1R5
cGU6OlB1dEJ5VmFsLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisg
ICAgICAgIG51bGxwdHIsIG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2lu
KG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNz
VHlwZTo6UHV0QnlWYWwsIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwK
ICAgICAgICAgYmFzZUpTUiwgcHJvcGVydHlKU1IsIHZhbHVlSlNSLCBwcm9maWxlR1BSLCBzdHVi
SW5mb0dQUik7CiAKICAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVu
bGlua2VkU3RydWN0dXJlU3R1YkluZm8oKTsKQEAgLTY2OSw3ICs2NjksNyBAQCB2b2lkIEpJVDo6
ZW1pdF9vcF9wdXRfcHJpdmF0ZV9uYW1lKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2VKU1IsIGJhc2UpOwog
CiAgICAgSklUUHV0QnlWYWxHZW5lcmF0b3IgZ2VuKAotICAgICAgICBudWxscHRyLCBKSVRUeXBl
OjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4
KG1fYnl0ZWNvZGVJbmRleCksIEFjY2Vzc1R5cGU6OlB1dFByaXZhdGVOYW1lLCBSZWdpc3RlclNl
dDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisgICAgICAgIG51bGxwdHIsIG51bGxwdHIs
IEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxT
aXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6UHV0UHJpdmF0ZU5hbWUsIFJl
Z2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgYmFzZUpTUiwg
cHJvcGVydHlKU1IsIHZhbHVlSlNSLCBJbnZhbGlkR1BSUmVnLCBzdHViSW5mb0dQUik7CiAKICAg
ICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJl
U3R1YkluZm8oKTsKQEAgLTg0Nyw3ICs4NDcsNyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9kZWxfYnlf
aWQoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBlbWl0R2V0Vmly
dHVhbFJlZ2lzdGVyKGJhc2UsIGJhc2VKU1IpOwogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpT
Q2VsbChiYXNlSlNSLCBiYXNlKTsKICAgICBKSVREZWxCeUlkR2VuZXJhdG9yIGdlbigKLSAgICAg
ICAgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUlu
ZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVu
YXZhaWxhYmxlUmVnaXN0ZXJzKCksCisgICAgICAgIG51bGxwdHIsIG51bGxwdHIsIEpJVFR5cGU6
OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgo
bV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygp
LAogICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93bmVk
QnlDb2RlQmxvY2sobV91bmxpbmtlZENvZGVCbG9jaywgKmlkZW50KSwKICAgICAgICAgYmFzZUpT
UiwgcmVzdWx0SlNSLCBzdHViSW5mb0dQUiwgc2NyYXRjaEdQUik7CiAKQEAgLTk4Myw3ICs5ODMs
NyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9kZWxfYnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJy
ZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKHByb3BlcnR5
SlNSLCBwcm9wZXJ0eSk7CiAKICAgICBKSVREZWxCeVZhbEdlbmVyYXRvciBnZW4oCi0gICAgICAg
IG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRl
eCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2
YWlsYWJsZVJlZ2lzdGVycygpLAorICAgICAgICBudWxscHRyLCBudWxscHRyLCBKSVRUeXBlOjpC
YXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1f
Ynl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwK
ICAgICAgICAgYmFzZUpTUiwgcHJvcGVydHlKU1IsIHJlc3VsdEpTUiwgc3R1YkluZm9HUFIsIHNj
cmF0Y2hHUFIpOwogCiAgICAgYXV0byBbIHN0dWJJbmZvLCBzdHViSW5mb0luZGV4IF0gPSBhZGRV
bmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CkBAIC0xMTE1LDcgKzExMTUsNyBAQCB2b2lkIEpJ
VDo6ZW1pdF9vcF90cnlfZ2V0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2VKU1IsIGJhc2VWUmVn
KTsKIAogICAgIEpJVEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBudWxscHRyLCBKSVRU
eXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUlu
ZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3Rl
cnMoKSwKKyAgICAgICAgbnVsbHB0ciwgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENv
ZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgp
LCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIENhY2hl
YWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX3Vu
bGlua2VkQ29kZUJsb2NrLCAqaWRlbnQpLCBiYXNlSlNSLCByZXN1bHRKU1IsIHN0dWJJbmZvR1BS
LCBBY2Nlc3NUeXBlOjpUcnlHZXRCeUlkKTsKIAogICAgIGF1dG8gWyBzdHViSW5mbywgc3R1Yklu
Zm9JbmRleCBdID0gYWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwpAQCAtMTE5OCw3ICsx
MTk4LDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX2RpcmVjdChjb25zdCBJbnN0cnVj
dGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2Vs
bChiYXNlSlNSLCBiYXNlVlJlZyk7CiAKICAgICBKSVRHZXRCeUlkR2VuZXJhdG9yIGdlbigKLSAg
ICAgICAgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29k
ZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1
YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisgICAgICAgIG51bGxwdHIsIG51bGxwdHIsIEpJVFR5
cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5k
ZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVy
cygpLAogICAgICAgICBDYWNoZWFibGVJZGVudGlmaWVyOjpjcmVhdGVGcm9tSWRlbnRpZmllck93
bmVkQnlDb2RlQmxvY2sobV91bmxpbmtlZENvZGVCbG9jaywgKmlkZW50KSwgYmFzZUpTUiwgcmVz
dWx0SlNSLCBzdHViSW5mb0dQUiwgQWNjZXNzVHlwZTo6R2V0QnlJZERpcmVjdCk7CiAKICAgICBh
dXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0dXJlU3R1
YkluZm8oKTsKQEAgLTEyOTQsNyArMTI5NCw3IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV9p
ZChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQogICAgIH0KIAogICAgIEpJ
VEdldEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGlu
ZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNv
ZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAg
ICAgbnVsbHB0ciwgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9i
eXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNl
dDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAgICAgICAgIENhY2hlYWJsZUlkZW50aWZp
ZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNvZGVCbG9jayhtX3VubGlua2VkQ29kZUJs
b2NrLCAqaWRlbnQpLCBiYXNlSlNSLCByZXN1bHRKU1IsIHN0dWJJbmZvR1BSLCBBY2Nlc3NUeXBl
OjpHZXRCeUlkKTsKIAogICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRk
VW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwpAQCAtMTM4Myw3ICsxMzgzLDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfZ2V0X2J5X2lkX3dpdGhfdGhpcyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbCh0aGlzSlNSLCB0
aGlzVlJlZyk7CiAKICAgICBKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3IgZ2VuKAotICAgICAg
ICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5k
ZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5h
dmFpbGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbnVsbHB0ciwgbnVsbHB0ciwgSklUVHlwZTo6
QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleCht
X2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCks
CiAgICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRC
eUNvZGVCbG9jayhtX3VubGlua2VkQ29kZUJsb2NrLCAqaWRlbnQpLCByZXN1bHRKU1IsIGJhc2VK
U1IsIHRoaXNKU1IsIHN0dWJJbmZvR1BSKTsKIAogICAgIGF1dG8gWyBzdHViSW5mbywgc3R1Yklu
Zm9JbmRleCBdID0gYWRkVW5saW5rZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwpAQCAtMTU2Myw3ICsx
NTYzLDcgQEAgdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X2lkKGNvbnN0IEluc3RydWN0aW9uKiBj
dXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2VK
U1IsIGJhc2VWUmVnKTsKIAogICAgIEpJVFB1dEJ5SWRHZW5lcmF0b3IgZ2VuKAotICAgICAgICBu
dWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgp
LCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFp
bGFibGVSZWdpc3RlcnMoKSwKKyAgICAgICAgbnVsbHB0ciwgbnVsbHB0ciwgSklUVHlwZTo6QmFz
ZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5
dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCiAg
ICAgICAgIENhY2hlYWJsZUlkZW50aWZpZXI6OmNyZWF0ZUZyb21JZGVudGlmaWVyT3duZWRCeUNv
ZGVCbG9jayhtX3VubGlua2VkQ29kZUJsb2NrLCAqaWRlbnQpLAogICAgICAgICBiYXNlSlNSLCB2
YWx1ZUpTUiwgc3R1YkluZm9HUFIsIHNjcmF0Y2hHUFIsIGVjbWFNb2RlKGJ5dGVjb2RlKSwKICAg
ICAgICAgZGlyZWN0ID8gUHV0S2luZDo6RGlyZWN0IDogUHV0S2luZDo6Tm90RGlyZWN0KTsKQEAg
LTE2OTEsNyArMTY5MSw3IEBAIHZvaWQgSklUOjplbWl0X29wX2luX2J5X2lkKGNvbnN0IEluc3Ry
dWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiAgICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlND
ZWxsKGJhc2VKU1IsIGJhc2VWUmVnKTsKIAogICAgIEpJVEluQnlJZEdlbmVyYXRvciBnZW4oCi0g
ICAgICAgIG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNv
ZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0
dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAorICAgICAgICBudWxscHRyLCBudWxscHRyLCBKSVRU
eXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUlu
ZGV4KG1fYnl0ZWNvZGVJbmRleCksIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3Rl
cnMoKSwKICAgICAgICAgQ2FjaGVhYmxlSWRlbnRpZmllcjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJP
d25lZEJ5Q29kZUJsb2NrKG1fdW5saW5rZWRDb2RlQmxvY2ssICppZGVudCksIGJhc2VKU1IsIHJl
c3VsdEpTUiwgc3R1YkluZm9HUFIpOwogCiAgICAgYXV0byBbIHN0dWJJbmZvLCBzdHViSW5mb0lu
ZGV4IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7CkBAIC0xNzc5LDcgKzE3Nzks
NyBAQCB2b2lkIEpJVDo6ZW1pdF9vcF9pbl9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKICAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwoYnl0ZWNv
ZGUsIGJhc2VKU1IucGF5bG9hZEdQUigpLCBzY3JhdGNoR1BSKTsKIAogICAgIEpJVEluQnlWYWxH
ZW5lcmF0b3IgZ2VuKAotICAgICAgICBudWxscHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29k
ZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBDYWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCks
IEFjY2Vzc1R5cGU6OkluQnlWYWwsIFJlZ2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3Rl
cnMoKSwKKyAgICAgICAgbnVsbHB0ciwgbnVsbHB0ciwgSklUVHlwZTo6QmFzZWxpbmVKSVQsIENv
ZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVjb2RlSW5kZXgp
LCBBY2Nlc3NUeXBlOjpJbkJ5VmFsLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0
ZXJzKCksCiAgICAgICAgIGJhc2VKU1IsIHByb3BlcnR5SlNSLCByZXN1bHRKU1IsIHN0dWJJbmZv
R1BSKTsKIAogICAgIGF1dG8gWyBzdHViSW5mbywgc3R1YkluZm9JbmRleCBdID0gYWRkVW5saW5r
ZWRTdHJ1Y3R1cmVTdHViSW5mbygpOwpAQCAtMTg2NCw3ICsxODY0LDcgQEAgdm9pZCBKSVQ6OmVt
aXRIYXNQcml2YXRlKFZpcnR1YWxSZWdpc3RlciBkc3QsIFZpcnR1YWxSZWdpc3RlciBiYXNlLCBW
aXJ0dWFsUmVnaXMKICAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwoYmFzZUpTUiwgYmFz
ZSk7CiAKICAgICBKSVRJbkJ5VmFsR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbnVsbHB0ciwgSklU
VHlwZTo6QmFzZWxpbmVKSVQsIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJ
bmRleChtX2J5dGVjb2RlSW5kZXgpLCB0eXBlLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxl
UmVnaXN0ZXJzKCksCisgICAgICAgIG51bGxwdHIsIG51bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5l
SklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29k
ZUluZGV4KSwgdHlwZSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAog
ICAgICAgICBiYXNlSlNSLCBwcm9wZXJ0eUpTUiwgcmVzdWx0SlNSLCBzdHViSW5mb0dQUik7CiAK
ICAgICBhdXRvIFsgc3R1YkluZm8sIHN0dWJJbmZvSW5kZXggXSA9IGFkZFVubGlua2VkU3RydWN0
dXJlU3R1YkluZm8oKTsKQEAgLTMxOTYsNyArMzE5Niw3IEBAIHZvaWQgSklUOjplbWl0X29wX2Vu
dW1lcmF0b3JfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQogICAgIGVtaXRBcnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChieXRlY29kZSwgYmFzZUdQUiwg
c2NyYXRjaDEpOwogCiAgICAgSklUR2V0QnlWYWxHZW5lcmF0b3IgZ2VuKAotICAgICAgICBudWxs
cHRyLCBKSVRUeXBlOjpCYXNlbGluZUpJVCwgQ29kZU9yaWdpbihtX2J5dGVjb2RlSW5kZXgpLCBD
YWxsU2l0ZUluZGV4KG1fYnl0ZWNvZGVJbmRleCksIEFjY2Vzc1R5cGU6OkdldEJ5VmFsLCBSZWdp
c3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisgICAgICAgIG51bGxwdHIsIG51
bGxwdHIsIEpJVFR5cGU6OkJhc2VsaW5lSklULCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCks
IENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgQWNjZXNzVHlwZTo6R2V0QnlWYWwsIFJl
Z2lzdGVyU2V0OjpzdHViVW5hdmFpbGFibGVSZWdpc3RlcnMoKSwKICAgICAgICAgSlNWYWx1ZVJl
Z3MoYmFzZUdQUiksIEpTVmFsdWVSZWdzKHByb3BlcnR5R1BSKSwgSlNWYWx1ZVJlZ3MocmVzdWx0
R1BSKSwgc3R1YkluZm9HUFIpOwogCiAgICAgYXV0byBbIHN0dWJJbmZvLCBzdHViSW5mb0luZGV4
IF0gPSBhZGRVbmxpbmtlZFN0cnVjdHVyZVN0dWJJbmZvKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>